ZGlmZiAtLWdpdCBhL0FuZHJvaWQubWsgYi9BbmRyb2lkLm1rCmluZGV4IDhhYjAwMjEuLjExMjg5MWMgMTAwNjQ0Ci0tLSBhL0FuZHJvaWQubWsKKysrIGIvQW5kcm9pZC5tawpAQCAtNCw0MCArNCwxMjYgQEAKIGluY2x1ZGUgJChDTEVBUl9WQVJTKQogCiAjIEZyb20gYXV0b2NvbmYtZ2VuZXJhdGVkIE1ha2VmaWxlCi1zdHJhY2VfU09VUkNFUyA9IHN0cmFjZS5jIHN5c2NhbGwuYyB1dGlsLmMgZGVzYy5jIGZpbGUuYyBcCi0gICAgICAgICAgICAgICAgIGlvLmMgaW9jdGwuYyBtZW0uYyBuZXQuYyBwcm9jZXNzLmMgYmptLmMgXAorc3RyYWNlX1NPVVJDRVMgPSBzdHJhY2UuYyBzeXNjYWxsLmMgY291bnQuYyB1dGlsLmMgZGVzYy5jIGZpbGUuYyBpcGMuYyBcCisgICAgICAgICAgICAgICAgIGlvLmMgaW9jdGwuYyBtZW0uYyBuZXQuYyBwcm9jZXNzLmMgYmptLmMgcXVvdGEuYyBcCiAgICAgICAgICAgICAgICAgIHJlc291cmNlLmMgc2lnbmFsLmMgc29jay5jIHN5c3RlbS5jIHRlcm0uYyB0aW1lLmMgXAotICAgICAgICAgICAgICAgICBwcm9jLmMgc3RyZWFtLmMKKyAgICAgICAgICAgICAgICAgcHJvYy5jIHN0cmVhbS5jIGJsb2NrLmMKIAotI2V4Y2x1ZGVkX3NvdXJjZXMgPSBpcGMuYworI2V4Y2x1ZGVkX3NvdXJjZXMgPSBzY3NpLmMKKworc3RyYWNlX1ZFUlNJT04gPSA0LjYKIAogTE9DQUxfU1JDX0ZJTEVTOj0gJChzdHJhY2VfU09VUkNFUykKIAogTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PQogCi0jIEhhY2sgZm9yIEFSTSBkZXZpY2VzLiBUaGlzIHZlcnNpb24gb2Ygc3RyYWNlIGRvZXMgbm90IHN1cHBvcnQgQVJNLCBhbmQgdGhlCi0jIHBhdGNoIHRoYXQgd2FzIHVzZWQgdG8gYWRkIEFSTSBzdXBwb3J0IGFjdHVhbGx5IGFkZHMgdGhlIEFSTSBzeXNjYWxscyB0bwotIyBsaW51eC9zaC8gKFNlZ2EgTWVnYWRyaXZlL0RyZWFtY2FzdC8uLi4pIGluc3RlYWQgb2YgbGludXgvYXJtLyAuIFRoZSBwcm9wZXIKLSMgd2F5IHRvIGZpeCB0aGlzIHdvdWxkIGJlIHRvIHVwZ3JhZGUgdG8gYSB2ZXJzaW9uIG9mIHN0cmFjZSB0aGF0IGRvZXMgc3VwcG9ydAotIyBBUk0gKGUuZy4gNC41LjEuOCksIGJ1dCB0aGF0IHdvdWxkIG1lYW4gaGF2aW5nIHRvIHJlYXBwbHkgYWxsIEFuZHJvaWQtc3BlY2lmaWMKLSMgY2hhbmdlcy4gU2lnaC4KK0xPQ0FMX0NGTEFHUyA6PSAtRExJTlVYPTEgXAorCS1ER0VUR1JPVVBTX1Q9Z2lkX3QgXAorCS1ESEFWRV9BU01fU0lHQ09OVEVYVF9IPTEgXAorCS1ESEFWRV9ERUNMX1NZU19FUlJMSVNUPTEgXAorCS1ESEFWRV9ERUNMX1NZU19TSUdMSVNUPTEgXAorCS1ESEFWRV9ERUNMX19fX19QVFJBQ0VfRVZFTlRfQ0xPTkU9MSBcCisJLURIQVZFX0RFQ0xfX19fX1BUUkFDRV9FVkVOVF9GT1JLPTEgXAorCS1ESEFWRV9ERUNMX19fX19QVFJBQ0VfRVZFTlRfVkZPUks9MSBcCisJLURIQVZFX0RFQ0xfX19fX1BUUkFDRV9HRVRFVkVOVE1TRz0xIFwKKwktREhBVkVfREVDTF9fX19fUFRSQUNFX0dFVFNJR0lORk89MSBcCisJLURIQVZFX0RFQ0xfX19fX1BUUkFDRV9PX1RSQUNFQ0xPTkU9MSBcCisJLURIQVZFX0RFQ0xfX19fX1BUUkFDRV9PX1RSQUNFRk9SSz0xIFwKKwktREhBVkVfREVDTF9fX19fUFRSQUNFX09fVFJBQ0VWRk9SSz0xIFwKKwktREhBVkVfREVDTF9fX19fUFRSQUNFX1NFVE9QVElPTlM9MSBcCisJLURIQVZFX0RFQ0xfX19fX1BUUkFDRV9FVkVOVF9DTE9ORT0xIFwKKwktREhBVkVfREVDTF9fX19fUFRSQUNFX0VWRU5UX0NMT05FPTEgXAorCS1ESEFWRV9ESVJFTlRfSD0xIFwKKwktREhBVkVfRk9SSz0xIFwKKwktREhBVkVfR0VUREVOVFM9MSBcCisJLURIQVZFX0lGX0lOREVYVE9OQU1FPTEgXAorCS1ESEFWRV9JTkVUX05UT1A9MSBcCisJLURIQVZFX0lOVFRZUEVTX0g9MSBcCisJLURIQVZFX0xJTlVYX0NBUEFCSUxJVFlfSD0xIFwKKwktREhBVkVfTElOVVhfSUNNUF9IPTEgXAorCS1ESEFWRV9MSU5VWF9JRl9QQUNLRVRfSD0xIFwKKwktREhBVkVfTElOVVhfSU42X0g9MSBcCisJLURIQVZFX0xJTlVYX05FVExJTktfSD0xIFwKKwktREhBVkVfTElOVVhfVVRTTkFNRV9IPTEgXAorCS1ESEFWRV9MT05HX0xPTkc9MSBcCisJLURIQVZFX0xPTkdfTE9OR19STElNX1Q9MSBcCisJLURIQVZFX01FTU9SWV9IPTEgXAorCS1ESEFWRV9ORVRJTkVUX1RDUF9IPTEgXAorCS1ESEFWRV9ORVRJTkVUX1VEUF9IPTEgXAorCS1ESEFWRV9QT0xMX0g9MSBcCisJLURIQVZFX1BSQ1RMPTEgXAorCS1ESEFWRV9QUkVBRD0xIFwKKwktREhBVkVfU0VORE1TRz0xIFwKKwktREhBVkVfU0lHQUNUSU9OPTEgXAorCS1ESEFWRV9TSUdJTkZPX1Q9MSBcCisJLURIQVZFX1NJR19BVE9NSUNfVD0xIFwKKwktREhBVkVfU1RBVDY0PTEgXAorCS1ESEFWRV9TVEFURlM2ND0xIFwKKwktREhBVkVfU1REQk9PTF9IPTEgXAorCS1ESEFWRV9TVERJTlRfSD0xIFwKKwktREhBVkVfU1RETElCX0g9MSBcCisJLURIQVZFX1NUUkVSUk9SPTEgXAorCS1ESEFWRV9TVFJJTkdTX0g9MSBcCisJLURIQVZFX1NUUklOR19IPTEgXAorCS1ESEFWRV9TVFJTSUdOQUw9MSBcCisJLURIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0w9MSBcCisJLURIQVZFX1NUUlVDVF9TSUdDT05URVhUIFwKKwktREhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEPTEgXAorCS1ESEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFPTEgXAorCS1ESEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1M9MSBcCisJLURIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVY9MSBcCisJLURIQVZFX1NUUlVDVF9VU0VSX0RFU0M9MSBcCisJLURIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVD0xIFwKKwktREhBVkVfU1lTX0VQT0xMX0g9MSBcCisJLURIQVZFX1NZU19JT0NUTF9IPTEgXAorCS1ESEFWRV9TWVNfUE9MTF9IPTEgXAorCS1ESEFWRV9TWVNfUFRSQUNFX0g9MSBcCisJLURIQVZFX1NZU19TSUdMSVNUPTEgXAorCS1ESEFWRV9TWVNfU1RBVF9IPTEgXAorCS1ESEFWRV9TWVNfVFlQRVNfSD0xIFwKKwktREhBVkVfU1lTX1ZGU19IPTEgXAorCS1ESEFWRV9VTklTVERfSD0xIFwKKwktRExJTlVYPTEgXAorCS1ETUFKT1JfSU5fU1lTTUFDUk9TIFwKKwktRFBBQ0tBR0U9c3RyYWNlIFwKKwktRFBBQ0tBR0VfQlVHUkVQT1JUPSBcCisJLURQQUNLQUdFX05BTUU9JyJzdHJhY2UiJyBcCisJLURQQUNLQUdFX1NUUklORz0nInN0cmFjZSAkKHN0cmFjZV9WRVJTSU9OKSInIFwKKwktRFBBQ0tBR0VfVEFSTkFNRT0nInN0cmFjZSInIFwKKwktRFBBQ0tBR0VfVkVSU0lPTj0nIiQoc3RyYWNlX1ZFUlNJT04pIicgXAorCS1EUkVUU0lHVFlQRT12b2lkIFwKKwktRFNURENfSEVBREVSPTEgXAorCS1EVkVSU0lPTj0nIiQoc3RyYWNlX1ZFUlNJT04pIicgXAorCS1EX0dOVV9TT1VSQ0U9MSBcCisJLURfUE9TSVhfU09VUkNFPTEgXAorCS1EZm9wZW42ND1mb3BlbiBcCisJLURkX2ZpbGVubz1kX2lubyBcCisJLURfTEZTNjRfTEFSR0VGSUxFPTEgXAorCS1EX19LRVJORUxfXz0xCisKKyNUaGVzZSBhcmUgZGVmaW5lZCBpbiBBbmRyb2lkQ29uZmlnLmggc28gd2Ugb21pdCB0aGVtIGFib3ZlLgorIwktREhBVkVfU1lTX1VJT19IPTEgXAorIwktREhBVkVfVEVSTUlPX0g9MSBcCisKKworYXJjaCA6PSAkKFRBUkdFVF9BUkNIKQogaWZlcSAoJChUQVJHRVRfQVJDSCksYXJtKQotCVNUUkFDRV9BUkNIX0hFQURFUlMgOj0gJChMT0NBTF9QQVRIKS9zdHJhY2UvbGludXgvc2gKLWVsc2UKLQlTVFJBQ0VfQVJDSF9IRUFERVJTIDo9ICQoTE9DQUxfUEFUSCkvc3RyYWNlL2xpbnV4LyQoVEFSR0VUX0FSQ0gpCisJTE9DQUxfQ0ZMQUdTICs9IC1EQVJNPTEgLURIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HPTEKK2Vsc2UgaWZlcSAoJChUQVJHRVRfQVJDSCkseDg2KQorCUxPQ0FMX0NGTEFHUyArPSAtREkzODY9MSAtREhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkc9MQorCWFyY2ggOj0gaTM4NgorZWxzZSBpZmVxICgkKFRBUkdFVF9BUkNIKSxzaCkKKwlMT0NBTF9DRkxBR1MgKz0gLURTSD0xIC1ESEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORz0xCitlbHNlIGlmZXEgKCQoVEFSR0VUX0FSQ0gpLG1pcHMpCisJTE9DQUxfQ0ZMQUdTICs9IC1ETUlQUz0xIC1ESEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORz0xCiBlbmRpZgogCitMT0NBTF9DRkxBR1MgKz0gLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycworCiBMT0NBTF9DX0lOQ0xVREVTIDo9IFwKLQkkKFNUUkFDRV9BUkNIX0hFQURFUlMpIFwKIAkkKEtFUk5FTF9IRUFERVJTKSBcCiAJJChMT0NBTF9QQVRIKS9saW51eCBcCi0JJChMT0NBTF9QQVRIKS9hbmRyb2lkL2FyY2gvJChUQVJHRVRfQVJDSCkKLQotTE9DQUxfQ0ZMQUdTIDo9IC1ESEFWRV9DT05GSUdfSCAtRGRfZmlsZW5vPWRfaW5vIC1EX0xGUzY0X0xBUkdFRklMRT0xCi0KLWlmZXEgKCQoVEFSR0VUX0FSQ0gpLHg4NikKLUxPQ0FMX0NGTEFHUyArPSAtVWxpbnV4Ci1lbmRpZgorCSQoTE9DQUxfUEFUSCkvbGludXgvJChhcmNoKQogCiBMT0NBTF9NT0RVTEUgOj0gc3RyYWNlCiAKZGlmZiAtLWdpdCBhL0FuZHJvaWQucGF0Y2ggYi9BbmRyb2lkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZjM2ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9BbmRyb2lkLnBhdGNoCkBAIC0wLDAgKzEsMjUyIEBACitkaWZmIC1yIC11IC1kIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvYmptLmMgLi9iam0uYworLS0tIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvYmptLmMJMjAwOS0xMS0wNiAwOToyNzo0Ni4wMDAwMDAwMDAgLTA4MDAKKysrKyAuL2JqbS5jCTIwMTItMDMtMDIgMTU6MTc6MTEuMDAwMDAwMDAwIC0wODAwCitAQCAtMzksNyArMzksOSBAQAorICNpbmNsdWRlIDxzeXMvd2FpdC5oPgorICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKysjaWZuZGVmIEhBVkVfQU5EUk9JRF9PUworICNpbmNsdWRlIDxzeXMvdXNlci5oPgorKyNlbmRpZgorICNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAKK2RpZmYgLXIgLXUgLWQgL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi9maWxlLmMgLi9maWxlLmMKKy0tLSAvVXNlcnMvamVmZmJyb3duL0Rvd25sb2Fkcy9zdHJhY2UtNC42L2ZpbGUuYwkyMDExLTAzLTAzIDE4OjA4OjAyLjAwMDAwMDAwMCAtMDgwMAorKysrIC4vZmlsZS5jCTIwMTItMDMtMDIgMTU6MTE6MTQuMDAwMDAwMDAwIC0wODAwCitAQCAtNDUsNiArNDUsNDEgQEAKKyAjIGRlZmluZSBrZXJuZWxfZGlyZW50IGRpcmVudAorICNlbmRpZgorIAorKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKysjaW5jbHVkZSA8bGludXgvZmFkdmlzZS5oPgorKworKy8vIEFORFJPSUQ6IEZyb20gbGludXgvZGlyZW50LmgKKysKKytzdHJ1Y3QgZGlyZW50NjQgeworKyBfX3U2NCBkX2lubzsKKysgX19zNjQgZF9vZmY7CisrIHVuc2lnbmVkIHNob3J0IGRfcmVjbGVuOworKyB1bnNpZ25lZCBjaGFyIGRfdHlwZTsKKysgY2hhciBkX25hbWVbMjU2XTsKKyt9OworKworKy8vIEFORFJPSUQ6IEZyb20ga2VybmVsX2hlYWRlcnMvYXNtL3N0YXRmcy5oCisrCisrLyoKKysgKiBXaXRoIEVBQkkgdGhlcmUgaXMgNCBieXRlcyBvZiBwYWRkaW5nIGFkZGVkIHRvIHRoaXMgc3RydWN0dXJlLgorKyAqIExldCdzIHBhY2sgaXQgc28gdGhlIHBhZGRpbmcgZ29lcyBhd2F5IHRvIHNpbXBsaWZ5IGR1YWwgQUJJIHN1cHBvcnQuCisrICogTm90ZSB0aGF0IHVzZXIgc3BhY2UgZG9lcyBOT1QgaGF2ZSB0byBwYWNrIHRoaXMgc3RydWN0dXJlLgorKyAqLworK3N0cnVjdCBzdGF0ZnM2NCB7CisrICAgICAgICBfX3UzMiBmX3R5cGU7CisrICAgICAgICBfX3UzMiBmX2JzaXplOworKyAgICAgICAgX191NjQgZl9ibG9ja3M7CisrICAgICAgICBfX3U2NCBmX2JmcmVlOworKyAgICAgICAgX191NjQgZl9iYXZhaWw7CisrICAgICAgICBfX3U2NCBmX2ZpbGVzOworKyAgICAgICAgX191NjQgZl9mZnJlZTsKKysgICAgICAgIF9fa2VybmVsX2ZzaWRfdCBmX2ZzaWQ7CisrICAgICAgICBfX3UzMiBmX25hbWVsZW47CisrICAgICAgICBfX3UzMiBmX2Zyc2l6ZTsKKysgICAgICAgIF9fdTMyIGZfc3BhcmVbNV07CisrfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLGFsaWduZWQoNCkpKTsKKysjZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCisrCisgI2lmZGVmIExJTlVYCisgIyAgaWZkZWYgTElOVVhTUEFSQworIHN0cnVjdCBzdGF0IHsKK2RpZmYgLXIgLXUgLWQgL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi9pb2N0bC5jIC4vaW9jdGwuYworLS0tIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvaW9jdGwuYwkyMDExLTAxLTE1IDEyOjE1OjMxLjAwMDAwMDAwMCAtMDgwMAorKysrIC4vaW9jdGwuYwkyMDEyLTAzLTAyIDE1OjUzOjM2LjAwMDAwMDAwMCAtMDgwMAorQEAgLTE1NSw5ICsxNTUsMTEgQEAKKyAJY2FzZSAweDAzOgorIAljYXNlIDB4MTI6CisgCQlyZXR1cm4gYmxvY2tfaW9jdGwodGNwLCBjb2RlLCBhcmcpOworKyNpZm5kZWYgSEFWRV9BTkRST0lEX09TCisgCWNhc2UgMHgyMjoKKyAJCXJldHVybiBzY3NpX2lvY3RsKHRjcCwgY29kZSwgYXJnKTsKKyAjZW5kaWYKKysjZW5kaWYKKyAJZGVmYXVsdDoKKyAJCWJyZWFrOworIAl9CitkaWZmIC1yIC11IC1kIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvaXBjLmMgLi9pcGMuYworLS0tIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvaXBjLmMJMjAxMC0wMy0zMSAxNToyMjowMS4wMDAwMDAwMDAgLTA3MDAKKysrKyAuL2lwYy5jCTIwMTItMDMtMDIgMTY6MTI6NTIuMDAwMDAwMDAwIC0wODAwCitAQCAtNDAsOSArNDAsMTUgQEAKKyAKKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAjaW5jbHVkZSA8c3lzL2lwYy5oPgorKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKysjaW5jbHVkZSA8bGludXgvc2VtLmg+CisrI2luY2x1ZGUgPGxpbnV4L21zZy5oPgorKyNpbmNsdWRlIDxsaW51eC9zaG0uaD4KKysjZWxzZQorICNpbmNsdWRlIDxzeXMvc2VtLmg+CisgI2luY2x1ZGUgPHN5cy9tc2cuaD4KKyAjaW5jbHVkZSA8c3lzL3NobS5oPgorKyNlbmRpZgorIAorICNpZm5kZWYgTVNHX1NUQVQKKyAjZGVmaW5lIE1TR19TVEFUIDExCitkaWZmIC1yIC11IC1kIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvcHJvY2Vzcy5jIC4vcHJvY2Vzcy5jCistLS0gL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi9wcm9jZXNzLmMJMjAxMS0wMy0xNCAxNDo1ODo1OS4wMDAwMDAwMDAgLTA3MDAKKysrKyAuL3Byb2Nlc3MuYwkyMDEyLTAzLTAyIDE1OjE2OjI4LjAwMDAwMDAwMCAtMDgwMAorQEAgLTQ1LDcgKzQ1LDExIEBACisgI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisgI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKysjaW5jbHVkZSA8YXNtL3VzZXIuaD4KKysjZWxzZQorICNpbmNsdWRlIDxzeXMvdXNlci5oPgorKyNlbmRpZgorICNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaWZkZWYgU1VOT1M0CitAQCAtMTE0LDYgKzExOCwxMCBAQAorICNkZWZpbmUgR0VUR1JPVVBTMzJfVCBfX2tlcm5lbF9naWQzMl90CisgI2VuZGlmIC8qIExJTlVYICovCisgCisrI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworKyNkZWZpbmUgX19zY2hlZF9wcmlvcml0eSBzY2hlZF9wcmlvcml0eQorKyNlbmRpZgorKworICNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKElBNjQpCisgIyBpbmNsdWRlIDxhc20vcHRyYWNlX29mZnNldHMuaD4KKyAjIGluY2x1ZGUgPGFzbS9yc2UuaD4KK2RpZmYgLXIgLXUgLWQgL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi9zaWduYWwuYyAuL3NpZ25hbC5jCistLS0gL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi9zaWduYWwuYwkyMDExLTAzLTEwIDE1OjE0OjQ3LjAwMDAwMDAwMCAtMDgwMAorKysrIC4vc2lnbmFsLmMJMjAxMi0wMy0wMiAxNToyMjowNy4wMDAwMDAwMDAgLTA4MDAKK0BAIC0zNyw5ICszNywxNyBAQAorIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisrI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKKyAjaW5jbHVkZSA8c3lzL3VzZXIuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8ZmNudGwuaD4KKyAKKysjaWZkZWYgSEFWRV9BTkRST0lEX09TCisrLy9GSVhNRSB1c2UgInNpZ3Byb2NtYXNrIiBvciBzb21ldGhpbmcKKysjZGVmaW5lIHNpZ21hc2soc2lnKSAgICAoMVVMIDw8ICgoc2lnKSAtIDEpKQorKyNkZWZpbmUgc2lnY29udGV4dF9zdHJ1Y3Qgc2lnY29udGV4dAorKyNlbmRpZgorKworICNpZmRlZiBTVlI0CisgI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorICNlbmRpZiAvKiBTVlI0ICovCitAQCAtNDU1LDcgKzQ2Myw3IEBACisgCisgI2VuZGlmIC8qIExJTlVYICovCisgCistI2lmIF9fR0xJQkNfTUlOT1JfXyA8IDEKKysjaWYgX19HTElCQ19NSU5PUl9fIDwgMSAmJiAhZGVmaW5lZChIQVZFX0FORFJPSURfT1MpCisgLyogVHlwZSBmb3IgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzaWduYWwuICAqLworIHR5cGVkZWYgdW5pb24gc2lndmFsCisgeworZGlmZiAtciAtdSAtZCAvVXNlcnMvamVmZmJyb3duL0Rvd25sb2Fkcy9zdHJhY2UtNC42L3N0cmFjZS5jIC4vc3RyYWNlLmMKKy0tLSAvVXNlcnMvamVmZmJyb3duL0Rvd25sb2Fkcy9zdHJhY2UtNC42L3N0cmFjZS5jCTIwMTEtMDMtMTAgMTQ6MjU6MDMuMDAwMDAwMDAwIC0wODAwCisrKysgLi9zdHJhY2UuYwkyMDEyLTAzLTAyIDE2OjU1OjE1LjAwMDAwMDAwMCAtMDgwMAorQEAgLTM4LDcgKzM4LDEwIEBACisgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorICNpbmNsdWRlIDxmY250bC5oPgorICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKysjaWZkZWYgSEFWRV9BTkRST0lEX09TCisrI2RlZmluZSB3YWl0NCBfX3dhaXQ0CisgI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisgI2luY2x1ZGUgPHB3ZC5oPgorICNpbmNsdWRlIDxncnAuaD4KK2RpZmYgLXIgLXUgLWQgL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi9zeXNjYWxsLmMgLi9zeXNjYWxsLmMKKy0tLSAvVXNlcnMvamVmZmJyb3duL0Rvd25sb2Fkcy9zdHJhY2UtNC42L3N5c2NhbGwuYwkyMDExLTAyLTE4IDE2OjAyOjI3LjAwMDAwMDAwMCAtMDgwMAorKysrIC4vc3lzY2FsbC5jCTIwMTItMDMtMDIgMTU6MDA6MzUuMDAwMDAwMDAwIC0wODAwCitAQCAtMzgsMTAgKzM4LDE2IEBACisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNsdWRlIDx0aW1lLmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CisrI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKKyAjaW5jbHVkZSA8c3lzL3VzZXIuaD4KKysjZW5kaWYKKyAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisgCisrI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworKyNpbmNsdWRlICJzeXNjYWxsLWFuZHJvaWQuaCIKKysjZW5kaWYKKysKKyAjaWZkZWYgSEFWRV9TWVNfUkVHX0gKKyAjaW5jbHVkZSA8c3lzL3JlZy5oPgorICNpZm5kZWYgUFRSQUNFX1BFRUtVU1IKK0BAIC0yNjAwLDYgKzI2MDYsNyBAQAorIAl9CisgCisgCXN3aXRjaCAoa25vd25fc2Nubyh0Y3ApKSB7CisrI2lmbmRlZiBfX0FSTV9FQUJJX18KKyAjaWZkZWYgU1lTX3NvY2tldF9zdWJjYWxsCisgCWNhc2UgU1lTX3NvY2tldGNhbGw6CisgCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zb2NrZXRfc3ViY2FsbCwKK0BAIC0yNjEyLDYgKzI2MTksNyBAQAorIAkJCVNZU19pcGNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CisgCQlicmVhazsKKyAjZW5kaWYKKysjZW5kaWYKKyAjaWZkZWYgU1ZSNAorICNpZmRlZiBTWVNfcGdycHN5c19zdWJjYWxsCisgCWNhc2UgU1lTX3BncnBzeXM6CitkaWZmIC1yIC11IC1kIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvc3lzdGVtLmMgLi9zeXN0ZW0uYworLS0tIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvc3lzdGVtLmMJMjAxMS0wMi0yMiAwMjoyMjoxMy4wMDAwMDAwMDAgLTA4MDAKKysrKyAuL3N5c3RlbS5jCTIwMTItMDMtMDIgMTU6NTA6MjQuMDAwMDAwMDAwIC0wODAwCitAQCAtMzIsNiArMzIsMTEgQEAKKyAKKyAjaW5jbHVkZSAiZGVmcy5oIgorIAorKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKysjdW5kZWYgX191bnVzZWQKKysjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CisrI2VuZGlmCisrCisgI2lmZGVmIExJTlVYCisgI2RlZmluZSBfTElOVVhfU09DS0VUX0gKKyAjZGVmaW5lIF9MSU5VWF9GU19ICitkaWZmIC1yIC11IC1kIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvdGltZS5jIC4vdGltZS5jCistLS0gL1VzZXJzL2plZmZicm93bi9Eb3dubG9hZHMvc3RyYWNlLTQuNi90aW1lLmMJMjAxMS0wMy0wMyAxODowODowMi4wMDAwMDAwMDAgLTA4MDAKKysrKyAuL3RpbWUuYwkyMDEyLTAzLTAyIDE1OjIzOjA1LjAwMDAwMDAwMCAtMDgwMAorQEAgLTMzLDcgKzMzLDExIEBACisgCisgI2lmZGVmIExJTlVYCisgI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KKysjaWZkZWYgSEFWRV9BTkRST0lEX09TCisrI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+CisrI2Vsc2UKKyAjaW5jbHVkZSA8c3lzL3RpbWV4Lmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CisgI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorIAorZGlmZiAtciAtdSAtZCAvVXNlcnMvamVmZmJyb3duL0Rvd25sb2Fkcy9zdHJhY2UtNC42L3V0aWwuYyAuL3V0aWwuYworLS0tIC9Vc2Vycy9qZWZmYnJvd24vRG93bmxvYWRzL3N0cmFjZS00LjYvdXRpbC5jCTIwMTEtMDMtMDMgMTg6MDg6MDIuMDAwMDAwMDAwIC0wODAwCisrKysgLi91dGlsLmMJMjAxMi0wMy0wMiAxNTowMTo0NS4wMDAwMDAwMDAgLTA4MDAKK0BAIC0zNyw3ICszNyw5IEBACisgCisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorKyNpZm5kZWYgSEFWRV9BTkRST0lEX09TCisgI2luY2x1ZGUgPHN5cy91c2VyLmg+CisrI2VuZGlmCisgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorICNpbmNsdWRlIDxmY250bC5oPgorICNpZiBIQVZFX1NZU19VSU9fSAorQEAgLTQ5LDYgKzUxLDEwIEBACisgI2luY2x1ZGUgPGxpbmsuaD4KKyAjZW5kaWYgLyogU1VOT1M0ICovCisgCisrI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworKyNpbmNsdWRlICJzeXNjYWxsLWFuZHJvaWQuaCIKKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChsaW51eCkgJiYgKF9fR0xJQkNfXyA8IDIgfHwgKF9fR0xJQkNfXyA9PSAyICYmIF9fR0xJQkNfTUlOT1JfXyA8IDEpKQorICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyAjZW5kaWYKZGlmZiAtLWdpdCBhL0NPUFlSSUdIVCBiL0NPUFlSSUdIVAppbmRleCBmNzZiYWM3Li5mYWFhMmQ4IDEwMDY0NAotLS0gYS9DT1BZUklHSFQKKysrIGIvQ09QWVJJR0hUCkBAIC0yOCw0ICsyOCw0IEBACiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSRJZDogQ09QWVJJR0hULHYgMS4zIDIwMDIvMDMvMzEgMTg6NDM6MDAgd2ljaGVydCBFeHAgJAorJElkJApkaWZmIC0tZ2l0IGEvQ1JFRElUUyBiL0NSRURJVFMKaW5kZXggYzJiM2M1Zi4uNDg4YzYwNiAxMDA2NDQKLS0tIGEvQ1JFRElUUworKysgYi9DUkVESVRTCkBAIC0xLDQ5ICsxLDExNSBAQAotVGhlIHByaW1hcnkgYXV0aG9ycyBvZiBzdHJhY2UgYXJlOgorVGhlIHByaW1hcnkgYXV0aG9ycyBvZiBzdHJhY2Ugd2VyZToKIAogCVBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KIAlCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KIAlSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgogCi1UaGFua3MgdG8gdGhlIGZvbGxvdyBwZW9wbGUgZm9yIGNvbnRyaWJ1dGluZyB0byBzdHJhY2UgYnkgcmVwb3J0aW5nCi1idWdzLCBwcm92aWRpbmcgZml4ZXMsIHByb3ZpZGluZyBpbmZvcm1hdGlvbiwgcHJvdmlkaW5nIHJlc291cmNlcyBvcgotcG9ydGluZyB0byBuZXcgc3lzdGVtczoKK1RoZXNlIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHRvIHN0cmFjZS4gIFNvbWUgaGF2ZSByZXBvcnRlZCBwcm9ibGVtcywgb3RoZXJzCitoYXZlIGNvbnRyaWJ1dGVkIGltcHJvdmVtZW50cyB0byB0aGUgZG9jdW1lbnRhdGlvbiwgYWN0dWFsIGNvZGUsIHByb3ZpZGVkCitpbmZvcm1hdGlvbiwgcHJvdmlkZWQgcmVzb3VyY2VzLCBvciBoZWxwZWQgdG8gcG9ydCBzdHJhY2UgdG8gbmV3IHN5c3RlbXMuCitUaG9zZSBjb250cmlidXRpb25zIGFyZSBkZXNjcmliZWQgaW4gdGhlIHZlcnNpb24gY29udHJvbCBsb2dzIGFuZCBDaGFuZ2VMb2ctQ1ZTCitmaWxlLiAgSWYgeW91ciBuYW1lIGhhcyBiZWVuIGxlZnQgb3V0LCBpZiB5b3UnZCByYXRoZXIgbm90IGJlIGxpc3RlZCwgb3IgaWYKK3lvdSdkIHByZWZlciBhIGRpZmZlcmVudCBhZGRyZXNzIGJlIHVzZWQsIHBsZWFzZSBzZW5kIGEgbm90ZSB0byB0aGUKK3N0cmFjZS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQgbWFpbGluZyBsaXN0LgogCi0JQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KLQlBcmthZGl1c3ogTWlza2lld2ljeiA8bWlzaWVrQHBsZC5vcmcucGw+Ci0JTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4KLQlMdXBlIENocmlzdG9waCA8bHVwZUBhbGFueWEuaXNhci5tdWMuZGU+Ci0JVGhhbmggTWEgPHRtYUBlbmNvcmUuY29tPgotCUtlaXRoIFRob21wc29uIDxrc3RAYWxzeXMuY29tPgotCVJvbGFuZCBCb3JkZSA8Ym9AdWViZW1jLnNpZW1lbnMuZGU+Ci0JTWF0dCBEYXkgPG1kYXlAYXJ0aXNvZnQuY29tPgotCUpvZSBJbGFjcXVhIDxzcGlrZUB3b3JsZC5zdGQuY29tPgotCUp1InJnZW4gRmx1ayA8bG91aXNAbWFyY28uZGU+Ci0JQm8gS3VsbG1hciA8YmtAa3VsbG1hci5zZT4KLQlMZW9uYXJkIE4uIFp1YmtvZmYgPGxuekBkYW5kZWxpb24uY29tPgotCVJldWJlbiBTdW1uZXIgPHJhc3VtbmVyQHVuZGVyZ3JhZC5tYXRoLnV3YXRlcmxvby5jYT4KLQlKdWVyZ2VuIFdlaWdlcnQgPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgotCUxpbnVzIFRvcnZhbGRzIDxMaW51cy5Ub3J2YWxkc0Bjcy5IZWxzaW5raS5GST4KLQlNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4KLQlBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4KLQlEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGNhaXAucnV0Z2Vycy5lZHU+Ci0JTWF0dGhpYXMgUGZhbGxlciA8bGVvQGRhY2hhdS5tYXJjby5kZT4KLQlUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4KLQlSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgotCVRvbSBEeWFzIDx0ZHlhc0BlZGVuLnJ1dGdlcnMuZWR1PgotCUhlbnJpayBTdG9ybmVyIDxzdG9ybmVyQG9zaXJpcy5waW5nLmRrPgotCURhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AaHBsLmhwLmNvbT4KLQlVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPgotCU5hdGUgRWxkcmVkZ2UgPG5hdGVAY2FydHN5cy5jb20+Ci0JSmFrdWIgSmVsaW5layA8ampAdWx0cmEubGludXguY3o+Ci0JSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCVJpY2hhcmQgQnJhYWttYW4gPGRhcmtAeHM0YWxsLm5sPgotCUZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KLQlELkouIEJhcnJvdyA8ZGpiYXJyb3dAZGUuaWJtLmNvbT4KLQlUb3BpIE1pZXR0aW5lbiA8VG9waS5NaWV0dGluZW5AbmljLmZpPgotCUdh62wgUm91YWxsYW5kIDxnYWVsLnJvdWFsbGFuZEBpbmFtZS5jb20+Ci0JUmljaGFyZCBIaXJzdCA8cmhpcnN0QGxpbnV4Y2FyZS5jb20+Ci0JR2FuZXNhbiBSYWphZ29wYWwgPHJnYW5lc2FuQG15cmVhbGJveC5jb20+Ci0JR3JlZyBCYW5rcyA8Z2JhbmtzQHBvY2tldHBlbmd1aW5zLmNvbT4KKwlBYXJvbiBVY2tvIDx1Y2tvQHZheDEucm9ja2h1cnN0LmVkdT4KKwlBZHJpZW4gS3VueXN6IDxhZHJpZW5Aa3VueXN6LmJlPgogCUFuZGkgS2xlZW4gPGFrQHN1c2UuZGU+Ci0JTWljaGFsIEx1ZHZpZyA8bWx1ZHZpZ0BzdXNlLmN6PgorCUFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAbGludXgtbTY4ay5vcmc+CisJQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+CisJQXJrYWRpdXN6IE1pc2tpZXdpY3ogPG1pc2lla0BwbGQub3JnLnBsPgorCUJhaSBXZWlkb25nIDxiYWl3ZEBjbi5mdWppdHN1LmNvbT4KKwlCZXJuaGFyZCBSZXV0bmVyLUZpc2NoZXIgPHJlcC5kb3Qubm9wQGdtYWlsLmNvbT4KKwlCbyBLdWxsbWFyIDxia0BrdWxsbWFyLnNlPgorCUNhaSBGZWkgPGNhaWZlaUBjbi5mdWppdHN1LmNvbT4KKwlDYXJsb3MgTydEb25lbGwgPGNhcmxvc0BzeXN0ZW1oYWx0ZWQub3JnPgorCUNhcm1lbG8gQU1PUk9TTyA8Y2FybWVsby5hbW9yb3NvQHN0LmNvbT4KKwlDaHJpcyBNZXRjYWxmIDxjbWV0Y2FsZkB0aWxlcmEuY29tPgorCUQuSi4gQmFycm93IDxkamJhcnJvd0BkZS5pYm0uY29tPgorCURhdmlkIERhbmV5IDxkZGFuZXlAY2F2aXVtbmV0d29ya3MuY29tPgorCURhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AaHBsLmhwLmNvbT4KKwlEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGNhaXAucnV0Z2Vycy5lZHU+CisJRGF2aWQgV2lsZGVyIDx3aWxkZXJAdXMuaWJtLmNvbT4KKwlEYXZpZCBXb29kaG91c2UgPGR3bXcyQHJlZGhhdC5jb20+CisJRGVueXMgVmxhc2Vua28gPGR2bGFzZW5rQHJlZGhhdC5jb20+CisJRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCURvdWdsYXMgTWVuY2tlbiA8ZG91Z21lbmNrZW5AZ21haWwuY29tPgorCUVkZ2FyIEUuIElnbGVzaWFzIDxlZGdhci5pZ2xlc2lhc0BnbWFpbC5jb20+CisJRmVybmFuZG8gTHVpcyBWYXpxdWV6IENhbyA8ZmVybmFuZG9Ab3NzLm50dC5jby5qcD4KKwlGbG9yaWFuIExvaG9mZiA8ZmxvQHJmYzgyMi5vcmc+CisJRnJlZGVyaWsgU2Now7xsZXIgPGZzQGRlYmlhbi5vcmc+CisJR2Fib3IgR29tYmFzIDxnb21iYXNnQHN6dGFraS5odT4KKwlHYW5lc2FuIFJhamFnb3BhbCA8cmdhbmVzYW5AbXlyZWFsYm94LmNvbT4KKwlHYcOrbCBSb3VhbGxhbmQgPGdhZWwucm91YWxsYW5kQGluYW1lLmNvbT4KKwlHcmVnIEJhbmtzIDxnYmFua3NAcG9ja2V0cGVuZ3VpbnMuY29tPgogCUhlaWtvIENhcnN0ZW5zIDxoZWlrby5jYXJzdGVuc0BkZS5pYm0uY29tPgorCUhlbnJpayBTdG9ybmVyIDxzdG9ybmVyQG9zaXJpcy5waW5nLmRrPgorCUhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyIDxob2xnZXJAZnJleXRoZXIuZGU+CisJSmFrdWIgQm9ndXN6IDxxYm9vc2hAcGxkLWxpbnV4Lm9yZz4KKwlKYWt1YiBKZWxpbmVrIDxqakB1bHRyYS5saW51eC5jej4KKwlKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKwlKZWZmIE1haG9uZXkgPGplZmZtQHN1c2UuY29tPgorCUpvZSBJbGFjcXVhIDxzcGlrZUB3b3JsZC5zdGQuY29tPgorCUpvaGFubmVzIFN0ZXplbmJhY2ggPGpzQHNpZzIxLm5ldD4KKwlKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisJSnUicmdlbiBGbHVrIDxsb3Vpc0BtYXJjby5kZT4KKwlKdWVyZ2VuIFdlaWdlcnQgPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUtlaXRoIFRob21wc29uIDxrc3RAYWxzeXMuY29tPgorCUtpcmlsbCBBLiBTaHV0ZW1vdiA8a2lyaWxsQHNodXRlbW92Lm5hbWU+CisJS3lsZSBNY01hcnRpbiA8a3lsZUBtY21hcnRpbi5jYT4KKwlMYWkgSmlhbmdTaGFuIDxsYWlqc0Bjbi5mdWppdHN1LmNvbT4KKwlMZW9uYXJkIE4uIFp1YmtvZmYgPGxuekBkYW5kZWxpb24uY29tPgorCUxpbnVzIFRvcnZhbGRzIDxMaW51cy5Ub3J2YWxkc0Bjcy5oZWxzaW5raS5maT4KKwlMdXBlIENocmlzdG9waCA8bHVwZUBhbGFueWEuaXNhci5tdWMuZGU+CisJTWFyayBXaWVsYWFyZCA8bWp3QHJlZGhhdC5jb20+CisJTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4KKwlNYXR0IERheSA8bWRheUBhcnRpc29mdC5jb20+CisJTWF0dGhpYXMgUGZhbGxlciA8bGVvQGRhY2hhdS5tYXJjby5kZT4KKwlNYXhpbSBTaGNoZXR5bmluIDxtYXhpbUBkZS5pYm0uY29tPgorCU1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0PgorCU1pY2hhZWwgSG9semhldSA8aG9semhldUBkZS5pYm0uY29tPgorCU1pY2hhaWwgTGl0dmFrIDxtY2lAb3dsLm9wZW53YWxsLmNvbT4KKwlNaWNoYWwgTHVkdmlnIDxtbHVkdmlnQHN1c2UuY3o+CisJTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgorCU1pa2UgU3Ryb3lhbiA8bWlrZS5zdHJveWFuQGhwLmNvbT4KKwlNdXR0bGV5IE1lZW4gPG11dHRsZXkubWVlbkBnbWFpbC5jb20+CisJTmF0ZSBFbGRyZWRnZSA8bmF0ZUBjYXJ0c3lzLmNvbT4KKwlOYXRlIFNhbW1vbnMgPG5hdGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorCU5laWwgQ2FtcGJlbGwgPGxpc3RzQHRoZWJhdGNhdmUub3JnLnVrPgorCVBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+CisJUGF1bCBNdW5kdCA8bGV0aGFsQGxpbnV4LXNoLm9yZz4KKwlQYXZlbCBNYWNoZWsgPHBhdmVsQHVjdy5jej4KKwlQZXRlciBKb25lcyA8cGpvbmVzQHJlZGhhdC5jb20+CisJUMOhZHJhaWcgQnJhZHkgPFBAZHJhaWdCcmFkeS5jb20+CisJUmFqZWV2IFYuIFBpbGxhaSA8cmFqZWV2dnBAZ21haWwuY29tPgorCVJhbGYgQmFlY2hsZSA8cmFsZkBsaW51eC1taXBzLm9yZz4KKwlSYW5kb2xwaCBDaHVuZyA8dGF1c3FAZGViaWFuLm9yZz4KKwlSZXViZW4gU3VtbmVyIDxyYXN1bW5lckB1bmRlcmdyYWQubWF0aC51d2F0ZXJsb28uY2E+CisJUmljaGFyZCBCcmFha21hbiA8ZGFya0B4czRhbGwubmw+CisJUmljaGFyZCBIZW5kZXJzb24gPHJpY2hhcmRAdHdpZGRsZS50YW11LmVkdT4KKwlSaWNoYXJkIEhpcnN0IDxyaGlyc3RAbGludXhjYXJlLmNvbT4KKwlSb2xhbmQgQm9yZGUgPGJvQHVlYmVtYy5zaWVtZW5zLmRlPgorCVJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlTYW1pIEZhcmluIDxzYWZhcmlAdS5zYWZhcmkuaWtpLmZpPgorCVNjb3R0IFRzYWkgPHNjb3R0dDk1OEB5YWhvby5jb20udHc+CisJU2ViYXN0aWFuIFBpcHBpbmcgPHNlYmFzdGlhbkBwaXBwaW5nLm9yZz4KKwlTaW1vbiBNdXJyYXkgPHNpbW9uQHRyYW5zaXRpdmUuY29tPgorCVNvbGFyIERlc2lnbmVyIDxzb2xhckBvcGVud2FsbC5jb20+CisJU3Jpbml2YXNhIERzIDxzcmluaXZhc2FAaW4uaWJtLmNvbT4KKwlTdGV2ZSBCZW5uZXR0IDxzdGV2ZWJAd29ya3dhcmUubmV0LmF1PgorCVRoYW5oIE1hIDx0bWFAZW5jb3JlLmNvbT4KKwlUaGllbW8gU2V1ZmVyIDx0aHNAbmV0d29ya25vLmRlPgorCVRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGJpZ2J1Zy5mcmFua2VuLmRlPgorCVRpbSBZYW1pbiA8cGxhc21hcm9vQGdlbnRvby5vcmc+CisJVGltbyBMaW5kZm9ycyA8dGltby5saW5kZm9yc0Bpa2kuZmk+CisJVG9tIER5YXMgPHRkeWFzQGVkZW4ucnV0Z2Vycy5lZHU+CisJVG9tbWkgUmFudGFsYSA8ZXh0LXRvbW1pLjEucmFudGFsYUBub2tpYS5jb20+CisJVG9waSBNaWV0dGluZW4gPFRvcGkuTWlldHRpbmVuQG5pYy5maT4KKwlVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPgorCVdhbmcgQ2hhbyA8d2FuZy5jaGFvQGNuLmZ1aml0c3UuY29tPgorCVdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KKwlYaWFvbmluZyBEaW5nIDxkaW5neG5AZ21haWwuY29tPgorCVlhbmcgWmhpZ3VvIDx5emdjc3VAY24uZnVqaXRzdS5jb20+CisJWmFjaCBCcm93biA8emFjaC5icm93bkBvcmFjbGUuY29tPgorCVpoYW5nIExlIDx6aGlsZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisJ0JzQsNGA0Log0JrQvtGA0LXQvdCx0LXRgNCzIDxzb2NrZXRwYWlyQGdtYWlsLmNvbT4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmYjViOTVmLi43YTc5YWJiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDM2MTMgKzEsMTQzOCBAQAotMjAwNS0wNi0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKzIwMTEtMDMtMTUgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTIuCi0JKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjEyLTEuCisJRW5zdXJlIHRoYXQgUFRSQUNFX0dFVFNJR0lORk8gZXQgYWwgYXJlIGFsd2F5cyBkZWZpbmVkIG9uIExpbnV4CisJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0RFQ0xTKTogQWRkIFBUUkFDRV8qIGNvbnN0YW50cy4KKwkqIGRlZnMuaCBbTElOVVhdOiBEZWZpbmUgdGhvc2UgUFRSQUNFXyogY29uc3RhbnRzIHRoYXQgYXJlIG5vdCBwcm92aWRlZAorCWJ5IDxzeXMvcHRyYWNlLmg+LgogCi0yMDA1LTA2LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCSogQ1JFRElUUy5pbjogRml4IHR5cG8uCiAKLQlNaW5vciBuYW1lc3BhY2UgY2xlYW51cC4KLQkqIGRlZnMuaCAoc3RyaW5nX3F1b3RlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgotCSogZmlsZS5jIChvcGVubW9kZXNzb2wpIFtMSU5VWFNQQVJDXTogTWFrZSBzdGF0aWMuCi0JKGZpbGVmbGFncyk6IExpa2V3aXNlLgotCShhY2xjbWRzLCBhY2xpcGMpIFtIQVZFX1NZU19BQ0xfSF06IExpa2V3aXNlLgotCShkaXJlbnR0eXBlcykgW0ZSRUVCU0QgfHwgTElOVVhdOiBMaWtld2lzZS4KLQkoeGF0dHJmbGFncyk6IExpa2V3aXNlLgotCSogcHJvY2Vzcy5jICh1bmFsaWduY3RsX3N0cmluZyk6IE1ha2Ugc3RhdGljLgotCShzZXRhcmcpOiBEaXNhYmxlLgotCSogc3lzY2FsbC5jIChzdWJjYWxsc190YWJsZSk6IE1ha2Ugc3RhdGljLgotCShzb2NrZXRfbWFwKSBbIShMSU5VWCAmJiAoQUxQSEEgfHwgTUlQUykpXTogTGlrZXdpc2UuCi0JKHNwYXJjX3NvY2tldF9kZWNvZGUpOiBNYWtlIHN0YXRpYywgZGVmaW5lIGZvciBbU1BBUkMgfHwgU1BBUkM2NF0gb25seS4KLQkoZGVjb2RlX3N1YmNhbGwpOiBNYWtlIHN0YXRpYy4KLQkoc3lzY2FsbF9maXh1cCk6IExpa2V3aXNlLgotCShnZXRfZXJyb3IpOiBMaWtld2lzZS4KLQkoc3lzY2FsbF9lbnRlcik6IExpa2V3aXNlLgotCSogdXRpbC5jICh0dl90dik6IERpc2FibGUuCi0JKGdldHBjKTogTGlrZXdpc2UuCi0JKHN0cmluZ19xdW90ZSk6IE1ha2Ugc3RhdGljLgotCUZpeGVzIFJIIzE1OTY4OC4KKzIwMTEtMDMtMTQgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLTIwMDUtMDUtMTIgIFBoaWxpcHBlIERlIE11eXRlciAgPHBoZG1AbWFjcWVsLmJlPgorCVVwZGF0ZSBQVFJBQ0VfKiBjb25zdGFudHMKKwkqIHByb2Nlc3MuYyAocHRyYWNlX2NtZHMpOiBBZGQgUFRSQUNFX0dFVFJFR1NFVCBhbmQgUFRSQUNFX1NFVFJFR1NFVC4KIAotCSogdXRpbC5jIChnZXRwYywgcHJpbnRjYWxsKTogQ2hlY2sgI2lmIGRlZmluZWQoTTY4SyksIG5vdCBNNjhrLgotCUVuYWJsZXMgYC1pJyBvbiBtNjhrIG1hY2hpbmVzLgorCVByZXBhcmUgZm9yIDQuNiByZWxlYXNlCisJKiBORVdTOiBVcGRhdGUgZm9yIDQuNiByZWxlYXNlLgorCSogY29uZmlndXJlLmFjOiBWZXJzaW9uIDQuNi4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNi0xLgorCSogc3RyYWNlLnNwZWM6IDQuNi0xLgogCi0yMDA1LTA2LTA2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorMjAxMS0wMy0xNCAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KIAotCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbWDg2XzY0XTogUmVvcmRlciBlbGVtZW50cyBzbwotCW1hdGNoaW5nIHdvcmtzIHJpZ2h0LgotCUZpeGVzIFJIIzE1OTc4Ny4KKwlsaW51eC9pb2N0bGVudDogdW5pZnkgdGhlbSBhbGwKKwlUaGlzIHVuaWZpZXMgYWxsIHRoZSBpb2N0bGVudC5oJ3MgaW4gdGhlIGxpbnV4IHN1YmRpciB3aGlsZSBzdGlsbAorCWFsbG93aW5nIGVhY2ggYXJjaCB0byBtYWludGFpbiBpdHMgb3duIG1pbm9yIGxpc3QuCiAKLQkqIGxpbnV4L3N5c2NhbGwuaCAoU1lTX3NvY2tldCwgU1lTX2JpbmQsIFNZU19jb25uZWN0LCBTWVNfbGlzdGVuKQotCShTWVNfYWNjZXB0LCBTWVNfZ2V0c29ja25hbWUsIFNZU19nZXRwZWVybmFtZSwgU1lTX3NvY2tldHBhaXIpCi0JKFNZU19zZW5kLCBTWVNfcmVjdiwgU1lTX3NlbmR0bywgU1lTX3JlY3Zmcm9tLCBTWVNfc2h1dGRvd24pCi0JKFNZU19zZXRzb2Nrb3B0LCBTWVNfZ2V0c29ja29wdCwgU1lTX3NlbmRtc2csIFNZU19yZWN2bXNnKQotCShTWVNfZ2V0c29ja25hbWUsIFNZU19zZW1vcCwgU1lTX3NlbWdzdWJfZXQsIFNZU19zZW1nZXQsIFNZU19zZW1jdGwpCi0JKFNZU19zZW10aW1lZG9wLCBTWVNfbXNnc25kLCBTWVNfbXNncmN2LCBTWVNfbXNnZ2V0KQotCShTWVNfbXNnY3RsLCBTWVNfc2htYXQsIFNZU19zaG1kdCwgU1lTX3NobWdldCkKLQkoU1lTX3NobWN0bCk6IE1hY3JvcyByZW5hbWVkIHRvIFNZU19zdWJfKi4KLQkqIHN5c2NhbGwuYyAoZHVtcGlvKTogTWF0Y2ggU1lTX3N1Yl8qIGlmIGRlZmluZWQgaW5zdGVhZCBvZiBTWVNfKi4KKwlUaGUgYmFzaWMgbWV0aG9kIGlzOgorCS0gZWFjaCBhcmNoIGhhcyBsaW51eC88YXJjaD4vaW9jdGxlbnQuaC5pbiB3aGljaCBkZWZpbmVzIG9ubHkgdGhlCisJYXJjaC1zcGVjaWZpYyBpb2N0bHM7CisJLSBsaW51eC9pb2N0bGVudC5oLmluIHdoaWNoIGRlZmluZXMgb25seSB0aGUgY29tbW9uIGlvY3RsczsKKwktIGF0IGJ1aWxkIHRpbWUsIHRoZXNlIHR3byBoZWFkZXJzIGFyZSBjb21iaW5lZCBhbmQgc29ydGVkIHRvIHByb2R1Y2UKKwl0aGUgbGludXgvaW9jdGxlbnQuaCBmaWxlLgogCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU193YWl0aWQpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCisJVGhpcyBhbHNvIHJlcXVpcmVzIGEgbGl0dGxlIHR3ZWFraW5nIG9mIHRoZSBpbmNsdWRlIGZpbGVzIHNpbmNlIHRoZQorCWNvbW1vbiBpb2N0bGVudC5oIGlzIGEgYnVpbHQgZmlsZS4KIAotCSogbGludXgvc3lzY2FsbGVudC5oOiBGaXggcHJlYWQvcHdyaXRlIG5hbWVzIHRvIHByZWFkNjQvcHdyaXRlNjQuCisJKiBsaW51eC9pb2N0bGVudC5oOiBTcGxpdCBpbnRvIGxpbnV4L2lvY3RsZW50LmguaW4gYW5kCisJbGludXgvaTM4Ni9pb2N0bGVudC5oLmluLCByZW1vdmUgYXNtIGVudHJpZXMgZnJvbSB0aGUgZm9ybWVyLCByZW1vdmUKKwlub24tYXNtIGVudHJpZXMgZnJvbSB0aGUgbGF0dGVyLgorCSogbGludXgvYWxwaGEvaW9jdGxlbnQuaDogUmVuYW1lIHRvIGxpbnV4L2FscGhhL2lvY3RsZW50LmguaW4sIHJlbW92ZQorCW5vbi1hc20gZW50cmllcy4KKwkqIGxpbnV4L2JmaW4vaW9jdGxlbnQuaDogUmVuYW1lIHRvIGxpbnV4L2JmaW4vaW9jdGxlbnQuaC5pbiwgcmVtb3ZlCisJbm9uLWFzbSBlbnRyaWVzLgorCSogbGludXgvaHBwYS9pb2N0bGVudC5oOiBSZW5hbWUgdG8gbGludXgvaHBwYS9pb2N0bGVudC5oLmluLCByZW1vdmUKKwlub24tYXNtIGVudHJpZXMuCisJKiBsaW51eC9pYTY0L2lvY3RsZW50Lmg6IFJlbmFtZSB0byBsaW51eC9pYTY0L2lvY3RsZW50LmguaW4sIHJlbW92ZQorCW5vbi1hc20gZW50cmllcy4KKwkqIGxpbnV4L21pcHMvaW9jdGxlbnQuaDogUmVuYW1lIHRvIGxpbnV4L21pcHMvaW9jdGxlbnQuaC5pbiwgcmVtb3ZlCisJbm9uLWFzbSBlbnRyaWVzLgorCSogbGludXgvcG93ZXJwYy9pb2N0bGVudC5oOiBSZW5hbWUgdG8gbGludXgvcG93ZXJwYy9pb2N0bGVudC5oLmluLAorCXJlbW92ZSBub24tYXNtIGVudHJpZXMuCisJKiBsaW51eC9zMzkwL2lvY3RsZW50Lmg6IFJlbmFtZSB0byBsaW51eC9zMzkwL2lvY3RsZW50LmguaW4sIHJlbW92ZQorCW5vbi1hc20gZW50cmllcy4KKwkqIGxpbnV4L3NoL2lvY3RsZW50Lmg6IFJlbmFtZSB0byBsaW51eC9zaC9pb2N0bGVudC5oLmluLCByZW1vdmUKKwlub24tYXNtIGVudHJpZXMuCisJKiBsaW51eC9zcGFyYy9pb2N0bGVudC5oOiBSZW5hbWUgdG8gbGludXgvc3BhcmMvaW9jdGxlbnQuaC5pbiwgcmVtb3ZlCisJbm9uLWFzbSBlbnRyaWVzLgorCSogbGludXgvYXJtL2lvY3RsZW50LmguaW46IE5ldyBmaWxlLgorCSogbGludXgvYXZyMzIvaW9jdGxlbnQuaC5pbjogTGlrZXdpc2UuCisJKiBsaW51eC9pMzg2L2lvY3RsZW50LmguaW46IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9pb2N0bGVudC5oLmluOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pY3JvYmxhemUvaW9jdGxlbnQuaC5pbjogTGlrZXdpc2UuCisJKiBsaW51eC90aWxlL2lvY3RsZW50LmguaW46IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L2lvY3RsZW50LmguaW46IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvaW9jdGxlbnQuaC5pbjogSW5jbHVkZSBpb2N0bGVudC5oLmluIGluc3RlYWQgb2YKKwlpb2N0bGVudC5oLgorCSogbGludXgvc2g2NC9pb2N0bGVudC5oLmluOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaC5pbjogTGlrZXdpc2UuCisJKiBsaW51eC9hcm0vaW9jdGxlbnQxLmg6IFVwZGF0ZSBpb2N0bGVudC5oIGluY2x1ZGUuCisJKiBsaW51eC9wb3dlcnBjL2lvY3RsZW50MS5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL2lvY3RsZW50MS5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQxLmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L2lvY3RsZW50MS5oOiBMaWtld2lzZS4KKwkqIE1ha2VmaWxlLmFtIChBTV9DUFBGTEFHUyk6IEFkZCAtSSQoYnVpbGRkaXIpLyQoT1MpLgorCShFWFRSQV9ESVNUKTogVXBkYXRlLgorCVtNQUlOVEFJTkVSX01PREUgJiYgTElOVVhdOiBDb252ZXJ0IGZyb20gaW9jdGxlbnRfaCB0byBpb2N0bGVudF9oX2luLgorCVtMSU5VWF06IEFkZCAkKGJ1aWxkZGlyKS8kKE9TKS9pb2N0bGVudC5oIGdlbmVyYXRpb24gcnVsZXMuCisJKiAuZ2l0aWdub3JlOiBBZGQgbGludXgvaW9jdGxlbnQuaC4KIAotCSogZGVmcy5oIChzdHJ1Y3Qgc3lzZW50KTogTmV3IG1lbWJlciBgbmF0aXZlX3Njbm8nLgotCShrbm93bl9zY25vKTogRGVjbGFyZSBuZXcgZnVuY3Rpb24uCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBuZXcgZmluYWwgZmllbGQgdG8gaW50ZXJlc3Rpbmcgc3lzY2FsbHMuCi0JKiBzeXNjYWxsLmMgKGtub3duX3Njbm8pOiBOZXcgZnVuY3Rpb24uCi0JKGR1bXBpbywgaW50ZXJuYWxfc3lzY2FsbCwgc3lzY2FsbF9maXh1cCwgdHJhY2Vfc3lzY2FsbCk6IFVzZSBpdC4KLQkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfZm9yaywgaW50ZXJuYWxfZXhpdCk6IExpa2V3aXNlLgotCVtJQTY0XSAoQVJHX1NUQUNLU0laRSwgQVJHX1BUSUQsIEFSR19DVElELCBBUkdfVExTKTogTGlrZXdpc2UuCi0JKiBzdHJhY2UuYyAocHJvY19vcGVuKTogTGlrZXdpc2UuCi0JKiB1dGlsLmMgW0xJTlVYXSAoc2V0YnB0KTogTGlrZXdpc2UuCi0JKiBsaW51eC9zeXNjYWxsLmg6IFJlbW92ZSBbIWRlZmluZWQoWDg2XzY0KV0gZnJvbSBjb25kaXRpb25hbAotCWZvciBkZWZpbmluZyBTWVNfc29ja2V0X3N1YmNhbGwgZXQgYWwuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlIGZvciAjZXJyb3IgY2hlY2suCi0JKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBMaWtld2lzZSBmb3IgU1lTX3tzb2NrZXRjYWxsLGlwY30gY2FzZXMuCi0JRml4ZXMgUkgjMTU4OTM0LgorMjAxMS0wMy0xMCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotMjAwNS0wNi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlTaG93IG1vcmUgZGV0YWlscyBhYm91dCBzaWduYWxzIHJlY2VpdmVkIGJ5IHRyYWNlZCBwcm9jZXNzZXNzCisJKiBzdHJhY2UuYyBbIVVTRV9QUk9DRlNdICh0cmFjZSk6IERpZmZlcmVudGlhdGUgb3V0cHV0IGZvcm1hdCBkZXBlbmRpbmcKKwlvbiBQVFJBQ0VfR0VUU0lHSU5GTyBzdWNjZXNzIG9yIGZhaWx1cmUuICBJbiB0aGUgZm9ybWVyIGNhc2UsIHVzZQorCXByaW50c2lnaW5mbygpIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHJlY2VpdmVkIHNpZ25hbC4KIAotCSogZmlsZS5jIChwcmludHN0YXRmczY0KTogQ2FzdCB2YWx1ZXMgdG8gdW5zaWduZWQgbG9uZyBsb25nIGFuZCB1c2UKLQklbGx1IGZvcm1hdHMuCi0JRml4ZXMgUkgjMTU4MjQzLgorCUdldCByaWQgb2YgUFRfR0VUU0lHSU5GTworCSogc3RyYWNlLmMgWyFVU0VfUFJPQ0ZTXSAodHJhY2UpOiBBc3N1bWUgdGhhdCBQVFJBQ0VfR0VUU0lHSU5GTyBpcworCWF2YWlsYWJsZS4gIFJlcGxhY2UgUFRfR0VUU0lHSU5GTyB3aXRoIFBUUkFDRV9HRVRTSUdJTkZPLiAgVXNlCisJUFRSQUNFX0dFVFNJR0lORk8gZm9yIGFsbCBzaWduYWxzLgogCi0yMDA1LTA1LTMxICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCUVuaGFuY2UgZGVjb2Rpbmcgb2Yga2VybmVsLWdlbmVyYXRlZCBzaWduYWxzCisJKiBzaWduYWwuYyAocHJpbnRzaWdpbmZvKSBbTElOVVhdOiBEbyBub3QgcHJpbnQgdW5pbnRlcmVzdGluZworCXplcm8taW5pdGlhbGl6ZWQgZmllbGRzLgogCi0JRGVhbCB3aXRoIG1lbW9yeSBtYW5hZ2VtZW50IGlzc3Vlcy4KLQkqIGRlZnMuaCAodHByaW50X2lvdik6IFVwZGF0ZSBwcm90b3R5cGUuCi0JKiBkZXNjLmMgKHN5c19lcG9sbF93YWl0KSBbSEFWRV9TWVNfRVBPTExfSF06IERvIG5vdCBhbGxvY2F0ZQotCWVwb2xsX2V2ZW50IGFycmF5IG9mIGFyYml0cmFyeSBzaXplIG9uIHRoZSBzdGFjaywgdG8gYXZvaWQKLQlzdGFjayBvdmVyZmxvdy4KLQkqIGZpbGUuYyAocHJpbnRfeGF0dHJfdmFsKTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgZHVyaW5nCi0JbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KLQkqIGlvLmMgKHRwcmludF9pb3YpIFtIQVZFX1NZU19VSU9fSF06IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93Ci0JZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCi0JQ2hhbmdlIGlvdmVjIGFycmF5IGhhbmRsaW5nIHRvIGF2b2lkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24uCi0JKiBtZW0uYyAoZ2V0X25vZGVzKSBbTElOVVhdOiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyBkdXJpbmcKLQlzaXplIGNhbGN1bGF0aW9uIGFuZCBkbyBub3QgYWxsb2NhdGUgYXJyYXkgb2YgYXJiaXRyYXJ5IHNpemUgb24KLQl0aGUgc3RhY2ssIHRvIGF2b2lkIHN0YWNrIG92ZXJmbG93LgotCSogbmV0LmMgKHByaW50Y21zZ2hkcikgW0hBVkVfU0VORE1TR106IERvIG5vdCBhbGxvY2F0ZSBhcnJheSBvZgotCWFyYml0cmFyeSBzaXplIG9uIHRoZSBzdGFjaywgdG8gYXZvaWQgc3RhY2sgb3ZlcmZsb3cuICBEbyBub3QKLQl0cnVzdCBjbXNnLmNtc2dfbGVuIHRvIGF2b2lkIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgYWxsb2NhdGVkCi0Jb2JqZWN0LgotCShwcmludG1zZ2hkcikgW0hBVkVfU0VORE1TR106IFVwZGF0ZSB0cHJpbnRfaW92KCkgdXNhZ2UuCi0JKiBwcm9jZXNzLmMgKHN5c19zZXRncm91cHMpOiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyBkdXJpbmcKLQltYWxsb2Mgc2l6ZSBjYWxjdWxhdGlvbiwgdG8gYXZvaWQgaGVhcCBjb3JydXB0aW9uLiAgQ2hhbmdlIGdpZF90Ci0JYXJyYXkgaGFuZGxpbmcgdG8gYXZvaWQgaGVhcCBtZW1vcnkgYWxsb2NhdGlvbi4KLQkoc3lzX2dldGdyb3Vwcyk6IExpa2V3aXNlLgotCShzeXNfc2V0Z3JvdXBzMzIpIFtMSU5VWF06IExpa2V3aXNlLgotCShzeXNfZ2V0Z3JvdXBzMzIpIFtMSU5VWF06IExpa2V3aXNlLgotCSogc3RyZWFtLmMgKHN5c19wb2xsKSBbSEFWRV9TWVNfUE9MTF9IXTogQ2hlY2sgZm9yIGludGVnZXIKLQlvdmVyZmxvdyBkdXJpbmcgbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KLQlDaGFuZ2UgcG9sbGZkIGFycmF5IGhhbmRsaW5nIHRvIGF2b2lkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24uCi0JKiBzeXN0ZW0uYyAoc3lzX3N5c2N0bCkgW0xJTlVYXTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cKLQlkdXJpbmcgbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KLQkqIHV0aWwuYyAoZHVtcGlvdikgW0hBVkVfU1lTX1VJT19IXTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cKLQlkdXJpbmcgbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KLQlGaXhlcyBSSCMxNTkxOTYuCisJRml4IGRlY29kaW5nIG9mIHVzZXItZ2VuZXJhdGVkIHNpZ25hbHMKKwkqIHNpZ25hbC5jIFtMSU5VWF0gKFNJX0ZST01VU0VSKTogRGVmaW5lLgorCVtMSU5VWCB8fCBTVlI0XSAocHJpbnRzaWdpbmZvKSBbU0lfRlJPTVVTRVJdOiBFbmhhbmNlIGRlY29kaW5nLgogCi0JKiB1dGlsLmMgKHByaW50eHZhbCk6IENoYW5nZSB0aGlyZCBhcmd1bWVudCBmcm9tICJjaGFyICoiIHRvCi0JImNvbnN0IGNoYXIgKiIuCi0JKHByaW50ZmxhZ3MpOiBBZGQgdGhpcmQgYXJndW1lbnQsICJjb25zdCBjaGFyICoiLCB3aXRoIHNpbWlsYXIKLQltZWFuaW5nIHRvIHRoZSB0aGlyZCBhcmd1bWVudCBvZiBwcmludHh2YWwoKS4KLQkqIGRlZnMuaCAocHJpbnR4dmFsKTogQ2hhbmdlIHRoaXJkIGFyZ3VtZW50IGZyb20gImNoYXIgKiIgdG8KLQkiY29uc3QgY2hhciAqIi4KLQkocHJpbnRmbGFncyk6IEFkZCB0aGlyZCBhcmd1bWVudC4KLQkqIGJqbS5jIChzeXNfcXVlcnlfbW9kdWxlKSBbTElOVVhdOiBQYXNzIHRoaXJkIGFyZ3VtZW50IHRvCi0JcHJpbnRmbGFncygpLgotCSogZGVzYy5jIChzeXNfZmNudGwpOiBMaWtld2lzZS4KLQkoc3lzX2Zsb2NrKSBbTE9DS19TSF06IExpa2V3aXNlLgotCShwcmludF9lcG9sbF9ldmVudCkgW0hBVkVfU1lTX0VQT0xMX0hdOiBMaWtld2lzZS4KLQkqIGZpbGUuYyAoc3lzX29wZW4pOiBMaWtld2lzZS4KLQkoc29sYXJpc19vcGVuKSBbTElOVVhTUEFSQ106IExpa2V3aXNlLgotCShzeXNfYWNjZXNzKTogTGlrZXdpc2UuCi0JKHN5c19jaGZsYWdzLCBzeXNfZmNoZmxhZ3MpIFtGUkVFQlNEXTogTGlrZXdpc2UuCi0JKHJlYWxwcmludHN0YXQpIFtIQVZFX0xPTkdfTE9OR19PRkZfVCAmJgotCUhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1NdOiBMaWtld2lzZS4KLQkocHJpbnRzdGF0NjQpIFtIQVZFX1NUQVQ2NCAmJgotCUhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1NdOiBMaWtld2lzZS4KLQkoc3lzX3NldHhhdHRyLCBzeXNfZnNldHhhdHRyKTogTGlrZXdpc2UuCi0JKiBpcGMuYyAoc3lzX21zZ2dldCwgc3lzX21zZ3NuZCwgc3lzX21zZ3Jjdiwgc3lzX3NlbWdldCwKLQlzeXNfc2htZ2V0LCBzeXNfc2htYXQpIFtMSU5VWCB8fCBTVU5PUzQgfHwgRlJFRUJTRF06IExpa2V3aXNlLgotCShzeXNfbXFfb3BlbikgW0xJTlVYXTogTGlrZXdpc2UuCi0JKHByaW50bXFhdHRyKSBbSEFWRV9NUVVFVUVfSF06IExpa2V3aXNlLgotCSogbWVtLmMgKHByaW50X21tYXApIFshSEFWRV9MT05HX0xPTkdfT0ZGX1RdOiBMaWtld2lzZS4KLQkoc3lzX21tYXA2NCkgW19MRlM2NF9MQVJHRUZJTEUgfHwgSEFWRV9MT05HX0xPTkdfT0ZGX1RdOiBMaWtld2lzZS4KLQkoc3lzX21wcm90ZWN0KTogTGlrZXdpc2UuCi0JKHN5c19tcmVtYXAsIHN5c19tYWR2aXNlLCBzeXNfbWxvY2thbGwpIFtMSU5VWF06IExpa2V3aXNlLgotCShzeXNfbXN5bmMpIFtNU19BU1lOQ106IExpa2V3aXNlLgotCShzeXNfbWN0bCkgW01DX1NZTkNdOiBMaWtld2lzZS4KLQkoc3lzX3JlbWFwX2ZpbGVfcGFnZXMsIHN5c19tYmluZCwgc3lzX2dldF9tZW1wb2xpY3kpIFtMSU5VWF06Ci0JTGlrZXdpc2UuCi0JKiBuZXQuYyAocHJpbnRtc2doZHIpIFtIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0xdOiBMaWtld2lzZS4KLQkoc3lzX3NlbmQsIHN5c19zZW5kdG8pOiBMaWtld2lzZS4KLQkoc3lzX3NlbmRtc2cpIFtIQVZFX1NFTkRNU0ddOiBMaWtld2lzZS4KLQkoc3lzX3JlY3YsIHN5c19yZWN2ZnJvbSk6IExpa2V3aXNlLgotCShzeXNfcmVjdm1zZykgW0hBVkVfU0VORE1TR106IExpa2V3aXNlLgotCShwcmludGljbXBmaWx0ZXIpIFtJQ01QX0ZJTFRFUl06IExpa2V3aXNlLgotCSogcHJvYy5jIChwcm9jX2lvY3RsKSBbU1ZSNCAmJiAhSEFWRV9NUF9QUk9DRlMgfHwgRlJFRUJTRF06IExpa2V3aXNlLgotCSogcHJvY2Vzcy5jIChzeXNfY2xvbmUpIFtMSU5VWF06IExpa2V3aXNlLgotCShwcmludHdhaXRuKTogTGlrZXdpc2UuCi0JKHN5c193YWl0aWQpIFtTVlI0IHx8IExJTlVYXTogTGlrZXdpc2UuCi0JKiBzaWduYWwuYyAoc3lzX3NpZ3ZlYykgW1NVTk9TNCB8fCBGUkVFQlNEXTogTGlrZXdpc2UuCi0JKHN5c19zaWdhY3Rpb24pOiBMaWtld2lzZS4KLQkocHJpbnRjb250ZXh0KSBbU1ZSNF06IExpa2V3aXNlLgotCShwcmludF9zdGFja190KSBbTElOVVgpIHx8IEZSRUVCU0RdOiBMaWtld2lzZS4KLQkoc3lzX3J0X3NpZ2FjdGlvbikgW0xJTlVYXTogTGlrZXdpc2UuCi0JKiBzb2NrLmMgKHNvY2tfaW9jdGwpIFtMSU5VWF06IExpa2V3aXNlLgotCSogc3RyZWFtLmMgKHN5c19wdXRtc2csIHN5c19nZXRtc2cpOiBMaWtld2lzZS4KLQkoc3lzX3B1dHBtc2cpIFtTWVNfcHV0cG1zZ106IExpa2V3aXNlLgotCShzeXNfZ2V0cG1zZykgW1NZU19nZXRwbXNnXTogTGlrZXdpc2UuCi0JKHN5c19wb2xsKTogTGlrZXdpc2UuCi0JKHByaW50X3RyYW5zcG9ydF9tZXNzYWdlKSBbVElfQklORF06IExpa2V3aXNlLgotCShzdHJlYW1faW9jdGwpOiBMaWtld2lzZS4KLQkqIHN5c3RlbS5jIChzeXNfbW91bnQsIHN5c19yZWJvb3QpOiBMaWtld2lzZS4KLQkoc3lzX2NhY2hlZmx1c2gpIFtMSU5VWCAmJiBNNjhLXTogTGlrZXdpc2UuCi0JKHN5c19jYXBnZXQsIHN5c19jYXBzZXQpIFtTWVNfY2FwZ2V0XTogTGlrZXdpc2UuCi0JKiB0ZXJtLmMgKHRlcm1faW9jdGwpIFtUSU9DTUdFVF06IExpa2V3aXNlLgotCSogdGltZS5jIChzeXNfY2xvY2tfbmFub3NsZWVwLCBzeXNfdGltZXJfc2V0dGltZSkgW0xJTlVYXToKLQlMaWtld2lzZS4KLQlGaXhlcyBSSCMxNTkzMTAuCisJUmVjb2duaXplIFNJX0tFUk5FTCBhbmQgU0lfQVNZTkNOTAorCSogc2lnbmFsLmMgW0xJTlVYXSAoU0lfS0VSTkVMLCBTSV9BU1lOQ05MKTogRGVmaW5lLgorCVtMSU5VWCB8fCBTVlI0XSAoc2lnaW5mb19jb2Rlcyk6IEFkZCBlbnRyaWVzIGZvciBTSV9LRVJORUwgYW5kCisJU0lfQVNZTkNOTCwgcmVvcmRlciBlbnRyaWVzLgogCi0JKiBiam0uYyAoc3lzX3F1ZXJ5X21vZHVsZSkgW0xJTlVYXTogVW5pdGl6ZSAib3V0IG9mIG1lbW9yeSIKLQllcnJvcnMgcmVwb3J0aW5nIHN0eWxlLgotCSogc3RyYWNlLmMgKHJlYnVpbGRfcG9sbHYpIFtVU0VfUFJPQ0ZTXTogTGlrZXdpc2UuCi0JKiBzeXN0ZW0uYyAoc3lzX2NhcGdldCwgc3lzX2NhcHNldCkgW1NZU19jYXBnZXRdOiBMaWtld2lzZS4KLQkqIHV0aWwuYyAocHJpbnRzdHIpOiBMaWtld2lzZS4KLQkoZHVtcGlvdikgW0hBVkVfU1lTX1VJT19IXTogTGlrZXdpc2UuCi0JKGZpeHZmb3JrKSBbU1VOT1M0XTogTGlrZXdpc2UuCi0JKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBDb250aW51ZSB0byBkZWNvZGUgc3lzY2FsbCBhcmd1bWVudHMKLQlpbiBjYXNlIG9mIE9PTSBjb25kaXRpb24uCi0JKiBmaWxlLmMgKHN5c19nZXRkZW50cyk6IExpa2V3aXNlLgotCShzeXNfZ2V0ZGVudHM2NCkgW19MRlM2NF9MQVJHRUZJTEVdOiBMaWtld2lzZS4KLQkoc3lzX2dldGRpcmVudHJpZXMpIFtGUkVFQlNEXTogTGlrZXdpc2UuCi0JKiBtZW0uYyAoc3lzX21pbmNvcmUpOiBDaGFuZ2VkIHR5cGUgb2YgdmFyaWFibGVzIHdoaWNoIGRlYWwgd2l0aAotCW1hbGxvYyBzaXplIGZyb20gaW50IHRvIHVuc2lnbmVkIGxvbmcuCi0JRml4ZXMgUkgjMTU5MzA4LgorMjAxMS0wMy0wNSAgU2ViYXN0aWFuIFBpcHBpbmcgIDxzZWJhc3RpYW5AcGlwcGluZy5vcmc+CiAKLTIwMDUtMDUtMjIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisJVGFrZSBhbGwgZ2l0IGJyYW5jaGVzIGludG8gYWNjb3VudCBmb3IgZ2VuZXJhdGlvbiBvZiBDUkVESVRTIGZpbGUKKwkqIE1ha2VmaWxlLmFtOiBNYWtlIENSRURJVFMgdGFyZ2V0IGRlcGVuZCBvbiBhbGwgZ2l0IGJyYW5jaGVzLgogCi0JKiBiam0uYyBbTElOVVhdOiBEbyBub3QgaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPi4gIEl0IGlzIG5vdAotCXNhZmUgdG8gaW5jbHVkZSBrZXJuZWwgaGVhZGVycywgYW5kIHRoaXMgb25lIGlzIG5vdCB1c2VkIGFueXdheS4KLQlGaXhlcyBSSCMxNTg0ODguCisyMDExLTAzLTA0ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgogCi0yMDA1LTA1LTI2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCUZpeCBkZWNvZGluZyBvZiBmaWxlIGRlc2NyaXB0b3JzCisJKiBkZWZzLmggKHByaW50ZmQpOiBOZXcgZnVuY3Rpb24gcHJvdG90eXBlLgorCSogdXRpbC5jIChwcmludGZkKTogTmV3IGZ1bmN0aW9uLgorCSogZmlsZS5jIChwcmludF9kaXJmZCk6IFVwZGF0ZSBwcm90b3R5cGUgdG8gdXNlIHByaW50ZmQoKS4KKwkoc3lzX29wZW5hdCwgc3lzX2ZhY2Nlc3NhdCwgc3lzX25ld2ZzdGF0YXQsIHN5c19ta2RpcmF0LCBzeXNfbGlua2F0LAorCXN5c191bmxpbmthdCwgc3lzX3JlYWRsaW5rYXQsIHN5c19yZW5hbWVhdCwgc3lzX2ZjaG93bmF0LCBzeXNfZmNobW9kYXQsCisJc3lzX2Z1dGltZXNhdCwgc3lzX3V0aW1lbnNhdCwgc3lzX21rbm9kYXQpOiBVcGRhdGUgdXNlIG9mIHByaW50X2RpcmZkKCkuCisJKHN5c19sc2Vlaywgc3lzX2xsc2Vlaywgc3lzX3JlYWRhaGVhZCwgc3lzX2Z0cnVuY2F0ZSwgc3lzX2Z0cnVuY2F0ZTY0LAorCXN5c19mc3RhdCwgc3lzX2ZzdGF0NjQsIHN5c19vbGRmc3RhdCwgc3lzX2ZzdGF0ZnMsIHN5c19mc3RhdGZzNjQsCisJc3lzX2ZjaGRpciwgc3lzX2ZjaHJvb3QsIHN5c19saW5rYXQsIHN5c19mY2hvd24sIHN5c19mY2htb2QsIHN5c19mc3luYywKKwlzeXNfcmVhZGRpciwgc3lzX2dldGRlbnRzLCBzeXNfZ2V0ZGlyZW50cmllcywgc3lzX2ZzZXR4YXR0ciwKKwlzeXNfZmdldHhhdHRyLCBzeXNfZmxpc3R4YXR0ciwgc3lzX2ZyZW1vdmV4YXR0ciwgc3lzX2ZhZHZpc2U2NCwKKwlzeXNfZmFkdmlzZTY0XzY0LCBzeXNfaW5vdGlmeV9hZGRfd2F0Y2gsIHN5c19pbm90aWZ5X3JtX3dhdGNoLAorCXN5c19mYWxsb2NhdGUpOiBVc2UgcHJpbnRmZCgpIGZvciBkZWNvZGluZyBvZiBmaWxlIGRlc2NyaXB0b3JzLgorCSogZGVzYy5jIChzeXNfZmNudGwsIHN5c19mbG9jaywgc3lzX2Nsb3NlLCBzeXNfZHVwLCBkb19kdXAyLAorCWRlY29kZV9zZWxlY3QsIHN5c19lcG9sbF9jdGwsIGVwb2xsX3dhaXRfY29tbW9uKTogVXNlIHByaW50ZmQoKSBmb3IKKwlkZWNvZGluZyBvZiBmaWxlIGRlc2NyaXB0b3JzLgorCSogaW8uYyAoc3lzX3JlYWQsIHN5c193cml0ZSwgc3lzX3JlYWR2LCBzeXNfd3JpdGV2LCBzeXNfcHJlYWQsCisJc3lzX3B3cml0ZSwgc3lzX3NlbmRmaWxlLCBzeXNfc2VuZGZpbGU2NCwgc3lzX3ByZWFkNjQsIHN5c19wd3JpdGU2NCwKKwlzeXNfaW9jdGwpOiBMaWtld2lzZS4KKwkqIG1lbS5jIChwcmludF9tbWFwLCBzeXNfbW1hcDY0KTogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoZG9fc2lnbmFsZmQpOiBMaWtld2lzZS4KKwkqIHN0cmVhbS5jIChkZWNvZGVfcG9sbCk6IExpa2V3aXNlLgorCSogdGltZS5jIChzeXNfdGltZXJmZF9zZXR0aW1lLCBzeXNfdGltZXJmZF9nZXR0aW1lKTogTGlrZXdpc2UuCisJQmFzZWQgb24gcGF0Y2ggZnJvbSBHcmFudCBFZHdhcmRzIDxncmFudC5iLmVkd2FyZHNAZ21haWwuY29tPi4KIAotCSogc3lzdGVtLmMgKHN5c19zeXNjdGwpOiBDaGVjayBmb3IgZXJyb3JzIGFjY2Vzc2luZyB1c2VyIHBvaW50ZXJzLgotCVVzZSBtYWxsb2MgaW5zdGVhZCBvZiBhbGxvY2EgaW4gY2FzZSBzaXplIGlzIGluc2FuZS4KKzIwMTEtMDMtMDMgIFNlYmFzdGlhbiBQaXBwaW5nICA8c2ViYXN0aWFuQHBpcHBpbmcub3JnPgogCi0yMDA1LTA1LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCVByaW50IHNodXRkb3duKDIpIG1vZGVzIGFzIFNIVVRfKiBjb25zdGFudHMKKwkqIG5ldC5jIChzaHV0ZG93bl9tb2Rlcyk6IE5ldyB4bGF0IHN0cnVjdHVyZS4KKwkoc3lzX3NodXRkb3duKTogVXNlIHNodXRkb3duX21vZGVzIHRvIGRlY29kZSAybmQgc3lzY2FsbCBhcmd1bWVudC4KIAotCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgbGliYWlvLmguCi0JKiBkZXNjLmMgKHN5c19pb19zZXR1cCwgc3lzX2lvX3N1Ym1pdCwgc3lzX2lvX2NhbmNlbCwKLQlzeXNfaW9fZ2V0ZXZlbnRzLCBzeXNfaW9fZGVzdHJveSk6IE5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHRob3NlIGZvciBpb18qIHN5c2NhbGxzLgotCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQlGcm9tIFphY2ggQnJvd24gPHphY2guYnJvd25Ab3JhY2xlLmNvbT4uCi0JRml4ZXMgUkgjMTU1MDY1LgorCUZpeCBkZWNvZGluZyBvZiBpbm90aWZ5X2luaXQxKCkgZmxhZ3MKKwkqIGZpbGUuYyAoaW5vdGlmeV9pbml0X2ZsYWdzKTogTmV3IHhsYXQgc3RydWN0dXJlLgorCShzeXNfaW5vdGlmeV9pbml0MSk6IFVzZSBpdCBpbnN0ZWFkIG9mIG9wZW5fbW9kZV9mbGFncy4KIAotCSogZGViaWFuL2NvbnRyb2wgKEFyY2hpdGVjdHVyZSk6IEFkZCBwcGM2NC4KLQlGaXhlcyBEZWJpYW4gYnVnICMzMDEwODkuCisyMDExLTAzLTAzICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgogCi0yMDA1LTA1LTA1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+CisJRml4IHN0cnVjdCB4bGF0IGluaXRpYWxpemF0aW9uIGJ1Z3MKKwkqIGZpbGUuYyAoaW5vdGlmeV9tb2Rlcyk6IFRlcm1pbmF0ZSB3aXRoIE5VTEwgZW50cnkuCisJKiBuZXQuYyAoc29ja190eXBlX2ZsYWdzKTogTWFrZSB0aGlzIGFycmF5IHN0YXRpYy4KKwkoc29ja2V0bGF5ZXJzKTogQWRkIGEgY29tbWVudCB0aGF0IHRoaXMgYXJyYXkgc2hvdWxkIHJlbWFpbiBub3QKKwlOVUxMLXRlcm1pbmF0ZWQuCiAKLQkqIHByb2Nlc3MuYyAocHRyYWNlX2NtZHMpOiBBZGQgUFRSQUNFX0dFVFZSUkVHUyBhbmQgUFRSQUNFX1NFVFZSUkVHUwotCWlmIGRlZmluZWQuCisJdGVzdHM6IGF2b2lkIFNJR1BJUEUKKwkqIHRlc3RzL3B0cmFjZV9zZXRvcHRpb25zOiBSZXBsYWNlICJncmVwIC1xIiB3aXRoICJncmVwID4gL2Rldi9udWxsIi4KKwlUaGUgZm9ybWVyIG1heSByZXN1bHQgdG8gc3RyYWNlIGJlaW5nIGtpbGxlZCBieSBTSUdQSVBFLCB3aGljaCBpbgorCWNlcnRhaW4gY29uZmlndXJhdG9ucyBtYXkgbGVhZCB0byBnZW5lcmF0aW9uIG9mIGEgY29yZSBmaWxlLgorCVN1Z2dlc3RlZCBieSBNaWtlIEZyeXNpbmdlci4KIAotMjAwNS0wNS0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKzIwMTEtMDMtMDEgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CiAKLQkqIHN0cmFjZS5jIChtYWluKTogUmVmdXNlIG5lZ2F0aXZlIC1zIGFyZ3VtZW50IHZhbHVlLgotCUZpeGVzIERlYmlhbiBidWcgIzMwMzI1Ni4KLQotMjAwNS0wNC0yNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgotCi0JKiBmaWxlLmMgKG9wZW5tb2Rlcyk6IEFkZCBPX05PQVRJTUUgZmxhZyBpZiBkZWZpbmVkLgotCi0yMDA1LTA0LTA1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+Ci0KLQkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQuCi0KLQkqIHNpZ25hbC5jIChzaWduYW1lKTogRG9uJ3QgdHJ5IGFuZCBkZXJlZmVyZW5jZSBuZWdhdGl2ZSBpbmRleC4KLQotCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IEFkZCBkZWJ1Z19zZXRjb250ZXh0LCB2c2VydmVyLAotCW1iaW5kLCAqX21lbXBvbGljeSwgbXFfKiwgc3lzX2tleGVjX2xvYWQsIGFkZF9rZXksIHJlcXVlc3Rfa2V5LAotCWtleWN0bCwgd2FpdGlkLCBzeXNfc2VtdGltZWRvcC4gIEZpeCB2YXJpb3VzIG90aGVyIHN5c2NhbGxzLgotCi0JKiBpcGMuYyAoc2htX3Jlc291cmNlX2ZsYWdzKTogTmV3IHZhcmlhYmxlLCB0YWJsZSBoYXMgU0hNX0hVR0VUTEIKLQlidXQgbm90IElQQ19OT1dBSVQsIHdoaWNoIGhhdmUgdGhlIHNhbWUgdmFsdWUuCi0JKHN5c19zaG1nZXQpOiBVc2UgdGhhdCBpbnN0ZWFkIG9mIHJlc291cmNlX2ZsYWdzLgotCi0yMDA1LTAzLTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBJbmNyZWFzZSBsb2NhbCBidWZmZXIgc2l6ZS4KLQlGaXhlcyBSSCMxNTE1NzAuCi0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTEuCi0JKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjExLTEuCi0KLQkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEZpeCAxMTMgZW50cnkgKHN5c2NhbGwsIG5vdCB2bTg2b2xkKS4KLQotMjAwNS0wMy0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xMC4KLQkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuMTAtMS4KLQotMjAwNS0wMi0yNiAgR09UTyBNYXNhbm9yaSAgPGdvdG9tQGRlYmlhbi5vci5qcD4KLQotCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBGaXggdGhlIHJldmVyc2VkIG9yZGVyIG9mIGxzdGF0NjQgYW5kCi0JZnN0YXQ2NC4gIENsZWFuIHVwIG9zZl9ucmVjdm1zZyBhbmQgb3NmX25nZXRzb2NrbmFtZS4KLQotMjAwNS0wMi0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KLQotCSogc3lzY2FsbC5jIChnZXRydmFsMik6IE1vdmUgI2lmZGVmIElBNjQgaW5zaWRlICNpZmRlZiBMSU5VWC4KLQotMjAwNS0wMy0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB2YXJpb3VzIGNhbGxzLgotCUZyb20gVGhpZW1vIFNldWZlciA8dGhzQG5ldHdvcmtuby5kZT4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU2Njg0LgotCi0JKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIHMzOTAuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjk0MTcyLgotCi0yMDA1LTAzLTA2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtQVFJBQ0VfR0VUU0lHSU5GT106IEZldGNoIHNpZ2luZm9fdCBmb3IgU0lHU0VHVgotCWFuZCBTSUdCVVMgc2lnbmFscywgdXNlIHNpX2FkZHIgaW4gb3V0cHV0LgotCi0yMDA1LTAzLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IEFkZCBhIGNhc3QuCi0KLTIwMDUtMDItMDUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IENhbGN1bGF0ZSBzaXplIG9mIHBhc3NlZCBmZF9zZXQgdmVjdG9ycyBhbmQKLQljb3B5IGluIHRoZSB1c2VyJ3Mgc2l6ZSByYXRoZXIgdGhhbiB0aGUgc3RhbmRhcmQgc2l6ZW9mKGZkX3NldCkuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjNjU2NTQsICMyODQyOTAuCi0KLQkqIHV0aWwuYyAocHJpbnRwYXRoLCBwcmludHBhdGhuKTogUHJpbnQgTlVMTCBhbmQgZG9uJ3QgdHJ5IGFueSBmZXRjaAotCXdoZW4gQUREUiBpcyB6ZXJvLgotCUZpeGVzIERlYmlhbiBidWcgIzYzMDkzLgotCi0JKiBkZWJpYW4vY29udHJvbCAoQnVpbGQtRGVwZW5kcyk6IEZpeCBmb3IgczM5MCBhbmQgc3BhcmMuCi0JRnJvbSBCYXN0aWFuIEJsYW5rIDx3YWxkaUBkZWJpYW4ub3JnPi4KLQlGaXhlcyBEZWJpYW4gYnVnICMyOTM1NjQuCi0KLTIwMDQtMTItMTkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIHN0cmFjZS5jIChtYWluKSBbIVVTRV9QUk9DRlNdOiBJbiBjaGlsZCBwcm9jZXNzLCByYWlzZSBTSUdTVE9QCi0JcmlnaHQgYmVmb3JlIGV4ZWN2KCkgY2FsbC4gIFJlbW92ZSBmYWtlX2V4ZWN2ZSgpIGNhbGwuCi0JKiBkZWZzLmggKGZha2VfZXhlY3ZlKTogUmVtb3ZlIHVudXNlZCBkZWNsYXJhdGlvbi4KLQkqIHByb2Nlc3MuYyAoZmFrZV9leGVjdmUpOiBSZW1vdmUgdW51c2VkIGZ1bmN0aW9uLgotCUZpeGVzIFJIIzE0MzM2NS4KLQotMjAwNS0wMi0wNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS45LgotCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS45LTIuCi0KLQkqIGZpbGUuYyAoT19MQVJHRUZJTEUpOiBPbWl0IHdoZW4gI3VuZGVmJ2QgYmVjYXVzZSBpdCB3YXMgemVyby4KLQotMjAwNS0wMi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogZGViaWFuL2NvbnRyb2w6IEFkZCBzdHJhY2UtdWRlYiBwYWNrYWdlIGZvciBpbnN0YWxsZXIgZGVidWdnaW5nLgotCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IEJ1aWxkIGl0LgotCUZyb20gSm9zaHVhIEt3YW4gPGpvc2hrQHRyaXBsZWhlbGl4Lm9yZz4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjY4Mjk0LgotCi0JKiBmaWxlLmMgKG9wZW5tb2RlcykgW09fTEFSR0VGSUxFXSBbT19MQVJHRUZJTEUgPT0gMF06IFJlZGVmaW5lIHRvCi0Ja25vd24gdmFsdWVzIGZvciBMaW51eC4KLQotCSogdXRpbC5jIChwcmludGNhbGwpOiBQcmludCAxNiA/cyB3aGVuIGxvbmcgaXMgOCBieXRlcy4KLQlGaXhlcyBSSCMxNDY5MzIuCi0KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfZXBvbGxfY3JlYXRlLCBzeXNfZXBvbGxfY3RsLAotCXN5c19lcG9sbF93YWl0LgotCSogbGludXgvc3BhcmM2NC9zeXNjYWxsLmg6IEp1c3QgI2luY2x1ZGUgIi4uL3NwYXJjL3N5c2NhbGwuaCIgaGVyZS4KLQkqIGlvY3RsLmMgKG5pb2N0bGVudHMyKTogQWRkIGNvbnN0IHRvIHR5cGUuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjc4NDQ5LgotCi0JKiBzb2NrLmMgKGlmZmZsYWdzKTogTmV3IHZhcmlhYmxlLCB0YWJsZSBvZiBJRkZfKiB2YWx1ZXMuCi0JKHByaW50X2FkZHIpOiBOZXcgZnVuY3Rpb24uCi0JKHNvY2tfaW9jdGwpOiBIYW5kbGUgU0lPQ0dJRkFERFIsIFNJT0NHSUZEU1RBRERSLCBTSU9DR0lGQlJEQUREUiwKLQlTSU9DR0lGTkVUTUFTSywgU0lPQ0dJRkZMQUdTLCBTSU9DR0lGTUVUUklDLCBTSU9DR0lGTVRVLCBTSU9DR0lGU0xBVkUsCi0JU0lPQ0dJRkhXQUREUi4JVXNlIHByaW50X2FkZHIgZm9yIFNJT0NHSUZDT05GLCBTSU9DR0lGTkFNRSwgYW5kCi0JU0lPQ0dJRklOREVYLCBhbmQgZml4IHRoZWlyIG91dHB1dC4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzEzODIyMy4KLQlGaXhlcyBEZWJpYW4gYnVnICMxOTIxNjQuCi0KLTIwMDQtMTItMjAgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIGNvbmZpZ3VyZS5hYzogVXNlIEFDX0dOVV9TT1VSQ0UgbWFjcm8gaW5zdGVhZCBvZiBjaGFuZ2luZyBDRkxBR1MuCi0JKiBkZWZzLmggW0hBVkVfQ09ORklHX0hdOiBJbmNsdWRlIGNvbmZpZy5oIGZpcnN0LgotCSogc3RyYWNlLmM6IEluY2x1ZGUgImRlZnMuaCIgZmlyc3QuCi0JRml4ZXMgUkgjMTQzMzcwLgotCi0JKiBzeXNjYWxsLmMgKGNhbGxfc3VtbWFyeSk6IEZpeCBwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZS4KLQlGaXhlcyBSSCMxNDMzNjkuCi0KLTIwMDQtMTItMTkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBDaGVjayBib3VuZHMgZm9yIG51bWVyaWMgc2lnbmFsIG5hbWVzLgotCUZpeCBwYXJzZXIgb2Ygc3ltYm9saWMgc2lnbmFsIG5hbWVzLgotCUZpeCByZXR1cm4gY29kZSwgYXMgcmVxdWlyZWQgYnkgcXVhbGlmeSgpIGZ1bmN0aW9uLgotCSogc3lzY2FsbC5jIChxdWFsX2Rlc2MpOiBDaGVjayBib3VuZHMgZm9yIGRlc2NyaXB0b3IgbnVtYmVyLgotCSogc3lzY2FsbC5jIChxdWFsX3N5c2NhbGwpOiBDb3JyZWN0IHJldHVybiBjb2RlLCB0byBiZSBjb25zaXN0ZW50Ci0Jd2l0aCBxdWFsaWZ5KCkgYW5kIG90aGVyIHF1YWxfKiBmdW5jdGlvbnMuCi0JRml4ZXMgUkgjMTQzMzYyLgotCi0yMDA1LTAyLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzeXN0ZW0uYyBbTElOVVhdIChNU19NQU5ETE9DSywgTVNfTk9BVElNRSwgTVNfTk9ESVJBVElNRSwgTVNfQklORCwKLQlNU19NT1ZFLCBNU19SRUMsIE1TX1ZFUkJPU0UsIE1TX1BPU0lYQUNMLCBNU19BQ1RJVkUsIE1TX05PVVNFUik6Ci0JTmV3IG1hY3Jvcy4KLQlbTElOVVhdIChtb3VudF9mbGFncyk6IEFkZCB0aGVtLgotCVtMSU5VWF0gKHN5c19tb3VudCk6IElmIGFueSBvZiAoTVNfQklORHxNU19NT1ZFfE1TX1JFTU9VTlQpIGJpdHMgYXJlCi0Jc2V0IGluIHRoZSBmbGFncyBhcmd1bWVudCwgZG9uJ3QgdHJ5IHRvIGZldGNoIHRoZSBmaWxlc3lzdGVtIHN0cmluZy4KLQlGaXhlcyBSSCMxNDE5MzIuCi0KLQkqIGNvbmZpZy5ndWVzczogVXBkYXRlIGZyb20gY2Fub25pY2FsIHZlcnNpb24sIHRpbWVzdGFtcCAyMDA0LTExLTEyLgotCSogY29uZmlnLnN1YjogTGlrZXdpc2UsIHRpbWVzdGFtcCAyMDA0LTExLTMwLgotCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSBbWDg2XzY0XSAoc3lzX2FyY2hfcHJjdGwpOiBOZXcgZnVuY3Rpb24uCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVc2UgaXQuCi0JUGFydCBvZiBSSCMxNDI2NjcuCi0KLQkqIHByb2Nlc3MuYyAoc3lzX3NjaGVkX3NldHNjaGVkdWxlcik6IFVzZSAlI2x4IGZvcm1hdCBmb3IgYmFkIHBvaW50ZXIuCi0JKHN5c19zY2hlZF9nZXRwYXJhbSwgc3lzX3NjaGVkX3NldHBhcmFtKTogTGlrZXdpc2UuCi0JUGFydCBvZiBSSCMxNDI2NjcuCi0KLQkqIHNpZ25hbC5jIFtIQVZFX1NJR0FDVElPTl0gW0xJTlVYICYmIFg4Nl82NF0gKFNBX1JFU1RPUkVSKTogRGVmaW5lCi0JaGVyZSB0b28uCi0JUGFydCBvZiBSSCMxNDI2NjcuCi0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHN5c19taW5jb3JlIGluc3RlYWQgb2YgcHJpbnRhcmdzLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuICBBbHNvIHVzZSBzeXNfZ2V0cmxpbWl0LAotCXN5c19zZW10aW1lZG9wLCBzeXNfdW1vdW50Mi4KLQlQYXJ0IG9mIFJIIzE0MjY2Ny4KLQotCSogc3lzY2FsbC5jIChxdWFsX3NpZ25hbCk6IEZpeCBpbnZlcnRlZCByZXR1cm4gdmFsdWUgYW5kIGJvZ3VzCi0JYXJndW1lbnQgdG8gcXVhbGlmeV9vbmUgaW4gdGhlIG5hbWVkIGNhc2UuCi0KLQkqIGZpbGUuYyAocHJpbnRfeGF0dHJfdmFsKTogRG9uJ3QgdXNlIGF1dG8gYXJyYXkgc2l6ZWQgYnkgc3lzY2FsbAotCWFyZ3VtZW50LiAgVXNlIG1hbGxvYyBpbnN0ZWFkLCBzbyBpdCBjYW4gZmFpbCBmb3IgaW5zYW5lIHZhbHVlcy4KLQlGaXhlcyBEZWJpYW4gYnVnICMyODM3MDQuCi0KLQkqIG5ldC5jIChzeXNfZ2V0c29ja29wdCk6IEZpeCBhIGZvcm1hdCAlbGQgLT4gJWQuCi0KLQkqIGxpbnV4L3N5c2NhbGwuaCBbSUE2NF0gKFNZU19zZW10aW1lZG9wKTogI3VuZGVmIGl0LgotCi0JKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpIFtYODZfNjRdOiBGaXggMzItYml0IGFyZ3VtZW50IHJlZ2lzdGVyIG1hcAotCW5vdCB0byBkb3VibGUgdGhlIG1pZGRsZSBlbnRyeSEKLQlGaXhlcyBSSCMxNDYwOTMuCi0KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEZpeCBleGl0X2dyb3VwIGVudHJ5LgotCi0JKiB1dGlsLmMgKGdldHBjKSBbUzM5MCB8fCBTMzkwWF06IEltcGxlbWVudCBpdC4KLQlQYXRjaCBieSBEYXZpZCBXaWxkZXIgPHdpbGRlckB1cy5pYm0uY29tPi4KLQotCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEFkZCBmYWR2aXNlNjQsIGZzdGF0ZnM2NCwgc3RhdGZzNjQsIG1iaW5kLAotCVtnc11ldF9tZW1wb2xpY3ksIG1xXyosIHN5c19rZXhlY19sb2FkLCB2c2VydmVyLCBhbmQgd2FpdGlkLgotCUZpeGVzIFJIIzE0NjI0NS4KLQotMjAwNS0wMS0yMiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KLQotCSogbmV0LmMgKHN5c19nZXRzb2Nrb3B0KTogQ2hhbmdlIHR5cGUgb2YgbGVuIHRvIGludC4KLQotMjAwNC0xMC0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS44LgotCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS44LTEuCi0KLQkqIGZpbGUuYyAoc3lzX2ZhZHZpc2U2NCk6IENvbmRpdGlvbmFsaXplIGp1c3Qgb24gW0xJTlVYXS4KLQotCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3Igc3lzL2Vwb2xsLmguCi0JKiBkZXNjLmM6IFByb3RlY3QgI2luY2x1ZGUgPHN5cy9lcG9sbC5oPiB3aXRoIFtIQVZFX1NZU19FUE9MTF9IXS4KLQkoZXBvbGxjdGxzLCBlcG9sbGV2ZW50cyk6IFByb3RlY3QgZWFjaCBlbnRyeSB3aXRoICNpZmRlZiBvbiBpdHMgbWFjcm8uCi0KLQkqIHN0cmFjZS5jIChoYW5kbGVfZ3JvdXBfZXhpdCk6IERvbid0IGRldGFjaCBsZWFkZXIgdGhhdCB3YXNuJ3QKLQlUQ0JfQVRUQUNIRUQuICBJbnN0ZWFkIG1hcmsgaXQgd2l0aCBUQ0JfR1JPVVBfRVhJVElORy4KLQlSZW1vdmUgZHJvcHRjYiBsb29wIGF0IGVuZCwgbm8gbG9uZ2VyIHJlcXVpcmVkIHNpbmNlIDIuNiByZXBvcnRzIGVhY2gKLQl0aHJlYWQgZGVhdGguCi0JRml4ZXMgUkgjMTM1MjU0LgotCi0JKiBzdHJhY2UuYyAodHJhY2UpOiBVc2UgaGFuZGxlX2dyb3VwX2V4aXQgZm9yIG5vbi1UQ0JfQVRUQUNIRUQgY2hpbGQKLQl0YWtpbmcgc2lnbmFsIHdoZW4gaXQgaGFzIG5jbG9uZV90aHJlYWRzID4gMC4KKwl0ZXN0czogZG8gbm90IG1ha2UgbWlzc2luZyAvdXNyL2Jpbi90aW1lIGEgZmFpbHVyZQorCSogdGVzdHMvaW5pdC5zaCAoZnJhbWV3b3JrX3NraXBfKTogTmV3IGZ1bmN0aW9uLgorCShjaGVja19wcm9nKTogVXNlIGl0IGluc3RlYWQgb2YgZnJhbWV3b3JrX2ZhaWx1cmVfLgogCi0JKiBzdHJhY2UuYyAoaGFuZGxlX2dyb3VwX2V4aXQsIHRyYWNlKTogTWFyayBsZWFkZXIgd2l0aAotCVRDQl9HUk9VUF9FWElUSU5HIGFuZCBkb24ndCBiZSBzdXJwcmlzZWQgYXQgY2hpbGQgZGVhdGhzIHdoZW4gdGhlaXIKLQlsZWFkZXIgaGFzIGl0IHNldC4KLQlGaXhlcyBSSCMxMzIxNTAuCisyMDExLTAyLTI3ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgogCi0JKiBwcm9jZXNzLmMgKFdDT1JFRkxBRyk6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KLQkoV19TVE9QQ09ERSwgV19FWElUQ09ERSk6IExpa2V3aXNlLgotCVJlcG9ydGVkIGJ5IE1hcnR5IExlaXNuZXIgPG1sZWlzbmVyQGVuZy5tYy54ZXJveC5jb20+LgorCUdlbmVyYXRlIGFuIHh6IHRhciBhcmNoaXZlIG9mIHRoZSBkaXN0cmlidXRpb24KKwkqIGNvbmZpZ3VyZS5hYyAoQU1fSU5JVF9BVVRPTUFLRSk6IFJlcGxhY2UgZGlzdC1iemlwMiB3aXRoIGRpc3QteHouCisJKiBNYWtlZmlsZS5hbTogVXBkYXRlIHNycG0gdGFyZ2V0LgorCSogbWFrZS1kaXN0OiBVcGRhdGUgZm9yIGRpc3QteHouCisJKiBzdHJhY2Uuc3BlYzogVXBkYXRlIFNvdXJjZSB0YWcuCisJKiBkZWJpYW4vd2F0Y2g6IFVwZGF0ZSByZWdleHAuCisJKiAuZ2l0aWdub3JlOiBBZGQgc3RyYWNlLSoudGFyLnh6LgogCi0JKiBzb2NrLmMgWyEgTElOVVhdOiBJbmNsdWRlIDxzeXMvc29ja2V0Lmg+IGJlZm9yZSA8c3lzL3NvY2tpby5oPi4KLQlSZXBvcnRlZCBieSBNYXJ0eSBMZWlzbmVyIDxtbGVpc25lckBlbmcubWMueGVyb3guY29tPi4KKwlVc2UgIm1ha2UgY2hlY2siIGluIGRlYmlhbi9ydWxlcyBhbmQgc3RyYWNlLnNwZWMKKwkqIGRlYmlhbi9jb250cm9sOiBVcGRhdGUgQnVpbGQtRGVwZW5kcy4KKwkqIGRlYmlhbi9ydWxlczogUnVuICJtYWtlIGNoZWNrIi4KKwkqIHN0cmFjZS5zcGVjOiBVcGRhdGUgQnVpbGRSZXF1aXJlcy4gUnVuICJtYWtlIGNoZWNrIiBpbiAlY2hlY2sgc2VjdGlvbi4KIAotCSogZGViaWFuL3J1bGVzOiBNYWtlIHN0cmFjZTY0LjEuZ3ogc3ltbGluayB0byBzdHJhY2UuMS5neiBpbnN0ZWFkIG9mCi0Jc3RyYWNlNjQuMSB0byBzdHJhY2UuMSwgd2hpY2ggZG9lc24ndCBleGlzdC4KLQlGaXhlcyBEZWJpYW4gYnVnICMyNjkyMjAuCisJSW1wbGVtZW50IHR3byBiYXNpYyAic3RyYWNlIC1mIiB0ZXN0cworCSogTWFrZWZpbGUuYW0gKFNVQkRJUlMpOiBBZGQgdGVzdHMuCisJKiBjb25maWd1cmUuYWMgKEFDX0NPTkZJR19GSUxFUyk6IEFkZCB0ZXN0cy9NYWtlZmlsZS4KKwkqIHRlc3RzLy5naXRpZ25vcmU6IE5ldyBmaWxlLgorCSogdGVzdHMvTWFrZWZpbGUuYW06IExpa2V3aXNlLgorCSogdGVzdHMvaW5pdC5zaDogTGlrZXdpc2UuCisJKiB0ZXN0cy9wdHJhY2Vfc2V0b3B0aW9uczogTGlrZXdpc2UuCisJKiB0ZXN0cy9zdHJhY2UtZjogTGlrZXdpc2UuCiAKLTIwMDQtMDktMDUgIFBoaWwgQmx1bmRlbGwgIDxwYkBuZXh1cy5jby51az4KKzIwMTEtMDItMjYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLQkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgorCXBwYywgczM5MCwgc3BhcmM6IHJlZ2VuZXJhdGUgaW9jdGxlbnQuaCBmaWxlcworCSogbGludXgvcG93ZXJwYy9pb2N0bGVudC5oOiBSZWdlbmVyYXRlZCB1c2luZyBGZWRvcmEgMTUga2VybmVsIGhlYWRlcnMuCisJKiBsaW51eC9zMzkwL2lvY3RsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvaW9jdGxlbnQuaDogTGlrZXdpc2UuCiAKLTIwMDQtMTAtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisJUmVtb3ZlIHJlZHVuZGFudCBpb2N0bGVudC5oIGZpbGVzCisJKiBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBSZXBsYWNlIG9sZCBjb250ZW50cyB3aXRoIGluY2x1ZGUgb2YKKwlzMzkwL2lvY3RsZW50LmggZmlsZS4KKwkqIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaDogUmVwbGFjZSBvbGQgY29udGVudHMgd2l0aCBpbmNsdWRlIG9mCisJc3BhcmMvaW9jdGxlbnQuaCBmaWxlLgogCi0JKiBkZWJpYW4vcnVsZXMgKERFQl9CVUlMRF9HTlVfVFlQRSwgQ09ORklHX09QVFMpOiBOZXcgdmFyaWFibGVzLgotCVskKERFQl9IT1NUX0dOVV9UWVBFKSA9PSBzMzkwLWxpbnV4XSAoYnVpbGQ2NCwgSE9TVDY0LCBDQzY0KTogU2V0IHRoZW0uCi0JKGJ1aWxkL01ha2VmaWxlKTogVXNlICQoQ09ORklHX09QVFMpLgotCShidWlsZDY0L01ha2VmaWxlKTogUGFzcyAtLWhvc3QgYXMgd2VsbCBhcyAtLWJ1aWxkLgotCUZyb20gQmFzdGlhbiBCbGFuayA8d2FsZGlAZGViaWFuLm9yZz4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjcxNTAwLgorMjAxMS0wMi0yNSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBmb3IgMi42Ljkgc3lzY2FsbHMuCi0JRnJvbSBSYW5kb2xwaCBDaHVuZyA8dGF1c3FAZGViaWFuLm9yZz4KLQlGaXhlcyBEZWJpYW4gYnVnICMyNzM4ODcuCisJaW9jdGxzb3J0OiBzeW5jIHdpdGggaW9jdGxfbG9va3VwKCkKKwkqIGxpbnV4L2lvY3Rsc29ydC5jIChtYWluKTogVXNlIE5SIGFuZCBUWVBFIGJpdHMgb25seSwgdG8gc3luYyB3aXRoCisJaW9jdGxfbG9va3VwKCkgd2hpY2ggbG9va3MgYXQgdGhlc2UgYml0cyBvbmx5LgogCi0JKiBmaWxlLmMgKHN5c19sbHNlZWspOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCisJUmVtb3ZlIG9ic29sZXRlIC5jdnNpZ25vcmUgZmlsZXMKKwkqIHRlc3QvLmN2c2lnbm9yZTogUmVuYW1lIHRvIHRlc3QvLmdpdGlnbm9yZS4KKwkqICovLmN2c2lnbm9yZSwgKi8qLy5jdnNpZ25vcmU6IFJlbW92ZWQuCiAKLTIwMDQtMDktMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHR3aWRkbGUubmV0PgorCUlnbm9yZSBnZW5lcmF0ZWQgaW50ZXJtZWRpYXRlIGhlYWRlciBmaWxlcworCSogLmdpdGlnbm9yZTogQWRkIGlvY3Rscy5oIGFuZCBpb2N0bGRlZnMuaC4KIAotCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBBZGQgdGdraWxsLCAqc3RhdDY0LCB2c2VydmVyLCBtYmluZCwKLQlbZ3NdZXRfbWVtcG9saWN5LCBtcV8qLCB3YWl0aWQuCisyMDExLTAyLTI0ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgogCi0yMDA0LTEwLTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCUdlbmVyYXRlIG11Y2ggb2YgdGhlIENSRURJVFMgZmlsZSBmcm9tIGdpdCBsb2cKKwkqIENSRURJVFMuaW46IE5ldyBmaWxlLCBkZXJpdmVkIGZyb20gQ1JFRElUUywgd2l0aG91dCBuYW1lcyBvZgorCXRob3NlIHdobyBhcmUgbGlzdGVkIGFzIGdpdCBsb2cgJ0F1dGhvcjoncy4KKwkqIENSRURJVFM6IFJlbW92ZSBmaWxlLgorCSogTWFrZWZpbGUuYW0gW01BSU5UQUlORVJfTU9ERV0gKENSRURJVFMpOiBOZXcgcnVsZS4KKwkqIC5naXRpZ25vcmU6IEFkZCBDUkVESVRTLgorCSogLm1haWxtYXA6IE5ldyBmaWxlLCByZXF1aXJlZCB0byBtYXAgZ2l0IGF1dGhvciBuYW1lcyBhbmQgZW1haWwKKwlhZGRyZXNzZXMgdG8gY2Fub25pY2FsL3ByZWZlcnJlZCBmb3JtLgogCi0JKiBmaWxlLmMgKHN5c19sbHNzZWssIHN5c19yZWFkYWhlYWQsIHN5c19mYWR2aXNlNjQsIHN5c19mYWR2aXNlNjRfNjQpOgotCVVzZSBMT05HX0xPTkcgbWFjcm8uCi0JKiBpby5jIChzeXNfcHJlYWQsIHN5c19wd3JpdGUsIHN5c19zZW5kZmlsZSk6IExpa2V3aXNlLgorMjAxMS0wMi0yMyAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogRml4IGJvdGNoZWQgdGFibGUgZW50cmllcy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCXNwYXJjOiBmaXggY29tcGlsYXRpb24gd2FybmluZworCSogZmlsZS5jIFshSEFWRV9MT05HX0xPTkdfT0ZGX1RdIChyZWFscHJpbnRzdGF0KTogQ2FzdCBzdF9zaXplCisJdG8gdW5zaWduZWQgbG9uZy4KIAotCSogbWVtLmMgW0xJTlVYXSAoc3lzX21iaW5kLCBzeXNfc2V0X21lbXBvbGljeSwgc3lzX2dldF9tZW1wb2xpY3kpOgotCU5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJVXBkYXRlIHRoZSBsaXN0IG9mIGZpbGVzIHRoYXQgbXVzdCBiZSBkaXN0cmlidXRlZAorCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgZGViaWFuL3NvdXJjZS9mb3JtYXQsIGRlYmlhbi93YXRjaCwKKwlsaW51eC9pYTY0L3NpZ25hbGVudC5oLCBsaW51eC9wb3dlcnBjL2lvY3RsZW50MS5oLAorCWxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudDEuaCwgbGludXgvcG93ZXJwYy9lcnJub2VudDEuaCwKKwlsaW51eC9wb3dlcnBjL3NpZ25hbGVudDEuaC4KIAotCSogbGludXgvc3lzY2FsbGVudC5oOiBIYW5kbGUgbWJpbmQsIHNldF9tZW1wb2xpY3ksIGdldF9tZW1wb2xpY3kuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXggY29tcGlsYXRpb24gd2FybmluZyByZXBvcnRlZCBieSBnY2MgLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZQorCSogcHJvY2Vzcy5jIChwcmludHdhaXRuKSBbIVNVTk9TNF06IERvIG5vdCBkZWZpbmUgImV4aXRlZCIgdmFyaWFibGUuCiAKLQkqIGZpbGUuYyBbTElOVVggJiYgKEkzODYgfHwgWDg2XzY0KV0gKHN5c19mYWR2aXNlNjQsIHN5c19mYWR2aXNlNjRfNjQpOgotCU5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIGZhZHZpc2U2NCBhbmQgZmFkdmlzZTY0XzY0IHVzaW5nIHRob3NlLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKzIwMTEtMDItMjIgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CiAKLTIwMDQtMDktMTMgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisJaW9jdGxzb3J0OiB6ZXJvIHBhZCBpb2N0bCBjb2RlcyB0byA0IHBsYWNlcworCVplcm8gcGFkZGluZyB0aGUgaW9jdGwgbnVtYmVyIHdpbGwgYWxsb3cgc2ltcGxlIHNvcnRpbmcgdmlhIHNoZWxsIHNjcmlwdHMuCiAKLQkqIGxpbnV4L2lvY3Rsc29ydC5jIChtYWluKTogT21pdCBkdXBsaWNhdGUgbGluZXMKLQkod2l0aCBzYW1lIG5hbWUgYW5kIGNvZGUpIGZyb20gb3V0cHV0LgotCSogbGludXgvaW9jdGxlbnQuc2g6IEJ1aWxkIHRoZSBsaXN0IG9mIGlvY3RscyBkZWZpbmVkIGluCi0Jc2NzaS9zZy5oICgweDIyLi4pLCBzY3NpL3Njc2kuaCBhbmQgc2NzaS9zY3NpX2lvY3RsLmggKDB4NTMuLiksCi0JYXMgc3VnZ2VzdGVkIGJ5IFBldGVyIEpvbmVzIDxwam9uZXNAcmVkaGF0LmNvbT4KKwkqIGxpbnV4L2lvY3Rsc29ydC5jIChtYWluKTogT3V0cHV0IGlvY3RsIGNvZGVzIHplcm8gcGFkZGVkLgogCSogbGludXgvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQuCi0JRml4ZXMgUkgjMTI5ODA4LgogCi0yMDA0LTA5LTEzICBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPgotCSAgICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisJVXBkYXRlIG1vdW50IGZsYWdzIHRvIGxhdGVzdCBsaW51eAorCSogc3lzdGVtLmMgKE1TX1JFTEFUSU1FLCBNU19LRVJOTU9VTlQsIE1TX0lfVkVSU0lPTiwKKwlNU19TVFJJQ1RBVElNRSwgTVNfQk9STik6IERlZmluZS4KKwkobW91bnRfZmxhZ3MpOiBBZGQgTVNfUkVMQVRJTUUsIE1TX0tFUk5NT1VOVCwgTVNfSV9WRVJTSU9OLAorCU1TX1NUUklDVEFUSU1FLCBNU19CT1JOLgogCi0JKiB0aW1lLmMgW0xJTlVYXSAocHJpbnRfcnRjKTogTmV3IGZ1bmN0aW9uLCBmb3IgcHJpbnRpbmcgcnRjX3RpbWUKLQlzdHJ1Y3R1cmUuCi0JW0xJTlVYXSAocnRjX2lvY3RsKTogTmV3IGZ1bmN0aW9uLCBmb3IgcGFyc2luZyBSVENfKiBpb2N0bHMuCi0JKiBpb2N0bC5jIFtMSU5VWF0gKGlvY3RsX2RlY29kZSk6IENhbGwgcnRjX2lvY3RsLgotCSogZGVmcy5oIFtMSU5VWF06IERlY2xhcmUgcnRjX2lvY3RsLgotCUZpeGVzIFJIIzU4NjA2LgorMjAxMS0wMi0yMiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotMjAwNC0xMC0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlTeW5jIGRlYmlhbi9jaGFuZ2Vsb2cgYW5kIHN0cmFjZS5zcGVjIHdpdGggcGFja2FnZXMKKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IFN5bmMgd2l0aCA0LjUuMjAtMi4KKwkqIHN0cmFjZS5zcGVjOiBMaWtld2lzZS4KIAotCSogZGVzYy5jIFtMSU5VWF0gKHN5c19lcG9sbF9jcmVhdGUsIHN5c19lcG9sbF9jdGwsIHN5c19lcG9sbF93YWl0KToKLQlOZXcgZnVuY3Rpb25zLgotCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHRoZW0uCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSB0aG9zZSBmb3IgZXBvbGxfKiBzeXNjYWxscy4KLQkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisyMDExLTAyLTIwICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJQWRkIFRSQUNFX0RFU0N8VFJBQ0VfRklMRSBmbGFncyB0byBmYW5vdGlmeV8qIHN5c2VudHJpZXMKKwkqIGxpbnV4Lyovc3lzY2FsbGVudC5oOiBBZGQgVEQgZmxhZyB0byBmYW5vdGlmeV9pbml0LiAgQWRkIFREfFRGIGZsYWdzCisJdG8gZmFub3RpZnlfbWFyay4KKworCUZpeCBmbGFncyBvZiBmYWxsb2NhdGUgc3lzZW50cmllcworCSogbGludXgvKi9zeXNjYWxsZW50Lmg6IEZpeCBzeXNfZmFsbG9jYXRlIGZsYWdzLgorCisJQWRkIFRSQUNFX0RFU0MgZmxhZyB0byBlcG9sbF9jcmVhdGUqIHN5c2VudHJpZXMKKwkqIGxpbnV4Lyovc3lzY2FsbGVudC5oOiBBZGQgVEQgZmxhZyB0byBzeXNfZXBvbGxfY3JlYXRlIGFuZAorCXN5c19lcG9sbF9jcmVhdGUxLgorCisJQWRkIFRSQUNFX0RFU0MgZmxhZyB0byBmZ2V0eGF0dHIsIGZsaXN0eGF0dHIsIGFuZCBmcmVtb3ZleGF0dHIgc3lzZW50cmllcworCSogbGludXgvKi9zeXNjYWxsZW50Lmg6IEFkZCBURCBmbGFnIHRvIHN5c19mZ2V0eGF0dHIsIHN5c19mbGlzdHhhdHRyLAorCWFuZCBmcmVtb3ZleGF0dHIuCisKKwlBZGQgVFJBQ0VfRklMRSBmbGFnIHRvIHN3YXBvZmYgc3lzZW50cmllcworCSogbGludXgvKi9zeXNjYWxsZW50Lmg6IEFkZCBURiBmbGFnIHRvIHN5c19zd2Fwb2ZmLgorCisJQWRkIFRSQUNFX0RFU0MgZmxhZyB0byBmYWR2aXNlNjQqIHN5c2VudHJpZXMKKwkqIGxpbnV4Lyovc3lzY2FsbGVudC5oOiBBZGQgVEQgZmxhZyB0byBzeXNfZmFkdmlzZTY0IGFuZAorCXN5c19mYWR2aXNlNjRfNjQuCisKKwlBZGQgVFJBQ0VfREVTQyBmbGFnIHRvIG1tYXAsIG1tYXAyLCBhbmQgb2xkX21tYXAgc3lzZW50cmllcworCSogbGludXgvKi9zeXNjYWxsZW50Lmg6IEFkZCBURCBmbGFnIHRvIHN5c19tbWFwIGFuZCBzeXNfb2xkX21tYXAuCisKKwlEbyBub3QgaW5pdGlhbGl6ZSBuYXRpdmVfc2NubyBvbiBwbGF0Zm9ybXMgd2l0aCBvbmx5IG9uZSBwZXJzb25hbGl0eQorCSogbGludXgvYmZpbi9zeXNjYWxsZW50Lmg6IFJlbW92ZSByZWR1bmRhbnQgbmF0aXZlX3Njbm8gaW5pdGlhbGl6YXRpb24uCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taWNyb2JsYXplL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwlBZGQgTE9PUF8qIGlvY3RscyBkZWZpbmVkIGluIGxpbnV4L2xvb3AuaAorCSogbGludXgvaW9jdGxlbnQuc2g6IEFkZCBMT09QXyogaW9jdGxzICgweDRDLi4pIGRlZmluZWQgaW4gbGludXgvbG9vcC5oCisJaGVhZGVyIGZpbGUuCisJKiBsaW51eC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlZC4KKwlSZXBvcnRlZCBieSBNaWtlIEZyeXNpbmdlci4KKworMjAxMS0wMi0xOSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeCBQVFJBQ0VfR0VURVZFTlRNU0cgdXNhZ2UgYW5kIGVuaGFuY2UgdGVzdF9wdHJhY2Vfc2V0b3B0aW9ucygpCisJKiBzdHJhY2UuYyAoaGFuZGxlX3B0cmFjZV9ldmVudCk6IEZpeCBQVFJBQ0VfR0VURVZFTlRNU0cgdXNhZ2UuCisJKHRlc3RfcHRyYWNlX3NldG9wdGlvbnMpOiBUZXN0IHRoYXQgUFRSQUNFX0dFVEVWRU5UTVNHIHdvcmtzIHByb3Blcmx5LgorCisyMDExLTAyLTE5ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJbGludXgvc3BhcmM6IG1vdmUgdG8gY29tbW9uIHN5c2NhbGwuaAorCVJhdGhlciB0aGFuIGNvbnN0YW50bHkgZGVhbCB3aXRoIHRoZSBzcGFyYy9zeXNjYWxsLmggZ29pbmcgc3RhbGUsIG1lcmdlCisJdGhlIGZldyBzcGFyYy1zcGVjaWZpYyBwaWVjZXMgaW50byB0aGUgbGludXgvc3lzY2FsbC5oIGhlYWRlci4KKworCSogbGludXgvc3lzY2FsbC5oOiBBZGQgc3BhcmMtc3BlY2lmaWMgcGllY2VzIGZyb20gc3BhcmMvc3lzY2FsbC5oLgorCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBSZW1vdmUgbGludXgvc3BhcmMvc3lzY2FsbC5oIGFuZAorCWxpbnV4L3NwYXJjNjQvc3lzY2FsbC5oLgorCSogbGludXgvc3BhcmMvc3lzY2FsbC5oLCBsaW51eC9zcGFyYzY0L3N5c2NhbGwuaDogRGVsZXRlZC4KKworCXNwYXJjOiBhZGQgbmV3IGZ1bmNzIHRvIHN5c2NhbGwuaAorCVN5bmMgbWlzc2luZyBkZWZzIGZyb20gdGhlIGNvbW1vbiBzeXNjYWxsLmggaGVyZS4KKworCSogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBBZGQgc3lzX3NldGZzdWlkLCBzeXNfcHJlYWQ2NCwgYW5kCisJc3lzX3B3cml0ZTY0IHByb3RvdHlwZXMuCisKKwlzcGFyYzogcHVudCB1bnVzZWQgc3lzY2FsbC5oLjIKKwlJIGNhbid0IGZpbmQgYW55IG1lbnRpb24gb2YgdGhpcyBoZWFkZXIgYWN0dWFsbHkgYmVpbmcgdXNlZC4KKwlTZWVtcyB0byBiZSBhIHJlYWxseSBvbGQgY29weSBvZiB0aGUgY29tbW9uIHN5c2NhbGwuaC4KKworCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBSZW1vdmUgbGludXgvc3BhcmMvc3lzY2FsbC5oLjIuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmguMjogRGVsZXRlZC4KKworMjAxMS0wMi0xOSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeCByYXcgZXhpdF9ncm91cCgyKSBkZWNvZGluZworCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsX2VudGVyaW5nKTogQ2hlY2sgZm9yIHN5c19leGl0IGluc3RlYWQgb2YKKwlTWVNfZXhpdCB0byBoYW5kbGUgZXhpdF9ncm91cCgyKSBhcyB3ZWxsIGFzIF9leGl0KDIpLgorCisyMDExLTAyLTE4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJT3B0aW1pemUga25vd25fc2NubygpCisJKiBzeXNjYWxsLmMgKGtub3duX3Njbm8pOiBEbyBub3QgY2hlY2sgZm9yIG5hdGl2ZV9zY25vIGZpZWxkIG9uCisJcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBvbmx5IG9uZSBwZXJzb25hbGl0eS4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9leGl0KSBbSUE2NF06IFJlbW92ZSByZWR1bmRhbnQgY2hlY2suCisKKzIwMTEtMDItMDkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlGaXggYmlhcmNoIHN1cHBvcnQgaW4gSU8gZHVtcGluZworCSogc3lzY2FsbC5jIChkdW1waW8pOiBTd2l0Y2ggb24gdGNwLT5zeXNfZnVuYyBpbnN0ZWFkIG9mIHRjcC0+c2NubworCWZvciBtb3JlIHJlbGlhYmxlIHJlc3VsdHMuCisKKwlTaW1wbGlmeSB0cHJpbnRmKCkgZGVjbGFyYXRpb24KKwkqIGRlZnMuaCAodHByaW50Zik6IFNpbXBsaWZ5IGRlY2xhcmF0aW9uLgorCisyMDExLTAyLTA1ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBkZWZzLmggKFNZU0NBTExfTkVWRVJfRkFJTFMpOiBGaXggdHlwby4KKworMjAxMS0wMS0xOSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeCBkZWNvZGluZyBvZiBnZXRbdWddaWQsIGdldGVbdWddaWQgYW5kIHNldGZzW3VnXWlkIHJldHVybiB2YWx1ZXMKKwkqIGRlZnMuaCAoU1lTQ0FMTF9ORVZFUl9GQUlMUyk6IE5ldyBzeXNjYWxsIGZsYWcuCisJKiBsaW51eC9kdW1teS5oOiBDaGFuZ2UgcmVkaXJlY3Rpb24gZm9yIHN5c19nZXRbdWddaWQsIHN5c19nZXRlW3VnXWlkCisJYW5kIHNldGZzW3VnXWlkLgorCSogbGludXgvKi9zeXNjYWxsZW50Lmg6IFNldCBTWVNDQUxMX05FVkVSX0ZBSUxTIGZsYWcgZm9yIGdldFt1Z11pZCwKKwlnZXRlW3VnXWlkIGFuZCBzZXRmc1t1Z11pZCBzeXNjYWxscy4KKwkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfZ2V0dWlkLCBzeXNfc2V0ZnN1aWQpOiBOZXcgZnVuY3Rpb25zLgorCSogc3lzY2FsbC5jIChORik6IE5ldyBzaG9ydGhhbmQgbWFjcm8gZm9yIHVzZSBpbiBzeXNjYWxsZW50LmggZmlsZXMuCisJKGdldF9lcnJvcik6IENoZWNrIFNZU0NBTExfTkVWRVJfRkFJTFMgZmxhZy4KKwlSZXBvcnRlZCBieSDQnNCw0YDQuiDQmtC+0YDQtdC90LHQtdGA0LMgPHNvY2tldHBhaXJAZ21haWwuY29tPi4KKworCSogbGludXgvKi9zeXNjYWxsZW50Lmg6IEZpeCB0eXBvIGluIHN5c19uZXdmc3RhdGF0IHN5c2NhbGwgZmxhZ3MuCisKKzIwMTEtMDEtMTggIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CisKKwlCbGFja2ZpbjogdXBkYXRlIGlvY3RsIGxpc3QKKwkqIGxpbnV4L2JmaW4vaW9jdGxlbnQuaDogU3luYyB3aXRoIGxhdGVzdCBrZXJuZWwgc291cmNlcy4KKworMjAxMS0wMS0xNyAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeCBzdGF0NjQgZGVjb2Rpbmcgb24gbWlwcworCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfc3RhdDY0KCkgdG8gZGVjb2RlIHN0YXQ2NCBzeXNjYWxsLgorCVRoaXMgZml4ZXMgRGViaWFuIGJ1ZyAjNTk5MDI4LgorCisJVXBkYXRlIGxpbnV4Lyovc3lzY2FsbGVudC5oIGZpbGVzIHRvIG1hdGNoIExpbnV4IGtlcm5lbCB2Mi42LjM3CisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IEFkZCBob29rcyBmb3IgZmFub3RpZnlfaW5pdCwgZmFub3RpZnlfbWFyaywKKwlhbmQgcHJsaW1pdDY0LgorCSogbGludXgvaTM4Ni9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgogCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmg6IExpa2V3aXNlLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzQ0NjMuCi0KLQkqIHJlc291cmNlLmMgKHJlc291cmNlcyk6IEFkZCBSTElNSVRfTE9DS1MsIFJMSU1JVF9TSUdQRU5ESU5HLAotCWFuZCBSTElNSVRfTVNHUVVFVUUsIGlmIGRlZmluZWQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzM1OTQuCi0KLQkqIG5ldC5jIFtIQVZFX1NFTkRNU0ddIChwcmludGNtc2doZHIpOiBOZXcgZnVuY3Rpb24uCi0JKHByaW50bXNnaGRyKTogVXNlIGl0LgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0JRml4ZXMgUkgjMTMxNjg5LgotCi0JKiBmaWxlLmMgKHNwcmludG1vZGUpOiBBZGQgY29uc3QgdG8gcmV0dXJuIHR5cGUuCi0JKHNwcmludGZzdHlwZSk6IExpa2V3aXNlLgotCSogc2lnbmFsLmMgKHByaW50c2lnaW5mbyk6IEFkZCBhIGNvbnN0LgotCi0yMDA0LTA5LTE1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3dhaXRpZC4KLQotCSogbGludXgvc3lzY2FsbGVudC5oOiB3YWl0aWQgdGFrZXMgNSBhcmd1bWVudHMsIGFuZCBpcyBpbiBUUCBjYXRlZ29yeS4KLQkqIHByb2Nlc3MuYyAoc3lzX3dhaXRpZCk6IEhhbmRsZSBmaWZ0aCBhcmd1bWVudCAoc3RydWN0IHJ1c2FnZSAqKS4KLQotMjAwNC0wOS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogdGltZS5jIChzeXNfY2xvY2tfbmFub3NsZWVwKTogUHJpbnQgemVybyBmbGFncyBhcmcgY29ycmVjdGx5LgotCShzeXNfdGltZXJfc2V0dGltZSk6IExpa2V3aXNlLgotCShwcmludHNpZ2V2ZW50KTogUHJpbnQgc2lnbmFscyBieSBuYW1lIGZvciBTSUdFVl9TSUdOQUwuCi0JKHN5c190aW1lcl9jcmVhdGUpOiBQcmludCBjbG9jayBJRCBzeW1ib2xpY2FsbHkuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMzE0MjAuCi0KLTIwMDQtMDktMDcgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+Ci0KLQkqIGRlZnMuaCAobmlvY3RsZW50czEsIG5zaWduYWxzMik6IEZpeCB0eXBvcyBpbiBkZWNscy4KLQotMjAwNC0wOS0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChxdWFsX29wdGlvbnMpOiBBZGQgY29uc3QgdG8gZGVmbi4KLQlVcGRhdGUgYWxsIHVzZXMuCi0JKGNhbGxfY291bnQsIGVycm9yX2NvdW50LCB0dl9jb3VudCk6IFZhcmlhYmxlcyByZW1vdmVkLgotCShzdHJ1Y3QgY2FsbF9jb3VudHMsIGNvdW50cyk6IE5ldyB0eXBlIGFuZCB2YXJpYWJsZS4KLQlVcGRhdGUgYWxsIHVzZXJzIG9mIHRoZSBvbGQgdGhyZWUgdG8gdXNlIHRoZSBuZXcgYXJyYXkgb2Ygc3RydWN0cy4KLQkodHJhY2Vfc3lzY2FsbCk6IEFsbG9jYXRlIGNvdW50cyBvbiBmaXJzdCB1c2UuCi0JKHNvcnRlZF9jb3VudCk6IFZhcmlhYmxlIHJlbW92ZWQuCi0JKGNhbGxfc3VtbWFyeSk6IEFsbG9jYXRlIGxvY2FsbHkuCi0KLQkqIHN5c2NhbGwuYyAoc3lzZW50MCwgc3lzZW50MSwgc3lzZW50Miwgc3lzZW50KTogQWRkIGNvbnN0IHRvIGRlZm4uCi0JKG5zeXNjYWxsczAsIG5zeXNjYWxsczEsIG5zeXNjYWxsczIpOiBMaWtld2lzZS4KLQkoZXJybm9lbnQwLCBlcnJub2VudDEsIGVycm5vZW50MiwgZXJybm9lbnQpOiBMaWtld2lzZS4KLQkobmVycm5vczAsIG5lcnJub3MxLCBuZXJybm9zMik6IExpa2V3aXNlLgotCSogc2lnbmFsLmMgKHNpZ25hbGVudDAsIHNpZ25hbGVudDEsIHNpZ25hbGVudDIpOiBMaWtld2lzZS4KLQkobnNpZ25hbHMwLCBuc2lnbmFsczEsIG5zaWduYWxzMik6IExpa2V3aXNlLgotCShzaWduYW1lKTogTElrZXdpc2UuCi0JKiBpb2N0bC5jIChpb2N0bGVudDAsIGlvY3RsZW50MSwgaW9jdGxlbnQyKTogTGlrZXdpc2UuCi0JKG5pb2N0bGVudHMwLCBuaW9jdGxlbnRzMSwgbmlvY3RsZW50czIpOiBMaWtld2lzZS4KLQkoaW9jdGxfbG9va3VwLCBpb2N0bF9uZXh0X21hdGNoKTogTGlrZXdpc2UuCi0JKiBkZWZzLmg6IFVwZGF0ZSBkZWNscy4KLQkqIGlvLmMgKHN5c19pb2N0bCk6IFVwZGF0ZSB1c2Vycy4KLQotCSogdXRpbC5jICh4bG9va3VwLCBwcmludHh2YWwsIGFkZGZsYWdzLCBwcmludGZsYWdzKTogVXNlIGNvbnN0IGZvcgotCXN0cnVjdCB4bGF0ICogYXJndW1lbnQuCi0JKiBkZWZzLmggKHhsb29rdXAsIHByaW50eHZhbCwgYWRkZmxhZ3MsIHByaW50ZmxhZ3MpOiBVcGRhdGUgZGVjbHMuCi0JKiBiam0uYzogQWRkIGNvbnN0IHRvIGFsbCBzdHJ1Y3QgeGxhdCBkZWZucy4KLQkqIGRlc2MuYzogTGlrZXdpc2UuCi0JKiBmaWxlLmM6IExpa2V3aXNlLgotCSogaXBjLmM6IExpa2V3aXNlLgotCSogbWVtLmM6IExpa2V3aXNlLgotCSogbmV0LmM6IExpa2V3aXNlLgotCSogcHJvYy5jOiBMaWtld2lzZS4KLQkqIHByb2Nlc3MuYzogTGlrZXdpc2UuCi0JKiByZXNvdXJjZS5jOiBMaWtld2lzZS4KLQkqIHNpZ25hbC5jOiBMaWtld2lzZS4KLQkqIHNvY2suYzogTGlrZXdpc2UuCi0JKiBzdHJlYW0uYzogTGlrZXdpc2UuCi0JKiBzeXN0ZW0uYzogTGlrZXdpc2UuCi0JKiB0ZXJtLmM6IExpa2V3aXNlLgotCSogdGltZS5jOiBMaWtld2lzZS4KLQkqIHV0aWwuYzogTGlrZXdpc2UuCi0KLTIwMDQtMDktMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEFkZCBuZXcgZW50cmllcyBmb3IgdGltZXJfKiwgY2xvY2tfKiwgYW5kCi0JbXFfKiBzeXNjYWxscywgYW5kIG5hbWVzIG9ubHkgZm9yIG5ldyBjYWxscyB1cCB0byAyNTIuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB3YWl0aWQuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfd2FpdGlkLgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBUYWtlIHNlY29uZCBhcmcgZ2l2aW5nIGluZGV4IG9mIGZsYWdzCi0JYXJndW1lbnQuCi0JKiBkZWZzLmg6IFVwZGF0ZSBwcm90b3R5cGUuCi0JKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBVcGRhdGUgY2FsbGVyLgotCUFsc28gdXNlIGludGVybmFsX3dhaXQgZm9yIFNZU193YWl0aWQuCi0JKiBwcm9jZXNzLmMgKHN5c193YWl0aWQpOiBEZWZpbmUgZm9yIFtMSU5VWF0gYXMgd2VsbC4KLQlEb24ndCB0d2VhayBUQ0JfU1VTUEVOREVELS1pbnRlcm5hbF93YWl0IGRvZXMgdGhhdC4KLQkod2FpdGlkX3R5cGVzKTogQ29uZGl0aW9uYWxpemUgdXNlIG9mIG5vbnN0YW5kYXJkIFBfKiBtYWNyb3MuCi0KLTIwMDQtMDgtMzEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNy4KLQkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS43LTEuCi0JKiBzdHJhY2Uuc3BlYzogNC41LjctMi4KLQotCSogZGViaWFuL3J1bGVzOiBSZXdyaXRlIHNwYXJjNjQgY2hhbmdlIG9mIDIwMDQtMDctMTIuCi0JQWx3YXlzIGRvIGVhY2ggYnVpbGQgaW4gYSBzZXBhcmF0ZSBidWlsZCBkaXJlY3RvcnkuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NzI4LgotCi0JKiB0aW1lLmMgKGNsb2NrbmFtZXMpOiBVc2UgI2lmZGVmIGFyb3VuZCBDTE9DS18qIHVzZXMuCi0KLQkqIHN0cmFjZS4xOiBTYXkgdGhhdCAtYyBzaG93cyBzeXN0ZW0gQ1BVIHRpbWUsIG5vdCByZWFsIHRpbWUuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NDM4LgotCi0JKiBzeXNjYWxsLmMgKGR1bXBpbyk6IE1hdGNoIHByZWFkIGFuZCBwd3JpdGUgc3lzdGVtIGNhbGxzIHRvby4KLQlGaXhlcyBEZWJpYW4gYnVnICMyMzk5NDcuCi0KLQkqIG5ldC5jIChzb2Nrb3B0aW9ucyk6IEFkZCBhbGwgU09fKiBtYWNyb3Mga25vd24gaW4gTGludXggMi42LjkuCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMTcxNjUzLgotCi0yMDA0LTA3LTEyICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBzaWduYWwuYyBbTElOVVhdIChwYXJzZV9zaWdzZXRfdCk6IEZpeCBoZXggc3RyaW5ncyBwYXJzZXIuCi0JRml4ZXMgUkgjMTI4MDkxLgotCi0yMDA0LTA4LTMwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuYyAobWFpbik6IERvbid0IGNhbGwgZmFrZV9leGVjdmUgdW5kZXIgLWMuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjkxNjYuCi0KLQkqIG5ldC5jIChzb2NraXBvcHRpb25zKTogQWRkIHNvbWUgb3B0aW9ucy4KLQlbU09MX0lQVjZdIChzb2NraXB2Nm9wdGlvbnMpOiBOZXcgdmFyaWFibGUuCi0JKHN5c19nZXRzb2Nrb3B0LCBwcmludHNvY2tvcHQpOiBVc2UgaXQgZm9yIFNPTF9JUFY2IGxldmVsLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0JRml4ZXMgUkgjMTI4MzkxLgotCi0JKiB0aW1lLmMgKGNsb2NrbmFtZXMpOiBOZXcgdmFyaWFibGUsIHN5bWJvbGljIG5hbWVzIGZvciBjbG9ja190LgotCShzeXNfY2xvY2tfc2V0dGltZSwgc3lzX2Nsb2NrX2dldHRpbWUsIHN5c19jbG9ja19uYW5vc2xlZXApOiBVc2UgaXQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjkzNzguCi0KLQkqIHN5c3RlbS5jIChwZXJzb25hbGl0eV9vcHRpb25zKTogSGFyZC1jb2RlIHZhbHVlcyBoZXJlLgotCURvbid0ICNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPiBhdCBhbGwuCi0JRml4ZXMgUkgjMTMwOTY1IGFuZCBEZWJpYW4gYnVnICM0MDU4OC4KLQotCSogZmlsZS5jIChwcmludF94YXR0cl92YWwpOiBOZXcgZnVuY3Rpb24gdG8gc2hvdyBhdHRyaWJ1dGUgdmFsdWVzLgotCShzeXNfc2V0eGF0dHIsIHN5c19mc2V0eGF0dHIsIHN5c19nZXR4YXR0ciwgc3lzX2ZnZXR4YXR0cik6IFVzZSBpdC4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzEzMTE3Ny4KLQotMjAwNC0wNy0xMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS42LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS42LTEuCi0KLQkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L3NwYXJjNjQgZmlsZXMuCi0KLQkqIGRlYmlhbi9ydWxlczogT24gc3BhcmMtbGludXgsIGJ1aWxkIHN0cmFjZTY0IGFzIHdlbGwuCi0JRnJvbSBCZW4gQ29sbGlucyA8YmNvbGxpbnNAZGViaWFuLm9yZz4uCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NzI4LgotCi0yMDA0LTA3LTA3ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQ+Ci0KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogU3luYyB3aXRoIHJlYWxpdHkuCi0JKiBsaW51eC9zcGFyYy9zeXNjYWxsLmggKHN5c19zZW5kZmlsZTY0LCBzeXNfZnV0ZXgsIHN5c19nZXR0aWQsCi0Jc3lzX3NjaGVkX3NldGFmZmluaXR5LCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHksIHN5c19zZXR4YXR0ciwKLQlzeXNfbHNldHhhdHRyLCBzeXNfZnNldHhhdHRyLCBzeXNfZ2V0eGF0dHIsIHN5c19sZ2V0eGF0dHIsCi0Jc3lzX2ZnZXR4YXR0ciwgc3lzX2xpc3R4YXR0ciwgc3lzX2xsaXN0eGF0dHIsIHN5c19mbGlzdHhhdHRyLAotCXN5c19yZW1vdmV4YXR0ciwgc3lzX2xyZW1vdmV4YXR0ciwgc3lzX2ZyZW1vdmV4YXR0ciwKLQlzeXNfcmVtYXBfZmlsZV9wYWdlcywgc3lzX3JlYWRhaGVhZCwgc3lzX3Rna2lsbCwgc3lzX3N0YXRmczY0LAotCXN5c19mc3RhdGZzNjQsIHN5c19jbG9ja19zZXR0aW1lLCBzeXNfY2xvY2tfZ2V0dGltZSwKLQlzeXNfY2xvY2tfZ2V0cmVzLCBzeXNfY2xvY2tfbmFub3NsZWVwLCBzeXNfdGltZXJfY3JlYXRlLAotCXN5c190aW1lcl9zZXR0aW1lLCBzeXNfdGltZXJfZ2V0dGltZSk6IE5ldyBkZWNsYXJhdGlvbnMuCi0JKiBsaW51eC9zcGFyYzY0L2R1bW15Mi5oLCBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgsCi0JbGludXgvc3BhcmM2NC9zeXNjYWxsLmgsIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQuaCwKLQlsaW51eC9zcGFyYzY0L2Vycm5vZW50MS5oLCBsaW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oLAotCWxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaCwgbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCwKLQlsaW51eC9zcGFyYzY0L2lvY3RsZW50Mi5oLCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudC5oLAotCWxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsCi0JbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oLAotCWxpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaCwgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmgsCi0JbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oOiBOZXcgZmlsZXMuCi0JKiBkZWZzLmggKExJTlVYU1BBUkMpOiBEZWZpbmUgYWxzbyB3aGVuIFNQQVJDNjQuCi0JKExJTlVYICYmIFNQQVJDNjQpOiBTZXQgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgdG8gMy4KLQlJZ25vcmUgU0lHVFJBUCBhZnRlciBleGVjdmUgYnkgZGVmaW5pbmcgVENCX1dBSVRFWEVDVkUuCi0JRGVmaW5lIHBvc3NpYmx5IG1pc3NpbmcgX19OUl9leGl0X2dyb3VwLiAgRGVjbGFyZSBnZXRydmFsMi4KLQkqIGNvbmZpZ3VyZS5hYyAoc3BhcmM2NCk6IE5ldyBhcmNoaXRlY3R1cmUgY2FzZS4KLQkqIGZpbGUuYyAoc3RhdF9zcGFyYzY0KTogTmV3IHN0cnVjdHVyZS4KLQkocHJpbnRzdGF0X3NwYXJjNjQpOiBOZXcgb3V0cHV0IHJvdXRpbmUgZm9yIHRoYXQuCi0JKHByaW50c3RhdCk6IENhbGwgaXQsIGlmIHBlcnNvbmFsaXR5IGlzIDIuCi0JKHByaW50c3RhdDY0KTogTGlrZXdpc2UuCi0JKiB1dGlsLmM6IENvbmRpdGlvbmFsaXplIHB0cmFjZSBkZWZpbmVzIG9uIExJTlVYU1BBUkMKLQlub3QgTElOVVggJiYgU1BBUkMuCi0JKFNQQVJDNjQgJiYgTElOVVgpOiBEZWZpbmUgcl9wYyB0byByX3RwYywgYW5kIFBUUkFDRV9GT09SRUdTCi0JdG8gUFRSQUNFX0ZPT1JFR1M2NCBzbyB0aGF0IG1vcmUgc3BhcmMgY29kZSBjYW4gYmUgc2hhcmVkCi0JYmV0d2VlbiA2NC1iaXQgYW5kIDMyLWJpdC4KLQkoX2hhY2tfc3lzY2FsbDUpOiBDb3JyZWN0IHRyYXAgbnVtYmVyIHdoZW4gU1BBUkM2NC4KLQkoUFRSQUNFX1dSSVRFe1RFWFQsREFUQX0pOiBBZGQgU1BBUkM2NCB0byBpZmRlZiBndWFyZC4KLQkoZ2V0cGMpOiBIYW5kbGUgU1BBUkM2NCAmJiBMSU5VWC4KLQkocHJpbnRjYWxsKTogTGlrZXdpc2UuCi0JKGFyZyBmZXRjaGluZy9zZXR0aW5nKTogVXNlIHNhbWUgY29kZSBmb3IgU1BBUkM2NCBMSU5VWAotCWFzIGZvciBTUEFSQy4KLQkoc2V0YnB0KTogSGFuZGxlIFNQQVJDNjQgJiYgTElOVVguCi0JKGNsZWFyYnB0KTogTGlrZXdpc2UuCi0JKiBzaWduYWwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gU1BBUkMgYW5kCi0JU1BBUkM2NC4KLQkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKLQl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKLQliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgotCShtX3NpZ2luZm8pOiBVc2Ugc2FtZSBkZWZpbml0aW9uIG9uIFNQQVJDNjQgYXMgU1BBUkMuCi0JKHN5c19zaWdyZXR1cm4pOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KLQkqIHN5c2NhbGwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gU1BBUkMgYW5kCi0JU1BBUkM2NC4KLQkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKLQl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKLQliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgotCShnZXRzY25vKTogVXNlIHNhbWUgc3RhdGljIHN0YXRlIG9uIFNQQVJDNjQgYXMgU1BBUkMsCi0JYW5kIGFkZCBTUEFSQzY0IGhhbmRsaW5nLgotCShnZXRfZXJyb3IpOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KLQkoZm9yY2VfcmVzdWx0KTogTGlrZXdpc2UuCi0JKHN5c2NhbGxfZW50ZXIpOiBMaWtld2lzZS4KLQkodHJhY2Vfc3lzY2FsbCk6IEhhbmRsZSBzeXNfc29ja2V0Y2FsbCBhbmQgc3lzX2lwYyBvbiBTUEFSQzY0Ci0JanVzdCBsaWtlIFNQQVJDLgotCShnZXRydmFsMik6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgotCSogcHJvY2Vzcy5jOiBDb25kaXRpb25hbGl6ZSBwdHJhY2UgZGVmaW5lcyBvbiBTUEFSQyBhbmQKLQlTUEFSQzY0LgotCShTUEFSQzY0ICYmIExJTlVYKTogRGVmaW5lIHJfcGMgdG8gcl90cGMsIGFuZCBQVFJBQ0VfRk9PUkVHUwotCXRvIFBUUkFDRV9GT09SRUdTNjQgc28gdGhhdCBtb3JlIHNwYXJjIGNvZGUgY2FuIGJlIHNoYXJlZAotCWJldHdlZW4gNjQtYml0IGFuZCAzMi1iaXQuCi0JKGNoYW5nZV9zeXNjYWxsKTogSGFuZGxlIExJTlVYICYmIFNQQVJDNjQuCi0JKHN0cnVjdF91c2VyX29mZnNldHMpOiBJZmRlZiBvdXQgdGhvc2Ugd2hpY2ggZG8gbm90IGV4aXN0Ci0Jb24gU1BBUkM2NC4KLQkqIG5ldC5jIChzeXNfcGlwZSk6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgotCSogaW9jdGwuYzogRml4IGluaXRpYWxpemVyIHR5cG8gZm9yIG5pb2N0bGVudHMyLCB3YXMKLQluaW9jdGxlbnRzMSBieSBhY2NpZGVudC4KLQotMjAwNC0wNi0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KLQotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9leGVjKTogTW92ZSBUQ0JfV0FJVEVYRUNWRSBoYW5kbGluZyBoZXJlLgotCShzeXNfZXhlY3ZlKTogUmVtb3ZlIGl0IGhlcmUuCi0KLTIwMDQtMDctMTIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oLgotCi0JKiBkZWJpYW4vY29udHJvbCAoU2VjdGlvbik6IE1vdmUgdG8gdXRpbHMsIG1hdGNoaW5nIERlYmlhbiBvdmVycmlkZS4KLQotCSogbmV0LmMgKGFkZHJmYW1zKTogTWFrZSB2YXJpYWJsZSBnbG9iYWwuCi0JKiBzb2NrLmMgKHNvY2tfaW9jdGwpOiBEZWNvZGUgdGhlIGFyZ3VtZW50cyBmb3IgU0lPQ0dJRk5BTUUsCi0JU0lPQ0dJRklOREVYLCBhbmQgU0lPQ0dJRkNPTkYuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjY5MTcuCi0KLQkqIGxpbnV4L2lvY3Rsc29ydC5jOiBBZGQgc29tZSAjaW5jbHVkZXMuCi0JW1BPV0VSUENdOiBLbHVkZ2Ugb3V0IGhpZ2ggYml0cy4KLQkqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQgdXNpbmcgUkhFTDMgaGVhZGVycy4KLQkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogTGlrZXdpc2UuCi0KLTIwMDQtMDctMTEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L2lvY3RsZW50LnNoOiBSZXBsYWNlIGFzbSB3aXRoICRhc20gaW4gYWxsIHBsYWNlcy4KLQotCSogY29uZmlndXJlLmFjOiBBZGQgSTM4NiBhcyBBTV9DT05ESVRJT05BTC4KLQkqIE1ha2VmaWxlLmFtIFtMSU5VWF06IEFkZCBtYWludGFpbmVyLW1vZGUgcnVsZXMgdG8gcmVnZW5lcmF0ZQotCXRoZSBpb2N0bGVudC5oIGZpbGUuCi0KLTIwMDQtMDctMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHJlc291cmNlLmMgKHN5c19xdW90YWN0bCk6IFRydW5jYXRlIGZpcnN0IGFyZ3VtZW50IHRvIDMyIGJpdHMsIHNpbmNlCi0JdGhhdCdzIHdoYXQgdGhlIGtlcm5lbCB3aWxsIGRvLgotCi0yMDA0LTA3LTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9pb2N0bGVudC5zaDogVGFrZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gdXNlIGFzIGRpcmVjdG9yeQotCW5hbWUgaW4gcGxhY2Ugb2YgYGFzbScuCi0KLTIwMDQtMDYtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNS4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuNS0xLgotCi0yMDA0LTA2LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzeXNjYWxsLmMgKHN5c2NhbGxfZml4dXApIFtMSU5VWCAmJiBYODZfNjRdOiBGb3IgMzItYml0IHByb2Nlc3MsCi0Jc2lnbiBleHRlbmQgdGhlIGxvdyAzMiBiaXRzIG9mIFJBWCB0byA2NCBiaXRzLgotCUZpeGVzIFJIIzEyNjU0Ny4KLQotCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpOiBbTElOVVggJiYgWDg2XzY0XTogRml4IFJBWCo0IC0+IFJBWCo4LgotCi0yMDA0LTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjQuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjQtMS4KLQotCSogbmV0LmMgKGRvbWFpbnMpOiBBZGQgbWFueSBQRl8qIHZhbHVlcyAjaWZkZWYgUEZfKi4KLQkoYWRkcmZhbXMpOiBBZGQgbWFueSBBRl8qIHZhbHVlcyAjaWZkZWYgQUZfKi4KLQlGaXhlcyBEZWJpYW4gYnVnICMyNTA1MDYuCi0KLTIwMDQtMDUtMDIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIGxpbnV4L2lvY3Rsc29ydC5jIChjb21wYXJlKTogV2hlbiBpb2N0bCBjb2RlcyBlcXVhbCwgY29tcGFyZQotCW5hbWVzLgotCShtYWluKTogUHJpbnQgYSBub3RlIHRoYXQgcHJvZ3JhbSBvdXRwdXQgaXMgZ2VuZXJhdGVkIGJ5Ci0JaW9jdGxzb3J0LgotCSogbGludXgvaW9jdGxlbnQuc2g6IEJ1aWxkIHRoZSBsaXN0IG9mIGlvY3RscyBkZWZpbmVkIGluCi0JbGludXgvZmIuaCAoMHg0Ni4uKSwgbGludXgva2QuaCAoMHg0Qi4uKSwgbGludXgvY2Ryb20uaCAoMHg1My4uKSwKLQlhc20vaW9jdGxzLmggKDB4NTQuLiksIGxpbnV4L3Z0LmggKDB4NTYuLiksIGxpbnV4L3ZpZGVvdGV4dC5oCi0JKDB4NzEuLiksIGxpbnV4L3ZpZGVvdGV4dC5oICgweDcyLi4pLCBhc20vc29ja2lvcy5oICgweDg5Li4pLAotCWxpbnV4L3NvY2tpb3MuaCAoMHg4OS4uKSwgbGludXgvd2lyZWxlc3MuaCAoMHg4Qi4uKS4KLQkqIGxpbnV4L2lvY3RsZW50Lmg6IFJlZ2VuZXJhdGVkIGZyb20gbGludXgtMi42LjUuCi0JRml4ZXMgUkgjMTIyMjU3LgotCi0yMDA0LTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIGFtZDY0LgotCUZpeGVzIERlYmlhbiBidWcgIzI0NjU2OC4KLQotCSogc3RyYWNlLmMgKG1haW4pIFtMSU5VWF06IEV4cGFuZCBUQ0JUQUIgYXMgbmVjZXNzYXJ5IGZvciB0aHJlYWRzCi0JYXR0YWNoZWQuICBBdHRhY2ggdGhyZWFkcyBvbmx5IHVuZGVyIC1mLiAgU2V0IFRDQl9GT0xMT1dGT1JLIGluIHRoZW0uCi0JKGV4cGFuZF90Y2J0YWIpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgLi4uCi0JKiBwcm9jZXNzLmMgKGZvcmtfdGNiKTogLi4uIGhlcmUsIGNhbGwgdGhhdC4KLQkqIGRlZnMuaDogRGVjbGFyZSBleHBhbmRfdGNidGFiLgotCi0yMDA0LTA0LTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBwcm9jZXNzLmMgKHByaW50c3RhdHVzKTogQWRkIGEgc3BhY2UgYmVmb3JlIHwgaW4gb3V0cHV0LgotCi0yMDA0LTA0LTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWM6IFZlcnNpb24gNC41LjMuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjMtMS4KLQotMjAwNC0wMy0xOCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KLQotCSogcmVzb3VyY2UuYyAoc3lzX3F1b3RhY3RsKSBbTElOVVhdOiBDYXN0IGFyaXRobWV0aWMgc2hpZnQgb3BlcmFuZAotCWZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLCB0byBmaXggb3V0cHV0IG9mIHRoZSBxdW90YWN0bCBjb21tYW5kCi0JcGFyc2VyLgotCUZpeGVzIFJIIzExODY5NC4KLQotMjAwNC0wNC0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvczM5MC9pb2N0bGVudC5oLCBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBVcGRhdGUgREFTRCBpb2N0bHMuCi0JRnJvbSBNYXhpbSBTaGNoZXR5bmluIDxtYXhpbUBkZS5pYm0uY29tPi4KLQotCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgPG1xdWV1ZS5oPi4KLQkqIGlwYy5jIChzeXNfbXFfb3BlbiwgcHJpbnRtcWF0dHIpIFshIEhBVkVfTVFVRVVFX0hdOiBEb24ndCB0cnkgdG8KLQlkZWNvZGUgc3RydWN0IG1xX2F0dHIuCi0JKiBORVdTOiBNZW50aW9uIG1xIHN1cHBvcnQuCi0KLQkqIGxpbnV4L3N5c2NhbGwuaDogU3VwcG9ydCBuZXcgbXFfKiBzeXNjYWxscyBvbiBMaW51eC4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9kdW1teS5oOiBMaWtld2lzZS4KLQkqIGlwYy5jOiBMaWtld2lzZS4KLQkqIHRpbWUuYyAocHJpbnRzaWdldmVudCk6IEhhbmRsZSBTSUdFVl9USFJFQUQuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQlGaXhlcyBSSCMxMjA3MDEuCi0KLTIwMDQtMDQtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIG5ldC5jIChtc2dfZmxhZ3MpOiBHcm9rIE1TR19GSVgsIE1TR19TWU4sIE1TR19SU1QsIE1TR19OT1NJR05BTCwKLQlNU0dfTU9SRS4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzEyMDU0MS4KLQotCSogcHJvY2Vzcy5jIChwcmludHN0YXR1cyk6IE1hc2sgb3V0IGJpdHMgcHJlc2VudGVkIHN5bWJvbGljYWxseSwgYW5kCi0JcHJpbnQgInwgMHhubm4iIGlmIHRoZSByZW1haW5pbmcgYml0cyBhcmUgbm90IGFsbCB6ZXJvLgotCUZpeGVzIERlYmlhbiBidWcgIzI0MDA2Mi4KLQotCSogcHJvY2Vzcy5jIChwcmludF9hZmZpbml0eWxpc3QpOiBSZXdyaXR0ZW4gdG8gaGFuZGxlIGluZGlyZWN0IHZhbHVlcy4KLQkoc3lzX3NjaGVkX3NldGFmZmluaXR5LCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHkpOiBVcGRhdGUgY2FsbGVycy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzExODY4NS4KLQotCSogYWNpbmNsdWRlLm00OiBRdW90ZSBmaXJzdCBhcmd1bWVudCB0byBBQ19ERUZVTiBpbiBhbGwgY2FzZXMuCi0KLTIwMDQtMDQtMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5jIChtYWluKSBbTElOVVhdOiBXaGVuIGF0dGFjaGluZyBmb3IgLXAsIGxvb2sgaW4KLQkvcHJvYy9QSUQvdGFzayBmb3IgYWxsIHRocmVhZHMgYW5kIGF0dGFjaCB0aGVtIGFzIHByZXN1bWVkCi0JQ0xPTkVfVEhSRUFEIGNoaWxkcmVuLgotCSogTkVXUzogTWVudGlvbiB0aGUgZmVhdHVyZS4KLQlGaXhlcyBSSCMxMjA0NjIuCi0KLTIwMDQtMDMtMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHV0aWwuYyAoc2V0YnB0KTogRml4IG9uZSBtaXNzZWQgc3BvdCB0byB1c2UgbmV3IGFyZzBfaW5kZXggbWFjcm8uCi0JRnJvbSBNaWNoYWVsIEhvbHpoZXUgPEhPTFpIRVVAZGUuaWJtLmNvbT4uCi0KLQkqIGRlYmlhbi9jb250cm9sIChTdGFuZGFyZHMtVmVyc2lvbik6IFVwZGF0ZSB0byAzLjYuMS4KLQotMjAwNC0wMy0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4yLgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS4yLTEuCi0KLQkqIHN0cmFjZS5jIChtYWluKTogQXZvaWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVycnVucyBmcm9tIGx1ZGljcm91cwotCWFyZ3VtZW50cyBvciBQQVRIIHZhbHVlcy4KLQkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBCYWlsIG91dCBmb3IgdG9vLWxvbmcgc3RyaW5nLgotCi0JKiBtZW0uYyBbTElOVVhdOiA8YXNtL21tYW4uaD4gLT4gPGxpbnV4L21tYW4uaD4KLQlGaXhlcyBEZWJpYW4gYnVnICMyMjMyMDcuCi0KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogQ29weSBsaW51eC9zeXNjYWxsLmggZGVjbHMgb2Ygc3lzX3NjaGVkXyouCi0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGBzdHJ1Y3QgdXNlcl9kZXNjJyBpbiA8YXNtL2xkdC5oPi4KLQkqIHByb2Nlc3MuYyBbSEFWRV9TVFJVQ1RfVVNFUl9ERVNDXTogVXNlIHN0cnVjdCB1c2VyX2Rlc2MgaW4gcGxhY2Ugb2YKLQlzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcy4KLQkqIG1lbS5jIFtIQVZFX1NUUlVDVF9VU0VSX0RFU0NdOiBMaWtld2lzZS4KLQotCSogc3lzdGVtLmMgKHN5c2N0bF92bSk6IENvbmRpdGlvbmFsaXplIFZNXyogbWFjcm8gdXNlcywgYWRkIHNvbWUgbW9yZS4KLQlGcm9tIFRpbSBZYW1pbiA8cGxhc21hcm9vQGdlbnRvby5vcmc+LgotCi0JKiBwcm9jZXNzLmMgKHN5c19leGVjdmUpOiBDbGVhciBpbnN0ZWFkIG9mIHNldCBUQ0JfV0FJVEVYRUNWRSBvbgotCWVycmluZyBzeXNjYWxsLgotCi0JKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBgc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnCi0JYW5kIGBzdHJ1Y3QgaWE2NF9mcHJlZycgaW4gPHN5cy9wdHJhY2UuaD4uCi0JKiB1dGlsLmMsIHByb2Nlc3MuYywgc3lzY2FsbC5jLCBzaWduYWwuYzogV29yayBhcm91bmQgY29uZmxpY3RzIGJldHdlZW4KLQk8c3lzL3B0cmFjZS5oPiBhbmQgPGxpbnV4L3B0cmFjZS5oPiBmb3IgZGVmaW5pbmcgdGhvc2UgdHlwZXMuCi0KLQkqIHByb2Nlc3MuYyAoc3RydWN0X3VzZXJfb2Zmc2V0cykgW0xJTlVYICYmIElBNjRdOiBDb25kaXRpb25hbGl6ZQotCVBUX0FSX0NTRCBhbmQgUFRfQVJfU1NEIHVzZXMgaW4gY2FzZSBvZiBvbGRlciBrZXJuZWwgaGVhZGVycy4KLQotCSogdXRpbC5jIFtMSU5VWF0gKGFyZzBfaW5kZXgsIGFyZzFfaW5kZXgpOiBOZXcgbWFjcm9zLgotCVtTMzkwIHx8IFMzOTBYXTogRGVmaW5lIHRoZW0gd2l0aCBpbnZlcnRlZCB2YWx1ZXMuCi0JKHNldGJwdCk6IFVzZSB0aGVtIGZvciB1X2FyZyBpbmRpY2VzLgotCi0yMDA0LTAyLTI2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgotCi0JKiBkZWZzLmggW0xJTlVYICYmIElBNjRdOiBEZWNsYXJlIGdldHJ2YWwyIGFsc28gb24gSUE2NC4KLQkqIG5ldC5jIChzeXNfcGlwZSkgW0xJTlVYICYmIElBNjRdOiBGb3IgSUE2NCB1c2UgdGhlIHR3byByZXR1cm4gdmFsdWVzLgotCSogc3lzY2FsbC5jIChnZXRydmFsMikgW0xJTlVYICYmIElBNjRdOiBJbXBsZW1lbnQgZm9yIElBNjQuCi0KLTIwMDQtMDMtMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L2R1bW15LmggKHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9zZXRwYXJhbSwKLQlzeXNfc2NoZWRfZ2V0cGFyYW0sIHN5c19zY2hlZF9zZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCi0Jc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKTogUmVtb3ZlIG1hY3Jvcy4KLQkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCBzeXNfc2NoZWRfc2V0cGFyYW0sCi0Jc3lzX3NjaGVkX2dldHBhcmFtLCBzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAotCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKTogTmV3IGZ1bmN0aW9ucy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCUZpeGVzIFJIIzExNjk5MC4KLQotMjAwNC0wMi0yMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBzb21lIHN5c2NhbGxzLgotCUZyb20gUmFuZG9scGggQ2h1bmcgPHRhdXNxQGRlYmlhbi5vcmc+LgotCUZpeGVzIERlYmlhbiBidWcgIzIzMTYzMi4KLQotMjAwMy0xMi0zMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfZXhpdCk6IEZvciBpYTY0LCBhbHNvIHJlY29nbml6ZSBJQS0zMiAyNTIKLQlhcyBleGl0X2dyb3VwKCkuCi0JKGNoYW5nZV9zeXNjYWxsKTogRm9yIElBNjQsIGFsc28gc3VwcG9ydCBjaGFuZ2luZyBJQS0zMiBzeXNjYWxscy4KLQkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IEZvciBJQTY0LCBhbHNvIHJlY29nbml6ZSBJQS0zMgotICAgICAgICBzeXNjYWxsIDI1MiAoZXhpdF9ncm91cCkgYXMgYW4gaW50ZXJuYWxfZXhpdCgpIHN5c2NhbGwuCi0JKiB1dGlsLmMgKFNZU19mb3JrKTogRm9yIElBNjQsIGRlZmluZSB0aGVtIHRvIHRoZSBJQS0zMiBzeXNjYWxsCi0JbnVtYmVyLgotCShTWVNfdmZvcmspOiBMaWtld2lzZS4KLQkoYXJnX3NldHVwKTogRm9yIElBNjQgdmVyc2lvbiwgYWxzbyBzdXBwb3J0IElBLTMyIHN5c2NhbGxzLgotCShnZXRfYXJnMCk6IExpa2V3aXNlLgotCShnZXRfYXJnMSk6IExpa2V3aXNlLgotCShzZXRfYXJnMCk6IExpa2V3aXNlLgotCShzZXRfYXJnMSk6IExpa2V3aXNlLgotCi0yMDA0LTAyLTE1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+Ci0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBBZGQgcnRhcyBjYWxsLgotCVNoaWZ0IG11bHRpcGxleGVkIHN5c2NhbGxzIHRvIHN0YXJ0IGF0IDMwMCwgd2UgYXJlIGFscmVhZHkgYWJvdXQKLQl0byBoaXQgMjU2IHJlYWwgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IFNZU19zb2NrZXRfc3ViY2FsbCBpcyBub3cgMzAwIGZvciBbUE9XRVJQQ10uCi0KLTIwMDQtMDItMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5jIChtYWluKTogVXNlIFRDUC0+cGlkLCBub3QgUElELCBpbiAtcCBtZXNzYWdlLgotCUZpeGVzIERlYmlhbiBidWcgIzIyOTgwMi4KLQotMjAwNC0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdOiBSZW1vdmUgYm9ndXMgdXBlZWsKLQljYWxsLgotCi0JKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogRml4IHR5cG8gc3RyaWN0IC0+IHN0cnVjdC4KLQlSZXBvcnRlZCBieSBQZXR0ZXIgUmVpbmhvbGR0c2VuIDxwZXJlQGh1bmdyeS5jb20+LgotCi0yMDAzLTEyLTMxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KLQotCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbSUE2NF06IEZpeCB1cCByZWdpc3RlciBuYW1lIGxpc3QuCi0KLTIwMDMtMTItMTQgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KLQotCSogZmlsZS5jIChzeXNfZ2V0ZGVudHM2NCk6IERvbid0IGNhc3QgZF9pbm8gYW5kIGRfb2ZmIHRvIHVuc2lnbmVkIGxvbmcuCi0JVXNlICVsbHUgZm9ybWF0cyBmb3IgdGhlbS4KLQotCSogZmlsZS5jIFtMSU5VWF0gKGZzbWFnaWMpOiBBZGQgU1lTRlNfTUFHSUMuCi0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBVcGRhdGUgdG8gaW5jbHVkZSByZWNlbnRseSBhZGRlZAotCXN5c2NhbGxzLgotCi0JKiBzeXNjYWxsLmMgKGdldF9lcnJvcikgW1BPV0VSUENdOiBDYXN0IHJlc3VsdCB0byB1bnNpZ25lZCBsb25nIGZvcgotCXBwYzY0LCB3ZSB3ZXJlIG1pc3JlcG9ydGluZyBzeXNjYWxscyB0aGF0IHJlYWxseSBzdWNjZWVkZWQgYXMgaGF2aW5nCi0JZmFpbGVkLgotCi0yMDA0LTAxLTEzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzdHJhY2UuMTogUmVtb3ZlIGNvbW1lbnQgYWJvdXQgdmZvcmsgb24gTGludXguCi0JRml4ZXMgRGViaWFuIGJ1ZyAjMjIzMzkwLgotCi0JKiBmaWxlLmMgKGRpcmVudHR5cGVzKTogRGVmaW5lIHVuZGVyIFtMSU5VWF0gYXMgd2VsbC4gIEFkZCBEVF9VTktOT1dOLgotCShzeXNfZ2V0ZGVudHM2NCkgW0xJTlVYXTogUHJpbnQgZF90eXBlIGZpZWxkLgotCi0yMDAzLTEyLTE1ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtXQ09SRURVTVBdOiBTaG93IGNvcmVkdW1wIHN0YXR1cyBvZiB0aGUKLQlraWxsZWQgcHJvY2VzcyBpZiBhdmFpbGFibGUuICBGaXhlcyBSSCMxMTIxMTcuCi0KLTIwMDMtMTEtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMS4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuMS0xLgotCi0yMDAzLTA5LTA2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgotCi0JKiBkZWZzLmggKGlvY3RsX2xvb2t1cCk6IFByb3RvdHlwZSBjaGFuZ2UuCi0JKiBpb2N0bC5jIChpb2N0bF9uZXh0X21hdGNoKTogTmV3IGZ1bmN0aW9uLgotCSogZGVmcy5oOiBEZWNsYXJlIGl0LgotCSogaW8uYyAoc3lzX2lvY3RsKTogVXNlIGl0LCB0byBkaXNwbGF5IGFsbCBwb3NzaWJsZSBpb2N0bCBuYW1lcwotCXdoZW4gdGhlcmUncyBtb3JlIHRoYW4gb25lIG1hdGNoLgotCSogaW9jdGwuYyAoaW9jdGxfbG9va3VwKTogTGlrZXdpc2UuCi0JKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogTGlrZXdpc2UuCi0JUGF0Y2ggZnJvbSBTb2xhciBEZXNpZ25lciA8c29sYXJAb3BlbndhbGwuY29tPi4KLQotMjAwMy0xMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIuCi0JKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLTIwMDMtMDktMDYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQlGaXhlcyBmb3IgUkgjMTA1MzU5LgotCSogdXRpbC5jIChwcmludHVpZCk6IE5ldyBmdW5jdGlvbi4KLQkqIGRlZnMuaDogRGVjbGFyZSBpdC4KLQkqIGZpbGUuYyAoc3lzX2Nob3duKTogVXNlIGl0LgotCSogZmlsZS5jIChzeXNfZmNob3duKTogTGlrZXdpc2UuCi0JKiBwcm9jZXNzLmMgKHN5c19zZXRyZXVpZCwgc3lzX3NldHJlZ2lkLCBzeXNfc2V0cmVzdWlkLAotCXN5c19zZXRyZXNnaWQpOiBMaWtld2lzZS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQmV0dGVyIGhhbmRsZSBnZXRnaWQzMiwgZ2V0ZXVpZDMyLCBnZXRlZ2lkMzIsCi0Jc2V0cmV1aWQzMiwgc2V0cmVnaWQzMiwgZ2V0Z3JvdXBzMzIsIHNldGdyb3VwczMyLCBmY2hvd24zMiwKLQlzZXRyZXN1aWQzMiwgZ2V0cmVzdWlkMzIsIHNldHJlc2dpZDMyLCBnZXRyZXNnaWQzMiwgY2hvd24zMiwKLQlzZXR1aWQzMiwgc2V0Z2lkMzIsIHNldGZzdWlkMzIsIHNldGZzZ2lkMzIuCi0JKiBwcm9jZXNzLmMgW0xJTlVYXTogRGVmaW5lIEdFVEdST1VQUzMyX1QuCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIpOgotCU5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmggKHN5c19zZXRncm91cHMzMiwgc3lzX2dldGdyb3VwczMyKToKLQlEZWNsYXJlIHRoZW0uCi0KLTIwMDMtMTEtMTEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5jIChtYWluKTogQmFpbCB3aXRoIHVzYWdlIGVycm9yIGZvciBtaXNzaW5nIGNvbW1hbmQgYmVmb3JlIHdlCi0Jb3BlbiB0aGUgLW8gZmlsZSBvciBmaWRkbGUgdWlkcy4KLQotMjAwMy0xMS0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLmMgKG1haW4pOiBUcmVhdCBwaXBlZCBvdXRwdXQgbW9yZSBsaWtlIGZpbGUgb3V0cHV0LgotCURpc2FsbG93IC1mZiB3aXRoIHBpcGVkIG91dHB1dC4gIEZpeGVzIFJIIzEwNTM2Ni4KLQlSZXBvcnRlZCBieSBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+Ci0KLQkqIHN0cmFjZS5jICh0cHJpbnRmKTogQ2hlY2sgcmVzdWx0IG9mIHZmcHJpbnRmIGFuZCB1c2UgcGVycm9yIHdoZW4gaXQKLQlmYWlscyB3aGlsZSBub3Qgd3JpdGluZyB0byBzdGRlcnIgaXRzZWxmLiAgRml4ZXMgRGViaWFuIGJ1ZyAjMjE4NzYyLgotCi0JKiBuZXQuYyAocHJpbnRzb2NrKTogRml4IHR5cG8gaW4gI2lmZGVmIEFGX05FVExJTksuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KLQotMjAwMy0xMS0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKSBbTElOVVhdOiBDYWxjdWxhdGUgT05FX1RJQ0sgb25jZSB1c2luZwotCXNldGl0aW1lciByYXRoZXIgdGhhbiBoYXJkLWNvZGluZyBhIHZhbHVlIGJhc2VkIG9uIEhaLgotCUZpeGVzIFJIIzEwODAxMiwgcmVwb3J0ZWQgYnkgRmxvcmlhbiBMYSBSb2NoZSA8bGFyb2NoZUByZWRoYXQuY29tPi4KLQotMjAwMy0xMC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLjE6IEZpeGVkIGEgZmV3IHNwZWxsaW5nIGVycm9ycy4KLQlGaXhlcyBEZWJpYW4gYnVnICMyMTcwMDguCi0KLQkqIHN5c2NhbGwuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCB3YXMgYnJva2VuLgotCi0yMDAzLTEwLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRG9uJ3Qgc3VzcGVuZCBwYXJlbnQgd2hlbiBjYWxsIHJlcXVlc3RlZAotCWEgc3BlY2lmaWMgUElEIHRoYXQgaXMgbm90IGEgdHJhY2VkIGNoaWxkLgotCi0JKiBzaWduYWwuYyBbTElOVVhdIChwYXJzZV9zaWdzZXRfdCk6IFJld3JpdGUgdG8gcHJvY2VzcyBoZXggc3RyaW5ncwotCWZyb20gcmlnaHQgdG8gbGVmdCBzbyB3ZSBkb24ndCBoYXZlIHRvIHByZXN1bWUgdGhlIHNpemUuCi0JUmVwb3J0ZWQgYnkgRGF2aWQgV29vZGhvdXNlIDxkd213MkByZWRoYXQuY29tPi4KLQotMjAwMy0wOS0yNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogbWVtLmMgKG1tYXBfcHJvdCkgW1BST1RfU0VNLCBQUk9UX0dST1dTRE9XTiwgUFJPVF9HUk9XU1VQXTogSW5jbHVkZQotCXRoZXNlIGluIHRoZSB0YWJsZSBpZiB0aGV5IGFyZSBkZWZpbmVkLgotCi0yMDAzLTA5LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS0xLgotCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXTogQmFpbCBvdXQgb2YKLQlpbnN0cnVjdGlvbiBkZWNvZGluZyBicmFuY2ggaWYgVENCX0lOU1lTQ0FMTCBpcyBjbGVhci4KLQlSZXBvcnRlZCBieSA8am9jaGVuQHBlbmd1aW4tYnJlZWRlci5vcmc+LgotCi0JKiBsaW51eC9pb2N0bGVudC5oOiBTd2FwIG9yZGVyIG9mIG92ZXJsb2FkZWQgVEMqIGFuZCBTTkRDVExfKiB2YWx1ZXMuCi0KLTIwMDMtMDktMjMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHN0cmFjZS5zcGVjOiBPbiBwcGM2NCAobWF5YmUgb3RoZXJzIGxhdGVyKSwgY3JlYXRlIGFuIHN0cmFjZTY0Ci0JcGFja2FnZSBhcyB3ZWxsIGNvbnRhaW5pbmcganVzdCAvdXNyL2Jpbi9zdHJhY2U2NC4KLQotCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2spOiBQcmludCBSVF8ldSBmb3IgX19TSUdSVE1JTi4uX19TSUdSVE1BWC4KLQlGaXhlcyBSSCMxMDQzNjUuCi0KLTIwMDMtMDgtMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IG1sb2NrIGFyZ3VtZW50IGNvdW50LiAgRml4ZXMgUkgjMTAxNDk5LgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCi0yMDAzLTA3LTI4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KLQotCSogZGVmcy5oIChBTElHTjY0KTogRGVmaW5lIGZvciBNSVBTLgotCSogaW8uYyAoUFJFQURfT0ZGU0VUX0FSRyk6IERlZmluZS4KLQkoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogVXNlIGl0LgotCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbU0hdOiBDaGVjayB3aGV0aGVyIFJFR19YRFJFRzAKLQlpcyBkZWZpbmVkLgotCSogbGludXgvc2gvc3lzY2FsbGVudC5oIChwcmVhZCwgcHdyaXRlKTogVGFrZSBzaXggYXJndW1lbnRzLgotCSh0cnVuY2F0ZTY0LCBmdHJ1bmNhdGU2NCk6IFByZXR0eS1wcmludC4KLQkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oIChwcmVhZCwgcHdyaXRlKTogVGFrZSBzaXggYXJndW1lbnRzLgotCSh0cnVuY2F0ZTY0LCBmdHJ1bmNhdGU2NCk6IFRha2UgZm91ciBhcmd1bWVudHMuCi0KLTIwMDMtMDctMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTkuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk5LTEuCi0KLTIwMDMtMDctMTUgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KLQotCSogaXBjLmM6IEFkZCBTSE1fSFVHRVRMQiBmaWVsZC4KLQlNYXNrIG91dCBwZXJtaXNzaW9uIGJpdHMgaW4gbXNnZ2V0LCBzZW1nZXQgYW5kIHNobWdldCBiZWZvcmUKLQkJcHJpbnRpbmcgcmVzb3VyY2VfZmxhZ3MuCi0JTWFzayBleGVjdXRlIHBlcm1pc3Npb24gYml0cyAoZXZlbiB0aG91Z2ggd2UgZG9udCBjdXJyZW50bHkKLQkJdXNlIHRoZW0pLgotCi0yMDAzLTA3LTE3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCAodGdraWxsKTogTmV3IGF0IDI1MC4KLQotCSogbGludXgvc3lzY2FsbGVudC5oOiB0cnVuY2F0ZTY0L2Z0cnVuY2F0ZTY0IG5lZWQgMyBhcmdzLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIHN0YXRmczY0LCBmc3RhdGZzNjQsIHV0aW1lcy4KLQkqIGZpbGUuYyAocHJpbnRzdGF0ZnMpOiBQcmludCBmX2ZzaWQgYW5kIGZfZnJzaXplLgotCVtMSU5VWF0gKHByaW50c3RhdGZzNjQsIHN5c19zdGF0ZnM2NCwgc3lzX2ZzdGF0ZnM2NCk6IE5ldyBmdW5jdGlvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBkZWNscy4KLQlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgotCi0yMDAzLTA3LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaCAodGdraWxsKTogTmV3IGF0IDEyMzUuCi0KLTIwMDMtMDctMDUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHR3aWRkbGUubmV0PgotCi0JKiBwcm9jZXNzLmMgKHN5c19jbG9uZSk6IE9yZGVyIGFyZ3VtZW50cyBmb3IgYWxwaGEgdGhlIHNhbWUgYXMgeDg2XzY0LgotCSogc3lzY2FsbC5jIChFUkVTVEFSVF9SRVNUQVJUQkxPQ0spOiBOZXcuCi0JKHRyYWNlX3N5c2NhbGwpOiBQcmludCBpdC4KLQkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaCAob3NmX3N5c2NhbGwpOiBOYW1lIHByb3Blcmx5LgotCShvc2Zfc2V0X3Byb2dyYW1fYXR0cmlidXRlcyk6IEZpeCB0eXBvLgotCShvc2ZfbmZzc3ZjKTogTGlrZXdpc2UuCi0JKG9zZl9zaWdzZW5kc2V0KTogTGlrZXdpc2UuCi0JKGdldGRlbnRzNjQsIGdldHRpZCwgcmVhZGFoZWFkLCB0a2lsbCwgc2V0eGF0dHIsIGxzZXR4YXR0ciwgZnNldHhhdHRyLAotCWdldHhhdHRyLCBsZ2V0eGF0dHIsIGZnZXR4YXR0ciwgbGlzdHhhdHRyLCBsbGlzdHhhdHRyLCBmbGlzdHhhdHRyLAotCXJlbW92ZXhhdHRyLCBscmVtb3ZleGF0dHIsIGZyZW1vdmV4YXR0ciwgZnV0ZXgsIHNjaGVkX3NldGFmZmluaXR5LAotCXNjaGVkX2dldGFmZmluaXR5LCB0dXhjYWxsLCBpb19zZXR1cCwgaW9fZGVzdHJveSwgaW9fZ2V0ZXZlbnRzLAotCWlvX3N1Ym1pdCwgaW9fY2FuY2VsLCBleGl0X2dyb3VwLCBsb29rdXBfZGNvb2tpZSwgZXBvbGxfY3JlYXRlLAotCWVwb2xsX2N0bCwgZXBvbGxfd2FpdCwgcmVtYXBfZmlsZV9wYWdlcywgc2V0X3RpZF9hZGRyZXNzLAotCXJlc3RhcnRfc3lzY2FsbCwgZmFkdmlzZSwgdGltZXJfY3JlYXRlLCB0aW1lcl9zZXR0aW1lLCB0aW1lcl9nZXR0aW1lLAotCXRpbWVyX2dldG92ZXJydW4sIHRpbWVyX2RlbGV0ZSwgY2xvY2tfc2V0dGltZSwgY2xvY2tfZ2V0dGltZSwKLQljbG9ja19nZXRyZXMsIGNsb2NrX25hbm9zbGVlcCwgc2VtdGltZWRvcCk6IE5ldy4KLQotMjAwMy0wNy0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc2lnbmFsLmMgKHN5c190Z2tpbGwpOiBOZXcgZnVuY3Rpb24uCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB0Z2tpbGwuCi0KLTIwMDMtMDYtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHR5cGUgYHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCcuCi0JKiBmaWxlLmMgKGNvbnZlcnRvbGRzdGF0LCBwcmludG9sZHN0YXQpOiBEZWZpbmUgdW5kZXIKLQlbTElOVVggJiYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVRdIHJhdGhlciB0aGFuIGEgbGlzdCBvZiBhcmNocy4KLQkoc3lzX29sZHN0YXQsIHN5c19vbGRmc3RhdCwgc3lzX29sZGxzdGF0KTogTGlrZXdpc2UuCi0JKiBsaW51eC9kdW1teS5oIFshIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUXQotCShzeXNfb2xkc3RhdCwgc3lzX29sZGZzdGF0LCBzeXNfb2xkbHN0YXQpOiAjZGVmaW5lIHRvIHByaW50YXJncy4KLQotMjAwMy0wNi0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlndXJlLmFjOiBTSE1FRElBIC0+IFNINjQKLQkqIGRlZnMuaDogTGlrZXdpc2UuCi0JKiBtZW0uYzogTGlrZXdpc2UuCi0JKiBwcm9jZXNzLmM6IExpa2V3aXNlLgotCSogc29jay5jOiBMaWtld2lzZS4KLQkqIHN5c2NhbGwuYzogTGlrZXdpc2UuCi0JKiB1dGlsLmM6IExpa2V3aXNlLgotCSogbGludXgvc2htZWRpYS9zeXNjYWxsZW50Lmg6IE1vdmVkIHRvIC4uLgotCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IC4uLiBoZXJlLgotCi0JKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGNhbm9uaWNhbCB2ZXJzaW9uLCB0aW1lc3RhbXAgMjAwMy0wNi0xNy4KLQkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgotCi0JKiBzeXNjYWxsLmMgKGZvcmNlX3Jlc3VsdCkgW0xJTlVYXSBbQVJNXTogRml4IHZhcmlhYmxlIHVzYWdlLgotCUZyb206IEpvc2h1YSBOZWFsIDx0aW5hcmFAbmV0cGlwZWxpbmUubmV0Pi4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19mdXRleCk6IEdyb2sgRlVURVhfUkVRVUVVRSBhbmQgcHJpbnQgNXRoIGFyZy4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogc3lzX2Z1dGV4IGFyZ3VtZW50IGNvdW50IGlzIG5vdyA1LCBub3QgNC4KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KLQlGcm9tIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+LgotCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbUzM5MCB8fCBTMzkwWF06IEZpeCBvbGQgdnMgbmV3IG1vZGUgZGV0ZWN0aW9uLgotCUZyb20gTWljaGFlbCBIb2x6aGV1IDxIT0xaSEVVQGRlLmlibS5jb20+LgotCi0yMDAzLTA2LTIzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBuZXQuYyAoc3lzX3NvY2tldCk6IERlY29kZSBwcm90b2NvbCBmb3IgUEZfSU5FVDYgc2FtZSBhcyBQRl9JTkVULgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCi0KLTIwMDMtMDYtMTAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTguCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk4LTEuCi0KLTIwMDMtMDYtMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogVXBkYXRlIG1hbnkgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IFVwZGF0ZSBbUzM5MFhdIHZhbHVlLgotCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogVXBkYXRlIG1hbnkgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IFVwZGF0ZSBbUzM5MF0gdmFsdWUuCi0KLQkqIGxpbnV4L3NobWVkaWEvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KLQlGcm9tIFN0ZXBoZW4gVGhvbWFzIDxzdGVwaGVuLnRob21hc0BzdXBlcmguY29tPi4KLQotCSogc3RyYWNlLmMgKHRyYWNlKTogUHJpbnQgYSBtZXNzYWdlIGFuZCBuZXdsaW5lIGZvciBhIFdJRkVYSVRFRCByZXBvcnQKLQlmcm9tIHRoZSBwcm9jZXNzIHdlIGp1c3QgcHJpbnRlZCBhbiB1bnRlcm1pbmF0ZWQgc3lzY2FsbCBsaW5lIGZvci4KLQotMjAwMy0wNi0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogdXRpbC5jIChwcmludGNhbGwpIFtMSU5VWF06IEZpeCB0eXBvIFtJQTYyXSAtPiBbSUE2NF0uCi0KLQlMaW51eC9BUk0gaW1wcm92ZW1lbnRzIGZyb20gUnVzc2VsbCBLaW5nIDxybWtAYXJtLmxpbnV4Lm9yZy51az46Ci0JKiBkZWZzLmggW0xJTlVYXSAoVENCX1dBSVRFWEVDVkUpOiBEZWZpbmUgZm9yIFtBUk1dIHRvby4KLQkqIHByb2Nlc3MuYyAoc3RydWN0X3VzZXJfb2Zmc2V0cykgW0xJTlVYXSBbQVJNXTogQWRkIEFSTSByZWdpc3RlcnMuCi0JKiBzaWduYWwuYyBbTElOVVhdIChzeXNfc2lncmV0dXJuKSBbQVJNXTogTmV3IGNhc2UuCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vLCBzeXNjYWxsX2ZpeHVwKSBbTElOVVhdIFtBUk1dOiBDYXNlIHJld3JpdHRlbi4KLQkoZ2V0X2Vycm9yKSBbTElOVVhdIFtBUk1dOiBVcGRhdGUuCi0JKHN5c2NhbGxfZW50ZXIpIFtMSU5VWF0gW0FSTV06IE5ldyBjYXNlLgotCSogdXRpbC5jIChwcmludGNhbGwpIFtMSU5VWF0gW0FSTV06IE5ldyBjYXNlLgotCi0JKiBkZWJpYW4vY29udHJvbCAoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy41LjEwLgotCi0JKiBzdHJhY2UuYyAobWFpbik6IEluIFBBVEggc2VhcmNoLCBhY2NlcHQgb25seSBhIHJlZ3VsYXIgZmlsZSB3aXRoCi0JZXhlY3V0ZSBiaXRzIHNldC4gIEZpeGVzIERlYmlhbiBidWcgIzEzNzEwMy4KLQotMjAwMy0wNi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3RyYWNlLmMgKG1haW4pOiBTZXQgLXEgd2hlbiBnaXZlbiAtbyBhbmQgbm90IC1wLCBhbmQgbm90IHdoZW4gbm90Ci0JZ2l2ZW4gLW8sIHRvIG1hdGNoIHdoYXQgdGhlIG1hbiBwYWdlIGFsd2F5cyBzYWlkLgotCUZpeGVzIERlYmlhbiBidWcgIzQ3MTEzLCAjMTUzNjc4LgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40Ljk3LgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Ny0xLgotCi0JKiBjb25maWd1cmUuYWMsIGRlZnMuaCwgbWVtLmMsIHByb2Nlc3MuYywgc29jay5jLCBzeXNjYWxsLmMsIHV0aWwuYzoKLQlNZXJnZWQgaW4gU0htZWRpYSBwb3J0IGZyb20gU3RlcGhlbiBUaG9tYXMgPHN0ZXBoZW4udGhvbWFzQHN1cGVyaC5jb20+LgotCi0JKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGZ0cDovL2Z0cC5nbnUub3JnL3B1Yi9nbnUvY29uZmlnLywKLQl0aW1lc3RhbXAgMjAwMy0wNS0yMi4KLQkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLCB0aW1lc3RhbXAgMjAwMy0wNS0yNC4KLQotMjAwMy0wNS0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTmV3IG1lbWJlciBgbnpvbWJpZXMnLgotCSogc3RyYWNlLmMgKGFsbG9jdGNiKTogSW5pdGlhbGl6ZSBpdC4KLQkoZHJvcHRjYik6IEluY3JlbWVudCBvdXIgcGFyZW50J3Mgem9tYmllIGNvdW50LgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogRG9uJ3QgZ28gaW50byBUQ0JfU1VTUEVOREVEIGlmIHRoZQotCXByb2Nlc3MgaGFzIHpvbWJpZXMgaXQgY2FuIHJlYXAuICBPbiB0aGUgd2F5IG91dCwgaWYgd2UgcmVhcGVkCi0JYW4gdW50cmFjZWQgcHJvY2VzcywgZGVjcmVtZW50IHRoZSB6b21iaWUgY291bnQuCi0KLQkqIHByb2Nlc3MuYyAoc3lzX2Nsb25lKTogTWFzayBDU0lHTkFMIG91dCBvZiBmbGFncyBhbmQgcHJpbnQgdGhhdAotCXNlcGFyYXRlbHkgdXNpbmcgc2lnbmFtZS4KLQotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSkgW1RDQl9DTE9ORV9USFJFQURdOiBVc2UgQVJHX0ZMQUdTIGluc3RlYWQKLQlvZiBsaXRlcmFsIDAgZm9yIGluZGV4LiAgQ29uc3VsdCB0aGUgcmlnaHQgZmxhZ3Mgd2l0aG91dCBjbG9iYmVyaW5nCi0JYW55dGhpbmcgd2hlbiB3ZSByZXBhcmVudCB0aGUgbmV3IGNoaWxkIHRvIHRoZSBjYWxsZXIncyBwYXJlbnQgdGhyZWFkLgotCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogRml4IHN5c19jbG9uZSBhcmd1bWVudCBjb3VudC4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taWNyb2JsYXplL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCiAJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0JKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgogCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KIAkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCiAJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgotCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBBZGQgaG9va3MgZm9yIGFjY2VwdDQsIGZhbm90aWZ5X2luaXQsCisJZmFub3RpZnlfbWFyaywgYW5kIHBybGltaXQ2NC4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBBZGQgaG9vayBmb3IgcHJsaW1pdDY0LgogCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSBbUzM5MCB8fCBTMzkwWF0gKEFSR19DVElELCBBUkdfVExTKTogRml4IHN3YXBwZWQKLQlpbmRpY2VzLiAgUmVwb3J0ZWQgYnkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4uCisyMDExLTAxLTE2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgogCi0JKiBzaWduYWwuYyBbTElOVVhdIChTSV9TSUdJTywgU0lfVEtJTEwpOiBOZXcgbWFjcm9zLgotCVtMSU5VWCB8fCBTVlI0XSAoc2lnaW5mb19jb2Rlcyk6IEFkZCBzdHJpbmdzIGZvciB0aGVtLgorCWJsb2NrLmM6IGNsZWFudXAKKwkqIGJsb2NrLmM6IEluY2x1ZGUgPGludHR5cGVzLmg+LgorCShwcmludF9ibGtwZ19yZXEpOiBBbHdheXMgZGVjb2RlIHN0cnVjdCBibGtwZ19pb2N0bF9hcmcuCisJUm9idXN0aWZ5IGRlY29kaW5nIG9mIHN0cmluZ3MuCisJKGJsb2NrX2lvY3RsKTogRG8gbm90IGRlY29kZSByZXR1cm4gdmFsdWVzIHBhc3NlZCBieSBwb2ludGVycyBvbiBleGl0CisJZnJvbSBmYWlsZWQgc3lzY2FsbHMuCisJVXNlIGZvcm1hdCBtYWNyb3MgZnJvbSBpbnR0eXBlcy5oIHRvIHByaW50IHZhbHVlcyBvZiB0eXBlIHVpbnQ2NF90LgogCi0JKiBwcm9jZXNzLmMgKHByaW50X2FmZmluaXR5bGlzdCk6IEZpeCBsb29wIGNvbmRpdGlvbi4KLQlSZXBvcnRlZCBieSBJYW4gV2llbmFuZCA8aWFud0BnZWxhdG8udW5zdy5lZHUuYXU+LgorMjAxMS0wMS0xNSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotMjAwMy0wNC0xMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlBZGQgYmxvY2sgaW9jdGwgc3VwcG9ydAorCSogYmxvY2suYzogTmV3IGZpbGUuCisJKiBNYWtlZmlsZS5hbSAoc3RyYWNlX1NPVVJDRVMpOiBBZGQgaXQuCisJKiBkZWZzLmggW0xJTlVYXSAoYmxvY2tfaW9jdGwpOiBOZXcgZnVuY3Rpb24uCisJKiBpb2N0bC5jIChpb2N0bF9kZWNvZGUpIFtMSU5VWF06IFVzZSBpdCB0byBkZWNvZGUgSERJT18qIGFuZCBCTEsqCisJaW9jdGxzLgorCVBhdGNoIGJ5IEplZmYgTWFob25leSA8amVmZm1Ac3VzZS5jb20+CiAKLQkqIHN5c2NhbGwuYyAocXVhbF9kZXNjKTogUmV0dXJuIHplcm8gYWZ0ZXIgcGFyc2luZyBudW1iZXIuCi0JRnJvbSBSb2IgTGVzbGllIDxyb2JAbWFycy5vcmc+LCBmaXhlcyBEZWJpYW4gYnVnICMxODgzNzkuCisyMDExLTAxLTE0ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgogCi0yMDAzLTA0LTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCVBhcnNlIFNPTF9TQ1RQIHNvY2tldCBvcHRpb25zCisJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0hFQURFUlMpOiBBZGQgbmV0aW5ldC9zY3RwLmguCisJKiBuZXQuYyBbSEFWRV9ORVRJTkVUX1NDVFBfSF06IEluY2x1ZGUgPG5ldGluZXQvc2N0cC5oPi4KKwlbU09MX1NDVFBdIChzb2Nrc2N0cG9wdGlvbnMpOiBOZXcgeGxhdCBzdHJ1Y3R1cmUuCisJKHN5c19nZXRzb2Nrb3B0LCBwcmludHNvY2tvcHQpOiBQYXJzZSBTT0xfU0NUUCBvcHRpb25zLgogCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IEhhbmRsZSBzZW10aW1lZG9wIHN1YmNhbGwgb2YgaXBjIHN5c2NhbGwuCi0JKiBsaW51eC9zeXNjYWxsLmg6IExpa2V3aXNlLgotCSogaXBjLmMgW0xJTlVYXSAoc3lzX3NlbXRpbWVkb3ApOiBOZXcgZnVuY3Rpb24uCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwkqIG5ldC5jIChzb2NrZXRsYXllcnMpOiBBZGQgbW9yZSBTT0xfKiBjb25zdGFudHMgZnJvbSBsaW51eC9zb2NrZXQuaAogCi0JKiBpcGMuYyAoc3lzX3NlbWdldCk6IE1hc2sgb2ZmIHBlcm1pc3Npb24gYml0cyBmb3IgcmVzb3VyY2VfZmxhZ3MuCi0JRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKzIwMTEtMDEtMTQgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLTIwMDMtMDQtMDEgIFBoaWxpcHBlIERlIE11eXRlciAgPHBoZG1AbWFjcWVsLmJlPgorCXN0cmFjZS4xOiBmaXggbWlzbGVhZGluZyBpdGFsaWNzCisJKiBzdHJhY2UuMTogVXNlIGJvbGQgaW5zdGVhZCBvZiBpdGFsaWNzIGZvciAiLWUgdHJhY2U9IiBrZXl3b3Jkcy4KKwlUaGlzIGZpeGVzIERlYmlhbiBidWcgIzU4OTMyMy4KIAotCSogc29jay5jLCBzdHJlYW0uYzogQ2hlY2sgI2lmZGVmIExJTlVYLCBub3QgbGludXguCi0JKiBmaWxlLmM6IEFsd2F5cyBwcm92aWRlIHN5c18qYXR0ciwgcmVnYXJkbGVzcyBvZiAjaWZkZWYgWEFUVFJfQ1JFQVRFLgorCVVwZGF0ZSBsaW51eC9pb2N0bGVudC5oCisJKiBsaW51eC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlIHVzaW5nIGxpbnV4IHYyLjYuMzcgaGVhZGVycy4KIAotMjAwMy0wMy0zMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlBZGQgSERJT18qIGlvY3RscyBkZWZpbmVkIGluIGxpbnV4L2hkcmVnLmgKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBBZGQgSERJT18qIGlvY3RscyAoMHgwMy4uKSBkZWZpbmVkIGluCisJbGludXgvaGRyZWcuaCBoZWFkZXIgZmlsZS4KKwlUaGlzIGZpeGVzIERlYmlhbiBidWcgIzQ1MDk1My4KIAotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45Ni4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTYtMS4KKzIwMTEtMDEtMTMgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLTIwMDMtMDItMjYgIFN0dWFydCBNZW5lZnkgPHN0dWFydC5tZW5lZnlAc3QuY29tPgorCVRlc3QgUFRSQUNFX09fVFJBQ0VDTE9ORSBhbmQgUFRSQUNFX09fVFJBQ0VWRk9SSyBhbG9uZyB3aXRoIFBUUkFDRV9PX1RSQUNFRk9SSworCSogc3RyYWNlLmMgKHRlc3RfcHRyYWNlX3NldG9wdGlvbnMpOiBBZGQgUFRSQUNFX09fVFJBQ0VDTE9ORSBhbmQKKwlQVFJBQ0VfT19UUkFDRVZGT1JLIHRvIFBUUkFDRV9TRVRPUFRJT05TIGNhbGwsIHRvIHRlc3QgZXhhY3RseQorCXRoZSBzYW1lIHNldCBvZiBvcHRpb25zIHRoYXQgaXMgZ29pbmcgdG8gYmUgdXNlZCBsYXRlciBpbiB0cmFjZSgpLgogCi0JVmFyaW91cyBmaXhlcyBmb3IgU3VwZXJIIFtTSF06Ci0JKiBtZW0uYyAoc3lzX29sZF9tbWFwKTogbW1hcCgpIHBhcmFtZXRlcnMgcGFzc2VkIGluIHJlZ2lzdGVycwotCSogbmV0LmMgKHN5c19waXBlKSwgc3lzY2FsbC5jIChnZXRydmFsMik6IHBpcGUoKSByZXN1bHRzIHJldHVybmVkCi0JaW4gcmVnaXN0ZXJzCi0JKiBwcm9jZXNzLmMgKGNoYW5nZV9zeXNjYWxsKTogRml4ZWQgcmVnaXN0ZXIgd2hpY2ggaG9sZHMgc3lzdGVtCi0JY2FsbCBudW1iZXIKLQkqIHV0aWwuYyAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogcHJvdmlkZSBkZWZpbml0aW9uCi0JKiBNYWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGVzIGluIGxpbnV4L3NoCi0JKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgotCSogbGludXgvc2gvZXJybm9lbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zaC9pb2N0bGVudC5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3NoL3NpZ25hbGVudC5oOiBOZXcgZmlsZS4KKzIwMTEtMDEtMTAgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLQkqIGxpbnV4L2lvY3RsZW50LnNoOiBUYWtlIGFuIGFyZyBmb3IgbG9jYXRpb24gb2YgaGVhZGVyIGZpbGVzCi0JKiBzeXNjYWxsZW50LnNoOiBSZXBsYWNlZCBsb3N0ICQKKwkqIG5ldC5jIChwcm90b2NvbHMpOiBBZGQgbW9yZSBJUFBST1RPXyogY29uc3RhbnRzIGRlZmluZWQgaW4gbmV0aW5ldC9pbi5oCiAKLTIwMDMtMDMtMzAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisyMDExLTAxLTEwICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPGhvbGdlckBmcmV5dGhlci5kZT4KIAotCSogdGltZS5jIFtMSU5VWF06IEhhbmRsZSBuZXcgTGludXggMi41IGNsb2NrL3RpbWVyIHN5c2NhbGxzLgotCSogbGludXgvc3lzY2FsbC5oLCBsaW51eC9zeXNjYWxsZW50LmgsIGxpbnV4L2R1bW15Lmg6IExpa2V3aXNlLgotCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJKiBuZXQuYyAocHJvdG9jb2xzKTogQWRkIElQUFJPVE9fR1JFLCBJUFBST1RPX1NDVFAgYW5kIElQUFJPVE9fVURQTElURS4KIAotCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2dldHJsaW1pdCBmb3IgMTkxLgotCVVzZSBuYW1lICJvbGRfZ2V0cmxpbWl0IiBmb3IgNzYuCi0JUmVwb3J0ZWQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisyMDExLTAxLTEwICBDYXJtZWxvIEFNT1JPU08gIDxjYXJtZWxvLmFtb3Jvc29Ac3QuY29tPgorCisJc2g6IEFkZCBlbnRyeSBmb3Igbm90LW11bHRpcGxleGVkIGFjY2VwdDQKKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogQWRkIHNwZWNpZmljIGVudHJ5IGZvciBub3QtbXVsdGlwbGV4ZWQgYWNjZXB0NAorCWF2YWlsYWJsZSBpbiBrZXJuZWwgbWFpbmxpbmUgc2luY2UgdjIuNi4zNy1yYzYsIHNlZQorCWh0dHA6Ly9naXQua2VybmVsLm9yZy8/cD1saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LTIuNi5naXQ7YT1jb21taXQ7aD0yMWI2ZTRjNzEwNmIyZDY4YTY3MTA1MDZkODcwNjYwODI3MmZkNzhiCisKKzIwMTAtMTItMTQgIENhcm1lbG8gQU1PUk9TTyAgPGNhcm1lbG8uYW1vcm9zb0BzdC5jb20+CisKKwlzaDogQWRkIGVudHJpZXMgZm9yIG5vdC1tdWx0aXBsZXhlZCBzb2NrZXQgY2FsbHMKKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogQWRkIHNwZWNpZmljIGVudHJpZXMgZm9yIG5vdC1tdWx0aXBsZXhlZAorCXNvY2tldCBjYWxscyAoYXZhaWxhYmxlIGluIGtlcm5lbCBtYWlubGluZSBzaW5jZSB2Mi42LjM3LXJjMSkKKworCXNoOiBGaXggY29tcGlsYXRpb24gd2FybmluZyBpbiBkb19waXBlIGR1ZSB0byBtaXNzaW5nIHByb3RvdHlwZQorCSogZGVmcy5oIFtTSF06IE1ha2UgZ2V0cnZhbDIgcHJvdG90eXBlIHZpc2libGUgdG8gZG9fcGlwZQorCWFuZCBmaXggdGhlIGZvbGxvd2luZyBjb21waWxlciB3YXJuaW5nOgorCS4uLi9uZXQuYzogSW4gZnVuY3Rpb24gJ2RvX3BpcGUnOgorCS4uLi9uZXQuYzoxNjMyOiB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZ2V0cnZhbDInCisJLi4uL25ldC5jOjE2MzI6IHdhcm5pbmc6IGZvcm1hdCAnJWx1JyBleHBlY3RzIHR5cGUgJ2xvbmcgdW5zaWduZWQgaW50JywKKwlidXQgYXJndW1lbnQgMyBoYXMgdHlwZSAnaW50JworCisyMDEwLTEyLTE0ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJRml4IGJ1aWxkIG9uIHVDbGliYworCSogZGVmcy5oIFtMSU5VWF06IERlZmluZSBQVFJBQ0VfR0VURVZFTlRNU0cgbWFjcm8uCisJUGF0Y2ggYnkgRG91Z2xhcyBNZW5ja2VuIDxkb3VnbWVuY2tlbkBnbWFpbC5jb20+LgorCisyMDEwLTEyLTA3ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJRml4IHN0cmFjZSAtZiAtbyAnfGNvbW1hbmQnIGhhbmd1cAorCSogc3RyYWNlLmMgKG1haW4pOiBDYWxsIHRlc3RfcHRyYWNlX3NldG9wdGlvbnMoKSBiZWZvcmUgcGFyc2luZworCS1vIG9wdGlvbiwgb3RoZXJ3aXNlIGEgZm9ya2VkIGNvbW1hbmQgd2lsbCBjYXVzZSBhIGhhbmd1cCBpbnNpZGUKKwl0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKCkuCisKKzIwMTAtMTItMDMgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlPdXRwdXQgZGlhZ25vc3RpY3MgdG8gc3RkZXJyCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKTogT3V0cHV0IGluZm9ybWF0aW9uIGFib3V0IGNoYW5nZXMgaW4KKwlwZXJzb25hbGl0eSBtb2RlIHRvIHN0ZGVyci4gIFJlcG9ydGVkIGJ5IFDDoWRyYWlnIEJyYWR5LgorCisJUmVjb2duaXplIG1vcmUgY2xvbmUgZmxhZ3MKKwkqIHByb2Nlc3MuYyAoQ0xPTkVfKik6IERlZmluZSBtb3JlIGZsYWdzIGZyb20gbGludXggdjIuNi4yNS4KKwkoY2xvbmVfZmxhZ3MpOiBBZGQgZW50cmllcyBmb3IgdGhlbS4KKwlQcm9wb3NlZCBieSA8emhhbmd5YW5mZWlAY24uZnVqaXRzdS5jb20+LgorCisJRGVjb2RlIHN0cnVjdCB1Y3JlZCBmb3IgZ2V0c29ja29wdCBTT19QRUVSQ1JFRAorCSogbmV0LmMgKHN5c19nZXRzb2Nrb3B0KTogRGVjb2RlIFNPX1BFRVJDUkVELgorCVByb3Bvc2VkIGJ5IEFya2FkaXVzeiBNacWba2lld2ljeiA8YXJla21AbWF2ZW4ucGw+LgorCisyMDEwLTEyLTAzICBDYXJtZWxvIEFNT1JPU08gIDxjYXJtZWxvLmFtb3Jvc29Ac3QuY29tPgorCisJc2g6IEFkZCBzdXBwb3J0IGZvciB0cmFjaW5nIHN5c19jYWNoZWZsdXNoIHN5c3RlbSBjYWxsCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBzeXNfY2FjaGVmbHVzaCBlbnRyeS4KKwkqIGxpbnV4L3N5c2NhbGwuaCBbU0hdIChzeXNfY2FjaGVmbHVzaCk6IE5ldyBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KKwkqIHN5c3RlbS5jIFtTSF0gKGNhY2hlZmx1c2hfZmxhZ3MpOiBOZXcgeGxhdCBzdHJ1Y3R1cmUuCisJW1NIXSAoc3lzX2NhY2hlZmx1c2gpOiBOZXcgZnVuY3Rpb24uCisKKwlSZXZpZXdlZC1ieTogQW5nZWxvIENhc3RlbGxvIDxhbmdlbG8uY2FzdGVsbG9Ac3QuY29tPgorCisyMDEwLTExLTMwICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJQ2xlYW51cCB0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKCkKKwkqIHN0cmFjZS5jICh0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKTogQ2xlYW51cC4KKwkobWFpbik6IEZpeCB0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKCkgZXJyb3IgZGlhZ25vc3RpY3MgbWVzc2FnZS4KKwlQcmludCBwdHJhY2Vfc2V0b3B0aW9ucyB2YWx1ZSBpbiBkZWJ1ZyBtb2RlLgorCisyMDEwLTExLTMwICBXYW5nIENoYW8gIDx3YW5nLmNoYW9AY24uZnVqaXRzdS5jb20+CisKKwlIYW5kbGUgZm9sbG93Zm9yayB1c2luZyBwdHJhY2Vfc2V0b3B0aW9ucyBpZiBhdmFpbGFibGUKKwlJZiBQVFJBQ0VfT19UUkFDRUNMT05FIGV0IGFsIG9wdGlvbnMgYXJlIHN1cHBvcnRlZCBieSBrZXJuZWwsCisJdXNlIHRoZW0gdG8gZG8gZm9sbG93Zm9yayByYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgc2V0YnB0CisJbWV0aG9kIHRoYXQgY2hhbmdlcyByZWdpc3RlcnMgb3Vyc2VsdmVzLgorCisJKiBkZWZzLmggW0xJTlVYXSAoaGFuZGxlX25ld19jaGlsZCk6IE5ldyBmdW5jdGlvbiBwcm90b3R5cGUuCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoaGFuZGxlX25ld19jaGlsZCk6IE5ldyBmdW5jdGlvbiBiYXNlZCBvbiB0aGUKKwljb2RlIGZyb20gaW50ZXJuYWxfZm9yaygpLCB3aXRoIGEgdHJpdmlhbCBjaGFuZ2U6IGRvIHJlcGFyZW50IG9ubHkKKwlmb3Igc3lzX2Nsb25lLgorCVtMSU5VWF0gKGludGVybmFsX2ZvcmspOiBVc2UgaGFuZGxlX25ld19jaGlsZCgpLiAgRG8gbm90aGluZyBpZgorCXB0cmFjZV9zZXRvcHRpb25zIGlzIGluIGVmZmVjdC4KKwkqIHN0cmFjZS5jIFtMSU5VWF0gKGhhbmRsZV9wdHJhY2VfZXZlbnQpOiBOZXcgZnVuY3Rpb24uCisJW0xJTlVYXSAodHJhY2UpOiBJZiBwdHJhY2Vfc2V0b3B0aW9ucyBpcyBpbiBlZmZlY3QsIHRoZW4KKwljYWxsIHRoZSBuZXcgZnVuY3Rpb24gdG8gaGFuZGxlIFBUUkFDRV9FVkVOVF8qIHN0YXR1cywgYW5kCisJc2V0IFBUUkFDRV9TRVRPUFRJT05TIHdoZW4gd2Ugc2VlIHRoZSBpbml0aWFsIHN0b3Agb2YgdHJhY2VlLgorCisJVGVzdCBob3cgUFRSQUNFX1NFVE9QVElPTlMgc3VwcG9ydCB3b3JrcworCUN1cnJlbnRseSB0ZXN0IGZvcmsgcmVsYXRlZCBvcHRpb25zIG9ubHkuICBGb3JrIGEgY2hpbGQgdGhhdCB1c2VzCisJUFRSQUNFX1RSQUNFTUUgYXQgc3RhcnR1cCBhbmQgdGhlbiBkb2VzIGEgZm9yayBzbyBzdHJhY2UgY2FuIHRlc3QKKwlob3cgdGhlIFBUUkFDRV9TRVRPUFRJT05TIHN1cHBvcnQgd29ya3MgYmVmb3JlIGl0IGhhbmRsZXMgYW55IHJlYWwKKwl0cmFjZWUuICBTaW5jZSBQVFJBQ0VfT19UUkFDRUNMT05FLypGT1JLIHdlcmUgaW50cm9kdWNlZCB0byBrZXJuZWwKKwlhdCB0aGUgc2FtZSB0aW1lLCB0aGlzIHRlc3Qgc2VlbXMgdG8gYmUgZW5vdWdoIGZvciB0aGVzZSAzIG9wdGlvbnMuCisKKwkqIGRlZnMuaCBbTElOVVhdOiBEZWZpbmUgUFRSQUNFX09fVFJBQ0VDTE9ORSBldCBhbCBtYWNyb3MgaGVyZS4KKwkocHRyYWNlX3NldG9wdGlvbnMpOiBOZXcgdmFyaWFibGUgZGVjbGFyYXRpb24uCisJKiBzdHJhY2UuYyBbTElOVVhdICh0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKTogTmV3IGZ1bmN0aW9uLCB0ZXN0cworCXdoZXRoZXIga2VybmVsIHN1cHBvcnRzIFBUUkFDRV9PX0NMT05FLypGT1JLLCB0aGUgcmVzdWx0IGlzIHN0b3JlZAorCWluIHRoZSBuZXcgdmFyaWFibGUgcHRyYWNlX3NldG9wdGlvbnMgZm9yIGxhdGVyIHVzZS4KKwkobWFpbik6IENhbGwgdGVzdF9wdHJhY2Vfc2V0b3B0aW9ucygpIGlmIGZvbGxvd2Zvcmsgb3B0aW9uIGlzIHNldC4KKworMjAxMC0wOS0xNyAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUVuYWJsZSBzdXBwb3J0IGZvciBsZXNzIHZlcmJvc2UgYnVpbGQgcnVsZXMKKwkqIGNvbmZpZ3VyZS5hYyAoQU1fSU5JVF9BVVRPTUFLRSk6IEFkZCBzaWxlbnQtcnVsZXMuCisKKzIwMTAtMDktMTcgIFdhbmcgQ2hhbyAgPHdhbmcuY2hhb0Bjbi5mdWppdHN1LmNvbT4KKworCURvIG5vdCB0cmFjZSBjaGlsZHJlbiBjbG9uZWQgd2l0aCBDTE9ORV9VTlRSQUNFRCBmbGFnCisJSWYgY2xvbmUgaXMgY2FsbGVkIHdpdGggZmxhZyBDTE9ORV9VTlRSQUNFRCwgdG8gYmUgY29uc2lzdGVudCB3aXRoCisJb3B0aW9uIFBUUkFDRV9PX1RSQUNFQ0xPTkUsIHdlIHNob3VsZCBub3Qgc2V0IENMT05FX1BUUkFDRSBmbGFnIG9uCisJaXRzIGFyZ3VtZW50cy4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKGludGVybmFsX2ZvcmspOiBDaGVjayB0aGUgc3lzY2FsbCBhbmQgYXJndW1lbnRzLgorCisyMDEwLTA5LTE3ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJVXBkYXRlIHRoZSBsaXN0IG9mIENMT0NLXyogY29uc3RhbnRzIHRvIG1hdGNoIExpbnV4IGtlcm5lbCB2Mi42LjMyKworCSogdGltZS5jIChzdHJ1Y3QgeGxhdCBjbG9ja25hbWVzW10pOiBBZGQgbW9yZSBSVCBjbG9jayBJRHMuCisJUmVwb3J0ZWQgYnkgVG9tbWkgUmFudGFsYS4KKworMjAxMC0wOS0xNiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCVVwZGF0ZSBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaCB0byBtYXRjaCBMaW51eCBrZXJuZWwgdjIuNi4zNQorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IEFkZCBob29rcyBmb3IgcmVjdm1tc2cgYW5kIGFjY2VwdDQuCisKKzIwMTAtMDktMTUgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlQYXNzIGxlc3MgaW5mb3JtYXRpb24gdG8gcXVhbGlmeV9vbmUgYW5kIHF1YWxfKgorCSogc3lzY2FsbC5jIChxdWFsaWZ5X29uZSwgcXVhbF9zeXNjYWxsLCBxdWFsX3NpZ25hbCwgcXVhbF9mYXVsdCwKKwlxdWFsX2Rlc2MpOiBUYWtlIGp1c3QgYSBiaXRmbGFnIGFyZ3VtZW50IGluc3RlYWQgb2YgcG9pbnRlciB0byB0aGUgd2hvbGUKKwlxdWFsX29wdGlvbnMgc3RydWN0dXJlLgorCShzdHJ1Y3QgcXVhbF9vcHRpb25zKTogVXBkYXRlIHByb3RvdHlwZSBvZiAicXVhbGlmeSIgZmllbGQuCisJKHF1YWxpZnkpOiBVcGRhdGUgdXNlIG9mIHF1YWxpZnlfb25lIGFuZCBxdWFsX29wdGlvbnMtPnF1YWxpZnkuCisKKzIwMTAtMDktMTUgIFdhbmcgQ2hhbyAgPHdhbmcuY2hhb0Bjbi5mdWppdHN1LmNvbT4KKworCUZpeCAtZSBvcHRpb24gd2l0aCBvbmx5IG9uZSB2YWx1ZSBpbiBxdWFsaWZpZXIgc3RhdGVtZW50CisJRml4IHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBjb21taXQgdjQuNS4yMC0xOS1nMzAxNDVkZDoKKwlpZiAtZSBvcHRpb24gaXMgdXNlZCB3aXRoIG9ubHkgb25lIHZhbHVlIGluIHF1YWxpZmllciBzdGF0ZW1lbnQsCisJZS5nLiAnc3RyYWNlIC1lIHRyYWNlPW9wZW4gbHMnLCBzeXNjYWxsIGluZm9ybWF0aW9uIHdvdWxkIG5vdCBiZQorCXByaW50ZWQgcHJvcGVybHkuCisKKwkqIHN5c2NhbGwuYyAocXVhbGlmeSk6IFJlbW92ZSBmYXVsdHkgb3B0aW1pemF0aW9uLgorCisyMDEwLTA5LTE1ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJRml4IG9mZl90L3JsaW1fdCBzaXplIGNoZWNrcyB3aGVuIGNyb3NzLWNvbXBpbGluZworCVRoZSBjdXJyZW50IG9mZl90L3JsaW1fdCBzaXplIGNoZWNrcyAod3J0IHNpemUgb2YgbG9uZyBsb25nKSB1c2UgQUNfUlVOCisJd2hpY2ggb2J2aW91c2x5IGRvZXNuJ3Qgd29yayB3aGVuIGNyb3NzLWNvbXBpbGluZy4gIFdoaWxlIHdlIGRvbid0IGhpdAorCWFueSBjb25maWd1cmUgZXJyb3JzLCB0aGUgZmFsbCBiYWNrIGNvZGUgaXMgcHJldHR5IGR1bWIgKHdoaWNoIGlzIHRvIHNheQorCXRoZXJlIGlzbid0IGFueSkuICBDb25zaWRlcmluZyB0aGUgY29kZSBpbiBxdWVzdGlvbiB0aG91Z2gsIHdlIGNhbiB1c2UKKwlzb21lIGZ1biBjb21waWxlciB0cmlja3Mgd2l0aCBzaXplb2YgYW5kIGFycmF5IGxlbmd0aHMgdG8gdHVybiBpdCBpbnRvCisJYSBwdXJlIGJ1aWxkIHRlc3QgYW5kIGF2b2lkIHRoZSBSVU4gaXNzdWUgY29tcGxldGVseS4KKworCSogbTQvbG9uZ19sb25nLm00IChBQ19PRkZfVF9JU19MT05HX0xPTkcsIEFDX1JMSU1fVF9JU19MT05HX0xPTkcpOgorCUNvbnZlcnQgZnJvbSBBQ19SVU5fSUZFTFNFIHRvIEFDX0NPTVBJTEVfSUZFTFNFLgorCisJRml4IGxvbmcgbG9uZyBsaXR0bGUgZW5kaWFuIGRldGVjdGlvbiB3aGVuIGNyb3NzLWNvbXBpbGluZworCVRoZSBsb25nIGxvbmcgZW5kaWFuIGRldGVjdGlvbiBjb2RlIGRvZXMgYW4gQUNfVFJZX1JVTigpIGFuZCBzaW5jZSB0aGF0CisJZG9lc24ndCB3b3JrIHdoZW4gY3Jvc3MtY29tcGlsaW5nLCBpdCBzZXRzIGEgZmFsbGJhY2sgdmFsdWUuICBIb3dldmVyLAorCXJhdGhlciB0aGFuIGRvIGFueSBzb3J0IG9mIGRlZmF1bHQgZW5kaWFuIGRldGVjdGlvbiwgdGhlIGNvZGUgc2ltcGx5CisJc2V0cyBpdCB0byAibm8iLiAgVGhpcyBwcm9iYWJseSBicmVha3MgbW9zdCBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgb3V0CisJdGhlcmUgd2hlbiBjcm9zcy1jb21waWxpbmcgZm9yIHRoZW0uICBJdCBjZXJ0YWlubHkgYnJlYWtzIEJsYWNrZmluCisJc3lzdGVtcy4gIFNvIHVzZSB0aGUgY29tbW9uIGVuZGlhbiBkZXRlY3Rpb24gY29kZSBwcm92aWRlZCBieSBhdXRvY29uZgorCWFuZCBrZXkgb2ZmIG9mIHRoYXQgd2hlbiBjcm9zcy1jb21waWxpbmcuCisKKwkqIGNvbmZpZ3VyZS5hYzogQ2FsbCBBQ19DX0JJR0VORElBTi4KKwkqIG00L2xvbmdfbG9uZy5tNCAoQUNfTElUVExFX0VORElBTl9MT05HX0xPTkcpOiBTZXQgY3Jvc3MtY29tcGlsaW5nCisJbG9naWMgYmFzZWQgb24gYWNfY3ZfY19iaWdlbmRpYW4uCisKKwlCbGFja2ZpbjogZGVjb2RlIG5ldyBzeXNjYWxscworCSogbGludXgvYmZpbi9zeXNjYWxsZW50Lmg6IEFkZCBmYW5vdGlmeS9wcmxpbWl0L2NhY2hlZmx1c2ggc3lzY2FsbHMuCisJKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBzeXNfY2FjaGVmbHVzaCgpIGRlY2wuCisJKiBzeXN0ZW0uYzogRGVjb2RlIEJsYWNrZmluJ3MgY2FjaGVmbHVzaCBzeXNjYWxsLgorCisJKiBsaW51eC9pb2N0bGVudC5zaDogU2VhcmNoIGEgZmV3IG5vbi1leHBvcnRlZCBwYXRocy4KKworMjAxMC0wOS0xNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCUNsZWFuIHVwIHBpZDJ0Y2IgdXNhZ2UKKwkqIHN0cmFjZS5jIChwaWQydGNiKTogQWx3YXlzIG1hdGNoIHBpZC4gIEZhaWwgZm9yIGFyZ3VtZW50IDw9IDAuCisJW1VTRV9QUk9DRlNdIChmaXJzdF91c2VkX3RjYik6IE5ldyBmdW5jdGlvbi4KKwlbVVNFX1BST0NGU10gKHRyYWNlKTogVXNlIHRoYXQgaW5zdGVhZCBvZiBwaWQydGNiKDApLgorCisyMDEwLTA5LTA5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJVHVybiBvbiBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzCisJKiBjb25maWd1cmUuYWM6IEVuYWJsZSBnY2MgLVd3cml0ZS1zdHJpbmdzLgorCisJSW1wb3J0IHdhcm5pbmdzLm00IGZyb20gZ251bGliCisJKiBtNC93YXJuaW5ncy5tNDogUmVwbGFjZSB3aXRoIHdhcm5pbmdzLm00IGZyb20gZ251bGliLgorCSogY29uZmlndXJlLmFjOiBVc2UgZ2xfV0FSTl9BREQgZnJvbSBuZXcgd2FybmluZ3MubTQuCisJKiBNYWtlZmlsZS5hbSAoQU1fQ0ZMQUdTKTogVXBkYXRlIGZvciBuZXcgd2FybmluZ3MubTQuCisKKwlTcGxpdCBhY2luY2x1ZGUubTQKKwkqIE1ha2VmaWxlLmFtIChBQ0xPQ0FMX0FNRkxBR1MpOiBBZGQgIi1JIG00Ii4KKwkqIGFjaW5jbHVkZS5tNDogUmVtb3ZlLgorCSogbTQvaW5jbHVkZWRpci5tNDogTmV3IGZpbGUsIHdpdGggZGVmaW5pdGlvbiBvZiBBQ19JTkNMVURFRElSIGZyb20KKwlhY2luY2x1ZGUubTQuCisJKiBtNC9sb25nX2xvbmcubTQ6IE5ldyBmaWxlLCB3aXRoIGRlZmluaXRpb25zIG9mIEFDX09GRl9UX0lTX0xPTkdfTE9ORywKKwlBQ19STElNX1RfSVNfTE9OR19MT05HIGFuZCBBQ19MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyBmcm9tIGFjaW5jbHVkZS5tNC4KKwkqIG00L3Byb2Nmcy5tNDogTmV3IGZpbGUsIHdpdGggZGVmaW5pdGlvbnMgb2YgQUNfTVBfUFJPQ0ZTLAorCUFDX1BPTExBQkxFX1BST0NGUyBhbmQgQUNfU1RSVUNUX1BSX1NZU0NBTEwgZnJvbSBhY2luY2x1ZGUubTQuCisJKiBtNC9zdGF0Lm00OiBOZXcgZmlsZSwgd2l0aCBkZWZpbml0aW9uIG9mIEFDX1NUQVQ2NCBmcm9tIGFjaW5jbHVkZS5tNC4KKwkqIG00L3N0YXRmcy5tNDogTmV3IGZpbGUsIHdpdGggZGVmaW5pdGlvbiBvZiBBQ19TVEFURlM2NCBmcm9tCisJYWNpbmNsdWRlLm00LgorCSogbTQvd2FybmluZ3MubTQ6IE5ldyBmaWxlLCB3aXRoIGRlZmluaXRpb24gb2YgQUNfV0FSTkZMQUdTIGZyb20KKwlhY2luY2x1ZGUubTQuCiAKLTIwMDMtMDMtMTggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisJKiBwcm9jZXNzLmMgKHN5c193YWl0aWQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Nsb25lKTogRG9uJ3QgZGVyZWZlcmVuY2UgcGFyZW50X3RpZCBhcmd1bWVudC4KKzIwMTAtMDktMDcgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLTIwMDMtMDMtMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisJRml4IGNvbnN0LWNvcnJlY3RuZXNzIGlzc3VlcyB1bmNvdmVyZWQgYnkgZ2NjIC1Xd3JpdGUtc3RyaW5ncworCSogZGVmcy5oIChzdHJ1Y3QgeGxhdCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gdGhlIGZpZWxkIG9mCisJdHlwZSAiY2hhciAqIi4KKwkoc2V0X3NvcnRieSwgcXVhbGlmeSwgcHJpbnRudW0sIHByaW50bnVtX2ludCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8KKwlhcmd1bWVudHMgb2YgdHlwZSAiY2hhciAqIi4KKwkqIGNvdW50LmMgKHNldF9zb3J0YnkpOiBBZGQgY29uc3QgcXVhbGlmaWVyIHRvIHRoZSBhcmd1bWVudCBhbmQKKwlhdXRvbWF0aWMgdmFyaWFibGUgb2YgdHlwZSAiY2hhciAqIi4KKwkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gYXV0b21hdGljIHZhcmlhYmxlcyBvZgorCXR5cGUgImNoYXIgKiIuCisJKiBpb2N0bHNvcnQuYyAoc3RydWN0IGlvY3RsZW50KTogQWRkIGNvbnN0IHF1YWxpZmllciB0byBmaWVsZHMgb2YKKwl0eXBlICJjaGFyICoiLgorCShtYWluKTogIEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gYXJndi4KKwkqIHByb2Nlc3MuYyAocHJpbnRhcmd2KTogQWRkIGNvbnN0IHF1YWxpZmllciB0byB0aGUgYXJndW1lbnQgYW5kCisJYXV0b21hdGljIHZhcmlhYmxlIG9mIHR5cGUgImNoYXIgKiIuCisJKHByaW50YXJnYykgQWRkIGNvbnN0IHF1YWxpZmllciB0byBhcmd1bWVudCBvZiB0eXBlICJjaGFyICoiLgorCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2ssIHBhcnNlX3NpZ3NldF90KTogQWRkIGNvbnN0IHF1YWxpZmllciB0bworCWFyZ3VtZW50cyBvZiB0eXBlICJjaGFyICoiLgorCSogc3RyYWNlLmMgKHByb2duYW1lKTogQWRkIGNvbnN0IHF1YWxpZmllci4KKwkoZGV0YWNoKTogQWRkIGNvbnN0IHF1YWxpZmllciB0byBhdXRvbWF0aWMgdmFyaWFibGUgb2YgdHlwZSAiY2hhciAqIi4KKwkqIHN0cmVhbS5jIChzdHJ1Y3Qgc3RyYnVmKTogQWRkIGNvbnN0IHF1YWxpZmllciB0byB0aGUgZmllbGQgb2YKKwl0eXBlICJjaGFyICoiLgorCSogc3lzY2FsbC5jIChzdHJ1Y3QgcXVhbF9vcHRpb25zKTogQWRkIGNvbnN0IHF1YWxpZmllciB0byBmaWVsZHMgb2YKKwl0eXBlICJjaGFyICoiLgorCShxdWFsX3N5c2NhbGwsIHF1YWxfZmF1bHQsIHF1YWxfZGVzYywgbG9va3VwX2NsYXNzKTogQWRkIGNvbnN0IHF1YWxpZmllcgorCXRvIGFyZ3VtZW50cyBvZiB0eXBlICJjaGFyICoiLgorCShxdWFsX3NpZ25hbCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gdGhlIGFyZ3VtZW50IG9mIHR5cGUgImNoYXIgKiIsCisJYXZvaWQgbW9kaWZpY2F0aW9uIG9mIGNvbnN0YW50IGFyZ3VtZW50LgorCShxdWFsaWZ5KTogTGlrZXdpc2UuCisJKiB1dGlsLmMgKHByaW50ZmxhZ3MpOiBBZGQgY29uc3QgcXVhbGlmaWVyIHRvIGF1dG9tYXRpYyB2YXJpYWJsZSBvZgorCXR5cGUgImNoYXIgKiIuCisJKHByaW50bnVtLCBwcmludG51bV9pbnQpOiBBZGQgY29uc3QgcXVhbGlmaWVyIHRvIGFyZ3VtZW50cyBvZgorCXR5cGUgImNoYXIgKiIuCiAKLQkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IGNsb25lIHRha2VzIDUgYXJncy4KLQkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfY2xvbmUpIFtYODZfNjRdOiBGaXggYXJndW1lbnQgb3JkZXIuCisyMDEwLTA5LTA0ICBXYW5nIENoYW8gIDx3YW5nLmNoYW9AY24uZnVqaXRzdS5jb20+CiAKLTIwMDMtMDMtMTUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisJRml4IHByaW50aW5nIGNsb25lIGZsYWdzCisJV2hlbiB3ZSB0cmFjZSBjbG9uZSgpIHN5c2NhbGwgd2l0aCBvbmx5IGV4aXQgc2lnbmFsIGFzIGNsb25lCisJZmxhZ3MsIHN0cmFjZSB3b3VsZCBwcmludCBhbiB1bm5lY2Vzc2FyeSBPUiBvcGVyYXRvci4KIAotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogQWRkIGV4aXRfZ3JvdXAgc3lzY2FsbCBhdCAyMzEuCisJKiBwcm9jZXNzLmMgKHN5c19jbG9uZSk6IEZpeCB0aGlzLgogCi0yMDAzLTAzLTE0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorMjAxMC0wOC0yOCAgV2FuZyBDaGFvICA8d2FuZy5jaGFvQGNuLmZ1aml0c3UuY29tPgogCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVcGRhdGUgYW5kIGFkZCBtYW55IDIuNSBzeXNjYWxscy4KKwlEcm9wIG5jbG9uZV9kZXRhY2hlZCBhbmQgcmVsYXRlZCBmbGFncworCVJlbW92ZSBuY2xvbmVfZGV0YWNoZWQgc2luY2UgQ0xPTkVfREVUQUNIRUQgZmxhZyB3YXMgbm8tb3AgZm9yIGEgdmVyeQorCWxvbmcgdGltZSBpbiBrZXJuZWwuCiAKLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBjbG9uZSB0YWtlcyA1IGFyZ3VtZW50cy4KLQkqIHByb2Nlc3MuYyBbTElOVVggJiYgSUE2NF0gKEFSR18qKTogVXBkYXRlIGZvciAyLjUgY2xvbmUgY2FsbHMuCisJKiBkZWZzLmggKHN0cnVjdCB0Y2IpOiBSZW1vdmUgbmNsb25lX2RldGFjaGVkIGZpZWxkLgorCVJlbW92ZSBUQ0JfQ0xPTkVfREVUQUNIRUQgZmxhZy4KKwkqIHByb2Nlc3MuYzogUmVtb3ZlIENMT05FX0RFVEFDSEVEIGZsYWcuCisJKGNsb25lX2ZsYWdzKTogUmVtb3ZlIENMT05FX0RFVEFDSEVEIGVudHJ5LgorCShpbnRlcm5hbF9mb3JrLCBpbnRlcm5hbF93YWl0KTogUmVtb3ZlIGNvZGUgZGVhbGluZyB3aXRoIENMT05FX0RFVEFDSEVECisJZmxhZyBhbmQgbmNsb25lX2RldGFjaGVkLgorCSogc3RyYWNlLmMgKHN0YXJ0dXBfYXR0YWNoLCBhbGxvY190Y2IsIGRyb3B0Y2IsIGhhbmRsZV9ncm91cF9leGl0KToKKwlMaWtld2lzZS4KIAotMjAwMy0wMy0xMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKzIwMTAtMDgtMDkgIE5laWwgQ2FtcGJlbGwgIDxsaXN0c0B0aGViYXRjYXZlLm9yZy51az4KIAotCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEZpeCBhcmcgY291bnRzIGZvciBjbG9uZSBhbmQgY2xvbmUyLgotCVVzZSBzeXNfY2xvbmUgZm9yIGNsb25lMi4KLQkqIGxpbnV4L3N5c2NhbGwuaDogRG9uJ3QgZGVjbGFyZSBzeXNfY2xvbmUyLgotCSogcHJvY2Vzcy5jIChzeXNfY2xvbmUpOiBSZXdyaXR0ZW4gdG8gaGFuZGxlIGJvdGggZmxhdm9ycywKLQlwcmludCBhbGwgZXh0cmEgYXJncyBkZXBlbmRpbmcgb24gZmxhZyBiaXRzLgotCShzeXNfY2xvbmUyKTogRnVuY3Rpb24gcmVtb3ZlZC4KKwlDb3JyZWN0IGdldC9zZXRfcm9idXN0X2xpc3Qgc3lzY2FsbCBudW1iZXJzIGZvciBwb3dlcnBjCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogU3dhcCBwb3NpdGlvbnMgb2YgZ2V0XyBhbmQgc2V0X3JvYnVzdF9saXN0LgogCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogQWRkIGEgYnVuY2ggb2YgMi41IHN5c2NhbGxzLgorMjAxMC0wOC0wOSAgV2FuZyBDaGFvICA8d2FuZy5jaGFvQGNuLmZ1aml0c3UuY29tPgogCi0yMDAzLTAzLTA0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCUhhbmRsZSBDTE9ORV9QQVJFTlQgZmxhZworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9mb3JrKTogVGhlIHBhcmVudCBvZiBuZXcgY2xvbmVkIHByb2Nlc3MgaXMgdGhlCisJc2FtZSBvZiB0aGUgY2FsbGluZyBwcm9jZXNzIHdoZW4gQ0xPTkVfUEFSRU5UIGlzIHNldC4KIAotCSogc3lzY2FsbC5jIChnZXRfc2NubykgW0lBNjRdOiBEbyBUQ0JfV0FJVEVYRUNWRSBjaGVjayBvbmx5IHdoZW4KLQlUQ0JfSU5TWVNDQUxMIGlzIGNsZWFyLCBsaWtlIG90aGVyIHBsYXRmb3JtcyBkby4KKwlGaXggZXJyb3Igd2hlbiBqdWRnaW5nIGlmIHByb2Nlc3MgaGFzIGNoaWxkcmVuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBQcm9jZXNzZXMgY291bnRlZCBpbiB0Y3AtPm5jbG9uZV90aHJlYWRzCisJYXJlIHRjcCdzIHRocmVhZHMsIHJhdGhlciB0aGFuIHRjcCdzIGNoaWxkcmVuLgogCi0yMDAzLTAzLTA0ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKwlGb3JiaWQgdXNpbmcgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnMgLUQgYW5kIC1wIHRvZ2V0aGVyCisJSWYgd2UgdXNlIC1EIGFuZCAtcCBvcHRpb24gdG9nZXRoZXIgdG8gdHJhY2UgYSBtdWx0aS10aHJlYWQgcHJvZ3JhbSwgaW4KKwlhZGRpdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQsIG90aGVyIHRocmVhZHMgY291bGQgbm90IGJlIHRyYWNlZCBldmVuIGlmIHdlCisJcHJlc2VudCAtZiBvcHRpb24uIE1vcmVvdmVyLCB3aGVuIGV4ZWN1dGluZyAnc3RyYWNlIC1EIC1wIDxub24tZXhpc3QgcGlkPicsCisJc3RyYWNlIGNvdWxkIG5vdCB0ZXJtaW5hdGUgbm9ybWFsbHkuCiAKLQkqIG1lbS5jIFtMSU5VWF0gKHN5c19yZW1hcF9maWxlX3BhZ2VzKTogTmV3IGZ1bmN0aW9uLgotCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIGl0LgotCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2UgaXQuCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBzdHJhY2UuYyAobWFpbik6IENoZWNrIGl0LgogCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Z1dGV4KTogT21pdCBmaW5hbCBpZiBvcCBpcyBub3QgRlVURVhfV0FJVC4KKzIwMTAtMDgtMDUgIERhdmlkIERhbmV5ICA8ZGRhbmV5QGNhdml1bW5ldHdvcmtzLmNvbT4KIAotMjAwMy0wMi0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlVcGRhdGUgTGludXggTUlQUyBzeXNjYWxscyB0byBtYXRjaCAyLjYuMzUtcmM2KworCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IEFkZCBhbmQgdXBkYXRlIDQwNSBob29rcy4KIAotCSogY29uZmlndXJlLmFjOiBGaXggdHlwbyBpbiBuZXRpbmV0L2luLmggY2hlY2suCi0JQWxzbyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4gYW5kIDxzeXMvc29ja2V0Lmg+IGJlZm9yZSA8bmV0aW5ldC9pbi5oPi4KLQlSZXBvcnRlZCBieSBBbGV4IFNlbWVueWFrYSA8YWxleHNAc25hcmsucmluZXQucnU+LgorMjAxMC0wOC0wNSAgRWRnYXIgRS4gSWdsZXNpYXMgIDxlZGdhci5pZ2xlc2lhc0BnbWFpbC5jb20+CiAKLTIwMDMtMDItMjQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisJQWRkIHN1cHBvcnQgZm9yIHRoZSBNaWNyb0JsYXplIGFyY2hpdGVjdHVyZQorCSogY29uZmlndXJlLmFjOiBSZWNvZ25pemUgTWljcm9CbGF6ZS4KKwkqIGxpbnV4L21pY3JvYmxhemUvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L21pY3JvYmxhemUvc3lzY2FsbGVudC5oCisJKiBwcm9jZXNzLmMgKGNoYW5nZV9zeXNjYWxsLCBzdHJ1Y3RfdXNlcl9vZmZzZXRzKTogQWRkIE1pY3JvQmxhemUKKwlzdXBwb3J0LgorCSogc2lnbmFsLmMgKHN5c19zaWdyZXR1cm4pOiBMaWtld2lzZS4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCwgZ2V0X3Njbm8sIHN5c2NhbGxfZml4dXAsIGdldF9lcnJvciwKKwlzeXNjYWxsX2VudGVyKTogTGlrZXdpc2UuCiAKLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTUuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk1LTEuCisyMDEwLTA4LTA1ICBGcmVkZXJpayBTY2jDvGxlciAgPGZzQGRlYmlhbi5vcmc+CiAKLQkqIHByb2Nlc3MuYyAoc3lzX2dldHJlc2dpZCk6IEZpeCB0eXBvcyBpbiBhcmd1bWVudCBhY2Nlc3MuCisJbGludXgvc3BhcmM6IGFkZCBtaXNzaW5nIHN5c2NhbGwgZGVjbGFyYXRpb25zCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IFN5bmMgd2l0aCBsaW51eC9zeXNjYWxsLmgKIAotMjAwMy0wMi0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKzIwMTAtMDctMTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGxpbnV4LW02OGsub3JnPgogCi0JKiBwcm9jZXNzLmMgKHN5c19nZXRyZXN1aWQpOiBGaXggdHlwb3MgaW4gYXJndW1lbnQgYWNjZXNzLgotCVJlcG9ydGVkIGJ5IEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KKwlIYW5kbGUgYmlhcmNoIGdldC9zZXRybGltaXQKKwkqIHJlc291cmNlLmMgKHByaW50X3JsaW1pdDMyKSBbUE9XRVJQQzY0IHx8IFg4Nl82NF06IERlZmluZS4KKwkoc3lzX2dldHJsaW1pdCwgc3lzX3NldHJsaW1pdCkgW1BPV0VSUEM2NCB8fCBYODZfNjRdOiBVc2UgaXQuCiAKLTIwMDMtMDItMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisyMDEwLTA3LTEzICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBsaW51eC1tNjhrLm9yZz4KIAotCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45NC4KLQkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTQtMS4KKwlBZGQgYmlhcmNoIHN1cHBvcnQgZm9yIHBvd2VycGM2NAorCSogYWNpbmNsdWRlLm00IChBQ19MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyk6IFVzZSBpbnQgaW5zdGVhZCBvZgorCWxvbmcuCisJKiBjb25maWd1cmUuYWMgWyRob3N0X2NwdSA9IHBvd2VycGMqXTogQWxzbyBkZWZpbmUgUE9XRVJQQzY0IGlmCisJJGhvc3RfY3B1ID0gcG93ZXJwYzY0LgorCSogZGVmcy5oIChTVVBQT1JURURfUEVSU09OQUxJVElFUywgUEVSU09OQUxJVFkwX1dPUkRTSVpFKQorCShQRVJTT05BTElUWTFfV09SRFNJWkUpIFtQT1dFUlBDNjRdOiBEZWZpbmUuCisJKiBmaWxlLmM6IChzdHJ1Y3Qgc3RhdF9wb3dlcnBjMzIsIHByaW50c3RhdF9wb3dlcnBjMzIpIFtQT1dFUlBDNjRdOgorCURlZmluZS4KKwkocHJpbnRzdGF0KSBbTElOVVggJiYgUE9XRVJQQzY0XTogVXNlIHByaW50c3RhdF9wb3dlcnBjMzIgaW4KKwkzMi1iaXQgcGVyc29uYWxpdHkuCisJKHN5c19uZXdmc3RhdGF0KSBbUE9XRVJQQzY0XTogSGFuZGxlIHBlcnNvbmFsaXRpZXMuCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW1BPV0VSUEM2NF06IExpa2V3aXNlLgorCSogdXRpbC5jIChwcmludGxsdmFsKSBbUE9XRVJQQzY0XTogTGlrZXdpc2UuCisJKHByaW50Y2FsbCkgW1BPV0VSUEM2NF06IFVzZSB3aWRlciBmb3JtYXQgZm9yIElQIHByZWZpeC4KKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pIFtQT1dFUlBDNjRdOiBDaGVjayBmb3IgNjQvMzIgYml0IG1vZGUuCisJKiBsaW51eC9wb3dlcnBjL2Vycm5vZW50MS5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgvcG93ZXJwYy9zaWduYWxlbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50MS5oOiBOZXcgZmlsZS4KIAotCSogdmVyc2lvbi5jOiBSZW1vdmVkLgotCSogTWFrZWZpbGUuYW0gKHN0cmFjZV9TT1VSQ0VTKTogUmVtb3ZlIGl0LgotCSogc3RyYWNlLmM6IFVzZSBQQUNLQUdFX05BTUUgYW5kIFZFUlNJT04gbWFjcm9zIGluc3RlYWQgb2YgdmVyc2lvbiB2YXIuCisyMDEwLTA3LTA5ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkByZWRoYXQuY29tPgogCi0JRnJlZUJTRCByZm9yayBzdXBwb3J0IGNoYW5nZXMgZnJvbSBSdXNzIENveCA8cnNjQHBsYW45LmJlbGwtbGFicy5jb20+OgotCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogSGFuZGxlIFNZU19yZm9yayB3aXRoIGludGVybmFsX2ZvcmsuCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2ZvcmspIFtTWVNfcmZvcmtdOiBCYWlsIGlmIFJGUFJPQyBmbGFnIG5vdCBzZXQuCisJQmFsYW5jZSBicmFjZXMKKwkqIHN0cmFjZS5jIChwcm9jX29wZW4pOiBBdm9pZCB1bmJhbGFuY2VkIGJyYWNlcy4KKwkodHJhY2UpOiBMaWtld2lzZS4KIAotMjAwMy0wMS0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKzIwMTAtMDctMDYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGxpbnV4LW02OGsub3JnPgogCi0JKiBzaWduYWwuYzogUmVvcmRlciAjaWZkZWZzIHNvIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCBkb2Vzbid0IG1hdHRlciBvbgotCVNQQVJDLCB3aGljaCBkb2Vzbid0IHVzZSB0aGUgaGVhZGVyIHJlZ2FyZGxlc3MuCisJUmVtb3ZlIGV4dGVybiBkZWNsYXJhdGlvbiBhdCBmaWxlIHNjb3BlCisJKiBkZWZzLmggKGZvcmNlX3Jlc3VsdCk6IERlY2xhcmUuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBEb24ndCBkZWNsYXJlIGZvcmNlX3Jlc3VsdC4KIAotCSogdXRpbC5jIFtMSU5VWCAmJiBTUEFSQ106IERvIHJlbmFtaW5nIGtsdWRnZXMgYXJvdW5kIDxhc20vcmVnLmg+Ci0JbGlrZSBzaWduYWwuYyBkb2VzLgorMjAxMC0wNi0yNCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAcmVkaGF0LmNvbT4KIAotCSogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBEZWNsYXJlIHN5c19nZXRkZW50czY0LCBzeXNfbGxzZWVrLgorCURvY3VtZW50IC1DLy1ECisJKiBzdHJhY2UuYyAodXNhZ2UpOiBEb2N1bWVudCAtQy4KKwkqIHN0cmFjZS4xOiBEb2N1bWVudCAtRC4KIAotCSogbGludXgvZHVtbXkuaCBbISBTWVNfZ2V0cG1zZ10gKHN5c19nZXRwbXNnKTogI2RlZmluZSB0byBwcmludGFyZ3MuCi0JWyEgU1lTX3B1dHBtc2ddIChzeXNfcHV0cG1zZyk6IExpa2V3aXNlLgorMjAxMC0wNi0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KIAotCSogcHJvY2Vzcy5jOiBSZW9yZGVyIGluY2x1ZGVzIHRvIHB1dCBzeXMvcmVnLmggYmVmb3JlIGxpbnV4L3B0cmFjZS5oLAotCXNpbmNlIHRoZXkgY2FuIGNvbmZsaWN0LgorCUZpeCBzb3VyY2Vmb3JnZSBkb3dubG9hZCBVUkwuCiAKLTIwMDMtMDEtMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisyMDEwLTA2LTA1ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBsaW51eC1tNjhrLm9yZz4KIAotCSogc3RyYWNlLmMgKHVzYWdlKTogT21pdCAteiwgc2luY2UgaXQgaGFzIG5ldmVyIHdvcmtlZCBwcm9wZXJseS4KLQkqIE5FV1M6IExpa2V3aXNlLgorCU02OEs6IEZpeCBmZXRjaGluZyBzeXNjYWxsIGFyZ3VtZW50cworCSogc3lzY2FsbC5jIChzeXNjYWxsX2VudGVyKSBbTTY4S106IFByb3Blcmx5IGhhbmRsZSBtb3JlIHRoYW4gZml2ZQorCXN5c2NhbGwgYXJndW1lbnRzLgogCi0JKiBzdHJhY2UuYyAobWFpbik6IEdyb2sgbmV3IG9wdGlvbiBgLUUgdmFyPXZhbCcgb3IgYC1FIHZhcicgdG8gcHV0Ci0JdmFyPXZhbCBpbiBlbnZpcm9uIG9yIHRvIHJlbW92ZSB2YXIsIHJlc3BlY3RpdmVseS4KLQkodXNhZ2UpOiBNZW50aW9uIGl0LgotCSogc3RyYWNlLjEsIE5FV1M6IERvY3VtZW50IGl0LgorMjAxMC0wNS0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAbGludXgtbTY4ay5vcmc+CiAKLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTMuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40LjkzLTEuCi0JKiBzdHJhY2Uuc3BlYyAoU291cmNlMCk6IFVzZSBzdHJhY2UtVkVSU0lPTi50YXIuYnoyIG5vdy4KKwlEZWNvZGUgVExTIHN5c2NhbGxzIG9uIG02OGsKKwkqIGxpbnV4L202OGsvc3lzY2FsbGVudC5oOiBBZGQgZW50cmllcyBmb3IgZ2V0X3RocmVhZF9hcmVhLAorCXNldF90aHJlYWRfYXJlYSwgYXRvbWljX2NvbXhjaGdfMzIsIGF0b21pY19iYXJyaWVyLgorCSogbGludXgvZHVtbXkuaCAoc3lzX2dldF90aHJlYWRfYXJlYSwgc3lzX3NldF90aHJlYWRfYXJlYSkgW002OEtdOgorCURvbid0IHJlZGVmaW5lLgorCSogbWVtLmMgKHN5c19nZXRfdGhyZWFkX2FyZWEsIHN5c19zZXRfdGhyZWFkX2FyZWEpIFtMSU5VWCAmJiBNNjhLXTogTmV3LgogCi0yMDAzLTAxLTIwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCUZpeCB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIGZvciBtNjhrCisJKiBzeXNjYWxsLmMgKGQwKTogRGVmaW5lIGFzIGxvbmcuCiAKLQkqIGRlZnMuaCBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXSAoVENCX1dBSVRFWEVDVkUpOiBEZWZpbmUgaXQuCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vLCBzeXNjYWxsX2ZpeHVwKSBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXTogSGFuZGxlCi0JVENCX1dBSVRFWEVDVkUgc3RhdGUgd2l0aCBzcGVjaWFsIGtsdWRnZXMuCisyMDEwLTA0LTEzICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgogCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Nsb25lKSBbUzM5MCB8fCBTMzkwWF06IEFyZ3VtZW50IG9yZGVyIGlzCi0JcmV2ZXJzZWQgZnJvbSBvdGhlciBhcmNoaXRlY3R1cmVzLgorCVByZXBhcmUgZm9yIDQuNS4yMCByZWxlYXNlCisJKiBORVdTOiBVcGRhdGUgZm9yIDQuNS4yMCByZWxlYXNlLgorCSogY29uZmlndXJlLmFjOiBWZXJzaW9uIDQuNS4yMC4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS4yMC0xLgorCSogc3RyYWNlLnNwZWM6IDQuNS4yMC0xLgogCi0JKiBwcm9jZXNzLmMgKHN5c19leGVjdmUpIFtMSU5VWF06IE1ha2Ugc2V0dGluZyBUQ0JfV0FJVEVYRUNWRSBmbGFnCi0JY29uZGl0aW9uYWwgb24gW1RDQl9XQUlURVhFQ1ZFXSBpbnN0ZWFkIG9mIGxpc3Qgb2YgcHJvY2Vzc29ycy4KKzIwMTAtMDQtMTMgIEZyZWRlcmlrIFNjaMO8bGVyICA8ZnNAZGViaWFuLm9yZz4KIAotCSogdXRpbC5jIChyZXN0b3JlX2FyZzApOiBFdmFsdWF0ZSBhcmdzIGluIG5vLW9wIGRlZm5zLgorCVVwZGF0ZSBkZWJpYW4vKiBmaWxlcyBmb3IgdGhlIHVwY29taW5nIHJlbGVhc2UKKwkqIGRlYmlhbi9jb250cm9sOiB1cGRhdGUgc3RhbmRhcmRzLXZlcnNpb24gdG8gMy44LjQuCisJKiBkZWJpYW4vcnVsZXM6IGFsbG93IHBhcmFsbGVsIGJ1aWxkaW5nLgorCSogZGViaWFuL3J1bGVzOiBjb21tZW50IG91dCB2ZXJib3NlIGJ1aWxkLCBvbmx5IG5lZWRlZCBmb3IgZGVidWdnaW5nLgorCSogZGViaWFuL3J1bGVzOiBjbGVhbiB1cCBjbGVhbjogdGFyZ2V0LCBkaF9jbGVhbiBkb2VzIG1vc3Qgb2YgdGhlIHdvcmsKKwkgIGFscmVhZHkuCisJKiBkZWJpYW4vcnVsZXM6IHVzZSAqLXN0YW1wIGluc3RlYWQgb2Ygc3RhbXAtKiwgc28gZGhfY2xlYW4gY2FuIHRpZHkKKwkgIHVwIGZvciB1cy4KIAotCSogdXRpbC5jIFtTMzkwIHx8IFMzOTBYXSAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogRml4IGRlZmluaXRpb25zCi0JZm9yIGNsb25lIGNhbGwgb24gUzM5MC4gIEZyb20gTWljaGFlbCBIb2x6aGV1IDxob2x6aGV1QGRlLmlibS5jb20+LgorMjAxMC0wNC0xMyAgSGVpa28gQ2Fyc3RlbnMgIDxoZWlrby5jYXJzdGVuc0BkZS5pYm0uY29tPgogCi0yMDAzLTAxLTE3ICBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4KKwlGaXggczM5MCBzeXN0ZW0gY2FsbCB0YWJsZSBsaXN0CisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogQWRkIHRoZSBtaXNzaW5nIGVudHJpZXMgZm9yIHByZWFkdiBhbmQKKwlwd3JpdGV2IHRvIHRoZSBzeXN0ZW0gY2FsbCB0YWJsZSBsaXN0LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KIAotCSogdXRpbC5jIFtMSU5VWF0gKHNldGJwdCk6IEhhbmRsZSBTWVNfdmZvcmsgbGlrZSBTWVNfZm9yay4KKzIwMTAtMDQtMDcgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CiAKLQkqIGxpbnV4L3N5c2NhbGwuaCAoU1lTX3NvY2tldF9zdWJjYWxsKTogMjU2IGFsc28gZm9yIFBPV0VSUEMuCisJVXBkYXRlIGxpbnV4L2lvY3RsZW50LmgKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBTZWFyY2ggaW4gYXNtLWdlbmVyaWMgZGlyZWN0b3J5IGFzIHdlbGwuCisJKiBsaW51eC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlZC4KIAotMjAwMy0wMS0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKwlVcGRhdGUgbGludXgvKi9zeXNjYWxsZW50LmggZmlsZXMgdG8gbWF0Y2ggTGludXgga2VybmVsIHYyLjYuMzMKKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogQWRkIDQ3IGhvb2tzLgorCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogVXBkYXRlIGhvb2tzIGZvciBwc2VsZWN0NiwgcHBvbGwsCisJZXBvbGxfcHdhaXQuICBBZGQgMTEgaG9va3MuCisJKiBsaW51eC9iZmluL3N5c2NhbGxlbnQuaDogVXBkYXRlIGhvb2tzIGZvciBwcmN0bCwgZmFsbG9jYXRlLAorCXNpZ25hbGZkNCwgZXZlbnRmZDIsIGVwb2xsX2NyZWF0ZTEsIGR1cDMsIHBpcGUyLCBwZXJmX2V2ZW50X29wZW4uCisJSG9vayB1cCByZWN2bW1zZy4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBVcGRhdGUgaG9va3MgZm9yIHNpZ25hbGZkNCwgZXZlbnRmZDIsCisJZXBvbGxfY3JlYXRlMSwgZHVwMywgcGlwZTIsIHBlcmZfZXZlbnRfb3Blbi4KKwkqIGxpbnV4L2kzODYvc3lzY2FsbGVudC5oOiBGaXggc3lzY2FsbCBuYW1lIGZvciB0aGUga2V4ZWNfbG9hZCBob29rLgorCUFkZCA1IGhvb2tzLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEZpeCBzeXNjYWxsIG5hbWUgZm9yIHRoZSBrZXhlY19sb2FkIGhvb2suCisJQWRkIDQgaG9va3MuCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogQWRkIDUwIGhvb2tzLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IEZpeCBob29rIGZvciB0aW1lcmZkX2NyZWF0ZS4gIEZpeAorCTYgc3lzY2FsbCBuYW1lcyB0byBtYXRjaCB0aGUga2VybmVsLiAgVXNlIHN5c19zZW1vcCB0byBwYXJzZSBzZW1vcC4KKwlBZGQgMTQgaG9va3MuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogRml4IHN5c2NhbGwgbmFtZSBmb3IgdGhlIGtleGVjX2xvYWQgaG9vay4KKwlBZGQgMTQgaG9va3MuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBBZGQgMTMgaG9va3MuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogQWRkIDE1IGhvb2tzLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBBZGQgMjIgaG9va3MuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBBZGQgNSBob29rcy4KIAotCSogbGludXgvcG93ZXJwYy9lcnJub2VudC5oOiBBZGQgbWlzc2luZyBlcnJub3MuCi0JKiBsaW51eC9wb3dlcnBjL2lvY3RsZW50Lmg6IFVwZGF0ZSBpb2N0bCB2YWx1ZXMuCi0JRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisJRW5oYW5jZSByZWN2bW1zZyBwYXJzZXIKKwkqIG5ldC5jIChzeXNfcmVjdm1tc2cpOiBEZWNvZGUgbW1zZ2hkciBzdHJ1Y3R1cmUgb24gZXhpdCBmcm9tIHRoZQorCXN5c2NhbGwuICBEZWNvZGUgdGltZXNwZWMgc3RydWN0dXJlIGJvdGggb24gZW50cmFuY2UgYW5kIG9uIGV4aXQuCiAKLQkqIGlvLmMgW0xJTlVYXSAoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogRml4IGxhc3QgY2hhbmdlLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorMjAxMC0wNC0wNyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAbGludXgtbTY4ay5vcmc+CiAKLQkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2dldGRlbnRzNjQsIHN5c190cnVuY2F0ZTY0LAotCXN5c19mdHJ1bmNhdGU2NCwgaW5zdGVhZCBvZiBwcmludGFyZ3MsIGZvciB0aG9zZSBzeXNjYWxscy4KLQkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlEZWNvZGUgcmVjdm1tc2cgc3lzY2FsbAorCSogbmV0LmMgKGRvX21zZ2hyKTogTmV3IGZ1bmN0aW9uIHRvIHByaW50IHN0cnVjdCBtc2doZHIuCisJKHByaW50bXNnaGRyKTogVXNlIGl0LgorCShwcmludG1tc2doZHIsIHN5c19yZWN2bW1zZyk6IE5ldy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfcmVjdm1tc2cuCisJKFNZU19zdWJfcmVjdm1tc2cpOiBEZWZpbmUuCisJKFNZU19zb2NrZXRfbnN1YmNhbGxzKTogQnVtcC4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogTGlrZXdpc2UuCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBBZGQgc3lzX3JlY3ZtbXNnLgorCSogbGludXgvYmZpbi9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaTM4Ni9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgogCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgogCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCiAJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEFkanVzdC4KIAotCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0X3N1YmNhbGwpOiBPbmx5IDI1NiBmb3IgUzM5MCwgUzM5MFguCi0JQWxsIG90aGVycyBhdCB0aGUgbW9tZW50IHVzZSBsaW51eC9zeXNjYWxsZW50LmgsIHdoZXJlIGl0J3MgMzAwLgorMjAxMC0wNC0wNyAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotCSogc3RyYWNlLjE6IFVwZGF0ZSBidWcgcmVwb3J0aW5nIGluZm8uCisJKiBzdHJhY2UuMTogRml4IHF1b3Rpbmcgb2YgaHlwaGVucyBhbmQgZm9ybWF0dGluZyBvZiBzdHJhY2Ugb3B0aW9ucy4KIAotCSogcmVzb3VyY2UuYyBbTElOVVhdIChxdW90YWNtZHMpOiBHcm9rIG5ldyBjb21tYW5kIGVuY29kaW5ncy4KLQlGcm9tIE5hdGhhbiBTY290dCA8bmF0aGFuc0BkZWJpYW4ub3JnPi4KKwlTcGxpdCB0cmFjZV9zeXNjYWxsKCkgZm9yIGJldHRlciByZWFkYWJpbGl0eQorCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKTogU3BsaXQgaW50byB0cmFjZV9zeXNjYWxsX2V4aXRpbmcoKSBhbmQKKwl0cmFjZV9zeXNjYWxsX2VudGVyaW5nKCkuCiAKLQkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTIuCi0JKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40LjkyLTEuCisJSW1wbGVtZW50IC1DIG9wdGlvbiB0byBjb21iaW5lIHJlZ3VsYXIgYW5kIC1jIG91dHB1dAorCSogZGVmcy5oIChjZmxhZ190KTogTmV3IGVudW0uCisJKiBzdHJhY2UuMTogRG9jdW1lbnQgLUMgb3B0aW9uLgorCSogc3RyYWNlLmMgKGNmbGFnKTogVXBkYXRlIHR5cGUuCisJKG1haW4pOiBIYW5kbGUgLUMgb3B0aW9uLgorCSh0cmFjZSk6IFVwZGF0ZSB1c2Ugb2YgY2ZsYWcuCisJKiBjb3VudC5jIChjb3VudF9zeXNjYWxsKTogTW92ZSBjbGVhcmluZyBvZiBUQ0JfSU5TWVNDQUxMIHRvIC4uLgorCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKTogLi4uIGhlcmUuICBVcGRhdGUgdXNlIG9mIGNmbGFnLgorCUJhc2VkIG9uIHBhdGNoIGJ5IEFkcmllbiBLdW55c3ouCiAKLQkqIGNvbmZpZ3VyZS5hYzogTWF0Y2ggcG93ZXJwYyogKGluY2x1ZGVzIHBvd2VycGM2NCksIGFuZCBkb24ndCBtYXRjaAotCXBwYyAobmV2ZXIgY29tZXMgb3V0IG9mIGNvbmZpZy5zdWIpLgorCUZpeCAibWFrZSBkaXN0IiByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgY29tbWl0IHY0LjUuMTktMTItZzUwNzg3NzAKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogUmVuYW1lIGxpbnV4L3N5c2NhbGxlbnQuaCB0byBsaW51eC9pMzg2L3N5c2NhbGxlbnQuaAogCi0JKiBwcm9jZXNzLmMgKHN5c19wdHJhY2UpOiBVc2UgI2x4IGZvcm1hdCBmb3IgYWRkcmVzcyBhcmd1bWVudC4KLQlbUE9XRVJQQ106IFVzZSBzaXplb2YodW5zaWduZWQgbG9uZykgaW4gcGxhY2Ugb2YgNCBmb3IgbXVsdGlwbGllcnMuCi0JKiBwcm9jZXNzLmMgW1BPV0VSUENdOiBMaWtld2lzZS4KLQkqIHNpZ25hbC5jIChzeXNfc2lncmV0dXJuKSBbUE9XRVJQQ106IExpa2V3aXNlLgotCSogc3lzY2FsbC5jIChnZXRfc2NubykgW1BPV0VSUENdOiBMaWtld2lzZS4KLQkqIHV0aWwuYyBbUE9XRVJQQ106IExpa2V3aXNlLgotCShwcmludG51bSk6IFVzZSBsb25nIGZvciBOVU0uCi0JRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisJKiBkZXNjLmMgKHN5c19lcG9sbF9wd2FpdCk6IEZpeCBvdXRwdXQgZm9ybWF0dGluZyBidWcuCiAKLQkqIGRlZnMuaCAoQUxJR042NCk6IEZpeCBkZWZuIGZvciBQUEMsIHNhbWUgYXMgRnJlZUJTRCBvbmUuCisJKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBGaXggcG90ZW50aWFsIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdy4KIAotCSogdXRpbC5jIFtMSU5VWF0gKHJlc3RvcmVfYXJnMCwgcmVzdG9yZV9hcmcxKTogTmV3IG1hY3JvcywgZGVmaW5lZAotCWFwcHJvcHJpYXRlbHkgdmlhIHNldF9hcmcwIG9yIG5vLW9wcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUuCi0JKGNsZWFyYnB0KTogVXNlIHRob3NlIGluc3RlYWQgb2Ygc2V0X2FyZzAgYW5kIHNldF9hcmcxLgorMjAxMC0wMy0zMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotCSogZGVmcy5oIFtfTEFSR0VGSUxFNjRfU09VUkNFXSAoX0xGUzY0X0xBUkdFRklMRSk6IERlZmluZSBpdC4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHN5c19nZXRkZW50czY0LCBzeXNfdHJ1bmNhdGU2NCwKLQlzeXNfZnRydW5jYXRlNjQsIGluc3RlYWQgb2YgcHJpbnRhcmdzLCBmb3IgdGhvc2Ugc3lzY2FsbHMuCisJRml4IG1zZ3NuZCBpbmRpcmVjdCBpcGNjYWxsIGRlY29kaW5nCisJVGhpcyByZWdyZXNzaW9uIHdhcyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCB2NC41LjE4LTEzNi1nNzgzZjViYy4KKwkqIGlwYy5jICh0cHJpbnRfbXNnc25kKTogQWRkIGFuZCB1c2UgImZsYWdzIiBhcmd1bWVudC4KKwkoc3lzX21zZ3NuZCk6IFBhc3MgImZsYWdzIiBhcmd1bWVudCB0byB0cHJpbnRfbXNnc25kKCkuCisJUGF0Y2ggYnkgQW50b24gQmxhbmNoYXJkLgogCi0JKiBwcm9jZXNzLmM6IFVzZSA8bGludXgvcHRyYWNlLmg+IHJlZ2FyZGxlc3Mgb2YgPHN5cy9yZWcuaD4uCi0JKHN5c19wdHJhY2UpOiBVc2UgcHJpbnR4dmFsLgotCShwdHJhY2VfY21kcyk6IE1ha2UgUFRSQUNFX0dFVFJFR1MgZXQgYWwgY29uZGl0aW9uYWwgb24gI2lmZGVmIFBUUkFDRV8qCi0JaW5zdGVhZCBvZiBvbmx5ICNpZmRlZiBTVU5PUzQuICBBZGQgUFRSQUNFX1tHU11FVEZQWFJFR1MuCisyMDEwLTAzLTIzICBNYXJrIFdpZWxhYXJkICA8bWp3QHJlZGhhdC5jb20+CiAKLQkqIGlwYy5jIChQUklOVENUTCk6IE5ldyBtYWNyby4gICNpZmRlZiBJUENfNjQsIGZhY3RvciBvdXQgdGhlIGZsYWcgYW5kCi0JcHJpbnQgaXQgYmVmb3JlIHVzaW5nIHByaW50eHZhbC4KLQkoc3lzX21zZ2N0bCwgc3lzX3NlbWN0bCwgc3lzX3NobWN0bCk6IFVzZSBpdC4KLQotMjAwMy0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnLmd1ZXNzOiBVcGRhdGUgZnJvbSBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8sCi0JdGltZXN0YW1wIDIwMDMtMDEtMTAuCi0JKiBjb25maWcuc3ViOiBMaWtld2lzZSwgdGltZXN0YW1wIDIwMDMtMDEtMDMuCi0JKiBpbnN0YWxsLXNoOiBVcGRhdGUgZnJvbSBBdXRvbWFrZSAxLjcuMi4KLQotCSogbGludXgvcG93ZXJwYy9zaWduYWxlbnQuaDogQWRkIFNJR1JUTUlOLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogQWRkIG1pc3Npbmcgc3lzdGVtIGNhbGxzLgotCURlY29kZSBtb3JlIHN5c3RlbSBjYWxscywgd2Ugd2VyZSBqdXN0IHByaW50YXJncyBmb3IgbWFueSB0aGluZ3MuCi0JUmVtb3ZlIHNvbWUgeDg2LXNwZWNpZmljIHN5c3RlbSBjYWxscy4KLQlSZW1vdmUgdHdvIHN5c2NhbGxzIGJldHdlZW4gdGhlIHNvY2tldCBhbmQgaXBjIHN5c2NhbGxzLAotCWl0IHdhcyByZXN1bHRpbmcgaW4gYWxsIElQQyBzeXNjYWxscyBiZWluZyBvZmYgYnkgdHdvLgotCi0JKiBpb2N0bC5jIChpb2N0bF9kZWNvZGUpIFtQT1dFUlBDXTogRGVjb2RlIHRlcm0gaW9jdGxzIGxpa2UgQWxwaGEuCi0JRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCi0KLQkqIGRlZnMuaCBbUE9XRVJQQ10gKFVFU1AsIEVJUCwgRUFYLCBPUklHX0VBWCk6IFJlbW92ZSB0aGlzIGNydWZ0LgotCVtMSU5VWCAmJiBQT1dFUlBDICYmICFfX3Bvd2VycGM2NF9fXSAoQUxJR042NCk6IE5ldyBtYWNyby4KLQkqIGlvLmMgKHN5c19wcmVhZCwgc3lzX3B3cml0ZSk6IFVzZSBBTElHTjY0LgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiB0ZXJtLmMgW0xJTlVYXTogR2V0IGtlcm5lbCBkZWZpbml0aW9uIG9mIHN0cnVjdCB0ZXJtaW9zLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBsaW51eC9pb2N0bGVudC5zaDogTG9vayBpbiBzb3VuZC8gZGlyZWN0b3J5IHRvby4KLQlGcm9tIEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KLQotCSogZGVzYy5jIChwcmludGZsb2NrNjQpOiBGaXggQUREUiBhcmd1bWVudCB0eXBlLgotCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgotCi0JKiBzdHJhY2UuYyBbISBIQVZFX1NUUlNJR05BTF06IENsZWFuIHVwICNpZmRlZnMgb24gZGVjbHMgZm9yCi0Jc3lzX3NpZ2xpc3QgYW5kIF9zeXNfc2lnbGlzdC4KLQlSZXBvcnRlZCBieSBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+LgotCi0JKiBuZXQuYzogSEFWRV9PUFRIRFIgLT4gSEFWRV9TVFJVQ1RfT1BUSERSCi0JUmVwb3J0ZWQgYnkgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPi4KLQotCSogbGludXgvc3lzY2FsbC5oIFtBUk1dIChTWVNfc29ja2V0X3N1YmNhbGwpOiBTZXQgdG8gMzAwLgotCi0yMDAzLTAxLTEwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40LjkxLgotCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45MS0xCi0KLQkqIHV0aWwuYyBbTElOVVggJiYgWDg2XzY0XSAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogVXNlIGNvcnJlY3QKLQl2YWx1ZXMgZm9yIHg4Ni02NCwgY29uZGl0aW9uYWwgb24gY3VycmVudF9wZXJzb25hbGl0eS4KLQotCSogc3RyYWNlLmMgKGRyb3B0Y2IpOiBDbGVhciBmbGFncyB3b3JkIGJlZm9yZSBjYWxsaW5nIHJlYnVpbGRfcG9sbHYuCi0KLQkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgc3RydWN0IFRfY29ubl9yZXMgZm9yIFFVRVVFX3B0ciBvciBBQ0NFUFRPUl9pZC4KLQkqIHN0cmVhbS5jIChwcmludF90cmFuc3BvcnRfbWVzc2FnZSk6IFVzZSAjaWZkZWZzIGZvciB0aG9zZSBtZW1iZXJzLgotCi0JKiBzdHJhY2UuYyAocmVidWlsZF9wb2xsdik6IEZpeCB0eXBvOiBzdHJ1Y3QgcG9sbCAtPiBzdHJ1Y3QgcG9sbGZkLgotCi0JKiBjb25maWd1cmUuYWM6IEZpeCBzaWdpbmZvX3Qvc2lnX2F0b21pY190IGNoZWNrcy4KLQlVc2UgcHJlcmVxdWlzaXRlICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGZvciBuZXRpbmV0LyouaCBjaGVja3MuCi0KLQkqIHN0cmFjZS5jIChwZmQydGNiKTogRml4IGZvciBuZXcgdGNidGFiIHR5cGUuCi0JKHJlYnVpbGRfcG9sbHYpOiBMaWtld2lzZS4KLQkoZGV0YWNoKTogUHV0IHZhcmlhYmxlcyB1c2VkIHVuZGVyIFtMSU5VWF0gaW5zaWRlICNpZmRlZi4KLQotCSogcHJvY2Vzcy5jIChjaGFuZ2Vfc3lzY2FsbCkgW1BPV0VSUENdOiBBZGQgbWlzc2luZyByZXR1cm4uCi0JKiB1dGlsLmMgW1BPV0VSUENdIChhcmcwX29mZnNldCk6IFNldCB0byA0KlBUX1IzLCBub3QgNCpQVF9PUklHX1IzLgotCi0JKiBzdHJhY2Uuc3BlYzogTmV3IGZpbGUuCi0JKiBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTAtMQotCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IERlcGVuZCBvbiBidWlsZC4KLQkoY2xlYW4pOiBEb24ndCB0cnkgdG8gcnVuIE1ha2VmaWxlLmluLgotCSogZGViaWFuL2NvbnRyb2wgKFN0YW5kYXJkcy1WZXJzaW9uKTogTm93IDMuNS44LgotCi0JKiBjb25maWd1cmUuYWM6IERpZGRsZSBDRkxBR1MgYWZ0ZXIgQUNfUFJPR19DQywgbm90IGJlZm9yZS4KLQotMjAwMy0wMS0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpIFtTMzkwIHx8IFMzOTBYXTogRml4IHR5cG8uCi0KLQkqIGRlYmlhbi9jb250cm9sOiBVcGRhdGUgTWFpbnRhaW5lcjogZmllbGQuCi0KLTIwMDMtMDEtMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIE5FV1M6IFVwZGF0ZSBmb3IgNC40LjkwIHRlc3QgcmVsZWFzZS4KLQotCVN1cHBvcnQgZm9yIG5ldyBMaW51eCAyLjUgdGhyZWFkIGZlYXR1cmVzLgotCSogZGVmcy5oIFtMSU5VWF06IERlZmluZSBfX05SX2V4aXRfZ3JvdXAgaWYgbm90IGRlZmluZWQuCi0JKHN0cnVjdCB0Y2IpOiBOZXcgbWVtYmVycyBuY2xvbmVfdGhyZWFkcywgbmNsb25lX2RldGFjaGVkLAotCWFuZCBuY2xvbmVfd2FpdGluZy4KLQkoVENCX0NMT05FX0RFVEFDSEVELCBUQ0JfQ0xPTkVfVEhSRUFELCBUQ0JfR1JPVVBfRVhJVElORyk6IE5ldyBtYWNyb3MuCi0JKHdhaXRpbmdfcGFyZW50KTogTWFjcm8gcmVtb3ZlZC4KLQkocGlkMnRjYik6IERlY2xhcmUgaXQuCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKSBbVENCX0NMT05FX1RIUkVBRF06IFJlcGFyZW50IHRoZSBuZXcKLQljaGlsZCB0byBvdXIgcGFyZW50IGlmIHdlIGFyZSBhIENMT05FX1RIUkVBRCBjaGlsZCBvdXJzZWx2ZXMuCi0JTWFpbnRhaW4gVENCX0NMT05FX1RIUkVBRCBhbmQgVENCX0NMT05FX0RFVEFDSEVEIGZsYWdzIGFuZCBjb3VudHMuCi0JKGludGVybmFsX3dhaXQpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogRmFjdG9yIG91dCBkZXRhY2hlZCBjaGlsZHJlbiB3aGVuCi0JZGV0ZXJtaW5pbmcgaWYgd2UgaGF2ZSBhbnkuICBJZiBUQ0JfQ0xPTkVfVEhSRUFEIGlzIHNldCwgY2hlY2sKLQlwYXJlbnQncyBjaGlsZHJlbiBpbnN0ZWFkIG9mIG91ciBvd24sIGFuZCBidW1wIG5jbG9uZV93YWl0aW5nIGNvdW50LgotCShpbnRlcm5hbF9leGl0KSBbX19OUl9leGl0X2dyb3VwXTogU2V0IHRoZSBUQ0JfR1JPVVBfRVhJVElORyBmbGFnIGlmCi0JdGhlIHN5c2NhbGwgd2FzIGV4aXRfZ3JvdXAuCi0JKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBVc2UgaW50ZXJuYWxfZXhpdCBmb3IgZXhpdF9ncm91cC4KLQkqIHN0cmFjZS5jIChwaWQydGNiKTogTm8gbG9uZ2VyIHN0YXRpYy4KLQkoYWxsb2N0Y2IpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogSW5pdGlhbGl6ZSBuZXcgZmllbGRzLgotCShkcm9wdGNiKSBbVENCX0NMT05FX1RIUkVBRF06IE1haW50YWluIG5ldyBmaWVsZHMuCi0JSWYgd2UgaGF2ZSB0aHJlYWQgY2hpbGRyZW4sIHNldCBUQ0JfRVhJVElORyBhbmQgZG9uJ3QgY2xlYXIgdGhlIFRDQi4KLQkocmVzdW1lKSBbVENCX0NMT05FX1RIUkVBRF06IERlY3JlbWVudCBwYXJlbnQncyBuY2xvbmVfd2FpdGluZy4KLQkoZGV0YWNoKSBbVENCX0NMT05FX1RIUkVBRF06IFdoZW4gY2FsbGluZyByZXN1bWUsIGNoZWNrIGFsbCB0aHJlYWQKLQljaGlsZHJlbiBvZiBvdXIgcGFyZW50IHRoYXQgbWlnaHQgYmUgd2FpdGluZyBmb3IgdXMgdG9vLgotCVtUQ0JfR1JPVVBfRVhJVElOR10gKGhhbmRsZV9ncm91cF9leGl0KTogTmV3IGZ1bmN0aW9uLgotCSh0cmFjZSkgW1RDQl9HUk9VUF9FWElUSU5HXTogVXNlIHRoYXQgaW4gcGxhY2Ugb2YgZGV0YWNoIG9yIGRyb3B0Y2IuCi0KLQlSZXZhbXAgLWYgc3VwcG9ydCBmb3IgTGludXguCi0JKiB1dGlsLmMgW0xJTlVYXSAoc2V0YnB0LCBjbGVhcmJwdCk6IE5ldyBpbXBsZW1lbnRhdGlvbnMgdGhhdCB0d2VhawotCXRoZSBzeXN0ZW0gY2FsbCB0byBiZSBjbG9uZSB3aXRoIENMT05FX1BUUkFDRSBzZXQuICBWYXJpb3VzIG5ldyBzdGF0aWMKLQloZWxwZXIgZnVuY3Rpb25zLgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSk6IERlZmluZSBhbHNvICNpZmRlZiBTWVNfY2xvbmUyLgotCUluaXRpYWxpemUgVENQQ0hJTEQtPnBhcmVudCBmaWVsZC4KLQlbQ0xPTkVfUFRSQUNFXTogRG9uJ3QgZG8gUFRSQUNFX0FUVEFDSCBoZXJlLCBiZWNhdXNlIGl0J3MgcHJlYXR0YWNoZWQuCi0JQ2hlY2sgaW4gY2FzZSB0aGUgbmV3IGNoaWxkIGlzIGluIHRoZSB0Y2IgYWxyZWFkeS4KLQkoaW50ZXJuYWxfZm9yaykgW0xJTlVYXTogSnVzdCBjYWxsIGludGVybmFsX2Nsb25lLgotCSogc3RyYWNlLmMgKHRyYWNlKSBbTElOVVhdOiBVbmRlciAtZi8tRiwgZ3JvayBhbiB1bmtub3duIHBpZAotCXJlcG9ydGluZyB0byB3YWl0LCBwdXQgaXQgaW4gdGhlIFRDQiB3aXRoIFRDQl9BVFRBQ0hFRHxUQ0JfU1VTUEVOREVELgotCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaCAoc3lzX29sZGxzdGF0KTogI2RlZmluZSBhcyBwcmludGFyZ3MuCi0KLQkqIGZpbGUuYyBbTElOVVhdOiAjdW5kZWYgc3RfW2FtY110aW1lIGluIGNhc2UgdGhleSBhcmUgbWFjcm9zLgotCi0JKiBNYWtlZmlsZS5hbSAoQU1fQ0ZMQUdTKTogTmV3IHZhcmlhYmxlLCBkZWZpbmUgdG8gJChXQVJORkxBR1MpLgotCi0JKiBNYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IFJlbW92ZSBkZWJpYW4vcG9zdGluc3QgYW5kIGRlYmlhbi9wcmVybS4KLQotMjAwMy0wMS0wOSAgV2ljaGVydCBBa2tlcm1hbiAgPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KLQotCSogZGViaWFuL3Bvc3RpbnN0LCBkZWJpYW4vcHJlcm06IHJlbW92ZWQsIC91c3IvZG9jIHN5bWxpbmsgaXMgbm8KLQlsb25nZXIgdXNlZAotCSogZGViaWFuL3J1bGVzOiBubyBsb25nZXIgaW5zdGFsbCBwb3N0aW5zdCBhbmQgcHJlcm0KLQkqIGRlYmlhbi9jb250cm9sOiBkbyBub3QgZW5kIHN1bW1hcnkgd2l0aCBmdWxsIHN0b3AgKGxpbnRpYW4pCi0KLTIwMDItMTItMzAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtIChiaW5fU0NSSVBUUyk6IE5ldyB2YXJpYWJsZSwgbGlzdCBzdHJhY2UtZ3JhcGguCi0JKEVYVFJBX0RJU1QpOiBBZGQgbWlzc2luZyBmaWxlcy4KLQotCSogY29uZmlndXJlLmFjOiBGaXggYXNtL3NpZ2NvbnRleHQuaCBjaGVjayB0byBpbmNsdWRlIHByZXJlcXVpc2l0ZS4KLQotCSogc3lzY2FsbC5jIChxdWFsaWZ5X29uZSk6IE5ldyBmdW5jdGlvbi4KLQkocXVhbF9vcHRpb25zKTogUmVwbGFjZSBsb29rdXAgZmllbGQgd2l0aCBxdWFsaWZ5LCB1cGRhdGUgaW5pdGlhbGl6ZXIuCi0JKHF1YWxpZnkpOiBVcGRhdGUgY2FsbGVyLgotCShxdWFsX3NpZ25hbCwgcXVhbF9mYXVsdCwgcXVhbF9kZXNjKTogUmV3cml0dGVuIGZyb20gbG9va3VwXyouCi0JKHF1YWxfc3lzY2FsbCk6IFJld3JpdHRlbiBsb29rdXBfc3lzY2FsbCwgbWF0Y2ggbmFtZSBtb3JlIHRoYW4gb25jZS4KLQlGaXhlcyBSSCM3MDU3OSwgYml0ZXMgSUE2NCAtZWZvbyB3aGVuIGZvbyBleGlzdHMgb24gSUEzMi4KLQotCSogdmVyc2lvbi5jICh2ZXJzaW9uKTogTWFrZSBjb25zdCwgYnVtcCB0byA0LjQuOTAuCi0JKiBzdHJhY2UuYzogVXBkYXRlIGRlY2wuCi0KLQkqIE1ha2VmaWxlLmFtIFtMSU5VWCAmJiBYODZfNjRdOiBSZW1vdmUgY3J1ZnQuCi0JKiBsaW51eC94ODZfNjQvZXJybm9lbnQxLmg6IE5ldyBmaWxlLgotCSogbGludXgveDg2XzY0L2lvY3RsZW50MS5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmg6IE5ldyBmaWxlLgotCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmg6IE5ldyBmaWxlLgotCSogbGludXgveDg2XzY0L2kzODYtaGVhZGVycy5kaWZmOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC94ODZfNjQvbWFrZWhlYWRlcnMuc2g6IEZpbGUgcmVtb3ZlZC4KLQkqIGxpbnV4L3g4Nl82NC9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgotCi0JKiBsaW51eC9zeXNjYWxsZW50LmggW1g4Nl82NF06IERpc2FibGUgc2FuaXR5IGNoZWNrcywgc3ViY2FsbCBzdHVmZiBpcwotCWFscmVhZHkgYnJva2VuIGZvciAzMi1iaXQgcGVyc29uYWxpdHkgb24geDg2LTY0LgotCi0yMDAyLTEyLTI5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWd1cmUuYWMsIE1ha2VmaWxlLmFtOiBQdW50IHN1YmRpcnMsIGhhbmRsZSBldmVyeXRoaW5nIGhlcmUuCi0JKiBsaW51eC9NYWtlZmlsZS5hbTogRmlsZSByZW1vdmVkLgotCSogZnJlZWJzZC9NYWtlZmlsZS5hbTogRmlsZSByZW1vdmVkLgotCSogc3Vub3M0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBzdnI0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0KLQkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9ocHBhL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9pYTY0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9wb3dlcnBjL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9zMzkwL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBsaW51eC9zMzkweC9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgotCi0yMDAyLTEyLTI2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBzeXNjYWxsZW50LnNoOiBHcm9rIHRocmVlIGZsYXZvcnMgb2YgI2RlZmluZSBsaW5lLCB1bmlxdWlmeS4KLQkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5zaDogRmlsZSByZW1vdmVkLgotCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LnNoOiBGaWxlIHJlbW92ZWQuCi0KLQkqIGxpbnV4L01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KLQkqIGxpbnV4L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCi0JKiBmcmVlYnNkL01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KLQkqIGZyZWVic2QvaTM4Ni9NYWtlZmlsZS5hbTogTmV3IGZpbGUuCi0JKiBmcmVlYnNkL2kzODYvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KLQotMjAwMi0xMi0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCVVwZGF0ZSB0byBBdXRvY29uZiAyLjU3LCBhbmQgQXV0b21ha2lmeSB3aXRoIHZlcnNpb24gMS43LgotCSogTWFrZWZpbGUuYW06IE5ldyBmaWxlLgotCSogTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KLQkqIGNvbmZpZ3VyZS5pbjogTW92ZWQgdG8gLi4uCi0JKiBjb25maWd1cmUuYWM6IC4uLiBoZXJlLiAgVXBkYXRlIGZvciBBdXRvY29uZiAyLjV4IGFuZCBBdXRvbWFrZS4KLQkqIGFjbG9jYWwubTQ6IE1vdmVkIHRvIC4uLgotCSogYWNpbmNsdWRlLm00OiAuLi4gaGVyZS4gIFVwZGF0ZSBmb3IgQXV0b2NvbmYgMi41eC4KLQkqIGFjY29uZmlnLmg6IEZpbGUgcmVtb3ZlZC4KLQkqIEFVVEhPUlM6IE5ldyBmaWxlLCBtYWtlcyBhdXRvbWFrZSBoYXBweS4KLQkqIGF1dG9nZW4uc2g6IEZpbGUgcmVtb3ZlZC4KLQkqIFJFQURNRS1DVlM6IFVwZGF0ZSB0byByZWNvbW1lbmQgYXV0b3JlY29uZiBpbnN0ZWFkLgotCSogZmlsZS5jOiBIQVZFX1NUXyogLT4gSEFWRV9TVFJVQ1RfU1RBVF9TVF8qLgotCSogbmV0LmM6IEhBVkVfU0lONl9TQ09QRV9JRCAtPiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCwKLQlIQVZFX01TR19DT05UUk9MIC0+IEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTC4KLQkqIHN0cmFjZS5jOiAqX0RFQ0xBUkVEIC0+IEhBVkVfREVDTF8qCi0JKiBzdHJlYW0uYzogSEFWRV8qIC0+IEhBVkVfU1RSVUNUXyoKLQotCSogbGludXgvTWFrZWZpbGUuaW4gKGlvY3RsZGVmcy5oIGlvY3Rscy5oKTogVXNlICQoU0hFTEwpIGluc3RlYWQgb2YKLQlzaCwgYW5kIHVzZSAkKHNyY2RpcikgdG8gZmluZCB0aGUgc2NyaXB0LgotCSogbGludXgvcG93ZXJwYy9NYWtlZmlsZS5pbiAoaW9jdGxlbnQucmF3KTogRmluZCBpb2N0bGVudC5zaCBpbiAuLi8uCi0JKGlvY3Rsc29ydC5vKTogVXNlIC4uL2lvY3Rsc29ydC5jLCBub3QgLi4vLi4vaW9jdGxzb3J0LmMuCi0JKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW4gKGhlYWRlcnMpOiBSZW5hbWVkIHRvIGFsbC4KLQkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBBZGQgZW1wdHkgaW5zdGFsbCB0YXJnZXQuCi0JKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW46IExpa2V3aXNlLgotCSogbGludXgvcG93ZXJwYy9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCi0JKiBsaW51eC9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCi0KLTIwMDItMTItMjYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGRlZnMuaCBbTElOVVggJiYgTUlQU10gKE1BWF9RVUFMUyk6IFNldCB0byA1MDAwLCBub3QgNDk5OS4KLQlGcm9tIERhbmllbCBKYWNvYm93aXR6IDxkcm93QGZhbHNlLm9yZz4uCi0KLTIwMDItMTItMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHNvbWUgbmV3IDIuNSBzeXNjYWxsIG5hbWVzLgotCU5vdyBjbG9uZSB0YWtlcyA1IGFyZ3MuCi0JKiBwcm9jZXNzLmMgW0xJTlVYXSAoY2xvbmVfZmxhZ3MpOiBVcGRhdGUgd2l0aCAyLjUgZmxhZyBiaXRzLgotCVtMSU5VWF0gKHN5c19jbG9uZSk6IFByaW50IG5ldyBhcmdzLgotCSogbWVtLmMgKHByaW50X2xkdF9lbnRyeSk6IE1ha2UgZ2xvYmFsLgotCi0JKiBsaW51eC9zeXNjYWxsLmggW0kzODYgfHwgSUE2NF0gKFNZU19zb2NrZXRfc3ViY2FsbCk6IEJ1bXAgdG8gMzAwIGZvcgotCXNhZmV0eSwgc2luY2UgdXAgdG8gMjYwIGFyZSBhbHJlYWR5IHVzZWQgaW4gMi41IGtlcm5lbHMuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUuCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCi0KLQkqIHN5c2NhbGwuYyAoZm9yY2VfcmVzdWx0KTogTmV3IGZ1bmN0aW9uLgotCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogSGFuZGxlIEVDSElMRCBleGl0IGZyb20gd2FpdCBjYWxsIHdpdGgKLQlXTk9IQU5HIGZsYWcgc2V0OyBmb3JjZSB0aGUgcmV0dXJuIHZhbHVlIHRvIDAgaW4gdGhlIGluZmVyaW9yIHdoZW4gaXQKLQloYXMgbGl2ZSBjaGlsZHJlbiB3ZSBhcmUgdHJhY2luZy4KLQkqIE5FV1M6IE1lbnRpb24gdGhlIGJ1ZyBmaXguCi0KLTIwMDItMTItMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgcGxhY2Vob2xkZXJzIDI3NS0yOTggdG8gY2F0Y2ggdXAKLQl3aXRoIGxpbnV4L3N5c2NhbGxlbnQuaCBhZGRpdGlvbnMuCi0KLQkqIHN0cmFjZS5jICh0Y2J0YWIpOiBNYWtlIHRoaXMgYSBwb2ludGVyIHRvIHBvaW50ZXJzLCBub3QgYW4gYXJyYXkuCi0JKHRjYnRhYnNpemUpOiBOZXcgdmFyaWFibGUuCi0JKG1haW4pOiBJbml0aWFsaXplIHRoZW0gdXNpbmcgZHluYW1pYyBhbGxvY2F0aW9uLgotCShhbGxvY3RjYiwgbWFpbik6IFVzZSB0Y2J0YWJzaXplIGluIHBsYWNlIG9mIE1BWF9QUk9DUzsgaW5kaXJlY3QuCi0JKHBpZDJ0Y2IsIGNsZWFudXApOiBMaWtld2lzZS4KLQlbVVNFX1BST0NGU10gKHBvbGx2KTogTWFrZSB0aGlzIGEgcG9pbnRlciwgbm90IGFuIGFycmF5OyBtYWtlIHN0YXRpYy4KLQkocmVidWlsZF9wb2xsdik6IER5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSB2ZWN0b3IuCi0JKiBkZWZzLmggKHRjYnRhYik6IFVwZGF0ZSBkZWNscy4KLQkoTUFYX1BST0NTKTogTWFjcm8gcmVtb3ZlZCwgbm8gbW9yZSBzdGF0aWMgbGltaXQgb24gdGhpcy4KLQkqIHByb2Nlc3MuYyAoZm9ya190Y2IpOiBOZXcgZnVuY3Rpb24uCi0JKGludGVybmFsX2Nsb25lLCBpbnRlcm5hbF9mb3JrKTogVXNlIGl0IGluc3RlYWQgb2YgY2hlY2tpbmcgbnByb2NzLgotCi0JKiBzdHJhY2UuYyAoZGV0YWNoKSBbTElOVVhdOiBVc2UgX19XQUxMIChvciBhIHNlY29uZCB0cnkgd2l0aCBfX1dDTE9ORSkKLQlpbiB3YWl0IGFmdGVyIHNlbmRpbmcgU0lHU1RPUC4KLQotMjAwMi0xMi0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2spOiBJbmNyZWFzZSBzdGF0aWMgYnVmZmVyIHNpemUgdG8gYWNjb3VudCBmb3IKLQl3b3JzdCBwb3NzaWJsZSBjYXNlLiAgUmVwb3J0ZWQgYnkgRGFuaWVsIEphY29ib3dpdHogPGRyb3dAZmFsc2Uub3JnPi4KLQotCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHdhaXQ0X29wdGlvbnMpOiBGaXggX19XQ0xPTkUgdmFsdWUuICBBZGQKLQlfX1dOT1RIUkVBRCBhbmQgX19XQUxMLgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtMSU5VWF06IE9ubHkgY2hlY2sgZXJybm8gaWYgd2FpdDQgYWN0dWFsbHkgZmFpbHMsCi0Jc28gd2UgZG9uJ3QgcmVwZWF0IGEgd2FpdCBhbmQgdGh1cyBkcm9wIGEgc3RhdHVzLiAgRml4ZXMgUkgjNjI1OTEuCi0KLTIwMDItMTItMTUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+Ci0KLQkqIHByb2Nlc3MuYyAoc2V0YXJnKSBbUE9XRVJQQ106IFN1cHBvcnQgaXQuCi0KLQkqIHV0aWwuYyBbUE9XRVJQQ10gKExPT1ApOiBGaXggdmFsdWUsIG5vdyAweDQ4MDAwMDAwICgwOiBiIDBiKS4KLQlPbGQgdmFsdWUgd2FzIGJvZ3VzLCBub3QgZXZlbiBhIHByb3BlciBpbnN0cnVjdGlvbi4KLQlGcm9tIEd1eSBNLiBTdHJlZXRlciA8c3RyZWV0ZXJAcmVkaGF0LmNvbT4uCi0KLQkqIHN0cmFjZS5jIChtYWluKSBbISBVU0VfUFJPQ0ZTXTogQWx3YXlzIHJlc2V0IFNJR0NITEQgdG8gU0lHX0RGTC4KLQotCSogY29uZmlndXJlLmluOiBEb24ndCBjaGVjayBmb3IgcHV0cG1zZy4KLQkqIHN0cmVhbS5jIChzeXNfZ2V0cG1zZywgc3lzX3B1dHBtc2cpOiBNYWtlIHRoZXNlIGNvbmRpdGlvbmFsIG9uCi0JI2lmZGVmIFNZU18qLCByYXRoZXIgdGhhbiBvbiBIQVZFX1BVVFBNU0cuCi0KLQkqIGFjbG9jYWwubTQgKEFDX1NUQVQ2NCk6IEluY2x1ZGUgPGxpbnV4L3R5cGVzLmg+IGJlZm9yZSA8YXNtL3N0YXQuaD4KLQlpbiB0ZXN0LiAgVGVzdCBvdXIgb3duICNpZmRlZiBMSU5VWCByYXRoZXIgdGhhbiBwcmVkZWZpbmVkIGBsaW51eCcuCi0KLQkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2xsc2VlayBmb3IgX2xsc2Vlay4KLQkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJSG9vayB1cCBpbm90aWZ5X2luaXQxIG9wZW4gbW9kZSBmbGFncyBwcmludGVyCisJKiBmaWxlLmMgW0xJTlVYXSAoc3lzX2lub3RpZnlfaW5pdDEpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgbmV3IHN5c19pbm90aWZ5X2luaXQxIGhhbmRsZXIuCisJKiBsaW51eC9iZmluL3N5c2NhbGxlbnQuaDogSG9vayB1cCBuZXcgaGFuZGxlci4KIAkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2kzODYvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgogCi0JKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpIFtMSU5VWCAmJiBQT1dFUlBDXTogRGVmaW5lIFBUX09SSUdfUjMgaWYKLQlub3QgZGVmaW5lZCwgc2luY2UgPGFzbS9wdHJhY2UuaD4gZGVmaW5lcyBpdCBvbmx5ICNpZmRlZiBfX0tFUk5FTF9fLgotCSogcHJvY2Vzcy5jOiBMaWtld2lzZS4KKzIwMTAtMDMtMDkgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CiAKLQkqIGRlc2MuYyAoc3lzX29zZl9zZWxlY3QpOiBBZGQgbWlzc2luZyByZXR1cm4gdHlwZS4KKwlBdm9pZCBzcHVyaW91cyBlcnJvciB3aGVuIGNoZWNraW5nIGZvciBsaW51eC9uZXRsaW5rLmgKKwkqIGNvbmZpZ3VyZS5hYzogSW5jbHVkZSA8YXNtL3R5cGVzLmg+IHdoZW4gY2hlY2tpbmcgZm9yCisJbGludXgvbmV0bGluay5oLgogCi0JKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBVc2Ugc3RyZXJyb3IsIG5vdCBzeXNfZXJybGlzdC9zeXNfbmVyci4KKzIwMTAtMDItMjMgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGxpbnV4LW02OGsub3JnPgogCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogUmVtb3ZlIG1hY3JvcyBmb3Igc3lzX2RlbGV0ZV9tb2R1bGUsCi0Jc3lzX25hbm9zbGVlcCwgYm90aCBhbHJlYWR5IGluIGxpbnV4L2R1bW15LmguCisJRml4IHJlcG9ydGluZyBzaWduYWwgbWFzayBieSBzaWdyZXR1cm4gb24gcG93ZXJwYworCSogc2lnbmFsLmMgKHN5c19zaWdyZXR1cm4pIFtQT1dFUlBDXTogU2tpcCBkdW1teSBzdGFjayBmcmFtZSB3aGVuCisJbG9jYXRpbmcgc2lnbmFsIGNvbnRleHQuCiAKLQkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pOiBNb3ZlIHN0YXRpYyBgY3VycnBlcnMnIGluc2lkZSAjaWZkZWYgWDg2XzY0LgotCSh0cmFjZV9zeXNjYWxsKTogRml4IHJldHVybiB3aXRob3V0IHZhbHVlLgorMjAxMC0wMi0wOSAgRGF2aWQgRGFuZXkgIDxkZGFuZXlAY2F2aXVtbmV0d29ya3MuY29tPgogCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0YWJsZSB3aXRoIG5hbWVzIG9mIG5ldyBzeXNjYWxscwotCWlvX3NldHVwLCBpb19kZXN0cm95LCBpb19nZXR2ZW50cywgaW9fc3VibWl0LCBpb19jYW5jZWwuCi0JKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJRml4IE1JUFMgTjMyL042NCBjb21waWxlIGVycm9yCisJKiBzeXNjYWxsLmMgW0xJTlVYX01JUFNOMzIgfHwgTElOVVhfTUlQU042NF0gKHN5c2NhbGxfZW50ZXIpOiBQYXNzCisJdGNwLT5waWQgdG8gcHRyYWNlKCkuCisKKzIwMTAtMDItMDUgIENocmlzIE1ldGNhbGYgIDxjbWV0Y2FsZkB0aWxlcmEuY29tPgorCisJQWRkIHN1cHBvcnQgZm9yIHRoZSBUSUxFIGFyY2hpdGVjdHVyZQorCSogY29uZmlndXJlLmFjOiBBZGQgVElMRSB0byB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KKwkqIGRlZnMuaDogRGVmaW5lIFRDQl9XQUlURVhFQ1ZFIGZvciBUSUxFLgorCSogbGludXgvdGlsZS9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgorCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgbGludXgvdGlsZS9zeXNjYWxsZW50LmgKKwkqIHByb2Nlc3MuYyAoY2hhbmdlX3N5c2NhbGwsIHN0cnVjdF91c2VyX29mZnNldHMpOiBBZGQgVElMRSBzdXBwb3J0LgorCSogc3lzY2FsbC5jIChnZXRfc2NubywgZ2V0X2Vycm9yLCBzeXNjYWxsX2VudGVyKTogTGlrZXdpc2UuCisJKiBtZW0uYyAobW1hcF9mbGFncywgcHJpbnRfbW1hcCk6IEFkZCBNQVBfQ0FDSEVfeHh4IFRJTEUgZXh0ZW5zaW9ucworCXN1cHBvcnQuCisJKiBzaWduYWwuYyAoc2lnYWN0X2ZsYWdzKTogQWRkIFNBX05PUFRSQUNFLgorCShzeXNfc2lncmV0dXJuKTogQWRkIFRJTEUgc3VwcG9ydC4KKworMjAxMC0wMi0wNCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCVJlbW92ZSBkZWFkIGNvZGUKKwkqIGRlZnMuaCAodHZfdHYpOiBSZW1vdmUuCisJKiBuZXQuYyAoc3lzX3hzZXRzb2NrYWRkcik6IFJlbW92ZSBjb21tZW50ZWQgb3V0IGRlYWQgY29kZS4KKwkqIHByb2Nlc3MuYyAoc2V0YXJnLCBzeXNfZXhlY3YsIHN5c19leGVjdmUsIHN0cnVjdF91c2VyX29mZnNldHMpOgorCUxpa2V3aXNlLgorCSogc2lnbmFsLmMgKHN5c19zaWdzdXNwZW5kKTogTGlrZXdpc2UuCisJKiBzdHJhY2UuYyAocmVhcGVyLCB0cmFjZSk6IExpa2V3aXNlLgorCSogc3RyZWFtLmMgKGludGVybmFsX3N0cmVhbV9pb2N0bCk6IExpa2V3aXNlLgorCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKTogTGlrZXdpc2UuCisJKiB0ZXJtLmMgKHRlcm1faW9jdGwpOiBMaWtld2lzZS4KKwkqIHV0aWwuYyAodHZfdHYsIHVtb3ZlbiwgdWxvYWQsIGdldHBjLCBmaXh2Zm9yaywgc2V0YnB0LCBjbGVhcmJwdCk6CisJTGlrZXdpc2UuCisKKwlNZXJnZSBMaW51eCBpbnRlcm5hbF9jbG9uZSgpIGludG8gaW50ZXJuYWxfZm9yaygpCisJKiBkZWZzLmggKGludGVybmFsX2Nsb25lKTogUmVtb3ZlLgorCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSk6IE1lcmdlIGludG8gaW50ZXJuYWxfZm9yaygpLgorCShpbnRlcm5hbF9mb3JrKSBbIUxJTlVYXTogUmVtb3ZlIGRlYWQgY29kZS4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IFJlcGxhY2UgaW50ZXJuYWxfY2xvbmUoKSB3aXRoCisJaW50ZXJuYWxfZm9yaygpLgorCisJKiBNYWtlZmlsZS5hbSAoSU5DTFVERVMpOiBSZW1vdmUgcmVkdW5kYW50IHNlYXJjaCBkaXJlY3Rvcmllcy4KKworMjAxMC0wMi0wNCAgRnJlZGVyaWsgU2Now7xsZXIgIDxmc0BkZWJpYW4ub3JnPgorCisJVXBkYXRlIGRlYmlhbi8qIGZpbGVzCisJKiBkZWJpYW4vY29udHJvbDogYWRkIHNwYXJjNjQgdG8gdGhlIGFyY2hpdGVjdHVyZXMgbGlzdC4KKwlUaGlzIGNsb3NlcyBEZWJpYW4gYnVnICM1NjAwNjIKKwkqIEJhY2twb3J0IGNvbW1pdCBmMGRmMzFlNzFhNThjNmU3OWJhNzdjMWE5ZDg0YjJmMzhkNDRiZWM3IHRvIGZpeCBGVEJGUy4KKwlUaGlzIGNsb3NlcyBEZWJpYW4gYnVnICM1NjA1MTYKKwkqIGRlYmlhbi9jb250cm9sOiBVcGRhdGUgc3RhbmRhcmRzLXZlcnNpb24gdG8gMy44LjMuCisJKiBkZWJpYW4vY29udHJvbDogTG93ZXIgcGFja2FnZSBwcmlvcml0eSB0byBvcHRpb25hbCwgbWF0Y2hpbmcKKwl0aGUgYXJjaGl2ZSBvdmVycmlkZS4KKwkqIGRlYmlhbi9jb250cm9sOiBhZGQgJHttaXNjOkRlcGVuZHN9IHRvIERlcGVuZHM6IGxpbmVzIHdoZXJlCisJYXBwcm9wcmlhdGUuCisJKiBkZWJpYW4vd2F0Y2g6IG5ldyBmaWxlLCBhbGxvd3MgYXV0b21hdGljIHRyYWNraW5nIG9mIG5ldworCXVwc3RyZWFtIHZlcnNpb25zLgorCSogZGViaWFuL3NvdXJjZS9mb3JtYXQ6IG5ldyBmaWxlLCBhZGFwdCB0byBkZWJpYW4gc291cmNlIGZvcm1hdCAicXVpbHQiCisJKiBkZWJpYW4vcnVsZXM6IGluZGVudGF0aW9uIGNsZWFudXBzOyB1c2UgZGhfdGVzdHJvb3QgYW5kIGRoX3ByZXAKKwlpbiBjbGVhbiB0YXJnZXQuCisKKzIwMTAtMDEtMjUgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CisKKwlGaXggc3B1cmlvdXMgZmFpbHVyZSBvZiBBQ19TVEFUNjQgdGVzdAorCSogYWNpbmNsdWRlLm00IChBQ19TVEFUNjQpOiBJbmNsdWRlIDxzeXMvdHlwZXMuaD4gZmlyc3QuCisKKzIwMTAtMDEtMTIgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CisKKwlEb24ndCBraWxsIHRoZSBwcm9jZXNzIHdoZW4gZGV0YWNoaW5nCisJKiBzdHJhY2UuYyAoZGV0YWNoKTogQ2FsbCBjbGVhcmJwdCB3aGVuIFRDQl9CUFRTRVQgaXMgc2V0LgorCisyMDA5LTEyLTI1ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJRGVjb2RlIGZpZnRoIGFyZ3VtZW50IG9mIG1yZW1hcCBzeXNjYWxsCisJKiBtZW0uYyAoc3lzX21yZW1hcCk6IERlY29kZSBmaWZ0aCBhcmd1bWVudC4KKwkqIGxpbnV4Lyovc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIG51bWJlciBvZiBtcmVtYXAgc3lzY2FsbCBhcmd1bWVudHMuCisKKzIwMDktMTItMjQgIENocmlzIE1ldGNhbGYgIDxjbWV0Y2FsZkB0aWxlcmEuY29tPgorCisJKiBtZW0uYyAoc3lzX21iaW5kKTogRGlzcGxheSBmaXJzdCBhcmd1bWVudCBpbiBoZXgKKworCSogbWVtLmMgKG1yZW1hcF9mbGFncyk6IEFkZCBNUkVNQVBfRklYRUQKKworMjAwOS0xMS0xNiAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KKworCU1vdmUgaTM4Ni1zcGVjaWZpYyBmaWxlcyBvdXQgb2YgY29tbW9uIGxpbnV4IGRpcgorCSogbGludXgvc3lzY2FsbGVudC5oOiBNb3ZlZCB0byAuLi4KKwkqIGxpbnV4L2kzODYvc3lzY2FsbGVudC5oOiAuLi4gaGVyZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBVcGRhdGUgaTM4NiBzeXNjYWxsZW50LmggaW5jbHVkZS4KKwkqIGxpbnV4L3NwYXJjL2dlbi5wbDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaDogTGlrZXdpc2UuCisKKzIwMDktMTEtMTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CisKKwlSZW1vdmUgc3VwcG9ydCBmb3IgcHJlLUM4OQorCSogZGVmcy5oOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBfX1NURENfXyBhbmQgUCBtYWNyb3MuCisJKiBzdHJhY2UuYzogTGlrZXdpc2UuCisKKzIwMDktMTEtMTMgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlEZWNvZGUgbW9yZSBTT0xfUEFDS0VUIHNvY2tldCBvcHRpb25zCisJKiBuZXQuYyAoc29ja3BhY2tldG9wdGlvbnMpOiBBZGQgbW9yZSBQQUNLRVRfKiBlbnRyaWVzLgorCShzeXNfZ2V0c29ja29wdCk6IERlY29kZSBQQUNLRVRfU1RBVElTVElDUy4KKwkocHJpbnRzb2Nrb3B0KTogRGVjb2RlIFBBQ0tFVF9SWF9SSU5HIGFuZCBQQUNLRVRfVFhfUklORy4KKwlQYXRjaCBieSBHYWJvciBHb21iYXMuCisKKzIwMDktMTEtMTEgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CisKKwlJZ25vcmUgZXJyb3JzIGlmIGEgdGhyZWFkIGlzIGtpbGxlZAorCSogdXRpbC5jIChjbGVhcmJwdCk6IElnbm9yZSBFU1JDSCBlcnJvci4KKworMjAwOS0xMS0wNiAgQmVybmhhcmQgUmV1dG5lci1GaXNjaGVyICA8cmVwLmRvdC5ub3BAZ21haWwuY29tPgorCisJRml4IGhhbmRsaW5nIG9mIExpbnV4IHN5c3RlbXMgd2l0aG91dCBzdHJ1Y3Qgc3RhdGZzNjQKKwkqIGFjaW5jbHVkZS5tNCAoQUNfU1RBVEZTNjQpOiBOZXcgbWFjcm8gdG8gY2hlY2sgZm9yIHN0cnVjdCBzdGF0ZnM2NC4KKwkqIGNvbmZpZ3VyZS5hYzogQ2FsbCBBQ19TVEFURlM2NC4KKwkqIGZpbGUuYyAocHJpbnRzdGF0ZnM2NCwgc3lzX3N0YXRmczY0LCBzeXNfZnN0YXRmczY0KTogQ29tcGlsZSBvbmx5CisJICBpZiBzdHJ1Y3Qgc3RhdGZzNjQgaXMgYXZhaWxhYmxlLgorCisyMDA5LTExLTA2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJRml4IGdldHNvY2tvcHQgZGVjb2Rpbmcgb24gYXJjaGl0ZWN0dXJlcyB3aGVyZSBzaXplb2YobG9uZykgPiBzaXplb2YoaW50KQorCSogbmV0LmMgKHN5c19nZXRzb2Nrb3B0KTogT3B0aW1pemUgb3V0cHV0IGEgYml0LgorCURlY29kZSBpbnRlZ2VyIGFyZ3VtZW50IHVzaW5nIHByaW50bnVtX2ludCgpLCBwYXRjaCBieSBHYWJvciBHb21iYXMuCisKKwlDaGVjayB1bW92ZSgpIHJldHVybiBjb2RlCisJKiBiam0uYyAoc3lzX3F1ZXJ5X21vZHVsZSk6IFByaW50IGlucHV0IHBhcmFtZXRlcnMgd2hlbiBlbnRlcmluZworCXN5c2NhbGwuICBGaXggaGFuZGxpbmcgb2Ygc3lzY2FsbCBlcnJvci4gIEhhbmRsZSB1bmxpa2VseSB1bW92ZSgpCisJZmFpbHVyZXMuCisJKiBpcGMuYyAodHByaW50X21zZ3Jjdik6IE5ldyBmdW5jdGlvbi4gIE1vdmUgcGFydCBvZiBtc2dyY3YgcGFyc2VyIGNvZGUKKwloZXJlLCBhZGQgY2hlY2sgdW1vdmUoKSByZXR1cm4gY29kZS4KKwkoc3lzX21zZ3NuZCk6IFByaW50IG1zcWlkIHBhcmFtZXRlciBhcyBpbnQgaW5zdGVhZCBvZiBsb25nLgorCShzeXNfbXNncmN2KTogTGlrZXdpc2UuICBVc2UgdHByaW50X21zZ3JjdigpLgorCSogcHJvY2Vzcy5jIChwcmludF9hZmZpbml0eWxpc3QpOiBDaGVjayB1bW92ZSgpIHJldHVybiBjb2RlLgorCSogc29jay5jIChzb2NrX2lvY3RsKTogSGFuZGxlIHVubGlrZWx5IHVtb3ZlKCkgZmFpbHVyZSBpbiB0aGUKKwlTSU9DR0lGQ09ORiBwYXJzZXIuCisKKwlGaXggY2hlY2sgZm9yIGxpbnV4L25ldGxpbmsuaCBvbiBMaW51eCAyLjYuMzItcmM1KworCSogY29uZmlndXJlLmFjIChBQ19DSEVDS19IRUFERVJTKTogSW4gY2hlY2sgZm9yIGxpbnV4L25ldGxpbmsuaCwgaW5jbHVkZQorCXN5cy9zb2NrZXQuaCBpbnN0ZWFkIG9mIGxpbnV4L3NvY2tldC5oIGJlZm9yZWhhbmQuCisKKzIwMDktMTEtMDQgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CisKKwlEZWNvZGUgZmFsbG9jYXRlIG9uIFBvd2VyUEMKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBEZWNvZGUgZmFsbG9jYXRlLgorCisJRmFjdG9yIG91dCBwcmludGluZyBvZiA2NGJpdCBzeXNjYWxsIGFyZ3VtZW50CisJKiBkZWZzLmggKEFMSUdONjQpOiBSZW1vdmUuCisJKHByaW50bGx2YWwpOiBEZWNsYXJlLgorCSogdXRpbC5jIChwcmludGxsdmFsKTogRGVmaW5lLgorCSogZmlsZS5jIChzeXNfcmVhZGFoZWFkKTogVXNlIHByaW50bGx2YWwuCisJKHN5c19sc2VlazY0KTogTGlrZXdpc2UuCisJKHN5c190cnVuY2F0ZTY0KTogTGlrZXdpc2UuCisJKHN5c19mdHJ1bmNhdGU2NCk6IExpa2V3aXNlLgorCShzeXNfZmFkdmlzZTY0KTogTGlrZXdpc2UuCisJKHN5c19mYWR2aXNlNjRfNjQpOiBMaWtld2lzZS4KKwkoc3lzX2ZhbGxvY2F0ZSk6IExpa2V3aXNlLgorCSogaW8uYyAoc3lzX3ByZWFkKTogTGlrZXdpc2UuCisJKHN5c19wd3JpdGUpOiBMaWtld2lzZS4KKwkoc3lzX3ByZWFkNjQpOiBMaWtld2lzZS4KKwkoc3lzX3B3cml0ZTY0KTogTGlrZXdpc2UuCisJKiBtZW0uYyAoc3lzX21tYXA2NCk6IExpa2V3aXNlLgorCisyMDA5LTExLTAzICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkByZWRoYXQuY29tPgorCisJQ29ycmVjdCBkZWNvZGluZyBvZiByZWFkYWhlYWQgYW5kIGZhZHZpY2U2NChfNjQpIG9uIFBvd2VyUEMKKwkqIGZpbGUuYyAoc3lzX3JlYWRhaGVhZCk6IEFsaWduIDY0Yml0IGFyZ3VtZW50LiAgSGFuZGxlIFBvd2VyUEM2NAorCWxpa2Ugb3RoZXIgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KKwkoc3lzX2ZhZHZpc2U2NCk6IExpa2V3aXNlLgorCShzeXNfZmFkdmlzZTY0XzY0KTogSGFuZGxlIFBvd2VyUEMgbGlrZSBBUk0uCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCAoc3lzX3JlYWRhaGVhZCk6IEFjY291bnQgZm9yIDY0Yml0CisJYXJndW1lbnQgYWxpZ25tZW50IG9uIFBvd2VyUEMzMi4KKworMjAwOS0xMC0yNyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAcmVkaGF0LmNvbT4KKworCU1haW50YWluIHNlcGFyYXRlIHByaW50IGNvbHVtbiBmb3IgZWFjaCBwcm9jZXNzCisJKiBkZWZzLmggKHN0cnVjdCB0Y3ApOiBBZGQgY3VyY29sLgorCSogc3RyYWNlLmM6IChhbGxvY190Y2IpOiBJbml0aWFsaXplIGl0LgorCSh0cmFjZSk6IFVzZSBjdXJjb2wgZnJvbSBjdXJyZW50IHByb2Nlc3MgYW5kIHNhdmUgaXQgYmVmb3JlCisJY29udGludWluZy4KKwkodHByaW50Zik6IERvbid0IG1vZGlmeSBjdXJjb2wgb24gb3V0cHV0IGVycm9yLgorCisyMDA5LTEwLTIxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2Uuc3BlYzogNC41LjE5LTEgcmVsZWFzZS4KKworMjAwOS0xMC0yMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogZmlsZS5jIChwcmludHN0YXQ2NCk6IENsZWFudXAgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKworMjAwOS0xMC0xNiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAcmVkaGF0LmNvbT4KKworCUZpeCBkZWNvZGluZyBvZiBuZXdmc3RhdGF0IHN5c2NhbGwgb24geDg2LTY0CisJKiBmaWxlLmMgKHByaW50c3RhdDY0KSBbTElOVVggJiYgWDY4XzY0XTogSWYgdHJhY2luZyBhIDY0LWJpdAorCXByb2Nlc3MgcmVkaXJlY3QgdG8gcHJpbnRzdGF0LgorCUZpeGVzIFJIIzUyOTMxNiAiRmllbGQgdmFsdWVzIHNob3duIGZvciAibmV3ZnN0YXRhdCIgc3lzdGVtCisJY2FsbCBhcmUgaW5jb3JyZWN0IgorCisyMDA5LTEwLTEyICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0hFQURFUlMpOiBSZW1vdmUgYXNtL3JlZy5oLgorCisyMDA5LTEwLTEyICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJc3BhcmMvbGludXg6IFJld3JpdGUgdG8gdXNlIGFzbS9wdHJhY2UuaAorCVRoZSBjdXJyZW50IHNwYXJjL2xpbnV4IGNvZGUgdXNlcyBhc20vcmVnLmgsIGJ1dCByZWNlbnQgTGludXgga2VybmVscworCWRyb3BwZWQgdGhhdCBoZWFkZXIgY29tcGxldGVseS4gIFNvIHN3aXRjaCBvdmVyIHRvIHRoZSBwdHJhY2UgaGVhZGVycworCWFzIHRob3NlIHNob3VsZCBzdGljayBhcm91bmQgaW5kZWZpbml0ZWx5IGFzIHBhcnQgb2YgdGhlIEFCSS4KKworCSogZGVmcy5oIFtMSU5VWFNQQVJDXSAoVV9SRUdfRzEsIFVfUkVHX08wLCBVX1JFR19PMSk6IERlZmluZS4KKwkqIHByb2Nlc3MuYzogRHJvcCBhc20vcmVncy5oIGluY2x1ZGUuCisJW1NQQVJDIHx8IFNQQVJDNjRdIChjaGFuZ2Vfc3lzY2FsbCk6IENoYW5nZSBzdHJ1Y3QgcmVncyB0byBzdHJ1Y3QgcHRfcmVncy4KKwkqIHNpZ25hbC5jOiBEcm9wIGFzbS9yZWdzLmggaW5jbHVkZS4KKwkobV9zaWdpbmZvX3QpOiBVbmlmeSBbU1BBUkMgfHwgU1BBUkM2NF0gYW5kIFtNSVBTXS4KKwlbU1BBUkMgfHwgU1BBUkM2NF0gKHN5c19zaWdyZXR1cm4pOiBDaGFuZ2Ugc3RydWN0IHJlZ3MgdG8gc3RydWN0IHB0X3JlZ3MuCisJKiBzeXNjYWxsLmM6IERyb3AgYXNtL3JlZ3MuaCBpbmNsdWRlLgorCVtTUEFSQyB8fCBTUEFSQzY0XSAoaW50ZXJuYWxfc3lzY2FsbCwgZ2V0X3Njbm8sIGdldF9lcnJvciwgZm9yY2VfcmVzdWx0LAorCXN5c2NhbGxfZW50ZXIpOiBDaGFuZ2Ugc3RydWN0IHJlZ3MgdG8gc3RydWN0IHB0X3JlZ3MuCisJKiB1dGlsLmM6IERyb3AgYXNtL3JlZ3MuaCBpbmNsdWRlLgorCShfaGFja19zeXNjYWxsNSwgX3B0cmFjZSk6IERlbGV0ZS4KKwlbU1BBUkMgfHwgU1BBUkM2NF0gKGdldHBjLCBwcmludGNhbGwsIGFyZ19zZXR1cF9zdGF0ZSk6IENoYW5nZQorCXN0cnVjdCByZWdzIHRvIHN0cnVjdCBwdF9yZWdzLgorCisyMDA5LTEwLTExICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBtYWtlLWRpc3Q6IENsZWFuIHVwLgorCisJKiBjb25maWd1cmUuYWM6IFVzZSBBQ19DT05GSUdfQVVYX0RJUihbLl0pLgorCisyMDA5LTEwLTA5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBtYWtlLWRpc3Q6IE5ldyBzY3JpcHQgZm9yIHByZXBhcmluZyByZWxlYXNlIHRhcmJhbGxzLgorCisJKiBnaXQtc2V0LWZpbGUtdGltZXM6IEltcG9ydCBmcm9tIHJzeW5jLgorCisJKiBNYWtlZmlsZS5hbSBbTUFJTlRBSU5FUl9NT0RFXTogRGVmaW5lIGFuZCBleHBvcnQgVEFSX09QVElPTlMuCisKKzIwMDktMTAtMDggIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlFbmhhbmNlIG1zZ3NuZCgpIHBhcnNlcgorCSogaXBjLmMgKHRwcmludF9tc2dzbmQpOiBOZXcgZnVuY3Rpb24uICBNb3ZlIG1zZ3NuZCBwYXJzZXIgY29kZSBoZXJlLAorCWFkZCBjaGVjayBmb3IgdW1vdmUoKSByZXR1cm4gY29kZS4KKwkoc3lzX21zZ3NuZCk6IFVzZSB0cHJpbnRfbXNnc25kKCkuCisKKwkqIE5FV1M6IFVwZGF0ZSBmb3IgNC41LjE5IHJlbGVhc2UuCisKKwlFbmhhbmNlIHNlbW9wKCkvc2VtdGltZWRvcCgpIHNlbWJ1ZiBwYXJzZXIKKwkqIGlwYy5jICh0cHJpbnRfc2VtYnVmKTogTmV3IGZ1bmN0aW9uLiBNb3ZlIHNlbWJ1ZiBwYXJzZXIgY29kZSBoZXJlLAorCWFkZCBhYmJyZXYoKSBzdXBwb3J0LgorCShzeXNfc2Vtb3AsIHN5c19zZW10aW1lZG9wKTogVXNlIHRwcmludF9zZW1idWYoKS4KKworMjAwOS0xMC0wOCAgSmFrdWIgQm9ndXN6ICA8cWJvb3NoQHBsZC1saW51eC5vcmc+CisKKwlBZGQgcHJldHR5IHByaW50aW5nIG9mIHNlbWJ1ZiBhcmd1bWVudCB0byBzZW1vcCgpIGFuZCBzZW10aW1lZG9wKCkKKwkqIGlwYy5jIChzZW1vcF9mbGFncyk6IE5ldyB4bGF0IHN0cnVjdHVyZS4KKwkoc3lzX3NlbW9wLCBzeXNfc2VtdGltZWRvcCk6IEFkZCBwcmV0dHkgcHJpbnRpbmcgb2Ygc2VtYnVmIGFyZ3VtZW50LgorCisyMDA5LTEwLTA4ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJQWRkIHN1cHBvcnQgZm9yIExpbnV4L25vLW1tdSB3aXRoIHZmb3JrCisJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0ZVTkNTKTogQWRkIGZvcmsuCisJKiBzdHJhY2UuYyAoc3RyYWNlX3Zmb3JrZWQpOiBEZWZpbmUuCisJKHN0YXJ0dXBfY2hpbGQpOiBEbyBub3QgcmFpc2UgU0lHU1RPUCBpZiB2Zm9ya2VkLgorCSh0cmFjZSk6IFNraXAgZmlyc3QgZXhlYyB3aGVuIHN0YXJ0aW5nIHVwIGFmdGVyIHZmb3JrZWQuCisJKiBzeXNjYWxsLmMgW0JGSU5dIChnZXRfc2Nubyk6IERyb3Agd2FpdGV4ZWMgY2hlY2tzLgorCisJQXZvaWQgbWFsbG9jKDApIGluIGdldGRlbnRzIHBhcnNlcnMKKwlPbiBlbmQgb2YgZGlyZWN0b3J5LCBnZXRkZW50cyByZXR1cm5zIDAuICBUaGlzIHJldHVybiB2YWx1ZSBpcyB1c2VkIHRvCisJdGhlbiB0cnkgYW5kIGRvIG1hbGxvYygwKSwgYnV0IG9uIHNvbWUgc3lzdGVtcyB0aGlzIHdpbGwgYWx3YXlzIHJldHVybgorCU5VTEwuICBTaW5jZSB0aGUgY29kZSB3b24ndCByZWFkIHRoZSBwb2ludGVyIGluIHF1ZXN0aW9uIGlmIGxlbiBpcyAwLAorCXRoZW4gZG9uJ3QgYm90aGVyIGNhbGxpbmcgbWFsbG9jKDApIGFuZCBzZXQgdGhlIHBvaW50ZXIgdG8gTlVMTCBvdXJzZWxmLgorCSogZmlsZS5jIChzeXNfZ2V0ZGVudHMsIHN5c19nZXRkZW50czY0KTogQXZvaWQgbWFsbG9jKDApIGNhbGwuCisKKzIwMDktMTAtMDcgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CisKKwlBZGQgc3lzX25hbm9zbGVlcCgpIHByb3RvdHlwZSBmb3Igc3BhcmMKKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCAoc3lzX25hbm9zbGVlcCk6IE5ldyBwcm90b3R5cGUuCisJUmVwb3J0ZWQgYnkgRnJlZGVyaWsgU2Now7xsZXIuCisKKwlTaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGltcGxpY2l0IGNhc3QgZnJvbSBwb2ludGVyIHRvIGludGVnZXIKKwkqIHV0aWwuYyAoZG9fcHRyYWNlKTogQ2FzdCBwdHJhY2UoKSA0dGggYXJnIHRvIGxvbmcuCisJKHB0cmFjZV9yZXN0YXJ0KTogRHJvcCB2b2lkKiBjYXN0IG9uIHB0cmFjZSgpIDR0aCBhcmcuCisKKwlJZ25vcmUgLmdkYiBmaWxlcyBmcm9tIEZMQVQgdG9vbGNoYWlucworCSogLmdpdGlnbm9yZTogQWRkIC8qLmdkYi4KKworCSogY29uZmlndXJlLmFjIChBQ19DSEVDS19GVU5DUyk6IFNvcnQgYW5kIGV4cGFuZC4KKworCUJsYWNrZmluOiBVcGRhdGUgaW9jdGwvc3lzY2FsbCBsaXN0cworCSogbGludXgvYmZpbi9pb2N0bGVudC5oOiBTeW5jIGxpc3Qgd2l0aCBsYXRlc3Qga2VybmVsIHNvdXJjZXMuCisJKiBsaW51eC9iZmluL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwlpb2N0bHNvcnQ6IENoZWNrIHBwYyBob3N0cyB0b28KKwkqIGxpbnV4L2lvY3Rsc29ydC5jOiBDaGVjayBmb3IgX19wb3dlcnBjX18uCisKKzIwMDktMTAtMDcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHJlZGhhdC5jb20+CisKKwlGaXggYnVpbGQgb24gaWE2NAorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBmb3IgYWRkaXRpb24gb2YgYWNjZXB0NCBzeXNjYWxsCisJaW4gLi4vc3lzY2FsbGVudC5oLgorCisyMDA5LTEwLTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2Uuc3BlYyAoJWRvYyk6IEFkZCBDaGFuZ2VMb2ctQ1ZTLgorCisJKiBNYWtlZmlsZS5hbSAoc3JwbSk6IE5ldyBwaG9ueSB0YXJnZXQuCisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIENoYW5nZUxvZy4KKwkoJChzcmNkaXIpL0NoYW5nZUxvZyk6IE5ldyB0YXJnZXQsIHJlcGxhY2VzIGdlbi1jaGFuZ2Vsb2cgcGhvbnkgdGFyZ2V0LgorCVB1dCBpdCBpbnNpZGUgW01BSU5UQUlORVJfTU9ERV0uCisKKzIwMDktMTAtMDYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIE5FV1M6IFVwZGF0ZSBmb3IgNC41LjE5IHJlbGVhc2UuCisKKzIwMDktMTAtMDUgIEZyZWRlcmlrIFNjaMO8bGVyICA8ZnNAZGViaWFuLm9yZz4KKworCVByZXBhcmUgZGViaWFuLyogZmlsZXMgZm9yIHJlbGVhc2UKKwkqIGRlYmlhbi9ydWxlczogRG8gbm90IHNoaXAgQ2hhbmdlTG9nIGFueW1vcmUuCisJKiBkZWJpYW4vY29udHJvbDogVXBkYXRlIHRvIERlYmlhbiBzdGFuZGFyZHMgdmVyc2lvbiAzLjguMSwgYW5kIHJlbW92ZQorCVJvbGFuZCBmcm9tIHRoZSBNYWludGFpbmVycyBsaXN0LiAgVGhpcyBjbG9zZXMgRGViaWFuIGJ1ZyAjNTIxNDU4LgorCSogZGViaWFuL2NoYW5nZWxvZzogRG9jdW1lbnQgY2hhbmdlcyBhbmQgcHJlcGFyZSBmb3IgcmVsZWFzZS4KKworMjAwOS0xMC0wNSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogZGVmcy5oIFtIUFBBXTogTG93ZXIgTUFYX0FSR1MgZnJvbSAzMiB0byA2LgorCisJKiBpcGMuYyBbTElOVVhdIChzeXNfc2htYXQpOiBIUFBBIGRvZXMgbm90IHVzZSBhbiBJUEMgbXVsdGlwbGV4ZXIuCisJQmFzZWQgb24gcGF0Y2ggZnJvbSBDYXJsb3MgTydEb25lbGwuCisKKzIwMDktMTAtMDUgIENhcmxvcyBPJ0RvbmVsbCAgPGNhcmxvc0BzeXN0ZW1oYWx0ZWQub3JnPgorCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogVXBkYXRlIHN5c2NhbGxzLgorCUJhc2VkIG9uIHdvcmsgYnkgS3lsZSBNY01hcnRpbiBhbmQgSGVsZ2UgRGVsbGVyLgorCisJRml4IFNBX0hBTkRMRVIgZnVuY3Rpb24gcG9pbnRlciBjb21wYXJpc29ucyBmb3IgaHBwYQorCSogc2lnbmFsLmMgKHN5c19zaWdhY3Rpb24pOiBDYXN0IFNBX0hBTkRMRVIgZnVuY3Rpb24gcG9pbnRlcnMgdG8gbG9uZy4KKwkoc3lzX3J0X3NpZ2FjdGlvbik6IExpa2V3aXNlLgorCisyMDA5LTEwLTA1ICBFZGdhciBFLiBJZ2xlc2lhcyAgPGVkZ2FyLmlnbGVzaWFzQGdtYWlsLmNvbT4KKworCUNSSVM6IENvcnJlY3QgZmlyc3QgYXJndW1lbnQgdG8gdXBlZWsoKQorCVRoaXMgY29tcGxlbWVudHMgY29tbWl0IGVhMGU2ZTgwMjYwZDJiMWI3YWQ0MDI4MjAxMmIwZTQ3ODY5YmNkZGYuCisJKiBzeXNjYWxsLmMgW0NSSVNWMTAgfHwgQ1JJU1YzMl0gKHN5c2NhbGxfZml4dXAsIHN5c2NhbGxfZW50ZXIpOiBQYXNzCisJdGNwIHBvaW50ZXIgaW5zdGVhZCBvZiBwaWQgdG8gdXBlZWsoKS4KKwkqIHV0aWwuYyBbQ1JJU1YxMCB8fCBDUklTVjMyXSAocHJpbnRjYWxsKTogTGlrZXdpc2UuCisKKzIwMDktMTAtMDUgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHNpZ25hbC5jIChkb19zaWduYWxmZCk6IEZpeCB0eXBvIGluIG91dHB1dCBmb3JtYXQuCisKKzIwMDktMDktMjEgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIE1ha2VmaWxlLmFtIChnZW5fY2hhbmdlbG9nX3N0YXJ0X2RhdGUpOiBGaXggZGF0ZS4KKworMjAwOS0wOS0xOSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCVByZXBhcmUgZm9yIDQuNS4xOSByZWxlYXNlCisJKiBORVdTOiBVcGRhdGUgZm9yIDQuNS4xOSByZWxlYXNlLgorCSogY29uZmlndXJlLmFjOiBWZXJzaW9uIDQuNS4xOS4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS4xOS0xLgorCSogc3RyYWNlLnNwZWM6IDQuNS4xOS0xLgorCisJVXBkYXRlIGRlYmlhbi8qIHRvIDQuNS4xOC0xCisJKiBkZWJpYW4vY2hhbmdlbG9nOiBVcGRhdGUgdG8gNC41LjE4LTEuCisJKiBkZWJpYW4vY29tcGF0OiBTZXQgY29tcGF0aWJpbGl0eSBsZXZlbCB0byA3LgorCSogZGViaWFuL2NvbnRyb2wgKEJ1aWxkLURlcGVuZHMpOiBVcGRhdGUgZGViaGVscGVyIHJlcXVpcmVtZW50LgorCShzdHJhY2UsIHN0cmFjZTY0KTogQWRkIFNlY3Rpb24gYW5kIFByaW9yaXR5IHRhZ3MuCisKKzIwMDktMDktMTkgIEtpcmlsbCBBLiBTaHV0ZW1vdiAgPGtpcmlsbEBzaHV0ZW1vdi5uYW1lPgorCisJRml4IGZhZHZpc2U2NCBkZWNvZGluZyBvbiBBUk0KKwkqIGZpbGUuYyAoc3lzX2ZhZHZpc2U2NF82NCkgW0FSTV06IEZpeCBhcmd1bWVudCBvcmRlcmluZy4KKworMjAwOS0wOS0xOCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeCBmb2xsb3cgZm9yay92Zm9yayBvbiBMaW51eCBBUk0gT0FCSQorCV9fTlJfU1lTQ0FMTF9CQVNFIGVpcyAwIGZvciBFQUJJIGFuZCBpcyAweDkwMDAwMCBmb3IgT0FCSS4KKwkqIHByb2Nlc3MgKGNoYW5nZV9zeXNjYWxsKSBbTElOVVggJiYgQVJNXTogTWFzayBvZmYgdGhlIGhpZ2ggb3JkZXIgYml0cworCXdoZW4gY2hhbmdpbmcgc3lzY2FsbC4KKworCVJldmlld2VkLWJ5OiBLaXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbEBzaHV0ZW1vdi5uYW1lPgorCisyMDA5LTA5LTE4ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJTWFyayBzaGVsbCBzY3JpcHRzIGFzIGV4ZWN1dGFibGUKKworCUlnbm9yZSBpb2N0bHNvcnQgaGVscGVyIHByb2dyYW0KKwkqIC5naXRpZ25vcmU6IEFkZCBpb2N0bHNvcnQuCisKKwlsaW51eC9lcnJubzogQWRkIEVSRktJTEwKKwkqIGxpbnV4L2Vycm5vZW50Lmg6IENoYW5nZSBFUlJOT18xMzIgdG8gRVJGS0lMTCBhY2NvcmRpbmcgdG8gZXJybm8gMTMyCisJZGVmaW5pdGlvbiBpbnRyb2R1Y2VkIGluIExpbnV4IDIuNi4zMS4KKworMjAwOS0wOS0wMSAgUGFvbG8gQm9uemluaSAgPHBib256aW5pQHJlZGhhdC5jb20+CisKKwlBZGQgYWNjZXB0NCBzb2NrZXRjYWxsCisJVGhpcyBzZWNvbmQgcGF0Y2ggaW4gdGhlIHNlcmllcyBhZGRzIHN1cHBvcnQgZm9yIGFjY2VwdDQgYXMgYSBzb2NrZXRjYWxsCisJc3ViLWNhbGwuICBCZXNpZGVzIHRoZSBuZWVkIHRvIHJlbnVtYmVyIGFsbCBzeXN0ZW0gY2FsbHMsIHRoaXMgcG9zZXMKKwlubyBwcm9ibGVtLgorCVRlc3RlZCBvbiBpNjg2LgorCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBBZGQgYWNjZXB0NCBzb2NrZXRjYWxsLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgogCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KIAotCSogc2lnbmFsLmMgW0xJTlVYICYmIEkzODZdOiBQcm92aWRlIFNBX1JFU1RPUkVSIGNvbnN0YW50IGlmIG5vdAotCWRlZmluZWQuICBJZiB0aGUgYml0IGlzIHNldCwgcHJpbnQgdGhlIHNhX3Jlc3RvcmVyIGZpZWxkIG9mIHNpZ2FjdGlvbi4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCAoU1lTX3N1Yl9hY2NlcHQ0KTogRGVjbGFyZS4KKwkoU1lTX3NvY2tldF9uc3ViY2FsbHMpOiBVcGRhdGUuCisJKiBsaW51eC9zeXNjYWxsLmg6IExpa2V3aXNlLgogCi0JKiBtZW0uYzogQWRkIHN5c197Z2V0LHNldH1fdGhyZWFkX2FyZWEuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXBkYXRlIHRoZSB0YWJsZSBmb3IgdGhlc2UuCi0JKiBsaW51eC9kdW1teS5oIChzeXNfbW9kaWZ5X2xkdCk6IERlZmluZSBvbmx5ICNpZm5kZWYgSTM4Ni4KLQkoc3lzX2dldF90aHJlYWRfYXJlYSwgc3lzX3NldF90aHJlYWRfYXJlYSk6IE5ldyBtYWNyb3MgI2lmbmRlZiBJMzg2LgorCVJlcGxhY2UgeDg2LTY0IHBhY2NlcHQgd2l0aCBhY2NlcHQ0CisJVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBwYWNjZXB0IHN5c2NhbGwgdG8gYWNjZXB0NCBmb3IgeDg2LTY0LCBzaW5jZQorCXRoZSBmb3JtZXIgd2FzIGRyb3BwZWQgaW4gTGludXgga2VybmVsIGNvbW1pdCB2Mi42LjI3LXJjNy0xNC1nMmQ0YzgyNi4KKwlBdCB0aGUgc2FtZSB0aW1lLCBpdCBhZGRzIHN1cHBvcnQgZm9yIHByZXR0eSBwcmludGluZyBpdHMgYXJndW1lbnRzLgogCi0JKiBjb25maWd1cmUuaW46IENoZWNrIGZvciBsaW51eC94YXR0ci5oIGFuZCBsaW51eC9mdXRleC5oIGhlYWRlcnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBzeXNfKiBkZWNscyBmb3IgbmV3IHN5c2NhbGxzIGdldHBtc2csIHB1dHBtc2csCi0JcmVhZGFoZWFkLCBzZW5kZmlsZTY0LCBzZXR4YXR0ciwgZnNldHhhdHRyLCBnZXR4YXR0ciwgZmdldHhhdHRyLCBpbnQKLQlsaXN0eGF0dHIsIGZsaXN0eGF0dHIsIHJlbW92ZXhhdHRyLCBmcmVtb3ZleGF0dHIsIHNjaGVkX3NldGFmZmluaXR5LAotCXNjaGVkX2dldGFmZmluaXR5LCBmdXRleC4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXBkYXRlIHRoZSB0YWJsZS4KLQkqIGlvLmM6IEFkZCBzeXNfc2VuZGZpbGU2NC4KLQkqIGZpbGUuYzogQWRkIHN5c19yZWFkYWhlYWQsIHN5c18qeGF0dHIuCi0JKiBwcm9jZXNzLmM6IEFkZCBzeXNfZnV0ZXgsIHN5c18qYWZmaW5pdHkuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBSZXBsYWNlIHBhY2NlcHQgd2l0aCBhY2NlcHQ0LAorCWhvb2sgaW4gc3lzX2FjY2VwdDQuCisJKiBuZXQuYyAoc3lzX2FjY2VwdCk6IExlYXZlIGEgc21hbGwgc3R1YiBjYWxsaW5nIHRoZSBuZXcuLi4KKwkoZG9fYWNjZXB0KTogLi4uIGZ1bmN0aW9uLCB3aGljaCBhbHNvIGFkZHMgYSBmbGFnc19hcmcgYXJndW1lbnQuCisJKHN5c19hY2NlcHQ0KTogTmV3LgogCi0JKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IERlZmluZSB0byAyNTYgb24gYWxsIG1hY2hpbmVzLgotCShTWVNfaXBjX3N1YmNhbGwpOiBBbHdheXMgU1lTX3NvY2tldF9zdWJjYWxsICsgU1lTX3NvY2tldF9uc3ViY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUgZm9yIHNvY2tldCBhbmQgaXBjIHN1YmNhbGxzLgorMjAwOS0wOC0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAcmVkaGF0LmNvbT4KIAotMjAwMi0xMS0wOSAgSGVpa28gQ2Fyc3RlbnMgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisJWmVyby1leHRlbmQgMzItYml0IGFkZHJlc3NlcyB3aGVuIHByaW50aW5nIGFyZ3YgYXJyYXkuCisJKHByaW50YXJndik6IFplcm8tZXh0ZW5kIDMyLWJpdCBhZGRyZXNzZXMuCisJRml4ZXMgUkgjNTE5NDgwICI2NC1iaXQgc3RyYWNlIGlzIGxhenkgb24gZXhlY3ZlIG9mIDMyLWJpdAorCXByb2Nlc3MiLgogCi0JQnVnZml4IGZvciBzMzkwL3MzOTB4OgotCSogc3lzY2FsbC5jOiBGaXhlZCBzY25vIGRlcml2YXRpb24gZm9yIHMzOTAvczM5MHguCisyMDA5LTA4LTEyICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkByZWRoYXQuY29tPgogCi0yMDAyLTExLTA2ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgorCUFkZCBtb3JlIGZ1dGV4IGRlY29kaW5nLgorCSogcHJvY2Vzcy5jIChGVVRFWF9XQUlUX1JFUVVFVUVfUEksIEZVVEVYX0NNUF9SRVFVRVVFX1BJKQorCShGVVRFWF9QUklWQVRFX0ZMQUcsIEZVVEVYX0NMT0NLX1JFQUxUSU1FKTogRGVmaW5lLgorCShmdXRleG9wcyk6IEFkZCBlbnRyaWVzIGZvciB0aGVtLgorCShzeXNfZnV0ZXgpOiBEZWNvZGUgRlVURVhfQ01QX1JFUVVFVUVfUEkgYW5kCisJRlVURVhfV0FJVF9SRVFVRVVFX1BJLgogCi0JTWVyZ2VkIHBhdGNoIGZyb20gU3RldmVuIEouIEhpbGwgPHNqaGlsbEByZWFsaXR5ZGlsdXRlZC5jb20+Ci0JdG8gYWxsb3cgdGhlIGNvbXBpbGF0aW9uIG9mIGEgbmF0aXZlIE1JUFMgc3RyYWNlLgorMjAwOS0wNy0wOCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KIAotMjAwMi0xMS0wNiAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KKwlHZW5lcmF0ZSBDaGFuZ2VMb2cgZnJvbSBnaXQgbG9nCisJKiAuZ2l0aWdub3JlOiBBZGQgQ2hhbmdlTG9nCisJKiBDaGFuZ2VMb2c6IFJlbmFtZSB0byBDaGFuZ2VMb2ctQ1ZTLgorCSogTWFrZWZpbGUuYW0gKGdlbi1jaGFuZ2Vsb2cpOiBOZXcgcnVsZS4KKwkoZGlzdC1ob29rKTogRGVwZW5kIG9uIGl0LgorCShFWFRSQV9ESVNUKTogQWRkIENoYW5nZUxvZy1DVlMuCisJKiBSRUFETUUtaGFja2luZzogRGVzY3JpYmUgY2hhbmdlcy4KKwkqIGdpdGxvZy10by1jaGFuZ2Vsb2c6IEltcG9ydCBmcm9tIGdudWxpYi4KIAotCUZyb20gTWFydHkgTGVpc25lciA8bGVpc25lckByb2NoZXN0ZXIucnIuY29tPiwKLQlyZXdyaXR0ZW4gYnkgbWx1ZHZpZzoKLQkqIHN0cmFjZS5jIChub3RfZmFpbGluZ19vbmx5KTogTmV3LgotCSh1c2FnZSk6IEFkZGVkIC16IHN3aXRjaCBkZXNjcmlwdGlvbi4KLQkobWFpbik6IEFkZGVkIC16IHN3aXRjaCBwYXJzaW5nIHRvIG5vdF9mYWlsaW5nX29ubHkgdmFyaWFibGUuCi0JKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBBZGRlZCBub3RfZmFpbGluZ19vbmx5IGhhbmRsaW5nLgogCi0yMDAyLTEwLTA4ICBIZWlrbyBDYXJzdGVucyA8aGVpa28uY2Fyc3RlbnNAZGUuaWJtLmNvbT4KLQotCU1pc3NpbmcgY29tcGxldGUgY2hhbmdlbG9nIGZvciAyMDAyLTEwLTA3IGNvbW1pdDoKLQkqIE1ha2VmaWxlLmluOiBBZGRlZCBsaW51eC9zMzkwLCBsaW51eC9zMzkweCB0byBBTExfU1VCRElSUy4KLQkqIGFjY29uZmlnLmg6IE5ldyBkZWZpbmUgZm9yIHMzOTB4LgotCSogY29uZmlnLnN1YjogQWRkZWQgbWlzc2luZyBkZWZpbmUgZm9yIHMzOTAgYW5kIG5ldyBvbmUgZm9yIHMzOTB4LgotCSogY29uZmlndXJlLmluOiBBZGRlZCBuZXcgZGVmaW5lIGZvciBzMzkweC4KLQkqIGZpbGUuYzogQWRkZWQgbWlzc2luZyAjdW5kZWYgZGlyZW50NjQgYW5kIG5ldyBkZWZpbmVzIGZvciBzMzkweC4KLQkqIGxpbnV4L3MzOTA6IE5ldyBkaXJlY3RvcnkuCi0JKiBsaW51eC9zMzkwL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3MzOTAvZXJybm9lbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkwL2lvY3RsZW50Lmg6IE5ldyBmaWxlLgotCSogbGludXgvczM5MC9zaWduYWxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkweDogTmV3IGRpcmVjdG95LgotCSogbGludXgvczM5MHgvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgotCSogbGludXgvczM5MHgvZXJybm9lbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3MzOTB4L3NpZ25hbGVudC5oOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZGVkIHN5c19taW5jb3JlKCkgcHJvdG90eXBlIGFuZCBhZGRlZCBuZXcKLQlzMzkweCBkZWZpbmVzLgotCSogcHJvY2Vzcy5jOiBBZGRlZCBzMzkweCBkZWZpbmVzLgotCShjaGFuZ2Vfc3lzY2FsbCk6IENoYW5nZWQgaGFuZGxpbmcgZm9yIHMzOTAuCi0JKHNldGFyZyk6IEFkZGVkIG1pc3NpbmcgczM5MC9zMzkweCBjb2RlIGluIHNldGFyZygpLgotCSogc2lnbmFsLmM6IEFkZGVkIHMzOTB4IGRlZmluZS4KLQkoc3lzX3NpZ3JldHVybik6IEJ1Z2ZpeCBpbiBzMzkwL3MzOTB4IGNvZGUgKHdyb25nIG51bWJlciBvZgotCWFyZ3VtZW50cyB0byBzcHJpbnRzaWdtYXNrKCkpLgotCSogc3RyZWFtLmMgKGludGVybmFsX3N0cmVhbV9pb2N0bCk6IENoYW5nZWQgaW50IGNhc3QgdG8gbG9uZyBjYXN0LAotCXNpbmNlIHByaW50c3RyKCkgZXhwZWN0cyBhIGxvbmcuCi0JKiBzeXNjYWxsLmMgKGRlY29kZV9zdWJjYWxsKTogQ2hhbmdlZCBzZXZlcmFsIHZhcmlhYmxlcyB0byBiZSBsb25nCi0JaW5zdGVhZCBvZiBpbnQgdG8gbWF0Y2ggNjQgYml0IHJlcXVpcmVtZW50cy4gQWRkZWQgczM5MHggZGVmaW5lcy4KLQkoc3lzY2FsbF9lbnRlcik6IENoYW5nZWQgdXBlZWsoKSBjYWxsIHRvIG1hdGNoIHMzOTAgYW5kIHMzOTB4Ci0JcmVxdWlyZW1lbnRzLgotCSogdXRpbC5jOiBBZGRlZCBzMzkweCBkZWZpbmVzLgotCi0yMDAyLTEwLTA3ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgotCi0JTWVyZ2VkIHMzOTB4IHBvcnQgYnkgSGVpa28gQ2Fyc3RlbnMgPEhlaWtvLkNhcnN0ZW5zQGRlLmlibS5jb20+Ci0JYW5kIGJ1Z2ZpeGVzIHRvIHMzOTAgYnkgRC5KLiBCYXJyb3cuCi0KLTIwMDItMDktMjMgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+Ci0KLQlNZXJnZWQgeDg2LTY0IHBvcnQgYnkgQW5kaSBLbGVlbiA8YWtAc3VzZS5kZT4KLQlhbmQgTWljaGFsIEx1ZHZpZyA8bWx1ZHZpZ0BzdXNlLmN6PgotCSogTWFrZWZpbGUuaW46IE5ldyB0YXJnZXQgJ2hlYWRlcnMnLiBGYWlsdXJlIGlnbm9yZWQuCi0JKiBhY2NvbmZpZy5oOiBOZXcgZGVmaW5lcyBmb3IgeDg2LTY0LgotCSogY29uZmlndXJlLmluOiBEaXR0by4KLQkqIGRlZnMuaDogRGl0dG8uCi0JKiBmaWxlLmM6IERpdHRvLgotCSogc2lnbmFsLmM6IERpdHRvLgotCSogcHJvY2Vzcy5jOiBBZGRlZCBzdXBwb3J0IGZvciB4ODYtNjQuCi0JKiB1dGlsLmM6IERpdHRvLgotCSogc3lzY2FsbC5jOiBEaXR0byArIGFkZGVkIGF1dG9tYXRpYyBwZXJzb25hbGl0eSBzd2l0Y2hpbmcuCi0JKiBsaW51eC9zeXNjYWxsLmg6IERpdHRvLgotCSogbGludXgveDg2XzY0OiBOZXcgZGlyZWN0b3J5LgotCSogbGludXgveDg2XzY0L01ha2VmaWxlLmluOiBOZXcgZmlsZS4KLQkqIGxpbnV4L3g4Nl82NC9nZW50YWIucGw6IERpdHRvLgotCSogbGludXgveDg2XzY0L2kzODYtaGVhZGVycy5kaWZmOiBEaXR0by4KLQkqIGxpbnV4L3g4Nl82NC9tYWtlaGVhZGVycy5zaDogRGl0dG8uCi0JKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBEaXR0by4KLQkqIG1lbS5jIChwcmludF9tbWFwKTogQWx3YXlzIHByaW50IGFyZ1s0XSBhcyBpbnQuCi0KLTIwMDItMDktMjMgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+Ci0KLQkqIGNvbmZpZ3VyZS5pbjogRml4IHJlZ3VsYXIgZXhwcmVzc2lvbnMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZGVkIG1pc3NpbmcgYnJhY2VzIGluIHByb3RvdHlwZSBvZgotCXN5c19nZXRkZW50czY0KCkuCi0JKiBmaWxlLmM6IFVzZSAnI2lmZGVmIExJTlVYJyBpbnN0ZWFkIG9mICcjaWZkZWYgbGludXgnLgotCShzdHJ1Y3QgZmlsZWZsYWdzKTogTWFkZSBleHRlcm4gdG8gaW5oaWJpdCBjb21waWF0aW9uIHdhcm5pbmdzLgotCShzeXNfZ2V0ZGVudHM2NCk6IE1lcmdlZCBMSU5VWCBhbmQgU1ZSNCBwYXJ0LgotCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IFNwbGl0IG11bHRpbGluZSBzdHJpbmcgaW50byB0d28gZGlzdGluY3QKLQlzdHJpbmdzLgotCi0yMDAyLTA1LTI0ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmVhbS5oLCBuZXQuaDogQXZvaWQgcG9zc2libGUgaW5maW5pdGUgbG9vcCBjYXVzZWQgYnkKLQl1bnNpZ25lZCBhcml0aG1ldGljIGluIHByZWNlZWRpbmcgY2hhbmdlLgotCi0yMDAyLTA1LTIzICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIGFjY29uZmlnLmg6IEFkZCBIQVZFX09QVEhEUiBhbmQgSEFWRV9UX09QVEhEUiBkZWZpbmVzLgotCi0JKiBhY2xvY2FsLm00OiBBZGQgdGVzdHMgZm9yIHN0cnVjdCBvcHRoZHIgaW4gc3lzL3NvY2tldC5oIGFuZAotCXN0cnVjdCB0X29wdGhkciBpbiBzeXMvdGl1c2VyLmgsIGRlZmluZSBIQVZFX09QVEhEUiBhbmQgSEFWRV9UX09QVEhEUgotCWlmIGZvdW5kLgotCi0JKiBjb25maWd1cmUuaW46IHVzZSB0ZXN0cyBmb3Igc3RydWN0IG9wdGhkciBhbmQgc3RydWN0IHRfb3B0aGRyLgotCi0JKiBkZWZzLmg6IGFkZCBuZXcgZnVuY3Rpb24gcHJpbnRfc29ja19vcHRtZ210LgotCi0JKiBpby5jOiBhZGQgaGFjayB0aGF0IGxldHMgaW9jdGwgZGVjb2RlIGZ1bmN0aW9ucyBzZXQgYXV4aWxsaWFyeQotCXN0cmluZyByZXR1cm4uCi0KLQkqIHN0cmVhbS5jOiBiZXR0ZXIgZGVjb2RpbmcgZm9yIHRpbW9kIGlvY3Rscy4KLQotCSogbmV0LmM6IGFkZCBmdW5jdGlvbiBwcmludF9zb2NrX29wdG1nbXQsIHVzZWQgYnkgdGltb2QgaW9jdGwKLQlkZWNvZGluZyBmdW5jdGlvbnMgaW4gc3RyZWFtLmMuCi0KLTIwMDItMDUtMjMgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KLQotCSogYWNjb25maWcuaDogTWFrZSBhdXRvaGVhZGVyIGhhcHB5IGFib3V0IExpbnV4L1N1cGVySAotCi0yMDAyLTA1LTIzICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmFjZS5jOiBHZXQgcmlkIG9mIHdhcm5pbmcgaWYgbm90IHVzaW5nIFBPTExfSEFDSwotCi0yMDAyLTA1LTIyICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIG5ldC5jOiBTaW1wbGlmeSB7Z2V0LHNldH1zb2Nrb3B0LCBkZWNvZGUgU09fTElOR0VSLCBjb3BlIHdpdGgKLQlvcHRpb25zIHRoYXQgYXJlIG5vdCBqdXN0IGludHMsIGNvcGUgd2l0aCBzeXN0ZW1zIHRoYXQgZG9uJ3QKLQkjZGVmaW5lIFNPTF9UQ1AgYW5kIHNvIG9uLgotCi0yMDAyLTA1LTIxICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmFjZS5jOiBGaXggd2FybmluZyBpZiBQT0xMX0hBQ0sgaXMgdXNlZC4KLQotMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgotCi0JKiBzdnI0L2lvY3RsZW50LnNoOiBTb21lIGRlZmluZXMgb24gVVcgY29tZSB3aXRoIHRvbyBtYW55IHNwYWNlcy4KLQotMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgotCi0JKiBzdnI0L2lvY3RsZW50LnNoOiBDb3BlIHdpdGggI2RlZmluZXMgd3JhcHBlZCBpbiAjaWZkZWZzLgotCi0yMDAyLTA1LTE3ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+Ci0KLQkqIHN0cmVhbS5jOiB0aWR5IHVwIG91dHB1dCBhIGxpdHRsZS4KLQotMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgotCi0JKiBwcm9jZXNzLmMsIHN2cjQvZHVtbXkuaCwgc3ZyNC9zeXNjYWxsLmg6IGRlY29kZSBhcmd1bWVudHMKLQl0byBwcm9jcHJpdiBzeXNjYWxsLgotCi0yMDAyLTA1LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+Ci0KLQkqIGNvbmZpZ3VyZS5pbiwgZGVmcy5oLCBwcm9jZXNzLmMsIHNvY2suYywgc3lzY2FsbC5jLCB1dGlsLmM6IG1lcmdlCi0JICBwYXRjaCBmcm9tIEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+IGZvciBMaW51eC9TdXBlckgKLQkgIHN1cHBvcnQKLQotMjAwMi0wNC0wMSAgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgotCi0JKiBzdHJhY2UuYzogY2xvc2UgdGNwLT5vdXRmIGluIGRyb3B0Y2IoKQotCi0yMDAyLTA0LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+Ci0KLQkqIG5ldC5jOiBkZWNvZGUgcGFja2V0IG9wdGlvbnMKLQotMjAwMi0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgotCi0JKiBsaW51eC97YWxwaGEsaHBwYSxpYTY0LG1pcHMscG93ZXJwYyxzcGFyY30vc3lzY2FsbGVudC5oOiByZWdlbmVyYXRlZAotCi0yMDAyLTAzLTMxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+Ci0KLQkqIGRlYmlhbi8qOiBhZGRlZAotCSogbGludXgvc3lzY2FsbGVudC5oOiBmaXggdHlwbyBhbmQgYWRkIHRoZSByZXNlcnZlZCBzdHJlYW0gc3lzY2FsbHMKLQkqIGRlZnMuaCwgZmlsZS5jLCBpby5jOiBmaXggc2lnbmVkL3Vuc2lnbmVkIGlzc3VlcwotCSogc3lzY2FsbC5jOiBjaGVjayBmb3IgbmVnYXRpdmUgdV9lcnJvcnMKLQkqIGN2c2J1aWxkOiByZW5hbWVkIHRvIGF1dG9nZW4uc2gKLQotMjAwMS0xMi0xNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotCSogbmV0LmM6IGFkZCBuZXcgVENQIHNvY2tldCBvcHRpb25zCi0KLTIwMDEtMTAtMjYgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KLQotCSogc3ZyNC9pb2N0bGVudC5zaDogQ29wZSB3aXRoICNkZWZpbmUgbGluZXMgY29udGFpbmluZwotCWNvbW1lbnRzIHRoYXQgdGVybWluYXRlIG9uIHN1YnNlcXVlbnQgbGluZXMuICBVc2VkIHRvCi0JY29tbWVudCBvdXQgc3Vic2VxdWVudCBpb2N0bHMhCi0KLTIwMDEtMTAtMjUgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLQkqIGxpbnV4L2lvY3RsZW50Lmg6IHJlZ2VuZXJhdGVkIHVzaW5nIGN1cnJlbnQgc2NyaXB0cyBzbwotCSAgdGVybSBpb2N0bHMgYXJlIGluY2x1ZGVkCi0KLTIwMDEtMTAtMTkgIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+Ci0KLQkqIHN0cmFjZS5jKHByb2Nfb3Blbik6IE9uIFNWUjQgb25seSB0cmFjZSB0aGUgc3lzY2FsbHMsCi0Jc2lnbmFscyBhbmQgZmF1bHRzIHdlIGNhcmUgYWJvdXQuCi0KLTIwMDEtMTAtMTggIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+Ci0KLQkqIGFjY29uZmlnLmg6IEFkZCBIQVNfU0lHSU5GT19ULgotCSogYWNsb2NhbC5tNDogYWRkIGNoZWNrIGZvciBzaWdpbmZvX3QgaW4gc2lnbmFsLmguCi0JKiBjb25maWd1cmUuaW46IHVzZSBjaGVjayBmb3Igc2lnaW5mb190LgotCSogZGVmcy5oOiBpZiBIQVZFX1NJR0lORk9fVCB0aGUgZGVjbGFyZSBwcmludHNpZ2luZm8uICBPbiBTVlI0Ci0JICBhbGxvdyBhY2Nlc3MgdG8gc2lnaW5mbyB3aGVuIHNpZ25hbCByZWNpZXZlZC4KLQkqIHByb2Nlc3MuYzogUmVtb3ZlIFNWUjQgb25seSB2ZXJzaW9uIG9mIHByaW50c2lnaW5mby4KLQkqIHNpZ25hbC5jOiBtZXJnZSBTVlI0IGFuZCBMSU5VWCB2ZXJzaW9ucyBvZiBwcmludHNpZ2luZm8uCi0JKiBzdHJhY2UuYzogb24gU1ZSNCBwcmludCBzaWdpbmZvIHdoZW4gc2lnbmFsIHJlY2lldmVkLgotCi0yMDAxLTEwLTE4ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBzeXN0ZW0uYyhzeXNfc3Npc3lzKTogaGFuZGxlIHJldHVybiB2YWx1ZXMgZm9yIHNzaXN5cwotCi0yMDAxLTEwLTE4ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBzaWduYWwuYzogaGFuZGxlIHNpZ3dhaXQKLQkqIHN2cjQvZHVtbXkuYzogTW92ZSBzaWd3YWl0IHRvIGRvbmUKLQkqIHN2cjQvc3lzY2FsbC5oOiBoYW5kbGUgc2lnd2FpdAotCi0yMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBzeXN0ZW0uYyhzeXNfc3Npc3lzKTogZGVjb2RlIHNvbWUgYXJncyBmb3Igc3Npc3lzLgotCi0yMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiBtZW0uYzogTVNfU1lOQyBpcyB6ZXJvLCBzbyBtdXN0IGJlIGZpcnN0IGluIHhsYXQgbGlzdC4KLQotCSogc3ZyNC9kdW1teS5oOiBtZW1jbnRsIGlzIG11Y2ggbGlrZSBtY3RsLgotCi0yMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgotCi0JKiB1dGlsLmMgKHVtb3Zlc3RyKTogVW5peFdhcmUgKHN2cjQ/KSByZXR1cm5zIDAgd2hlbiB0cnlpbmcKLQl0byByZWFkIHVubWFwcGVkIHBhZ2UuICBNYWtlIGl0IHBvc3NpYmxlIHRvIHN0cmFjZSBrc2guCi0KLTIwMDEtMTAtMDMgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogQXZvaWQgcmFjZSBjb25kaXRpb24gYnkgY2xlYXJpbmcKLQlicmVha3BvaW50IGFmdGVyIGF0dGFjaGluZyB0byBjaGlsZC4KLQotMjAwMS0xMC0wMiAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBEZWZpbmUgaWEzMiBzeXNjYWxsIG51bWJlcnMgKG9yaWdpbmFsbHkKLQlieSBEb24gRHVnZ2VyLCB3aXRoIG15IHJlZmluZW1lbnRzKS4KLQotCSogbGludXgvaWE2NC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlIGFuZCBtYW51YWxseSBtZXJnZSBjb25mbGljdGluZwotCWlvY3RscyAoVENHRVRTICYgU05EQ1RMX1RNUl9USU1FQkFTRSwgZXRjLikuCi0KLQkqIGxpbnV4L2lhNjQvTWFrZWZpbGUuaW4gKGlvY3RsZGVmcy5oIGlvY3Rscy5oKTogVXBkYXRlIGZvcgotCW5ldyBpb2N0bGVudC5oIGdlbmVyYXRpb24gc2NoZW1lLgotCi0JKiBsaW51eC9zeXNjYWxsLmggKHN5c19jbG9uZTIpOiBEZWNsYXJlLgotCVtJQTY0XSBEZWZpbmUgaWEzMiBzb2NrZXQsIGlwYywgYW5kIGV4dHJhIHN5c2NhbGwgbnVtYmVycy4KLQotCSogbGludXgvaW9jdGxlbnQuc2ggKHJlZ2V4cCk6IEFsc28gaGFuZGxlIDxhc20vaW9jdGxzLmg+IHNvIHdlCi0JZG9uJ3QgbWlzcyB0aGUgdHR5IGlvY3RscyAodW5mb3J0dW5hdGVseSwgc29tZSBvZiB0aGUgc291bmQgdGltZXIKLQlpb2N0bHMgYXJlIGluIGNvbmZsaWN0IHdpdGggdGhlbSEpLgotCi0JKiB1dGlsLmMgKHNldGJwdCkgW0lBNjRdOiBBZGQgaWEzMiBzdXBwb3J0IChieSBEb24gRHVnZ2VyKS4KLQkoY2xyYnB0KSBbSUE2NF06IERpdHRvLgotCi0JKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBIYW5kbGUgU1lTX2Nsb25lMiwgU1lTMzJfd2FpdDQsCi0JYW5kIFNZUzMyX2V4aXQuCi0JKGdldF9zY25vKTogR2V0IGlhMzIgc3lzY2FsbCBudW1iZXIgZnJvbSByMSAob3JpZyBlYXgpIGluc3RlYWQgb2YKLQlyOCAoZWF4KS4gIEhhbmRsZSBUQ0JfV0FJVEVYRUNWRS4KLQkoc3lzY2FsbF9maXh1cCk6IEhhbmRsZSBpYTY0LgotCShzeXNjYWxsX2VudGVyKTogRml4IGFyZ3VtZW50IGZldGNoaW5nIGZvciBpYTY0LgotCi0JKiBzdHJhY2UuYyBbSUE2NCAmJiBMSU5VWF06IEluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPi4KLQkodHJhY2UpIFtQVF9HRVRTSUdJTkZPXTogUHJpbnQgc2lnbmFsIGFkZHJlc3MgYW5kIHBjIGlmIHBvc3NpYmxlLgotCi0JKiBwcm9jZXNzLmMgKHRjcCk6IE5ldyBmdW5jdGlvbi4KLQkoY2hhbmdlX3N5c2NhbGwpOiBBZGQgc3VwcG9ydCBmb3IgaWE2NCBsaW51eC4KLQkoc3lzX2V4ZWN2ZSk6IFR1cm4gb24gVENCX1dBSVRFWEVDVkUgZm9yIGlhNjQgbGludXguCi0KLQkqIGRlc2MuYyAoZ2V0bGspOiBDYXN0IGxfbGVuIHRvICJsb25nIGxvbmciIHRvIGF2b2lkIHdhcm5pbmdzIHdoZW4KLQl0eXBlIGlzIG5hcnJvd2VyLgotCSogcmVzb3VyY2UuYyAoc3ByaW50cmxpbTY0KTogRGl0dG8uCi0KLQkqIGRlZnMuaCAoVENCX1dBSVRFWEVDVkUpIFtJQTY0XTogRGVmaW5lLgotCVtJQTY0XTogRGVjbGFyZSAiaWEzMiIgdmFyaWFibGUuCi0KLQkqIGJqbS5jOiBEbyBub3QgaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+LiAgSXQncyBub3Qgc2FmZSB0byBpbmNsdWRlCi0Ja2VybmVsIGhlYWRlcnMuICBEZWNsYXJlIHRoZSBuZWNlc3NhcnkgY29uc3RhbnRzIGFuZCBzdHJ1Y3R1cmVzCi0JZGlyZWN0bHkgaW5zdGVhZC4KLQotMjAwMS0xMC0wMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIHNpZ25hbC5jIChwYXJzZV9zaWdzZXRfdCk6IE5ldyBmdW5jdGlvbi4KLQkoc2lnaXNoYW5kbGVkKTogRml4IG9mZi1ieS1vbmUgYnVnIGJ5IHVzaW5nIHBhcnNlX3NpZ3NldF90KCkgYW5kCi0JYXZvaWRpbmcgcmVseWluZyBvbiBpbnRlcm5hbCBsYXlvdXQgb2Ygc2lnc2V0X3QgZGF0YXN0cnVjdHVyZS4KLQotMjAwMS0wNC0yNiAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0KLQkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgZ2V0dW53aW5kKCkuCi0KLTIwMDEtMDQtMTEgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgotCi0JKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpOiBVc2UgUFRfUkJTX0VORCBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQKLQlQVF9BUl9CU1AuICBQaWNrIHVwIGFyZ3VtZW50cyBzdGFydGluZyB3aXRoIG91dDAsIHdoaWNoIGlzIG5vdAotCWFsd2F5cyB0aGUgc2FtZSBhcyByMzIgKGUuZy4sIGNvbnNpZGVyIGlubGluZWQgc3lzY2FsbHMpLgotCi0yMDAxLTA5LTI4ICAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogcHJvY2Vzcy5jOiBGcmVlQlNELUNVUlJFTlQgbm8gbG9uZ2VyIGhhcyBQVF9SRUFEX1UsIGFuZCBhbnl3YXkgd2UKLSAgICB3ZXJlIHNob3dpbmcgaXQgYXMgUFRfV1JJVEVfVSEgIEZpeCBmcm9tIE1heGltZSBIZW5yaW9uLgotCi0yMDAxLTA5LTE4ICAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogbmV0LmM6IGZpeCBkaXNwbGF5IG9mIHNvY2thZGRyIHN0cnVjdHVyZXMsIHNvbWV0aW1lcyB0b28gbWFueSAifSIsCi0gICAgc29tZXRpbWVzIHRvbyBmZXcuICBGaXggc3VnZ2VzdGVkIGJ5IFJpY2hhcmQgS2V0dGxld2VsbC4KLQotMjAwMS0wOC0xOSAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBzaWduYWwuYzogZG8gbm90IGluY2x1ZGUgYXNtL3NpZ2NvbnRleHQuaCBvbiBJQTY0IHNpbmNlIGl0IGdldHMKLSAgICB0aGUgc3RydWN0IGZyb20gYml0cy9zaWdjb250ZXh0LmggYWxyZWFkeSB3aGljaCBzaWduYWwuaCBpbmNsdWRlcy4KLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9pb2N0bGVudC5zaDogY2hhbmdlIHJlZ2V4cHMgc28gd2UgY2F0Y2ggc291bmQgaW9jdGxzIGFzIHdlbGwgaW4KLSAgICBMaW51eAotICAqIGxpbnV4L01ha2VmaWxlLmluOiBmaXggYSBmZXcgdGhpbmdzIHNvIHRoZSBpb2N0bCBsaXN0IGlzIGdlbmVyYXRlZAotICAgIHByb3Blcmx5Ci0gICogaW9jdGwuYzogcmVtZW1iZXIgdG8gc2hpZnQgaW9jdGwgbWFza3MgYXMgd2VsbAotCi0yMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIExpbnV4LyoqL3N5c2NhbGxlbnQuaDogc3luY2hyb25pemUgc2VjdGlvbiBmb3IgZmNudGwgYW5kIHVzZSBzeXNfZmNudGwKLSAgICBmb3Igc3lzX2ZjbnRsIGFzIHdlbGwKLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogdXBkYXRlZCBmcm9tIE1hdHRoZXcgV2lsY294Ci0KLTIwMDEtMDgtMDMgICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogcHJvY2Vzcy5jOiBzZWVtcyBMaW51eC9JQTY0IGNoYW5nZWQgcmVnaXN0ZXIgbmFtZXMgb24gdXMsIHN3aXRjaCB0bwotICAgIHVzaW5nIG5ldyBuYW1lcy4KLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBzdHJhY2UuYzogc2V0IENMT0VYRUMgIGZsYWcgZm9yIG91dHB1dGZpbGUKLQotMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9zcGFyYy9zeXNjYWxsLmgsIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogYWRkIHNvbWUgTEZTIGNhbGxzCi0KLTIwMDEtMDctMjMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWd1cmUuaW46IFN1cHBvcnQgY3Jvc3MtY29tcGlsaW5nIGJldHdlZW4gYXJjaGl0ZWN0dXJlcwotCi0yMDAxLTA3LTEzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogY29uZmlndXJlLmluOiBhZGQgUzM5MCB0byBhcmNoaXRlY3R1cmUgbGlzdAotCi0yMDAxLTA3LTEwICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBUT0RPLCBkZWZzLmgsIGlvLmgsIG5ldC5jLCBzdHJhY2UuYywgc3lzY2FsbC5jLCB1dGlsLmM6IE1lcmdlIGZpeGVzCi0gICAgZnJvbSBSaWNoYXJkIEtldHRsZXdlbGwgPHJrZXR0bGV3ZWxsQHpldXMuY29tPiB3aGljaCBhZGQgSS9PIGR1bXBpbmcKLSAgICBvZiBhcmdzIHRvIHJlYWR2L3dyaXRldi4gIEFsc28gZ2V0cyByaWQgb2YgcmVkdW5kYW50IHByaW50aW92ZWMKLSAgICByb3V0aW5lIGZyb20gbmV0LmMgKGR1cGxpY2F0ZSBvZiB0cHJpbnRfaW92IGluIHV0aWwuYykuCi0KLTIwMDEtMDctMDIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWcue2d1ZXNzLHN1Yn06IHVwZGF0ZWQKLQotMjAwMS0wNS0xNSAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogc2lnbmFsLmM6IHBhc3MgYSBwb2ludGVyIHRvIHNpZ21hc2sgdG8gcHJpbnRzaWdtYXNrIGZyb20gcHJpbnRjb250ZXh0LAotICAgIGl0IHdhcyBqdXN0IHBhc3NpbmcgdGhlIHNpZ21hc2sgKHVjcC0+dWNfc2lnbWFzaykuCi0KLTIwMDEtMDUtMTUgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIHV0aWwuYzogRG9uJ3QgcnVuIG9mZiB0aGUgZW5kIG9mIHZhbGlkIG1lbW9yeSBpbiB1bW92ZXN0ciB3aGVuCi0gICAgVVNFX1BST0NGUy4gIEltcG9ydGFudCBmb3IgRlJFRUJTRCBzeXN0ZW1zICh3aGljaCBzZWVtIHRvIGhhdmUgYW4KLSAgICB1bm1hcHBlZCBwYWdlIGp1c3QgYWZ0ZXIgdGhlIGFyZ3MvZW52IGFyZWEpLgotCi0yMDAxLTA0LTE4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBjb25maWd1cmUuaW46IHRlc3QgZm9yIHN5cy9uc2NzeXMuaCwgdGhlIG5vbi1zdG9wIGNsdXN0ZXJzIGluY2x1ZGVzLgotICAqIHByb2Nlc3MuYzogaGFuZGxlIHJmb3JrezEsYWxsfSBhbmQgcmV4ZWN2ZSBjYWxscyBvbiBub24tc3RvcCBjbHVzdGVycy4KLSAgKiBzeXNjYWxsLmM6IHRyZWF0IHJmb3JrezEsYWxsfSBhbmQgZm9ya3sxLGFsbH0gYXMgZm9yayBsaWtlIGNhbGxzLgotICAgIFRyZWF0IHJleGVjdmUgYXMgYW4gZXhlYy4KLSAgKiBzeXN0ZW0uYzogZGVjb2RlIGFyZ3VtZW50cyB0byBzc2lzeXMgY2FsbCBvbiBuc2Mgc3lzdGVtcy4KLSAgKiBzdnI0L2R1bW15LmgsIHN2cjQvc3lzY2FsbC5oOiBub3cgd2UgaGFuZGxlIHJmb3JrezEsYWxsfSwgc3Npc3lzIGFuZAotICAgIHJleGVjdmUgY2FsbHMuCi0KLTIwMDEtMDQtMTIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBwcm9jZXNzLmM6IGZpeCBjYXN0IGZvciBwb3dlcnBjIGNvZGUKLSAgKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogdXBkYXRlIHN5c2NhbGwgbGlzdAotICAqIFJFQURNRTogZml4IGFkZHJlc3MgZm9yIHRoZSBzdHJhY2UgbWFpbGluZ2xpc3QKLSAgKiBzaWduYWwuYzogc3dpdGNoIHRvIHVzaW5nIC9wcm9jLzxwaWQ+L3N0YXR1cyBvbiBMaW51eCBzbyB3ZSBjYW4gZ2V0Ci0gICAgdGhlIHJlYWx0aW1lIHNpZ25hbHMgYXMgd2VsbAotCi0yMDAxLTA0LTEwICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgcGF0Y2hlcyBmcm9tIE1hY2llaiBXLiBSb3p5Y2tpOgotICAgICsgdXRpbC5jOiBhZGQgY29kZSB0byBwcmludCBQQyBmb3IgTUlQUwotICAgICsgbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IHVwZGF0ZWQKLSAgICArIHN5c3RlbS5jOiBmb3JtYXRpbmcgZml4ZXMgZm9yIHN5c19zeXNtaXBzCi0gICAgKyBjb25maWd1cmUuaW46IHRlc3QgZm9yIHlldCBtb3JlIGhlYWRlcnMKLSAgICArIHN0cmVhbS5jOiB1c2UgY29uZmlndXJlLWhlYWRlcnRlc3RzIGluc3RlYWQgb2YgcmVseWluZyBvbiBPUyBoaW50cwotCi0yMDAxLTA0LTA3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTkVXUzogc3RhcnQgNC4zLjEgaXRlbXMKLSAgKiB2ZXJzaW9uLmM6IHVwZGF0ZWQgdG8gc2F5IDQuMy4xICh3YXMgc3RpbGwgNC4yLCBvb3BzISkKLQotMjAwMS0wNC0wNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3IgYXNtL3N5c21pcHMuaCBhbmQgbGludXgvdXRzbmFtZS5oCi0gICogbGludXgvc3lzY2FsbC5oOiBmaXggYSB0eXBvIGZvciBzeXNfc3lzbWlwcwotICAqIHN5c3RlbS5jOiBpbmNsdWRlIGFzbS9zeXNtaXBzLmggYW5kIGxpbnV4L3V0c25hbWUuaCBpZiB0aGV5IGV4aXN0LAotICAgIGZpeCB0eXBvCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9taXBzL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9pYTY0L2lvY3RsZW50Lmg6IHJlZ2VuZXJhdGVkCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC97YWxwaGEsaWE2NCxwb3dlcnBjfS9pb2N0bGVudC5zaDogcmVtb3ZlZCwgYWxsIGFyY2hzIHVzZSB0aGUKLSAgICBnZW5lcmFsIExpbnV4IGlvY3RsZW50LnNoCi0KLTIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9pb2N0bGVudC5zaDogYWRkIGRpciB2YXJpYWJsZSBmb3IgbG9jYXRpb24gb2Yga2VybmVsIGhlYWRlcnMKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L2hwcGEvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKLQotMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGxpbnV4L2FscGhhL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCi0KLTIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWd1cmUuaW46IHVzZSBzcGFyYyogc28gd2UgY2FuIGNvbXBpbGUgb24gc3BhcmM2NCBhcyB3ZWxsCi0gICogcHJvY2Vzcy5jLCBzeXNjYWxsLmM6IHdvcmsgYXJvdW5kIGRvdWJsZSBkZWZpbmUgb2YgZnBxLCBmcSBhbmQgZnB1Ci0gICAgc3RydWN0cyBvbiBMaW51eC9zcGFyYywgYW5kIHVzZSByZWdzIGluc3RlYWQgb2YgcHRfcmVncwotICAqIGRvbid0IHVzZSBhc20vc2lnY29udGV4dC5oIG9uIExpbnV4L3NwYXJjCi0KLTIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9zcGFyYy9pb2N0bGVudC5oOiB1cGRhdGVkIHVzaW5nIG5ldyBMaW51eCBpb2N0bCBzZXR1cAotCi0yMDAxLTAzLTI4ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogc3RyYWNlLmM6IHVzZSBfX1dBTEwgYXMgd2FpdDQgZmxhZyBpZiBpdCBleGlzdHMgc28gd2UgY2FuIHByb3Blcmx5Ci0gICAgdHJhY2UgdGhyZWFkZWQgcHJvZ3JhbXMKLQotMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogYWNsb2NhbC5tNDogYWRkIGNoZWNrIGZvciBlbmRpYW5uZXNzIG9mIGxvbmcgbG9uZy4KLSAgKiBhY2NvbmZpZy5oOiBhZGQgI2RlZmluZSBmb3IgTElUVExFX0VORElBTl9MT05HX0xPTkcuCi0gICogY29uZmlndXJlLmluOiBjaGVjayBmb3IgZW5kaWFubmVzcyBvZiBsb25nIGxvbmcuCi0gICogZGVmcy5oOiBjaGFuZ2UgTE9OR19MT05HIG1hY3JvIHRvIHdvcmsgd2l0aCBlaXRoZXIgZW5kaWFubmVzcyBvZgotICAgIGxvbmcgbG9uZy4KLQotMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogbmV0LmM6IE1ha2UgY29tcGlsYWJsZSBieSBTQ08gVURLIGNvbXBpbGVyIChkb2Vzbid0IGxpa2UgZW1wdHkKLSAgICBpbml0aWFsaXNhdGlvbiBsaXN0IGZvciBhcnJheSkuCi0KLTIwMDEtMDMtMjcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIHN2cjQvc3lzY2FsbGVudC5oOiBudHBfYWRqdGltZSBlbnRyeSB3YXMgZHVwbGljYXRlZCBvbiBTb2xhcmlzCi0gICAgc3lzdGVtcyAtIGJhZCBtZXJnZSBvZiBIYXJhbGQgQm9laG1lJ3MgcGF0Y2ggYnkgbWUuCi0KLTIwMDEtMDMtMjcgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsb3RzIG9mIGZpbGVzOiBhZGQgTGludXgvaHBwYSBzdXBwb3J0Ci0KLTIwMDEtMDMtMTkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogd2UgY2FuJ3QgaGF2ZSAtMSBuYXJncywgY2hhbmdlIHRvIDAKLSAgKiBsaW51eC9zeXNjYWxsZW50Lmg6IG5vdCB0aGF0IHN5c2NhbGxzIDIyMCBhbmQgMjIxIGFyZSB1c2VkIG5vdwotICAqIGNvbmZpZy5ndWVzczogdXBkYXRlZAotCi0yMDAxLTAzLTE3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogbGludXgvaW9jbHNvcnQuYzogbmV3IGZpbGUKLSAgKiBsaW51eC9pb2N0bGVudC5zaDogY29tcGxldGUgcmV3cml0ZSB0byB1c2UgYSBtb3JlIHNhbmUgYXBwcm9hY2ggdG8gZ2V0Ci0gICAgdGhlIGlvY3RsIGxpc3QgdGhhdCBkb2Vzbid0IGludm9sdmUgYXR0ZW1wdGluZyB0byAjaW5jbHVkZSBhbGwga2VybmVsCi0gICAgaGVhZGVycwotICAqIGxpbnV4Ly5jdnNpZ25vcmU6IGFkZGVkIGlvY3RkZWZzLmggYW5kIGlvY3Rscy5oIHdoaWNoIGFyZSBnZW5lcmF0ZWQKLSAgICBieSB0aGUgbmV3IGlvY3RsZW50LnNoCi0gICogaW9jdGwuYzogb25seSBsb29rIGF0IHRoZSBudW1iZXIgYW5kIHR5cGUgYml0cyBmb3IgbGludXgsIHNpbmNlCi0gICAgaW9jdGxlbnQuc2ggbm8gbG9uZ2VyIHN1cHBsaWVzIHRoZSBvdGhlcnMKLQotMjAwMS0wMy0wOCAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogZnJlZWJzZC9zeXNjYWxscy5wbDogT24gRnJlZUJTRCB3ZSBtdXN0IGNvcGUgd2l0aCBDT01QQVRpYmlsaXR5IHN5c2NhbGxzLAotICAgIHByZXRlbmQgdGhleSBoYXZlIG5hbWVzIGVuZGluZyB3aXRoICI/IiBzbyB0aGF0IC1lIHRyYWNlPXN0YXQgKGZvcgotICAgIGV4YW1wbGUpIHdpbGwgd29yay4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBhZGQgPyB0byBjb21wYXRhYmlsaXR5IHN5c2NhbGxzLgotICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmg6IGNvbnNpc3RlbmN5LgotCi0yMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBhY2NvbmZpZy5oOiBhZGQgbmV3IFNUX3h4eCBkZWZpbmVzLgotICAqIGFjbG9jYWwubTQ6IG1hY3JvcyB0byBjaGVjayBmb3IgbW9yZSBmaWVsZHMgaW4gc3RydWN0IHN0YXQuCi0gICogY29uZmlndXJlLmluOiB1c2UgbmV3IG1hY3JvcyB0byBjaGVjayBmb3IgZmllbGRzIGluIHN0cnVjdCBzdGF0LgotICAqIGZpbGUuYzogdXNlIG5ldyBkZWZpbmVzIHRvIHJlcGxhY2UgI2lmZGVmIEZSRUVCU0QgYnkgI2lmIEhBVkVfU1RfeHh4LgotCi0yMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBkZWZzLmg6IHJlbmFtZSB3aW1weSBnZXQ2NCBhcyBwb3dlcmZ1bCBuZXcgTE9OR19MT05HCi0gICogZmlsZS5jOiB1c2UgTE9OR19MT05HCi0gICogaW8uYzogdXNlIExPTkdfTE9ORwotICAqIG1lbS5jIHVzZSBMT05HX0xPTkcKLQotMjAwMS0wMy0wOCAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogYWNjb25maWcuaDogbmV3ICNkZWZpbmVzIEhBVkVfTE9OR19MT05HX09GRl9UIGFuZCBIQVZFX0xPTkdfTE9OR19STElNX1QuCi0gICogYWNsb2NhbC5tNDogcm91dGluZXMgdG8gY2hlY2sgZm9yIGxvbmcgbG9uZyBvZmZfdCBhbmQgcmxpbV90LgotICAqIGNvbmZpZ3VyZS5pbjogY2hlY2sgZm9yIGxvbmcgbG9uZyBvZmZfdCBhbmQgcmxpbV90LgotICAqIGRlc2MuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdHJlYXQgZmxvY2sgYXMgZmxvY2s2NAotICAqIGZpbGUuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdHJlYXQgc3RhdCxsc3RhdCxmc3RhdCBhbmQgbHNlZWsgYXMgNjQKLSAgICBiaXQgdmVyc2lvbnMuCi0gICogaW8uYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiBwcmVhZCBhbmQgcHdyaXRlLgotICAqIG1lbS5jOiBpZiBIQVZFX0xPTkdfTE9OR19PRkZfVCB1c2UgNjQgYml0IHZlcnNpb24gb2YgbW1hcAotICAqIHJlc291cmNlLmM6IGlmIEhBVkVfTE9OR19MT05HX09GRl9UIHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgZ2V0cmxpbWl0Ci0gICAgYW5kIHNldHJsaW1pdC4KLSAgKiBmcmVlYnNkL3N5c2NhbGxzLnByaW50OiBkb24ndCBleHBsaWNpdGx5IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgY2FsbHMsCi0gICAgbm93IGRvbmUgYXV0b21hdGljYWx5IGZvciB1cy4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiBkaXR0by4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oIGRpdHRvLgotCi0yMDAxLTAzLTA3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBkZXNjLmM6IE9uIEZyZWVCU0QgZmxvY2sgc3RydWN0dXJlIHVzZXMgNjQgYml0IG9mZnNldHMuCi0gICogZmlsZS5jOiBPbiBGcmVlQlNEIHVzZSBzdGF0NjQgYW5kIHBhbHMgaW5zdGVhZCBvZiBzdGF0LgotICAqIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQ6IHVzZSBzdGF0NjQsIGxzdGF0NjQgYW5kIGZzdGF0NjQuCi0gICogZnJlZWJzZC9pMzg2L3N5c2NhbGwuaDogZGl0dG8uCi0gICogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogZGl0dG8uCi0KLTIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGZpbGUuYzogbWVyZ2UgbWlzc2luZyBwYXJ0IG9mIEhhcmFsZCBC9mhtZSdzIHNvbGFyaXMgcGF0Y2hlcywKLSAgICB3YXMgb25seSBkZWNsYXJpbmcgc3lzX3tzdGF0NjQsbHN0YXQ2NCxmc3RhdDY0fSBvbiBsaW51eCEKLQotMjAwMS0wMy0wNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogc3ZyNC9kdW1teS5oOiBmaXggbXVsdGlwbGUgZGVmaW5lIHdhcm5pbmcgb24gbm9uIExGUzY0IHN5c3RlbXMuCi0gICogc3ZyNC9zeXNjYWxsZW50Lmg6IHByZWFkL3B3cml0ZSBhcmUgVEYgY2FsbHMuCi0KLTIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGRlZnMuaDogYWRkIEFMSUdONjQgbWFjcm8gdG8gY29wZSB3aXRoIEZyZWVCU0QncyBzdHJhbmdlIGluc2lzdGVuY2UKLSAgICBvbiBhbGlnbm1lbnQgZm9yIG9mZl90ICg2NCBiaXQpIGFyZ3VtZW50cy4gIEFsc28gc2ltcGxpZnkgZ2V0NjQgc28KLSAgICB3ZSBkb24ndCBuZWVkIHRvIGtub3cgZW5kaWFubmVzcyBvZiBsb25nIGxvbmcuCi0gICogZmlsZS5jOiBGcmVlQlNEIG5vdyB1c2VzIDY0IGJpdCB2ZXJzaW9ucyBvZiBsc2VlaywgdHJ1bmNhdGUsCi0gICAgZnRydW5jYXRlLCBhbGxvd3MgcmVkdWN0aW9uIGluIG51bXZiZXIgb2YgaG9ycmlkICNpZidzCi0gICogaW8uYzogRnJlZUJTRCBub3cgdXNlcyA2NCBiaXQgdmVyc2lvbnMgb2YgcHJlYWQsIHB3cml0ZS4KLSAgKiBtZW0uYzogRnJlZUJTRCBub3cgdXNlcyA2NCBiaXQgdmVyc2lvbiBvZiBtbWFwLgotICAqIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQ6IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgdmFyaW91cyBzeXNjYWxscy4KLSAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiB1c2UgNjQgYml0IHZlcnNpb25zIG9mIHZhcmlvdXMgc3lzY2FsbHMuCi0gICogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiB2YXJpb3VzIHN5c2NhbGxzLgotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBmaWxlLmM6IEltcGxlbWVudCB0cnVuY2F0ZTY0IGFuZCBmdHJ1bmNhdGU2NAotICAqIHN2cjQvZHVtbXkuaDogYWRkIGR1bW1pZXMgZm9yIHRydW5jYXRlNjQgYW5kIGZ0cnVuY2F0ZTY0IGZvciBub24KLSAgICBMRlM2NCBzeXN0ZW1zLgotICAqIHN2cjQvc3lzY2FsbC5oOiBhZGQgZGVjbGFyYXRpb25zIGZvciB0cnVuY2F0ZTY0IGFuZCBmdHJ1bmNhdGU2NC4KLQotMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi0gICogZnJlZWJzZC9zeXNjYWxscy5wbDogZml4IGZvciBGcmVlQlNEIDQuMSAobmV3IG9wdGlvbmFsIGZpZWxkIGluCi0gICAgc3lzY2FsbCBtYXN0ZXIgZmlsZSkuCi0KLTIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIHN5c2NhbGwuYzogZml4IGZvciBGcmVlQlNEIDQuMSAoU1lTX3NlbWNvbmZpZyBoYXMgZGlzYXBwZWFyZWQpLiAgQWxzbwotICAgIHphcCBpbmNvcnJlY3Qgc3lzY2FsbCBzdWJhcmcgcmFuZ2UgY2hlY2suCi0KLTIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGNvbmZpZ3VyZS5pbiwgZGVmcy5oLCBkZXNjLmMsIGZpbGUuYywgaW8uYywgbWVtLmMsIG5ldC5jLCByZXNvdXJjZS5jLAotICAgIHNpZ25hbC5jLCBzeXNjYWxsLmMsIHN2cjQvZHVtbXkuaCwgc3ZyNC9zeXNjYWxsLmgsIHN2cjQvc3lzY2FsbGVudC5oOgotICAgIG1lcmdlIEhhcmFsZCBC9mhtZSdzIHNvbGFyaXMgcGF0Y2hlcyAoX0xGUzY0X0xBUkdFRklMRSBhbmQga2VybmVsIGFpbwotICAgIG1vc3RseSkuCi0KLTIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KLQotICAqIGR1bW15Lmg6IGFkZCB1bmltcGxlbWVudGVkIFVXIHN5Y2FsbHMKLSAgKiBzeXNjYWxsLmg6IHdlIGNhbiBkbyBzZXR0aW1lb2ZkYXkgZm9yIFVXLCB3aG9wZWUhCi0gICogc3lzY2FsbGVudC5oOiBmaXggdW5pbXBsZW1lbnRlZCBVVyBzeXNjYWxscwotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBhY2xvY2FsLm00OiBsb29rIGZvciBwcl9zeXNjYWxsIGluIHByX2x3cCBpZiB3ZSBIQVZFX01QX1BST0NGUwotICAqIGRlZnMuaDogYWRkIFBSX1NZU0NBTEwgdG8gYWxsb3cgdXNlIG9mIHByX2x3cC5wcl9zeXNjYWxsIGlmIGl0IGV4aXN0cy4KLSAgKiBzeXNjYWxsLmM6IHVzZSBQUl9TWVNDQUxMIGluc3RlYWQgb2YgcHJfc3lzY2FsbCwgZml4IHVwIFVuaXhXYXJlIGNvZGUKLSAgICBzbyBpdCBkb2Vzbid0IHRyeSB0byB1c2UgcHJfc3lzYXJnLgotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBhY2xvY2FsLm00OiBvbiBzeXN0ZW1zIG90aGVyIHRoYW4gbGludXggbG9vayBmb3Igc3RhdDY0IGluIHN5cy9zdGF0LmgKLSAgKiBmaWxlLmM6IGhhbmRsZSB4c3RhdCB2ZXJzaW9uIF9TVEFUNjRfVkVSLCBha2Egc3RhdDY0LgotCi0yMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLSAgKiBuZXQuYzogbWFrZSBzdXJlIFNPTF8gb3B0aW9ucyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcuCi0gICogc2lnbmFsLmM6IGRlY2xhcmUgc2lnc2V0IHZhcmlhYmxlLCBvbmx5IHVzZWQgb24gbGludXgsIGluc2lkZSAjaWZkZWYuCi0KLTIwMDEtMDItMjEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBuZXQuYzogZml4IGZvcm1hdCBmb3IgcHJpbnRpbmcgVW5peCBkb21haW4gc29ja2V0cwotCi0yMDAxLTAyLTE5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IHVzZSBuZXcgc3lzX3N5c21pcHMKLSAgKiBzeXN0ZW0uYzogYWRkIHN5c19zeXNtaXBzIGRlY29kaW5nCi0KLTIwMDEtMDItMTYgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBDUkVESVRTOiBhZGQgQXJrYWRpdXN6IE1pc2tpZXdpY3ogPG1pc2lla0BwbGQub3JnLnBsPiB3aG8KLSAgICBzdWJtaXR0ZWQgdGhlIElQNiBzY29wZSBJRCB1cGRhdGVzCi0gICogYWNjb25maWcuaDogYWRkIEhBVkVfU0lONl9TQ09QRV9JRCBhbmQgSEFWRV9TSU42X1NDT1BFX0lEX0xJTlVYCi0gICogYWNsb2NhbC5tNDogYWRkIEFDX1NJTjZfU0NPUEVfSUQgdG8gY2hlY2sgaWYgc2luNl9zY29wZV9pZCBpcwotICAgIGF2YWlsYWJsZQotICAqIGNvbmZpZ3VyZS5pbjogY2hlY2sgZm9yIGlmX2luZGV4dG9uYW1lIGZ1bmN0aW9uIGFuZCBzaW42X3Njb3BlX2lkCi0gICogbmV0LmM6IHRlYWNoIHByaW50c29jayBhYm91dCBJUDYgc2NvcGUgaWRzCi0KLTIwMDEtMDItMTYgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBjb25maWd1cmUuaW46IHRlc3QgZm9yIG5ldGluZXQvdGNwLmggYW5kIG5ldGluZXQvdWRwLmggZXhpc3RhbmNlCi0gICogbmV0LmM6IGluY2x1ZGUgbmV0aW5ldC90Y3AuaCBhbmQgbmV0aW5ldC91ZHAuaCBpZiB0aGV5IGV4aXN0Ci0gICogTWFrZWZpbGUuaW46IHVzZSBAbWFuZGlyQCBhbmQgQGJpbmRpckAKLQotMjAwMC0xMS0yNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqICBuZXQuYzogZml4IGZvcm1hdGluZyBlcnJvciBpbiBzeXNfc2V0c29ja29wdAotICAqICBuZXQuYzogYWRkIGxpc3Qgb2Ygc29ja2V0bGF5ZXJzIGFuZCB1c2UgdGhhdCBmb3IgW2dzXWV0c29ja29wdAotCi0yMDAwLTEwLTEyICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogdGltZS5jOiB1c2Ugc3lzL3RpbWV4Lmggc28gdGhpbmdzIGNvbXBpbGUgd2l0aCAyLjIga2VybmVscwotICAqIHN0cmVhbS5jOiB0ZXN0IGlmIE1TR18qIGNvbnN0YW50cyBhcmUgI2RlZmluZWQKLQotMjAwMC0wOS0wMyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIHByb2Nlc3MuYzogcGVyZm9ybSBicHQgdHJpY2sgZm9yIGNsb25lIGFzIHdlbGwgc28gd2UgY2FuIGdldCB0aGUKLSAgICBwaWQgb2YgdGhlIGNoaWxkIGJlZm9yZSBpdCBzdGFydHMgZG9pbmcgc29tZXRoaW5nCi0gICogZmlsZS5jOiByZW5hbWUgZGlyZW50NjQgc3RydWN0IHRvIGtlcm5lbF9kaXJlbnQ2NCBzbyB0aGluZ3MgY29tcGlsZQotICAgIGFnYWluIHdpdGggbmV3ZXIgbGliY3MKLSAgKiB0ZXN0L2Nsb25lLmM6IGltcHJvdmUgb3VyIHRlc3RjYXNlIGEgYml0Ci0gICogTWVyZ2UgYW5vdGhlciBwYXRjaCBmcm9tIEfkZWwgUm91YWxsYW5kIHdpdGggRnJlZUJTRCB1cGRhdGVzCi0KLTIwMDAtMDktMDEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsb3RzIG9mIGZpbGVzOiBtZXJnZSBwYXRjaCBmcm9tIEdh62wgUm91YWxsYW5kIHRvIGFkZAotICAgIHN1cHBvcnQgZm9yIEZyZWVCU0QuCi0KLTIwMDAtMDgtMDkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBmaWxlLmM6IHVwZGF0ZSB0byByZWZsZWN0IHRoYXQgc3RfaW5vIHN1ZGRlbmx5IGJlY2FtZSBhIGxvbmcgbG9uZwotICAgIGluIHRoZSBpbiBMaW51eCAyLjQuMC10ZXN0NgotCi0yMDAwLTA4LTA5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogdGVzdC9jbG9uZS5jOiBtaW5vciBmaXh1cAotICAqIEFub3RoZXIgYnVuY2ggb2YgcGF0Y2hlcyBmcm9tIEpvaG4gSHVnaGVzIG1lcmdlZDoKLSAgKiBzaWduYWwuYzoKLSAgICArIFNWUjQgcHJpbnRjb250ZXh0KCk6IHNpZ3NldF90ICE9IHNpZ3NldF90KgotICAgICsgZ2V0Y29udGV4dCByZXR1cm5zIGEgdmFsdWUsIHNvIHByaW50IG9uIGV4aXQgb2Ygc3lzY2FsbAotICAgICsgYWRkIFVDX0ZQIHRvIHVjb250ZXh0X2ZsYWdzIGZvciBPUyB3cml0ZXJzIHRoYXQgY2FuJ3Qgc3BlbGwKLSAgICArIHN5c19zaWduYWwoKTogc3BlY2lhbCBjYXNlIFNJR197RVJSLERGTCxJR059Ci0gICAgKyBkZWNvZGVfc3ViY2FsbCgpOiBvbmx5IGRvIHN1YmNhbGwgcmFuZ2UgY2hlY2tpbmcgd2hlbiBuZWVkZWQKLSAgKiBidW5jaCBvZiBVbml4V2FyZSB1cGRhdGVzCi0gICogYWNsb2NhbC5tNCwgYWNjb25maWcuaCwgY29uZmlndXJlLmluOiBhZGQgdGVzdCBmb3IgbG9uZyBsb25nIHR5cGUKLQotMjAwMC0wNy0wNCAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIG5ldC5jOiBhZGQgU09MX1BBQ0tFVCBhbmQgU09MX1JBVyBzb2NrZXQgb3B0aW9ucywgdXBkYXRlCi0gICAgU09MX0lQIGFuZCBTT0xfVENQCi0KLTIwMDAtMDYtMjMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBzdHJhY2UuYzogY2xvc2Ugb3V0ZiBiZWZvcmUgd2UgZXhlYyBhIGNoaWxkIHByb2Nlc3MKLQotMjAwMC0wNi0wOSAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+Ci0KLSAgKiBjb25maWd1cmUuaW46IERvbid0IGxpbmsgYWdhaW5zdCBsaWJuc2wgb24gTGludXgsIGl0J3MgdW5uZWNlc3NhcnkuCi0gICogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTWFrZSBhdXhzdHIgbWVtYmVyIGNvbnN0LgotICAqIGZpbGUuYyAoZnNtYWdpYyk6IEFuZCBtYW55IG1vcmUgbWFnaWMgbnVtYmVycy4KLSAgKiB1dGlsLmM6IERvbid0IGluY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPiBmb3IgZ2xpYmMgMi4xIGFuZCB1cC4KLQotMjAwMC0wNC0yNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIGRlZnMuaDogYmFsYW5jZSAjaWYvI2VuZGlmIGFnYWluCi0gICogc3lzdGVtLmM6IGZpeCByZXR1cm4gc3RhdGVtZW50cyBpbiBzeXNfY2FwZ2V0KCkKLSAgKiBNZXJnZSB1cGRhdGVzIGZyb20gVG9waSBNaWV0dGluZW4gPFRvcGkuTWlldHRpbmVuQG5pYy5maT46Ci0gICAgKyBmaWxlLmM6IGFkZCBGX1tTR11FVFNJRyB0byBmY250bCBmbGFncwotICAgICsgc3RyYWNlLmM6IGRvbid0IHNldHJlW2d1XWlkIGlmIG5vdCBuZWVkZWQKLSAgICArIHN5c3RlbS5jOiBoYW5kbGUgc3lzX3JlYm9vdCBmb3IgTGludXgKLSAgICArIHRlcm0uYzogYWRkIGJhdWRyYXRlIGNvbnN0YW50cyB1cCB0byBCNDAwMDAwMAotICAgICsgbGludXgvKiovc3lzY2FsbGVudC5oOiBub3RlIHRoYXQgbXVubG9ja2FsbCBoYXMgbm8gYXJndW1lbnRzCi0KLTIwMDAtMDQtMjUgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgotCi0gICogQ1JFRElUUzogZml4IGVtYWlsIGFkZHJlc3MKLSAgKiBwcm9jZXNzLmM6IGhhbmRsZSBQUl9bR1NdRVRfVU5BTElHTiBhbmQgUFJfW0dTXUVUX0tFRVBDQVBTCi0gICogc2lnbmFsLmM6IGhvbm91ciBvZmZzZXQgb2Ygc2lnY29uZmlnIGluIHNpZ2ZyYW1lIHN0cnVjdHVyZSBmb3IKLSAgICBMaW51eC9pYTY0Ci0gICogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEFkZCBwZXJmbW9uY3RsLCBwaXZvdHJvb3QsIG1pbmNvcmUsIGFuZAotICAgIG1hZHZpc2Ugc3lzY2FsbHMuCi0gICogc3lzY2FsbC5jIChzeXNjYWxsX2VudGVyKTogV2l0aCBLZXZpbidzIGxhdGVzdCBwdHJhY2UgcGF0Y2hlcywKLSAgICBBUl9CU1AgcG9pbnRzIHRvIHRoZSBfZW5kXyBvZiB0aGUgYWN0aXZlIHJlZ2lzdGVyIGZyYW1lLCBzbyB3ZSBuZWVkCi0gICAgdG8gYWRqdXN0IGJzcCBieSBtb3ZpbmcgaXQgYmFjayBieSB0aGUgc2l6ZSBvZiB0aGUgYWN0aXZlIGZyYW1lCi0gICAgYmVmb3JlIHVzaW5nIGl0LgotCi0yMDAwLTA0LTI0ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogcHJvY2Vzcy5jOiBhZGQgc3BhcmMgc3VwcG9ydCB0byBjaGFuZ2Vfc3lzY2FsbAotCi0yMDAwLTA0LTIyICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IGZpeCBzb21lIHR5cG9zCi0KLTIwMDAtMDQtMTQgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogYWRkZWQgbmFtZXMgZm9yIFNWUjQsIFNZU1YsIEJTRDQuMyBhbmQgUE9TSVgKLSAgICBzeXNjYWxscwotCi0yMDAwLTA0LTEzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogZGVmcy5oOiBMaW51eC9NSVBTIHVzZXMgc3lzY2FsbHMgdXAgdG8gPjRrLCBzbyBzZXQgTUFYX1FVQUxTIHRvCi0gICAgNDk5OQotCi0yMDAwLTA0LTA5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogUkVBRE1FLWxpbnV4OiB1cGRhdGVkIHRvIG5vdGUgdGhhdCBzdHJhY2UgbWlnaHQgbm90IGNvbXBpbGUKLSAgICB3aXRoIGRldmVsb3BtZW50IGtlcm5lbHMKLSAgKiBiam0uYzogc3lzX3F1ZXJ5X21vZHVsZTogY2hlY2sgaWYgbWFsbG9jIHN1Y2NlZWRzCi0gICogc3lzdGVtLmM6IHN5c19jYXBbZ3NdZXQoKTogY2hlY2sgaWYgbWFsbG9jIHN1Y2NlZWRzLCBvbmx5IG1hbGxvYyBvbmNlCi0gICogbGludXgvc3lzY2FsbGVudC5oOiB1cGRhdGVkIGZvciAyLjMuOTlwcmUzCi0gICogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiB1cGRhdGVkIGZvciAyLjMuOTlwcmUzLCBhZGQgYWxsIG9zZiBzeXNjYWxscwotICAgIGV2ZW4gdGhvdWdoIExpbnV4IGRvZXNuJ3QgaW1wbGVtZW50IHRoZW0KLSAgKiBzeXNjYWxsLmM6IGFkZCBnbG9iYWwgdmFyaWFibGVzIGZvciBNSVBTIHJlZ2lzdGVycyBhcyB3ZWxsCi0gICogc3lzY2FsbC5jOiBtb3ZlIGdsb2JhbCB2YXJpYWJsZXMgdG8gYmVmb3JlIGdldF9zY25vIHNpbmNlIHRoYXQgdXNlcyB0aGVtCi0gICogdXRpbC5jOiBvb3BzLCBtaXNzcGVsbGVkIGRlZmluZWQKLSAgKiBwcm9jZXNzLmM6IGZpeCBwdHJhY2UgY2FsbHMgaW4gY2hhbmdlX3N5c2NhbGwKLSAgKiBtZW0uYzogZGVjb2RlIHN5c19tYWR2aXNlCi0gICogTWVyZ2UgcGF0Y2ggZnJvbSBUb3BpIE1pZXR0aW5lbiA8VG9waS5NaWV0dGluZW5AbmljLmZpPgotICAgICsgYWRkIHN1cHBvcnQgZm9yIHF1b3RhY3RsLCBmZGF0YXN5bmMsIG1sb2NrLCBtbG9ja2FsbCwgbXVubG9ja2FsbCAmIGFjY3QKLSAgICArIHNtYWxsIGZpeCBmb3IgUkxJTUlUXyogYW5kIFJVU0FHRV9CT1RICi0gICAgKyBlbmhhY2Ugc3VwcG9ydCBmb3IgY2FwZ2V0IGFuZCBjYXBzZXQKLQotMjAwMC0wMi0xOSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogdGVzdC92Zm9yay5jOiBuZXcgZmlsZSB0byB0ZXN0IHZmb3JrIHRyYWNlcwotICAqIHRlc3QvLmN2c2lnbm9yZTogbmV3IGZpbGUKLSAgKiBkZWZzLmg6IFVwIG1heGltdW0gbnVtYmVyIG9mIHRyYWNlZCBwcm9jZXNzZWQgdG8gNjQKLSAgKiBzdHJhY2UuYzogRGlzYWJsZSBzb21lIGRlYnVnZ2luZyBjb2RlIGZyb20gZGF2aWRtCi0gICogaW1wbGVtZW50IHNldGFyZyBmb3IgbW9yZSBhcmNoaXRlY3R1cmVzCi0gICogaW1wbGVtZW50IGNoYW5nZV9zeXNjYWxsCi0KLTE5OTktMTItMjcgIE1vcnRlbiBXZWxpbmRlciAgPHRlcnJhQGRpa3UuZGs+Ci0KLQkqIHN5c2NhbGwuYyAobG9va3VwX3NpZ25hbCwgbG9va3VwX2Rlc2MpOiBpc2RpZ2l0IHJlcXVpcmVzIGFuCi0gCV91bnNpZ25lZF8gY2hhciBwYXJhbWV0ZXIuCi0KLTIwMDAtMDItMTQgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIFMzOTAgdXBkYXRlcwotCi0yMDAwLTAyLTAzIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBMaW51eC9pYTY0IHBhdGNoZXMKLQotMjAwMC0wMS0wMiBQYXZlbCBNYWNoZWsJICAgICA8cGF2ZWxAdWN3LmN6PgotCi0gICogcHJvYmUgaWYgc3lzL3BvbGwuaCBleGlzdHMgaW4gY29uZmlndXJlICsgbWlub3IgY2xlYW51cHMKLQotICAqIHN5c2NhbGwuYzogc3BsaXQgdHJhY2Vfc3lzY2FsbCBpbnRvIGZldyBwaWVjZXMgdG8gbWFrZSBjb2RlIHJlYWRhYmxlCi0KLTIwMDAtMDEtMjEgV2ljaGVydCBBa2tlcm1hbiAgPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBSZWxlYXNlIHZlcnNpb24gNC4yIHRvIGdldCB0aGUgY3VycmVudCB1cGRhdGVzIG91dCBhbmQgc28KLSAgICB3ZSBjYW4gY29uY2VudHJhdGUgaW4gZmluaXNoaW5nIHRoZSBjbG9uZSBzdXBwb3J0LgotCi0yMDAwLTAxLTExIFdpY2hlcnQgQWtrZXJtYW4gIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogQWRkIDE5MDAgdG8gdG1feWVhciBpbiBzcHJpbnR0aW1lCi0KLTE5OTktMTItMjQgIFdpY2hlcnQgQWtrZXJtYW4gIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gKiBmaWxlLmM6IHByb3RlY3QgcHJpbnRzdGF0NjQgd2l0aCBTVEFUNjQgaW5zdGVhZCBvZiBsaW51eCBzbyB3ZSBjYW4KLSAgIGNvbXBpbGUgb24gTGludXggYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUgaXQKLSAqIHV0aWwuYzogZml4IExPT1AgZm9yIEFSTQotCi1GcmkgRGVjIDI0IDE4OjA1OjAwIEVTVCAxOTk5Ci0KLTE5OTktMTItMjMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgotCi0gKiBmaWxlLmM6IFVzZSB1Z2x5IGxpYmNfc3RhdCB0cmljayBhbHNvIGZvciBzdGF0NjQuCi0gICBJbXBsZW1lbnQgc3lzX3N0YXQ2NCwgc3lzX2ZzdGF0NjQsIHN5c19sc3RhdDY0LCBhbmQgcHJpbnRzdGF0NjQuCi0gKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRml4IGEgZmV3IHR5cG9zIGFuZCBhZGQgZGVmaW5pdGlvbnMgdG8gbWFrZQotICAgaXQgYXQgbGVhc3QgY29tcGlsZS4KLSAqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfc3RhdDY0LCBzeXNfbHN0YXQ2NCwgYW5kIHN5c19mc3RhdDY0LgotICogbGludXgvc3lzY2FsbGVudC5oOiBEZWZpbmUgdGFibGUgZW50cmllcyBmb3Igc3lzX3N0YXQ2NCwgc3lzX2xzdGF0NjQsCi0gICBhbmQgc3lzX2ZzdGF0NjQuCi0gKiBhY2xvY2FsLm00OiBEZWZpbmUgQUNfU1RBVDY0LgotICogYWNjb25maWcuaDogRGVmaW5lIEhBVkVfU1RBVDY0LgotICogY29uZmlndXJlLmluOiBBZGQgQUNfU1RBVDY0LgotCi1UaHUgRGVjIDIzIDE1OjAxOjM3IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBwYXRjaCBmcm9tIGZ0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2xpbnV4MzkwLyB0byBhZGQKLSAgICBzdXBwb3J0IGZvciBMaW51eCBvbiB0aGUgSUJNIFMvMzkwIGFyY2hpdGVjdHVyZQotICAqIHByb2Nlc3MuYzogYWRkIGludGVybmFsX2Nsb25lKCksIGN1cnJlbnRseSBvbmx5IHNob3dzIHRoZSBvcHRpb25zCi0gICogc3lzY2FsbC5jOiB1c2UgaW50ZXJuYWxfY2xvbmUgdG8gaGFuZGxlIFNZU19jbG9uZQotCi1Nb24gRGVjIDIwIDAwOjI3OjUwIENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBSZXdyaXRlIG1tYXAtaGFuZGxpbmcgdG8gc3VwcG9ydCBtbWFwMiBvbiBMaW51eAotCi1UdWUgRGVjIDE0IDExOjM1OjE2IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBOb3RlIHRoYXQgTGludXggY2FuIGhhbmRsZSBzeXNfc2Vtb3AoKSBhcyB3ZWxsCi0KLVR1ZSBOb3YgMzAgMTE6MDU6MjYgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEluY2x1ZGUgbGludXgvaW42LmggZm9yIGdsaWJjMi4wIGFuZCBvbGRlcgotCi1Nb24gTm92IDI5IDE2OjMzOjA0IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgdG8gbWFrZSBjb25maWd1cmUgc3VwcG9ydCBVbml4V2FyZQotCi1TYXQgTm92IDI3IDIxOjM4OjE3IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBFbmhhbmNlIHN5c19xdWVyeV9tb2R1bGUKLQotRnJpIE5vdiAyNiAxMDo1MTo1NSBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogUGF0Y2hlcyBmcm9tIEpvaG4gSHVnaGVzOgotICAgICsgY29zbWVjdGljIGZpeCBpbiBzeXNfZ2V0cG1zZwotICAgICsgYWxsb3cgbmV0LmMgdG8gY29tcGlsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgQUZfSU5FVDYKLSAgICArIE9ubHkgdXNlIGxvbmdfdG9fc2lnc2V0IG9uIExpbnV4IHN5c3RlbXMKLSAgICArIFVuaXhXYXJlIHRyZWF0cyBzaWdtYXNrX3QgYW5kIHNpZ21hc2tfdCogYXMgdGhlIHNhbWUgdGhpbmcKLSAgICArIEFkZCBwb2xsaGFjawotICAgICsgUGFyc2UgbW91bnQgYXJndW1lbnRzIGZvciBVbml4V2FyZQotICAgICsgQUNMIGZpeGVzIGZvciBVbml4V2FyZQotCi1GcmkgTm92IDI2IDAxOjI4OjA5IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBSZWxlYXNlIDQuMSB0byBnZXQgYWxsIHRoZSBjaGFuZ2VzIG1hZGUgb3V0IHRoZXJlCi0KLVRodSBOb3YgMTggMTg6MDQ6MDQgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1lcmdlIHN0cmFjZWZvcmsgZnJvbSBBbGV4ZXkgS3V6bmV0c292IDxrdXpuZXRAbXMyLmluci5hYy5ydT4KLSAgICArIFNvY2tldCBjYWxscyBwYXJzZWQgYmV0dGVyCi0JKyBidW5jaCBvZiBhbHBoYSBPU0Ygc3lzY2FsbHMgYWRkZWQKLQkrIEZpeCBhbHBoYSAzMi82NCBiaXQgaXNzdWVzCi0KLU1vbiBOb3YgIDEgMjA6NTI6MDggQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1vdmUgTGludXgga2VybmVsbW9kdWxlLWZ1bmN0aW9ucyBmcm9tIHN5c3RlbS5jIHRvIGJqbS5jIGFuZAotICAgIHJlbW92ZSBkdXBsaWNhdGUgZm9yIHN5c19jcmVhdGVfbW9kdWxlCi0gICogTGludXggTUlQUyB1cGRhdGVzOgotICAgICsgUGxheSB3aXRoICNpZmRlZidzIGluIG5ldC5jIHRvIGdldCBJUHY2IHJpZ2h0Ci0gICAgKyBVc2UgcHJpbnRhcmdzIGZvciB2bTg2LXN5c2NhbGwKLQotU3VuIE9jdCAzMSAyMjowMzowMCBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgTGludXggbWlwcyBwYXRjaCBmcm9tIEZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KLQotTW9uIE9jdCAxMSAwMDozNjoyNSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1lcmdlIHBhdGNoIGZyb20gS2VpdGggT3dlbnMgPGthb3NAb2NzLmNvbS5hdT4gdG8gc3lzX3F1ZXJ5X21vZHVsZQotICAgIGFuZCBzeXNfZGVsZXRlX21vZHVsZSBjb3JyZWN0bHkKLQotV2VkIE9jdCAgNiAwMjowMDozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIFVwZGF0ZSBjdnNidWlsZCB0byBnaXZlIGEgYmV0dGVyIGVycm9yIGlmIGF1dG9jb25mIGlzbid0IGluc3RhbGxlZAotICAqIEFkZCB0ZXN0IGZvciBsaW51eC9wdHJhY2UuaCB0byBjb25maWd1cmUKLSAgKiBTaW5jZSB3ZSBkZWZpbmUgR05VX1NPVVJDRSBpbiB0aGUgTWFrZWZpbGUgd2UgZG9uJ3QgbmVlZCB0byBkZWZpbmUKLSAgICBVU0VfR05VIGluIGZpbGUuYyBhbnltb3JlCi0KLUZyaSBTZXAgMTAgMDQ6MzU6MTYgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiAjZGVmaW5lIFVTRV9HTlUgYmVmb3JlIGluY2x1ZGluZyBmaWxlLmMgc28gd2UgZ2V0IHNvbWUgZXh0cmEgT18qIGZsYWdzCi0KLVR1ZSBBdWcgMzEgMTY6Mjc6MjEgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBBZGQgbWlzc2luZyB9IGluIElQdjYgb3V0cHV0Ci0KLVR1ZSBBdWcgMzEgMDE6MjM6MDggQ0VTVCAxOTk5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogVXBkYXRlIGNvcHlyaWdodCBmb3Igc3RyYWNlLWdyYXBoIHRvIEJTRCB0byBiZSBjb25zaXN0ZW50IHdpdGgKLSAgICB0aGUgcmVzdCBvZiBzdHJhY2UKLQotTW9uIEF1ZyAzMCAwMDo1Mzo1NyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIE1lcmdlIHBhdGNoIGZyb20gRGFuaWVsIEphY29ib3dpdHo6IEtFUk5fSkFWQV8qIGFuZCBLRVJOX1NFQ1VSRUxWTCBhcmVuJ3QKLSAgICBkZWZpbmVkIGZvciBhbGwga2VybmVsdmVyc2lvbnMKLSAgKiBBZGQgc3RyYWNlLWdyYXBoLCB3cml0dGVuIGJ5IFJpY2hhcmQgQnJhYWttYW4gPGRhcmtAeHM0YWxsLm5sPgotCi1UaHUgQXVnIDE5IDEzOjEwOjE1IENFU1QgMTk5OSBKYWt1YiBKZWxpbmVrIDxqakB1bHRyYS5saW51eC5jej4KLQotICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogRGVjbGFyZSBjcmVhdGVfbW9kdWxlL2luaXRfbW9kdWxlLgotICAqIGNvbmZpZ3VyZS5pbjogQWxsb3cgY29tcGlsYXRpb24gaW4gYSBkaWZmZXJlbnQgZGlyZWN0b3J5Ci0gICAgdGhhbiB0aGUgc291cmNlIG9uZS4KLSAgKiBzaWduYWwuYzogVXNlIGFzbS9yZWcuaCBhbmQgc3RydWN0IHJlZ3MgaW5zdGVhZCBvZiBwdF9yZWdzCi0gICAgc28gdGhhdCB3ZSBkb24ndCBkZXBlbmQgb24gYXNtL3B0cmFjZS5oIHdoaWNoIGNsYXNoZXMgd2l0aAotICAgIGdsaWJjIHN5cy9wdHJhY2UuaC4KLSAgKiB1dGlsLmM6IExpa2V3aXNlLgotICAqIHN5c2NhbGwuYzogTGlrZXdpc2UuCi0KLVdlZCBBdWcgIDQgMTg6MDE6NTAgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBTeXNjYWxsIDk0IG9uIExpbnV4IGFscGhhIGlzIHN5c19wb2xsCi0KLVN1biBKdWwgMjUgMTQ6Mzg6MzMgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBNZXJnZSBpbiBVbml4V2FyZSBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgotCi1UaHUgSnVsIDE1IDIzOjAwOjMyIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgcGF0Y2ggZnJvbSBNYWNpZWogVy4gUm96eWNraSA8bWFjcm9AZHMyLnBnLmdkYS5wbD46Ci0gICAgKyBDb3JyZWN0bHkgaW1wbGVtZW50IGZpeCBzeXNfY3JlYXRlbW9kdWxlIChMaW51eCkKLSAgICArIEFkZCBsaW1pdGVkIGhhbmRsaWcgb2Ygc3lzX2luaXRtb2R1bGUgKExpbnV4KQotCi1UdWUgSnVsIDEzIDE3OjA3OjUwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogQWRkIGNvbmZpZ3VyZS10ZXN0IGZvciBzeXMvcmVnLmggYW5kIHVzZSB0aGF0Ci0gICogVXNlIHN5cy9yZWcuaCBpbnN0ZWFkIG9mIGFzbS9wdHJhY2UuaAotCi1TYXQgSnVsIDEwIDAxOjQ2OjEwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogUmVtb3ZlIGhhY2sgaW4gc2lnbmFsLmMgZm9yIGFybSBhcmNoaXRlY3R1cmUKLSAgKiBBZGQgaGFjayBzbyB3ZSBjb21waWxlIGNvcnJlY3RseSBvbiBwb3dlcnBjCi0KLUZyaSBKdWwgIDkgMDI6Mjg6MTYgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBBZGQgYSBjb3JyZWN0ZWQgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0egotCi1UaHUgSnVsICA4IDE2OjAwOjA0IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0eiB0byBhbGxvdyB1cyB0byB1c2UgdGhlIGtlcm5lbCB0eXBlcwotICAgIGZvciB0aGUgc3RhdCBzdHJ1Y3R1cmUKLQotVGh1IEp1biAyNCAxNTo1NDoxOCBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEZpeCB0ZXN0IGZvciBzeXMvcmVnIGluY2x1ZGUKLQotVHVlIEp1biAyMiAxNzoyNjozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEZpeGVkIHNvbWUgTGludXgvcG93ZXJwYyBzaWxseW5lc3MsIHRoYW5rcyB0byBEYW5pZWwgSmFjb2Jvd2l0egotICAqIEZpeGVkIHNvbWUgU3VuT1MgY29tcGlsZSBwcm9ibGVtcyBlYXJsaWVyIHRoYXQgSSBmb3Jnb3QgdG8gaW5jbHVkZQotICAgIGhlcmUKLQotTW9uIEp1biAxNCAxMjo0NDoyNSBDRVNUIDE5OTkKLQotICAqIEF2b2lkIGxlYWtpbnQgZmQgaW50byBjaGlsZCB3aGVuIGZvcmtpbmcsIHBhdGNoIGZyb20KLSAgICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+Ci0KLUZyaSBKdW4gMTEgMTQ6NTQ6NDcgQ0VTVCAxOTk5Ci0KLSAgKiBBcHBsaWVkIElSSVg2NCBwYXRjaCBmcm9tIFRob21hcyBFLiBEaWNrZXkgPGRpY2tleUBjbGFyay5uZXQ+Ci0gICogQXBwbGllZCBTb2xhcmlzIGFuZCBtYW5wYWdlIHVwZGF0ZXMgZnJvbSBHdXkgSGFycmlzIDxndXlAbmV0YXBwLmNvbT4KLQotV2VkIEp1biAgOSAxNDo0ODo0OSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIEJyb3VnaHQgc3lzY2FsbCBsaXN0IGZvciBhbHBoYSB1cCB0byBkYXRlCi0KLVdlZCBKdW4gIDIgMTg6MzA6MTIgQ0VTVCAxOTk5IEpha3ViIEplbGluZWsgPGpqQHVsdHJhLmxpbnV4LmN6PgotCi0gICogc3lzdGVtLmM6IHN5c191bW91bnQyIHN5c2NhbGwgc3VwcG9ydC4KLSAgKiBsaW51eC9zcGFyYy9lcnJub2VudC5oOiBVcGRhdGUgc3BhcmMtbGludXggZXJybm9zLgotICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogVXBkYXRlIHVzZWQgc3BhcmMtbGludXggc3lzY2FsbHMuCi0gICogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBNYXRjaCAyLjIuOSBzeXN0ZW0gY2FsbHMuCi0gICogZmlsZS5jOiBzcGFyYy1saW51eCBhc20vc3RhdC5oIHVzZXMgZGV2X3QgZXRjLiB0eXBlcywKLSAgICBzbyBpdCBuZWVkcyBzdHJhY2UncyBvd24gY29weSBvZiB0aGUgc3RhdCBzdHJ1Y3R1cmUuCi0gICogdXRpbC5jOiBNYWtlIGl0IGNvbXBpbGUgb24gc3BhcmMtbGludXguCi0gICogc3RyYWNlLmM6IEZpeCBzdHJhY2UgLWYgYW5kIC1mZiBvcGVyYXRpb24gb24gc3BhcmMtbGludXguCi0gICogc2lnbmFsLmM6IHJ0X3NpZ2FjdGlvbiBoYXMgZGlmZmVyZW50IGFyZ3VtZW50cyBvbiBzcGFyYyotbGludXgKLSAgICBhbmQgYWxwaGEtbGludXguCi0gICogc3lzY2FsbC5jOiBSZWNvZ25pemUgc3BhcmM2NC1saW51eCBiaW5hcmllcy4KLQotRnJpIE1heSAyOCAyMTowOTowMCBQU1QgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4KLQotICAqIGNvbmZpZ3VyZS5pbjogRml4IHR5cG8gKENGTEFHIC0+IENGTEFHUykuCi0KLSAgKiBzeXNjYWxsLmM6IERvbid0IGluY2x1ZGUgbGludXgvcHRyYWNlLmggZXhwbGljaXRseSBmb3IgZ2xpYmMuCi0KLVRodSBNYXkgMjcgMTM6NTk6MjcgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBBZGQgc29tZSBzeXNjdGwgc3VwcG9ydCwgcGF0Y2ggZnJvbSBVbHJpY2ggRHJlcHBlcgotCi1XZWQgTWF5IDI2IDAxOjA0OjM0IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogVXNlIGtlcm5lbCBkaXJlbnQgc3RydWN0dXJlIGZvciBMaW51eAotCi1TdW4gTWF5ICA5IDAyOjE4OjMwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogTWVyZ2UgaW4gcGF0Y2hlcyBmcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uY3MudW5pLWRvcnRtdW5kLmRlPgotICAgICsgc29tZSBsYXlvdXQgYW5kIG90aGVyIG1pbm9yIGZpeGVzCi0gICAgKyBhZGQgc29tZSBtNjhrLXNwZWNpZmljIHRoaW5ncyB0byBsaW51eC9zeXNjYWxsZW50LmguIE5vdGUgdGhhdCBtNjhrCi0gICAgICBpcyBzaW1pbGFyIGVub3VnaCB0byBpMzg2IHRvIG5vdCBuZWVkIGl0J3Mgb3duIHN1YmRpcmVjdG9yeQotICAgICsgYWRkIHN1cHBvcnQgZm9yIHNlbmRmaWxlIGFuZCBtcmVtYXAgc3lzY2FsbHMgZm9yIExpbnV4Ci0gICogTWVyZ2UgaW4gcGF0Y2hlcyBmcm9tIFNhc2NoYSBTY2h1bWFubiA8c2FzY2hhQHNjaHVtYW5uLjJucy5kZT4KLSAgICArIGlvY3Rscy5oIHZzIHN5cy9pb2N0bC5oIG9uIEFscGhhIHBsYXRmb3JtCi0gICAgKyBwb2ludGVyIHdhcyBjYXN0ZWQgdG8gYW4gaW50IGluIHN0cmVhbS5jCi0gICAgKyBzdHJzaWduYWwoKSBuZWVkcyAtRF9HTlVfU09VUkNFIGluIENGTEFHUwotICAgICsgc2V2ZXJhbCBvdGhlciBjYXN0cyBjaGFuZ2VkCi0gICAgKyBjb3JyZWN0IEFSTS9QT1dFUlBDIGFyY2hpdGVjdHVyZSBkZWZpbmVzIGluIGFjY29uZmlnLmgKLSAgKiBNZXJnZSBpbiBwYXRjaGVzIGZyb20gTW9ydGVuIFdlbGluZGVyIDx0ZXJyYUBkaWt1LmRrPgotICAgICsgYWRkIHNvbWUgYXV0b2NvbmYtdGVzdHMgZm9yIGluY2x1ZGVmaWxlcwotICAgICsgaGFuZGxlIHNvbGFyaXMgdmVyc2lvbiBvZiBzaWdjb250ZXh0IHN0cnVjdCAoYWN0dWFsbHkgSSBoYWNrZWQgdGhpcwotICAgICAgdXAgYWdhaW4sIGJ1dCB0aGUgaWRlYSBpcyBoaXMgOikKLQotU3VuIEFwciAxOCAyMjozMjo0MiBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KLQotICAqIFVwZGF0ZSBzeXNjYWxscyBmb3IgbGludXggYWxwaGEsIHBhdGNoIGZyb20gQmFydCBXYXJtZXJkYW0KLSAgICA8YmFydHdAZGViaWFuLm9yZz4KLSAgKiBVcGRhdGUgc3BhcmMgY29kZSBzbyBpdCBhY3R1YWxseSBjb21waWxlcwotCi1GcmkgQXByIDE2IDAyOjE4OjA1IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCi0gICogQWRkIHN1cHBvcnQgZm9yIG9sZF8qc3RhdCBmdW5jdGlvbnMgZm9yIExpbnV4LiBQbGVhc2Ugbm90ZSB5b3UgbmVlZAotICAgIHRvIHVzZSByZWFzb25hYmx5IHJlY2VudCBrZXJuZWwgaGVhZGVycyB0byBjb21waWxlIHN0cmFjZSBub3cuCi0gICogQ2hhbmdlIHJlZmVyZW5jZXMgdG8gTElOVVggaW50byBsaW51eCBpbiBmaWxlLmMKLSAgKiBGaXggaW5jbHVkZSBmb3IgTERUIGluIG1lbS5jCi0KLVRodSBBcHIgMTUgMjI6Mjg6MTUgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+Ci0KLSAgKiBDaGFuZ2UgaW4gc3RyYWNlIG1haW50YWluZXJzaGlwLCBqcnMgcGFzc2VkIHRoZSB0b3JjaCB0byBtZS4KLSAgKiBVc2UgYXV0b2NvbmYgMi4xMwotICAqIEluY29ycG9yYXRlIGFsbCBjaGFuZ2VzIGFscmVhZHkgbWFkZSBpbiB0aGUgRGViaWFuIHN0cmFjZSBwYWNrYWdlOgotICAgICsgY29tcGlsZXMgd2l0aCBtb3JlIExpbnV4IGtlcm5lbHMKLSAgICArIGFkZGVkIHN1cHBvcnQgZm9yIG1vcmUgTGludXggYXJjaGl0ZWN0dXJlcwotICAgICsgYWRkIHN1cHBvcnQgZm9yIGEgbG90IG9mIGV4dHJhIHN5c2NhbGxzCi0gICAgKyBmaXggc29tZSBwcm9ibGVtcyB3aXRoIGhhbmdpbmcgY2hpbGRyZW4KLSAgICArIGNoZWNrIHN0cmF5IHN5c2NhbGwgYWZ0ZXIgZXhlY3YKLSAgICArIGRlY29kZSBjYXBnZXQgYW5kIGNhcHNldCBhcmd1bWVudHMKLSAgICArIGFkZCBtb3JlIGNvbnN0YW50cyB0byBuZXQuYwotICAgICsgZGV0ZWN0IFJPU0UgbmV0d29ya2luZwotICAgICsgYWRkIG1vcmUgcHJvdG9jb2wgZmFtaWxpZXMgdG8gZG9tYWlucwotICAgICsgYWRkIElQSVAgcHJvdG9jb2wKLSAgICArIGFkZGVkIE1TR19QUk9YWSBhbmQgTVNHX0NUUlVOQyB0byBtc2dfZmxhZ3MKLSAgICArIGFkZGVkIFNPX0JTRENPTVBBVCBhbmQgU09fUkVVU0VQT1JUIHRvIHNvY2tvcHRpb25zCi0gICAgKyBhZGRlZCBJUCwgSVBYIGFuZCBUQ1Atb3B0aW9ucwotICAgICsgYWRkZWQgSVAsIElQWCBhbmQgVENQIHN1cHBvcnQgdG8gZ2V0LS9zZXRzb2Nrb3B0KCkKLSAgICArIGFkZGVkIElQWCBzdXBwb3J0Ci0gICAgKyB1cGRhdGVkIGhhbmRsaW5nIG9mIHNpZ25hbHMKLQotU3VuIE9jdCAyNyAyMjoyODowMCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdXRpbC5jICh1bW92ZXN0cikgW0xJTlVYXTogSGFuZGxlIExpbnV4IGxpa2UgU3VuT1M0Ci0JaW5zdGVhZCBvZiBTVlI0LiAgVGhhdCBpcywgcmVhZCBhIGZldyBieXRlcyBhdCBhIHRpbWUKLQl0byBhdm9pZCBvdmVycnVubmluZyB0aGUgZW5kIG9mIHRoZSBzdGFjay4KLQotRnJpIE1heSAzMSAwMTo0ODo0OSAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMSBpcyByZWxlYXNlZC4KLQotVGh1IE1heSAyMyAwMTowNDo0MyAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogYWNsb2NhbC5tNCAoQUNfREVDTF9TWVNfRVJSTElTVCk6IFRyeSBsb29raW5nIGluIHN0ZGlvLmgKLQlhcyB3ZWxsIHNpbmNlIHRoYXQncyB3aGVyZSBnbGliYyBkZWNsYXJlcyBpdC4gIEdvIGZpZ3VyZS4KLQkqIHNpZ25hbC5jIChzeXNfc2lncmV0dXJuKSBbQUxQSEFdOiBVc2Ugc2lnY29udGV4dAotCWluc3RlYWQgb2Ygc2lnY29udGV4dF9zdHJ1Y3Qgc2luY2UgZ2xpYmMgdjUrIGFwcGFyZW50bHkKLQlwbGF5cyBnYW1lcyB3aXRoIHRoZSBuYXRpdmUgT1MgbmFtZXNwYWNlLgotCUZyb20gRGF2aWQgTW9zYmVyZ2VyLVRhbmcgPGRhdmlkbUBBWlN0YXJOZXQuY29tPi4KLQotTW9uIE1heSAyMCAyMzoxNzoxNCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xNCBpcyByZWxlYXNlZC4KLQotCSogYWNsb2NhbC5tNCAoQUNfU1RSVUNUX01TR19DT05UUk9MKTogTmV3IG1hY3JvLgotCSogY29uZmlndXJlLmluOiBBZGQgY2FsbCB0byBBQ19TVFJVQ1RfTVNHX0NPTlRST0wuCi0JKiBuZXQuYyAocHJpbnRtc2doZHIpOiBIYW5kbGUgQlNEIDQuMyBhbmQgNC40IG1zZ2hkciBtZW1iZXJzCi0gCWRpZmZlcmVudGx5LgotCVJlcG9ydGVkIGJ5IEhlbnJpayBTdG9ybmVyIDxzdG9ybmVyQG9zaXJpcy5waW5nLmRrPi4KLQotCSogY29uZmlndXJlLmluOiAoQUNfQ0hFQ0tfe0hFQURFUlMsRlVOQ1N9KTogQWRkIGNoZWNrcyBmb3IKLSAJc3lzL2ZpbGlvLmggYW5kIHN5cy9zdHJlYW0uaCBhbmQgcmVtb3ZlIGNoZWNrIGZvciBwb2xsLgotCSogZGVzYy5jIChkZWNvZGVfc2VsZWN0LCBzeXNfc2VsZWN0LCBzeXNfb2xkc2VsZWN0KSBbTElOVVhdOgotIAlIYW5kbGUgb2xkIGFuZCBuZXcgc3R5bGVzIG9mIGFyZ3VtZW50IHBhc3NpbmcgZm9yIHNlbGVjdCBvbiBMaW51eC4KLQkqIGlvY3RsLmMsIHN0cmVhbS5jOiBDb25kaXRpb25hbGl6ZSBzdHJlYW0gY29kZSBvbiBwcmVzZW5jZSBvZgotCXN5cy9zdHJlYW0uaCBpbnN0ZWFkIG9mIHBvbGwgYmVjYXVzZSBnbGliYyBpbXBsZW1lbnRzIHBvbGwgYnV0Ci0Jbm90IHRoZSByZXN0IG9mIHRoZSBzdHJlYW0gaW50ZXJmYWNlLgotCSogc2lnbmFsLmMgW0xJTlVYXTogU3RhbmRhcmRpemUgb24gdGhlIG5hbWUgc2lnY29udGV4dF9zdHJ1Y3QuCi0JKHN5c19zaWdwcm9jbWFzaykgW0FMUEhBXTogSGFuZGxlIE9TRiBmbGF2b3Igd2hpY2ggaXMgbW9yZSBsaWtlCi0Jc2lnc2V0bWFzay4KLQkqIHRlcm0uYyAodGVybV9pb2N0bCk6IFVzZSBfVk1JTiwgaWYgcHJlc2VudCwgZm9yIFRDe0csU31FVEEqLgotCSogdXRpbC5jICh1bW92ZW4sIHVtb3Zlc3RyKTogTW92ZSBkYXRhIGluIGxvbmctc2l6ZWQgY2h1bmtzCi0JYXQgYSB0aW1lLCBpbnN0ZWFkIG9mIGhhcmQgY29kaW5nIGl0IHRvIGJlIDQuCi0JRnJvbSBEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQEFaU3Rhck5ldC5jb20+LgotCi1Nb24gTWF5IDIwIDAxOjE5OjM2IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEzIGlzIHJlbGVhc2VkLgotCi0JKiBjb25maWd1cmUuaW4gKEFDX0NIRUNLX0hFQURFUlMpOiBBZGQgY2hlY2sgZm9yIGFzbS9zaWdjb250ZXh0LmguCi0JKiBzaWduYWwuYyBbSEFWRV9BU01fU0lHQ09OVEVYVF9IXTogQ29uZGl0aW9uYWxseSBpbmNsdWRlCi0JYXNtL3NpZ2NvbnRleHQuaCB0byBkZWZpbmUgc2lnY29udGV4dF9zdHJ1Y3QgYW5kIGRvbid0IGRlZmluZSBpdAotCWxvY2FsbHkgaWYgdGhlIGhlYWRlciBpcyBwcmVzZW50LgotCi0JKiBzeXNjYWxsLmMgKG5lcnJub3N7MCwyfSk6IENvcnJlY3Qgc2l6ZSBjb21wdXRhdGlvbi4KLQotCSogTWFrZWZpbGUuaW46IFJlbW92ZSBkZXBlbmRlbmNpZXMgYW5kIHJ1bGVzIHJlbGF0aW5nIHRvIGZpbGVzCi0gCW5vcm1hbGx5IGZvdW5kIGluIHRoZSBvcyBkaXJlY3RvcnkuICBCZWNhdXNlIG9mIHRoZSBuZXcgc2NoZW1lIHdlCi0gCWRvbid0IGtub3cgcHJlY2lzZWx5IHdoZXJlIHRoZXkgY29tZSBmcm9tLiAgU2lnaC4KLQkqIHNpZ25hbGVudC5zaDogTWFrZSBpdCB3b3JrIGZvciBzdW5vczQsIGxpbnV4LCBhbmQgc3ZyNC4KLQkqIHtzdW5vczQsbGludXh7LC9hbHBoYX0sc3ZyNH0vTWFrZWZpbGUuaW46IE1ha2UgcnVsZXMgY29ycmVzcG9uZAotIAl0byB0cmFkaXRpb25hbCBtYWtlIHN5bnRheC4gIEFkZCBzaWduYWxlbnQuaCB0byBmaWxlcyB3aGljaCBjYW4KLSAJdW5jb25kaXRpb25hbGx5IGJlIHJlYnVpbHQuICBQcmV2ZW50IHNpZ25hbGVudC5oIGZyb20gYmVpbmcKLSAJdW5jb25kaXRpb25hbGx5IGJlaW5nIHJlYnVpbHQgc2luY2UgaXQncyBjdXN0b21pemVkLgotCSoge3N1bm9zNCxsaW51eHssL2FscGhhfSxzdnI0fS97aW9jdGxlbnQsZXJybm9lbnQsc2lnbmFsZW50fS5oOgotIAlVc2UgdmVyc2lvbnMgYnVpbHQgYnkge2lvY3RsZW50LGVycm5vZW50LHNpZ25hbHRlbnR9LnNoLgotICAJKiBzdW5vczQvaW9jdGxlbnQuc2g6IFdvcmsgYXJvdW5kIHNwcmludGYgdHJvdWJsZXMgd2l0aCBTdW5PUwotIAk0LjEuNCBhbmQgZ2NjIDIuNy4yLgotCi1TdW4gTWF5IDE5IDE3OjE0OjA5IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluOiBBZGQgT1NBUkNIIGNvbmNlcHQgdG8gZmluaXNoCi0JYnVpbGQgc3VwcG9ydCBmb3IgdGhlIGFscGhhLgotCSogTWFrZWZpbGUuaW4sIGxpbnV4L01ha2VmaWxlLmluOiBSZXdyaXRlIGNsZWFuLCBkaXN0Y2xlYW4sCi0JYW5kIG1haW50YWluZXItY2xlYW4gcnVsZXMuCi0JKiBkZWZzLmgsIGlvY3Rsc29ydC5jOiBNYWtlIGlvY3RsIGNvZGUgbWVtYmVyIHVuc2lnbmVkLgotCSogaW9jdGwuYywgaW9jdGxzb3J0LmMgKGNvbXBhcmUpOiBQZXJmb3JtIGV4cGxpY2l0IGNoZWNraW5nCi0JZm9yIGxlc3MsIGdyZWF0ZXIsIGFuZCBlcXVhbCBzaW5jZSBzdWJ0cmFjdGlvbiBvbiB0d28ncwotCWNvbXBsZW1lbnQgbnVtYmVycyBpc24ndCBhbiBvcmRlciByZWxhdGlvbiAoaXQgaXNuJ3QgdHJhbnNpdGl2ZSkhCi0JKiBsaW51eC9NYWtlZmlsZS5pbjogQWRkIHJ1bGVzIGZvciB0aGUgc2lnbmFsZW50LmggZmlsZS4KLQkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KLQotU3VuIE1heSAxOSAwMToxMjoyOCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xMiBpcyByZWxlYXNlZC4KLQotCSogbGludXh7LGFscGhhfS9pb2N0bGVudC5zaDogVHdlYWsgZm9yIHJlY2VudCBrZXJuZWxzLgotCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgotCi0JKiBkZWZzLmggKFNVUFBPUlRFRF9QRVJTT05BTElURVMsIERFRkFVTFRfUEVSU09OQUxJVFkpOiBOZXcuCi0JKiBzeXNjYWxsLmMgKHNldF9wZXJzb25hbGl0eSk6IE5ldy4KLQkqIHN0cmFjZS5jIChtYWluKTogQ2FsbCBzZXRfcGVyc29uYWxpdHkuCi0gCSogZGVmcy5oLCBzeXNjYWxsLmMsIGlvY3RsLmMsIHNpZ25hbC5jOiBNYWtlIHN5c2VudCwgZXJybm9lbnQsCi0gCWlvY3RsZW50LCBhbmQgc2lnbmFsZW50IGluZGlyZWN0IHBvaW50ZXJzIGFuZCByZWRpcmVjdCB0aGVtCi0JYmFzZWQgb24gcGVyc29uYWxpdHkuCi0JKiB7c3Vub3M0LHN2cjQsbGludXh7LC9hbHBoYX19L3NpZ25hbGVudC5oOiBOZXcgZmlsZXMuCi0JU3VnZ2VzdGVkIGJ5IFRvbSBEeWFzIDx0ZHlhc0BlZGVuLnJ1dGdlcnMuZWR1Pi4KLQotCSogdXRpbC5jICh1cGVlayk6IEhhbmRsZSBjYXNlIHdoZXJlIHB0cmFjZSByZXR1cm5zIGEgbG9uZwotCWFuZCBzaXplb2YobG9uZykgIT0gc2l6ZW9mKGludCkuCi0JRnJvbSBSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgotCi1GcmkgTWF5IDE3IDIxOjAzOjM2IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjExIGlzIHJlbGVhc2VkLgotCi0JKiBtYW55IGZpbGVzOiBGaXggbW9yZSBwcmludGYgd2FybmluZ3MgZm9yIG90aGVyIHBsYXRmb3Jtcy4KLQotCSogaXBjLmMgKHN5c19tc2dyY3YpIFtMSU5VWF06IENvbmRpdGlvbmFsaXplIGRlZmluaXRpb24gb2YgaXBjX3dyYXBwZXIuCi0KLQkqIGxpbnV4L2R1bW15Lmg6IEhhbmRsZSBtaXNzaW5nIGxpYnJhcnkgc3VwcG9ydCBmb3Ige3NlbmQscmVjdn1tc2cuCi0JUmVwb3J0ZWQgYnkgVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYmlnYnVnLmZyYW5rZW4uZGU+LgotCi0JKiBsaW51eC9zeXNjYWxsLmggKHN5c191dGltZXMpOiBGaXggYSB0eXBvIGluIHRoZSBkZWNsYXJhdGlvbi4KLQlGcm9tIFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGJpZ2J1Zy5mcmFua2VuLmRlPi4KLQotRnJpIE1heSAxNyAwMDo1MDowNiAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xMCBpcyByZWxlYXNlZC4KLQotCSogTWFrZmlsZS5pbjogQWRkIG9zL2FyY2ggdG8gaW5jbHVkZXMgc28gdGhhdCBhIGdpdmVuIGFyY2gKLQkobGlrZSBhbHBoYSkgY2FuIG92ZXJyaWRlIHRoZSBuYXRpdmUgYXJjaCAobGlrZSBpMzg2KS4KLQkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIHNlbmRtc2cuCi0KLQkqIG5ldC5jOiBNYWtlIHNlbmRtc2cgYW5kIHJlY3Ztc2cgZGVwZW5kZW50IG9uIGFuIGF1dG9jb25mCi0JdGVzdC4gIFJlcG9ydGVkIGJ5IE1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0Pi4KLQotCSogYWNjb25maWcuaCwgY29uZmlndXJlLmluOiBEZXRlY3QgdGhlIGFscGhhLgotCSogaW9jdGwuYzogSGFuZGxlIHRoZSBhbHBoYS4KLQkqIGRlZnMuaDogTWFrZSBzb21lIG1lbWJlcnMgbG9uZyBmb3IgdGhlIGFscGhhLiAgRGVmaW5lCi0Jc29tZSByZWdpc3RlciBuaWNrbmFtZXMuICBBZGQgc3VwcG9ydCBmb3IgV0FJVEVYRUNWRS4KLQkqIGZpbGUuYyBbQUxQSEFdOiBTdXBwb3J0IHRoZSBhbHBoYSBmb3Igc3RhdGZzLiAgQWRkCi0Jb3NmX3N0YXRmcyBhbmQgb3NmX2ZzdGF0ZnMgZm9yIHRoZSBhbHBoYS4gIE1ha2UgZGFtbiBzdXJlCi0JbWFqb3IgYW5kIG1pbm9yIHJlc3VsdHMgYXJlIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIHByaW50Zi4KLQkqIHNpZ25hbC5jLCBzeXNjYWxsLmM6IFN1cHBvcnQgdGhlIGFscGhhLgotCSogcHJvY2Vzcy5jOiBBZGQgYWxwaGEgdXNlciBvZmZzZXRzLgotCSogbW9zdCBmaWxlczogVXNlICVsPyBmb3IgcHJpbnRmIGFyZ3VtZW50cyBzaW5jZQotCW1vc3QgYXJlIG5vdyBsb25ncyBmb3IgdGhlIGFscGhhLgotCSogbGludXgvYWxwaGEve2Vycm5vZW50LmgsaW9jdGxlbnQue2gsc2h9LHN5c2NhbGxlbnQuaH06Ci0JTmV3IGZvciB0aGUgYWxwaGEuCi0JRnJvbSBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4uCi0KLVdlZCBNYXkgMTUgMDA6Mjk6MzcgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuOSBpcyByZWxlYXNlZC4KLQotCSogY29uZmlnLmluLCBjb25maWcuc3ViLCBpbnN0YWxsLXNoOiBVcGdyYWRlIHRvIGF1dG9jb25mIDIuMTAuCi0KLQkqIGxpbnV4L2R1bW15LmgsIGxpbnV4L3N5c2NhbGxlbnQuaCwgbGludXgvc3lzY2FsbC5oOiBBZGQgcmVjZW50Ci0JTGludXgga2VybmVsIHZlcnNpb24gc3lzdGVtIGNhbGxzLgotCi1XZWQgTWFyIDEzIDAxOjAzOjM4IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBpcGMuYyBbU1VOT1M0XTogQWRkIFN1bk9TIHN1cHBvcnQgZm9yIGRlY29kaW5nIElQQyBjYWxscy4KLQkqIHN5c2NhbGwuYyBbU1VOT1M0XTogQ29tcGlsZSBkZWNvZGVfc3ViY2FsbCBvbiBTdW5PUyBhbmQKLQlkZWNvZGUgSVBDIGNhbGxzIHVzaW5nIGl0LgotCSogc3Vub3M0L2R1bW15Lmg6IEFsaWFzIHN5c19zZW1vcCB0byBwcmludGFyZ3MuCi0JKiBzdW5vczQvc3lzY2FsbC5oOiBBZGQgbmV3IHBzZXVkbyBzeXNjYWxscyBmb3IgSVBDLgotCSogc3Vub3M0L3N5c2NhbGxlbnQuaDogSW5jbHVkZSBuZXcgc3ViY2FsbHMgZm9yIElQQy4KLQlGcm9tIE1hdHRoaWFzIFBmYWxsZXIgPGxlb0BkYWNoYXUubWFyY28uZGU+LgotCi1UdWUgRmViIDEzIDIyOjA4OjI1IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjggaXMgcmVsZWFzZWQuCi0KLQkqIHRpbWUuYyBbTElOVVhdOiBFeHBsaWNpdGx5IGluY2x1ZGUgbGludXgvdmVyc2lvbi5oLgotCi0JKiBzdHJhY2UuYyAobWFpbik6IERvbid0IGxldCB0aGVtIGV2ZW4gKnRyeSogdG8KLQlnZXQgc3RyYWNlIHRvIGF0dGFjaCB0byBpdHNlbGYgc2luY2Ugc29tZSBzeXN0ZW1zCi0JZG9uJ3QgaGFuZGxlIHRoaXMgY2FzZSB2ZXJ5IGdyYWNlZnVsbHkuCi0JUmVwb3J0ZWQgYnkgRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBjYWlwLnJ1dGdlcnMuZWR1Pi4KLQotCSogTWFrZWZpbGUuaW4gKGRpc3RjbGVhbik6IEZpeCBpdCBmb3Igc3ViZGlyZWN0b3JpZXMuCi0KLQkqIHN1bm9zNC9zeXNjYWxsZW50LmgsIHN2cjQvc3lzY2FsbGVudC5oOiBGaWxsIGluIHRoZSBuZXcKLQlzeXNfZmxhZ3MgbWVtYmVyIGZvciBlYWNoIGRlZmluZWQgc3lzdGVtIGNhbGwuCi0KLUZyaSBEZWMgIDggMDE6MTc6MjggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGRlZnMuaCAoVFJBQ0VfKik6IE5ldyBmbGFncyB0byBkZXNjcmliZSB3aGF0IGNsYXNzCi0Jb2Ygc3lzdGVtIGNhbGwgZWFjaCBzeXN0ZW0gY2FsbCBpcy4KLQkoc3lzZW50KTogQWRkIHN5c19mbGFncyBtZW1iZXIuCi0JKiBzeXNjYWxsLmMgKHN5c2VudCk6IERlZmluZSAoYW5kIGxhdGVyIHVuZGVmKSBhYmJyZXZpYXRpb25zCi0JZm9yIHRoZSBzeXN0ZW0gY2FsbCBjbGFzcyBmbGFncy4KLQkobG9va3VwX2NsYXNzKTogTmV3IGZ1bmN0aW9uIHRvIHRyYW5zbGF0ZSBzdHJpbmdzIHRvCi0Jc3lzdGVtIGNhbGwgY2xhc3MgZmxhZ3MuCi0JKHF1YWxpZnkpOiBIYW5kbGUgbmV3IHN5c3RlbSBjYWxsIGNsYXNzIG1lY2hhbmlzbS4KLQkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRmlsbCBpbiB0aGUgbmV3IHN5c19mbGFncyBtZW1iZXIKLQlmb3IgZWFjaCBkZWZpbmVkIHN5c3RlbSBjYWxsLgotCi0JKiBkZWZzLmggKHByaW50X3NvY2spOiBSZW1vdmUgcmVkdW5kYW50IGFuZCBub24tSyZSIEMKLQljb21wYXRpYmxlIHByb3RvdHlwZS4gIEZyb20gSnVlcmdlbiBXZWlnZXJ0Ci0JPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPi4KLQotVGh1IERlYyAgNyAwMToxNzo0MCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogbGludXgvaW9jdGxlbnQuc2g6IFR3ZWFrIHRvIGltcHJvdmUgaW9jdGwgYWNjdXJhY3kuCi0JRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCi0KLQkqIHN5c3RlbS5jIChpbmNsdWRlcykgW0xJTlVYXTogQWRkIGxpbnV4L25mcy5oIGZvciByZWNlbnQKLQlrZXJuZWxzLiAgRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCi0KLVdlZCBEZWMgIDYgMjE6NTI6MjggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGZpbGUuYyAoc3ByaW50ZnN0eXBlKTogRW5jbG9zZSBzdHJpbmcgcmVzdWx0IGluIGRvdWJsZQotCXF1b3Rlcy4KLQotCSogdGltZS5jIChzeXNfYWRqdGltZXgpIFtMSU5VWF06IENvbmRpdGlvbmFsaXplCi0JY29uc3RhbnRseSBldm9sdmluZyB0aW1leCBzdHJ1Y3R1cmUuCi0JRnJvbSBBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4uCi0KLQkqIGRlZnMuaCwgc3lzY2FsbC5jLCBzdHJhY2UuYzogUmVuYW1lIHN5c2NhbGwgdG8KLQl0cmFjZV9zeXNjYWxsIGFuZCBjaGFuZ2UgcHJvdG90eXBlIGFuZCBhbGwgY2FsbGVycwotCWJlY2F1c2Ugb2YgYnJva2VuIExpbnV4IHNoYXJlZCBsaWJyYXJpZXMuCi0JRnJvbSBBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4uCi0KLQkqIE1ha2VmaWxlLmluIChjbGVhbik6IENoZWNrIGZvciBhIGZpbGUgd2l0aCB0ZXN0IC1mIG5vdAotCXRlc3QgLWQuICBGcm9tIEFhcm9uIFVja28gPFVDS09AVkFYMS5ST0NLSFVSU1QuRURVPi4KLQotVHVlIFNlcCAyNiAwMjozMjozMSAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC43IGlzIHJlbGVhc2VkLgotCi0JKiB1dGlsLmMgKHN0cmluZ19xdW90ZSk6IEZpeCB0aGlua28gd2hpY2ggY2F1c2VkIGNvcmUKLQlkdW1wcyBmb3Igc3RyaW5ncyB3aXRoIHF1b3RlcyBpbiB0aGVtLgotCVJlcG9ydGVkIGJ5IE1hcnR5IExlaXNuZXIgPGxlaXNuZXJAc2RzcC5tYy54ZXJveC5jb20+LgotCi0JKiBsaW51eC9NYWtlZmlsZS5pbiAoZXJybm9lbnQuaCBydWxlKTogR3JhYiBhbGwgZXJybm8uaAotCWZpbGVzIGZyb20gL3Vzci9pbmNsdWRlLCBub3QganVzdCB0aGUgbGludXggb25lLgotCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgotCi0JKiBsaW51eC9lcnJub2VudC5zaDogVG90YWwgcmV3cml0ZSB0byBoYW5kbGUgbW9yZSBpb2N0bHMgd2l0aAotCWZld2VyIGZhbHNlIHBvc2l0aXZlcyBvbiBtb3JlIGtlcm5lbCBmbGF2b3JzLgotCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgotCi1Nb24gU2VwICA0IDAxOjI5OjIyIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjYgaXMgcmVsZWFzZWQuCi0KLQkqIGxpbnV4L2R1bW15LmgsIGxpbnV4L3N5c2NhbGwuaCwgbGludXgvc3lzY2FsbGVudC5oOiBBZGQKLQlzeXNfbXN5bmMuCi0JKiBtZW0uYyAobWN0bF9mdW5jcywgbWN0bF9sb2NrYXMsIHN5c19tY3RsKTogQ29uZGl0aW9uYWxpemUKLQlvbiBNQ19TWU5DIGluc3RlYWQgb2YgSEFWRV9NQ1RMLgotCShtY3RsX3N5bmMpOiBDb25kaXRpb25hbGl6ZSBvbiBNU19BU1lOQyBpbnN0ZWFkIG9mIEhBVkVfTUNUTC4KLQkoc3lzX21zeW5jKTogTmV3IGZ1bmN0aW9uLgotCi1TYXQgU2VwICAyIDEyOjA2OjA0IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBsaW51eC9kdW1teS5oLCBsaW51eC9zeXNjYWxsLmgsIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkCi0Jc3lzX2Zsb2NrIGFuZCBzeXNfZ2V0ZGVudHMuCi0JKiBkZXNjLmMgKGZsb2NrY21kcywgc3lzX2Zsb2NrKTogQ29uZGl0aW9uYWxpemUgb24gTE9DS19TSAotCW5vdCBTVU5PUzQuCi0JKiBmaWxlLmMgKHN5c19nZXRkZW50cyk6IERlZmluZSB1bmNvbmRpdGlvbmFsbHkgYW5kIGhhbmRsZQotCUxJTlVYIGNhc2UuCi0JKiBzdHJhY2UuYyAobWFpbik6IERpc2FsbG93IHVzZXJuYW1lIG9wdGlvbiB1bmxlc3MgYm90aCByZWFsCi0JYW5kIGVmZmVjdGl2ZSB1aWRzIGFyZSByb290LgotCi1XZWQgQXVnIDMwIDAxOjI5OjU4IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBzdHJhY2UuYyAobWFpbik6IEVuc3VyZSB0aGF0IHJ1bl91aWQgYW5kIHJ1bl9naWQgYXJlCi0JYWx3YXlzIHNldCB0byBzb21ldGhpbmcgbWVhbmluZ2Z1bC4KLQkobWFpbiwgbmV3b3V0ZikgWyFTVlI0XTogU3dhcCByZWFsIGFuZCBlZmZlY3RpdmUgdWlkcyB3aGlsZQotCW9wZW5pbmcgYW55IG91dHB1dCBmaWxlcy4KLQkobWFpbikgWyFTVlI0XTogVHJlYXQgZWZmZWN0aXZlIHVpZCBvZiByb290IGFzIGEgcmVxdWVzdAotCXRvIGhhbmRsZSBzdWlkIGJpbmFyaWVzIGNvcnJlY3RseSB1c2luZyB0aGUgcmVhbCB1aWQgb2YKLQl0aGUgaW52b2tpbmcgdXNlci4KLQotU2F0IEF1ZyAxOSAwMDowNjowOCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogTWFrZWZpbGUuaW46IEFkZCBgfHwgdHJ1ZScgdG8gY2xlYW4gcnVsZSBiZWNhdXNlCi0JYWx0aG91Z2ggR05VIG1ha2UgMy43NCB1c2VzIGBzaCAtYycgdG8gaW52b2tlIGNvbW1hbmRzCi0JZXZlcnkgb3RoZXIgbWFrZSBpbiB0aGUgd29ybGQgdXNlcyBgc2ggLWVjJy4KLQotCSogc3lzY2FsbC5jIChzeXNjYWxsKSBbU1ZSNCwgTUlQU106IFRoZSBmaWZ0aCBhbmQgc3Vic2VxdWVudAotCWFyZ3VtZW50cyBhcHBlYXIgdG8gYmUgc3RvcmVkIG9uIHRoZSBzdGFjaywgbm90IGluIHRoZQotCXJlZ2lzdGVycyBmb2xsb3dpbmcgQTMgKGVtcGlyaWNhbCByZXN1bHQpLgotCi0JKiBkZWZzLmg6IEFkZCBwcm90b3R5cGUgZm9yIHByaW50c29jay4KLQkqIHN2cjQvZHVtbXkuaDogUmVtb3ZlIGdlbmVyaWMgaGFuZGxpbmcgb2Ygc3lzX21vdW50LgotCSogc3lzdGVtLmMgW1NWUjQsIE1JUFNdOiBJbmNsdWRlIHNldmVyYWwgc3lzdGVtIGhlYWRlcnMgdG8gY2xlYW5seQotCWdldCBhY2Nlc3MgdG8gU0dJIG1vdW50IGluZm9ybWF0aW9uLgotCShtb3VudF9mbGFncywgbmZzX2ZsYWdzKSBbU1ZSNCwgTUlQU106IE5ldyBvYmplY3RzLgotCShzeXNfbW91bnQpIFtTVlI0LCBNSVBTXTogTmV3IGZ1bmN0aW9uLgotCShzeXNfbW91bnQpIFtTVlI0LCAhTUlQU106IE5ldyBmdW5jdGlvbi4KLQotVHVlIEp1bCAgNCAwMDozMDozNCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC41IGlzIHJlbGVhc2VkLgotCi0JKiBkZXNjLmMsIHJlc291cmNlLmMsIHN0cmFjZS5jLCBzeXNjYWxsLmMsIHRpbWUuYzogQ2FzdCB0dl9zZWMgYW5kCi0gCXR2X3VzZWMgbWVtYmVycyB0byBsb25nIHdoZW4gdXNpbmcgcHJpbnRmLgotCi0JKiBpcGMuYzogT21pdCBkZWZpbmUgb2YgX19LRVJORUxfXy4KLQkoe01TRyxTRU0sU0hNfV97U1RBVCxJTkZPfSk6IEV4cGxpY2l0bHkgZGVmaW5lIHRob3NlIHRoaW5ncyB3ZQotIAl3YW50IHdoaWNoIF9fS0VSTkVMX18gdXNlZCB0byBwcm92aWRlLgotCShzeXNfbXNncmN2KTogQ2hhbmdlIHJlZmVyZW5jZSB0byBpcGNfa2x1ZGdlIHN0cnVjdHVyZSB0bwotCWxvb2stYWxpa2UgaXBjX3dyYXBwZXIgdG8gYXZvaWQgZGVwZW5kZW5jZSBvbiBfX0tFUk5FTF9fLgotCi0JbWVtLmMgKG1tYXBfZmxhZ3MpIFtNQVBfe0dST1dTRE9XTixERU5ZV1JJVEUsRVhFQ1VUQUJMRX1dOiBBZGQKLSAJTGludXggc3BlY2lmaWMgb3B0aW9ucy4KLQotCXN5c2NhbGwuYzogVXNlIFNZU19FUlJMSVNUX0RFQ0xBUkVEIGluc3RlYWQgb2YgZ3Vlc3NpbmcuCi0gIAlbRXtSRVNUQVJUe1NZUyxOT3tJTlRSLEhBTkR9fSxOT0lPQ1RMQ01EfV06IEV4cGxpY2l0bHkgZGVmaW5lCi0gCWluc3RlYWQgb2YgZGVwZW5kaW5nIG9mIF9fS0VSTkVMX18uCi0KLQl0ZXJtLmM6IENhc3QgY197aSxvLGMsbH1mbGFnIHRvIGxvbmcgd2hlbiB1c2luZyBwcmludGYuCi0KLVR1ZSBKdW4gIDYgMDA6Mjc6NDggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGFjbG9jYWwubTQgKEFDX0RFQ0xfU1lTX0VSUkxJU1QsIEFDX0RFQ0xfX1NZU19TSUdMSVNUKTogTmV3LgotCSogY29uZmlndXJlLmluOiBDYWxsIEFDX0RFQ0xfU1lTX0VSUkxJU1QsIEFDX0RFQ0xfU1lTX1NJR0xJU1QsCi0JYW5kIEFDX0RFQ0xfX1NZU19TSUdMSVNULgotCSogYWNjb25maWcuaCAoU1lTX0VSUkxJU1RfREVDTEFSRUQpOiBOZXcuCi0JKiBzdHJhY2UuYyAoc3RyZXJyb3IpOiBVc2UgU1lTX0VSUkxJU1RfREVDTEFSRUQuCi0JKHN0cnNpZ25hbCk6IFVzZSBTWVNfU0lHTElTVF9ERUNMQVJFRC4KLQotCW5ldC5jIChzeXNfc29ja2V0KTogT21pdCBpbmFkdmVydGVudCBzdXJwbHVzIGNvbW1hIHdoZW4KLQlwcm90b2NvbCBmYW1pbHkgaXNuJ3QgUEZfSU5FVC4KLQotCXV0aWwuYyAoZHVtcHN0cik6IEZpeCBpbmNvcnJlY3QgcHJpbnRpbmcgb2Ygb25lIHRvbyBtYW55Ci0JY2hhcmFjdGVycyB3aGVuIHRoZSBsZW5ndGggaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTYgYnl0ZXMuCi0JUmVwb3J0ZWQgYnkgSnVlcmdlbiBXZWlnZXJ0Ci0JPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPi4KLQotVGh1IE1heSAgNCAyMzozNzo0NyAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogaW9jdGwuYyAoY29tcGFyZSk6IENoYW5nZSBwcm90b3R5cGUgdG8gbWF0Y2ggUE9TSVggcXNvcnQuCi0JKiBzaWduYWwuYyAoc2lnaXNoYW5kbGVkKSBbU1ZSNF06IE9taXQgZXZlcnl0aGluZyBhZnRlciByZXR1cm4uCi0JKiBzdHJhY2UuYyAodHJhY2UpIFtTVlI0XTogQnJlYWsgb3V0IG9mIGZvciBsb29wIGluc3RlYWQgb2YKLQlyZXR1cm5pbmcgd2hlbiBmaW5pc2hlZCBzbyBmaW5hbCByZXR1cm4gc3RhdGVtZW50IGlzIGV4ZWN1dGVkLgotCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogQWRkIG1vcmUgU1lTX3dhaXQqIHZhcmlhdGlvbnMuCi0JKHN5c2NhbGwpIFtMSU5VWF06IENvcnJlY3QgdHlwbyB3aGljaCBjb21tZW50ZWQgb3V0IHRoZSBNNjhLCi0JYXJndW1lbnQgdG8gaWZkZWYuCi0JKiB1dGlsLmMgKHByaW50c3RyKTogQ2FzdCB1bnNpZ25lZCBjaGFyIHBvaW50ZXIgYXJndW1lbnQKLQl0byBjaGFyIHBvaW50ZXIgaW4gdW1vdmVzdHIgY2FsbC4KLQkoZHVtcHN0cik6IExpa2V3aXNlIGZvciB1bW92ZW4uCi0KLVdlZCBNYXkgIDMgMDE6MTA6NTYgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuNCBpcyByZWxlYXNlZC4KLQotCSogc2lnbmFsLmMgKHN5c19zaWdibG9jayk6IE1vdmUgYWZ0ZXIgdGhlIGRlZmluaXRpb24gb2YKLQlzeXNfc2lnc2V0bWFzayB0aGF0IGl0IGNhbGxzIHRvIGF2b2lkIGFuIGltcGxpY2l0IGRlY2xhcmF0aW9uLgotCSogc3RyZWFtLmMgKHRyYW5zcG9ydF91c2VyX29wdGlvbnMsIHRyYW5zcG9ydF9zZXJ2ZXJfb3B0aW9ucyk6Ci0JT25seSBuZWVkZWQgaWYgVElfQklORCBpcyBkZWZpbmVkLgotCSogY29uZmlndXJlLmluOiBBZGQgLVduby1pbXBsaWNpdCB0byBXQVJORkxBR1Mgb24gU3VuT1MgNC54LgotCi0JKiBwcm9jZXNzLmMgKGludGVybmFsX2ZvcmspIFtTVlI0XTogRml4IGEgdHlwbyB0aGF0IG9taXR0ZWQKLQl0aGUgdGNwIGFyZ3VlbWVudCBmcm9tIHRoZSBjYWxsIHRvIGV4aXRpbmcuICBBZGQgZ2V0cnZhbDIKLQljaGVjayBzbyBubyBmb3JrIHByb2Nlc3NpbmcgaXMgZG9uZSBpbiB0aGUgY2hpbGQuCi0JKHByaW50d2FpdG4pOiBJbml0aWFsaXplIGV4aXRlZCBzbyB0aGF0IGl0cyB2YWx1ZSBpcyBkZWZpbmVkCi0JZm9yIGFsbCBmbG93cyBvZiBleGVjdXRpb24uCi0KLVR1ZSBNYXkgIDIgMjI6Mzk6NDIgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIGxpbnV4L2R1bW15Lmg6IEFkZCBhbGlhc2VzIGZvciBzeXNmcywgcGVyc29uYWxpdHksIGFmc19zeXNjYWxsLAotCXNldGZzdWlkLCBzZXRmc2dpZCwgYW5kIF9sbHNlZWsgc3lzY2FsbHMuCi0JKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBwcm90b3R5cGVzIGZvciB0aGVtLgotCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgdGhlbSB0byB0aGUgc3lzY2FsbCBlbnRyaWVzIHRhYmxlLgotCSogc3lzdGVtLmMgKGhlYWRlcnMpIFtMSU5VWF06IEluY2x1ZGUgbGludXgvdW5pc3RkLmggdG8gZ2V0IF9fTlJfKgotCWRlZmluZXMgYW5kIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBsaW51eC9wZXJzb25hbGl0eS5oIGlmCi0JX19OUl9wZXJzb25hbGl0eSBpcyBkZWZpbmVkLgotCShwZXJzb25hbGl0eV9vcHRpb25zKSBbTElOVVhdOiBOZXcgdGFibGUuCi0JKHN5c19wZXJzb25hbGl0eSkgW0xJTlVYXTogTmV3IGZ1bmN0aW9uLgotCi1UdWUgTWF5ICAyIDAwOjIwOjM5IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBzdHJhY2UuYyAodHJhY2UpIFshU1ZSNF06IENoYW5nZSBmb3JldmVyIGxvb3AgdG8gb25lIHByZWRpY2F0ZWQKLQlvbiB0aGUgbnVtYmVyIG9mIHRyYWNlZCBwcm9jZXNzZXMgc28gdGhhdCB3ZSBjYW4gaGF2ZSB1bnRyYWNlZAotCWNoaWxkcmVuIChlLmcuIHZpYSBwb3BlbikuCi0KLQkqIHN0cmFjZSAobWFpbikgWyFTVlI0XTogQ2FsbCBmYWtlX2V4ZWN2ZSB0byBnZXQgdGhlIGFjdHVhbAotCWV4ZWMgYW5kIGl0cyBhcmd1bWVudHMgaW50byB0aGUgdHJhY2UuCi0JKGVudmlyb24pOiBEZWNsYXJlIGl0LgotCSogcHJvY2Vzcy5jIChmYWtlX2V4ZWN2ZSk6IE5ldyBmdW5jdGlvbi4KLQkoaGVhZGVycyk6IEluY2x1ZGUgc3lzL3N5c2NhbGwuaCB0byBnZXQgU1lTXyogZGVmaW5lcy4KLQotCSogcHJvY2Vzcy5jIChzeXNfZXhlY3YsIHN5c19leGVjdmUpOiBTdXJyb3VuZCBhcmd1bWVudCBhbm5vdGF0aW9ucwotCXdpdGggQyBjb21tZW50IGRlbGltaXRlcnMuCi0JKHByaW50YXJndiwgcHJpbnRhcmdjKTogVGhlIGFyZyB2ZWN0b3IgaXMgYW4gYXJyYXkgb2YgY2hhciBwb2ludGVycwotCW5vdCBpbnRzLgotCi0JKiBzdHJhY2UuYyAocHJpbnRsZWFkZXIpOiBBbHNvIGNoZWNrIGZvciBtdWx0aXBsZSAtcCBhcmd1bWVudHMKLQl3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8gcHJpbnQgdGhlIHBpZCBmaWVsZC4KLQotCSogc3RyYWNlLmMgKHN0cmVycm9yKSBbIUhBVkVfU1RSRVJST1JdOiBOZXcgZnVuY3Rpb24uCi0JKiBkZWZzLmggKHN0cmVycm9yLCBzdHJzaWduYWwpOiBBZGQgdGhlc2UgcHJvdG90eXBlcyBpZiB3ZSBwcm92aWRlCi0JdGhlIGZ1bmN0aW9ucy4KLQkqIGNvbmZpZ3VyZS5pbiAoQUNfQ0hFQ0tfRlVOQ1MpOiBBZGQgc3RyZXJyb3IuCi0KLQkqIHN0cmFjZS5jIChtYWluLCBwcm9jX3BvbGxlcik6IEFkZCBTSUdQSVBFIHRvIHRoZSBsaXN0IG9mIGNhdWdodAotCWFuZCBibG9ja2VkIHNpZ25hbHMuCi0KLQkqIHN0cmFjZS5jIChtYWluKTogQWRkIHVzZXJuYW1lIG9wdGlvbi4gIFZlcmlmeSB0aGV5IGFyZSByb290IGJlZm9yZQotCWxldHRpbmcgdGhlbSB1c2UgaXQuICBMb29rIHVwIHRoZSBpZHMgaW4gdGhlIHBhc3N3b3JkIGZpbGUuICBTZXQKLQl0aGVtIGp1c3QgYmVmb3JlIGV4ZWN1dGluZyB0aGUgcHJvZ3JhbS4KLQlGcm9tIFJldWJlbiBTdW1uZXIgPHJhc3VtbmVyQHVuZGVyZ3JhZC5tYXRoLnV3YXRlcmxvby5jYT4uCi0KLVNhdCBBcHIgMjkgMDA6MDk6NTYgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMyBpcyByZWxlYXNlZC4KLQotCSogc3lzdGVtLmMgKG1vdW50X2ZsYWdzKSBbTElOVVhdOiBPbWl0IGR1cGxpY2F0ZWQgTVNfTk9TVUlEIGVudHJ5LgotCUZyb20gUmV1YmVuIFN1bW5lciA8cmFzdW1uZXJAdW5kZXJncmFkLm1hdGgudXdhdGVybG9vLmNhPi4KLQotCSogc3RyYWNlLmMgKG91dGZuYW1lKTogSW5pdGlhbGl6ZSB0byBOVUxMLgotCShtYWluKTogRGVmZXIgb3V0cHV0IGZpbGUgcHJvY2Vzc2luZyB1bnRpbCBhZnRlciBhcmd1bWVudHMuCi0JQWxsb3cgZWl0aGVyIGEgcGlwZSBvciBhIGJhbmcgZm9yIGNvbW1hbmQgYXJndW1lbnRzLgotCUNoZWNrIGlmIG91dGZuYW1lIGlzIE5VTEwgaW5zdGVhZCBvZiBjaGVja2luZyBvdXRmIGZvciBzdGRlcnIuCi0JUmVpbml0aWFsaXplIGVhY2ggc3RhcnR1cCBUQ0IncyBvdXRmIHRvIGZpeCAtcC8tbyBvcmRlcmluZyBidWcuCi0JKGRyb3B0Y2IpOiBSZXNldCBjbG9zZSBUQ0IncyBvdXRmIHRvIE5VTEwgaW5zdGVhZCBvZiBzdGRlcnIuCi0JKHRwcmludGYpOiBBdm9pZCBjYWxsaW5nIHZmcHJpbnRmIGlmIG91dGYgaXMgTlVMTC4KLQotCSogc3RyYWNlLmMgKG1haW4pOiBVc2UgcG9wZW4gaWYgLW8gYXJndW1lbnQgYmVnaW5zIHdpdGggYSBwaXBlLgotCUZyb20gTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4uCi0KLQkqIHByb2Nlc3MuYyAocHJpbnRzdGF0dXMpOiBGaXggYSB0eXBvIHdoZXJlIFdJRlNJR05BTEVEIHdhcyBtZWFudAotCWJ1dCBXSUZTVE9QUEVEIHdhcyB1c2VkLgotCi0JKiBNYWtlZmlsZS5pbjogQWRkIGFuIEVYVFJBX0RFRlMgdmFyaWFibGUgYW5kIHVzZSBpdCBpbiB0aGUgLmMubwotCXJ1bGUgdG8gcHJldmVudCB0aGUgY29tbWVudCBmcm9tIGJlaW5nIHVudHJ1ZS4KLQotRnJpIEFwciAyOCAyMjowMTo1NiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogc3RyYWNlLmMgKHN5c19leGl0KTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX2V4aXQuCi0JKHN5c19mb3JrKTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX2ZvcmsuCi0JKHN5c19leGVjdiwgc3lzX2V4ZWN2ZSk6IE1vdmUgZm9sbG93IGZvcmsgY29kZSB0byBpbnRlcm5hbF9leGVjLgotCShzeXNfd2FpdHBpZCwgc3lzX3dhaXQ0KTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX3dhaXQuCi0JKHZmb3JraW5nKTogUmVtb3ZlIHRoaXMgc3RhdGljIHZhcmlhYmxlIGFuZCBjaGVjayBzY25vIGluCi0JaW50ZXJuYWxfZm9yayBpbnN0ZWFkLgotCShpbnRlcm5hbF9leGl0LCBpbnRlcm5hbF9mb3JrLCBpbnRlcm5hbF9leGVjLCBpbnRlcm5hbF93YWl0KTogTmV3Ci0JZnVuY3Rpb25zLgotCSogZGVmcy5oOiBBZGQgcHJvdG90eXBlcyBmb3IgdGhlIG5ldyBpbnRlcm5hbF8qIGZ1bmN0aW9ucy4KLQkqIHN5c2NhbGwuYyAoc3lzY2FsbCk6IE1vdmUgc3lzY2FsbCBlbnRlcmluZyB0cmFjZSBxdWFsaWZpZXIgY2hlY2sKLQlhbmQgcmVwcmludCBjaGVja2luZyBhZnRlciBjb250ZXh0IGRlY29kaW5nIGFuZCBwcmVjZWRlIHRoZW0gd2l0aAotCWEgY2FsbCB0byBpbnRlcm5hbF9zeXNjYWxsLiAgUHJlY2VkZSBzeXNjYWxsIGV4aXRpbmcgdHJhY2UKLQlxdWFsaWZpZXIgY2hlY2sgd2l0aCBhIGNhbGwgdG8gaW50ZXJuYWxfc3lzY2FsbC4KLQkoaW50ZXJuYWxfc3lzY2FsbCk6IE5ldyBmdW5jdGlvbi4KLQotCSogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTWFrZSBzY25vIHNpZ25lZC4KLQkqIHN0cmFjZS5jIChzeXNjYWxsKSBNYWtlIHVfZXJyb3Igc2lnbmVkLgotCVtMSU5VWCwgSTM4Nl06IEF2b2lkIHVuc2lnbmVkIGNhc3QgaW4gZWF4IGNoZWNrLgotCSogc3lzY2FsbC5jIChzeXNfaW5kaXIpOiBNYWtlIGksIHNjbm8sIGFuZCBuYXJncyBzaWduZWQuCi0JKiBkZXNjLmMgKHN5c19zZWxlY3QpOiBNYWtlIGN1bWxlbiB1bnNpZ25lZAotCi1Nb24gQXByIDI0IDIzOjUyOjQ3IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBuZXQuYyAoc29ja3R5cGVzKTogQWRkIFNPQ0tfUEFDS0VULgotCi1TdW4gQXByICAyIDIzOjUwOjM5IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBNYWtlZmlsZSAoY2xlYW4pOiBDaGVjayBleHBsaWNpdGx5IGZvciBhIE1ha2VmaWxlIGluIHN1YmRpcnMKLQliZWZvcmUgcnVubmluZyBtYWtlIGluIHRoZW0uCi0KLVN1biBNYXIgMjYgMTI6Mzc6MjEgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIHN0cmFjZS5jIFtNSVBTXSAocHJvY19vcGVuKTogQ29uZGl0aW9uYWxpemUgcnVuIG9uIE1JUFMuCi0JW01JUFNdIChkZXRhY2gpOiBJbml0aWFsaXplIGVycm9yIGZvciBNSVBTIGNhc2UuCi0JKHRyYWNlKTogSW5pdGlhbGl6ZSBpb2N0bF9yZXN1bHQgYW5kIGlvY3RsX2Vycm5vIGZvciBvdmVybHkgaGVscGZ1bAotCWNvbXBpbGVycy4KLQkqIHN5c2NhbGwuYyAoZGVjb2RlX3N1YmNhbGwpOiBNb3ZlIHZhcmlhYmxlIGkgaW50byBjb25kaXRpb25hbHMKLQl0aGF0IHVzZSB1c2UgaXQuCi0JKiBzeXN0ZW0uYyAoc3lzc2dpX29wdGlvbnMpOiBDb25kaXRpb25hbGl6ZSBTR0lfUkVDVkxNU0cgYW5kCi0JU0dJX1NFVF9GUERFQlVHIHRoYXQgU0dJIGRlY2lkZWQgdG8gZHJvcC4gIEkgZG9uJ3QgaGF2ZSB0aGUgc3RvbWFjaAotCXRvIGNoYW5nZSB0aGVtIGFsbC4KLQkqIHRlcm0uYyAodGVybV9pb2N0bCk6IEZvcmNlIFtjX1tpb2NsXWZsYWdzIG1lbWJlcnMgdG8gbG9uZyBiZWZvcmUKLQlwcmludGluZyBzaW5jZSB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHNpemUgb2YgdGhlaXIgdHlwZSBpcy4KLQkqIHV0aWwuYyBbU1ZSNCwgTUlQU10gKHVtb3Zlbik6IFByZXZlbnQgTUlQUyBmcm9tIHVzaW5nIHByZWFkIGV2ZW4KLQlpZiBhdXRvY29uZiBkZXRlY3RzIGl0IHNpbmNlIGl0IHNlZW1zIHRvIGVpdGhlciBub3Qgd29yayBvciBkbwotCXNvbWV0aGluZyBlbHNlIGVudGlyZWx5IG9uIElyaXggNS4zLgotCi1TdW4gTWFyIDI2IDAwOjAxOjExIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjIgaXMgcmVsZWFzZWQuCi0JKiBsaW51eC9kdW1teS5oOiBNYWtlIHN5c19mY2hkaXIgbGlrZSBzeXNfY2xvc2UgaW5zdGVhZCBvZiBwcmludGFyZ3MKLQlzbyB0aGF0IHRoZSBmaWxlIGRlc2NyaXB0b3IgYXJnIGlzIGRlY2ltYWwuCi0KLVNhdCBNYXIgMjUgMjI6NTA6MTMgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIG5ldC5jIFtMSU5VWF0gKHByb3RvY29scyk6IEV4cGxpY2l0bHkgZGVmaW5lIGFsbCBJUFBST1RPXyogZW50cmllcwotCWJlY2F1c2Ugb24gTGludXggdGhleSBhcmUgZW51bWVyYXRvcnMuCi0KLQkqIHN5c3RlbS5jIFtMSU5VWF0gKG1vdW50X2ZsYWdzKTogSGFuZGxlIHJlbmFtaW5nIG9mIE1TX1NZTkMgdG8KLQlNU19TWU5DSFJPTk9VUy4KLQotCSogdXRpbC5jIChwcmludHh2YWwpOiBXaGVuIHRoZXJlIGlzIG5vIHRyYW5zbGF0aW9uLCBwcmludCB0aGUgYWN0dWFsCi0JbnVtYmVyIGZpcnN0IGFuZCB0aGUgdGhlIGRlZmF1bHQgdmFsdWUgYXMgYSBDIGNvbW1lbnQuCi0KLQkqIG5ldC5jIChzeXNfc2VuZCwgc3lzX3NlbmR0bywgc3lzX3NlbmRtc2csIHN5c19nZXRzb2Nrb3B0LAotCXN5c19zZXRzb2Nrb3B0KTogQ2hhbmdlIGZpcnN0IGFyZ3VtZW50IGZyb20gdW5zaWduZWQgdG8gc2lnbmVkIHRvCi0JY2F0ZXIgdG8gdGhlIGZyZXF1ZW50IHByYWN0aWNlIG9mIGNhbGxpbmcgc3lzdGVtIGNhbGxzIHdpdGggYSBmaWxlCi0JZGVzY3JpcHRvciBvZiAtMS4KLQkqIG1lbS5jIChzeXNfbW1hcCk6IExpa2V3aXNlLgotCi1TdW4gTWFyIDE5IDEzOjUzOjUyIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBzaWduYWwuYyBbTElOVVhdIChzaWduYWxlbnQpOiBIYW5kbGUgb2xkIGFuZCBuZXcgdmFsdWVzIG9mIFNJR0lPLgotCi1TdW4gRGVjIDExIDIyOjUxOjUxIDE5OTQgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEgaXMgcmVsZWFzZWQuCi0JKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBhY2xvY2FsLm00OiBDaGFuZ2VzIGZvciBhdXRvY29uZiAyLjAuCi0JKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5ndWVzczogVXBkYXRlIGZyb20gdGhlIEZTRi4KLQkqIGluc3RhbGwtc2g6IE5ldyBmcm9tIHRoZSBGU0YuCi0KLU1vbiBEZWMgIDUgMjA6NTE6MjkgMTk5NCAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+Ci0KLQkqIE1ha2VmaWxlLmluOiBBZGQgbTY4ayBhcmNoLgotCSogYWNjb25maWcuaCAoTTY4Syk6IEFkZCBtNjhrIGRlZmluZS4KLQkqIGNvbmZpZ3VyZS5pbjogQWRkIGRldGVjdGlvbiBvZiBhcmNoIG02OGsuCi0JKiBwcm9jZXNzLmMgW002OEtdIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKTogU3VwcG9ydCBtNjhrIHJlZ2lzdGVycyBhbmQKLQlvZmZzZXRzLgotCSogc2lnbmFsLmMgW002OEtdIChzaWdjb250ZXh0X3N0cnVjdCk6IFN1cHBvcnQgbTY4ayBzaWdjb250ZXh0Ci0Jc3RydWN0dXJlLgotCVtNNjhLXSAoc3lzX3NpZ3JldHVybik6IFN1cHBvcnQgbTY4ayBzaWdyZXR1cm4gaGFuZGxpbmcuCi0JKiBzeXNjYWxsLmMgW002OEtdIChzeXNjYWxsKTogU3VwcG9ydCBtNjhrIHN5c2NhbGwgbnVtYmVyIHJlZ2lzdGVyCi0JYW5kIGVycm5vIGluIGQwIGluc3RlYWQgb2YgZWF4LgotCSogdXRpbC5jIFtNNjhLXSAoZ2V0cGMsIHByaW50Y2FsbCwgc2V0YnB0LCBjbGVhcmJwdCk6IFN1cHBvcnQgbTY4awotCXByb2dyYW0gY291bnRlciBpbiBQVF9QQyBpbnN0ZWFkIG9mIEVJUC4KLQlbTTY4S10gKExPT1ApOiBTdXBwb3J0IG02OGsgbG9vcCBpbnN0cnVjdGlvbi4KLQlGcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+LgotCi0JKiBtZW0uYyBbTUFQX0FOT05ZTU9VU10gKG1tYXBfZmxhZ3MpOiBDb3JyZWN0IGluYWR2ZXJ0ZW50IHJlZmVyZW5jZQotCXRvIE1BUF9GSVhFRCBpbnN0ZWFkIG9mIE1BUF9BTk9OWU1PVVMuCi0JRnJvbSBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KLQotCSogc2lnbmFsLmMgW0xJTlVYXSAoc2lnbmFsZW50KTogU2lnbmFsIDMwIGlzIG5vdyBTSUdQV1IuCi0JRnJvbSBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KLQotTW9uIERlYyAgNSAwMTowNTo0NiAxOTk0ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KLQotCSogZGVmcy5oICh0cHJpbnRmKTogRml4IHR5cG8gaW4gbm9uLWdjYyBhbnNpIHByb3RvdHlwZSBmb3IgdHByaW50Zi4KLQlSZXBvcnRlZCBieSBUaGFuaCBNYSA8dG1hQGVuY29yZS5jb20+LgotCi0JKiBzdHJhY2UuYyAoY2xlYW51cCk6IFNlbmQgU0lHQ09OVCBiZWZvcmUgU0lHVEVSTSBiZWNhdXNlIExpbnV4Ci0JMS4xLjYyIGRvZXNuJ3QgY29udGludWUgYSB0cmFjZWQgY2hpbGQgd2hlbiB0aGUgcGFyZW50IGV4aXRzLgotCVJlcG9ydGVkIGJ5IE1hdHQgRGF5IDxtZGF5QGFydGlzb2Z0LmNvbT4uCi0KLQkqIHN5c3RlbS5jIFtMSU5VWF06IEluY2x1ZGUgbmV0aW5ldC9pbi5oIGJlZm9yZSBhcnBhL2luZXQuaC4KLQotCSogdXRpbC5jIChwcmludHN0cik6IEZpeCBsb25nc3RhbmRpbmcgYnVnIGluIG5vdGF0aW5nIHN0cmluZwotCWNvbnRpbnVhdGlvbi4KLQotCSogc3RyYWNlLmMgW1NWUjRdIChwcm9jX29wZW4pOiBTcGVjaWZpY2FsbHkgd2FpdCBmb3IgdGhlIGNoaWxkIHRoZQotCWNoaWxkIHRvIGdvIGludG8gdGhlIGV4ZWN2ZSBzeXNjYWxsIHRvIGF2b2lkIHNwdXJpb3VzIHRyYWNlcy4KLQlbTElOVVhdIChkZXRhY2gpOiBDb25kaXRpb25hbGl6ZSB0aGUgc3RhdHVzIHZhcmlhYmxlLgotCi1TdW4gRGVjICA0IDIzOjIxOjQyIDE5OTQgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgotCi0JKiBNYWtlZmlsZS5pbjogQWRkIG1pcHMgYXJjaC4KLQkqIGFjY29uZmlnLmggKE1JUFMpOiBBZGQgbWlwcyBkZWZpbmUuCi0JKiBjb25maWd1cmUuaW46IEFkZCBkZXRlY3Rpb24gb2Ygb3BzeXMgaXJpeDUgYW5kIGFyY2ggbWlwcy4gIENoZWNrCi0JZm9yIHByY3RsIGZ1bmN0aW9uLgotCUNoZWNrIGZvciBzeXMvc3lzY29uZmlnLmggaGVhZGVyLgotCSogZGVmcy5oIChNQVhfQVJHUyk6IEJ1bXAgbWF4aW11bSBzeXNjYWxsIGFyZ3VtZW50cyBmcm9tIDggdG8gMzIuCi0JKiBmaWxlLmMgW1NWUjRdOiBJbmNsdWRlIHN5cy9jcmVkLmguCi0JKGFjY2Vzc19mbGFncyk6IFVwZGF0ZSBhY2Nlc3MgZmxhZ3MgZm9yIFNHSS4KLQkoc3ByaW50dGltZSk6IENoYW5nZSB0eXBlIG9mIHNwcmludHRpbWUgYXJndW1lbnQgZnJvbSB1bnNpZ25lZAotCWxvbmcgdG8gdGltZV90LgotCSogcHJvY2Vzcy5jIFtIQVZFX1BSQ1RMXTogSW5jbHVkZSBzeXMvcHJjdGwuaC4KLQlbSEFWRV9QUkNUTF0gKHByY3RsX29wdGlvbnMsIHN5c19wcmN0bCk6IE5ldyBmb3IgU0dJLgotCShwcmludHNpZ2luZm8pOiBDb25kaXRpb25hbGx5IGNvbXBpbGUgU0lfVElNRVIgYW5kIFNJX01FU0dRLgotCUNhc3Qgc2lfYmFuZCBtZW1iZXIgdG8gbG9uZyBiZWZvcmUgcHJpbnRpbmcuCi0JKiBzaWduYWwuYyAoc2lnYWN0X2ZsYWdzKTogQWRkIF9TQV9CU0RDQUxMIGZvciBTR0kuCi0JKHNpZ3Byb2NtYXNrY21kcyk6IEFkZCBTSUdfU0VUTUFTSzMyIGZvciBTR0kuCi0JKiBzdHJhY2UuYyBbU1ZSNF0gW01JUFNdOgotCShmb29iYXIpOiBOZXcgZHVtbXkgc2lnbmFsIGhhbmRsZXIuCi0JKG1haW4pOiBJbnN0YWxsIGEgZHVtbXkgc2lnbmFsIGhhbmRsZXIgaW4gdGhlIGNoaWxkIGJlZm9yZSBwYXVzaW5nCi0JdG8gd29yayBhcm91bmQgYW4gU0dJIGJ1ZyBpbiBQUlNBQk9SVC4KLQkocHJvY19vcGVuKTogU2VuZCBhIGludGVycnVwdCB0byB0aGUgY2hpbGQgaW5zdGVhZCBvZiBhYm9ydGluZyB0aGUKLQlzeXNjYWxsIHdoaWNoIGRvZXNuJ3Qgd29yayBvbiBJcml4NS4yLgotCSogc3ZyNC9kdW1teS5oOiBBZGQgbmV3IHVuZmluaXNoZWQgU0dJIHN5c2NhbGxzCi0JKGUuZy4gc3lzX3N5c21wLCBzeXNfc2dpbmFwLCBldGMuKS4gIEhhbmRsZSBzb21lIFNHSSBzeXNjYWxscyBsaWtlCi0JZXhpc3RpbmcgY2FsbHMgKGUuZy4gc3lzX2tzaWdhY3Rpb24gbGlrZSBzeXNfc2lnYWN0aW9uKS4KLQlQcmludGFyZ3MgZG9lcyB0aGUgcHJpbnQgdGhpbmcgZm9yIHN5c19zZXRob3N0aWQuCi0JKiBzdnI0L3N5c2NhbGwuaDogRGVjbGFyZSBhbGwgbmV3IFNHSSBzeXNjYWxscy4KLQkoU0dJX0tMVURHRSk6IERlZmluZSBzeXNjYWxsIHRhYmxlIHN0YXJ0aW5nIGluZGV4IHRvIGJlIDEgZm9yIFNHSQotCWFuZCBhZGQgaXQgdG8gYWxsIHN1YmNhbGwgZW50cnkgcG9pbnRzLgotCShTWVNfcGdycHN5c19zdWJjYWxsLCBTWVNfc2lnY2FsbF9zdWJjYWxsLCBTWVNfY29udGV4dCk6IERvbid0Ci0JZGVjb2RlIGFzIHN1YmNhbGxzIG9uIE1JUFMuIEluc3RlYWQsIHVzZSB0aGUgbm9ybWFsIHN5c2NhbGxzLgotCSogc3ZyNC9zeXNjYWxsZW50LmggW01JUFNdOiBMZWFkIHN5c2NhbGwgdGFibGUgd2l0aCBhIGR1bW15IGVudHJ5Ci0Jc2luY2UgU0dJIHN5c2NhbGwgbnVtYmVycyBhcmUgb2ZmIGJ5IG9uZS4KLQlbTUlQU10gKHN5c19wZ3Jwc3lzKTogUmVuYW1lIHRvIHN5c19zZXRwZ3JwIG9uIFNHSS4KLQlbTUlQU10gKHN5c194ZW5peCk6IFJlbmFtZSB0byBzeXNfc3lzc2dpIG9uIFNHSS4KLQlbTUlQU10gKHN5c19zeXNtYWNoaW5lKTogUmVuYW1lIHRvIHN5c19zeXNtaXBzIG9uIFNHSS4KLQlbTUlQU106IENvbmRpdGlvbmFsaXplIFNWUjQgZXh0ZW5zaW9uIGludG8gU0dJIGFuZCBTb2xhcmlzIGNsYXNzZXMuCi0JKiBzeXNjYWxsLmMgKGR1bXBpbyk6IFZhbGlkYXRlIGRlc2NyaXB0b3IgYWdhaW5zdCBNQVhfUVVBTFMuCi0JW0hBVkVfUFJfU1lTQ0FMTF0gKHN5c2NhbGwpOiBDb25kaXRpb25hbGl6ZSBTWVNfdmZvcmsuCi0JW01JUFNdIChzeXNjYWxsKTogQWRkIFNHSSBzZWN0aW9uIGZvciBkZWNvZGluZyB1X2Vycm9yIGFuZCB1X3J2YWwuCi0JQWRkIHdvcmthcm91bmQgZm9yIGJyb2tlbiBTR0kgcHJfc3lzYXJnIG9uIHN5c2NhbGwgZW50cnkuCi0JW1NWUjRdIChzeXNjYWxsKTogQ29uZGl0aW9uYWxpemUgc3ViY2FsbCBkZWNvZGluZyBmb3IKLQlTWVNfcHRycHN5c19zdWJjYWxsLCBTWVNfc2lnY2FsbF9zdWJjYWxsIGFuZCBTWVNfY29udGV4dF9zdWJjYWxsLgotCVtTVlI0XSBbTUlQU10gKGdldHJ2YWwyKTogSGFuZGxlIFNHSS4KLQkqIHN5c2NhbGxlbnQuc2g6IERvcmsgdGhlIHNlZCBsaW5lIHRvIGJlIGNob29zaWVyIGFib3V0IFNZU18gbGluZXMuCi0JKiBzeXN0ZW0uYyBbSEFWRV9TWVNDT05GSUdfSF06IEluY2x1ZGUgc3lzL3N5c2NvbmZpZy5oLgotCVtNSVBTXSAoc3lzc2dpX29wdGlvbnMsIHN5c19zeXNzZ2kpOiBOZXcgZm9yIFNHSS4KK1NlZSBDaGFuZ2VMb2ctQ1ZTIGZvciBvbGRlciBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nLUNWUyBiL0NoYW5nZUxvZy1DVlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUyNjJhZAotLS0gL2Rldi9udWxsCisrKyBiL0NoYW5nZUxvZy1DVlMKQEAgLTAsMCArMSw1NjE0IEBACisyMDA5LTA3LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJQ2xlYW4gdXAgc3BhY2luZyB0byBmaXggd2FybmluZ3MgcmVwb3J0ZWQgYnkgZ2l0IGRpZmYgLS1jaGVjay4KKwkqIENoYW5nZUxvZzogRml4IHNwYWNlcyBiZWZvcmUgdGFiIGluIGluZGVudC4KKwkqIGJqbS5jOiBMaWtld2lzZS4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IExpa2V3aXNlLgorCSogc3RyYWNlLWdyYXBoOiBMaWtld2lzZS4KKwkqIHN5c2NhbGwuYzogTGlrZXdpc2UuCisJKiBJTlNUQUxMOiBGaXggdHJhaWxpbmcgYmxhbmsgbGluZXMuCisJKiBSRUFETUUtbGludXg6IExpa2V3aXNlLgorCSogUkVBRE1FLXN2cjQ6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvZ2VuLnBsOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwxLmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3g4Nl82NC9nZW50YWIucGw6IExpa2V3aXNlLgorCSogc3Vub3M0L3N5c2NhbGwuaDogTGlrZXdpc2UuCisJKiB0ZXN0L01ha2VmaWxlOiBMaWtld2lzZS4KKwkqIGRlYmlhbi9ydWxlczogRml4IHRyYWlsaW5nIHdoaXRlc3BhY2VzLgorCSogZGVzYy5jOiBMaWtld2lzZS4KKwkqIHN2cjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIHRlc3QvY2hpbGR0aHJlYWQuYzogTGlrZXdpc2UuCisJKiB0ZXN0L2xlYWRlcmtpbGwuYzogTGlrZXdpc2UuCisKKzIwMDktMDctMDcgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIC5jdnNpZ25vcmU6IFJlbW92ZS4KKwkqIFJFQURNRS1DVlM6IFJlbmFtZSB0byBSRUFETUUtaGFja2luZy4KKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogUmVtb3ZlIFJFQURNRS1DVlMuCisKKzIwMDktMDYtMDEgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGJqbS5jIChzeXNfcXVlcnlfbW9kdWxlKTogRml4IGZvcm1hdCB3YXJuaW5nIHJlcG9ydGVkIGJ5CisJZ2NjIC1XZm9ybWF0LXNlY3VyaXR5LgorCSogZmlsZS5jICh0cHJpbnRfb3Blbl9tb2Rlcyk6IExpa2V3aXNlLgorCSogcHJvY2Vzcy5jIChwcmludGFyZ3YpOiBMaWtld2lzZS4KKwkqIHNpZ25hbC5jIChwcmludHNpZ25hbCk6IExpa2V3aXNlLgorCisJQ2xlYW4gdXAgaGVhZGVyIGNoZWNrcy4KKwkqIGNvbmZpZ3VyZS5hYzogUmVmb3JtYXQgQUNfQ0hFQ0tfSEVBREVSUyB0byBrZWVwIGl0IHNvcnRlZCBhbmQKKwllYXNpbHkgdXBkYXRlZCwgYW5kIHJlZHVjZSBtZXJnaW5nIGVycm9ycyBpbiB0aGUgZnV0dXJlLgorCSogc3lzdGVtLmM6IENvbnZlcnQgYWxsIG5vbi1zdGFuZGFyZCAjaWZkZWYgY2hlY2tzIGZvciBzcGVjaWZpYworCWhlYWRlcnMgdG8gcmVndWxhciAjaWZkZWYgSEFWRV8qX0ggY2hlY2tzLgorCVNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KKworMjAwOS0wNC0yMCAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJKiBmaWxlLmMgKHByaW50c3RhdHNvbCwgcHJpbnRzdGF0X3NwYXJjNjQpOgorCVJlbW92ZSBOVUxML2Vycm9yIGNoZWNrIGZvciBhZGRyIHBhcmFtZXRlci4KKwkocHJpbnRvbGRzdGF0LCBwcmludHN0YXQsIHByaW50b2xkc3RhdDY0KToKKwlNb3ZlIE5VTEwvZXJyb3IgY2hlY2sgZm9yIGFkZHIgcGFyYW1ldGVyCisJc28gdGhhdCBpdCBoYXBwZW5zIGJlZm9yZSBwcmludHN0YXRzb2wvcHJpbnRzdGF0X3NwYXJjNjQgY2FsbHMuCisKKzIwMDktMDQtMTYgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCSogZmlsZS5jIChwcmludF9kaXJmZCk6IFVzZSBpbnQgZm9yIGZpbGUgZGVzY3JpcHRvciwgbm90IGEgbG9uZy4KKwkqIHByb2Nlc3MuYyAocHJpbnR3YWl0bik6IFVzZSBpbnQgZm9yIFBJRCwgbm90IGEgbG9uZy4KKworMjAwOS0wNC0xNSAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJKiBzaWduYWwgKHN5c19ydF9zaWd0aW1lZHdhaXQpOiBGaXggc2lndGltZWR3YWl0IHN5c2NhbGwgZGVjb2RpbmcuCisKKzIwMDktMDQtMTUgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCSogc2lnbmFsIChzeXNfcnRfc2lnYWN0aW9uKTogUHJpbnQgc3RydWN0IHNpZ2FjdGlvbiBjb3JyZWN0bHkKKwlpbiAzMi82NCBlbnZpcm9ubWVudC4KKwkqIGRlc2MuYyAocHJpbnRmbG9jayk6IEFkZCAjaWZkZWZzIGFyb3VuZCBlYXJsaWVyIGZsb2NrIDMyLzY0IGZpeAorCXNvIHRoYXQgd2UgZG9uJ3Qgd2FzdGUgdGltZSBvbiBhcmNoZXMgd2l0aCBvbmUgcGVyc29uYWxpdHkuCisKKzIwMDktMDQtMTQgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCSogc2lnbmFsLmM6IFdoaXRlc3BhY2UsIGNvbW1lbnQsIGFuZCBzdHlsZSBmaXhlcywgbm8gY29kZSBjaGFuZ2VzLgorCSogZmlsZS5jOiBEaXR0by4KKwkqIHRpbWUuYzogRGl0dG8uCisJKiBwcm9jZXNzLmM6IERpdHRvLgorCSogcmVzb3VyY2UuYzogRGl0dG8uCisKKzIwMDktMDMtMjMgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCSogc3lzdGVtLmMgKHNyYW1fYWxsb2NfZmxhZyk6IEFkZCBMMl9TUkFNIGNvbnN0YW50LgorCWJ5IE1pa2UgRnJ5c2luZ2VyICh2YXBpZXIgQVQgZ2VudG9vLm9yZykuCisJKHN5c19zcmFtX2FsbG9jKTogRml4IGltcHJvcGVybHkgdXNlZCAlenU6CisJdGNwLT51X2FyZyBpcyBub3QgYSBzaXplX3QsIGl0IGlzIGEgbG9uZy4KKwkqIG5ldC5jIChwcmludGNtc2doZHIpOiBGaXggaW1wcm9wZXJseSB1c2VkICV6dToKKwlzdHJ1Y3QgY21zZ2hkcjo6Y21zZ19sZW4gaXMgbm90IGEgc2l6ZV90LgorCisyMDA5LTAzLTEwICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlEZWNvZGUgZmNudGwncyBGX3tHRVQsU0VUfUxFQVNFLCBGX05PVElGWSwgYW5kIEZfRFVQRkRfQ0xPRVhFQy4KKwlCeSBNaWtlIEZyeXNpbmdlciAodmFwaWVyIEFUIGdlbnRvby5vcmcpCisJKiBkZXNjLmM6IEFkZCBGX1NFVExFQVNFLCBGX0dFVExFQVNFLCBGX05PVElGWSwKKwlGX0RVUEZEX0NMT0VYRUMgdG8gZmNudGxjbWRzW10uIENyZWF0ZSBub3RpZnlmbGFnc1tdIGFycmF5LgorCShzeXNfZmNudGwpOiBIYW5kbGUgbmV3IGZsYWdzLgorCisJT3B0aW1pemUgcHJpbnRpbmcgb2Ygb3BlbiBtb2Rlcy4KKwkqIGRlZnMuaDogRGVjbGFyZSBzcHJpbnRfb3Blbl9tb2RlcygpLAorCXJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyIGluIHRwcmludF9vcGVuX21vZGVzKCkuCisJKiBkZXNjLmMgKHNwcmludF9vcGVuX21vZGVzKTogTW92ZSBmdWN0aW9uIGRlZmluaXRpb24gZnJvbSBoZXJlLi4uCisJKiBmaWxlLmMgKHNwcmludF9vcGVuX21vZGVzKTogVG8gaGVyZS4KKwkodHByaW50X29wZW5fbW9kZXMpOiBVc2Ugc3ByaW50X29wZW5fbW9kZXMoKSwgaXQgYWxyZWFkeQorCWdlbmVyYXRlcyBuZWVkZWQgc3RyaW5nLgorCSogaXBjLmM6IFJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyIGZyb20gY2FsbHMKKwl0byB0cHJpbnRfb3Blbl9tb2RlcygpLgorCisyMDA5LTAyLTI3ICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlBVlIzMiBzdXBwb3J0IGJ5IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQKKwkoaGFucy1jaHJpc3RpYW4uZWd0dmVkdCBBVCBhdG1lbC5jb20pLgorCSogY29uZmlndXJlLmFjOiBNYWtlIGl0IHJlY29nbml6ZSBhdnIzMi4KKwkqIGRlZnMuaDogRGVmaW5lIExJTlVYX0FWUjMyLgorCSogbGludXgvYXZyMzIvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KKwkqIE1ha2VmaWxlLmFtOiBSZWZlcmVuY2UgbGludXgvYXZyMzIvc3lzY2FsbGVudC5oLgorCSogcHJvYy5jIChjaGFuZ2Vfc3lzY2FsbCwgc2V0YXJnKTogQWRkIHN1cHBvcnQgZm9yIGF2cjMyLgorCShzdHJ1Y3QgeGxhdCBzdHJ1Y3RfdXNlcl9vZmZzZXRzW10pOiBEaXR0by4KKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pOiBEaXR0by4KKwkoZ2V0X2Vycm9yLCBmb3JjZV9yZXN1bHQsIHN5c2NhbGxfZW50ZXIpOiBEaXR0by4KKwkqIHV0aWwuYyAoZ2V0cGMsIHByaW50Y2FsbCk6IERpdHRvLgorCisyMDA5LTAyLTI1ICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlDUklTIHN1cHBvcnQgYnkgSGlua28gS29jZXZhciAoaGlua28ua29jZXZhciBBVCBjZXRydGFwb3Quc2kpCisJKiBjb25maWd1cmUuYWM6IE1ha2UgaXQgcmVjb2duaXplIGNyaXMuCisJKiBwcm9jZXNzLmM6IERlZmluZSBBUkdfeHh4IGNvbnN0YW50cyBmb3IgY3Jpcy4KKwkoY2hhbmdlX3N5c2NhbGwpOiBBZGQgc3VwcG9ydCBmb3IgY3Jpcy4KKwkoc3RydWN0X3VzZXJfb2Zmc2V0cyk6IEFkZCBjcmlzLXNwZWNpZmljIGRhdGEuCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybik6IEFkZCBzdXBwb3J0IGZvciBjcmlzLgorCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IEFkZCBzdXBwb3J0IGZvciBjcmlzLgorCShzeXNjYWxsX2ZpeHVwKTogQWRkIHN1cHBvcnQgZm9yIGNyaXMuCisJKGdldF9lcnJvcik6IEFkZCBzdXBwb3J0IGZvciBjcmlzLgorCShzeXNjYWxsX2VudGVyKTogQWRkIHN1cHBvcnQgZm9yIGNyaXMuCisJKGZvcmNlX3Jlc3VsdCk6IFdoaWxlIGF0IGl0LCBmaXggY3BwIGRpcmVjdGl2ZXMgaW5kZW50YXRpb24uCisJKiB1dGlsLmMgKHByaW50Y2FsbCk6IEFkZCBzdXBwb3J0IGZvciBjcmlzLgorCisyMDA5LTAyLTI0ICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwkqIHByb2Nlc3MuYzogSW5kZW50IHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIHNvIHRoYXQgbmVzdGluZworCWNhbiBiZSBmaWd1cmVkIG91dC4gQWRkIFBUUkFDRV9TRVRfU1lTQ0FMTCB0byBwdHJhY2VfY21kc1tdLgorCSogaW9jdGxlbnQuc2g6IEltcHJvdmVkIGJ5IE1pa2UgRnJ5c2luZ2VyLgorCSogSEFDS0lORy1zY3JpcHRzOiBOZXcgZmlsZSBieSBNaWtlIEZyeXNpbmdlci4KKworMjAwOS0wMi0yMCAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJRnVydGhlciBzaWduYWxlbnQuaCBjbGVhbnVwLgorCSogbGludXgvaWE2NC9zaWduYWxlbnQuaDogUmVtb3ZlLCBpdCBpcyBpZGVudGljYWwgdG8gY29tbW9uIHNpZ25hbGVudC5oCisJc2FucyAiU0lHUlRubiIgZGVmaW5pdGlvbnMgd2hpY2ggYXJlIHJlZHVuZGFudC4KKwkqIGxpbnV4L3Bvd2VycGMvc2lnbmFsZW50Lmg6IFJlbW92ZSwgaXQgaXMgaWRlbnRpY2FsIHRvIGNvbW1vbiBzaWduYWxlbnQuaAorCXNhbnMgb3V0ZGF0ZWQgIlNJR1VOVVNFRCIgd2hpY2ggc2hvdWxkIGJlICJTSUdTWVMiLgorCSogbGludXgvczM5MC9zaWduYWxlbnQuaDogRGl0dG8uCisJKiBsaW51eC9zMzkweC9zaWduYWxlbnQuaDogRGl0dG8uCisJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gdGhlIGFib3ZlIGZpbGVzLgorCisyMDA5LTAyLTIwICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlQYXRjaCBieSBNaWtlIEZyeXNpbmdlciAodmFwaWVyIEFUIGdlbnRvby5vcmcpLgorCSogbGludXgvaW9jdGxlbnQuc2g6IFVwZGF0ZSBzZWQgbWFjaGluZXJ5IHRvIHBhcnNlIF9JT0MoKSBtYWNyb3MKKwl3aXRoIHR3byBjb25zdGFudHMuCisKKzIwMDktMDItMjAgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCVBhdGNoIGJ5IE1pa2UgRnJ5c2luZ2VyICh2YXBpZXIgQVQgZ2VudG9vLm9yZykuCisJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIHJlZmVyZW5jZSB0byBsaW51eC9zaC9zaWduYWxlbnQuaC4KKwkqIGxpbnV4L3NoL3NpZ25hbGVudC5oOiBSZW1vdmUsIGl0IGlzIGlkZW50aWNhbCB0byBjb21tb24gc2lnbmFsZW50LmguCisKKzIwMDktMDItMjAgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCVBhdGNoIGJ5IE1pa2UgRnJ5c2luZ2VyICh2YXBpZXIgQVQgZ2VudG9vLm9yZykuCisJKiBsaW51eC9lcnJub2VudC5oOiBNYWtlIEVSUk5PXzU4IHNob3cgRURFQURMT0NLIGZvciBQT1dFUlBDLgorCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2UgdG8gbGludXgvcG93ZXJwYy9lcnJub2VudC5oLgorCSogbGludXgvcG93ZXJwYy9lcnJub2VudC5oOiBSZW1vdmUsIHdlIGNhbiB1c2UgY29tbW9uIGVycm5vZW50Lmggbm93LgorCisyMDA5LTAyLTIwICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlQYXRjaCBieSBNaWtlIEZyeXNpbmdlciAodmFwaWVyIEFUIGdlbnRvby5vcmcpLgorCVJlbW92aW5nIHJlZHVuZGFudCBlcnJub2VudC5oIGZpbGVzLgorCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2UgdG8gbGludXgvaWE2NC9lcnJub2VudC5oLAorCWxpbnV4L3MzOTAvZXJybm9lbnQuaCwgbGludXgvczM5MHgvZXJybm9lbnQuaCBhbmQgbGludXgvc2gvZXJybm9lbnQuaC4KKwkqIGxpbnV4L2lhNjQvZXJybm9lbnQuaDogUmVtb3ZlLCB0aGlzIGFyY2ggdXNlcyBjb21tb24gZXJybm9lbnQuaC4KKwkqIGxpbnV4L3MzOTAvZXJybm9lbnQuaDogRGl0dG8uCisJKiBsaW51eC9zMzkweC9lcnJub2VudC5oOiBEaXR0by4KKwkqIGxpbnV4L3NoL2Vycm5vZW50Lmg6IERpdHRvLgorCisyMDA5LTAyLTEwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdHJ1Y3Qgc2lnY29udGV4dC4KKwkqIHNpZ25hbC5jIFtMSU5VWF0gW002OEtdIChzdHJ1Y3Qgc2lnY29udGV4dCk6IERvbid0IGRlZmluZSBpdCBpZgorCVtIQVZFX1NUUlVDVF9TSUdDT05URVhUXS4KKwlGcm9tIE11dHRsZXkgTWVlbiA8bXV0dGxleS5tZWVuQGdtYWlsLmNvbT4uCisKKzIwMDktMDItMDkgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oOiBDb3JyZWN0IHRoZSBjb21tZW50IGFib3V0IFRDQl9TVVNQRU5ERUQuCisJKiBzdHJhY2UuYzogRml4IG1pc3BsYWNlZCAjZW5kaWYuCisJKiB1dGlsLmM6IEluZGVudCBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcywgbWFyayBjb2RlIHBhcnRzCisJd2hpY2ggY2FuIG5ldmVyIGJlIHJlYWNoZWQgYnkgY29tcGlsYXRpb24gYmVjYXVzZSBvZgorCXRoZSBjb21iaW5hdGlvbiBvZiAjaWYgZGlyZWN0aXZlcy4gVGhlc2UgYXJlIGxpa2VseSBkZWFkIGNvZGUsCisJSSB3YW50IHRvIHJlbW92ZSB0aGVtIGxhdGVyLgorCisyMDA5LTAxLTI5ICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChuZXdvdXRmKTogUHJldmVudCAtbyBGSUxFTkFNRSBvdmVyZmxvd2luZyB0aGUgc3RhY2suCisJKHN0YXJ0dXBfYXR0YWNoKTogRml4IHdyb25nIHBpZCBpbiAiUHJvY2VzcyA8UElEPiBhdHRhY2hlZCIuCisJKGhhbmRsZV9ncm91cF9leGl0KTogRG8gbm90IGNvbnNpZGVyIGV4aXQgdG8gYmUgc3B1cmlvdXMgaWYKKwl0Y2IgaGFzIFRDQl9TVEFSVFVQIGJpdCBzZXQgLSB3ZSBjYW4gYXR0YWNoIHRvIHRoZSB0YXNrCisJcmlnaHQgYmVmb3JlIGl0cyBkZWF0aCwgaXQgY2FuIGxlZ2l0aW1hdGVseSBoYXBwZW4uCisJKGhhbmRsZV9zdG9wcGVkX3RjYnMpOiBEaXR0by4KKworMjAwOS0wMS0yNiAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHByaW50d2FpdG4pOiBBZGQgY29tbWVudCBhYm91dCB3YWl0NCgpIHBpZCBleHBhbnNpb24uCisJVXNlICNpZmRlZiBBTFBIQSBpbnN0ZWFkIG9mIExJTlVYXzY0QklULCBpdCB3YXMgbWlzbGVhZGluZworCShieSBpbXBseWluZyAiYW55IDY0LWJpdCBwbGF0Zm9ybSIpLgorCSogZGVmcy5oOiBSZW1vdmUgbm93LXVudXNlZCBMSU5VWF82NEJJVCBkZWZpbmUuCisJKiByZXNvdXJjZS5jIChzeXNfb3NmX2dldHJ1c2FnZSk6IEZpeCBpbmRlbnRhdGlvbi4KKworMjAwOS0wMS0yNiAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRml4IGZhbGxvdXQgZnJvbSB0Y2IgdGFibGUgZXhwYW5zaW9uCisJc2ltcGxpZmljYXRpb24uIER1ZSB0byBvdmVybG9va2VkIGVsc2UsIEkgZm9yZ290IHRvIGdyb3VwCisJZm9ya190Y2IodGNwKSBhbmQgYWxsb2N0Y2IocGlkKSBpbiBhIGJsb2NrLgorCisyMDA5LTAxLTIzICBNaWNoYWwgTm93YWsgIDxtbm93YWtAcmVkaGF0LmNvbT4KKworCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IEZpeCB3YXJuaW5ncyBhYm91dCB1bnVzZWQgdmFyaWFibGUgJ3BpZCcuCisKKzIwMDktMDEtMjMgIE1pY2hhbCBOb3dhayAgPG1ub3dha0ByZWRoYXQuY29tPgorCisJKiBtZW0uYyAocHJpbnRfbGR0X2VudHJ5KTogRml4IHdhcm5pbmc6CisJRm9ybWF0ICclIzA4bHgnIGV4cGVjdHMgdHlwZSAnbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQKKwlhcmd1bWVudCAyIHdhcyB0eXBlICd1bnNpZ25lZCBpbnQnLgorCisyMDA5LTAxLTE3ICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlUd28gY2xlYW51cHM6IHRjYiB0YWJsZSBleHBhbnNpb24gZmFpbHVyZSBpcyBub3QgcmVhbGx5IGEgc3Vydml2YWJsZQorCWV2ZW50LCB3ZSBkbyBub3QgaGF2ZSBhbnkgdmlhYmxlIHdheSB0byBjb250aW51ZS4gTm8gd29uZGVyIG1vc3QKKwlwbGFjZXMgd2hlcmUgdGhhdCBpcyBkZXRlY3RlZCBoYXZlIEZJWE1Fcy4KKwlJdCdzIHdheSBzaW1wbGVyIHRvIHRyZWF0IGFzIGZhdGFsIGZhaWx1cmUsIGFuZCBoYW5kbGUgaXQgaW5zaWRlCisJdGNiIHRhYmxlIGV4cGFuc2lvbiBmaW5jdGlvbnMuCisJU2Vjb25kIGNsZWFudXA6IHRpZHkgdXAgaGFwaGF6YXJkIGxvY2F0aW9ucyBvZiBhIGZldyBleHRlcm5zLgorCisJKiBkZWZzLmg6IENoYW5nZSByZXR1cm4gdHlwZSBvZiBleHBhbmRfdGNidGFiKCkgdG8gdm9pZC4KKwlEZWNsYXJlIGNoYW5nZV9zeXNjYWxsKCkuCisJKiBwcm9jZXNzLmM6IENoYW5nZSBhbGwgY2FsbHNpdGVzIG9mIGFsbG9jdGNiKCksIGFsbG9jX3RjYigpIGFuZAorCWZvcmtfdGNiKCksIHJlbW92aW5nIG5vdy1yZWR1bmRhbnQgZXJyb3IgY2hlY2tzLgorCShmb3JrX3RjYik6IENoYW5nZSByZXR1cm4gdHlwZSB0byB2b2lkIC0gaXQgY2FuJ3QgZmFpbCBub3cuCisJKiBzdHJhY2UuYzogTW92ZSBleHRlcm4gZGVjbGFyYXRpb25zIG91dCBvZiBmdW5jdGlvbiBib2RpZXMuCisJQ2hhbmdlIGFsbCBjYWxsc2l0ZXMgb2YgYWxsb2N0Y2IoKSwgYWxsb2NfdGNiKCkgYW5kCisJZm9ya190Y2IoKSwgcmVtb3Zpbmcgbm93LXJlZHVuZGFudCBlcnJvciBjaGVja3MuCisJKGV4cGFuZF90Y2J0YWIpOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gdm9pZCAtIGl0IGNhbid0IGZhaWwgbm93LgorCU9uIGZhaWx1cmUgdG8gZXhwYW5kLCBwcmludCBhIG1lc3NhZ2UsIGNsZWFuIHVwLCBhbmQgZXhpdC4KKwkoYWxsb2NfdGNiKTogT24gZmFpbHVyZSB0byBleHBhbmQsIHByaW50IGEgbWVzc2FnZSwgY2xlYW4gdXAsIGFuZCBleGl0LgorCSogdXRpbC5jIChzZXRicHQpOiBSZW1vdmUgZXh0ZXJuIGRlY2xhcmF0aW9uIGZyb20gZnVuY3Rpb24gYm9keS4KKworMjAwOS0wMS0xNCAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJKiBsaW51eC9iZmluL3N5c2NhbGxlbnQuaDogc3lzX2Z1dGV4IGhhcyA2IHBhcmFtZXRlcnMsIG5vdCA1LgorCisyMDA5LTAxLTEzICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwlGaXhlcyBmb3IgcHRyYWNlKCkgYXJndW1lbnQgcGFyc2luZy4KKwkqIHByb2Nlc3MuYzogQWRkIHBhcnNpbmcgb2YgUFRSQUNFX1NFVE9QVElPTlMsIFBUUkFDRV9HRVRFVkVOVE1TRywKKwlQVFJBQ0VfR0VUU0lHSU5GTywgUFRSQUNFX1NFVFNJR0lORk8uCisJKiBkZWZzLmg6IERlY2xhcmUgc2V2ZXJhbCAiZXh0ZXJuIGNvbnN0IHN0cnVjdCB4bGF0IiBhcnJheXMgaGVyZS4KKwkqIGRlc2MuYzogUmVtb3ZlIG9wZW5fbW9kZV9mbGFnc1tdIGFuZCBvcGVuX2FjY2Vzc19tb2Rlc1tdCisJZXh0ZXJuIGRlY2xhcmF0aW9ucy4KKwkqIG5ldC5jOiBSZW1vdmUgb3Blbl9tb2RlX2ZsYWdzW10gZXh0ZXJuIGRlY2xhcmF0aW9uLgorCSogc29jay5jOiBSZW1vdmUgYWRkcmZhbXNbXSBleHRlcm4gZGVjbGFyYXRpb24uCisJKiB1dGlsLmM6IFJlbW92ZSBzdHJ1Y3RfdXNlcl9vZmZzZXRzW10gZXh0ZXJuIGRlY2xhcmF0aW9uLgorCSogc2lnbmFsLmM6IFJlbW92ZSBvcGVuX21vZGVfZmxhZ3NbXSBleHRlcm4gZGVjbGFyYXRpb24uCisKKzIwMDktMDEtMDYgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCU91dHB1dCBmb3JtYXQgZml4ZXMsIGltcHJvdmluZyB0aGUgc2l0dWF0aW9uIGFmdGVyIHJlY2VudAorCWNoYW5nZSB3aGljaCBhZGRlZCBiZWV0ZXIgaGFuZGxpbmcgb2YgcHJvY2Vzc2VzIHN1ZGRlbmx5CisJZGlzYXBwZWFyaW5nLiBOb3cgd2Ugb2Z0ZW4gZG8gbm90IGZpbmlzaCBsYXN0IGxpbmUKKwliZWZvcmUgZXhpdGluZyBpbiB0aG9zZSBjYXNlcy4KKwlUaGUgb25seSBjaGFuZ2UgYWZmZWN0aW5nIHNvbWV0aGluZyBvdGhlciB0aGFuIG91dHB1dAorCWlzIGNoYW5nZSBpbiB1bW92ZXN0ciB3aGVyZSB3ZSB3ZXJlIGNhbGxpbmcKKwlhYm9ydCgpIG9uIHB0cmFjZSBlcnJvci4KKworCSogc3RyYWNlLmMgKHRyYWNlKTogSWYgdHJhY2Vfc3lzY2FsbCgpIGZhaWxlZCB3aXRoIEVTUkNILAorCWZpbmlzaCBjdXJyZW50IG91dHB1dCBsaW5lIHdpdGggIiA8dW5maW5pc2hlZCAuLi4+Ii4KKwkobXBfaW9jdGwpOiBXaGlsZSB3ZSBhcmUgYXQgaXQsIGZpeCBncm9zcyBzdHlsZSBtaXNtYXRjaAorCWluIHRoaXMgZnVuY3Rpb24gZGVmaW5pdGlvbi4gTm8gY29kZSBjaGFnZXMuCisJKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBJZiBkZWNvZGUgZmFpbHMgb24gc3lzY2FsbCBleGl0LAorCWZpbmlzaCBjdXJyZW50IG91dHB1dCBsaW5lIHdpdGggIj0gPyA8dW5hdmFpbGFibGU+Ii4KKwkqIHV0aWwuYyAodW1vdmVuKTogRG8gbm90IGNvbXBsYWluIGlmIGVycm9yIGlzIEVTUkNILgorCSh1bW92ZXN0cik6IERvIG5vdCBjb21wbGFpbiBhbmQgZG8gbm90IGFib3J0KCkgaWYgZXJyb3IgaXMgRVNSQ0guCisJKiBkZWZzLmg6IFJlbW92ZSB1bnVzZWQgdGNwIHBhcmFtZXRlciBmcm9tIHByaW50dHJhaWxlcigpLgorCSogcHJvY2Vzcy5jOiBBZGp1c3QgcHJpbnR0cmFpbGVyKCkgY2FsbHMgYWNjb3JkaW5nbHkuCisJKiBzdHJhY2UuYzogQWRqdXN0IHByaW50dHJhaWxlcigpIGNhbGxzIGFjY29yZGluZ2x5LgorCSogc3lzY2FsbC5jOiBBZGp1c3QgcHJpbnR0cmFpbGVyKCkgY2FsbHMgYWNjb3JkaW5nbHkuCisKKzIwMDktMDEtMDYgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCSogZGVzYy5jIChwcmludGZsb2NrKTogRml4IGRpc3BsYXkgb2YgZmNudGwoRl9TRVRMSykgb24KKwlub24tbmF0aXZlIDMyLWJpdCBhcmNoaXRlY3R1cmUuCisJRml4ZXMgUkgjNDcxMTY5ICJmb3JtYXQgZmNudGw2NCgpIHN5c3RlbSBjYWxscyBmb3IKKwkzMiBiaXQgYXBwbGljYXRpb24gaW5jb3JyZWN0Ii4KKwkqIGRlc2MuYzogY29uc3QnaWZ5IHR3byBzdGF0aWMgc3RydWN0IHhsYXQgdmVjdG9yW10ncywKKwljb252ZXJ0IGFsbCByZW1haW5pbmcgb2xkIHN0eWxlIEMgcGFyYW1ldGVyIGRlY2xhcmF0aW9ucworCWluIHRoaXMgZmlsZS4KKworMjAwOC0xMS0xMyAgS2lyaWxsIEEuIFNodXRlbW92ICA8a2lyaWxsQHNodXRlbW92Lm5hbWU+CisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBzeXNjYWxscy4KKwlCYXNlZCBvbiBwYXRjaCBieSBFbnJpY28gU2Nob2x6LgorCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBGaXggYnVpbGQgb24gQVJNIEVBQkkgd2hpY2ggZG9lcyBub3QKKwlwcm92aWRlIHN5c2NhbGxzIHNvY2tldGNhbGwgYW5kIGlwYy4KKworMjAwOS0wMS0wMSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KKworCSogbmV0LmMgKHN5c19hY2NlcHQpOiBQcm9wZXJseSBkZWNvZGUgdGhpcmQgYXJndW1lbnQgYXMgcG9pbnRlciB0bworCWludC4KKworMjAwOC0xMi0zMCAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJRXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIC1EIG9wdGlvbi4KKwlVbmxpa2Ugbm9ybWFsIGNhc2UsIHdpdGggLUQgKmdyYW5kcGFyZW50KiBwcm9jZXNzIGV4ZWMncywKKwliZWNvbWluZyBhIHRyYWNlZCBwcm9jZXNzLiBDaGlsZCBleGl0cyAodGhpcyBwcmV2ZW50cyB0cmFjZWQgcHJvY2VzcworCWZyb20gaGF2aW5nIGNoaWxkcmVuIGl0IGRvZXNuJ3QgZXhwZWN0IHRvIGhhdmUpLCBhbmQgZ3JhbmRjaGlsZAorCWF0dGFjaGVzIHRvIGdyYW5kcGFyZW50IHNpbWlsYXJseSB0byBzdHJhY2UgLXAgUElELgorCVRoaXMgYWxsb3dzIGZvciBtb3JlIHRyYW5zcGFyZW50IGludGVyYWN0aW9uIGluIGNhc2VzCisJd2hlbiBwcm9jZXNzIGFuZCBpdHMgcGFyZW50IGFyZSBjb21tdW5pY2F0aW5nIHZpYSBzaWduYWxzLAorCXdhaXQoKSBldGMuIFdpdGhvdXQgLUQsIHN0cmFjZSBwcm9jZXNzIGdldHMgbG9kZ2VkIGluIGJldHdlZW4sCisJZGlzcnVwdGluZyBwYXJlbnQ8LT5jaGlsZCBsaW5rLgorCSogc3RyYWNlLmM6IEFkZCBnbG9iYWwgZmxhZyB2YXJpYWJsZSBkYWVtb25pemVkX3RyYWNlciBmb3IgLUQgb3B0aW9uLgorCShzdGFydHVwX2F0dGFjaCk6IElmIC1ELCBmb3JrIGFuZCBibG9jayBwYXJlbnQgaW4gcGF1c2UoKS4KKwlJbiB0aGlzIGNhc2Ugd2UgYXJlIGFscmVhZHkgYSBjaGlsZCwgd2UgaW4gZmFjdCBjcmVhdGVkIGEgZ3JhbmRjaGlsZC4KKwlBZnRlciBhdHRhY2hpbmcgdG8gZ3JhbmRwYXJlbnQsIGdyYW5kY2hpbGQgU0lHS0lMTHMgcGFyZW50LgorCShzdGFydHVwX2NoaWxkKTogSWYgLUQsIHBhcmVudCBibG9ja3MgaW4gd2FpdCgpLCB0aGVuCisJZXhlY3MgdGhlIHByb2dyYW0gdG8gc3RyYWNlLiBOb3JtYWxseSAody9vIC1EKSwgaXQgaXMgY2hpbGQKKwl3aG8gZXhlY3MgdGhlIHByb2dyYW0uCisJKG1haW4pOiBEZXRlY3QgLUQgb3B0aW9uLCBjYWxsIHN0YXJ0dXBfYXR0YWNoKCkgaWYgaXQgaXMgZ2l2ZW4uCisKKzIwMDgtMTItMzAgIEtpcmlsbCBBLiBTaHV0ZW1vdiAgPGtpcmlsbEBzaHV0ZW1vdi5uYW1lPgorCisJRml4IHNvbWUgd2FybmluZ3Mgb24gQVJNIGJ1aWxkLgorCSogZGVmcy5oOiBpbmNsdWRlIDxzeXMvcHRyYWNlLmg+IG9uIGFybSB0b28uCisJKiBzeXNjYWxsLmM6IEVBQkkgYXJtIGRvZXMgbm90IG5lZWQgZGVjb2RlX3N1YmNhbGwoKSwKKwlpZmRlZiBpdCBvdXQuCisKKzIwMDgtMTItMjkgIE5pY2sgQmxhY2sgIDxkYW5rYW1vbmdtZW5AYWNtLm9yZz4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBNYXJrIHNlbmRmaWxlKDIpIGFzIG5ldHdvcmsgc3lzY2FsbC4KKwkqIGxpbnV4Lyovc3lzY2FsbGVudC5oOiBTYW1lLCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMuCisKKzIwMDgtMTItMTcgIERlbnlzIFZsYXNlbmtvICA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KKworCU1ha2Ugc3RyYWNlIGRldGVjdCB3aGVuIHRyYWNlZCBwcm9jZXNzIHN1ZGRlbmx5IGRpc2FwcGVhcmVkCisJKHByaW1lIGV4YW1wbGUgaXMgcmFuZG9tbHkgYXJyaXZpbmcgU0lHS0lMTCkuCisJKiBkZWZzLmggKGRvX3B0cmFjZSwgcHRyYWNlX3Jlc3RhcnQpOiBEZWNsYXJlIG5ldyBmdW5jdGlvbnMKKwkqIHByb2Nlc3MuYzogVXNlIHB0cmFjZV9yZXN0YXJ0IGluc3RlYWQgb2YgYmFyZSBwdHJhY2UuCisJVGhpcyBjYXRjaGVzIGFuZCByZWNvcmRzIEVTUkNIIGVycm9ycy4KKwlQcmludCAiPHVuYXZhaWxhYmxlPiIgaWYgc3lzY2FsbCBkZWNvZGUgb3IgcmVzdWx0IGNhbid0IGJlCisJZGV0ZXJtaW5lZCBiZWNhdXNlIG9mIGFuIGVhcmxpZXIgZXJyb3IgaW4gcHRyYWNlKCkKKwkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IFN0b3AgaW5kaXNjcmltaW5hdGVseSBiYWlsaW5nIG91dAorCW9uIGVycm9ycywgcHJpbnQgInN5c2NhbGwoPz8/PyIgb3IgZXZlbiAiPz8/Pyg/Pz8/IiBidXQgY29udGludWUuCisJKiB1dGlsLmMgKGRvX3B0cmFjZSwgcHRyYWNlX3Jlc3RhcnQpOiBEZWZpbmUgbmV3IGZ1bmN0aW9ucy4KKwkodXBlZWspOiB1c2UgZG9fcHRyYWNlIGluIG9yZGVyIHRvIGNhdGNoIGFuZCByZWNvcmQgRVNSQ0guCisJRG8gbm90IHByaW50IGVycm9yIG1lc3NhZ2UgaW4gdGhpcyBjYXNlLgorCUZpeGVzIFJIIzQ3MjA1My4KKworMjAwOC0xMi0xNyAgRGVueXMgVmxhc2Vua28gIDxkdmxhc2Vua0ByZWRoYXQuY29tPgorCisJKiBzaWduYWwuYyAoc3lzX3NpZ2FjdGlvbiwgc3lzX3J0X3NpZ2FjdGlvbik6IEZpeCB0eXBvCisJaW4gKHNhX2hhbmRsZXIgPT0gU0lHX0lHTikgY29tcGFyaXNvbiwgaXQgd2FzIHVzaW5nIFNJR19ERkwKKwlpbnN0ZWFkLgorCisyMDA4LTEyLTE2ICBEZW55cyBWbGFzZW5rbyAgPGR2bGFzZW5rQHJlZGhhdC5jb20+CisKKwkqIGRlZnMuaDogTW9kaWZ5IGRlY2xhcmF0aW9uIG9mIHVwZWVrIHRvIHRha2Ugc3RydWN0IHRjYiAqCisJcGFyYW1ldGVyIGluc3RlYWQgb2YgcGlkX3QuCisJKiBwcm9jZXNzLmM6IENoYW5nZSBhbGwgdXBlZWsgY2FsbHMgYWNjb3JkaW5nbHkuCisJKiBzaWduYWwuYzogTGlrZXdpc2UuCisJKiBzdHJhY2UuYzogTGlrZXdpc2UuCisJKiBzeXNjYWxsLmM6IExpa2V3aXNlLgorCSogdXRpbC5jOiBMaWtld2lzZS4KKworMjAwOC0xMS0xMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc29jay5jIFtMSU5VWF0gKHNvY2tfaW9jdGwpOiBQYXJzZSBtb3JlIFNJT0NTKiBpb2N0bHMuCisKKzIwMDgtMTItMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS4xIChESUFHTk9TVElDUyk6IE5ldyBzZWN0aW9uLCBkZXNjcmliZSBleGl0IGJlaGF2aW9yLgorCisyMDA4LTExLTA5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBwcm9jZXNzLmMgKHByY3RsX29wdGlvbnMpOiBVcGRhdGUgY29uc3RhbnRzIGZyb20gbGludXggMi42LjI3LgorCSogc3lzdGVtLmMgKGNhcGFiaWxpdGllcyk6IEFkZCBtb3JlIGNhcGFiaWxpdHkgdmFsdWVzLgorCisJKiB1dGlsLmMgKHN0cmluZ19xdW90ZSk6IEZpeCBzdXBwb3J0IGZvciBOVUwtdGVybWluYXRlZCBzdHJpbmcuCisJQWRkIGNvbW1lbnRzLgorCShwcmludHBhdGhuKTogRml4IHRoZSBjYXNlIHdoZW4gIi4uLiIgd2FzIGFwcGVuZGVkIHRvIHRoZSBvdXRwdXQKKwlidXQgbm8gdHJ1bmNhdGlvbiB3YXMgYWN0dWFsbHkgbWFkZS4gIEFkZCBjb21tZW50cy4KKwkocHJpbnRzdHIpOiBGaXggbWVtb3J5IGFsbG9jYXRpb24uICBGaXggdHdvIGNhc2VzIHdoZW4gIi4uLiIgd2FzCisJYXBwZW5kZWQgdG8gdGhlIG91dHB1dCBidXQgbm8gdHJ1bmNhdGlvbiB3YXMgYWN0dWFsbHkgbWFkZS4KKwlBZGQgY29tbWVudHMuCisJRml4ZXMgUkgjNDcwNTI5LgorCisyMDA4LTEwLTIzICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJSW1wbGVtZW50IHBhcnNlcnMgZm9yIG5ldyBsaW51eCBzeXNjYWxscy4KKwkqIGRlc2MuYyAoZG9fZHVwMiwgW0xJTlVYXSBzeXNfZHVwMyk6IE5ldyBmdW5jdGlvbnMuCisJKHN5c19kdXAyKTogVXNlIGRvX2R1cDIuCisJW0xJTlVYXSAoc3lzX2Vwb2xsX2NyZWF0ZTEpOiBOZXcgZnVuY3Rpb24uCisJW0xJTlVYXSAoZG9fZXZlbnRmZCwgc3lzX2V2ZW50ZmQyKTogTmV3IGZ1bmN0aW9ucy4KKwlbTElOVVhdIChzeXNfZXZlbnRmZCk6IFVzZSBkb19ldmVudGZkLgorCSogbmV0LmMgKGRvX3BpcGUsIFtMSU5VWF0gc3lzX3BpcGUyKTogTmV3IGZ1bmN0aW9ucy4KKwkoc3lzX3BpcGUpOiBVc2UgZG9fcGlwZS4KKwkqIHNpZ25hbC5jIFtMSU5VWF0gKGRvX3NpZ25hbGZkLCBzeXNfc2lnbmFsZmQ0KTogTmV3IGZ1bmN0aW9ucy4KKwlbTElOVVhdIChzeXNfc2lnbmFsZmQpOiBVc2UgZG9fc2lnbmFsZmQuCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgbmV3IHN5c18qIGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSG9vayB1cCBzaWduYWxmZDQsIGV2ZW50ZmQyLCBlcG9sbF9jcmVhdGUxLAorCWR1cDMsIHBpcGUyLCBpbm90aWZ5X2luaXQxLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogSG9vayB1cCBwYWNjZXB0LCBzaWduYWxmZDQsIGV2ZW50ZmQyLAorCWVwb2xsX2NyZWF0ZTEsIGR1cDMsIHBpcGUyLCBpbm90aWZ5X2luaXQxLgorCisyMDA4LTEwLTIzICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJUG9ydCBzdHJhY2UgdG8gdGhlIEJsYWNrZmluIGFyY2hpdGVjdHVyZS4KKwkqIGNvbmZpZ3VyZS5hYzogQWRkIGJmaW4gdG8gc3VwcG9ydGVkIGFyY2hpdGVjdHVyZXMuCisJKiBwcm9jZXNzLmM6IFNraXAgdV9mcHZhbGlkL3VfZnBzdGF0ZSBmb3IgQmxhY2tmaW4gYXJjaGl0ZWN0dXJlLgorCShjaGFuZ2Vfc3lzY2FsbCk6IFN1cHBvcnQgQmxhY2tmaW4gYXJjaGl0ZWN0dXJlLgorCSogc3lzY2FsbC5jOiBEZWNsYXJlIHIwIGZvciBCbGFja2ZpbiBhcmNoaXRlY3R1cmUuCisJKGdldF9zY25vKTogRGVjb2RlIEJsYWNrZmluIHN5c2NhbGwgbnVtYmVyLgorCShzeXNjYWxsX2ZpeHVwKTogRXh0cmFjdCBCbGFja2ZpbiByZXR1cm4gdmFsdWUuCisJKGdldF9lcnJvcik6IERlY29kZSBCbGFja2ZpbiByZXR1cm4gdmFsdWUuCisJKGZvcmNlX3Jlc3VsdCk6IFBva2UgQmxhY2tmaW4gcmV0dXJuIHZhbHVlLgorCShzeXNjYWxsX2VudGVyKTogRXh0cmFjdCBCbGFja2ZpbiBzeXNjYWxsIGFyZ3VtZW50cy4KKwkqIGRlZnMuaDogRGVmaW5lIFRDQl9XQUlURVhFQ1ZFIGZvciBCbGFja2ZpbiBhcmNoaXRlY3R1cmUuCisJKiBsaW51eC9zeXNjYWxsLmggKHN5c19zcmFtX2FsbG9jKTogRGVjbGFyZSBmb3IgQmxhY2tmaW4KKwlhcmNoaXRlY3R1cmUuCisJKiBzeXN0ZW0uYyAoc3lzX3NyYW1fYWxsb2MpOiBEZWNvZGUgQmxhY2tmaW4gc3JhbV9hbGxvYygpIHN5c2NhbGwuCisJKiB1dGlsLmMgKGdldHBjKTogSGFuZGxlIFBDIG9uIEJsYWNrZmluIGFyY2hpdGVjdHVyZS4KKwkocHJpbnRjYWxsKTogTGlrZXdpc2UuCisJKiBsaW51eC9iZmluL2lvY3RsZW50LmgsIGxpbnV4L2JmaW4vc3lzY2FsbGVudC5oOiBOZXcgQmxhY2tmaW4KKwloZWFkZXJzLgorCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgbGludXgvYmZpbi9pb2N0bGVudC5oIGFuZAorCWxpbnV4L2JmaW4vc3lzY2FsbGVudC5oLgorCisyMDA4LTA5LTE4ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgorCisJKiBjb25maWd1cmUuYWM6IEFjY2VwdCB1Y2xpbnV4IGhvc3RzIGFzIGxpbnV4LgorCisyMDA4LTEwLTIyICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwlIYW5kbGUgc29ja2V0IHR5cGUgZmxhZ3MgaW50cm9kdWNlZCBpbiBsaW51eCAyLjYuMjcuCisJKiBuZXQuYyAoc29ja3R5cGVzKTogQWRkIFNPQ0tfRENDUC4KKwkoc29ja190eXBlX2ZsYWdzKTogTmV3IHhsYXQgc3RydWN0dXJlLgorCSh0cHJpbnRfc29ja190eXBlKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfc29ja2V0LCBzeXNfc29ja2V0cGFpcik6IFVzZSBpdCB0byBwYXJzZSBzb2NrZXQgdHlwZSBhbmQKKwlzb2NrZXQgdHlwZSBmbGFncy4KKworMjAwOC0wOS0yOSAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJhY2UuYyAoc3RhcnR1cF9jaGlsZCk6IFNhdmUgY2hpbGQgcGlkIGZvciBmdXR1cmUgdXNlLgorCShtYWluKTogRXhpdC9raWxsIG91cnNlbGYgd2l0aCBzdHJhY2VkIGNoaWxkJ3MgZXhpdGNvZGUvc2lnbmFsLgorCSh0cmFjZSk6IElmIHNpZ25hbGxlZCBwcm9jZXNzIHBpZCBtYXRjaGVzIHRoZSBzYXZlZCBjaGlsZCBwaWQsCisJc2F2ZSB0aGUgc2lnbmFsIG51bWJlci4gIElmIHRlcm1pbmF0ZWQgcHJvY2VzcyBwaWQgbWF0Y2hlcyB0aGUKKwlzYXZlZCBjaGlsZCBwaWQsIHNhdmUgaXRzIGV4aXQgc3RhdHVzLgorCVBhdGNoIGZyb20gRGVueXMgVmxhc2Vua28gPGR2bGFzZW5rQHJlZGhhdC5jb20+CisJRml4ZXMgUkgjMTA1MzcxLgorCisyMDA4LTA5LTEyICBUb21hcyBQb3NwaXNlayAgPHRwb0Bzb3VyY2Vwb2xlLmNoPgorCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS4xIChERVNDUklQVElPTik6IE5ldyBkZXNjcmlwdGlvbiBvZiB1bmZpbmlzaGVkIHN5c3RlbSBjYWxscworCWFuZCBzeXN0ZW0gY2FsbHMgcmVzdGFydGluZy4KKworMjAwOC0wOS0wMyAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBkZXNjLmMgKHN5c19mY250bCk6IERvIG5vdCBpbml0aWFsaXplIGF1eHN0ciBmb3IgZmFpbGVkIHN5c2NhbGwuCisJKiBwcm9jZXNzLmMgKHN5c19mb3JrLCBzeXNfcmZvcmspIFtVU0VfUFJPQ0ZTXTogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoc3lzX3NpZ25hbCk6IExpa2V3aXNlLgorCSogc3RyZWFtLmMgKGludGVybmFsX3N0cmVhbV9pb2N0bCk6IExpa2V3aXNlLgorCSogdGltZS5jIChzeXNfYWRqdGltZXgpOiBMaWtld2lzZS4KKwkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IElmIFJWQUxfU1RSIGlzIHNldCwgdGhlbgorCXByaW50IGF1eHN0ciBmb3IgZmFpbGVkIHN5c2NhbGwgYXMgd2VsbC4KKworCSogc3lzY2FsbC5jIChpc19yZXN0YXJ0X2Vycm9yKTogTmV3IGZ1bmN0aW9uLgorCSogZGVmcy5oIChpc19yZXN0YXJ0X2Vycm9yKTogRGVjbGFyZSBpdC4KKworCSogbGludXgvZHVtbXkuaCAoc3lzX25hbm9zbGVlcCk6IFVuY291cGxlIGZyb20gc3lzX2FkanRpbWUoKS4KKwkqIHRpbWUuYyAoc3lzX25hbm9zbGVlcCk6IE5ldyBmdW5jdGlvbiwgYmFzZWQgb24gaXNfcmVzdGFydF9lcnJvcigpLgorCisJKiBwcm9jZXNzLmMgKHN5c19wcmN0bCk6IERlY29kZSBQUl9TRVRfUERFQVRIU0lHLCBQUl9HRVRfUERFQVRIU0lHLAorCVBSX1NFVF9EVU1QQUJMRSwgUFJfR0VUX0RVTVBBQkxFLCBQUl9TRVRfS0VFUENBUFMsIFBSX0dFVF9LRUVQQ0FQUy4KKwlGaXggUFJfR0VUX1VOQUxJR04gZGVjb2Rlci4KKwkocHJjdGxfb3B0aW9ucyk6IEFkZCBtb3JlIGNvbnN0YW50cy4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3ByY3RsKCkgZGVjb2RlciBmb3IgInByY3RsIiBzeXNjYWxsLgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwOC0wOS0wMiAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBGaXggc3lzY2FsbCBudW1iZXJzIGZvciAidGVlIiBhbmQKKwkic3luY19maWxlX3JhbmdlIi4KKwlGcm9tIEZlcm5hbmRvIEx1aXMgVmF6cXVleiBDYW8gPGZlcm5hbmRvQG9zcy5udHQuY28uanA+CisKKzIwMDgtMDgtMjggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS4xIChCVUdTKTogTmV3IHNlY3Rpb24sIG1lbnRpb24gU0lHVFJBUCBpbnRlcmZlcmVuY2UuCisKKwkqIHN0cmFjZS5zcGVjICglaWZhcmNoICV7c3RyYWNlNjRfYXJjaGVzfSk6IFVzZSBjcCAtcCBpbnN0ZWFkIG9mIGxuCisJZm9yICV7cmhlbH0gPCA2LgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjE4LgorCSogc3RyYWNlLnNwZWM6IDQuNS4xOC0xLgorCisyMDA4LTA4LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCBldCBhbCwgU1lTX2lwY19zdWJjYWxsIGV0IGFsKToKKwlEb24ndCBkZWZpbmUgdGhlc2UgaWYgW19fQVJNX0VBQklfX10uCisJUmVwb3J0ZWQgYnkgSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAc2lnMjEubmV0Pi4KKworCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKTogQ29uZGl0aW9uYWxpemUgb24gW1NZU19zb2NrZXRfc3ViY2FsbF0KKwlhbmQgW1NZU19pcGNfc3ViY2FsbF0gaW5kaXZpZHVhbGx5LgorCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogSGFuZGxlIHN1YnBhZ2VfcHJvdC4KKwkqIG1lbS5jIFtMSU5VWCAmJiBQT1dFUlBDXSAoc3lzX3N1YnBhZ2VfcHJvdCk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaCBbUE9XRVJQQ106IERlY2xhcmUgaXQuCisJRnJvbSBTaW1vbiBNdXJyYXkgPHNpbW9uQHRyYW5zaXRpdmUuY29tPi4KKworCSogbWVtLmMgKG1tYXBfcHJvdCk6IEhhbmRsZSBQUk9UX1NBTy4KKwlGcm9tIFNpbW9uIE11cnJheSA8c2ltb25AdHJhbnNpdGl2ZS5jb20+LgorCisJKiBtZW0uYyAobWFkdmlzZV9mbGFncyk6IFR5cG8gZml4ZXMuICBSZW5hbWUgdG8gbWFkdmlzZV9jbWRzLgorCShzeXNfbWFkdmlzZSk6IFVzZSBwcmludHh2YWwsIG5vdCBwcmludGZsYWdzLgorCVJlcG9ydGVkIGJ5IFJhamVldiBWLiBQaWxsYWkgPHJhamVldnZwQGdtYWlsLmNvbT4uCisKKzIwMDgtMDgtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHNpZ25hbC5jIChzeXNfc2lnYWN0aW9uLCBzeXNfcnRfc2lnYWN0aW9uKTogRG9uJ3Qgb21pdCB0aGUgcmVzdCBvZgorCXRoZSBzdHJ1Y3QgYWZ0ZXIgc2FfaGFuZGxlciBpcyBhIGtub3duIGNvbnN0YW50LiAgU29tZSBzYV9mbGFncyBiaXRzCisJaGF2ZSBtZWFuaW5nIGV2ZW4gZm9yIFNJR19JR04vU0lHX0RGTC4KKworMjAwOC0wOC0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiB1dGlsLmMgKENMT05FX1ZNKTogRGVmaW5lIGlmIG5vdCBkZWZpbmVkIGFscmVhZHkuCisJKHNldGJwdCk6IENsZWFyIENMT05FX1ZNIGluIHRoZSBjYXNlIHdlIGFscmVhZHkgY2xlYXIgQ0xPTkVfVkZPUksgZm9yCisJU1lTX2Nsb25lIGFuZCBTWVNfY2xvbmUyLgorCVJlcG9ydGVkIGJ5IE1pY2hhbCBOb3dhay4KKwlGaXhlcyBSSCM0NTUwNzguCisKKzIwMDgtMDgtMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCUZpeCBjb21waWxlciB3YXJuaW5ncy4KKwkqIHNpZ25hbC5jIChzeXNfc2lnbmFsKTogQ2FzdCB0byBTSUdfKiB0byB0aGUgbWF0Y2hpbmcgdHlwZSBMT05HLgorCSogc3RyYWNlLmMgKHRyYWNlKTogVmFyaWFibGVzIFBTUiBhbmQgUEMgYXJlIG5vdyBzaWduZWQuCisJKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpOiBWYXJpYWJsZSBSQlNfRU5EIGlzIG5vdyBzaWduZWQgbG9uZy4KKwlSZW1vdmUvYWRkIHRoZSBSQlNfRU5EIGNhc3RzIGFwcHJvcHJpYXRlbHkuCisJKiB1dGlsLmMgW0lBNjRdIChhcmdfc2V0dXApOiBWYXJpYWJsZSBCU1AgaXMgbm93IHNpZ25lZCBsb25nLgorCVJlbW92ZS9hZGQgdGhlIEJTUCBjYXN0cyBhcHByb3ByaWF0ZWx5LgorCTxpYTMyPjogSW5pdGlhbGl6ZSAqU1RBVEUuCisKKzIwMDgtMDctMzEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIG5ldyBsaW51eC9hcm0vIGZpbGVzLgorCisJKiBmaWxlLmMgW0xJTlVYXSAoc3RydWN0IGtlcm5lbF9kaXJlbnQpOiBEZWZpbmUgaXQgbG9jYWxseSwKKwlkbyBub3QgdXNlIDxsaW51eC9kaXJlbnQuaD4uCisJRml4ZXMgUkgjNDU3MjkxLgorCisJKiBjb25maWd1cmUuYWM6IEFkZCBBQ19IRUFERVJfU1REQk9PTC4KKwkqIGRlZnMuaCBbSEFWRV9TVERCT09MX0hdOiAjaW5jbHVkZSA8c3RkYm9vbC5oPi4KKwlGaXhlcyBEZWJpYW4jNDkyNzc0LgorCisyMDA4LTA3LTI0ICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN0cmFjZS5jIChtYWluKTogRml4IC1GIG9wdGlvbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KKworMjAwOC0wNy0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgbmV3IGRlYmlhbi8gZmlsZXMuCisKKzIwMDgtMDctMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogVmVyc2lvbiA0LjUuMTcuCisJKiBzdHJhY2Uuc3BlYzogNC41LjE3LTEuCisKKwkqIGRlZnMuaCBbTElOVVhTUEFSQ106IERvbid0ICNpbmNsdWRlIDxsaW51eC9hLm91dC5oPi4KKworMjAwOC0wNy0xOSAgRnJlZGVyaWsgU2Now7xsZXIgPGZzQGRlYmlhbi5vcmc+CisKKwkqIGRlYmlhbi9jb250cm9sOiBBZGQgc3RyYWNlNjQgcGFja2FnZS4KKwkqIGRlYmlhbi9ydWxlczogVXNlIGRlYmhlbHBlciBmbGFnIC0tc2FtZS1hcmNoIGluc3RlYWQgb2YgLS1hcmNoIGluCisJb3JkZXIgdG8gYnVpbGQgc3RyYWNlNjQgb25seSBvbiB0aGUgc3BlY2lmaWVkIGFyY2hpdGVjdHVyZXMuCisJKiBkZWJpYW4vc3RyYWNlNjQuaW5zdGFsbDogTmV3IGZpbGUsIGxpc3QgZm9yIGRoX2luc3RhbGwuCisJKiBkZWJpYW4vc3RyYWNlNjQubWFucGFnZXM6IE5ldyBmaWxlLCBsaXN0IGZvciBkaF9pbnN0YWxsLgorCSogZGViaWFuL2NoYW5nZWxvZzogQWRkIHByZXJlbGVhc2VzIGVudHJpZXMuCisJRml4ZXMgRGViaWFuIzQ5MTE2NywgRGViaWFuIzQ5MTE4OC4KKworMjAwOC0wNy0xOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KKworCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IERlY29kZSBtaW5jb3JlIHN5c2NhbGwuCisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBGaXggYXJndW1lbnQgY291bnQgZm9yIHJlcXVlc3Rfa2V5LgorCisJKiB0ZXJtLmMgKHRlcm1faW9jdGwpOiBEZWNvZGUgaW5kaXJlY3QgcGFyYW1ldGVyIGFzIGludCwgbm90IGxvbmcuCisKKzIwMDgtMDctMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIE5FV1MsIHN0cmFjZS5zcGVjOiBVcGRhdGVzIGluIHByZXBhcmF0aW9uIGZvciByZWxlYXNlLgorCisJKiBwcm9jZXNzLmMgKHByaW50d2FpdG4pOiBXaGVuIGN1cnJlbnQgcGVyc29uYWxpdHkncyB3b3Jkc2l6ZSBpcworCXNtYWxsZXIgdGhhbiBuYXRpdmUsIHNpZ24tZXh0ZW5kIHRoZSBQSUQgYXJndW1lbnQgZnJvbSAzMiBiaXRzLgorCisJKiBwcm9jZXNzLmMgKGZ1dGV4b3BzKTogVXBkYXRlIHRhYmxlLgorCShzeXNfZnV0ZXgpOiBIYW5kbGUgRlVURVhfV0FJVF9CSVRTRVQgY29ycmVjdGx5LgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjNDQ4NjI4LgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEZpeCAiZnV0ZXgiIGFyZ3VtZW50IGNvdW50LgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzQ0ODYyOS4KKworCSogc2lnbmFsLmMgKHNpZ2FjdF9mbGFncyk6IFByZWZlciBTQV9OT0RFRkVSIHRvIFNBX05PTUFTSywKKwlTQV9SRVNFVEhBTkQgdG8gU0FfT05FU0hPVC4KKwlGaXhlcyBSSCM0NTU4MjEuCisKKzIwMDgtMDctMDkgIEZyZWRlcmlrIFNjaMO8bGVyIDxmc0BkZWJpYW4ub3JnPgorCisJKiBkZWJpYW4vcnVsZXM6IFJlbW92ZSB0aGUgYnJva2VuIHVkZWIgY3JlYXRpb24gcm91dGluZXMsIGFuZCByZWRvIHRoZQorCWNvbXBsZXRlIGluc3RhbGwgcHJvY2VkdXJlIHVzaW5nIGRlYmhlbHBlci4KKwkqIGRlYmlhbi9zdHJhY2UuZG9jczogTmV3IGZpbGUsIGxpc3QgZm9yIGRoX2luc3RhbGxkb2NzLgorCSogZGViaWFuL3N0cmFjZS5leGFtcGxlczogTmV3IGZpbGUsIGxpc3QgZm9yIGRoX2luc3RhbGxleGFtcGxlcy4KKwkqIGRlYmlhbi9zdHJhY2UuaW5zdGFsbDogTmV3IGZpbGUsIGxpc3QgZm9yIGRoX2luc3RhbGwuCisJKiBkZWJpYW4vc3RyYWNlLXVkZWIuaW5zdGFsbDogTmV3IGZpbGUsIGxpc3QgZm9yIGRoX2luc3RhbGwuCisJKiBkZWJpYW4vc3RyYWNlLm1hbnBhZ2VzIDogTmV3IGZpbGUsIGxpc3QgZm9yIGRoX2luc3RhbGxtYW5wYWdlcy4KKwkqIGRlYmlhbi9jb3B5cmlnaHQ6IFVwZGF0ZS4KKwkqIGRlYmlhbi9jb250cm9sOiBGaXggbGliYzYgYnVpbGQgZGVwZW5kZW5jeSBmb3IgYWxwaGEgYW5kIGlhNjQuCisJKHN0cmFjZS11ZGViOiBYQy1QYWNrYWdlLVR5cGUpOiBBZGQgaGVhZGVyLgorCSogZGViaWFuL2NoYW5nZWxvZzogQ29zbWV0aWMgY2hhbmdlcy4KKworMjAwOC0wNy0wMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJVHJhY2UgdmZvcmsgdW5kZXIgLWYgb24gYWxsIHRoZSBwbGF0Zm9ybXMuCisJKiBzdHJhY2UuMSA8LWY+OiBEZXNjcmliZSBMaW51eCBjYXRjaGVzIG5ldyBjaGlsZHJlbiBpbW1lZGlhdGVseS4KKwk8LUY+OiBNYWtlIHRoZSBvcHRpb24gb2Jzb2xldGUuICBNb3ZlIHRoZSBTdW5PUyBWRk9SSyBjb21tZW50IHRvIHRoZQorCWAtZicgb3B0aW9uIGRlc2NyaXB0aW9uLgorCSogZGVmcy5oIChmb2xsb3d2Zm9yayk6IERlY2xhcmF0aW9uIHJlbW92ZWQuCisJKiBzdHJhY2UuYyAoZm9sbG93dmZvcmspOiBWYXJpYWJsZSByZW1vdmVkLgorCShtYWluKSA8LUY+OiBNZXJnZSB3aXRoIHRoZSBgLWYnIG9wdGlvbi4KKwkodHJhY2UpOiBNYWtlICFGT0xMT1dWRk9SSyB1bmNvbmRpdGlvbmFsLgorCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9mb3JrKTogTWFrZSAhRk9MTE9XVkZPUksgdW5jb25kaXRpb25hbC4KKworMjAwOC0wNy0wMSAgRnJlZGVyaWsgU2Now7xsZXIgPGZzQGRlYmlhbi5vcmc+CisKKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IExpc3QgYWxsIGJ1Z3MgY2xvc2VkIHNpbmNlIHRoZSBsYXN0IHJlbGVhc2UuCisJKiBkZWJpYW4vY29udHJvbDogUmVtb3ZlIFdpY2hlcnQgQWtrZXJtYW4gZnJvbSB1cGxvYWRlcnMgbGlzdC4KKwkqIGRlYmlhbi9jb250cm9sOiBCdW1wIHN0YW5kYXJkcyB2ZXJzaW9uIHRvIDMuOC4wLgorCSogZGViaWFuL2NvbnRyb2w6IEFkZCBIb21lcGFnZSBmaWVsZC4KKwkqIGRlYmlhbi9ydWxlczogRml4IGRwa2ctZ2VuY29udHJvbCBjYWxsLgorCSogZGViaWFuL2NvbXBhdDogTmV3IGZpbGUsIHNldCB0byBjb21wYXRpYmlsaXR5IGxldmVsIDUuCisJKiBkZWJpYW4vcnVsZXM6IENhbGwgZGhfY2xlYW4gb24gY2xlYW4gdGFyZ2V0LgorCSogZGViaWFuL3J1bGVzOiBBZGQgZGhfbWQ1c3VtcyBjYWxsLgorCUZpeGVzIERlYmlhbiM0Mzk0MjguCisKKzIwMDgtMDYtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCUZpeCBpYTY0IGAtZicgb24gY2xvbmUyIGZvcm1lcmx5IGNyYXNoaW5nIHRoZSBjaGlsZC4KKwkqIHV0aWwuYyBbSUE2NF0gKHJlc3RvcmVfYXJnMCwgcmVzdG9yZV9hcmcxKTogRGVmaW5lIGFzIGVtcHR5LgorCUZpeGVzIFJIIzQ1MzQzOC4KKworMjAwOC0wNi0yNyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiB1dGlsLmMgKENMT05FX1ZGT1JLKTogRGVmaW5lIGlmIG5vdCBkZWZpbmVkIGFscmVhZHkuCisJKHNldGJwdCk6IENsZWFyIENMT05FX1ZGT1JLIGZvciBTWVNfY2xvbmUgYW5kIFNZU19jbG9uZTIuCisJUmVwb3J0ZWQgYnkgVml0YWx5IE1heWF0c2tpa2guCisJRml4ZXMgUkgjNDU1MDc4LgorCisyMDA4LTA2LTI5ICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBkdXBsaWNhdGUgc3lzY2FsbCBlbnRyaWVzCisJZm9yICMyODMgYW5kICMyODQuCisKKzIwMDgtMDYtMjcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBSZW1vdmUgYSBkdXBsaWNpdGUgc3lzY2FsbCBzdHViICMzMjYuCisKKzIwMDgtMDUtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN5c2NhbGwuYyBbTElOVVhdIChpc19uZWdhdGVkX2Vycm5vKTogTmV3IGZ1bmN0aW9uLgorCShnZXRfZXJyb3IpIFtMSU5VWF06IFVzZSBpdCBmb3IgYWxsIHN1Y2ggY2FzZXMuCisJRml4ZXMgUkgjNDQ3NTg3LgorCisyMDA4LTA1LTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVcGRhdGUgZW50cmllcyBmb3IgdGltZXJmZF8qIGFuZCBmYWxsb2NhdGUuCisKKwkqIGZpbGUuYyAoc3lzX2ZhbGxvY2F0ZSk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBpdC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXBkYXRlIGVudHJ5LgorCUZyb20gS3lsZSBNY01hcnRpbiA8a3lsZUBtY21hcnRpbi5jYT4uCisKKwkqIHRpbWUuYyAoc3lzX3RpbWVyZmRfY3JlYXRlKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfdGltZXJmZF9zZXR0aW1lLCBzeXNfdGltZXJmZF9nZXR0aW1lKTogTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgZW50cmllcyBmb3IgdGhvc2Ugc3lzY2FsbHMuCisJRnJvbSBLeWxlIE1jTWFydGluIDxreWxlQG1jbWFydGluLmNhPi4KKworCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IEZpeCBjaG1vZC9jaG93biB0eXBvLgorCUZpeGVzIERlYmlhbiM0NTkyNTUuCisKKwkqIGRlYmlhbi9ydWxlcyAoYmluYXJ5LWFyY2gpOiBJbnN0YWxsIHN0cmFjZS1ncmFwaCBpbiBleGFtcGxlcy8KKwlkaXJlY3RvcnkgdW5kZXIgcGFja2FnZSBkb2MuCisJRml4ZXMgRGViaWFuIzQ2OTA2OC4KKworCSogc2lnbmFsLmMgKHN5c19raWxsKTogV2hlbiBjdXJyZW50IHBlcnNvbmFsaXR5J3Mgd29yZHNpemUgaXMgc21hbGxlcgorCXRoYW4gbmF0aXZlLCBzaWduLWV4dGVuZCB0aGUgUElEIGFyZ3VtZW50IGZyb20gMzIgYml0cy4KKwlGaXhlcyBSSCM0MzA1ODUuCisKKwkqIGNvbmZpZ3VyZS5hYzogQWRkIGNoZWNrIGZvciBzdHJ1Y3Qgc2lnY29udGV4dF9zdHJ1Y3QgaW4gPHNpZ25hbC5oPi4KKwkqIHNpZ25hbC5jIFshIEhBVkVfQVNNX1NJR0NPTlRFWFRfSF0gW0kzODZdIChzdHJ1Y3Qgc2lnY29udGV4dF9zdHJ1Y3QpOgorCUNvbmRpdGlvbmFsaXplIGRlZmluaXRpb24gb24gIUhBVkVfU1RSVUNUX1NJR0NPTlRFWFRfU1RSVUNULgorCUZpeGVzIERlYmlhbiM0NTY4NzkuCisKKwkqIHV0aWwuYyBbTElOVVhdIChzZXRicHQpOiBVc2UgY29ycmVjdCBTWVNfY2xvbmUgbnVtYmVyIGZvciBjdXJyZW50CisJcGVyc29uYWxpdHkuCisJRml4ZXMgUkgjNDQ3NDc1LgorCisyMDA4LTA1LTA4ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBkYXZlbWxvZnQubmV0PgorCisJKiBzeXNjYWxsLmMgKHNvY2tldF9tYXAsIHNwYXJjX3NvY2tldF9kZWNvZGUpOiBEZWxldGUuCisJKHRyYWNlX3N5c2NhbGwpOiBVc2UgY29tbW9uIHNvY2tldGNhbGwgYW5kIGlwYyBzdWJjYWxsCisJc3VwcG9ydCBvbiBzcGFyYy4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCAoc3lzX3NlbXRpbWVkb3ApOiBEZWNsYXJlLgorCShTWVNfc29ja2V0X3N1YmNhbGwsIFNZU19zdWJfc29ja2V0LCBTWVNfc3ViX2JpbmQsCisJU1lTX3N1Yl9jb25uZWN0LCBTWVNfc3ViX2xpc3RlbiwgU1lTX3N1Yl9hY2NlcHQsCisJU1lTX3N1Yl9nZXRzb2NrbmFtZSwgU1lTX3N1Yl9nZXRwZWVybmFtZSwKKwlTWVNfc3ViX3NvY2tldHBhaXIsIFNZU19zdWJfc2VuZCwgU1lTX3N1Yl9yZWN2LAorCVNZU19zdWJfc2VuZHRvLCBTWVNfc3ViX3JlY3Zmcm9tLCBTWVNfc3ViX3NodXRkb3duLAorCVNZU19zdWJfc2V0c29ja29wdCwgU1lTX3N1Yl9nZXRzb2Nrb3B0LCBTWVNfc3ViX3NlbmRtc2csCisJU1lTX3N1Yl9yZWN2bXNnLCBTWVNfc29ja2V0X25zdWJjYWxscywgU1lTX2lwY19zdWJjYWxsLAorCVNZU19zdWJfc2Vtb3AsIFNZU19zdWJfc2VtZ2V0LCBTWVNfc3ViX3NlbWN0bCwKKwlTWVNfc3ViX3NlbXRpbWVkb3AsIFNZU19zdWJfbXNnc25kLCBTWVNfc3ViX21zZ3JjdiwKKwlTWVNfc3ViX21zZ2dldCwgU1lTX3N1Yl9tc2djdGwsIFNZU19zdWJfc2htYXQsCisJU1lTX3N1Yl9zaG1kdCwgU1lTX3N1Yl9zaG1nZXQsIFNZU19zdWJfc2htY3RsLAorCVNZU19pcGNfbnN1YmNhbGxzKTogRGVmaW5lCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IEFkZCBzb2NrZXRjYWxsIGFuZCBpcGMgZW50cmllcy4KKworMjAwOC0wMS0yNSAgQnJ1bmEgTW9yZWlyYSAgPGJydW5hLm1vcmVpcmFAaW5kdC5vcmc+CisKKwkqIGRlZnMuaCBbQVJNXTogRGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIHRvIDIuCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbQVJNXTogQWRkIHN1cHBvcnQgZm9yIGFyY2hpdGVjdHVyZSBzcGVjaWZpYworCXN5c2NhbGxzLgorCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogVXBkYXRlIG5ldHdvcmsgc3lzY2FsbHMgbGlzdC4KKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50MS5oOiBOZXcgZmlsZS4gQWRkIG5ldyBhcmNoaXRlY3R1cmUgc3BlY2lmaWMKKwlzeXNjYWxscy4KKwkqIGxpbnV4L2FybS9lcnJub2VudDEuaDogTmV3IGZpbGUuCisJKiBsaW51eC9hcm0vaW9jdGxlbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgvYXJtL3NpZ25hbGVudDEuaDogTmV3IGZpbGUuCisJRml4ZXMgRGViaWFuIzQ0MTAwMC4KKworMjAwOC0wMS0wNyAgUGF1bCBNdW5kdCAgPGxldGhhbEBsaW51eC1zaC5vcmc+CisKKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBVcGRhdGUgbnVtZXJvdXMgY2FsbHMsIGZpeCBvdGhlcnMuCisKKzIwMDctMDgtMjYgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIGRlZnMuaCBbTUlQU106IEluY2x1ZGUgPHNnaWRlZnMuaD4uCisJKE1BWF9RVUFMUyk6IFVwZGF0ZSBmb3IgTUlQUy4KKwkoTElOVVhfTUlQU08zMiwgTElOVVhfTUlQU04zMiwgTElOVVhfTUlQU042NCwgTElOVVhfTUlQUzY0KTogRGVmaW5lLgorCShzdHJ1Y3QgdGNiKTogQWRkIGV4dF9hcmcgZm9yIE1JUFMgTjMyLgorCShUQ0JfV0FJVEVYRUNWRSk6IERlZmluZSBmb3IgTUlQUy4KKwkoQUxJR042NCk6IFVzZSBMSU5VWF9NSVBTTzMyLgorCSogZmlsZS5jIChzeXNfbHNlZWspOiBVc2UgZXh0X2FyZyBmb3IgTUlQUyBOMzIuCisJKHN5c19yZWFkYWhlYWQsIHN5c19mYWR2aXNlNjRfNjQpOiBMaWtld2lzZS4KKwkqIGlvLmMgKHN5c19wcmVhZDY0LCBzeXNfcHdyaXRlNjQpOiBMaWtld2lzZS4KKwkqIG1lbS5jIChwcmludF9tbWFwKTogVGFrZSBPRkZTRVQgYXJndW1lbnQuCisJKHN5c19vbGRfbW1hcCk6IFVwZGF0ZSBjYWxsIHRvIHByaW50X21tYXAuCisJKHN5c19tbWFwKTogVXNlIGV4dF9hcmcgZm9yIE1JUFMgTjMyLgorCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKTogQWRkIE1JUFMgcmVnaXN0ZXJzLgorCSogc2lnbmFsLmMgKHN5c19zaWdyZXR1cm4pOiBIYW5kbGUgTUlQUyBOMzIgYW5kIE1JUFMgTjY0LiAgQ29ycmVjdAorCU1JUFMgTzMyIGNhbGwgdG8gc3ByaW50c2lnbWFzay4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IEhhbmRsZSBNSVBTIE4zMi4gIENoZWNrIGZvcgorCVRDQl9XQUlURVhFQ1ZFIG9uIE1JUFMuCisJKGZvcmNlX3Jlc3VsdCk6IEFkZCBhIGNvbW1lbnQgYWJvdXQgTUlQUyBOMzIuCisJKHN5c2NhbGxfZW50ZXIpOiBIYW5kbGUgTUlQUyBOMzIgYW5kIE1JUFMgTjY0LgorCSogbGludXgvc3lzY2FsbC5oIChzeXNfcHJlYWQ2NCwgc3lzX3B3cml0ZTY0KTogRGVjbGFyZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBJbmNsdWRlICJkdW1teS5oIi4gIEhhbmRsZSBhbHRlcm5hdGUKKwlNSVBTIEFCSXMuCisKKzIwMDgtMDQtMTkgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogZmlsZS5jIFtfTEZTNjRfTEFSR0VGSUxFXSAoc3lzX2dldGRlbnRzNjQpOiBEbyB0aGUgc2FtZQorCWRfcmVjbGVuIGNoZWNrIGFzIGluIHN5c19nZXRkZW50czogd2FybiBpZiBkX3JlY2xlbiBpcyAwIHJhdGhlcgorCXRoYW4gbG9vcGluZyBmb3JldmVyLgorCVtGUkVFQlNEXSAoc3lzX2dldGRpcmVudHJpZXMpOiBMaWtld2lzZS4KKwlTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CisKKwkqIGZpbGUuYyBbTElOVVhTUEFSQ10gKHByaW50c3RhdHNvbCk6IEZpeCBzcHJpbnR0aW1lKCkKKwlpbnZvY2F0aW9uLiAgVGhlIHNwcmludHRpbWUoKSBmdW5jdGlvbiB0YWtlcyBhIHRpbWVfdCBhcmd1bWVudCwKKwlidXQgdGltZXN0cnVjdF90IGFyZ3VtZW50IHdhcyBnaXZlbi4KKwlTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CisKKwkqIGZpbGUuYyAoc3ByaW50dGltZSk6IENoZWNrIGxvY2FsdGltZSgpIHJldHVybiB2YWx1ZSwgdG8gYXZvaWQKKwlwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZSBkdWUgdG8gaW52YWxpZCB0aW1lIHN0cnVjdHVyZXMuCisJU2lnbmVkLW9mZi1ieTogSGFyYWxkIHZhbiBEaWprIDx0cnVlZGZ4QGdlbnRvby5vcmc+CisJU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgorCisJKiBsaW51eC9lcnJub2VudC5oOiBVcGRhdGUgZXJybm8gbGlzdCBiYXNlZCBvbiBsYXRlc3QKKwlsaW51eC9lcnJuby5oIGFuZCBhc20tZ2VuZXJpYy9lcnJubyouaCBmaWxlcy4KKwlTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CisKKwkqIHNpZ25hbGVudC5zaDogRml4IHNvcnQoMSkgb2xkLXN0eWxlIG9wdGlvbnMuCisJKiBzeXNjYWxsZW50LnNoOiBMaWtld2lzZS4KKwlTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CisKKwkqIGNvdW50LmMgKGNhbGxfc3VtbWFyeV9wZXJzKTogQ2hlY2sgY2FsbG9jKCkgcmV0dXJuIHZhbHVlLgorCVNpZ25lZC1vZmYtYnk6ICJZYW5nIFpoaWd1byIgPHl6Z2NzdUBjbi5mdWppdHN1LmNvbT4KKworMjAwOC0wMy0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLnNwZWMgKHN0cmFjZTY0X2FyY2hlcyk6IEFkZCBzcGFyYzY0LgorCisyMDA3LTExLTIwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBDUkVESVRTLCBDaGFuZ2VMb2c6IENvbnZlcnRlZCBjb250ZW50cyB0byBVVEY4LgorCisyMDA3LTExLTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2Uuc3BlYzogQWRkIEJ1aWxkUmVxdWlyZXMgb24gbGliYWlvLWRldmVsLCBsaWJhY2wtZGV2ZWwuCisKKzIwMDctMTEtMTkgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CisKKwkqIHByb2Nlc3MuYyAoc3lzX3B0cmFjZSkgW0lBNjRdOiBGb3IgUFRSQUNFX1BFRUtEQVRBLAorCVBUUkFDRV9QRUVLVEVYVCBhbmQgUFRSQUNFX1BFRUtVU0VSIHRoZSBkYXRhIGlzIHJldHVybmVkIGRpcmVjdGx5LgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEZpeCBhcmd1bWVudCBjb3VudCBmb3IgZ2V0ZGVudHM2NC4KKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2dldGRlbnRzNjQuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisyMDA3LTExLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIFtMSU5VWF0gKGRyb3B0Y2IpOiBSZWN1cnNlIG9uIFRDUC0+cGFyZW50IGlmIGl0IGlzIGEKKwlUQ0JfRVhJVElORyB6b21iaWUgZ3JvdXAgbGVhZGVyLgorCSogdGVzdC9jaGlsZHRocmVhZC5jOiBOZXcgZmlsZS4KKwkqIHRlc3QvLmN2c2lnbm9yZSwgdGVzdC9NYWtlZmlsZTogQWRkIGl0LgorCUNvZGUgYWR2aXNvcnk6IFJvbGFuZCBNY0dyYXRoCisJRml4ZXMgUkgjMzU0MjYxLgorCisyMDA3LTExLTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHByY3RsX29wdGlvbnMpOiBBZGQgbnVtZXJvdXMgY29uc3RhbnRzLgorCUZyb20gU2FtaSBGYXJpbiA8c2FmYXJpQHUuc2FmYXJpLmlraS5maT4uCisJRml4ZXMgUkgjMzY0NDAxLgorCisyMDA3LTExLTAzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogTW92ZSB0aGUgU1RBUlRVUF9DSElMRCBjYWxsIGJlZm9yZSBzZXR0aW5nIHVwIHRoZQorCXNpZ25hbCBoYW5kbGVycy4gIE5ldyBjb21tZW50IGFib3V0IHRoZSB2YWxpZCBpbnRlcm5hbCBzdGF0ZXMuCisKKzIwMDctMTEtMDIgIFRoaWVtbyBTZXVmZXIgIDx0aHNAbmV0d29ya25vLmRlPgorCisJKiBzaWduYWwuYyAobV9zaWdpbmZvX3QpOiBBZGQgZm9yIE1JUFMuCisJKHN5c19zaWdyZXR1cm4pOiBzdHJ1Y3Qgc2lnY29udGV4dCBvbiBNSVBTIGhhcyBubyBzaWdzZXRfdCBtZW1iZXIsCisJYWNxdWlyZSB0aGUgc2lnbmFsIG1hc2sgd2l0aCB0aGUgc2FtZSB0cmljayBhcyBvbiBTcGFyYy4KKwlGaXhlcyBEZWJpYW4jNDQ4ODAyLgorCisyMDA3LTExLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiB1dGlsLmMgKHN0cmluZ19xdW90ZSk6IFJldHVybiBub256ZXJvIGlmIHRoZSBzdHJpbmcgd2FzIHVudGVybWluYXRlZC4KKwkocHJpbnRzdHIpOiBVc2UgdGhhdCB2YWx1ZSBpbnN0ZWFkIG9mIGp1c3Qgb3VyIG93biB0ZXN0LgorCShwcmludHBhdGhuKTogTGlrZXdpc2UuCisJRml4ZXMgUkgjMzU4MjQxLgorCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogRml4IGFyZ3VtZW50IGNvdW50IGZvciBmYWR2aXNlNjRfNjQuCisJRnJvbSBQYXVsIE11bmR0IDxsZXRoYWxAbGludXgtc2gub3JnPi4KKworCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IEZpeCBhcmd1bWVudCBjb3VudCBmb3IgbG9va3VwX2Rjb29raWUuCisJRnJvbSBQYXVsIE11bmR0IDxsZXRoYWxAbGludXgtc2gub3JnPi4KKworCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IEZpeCBTWVNfc29ja2V0X3N1YmNhbGwgY2hlY2suCisJRnJvbSBQYXVsIE11bmR0IDxsZXRoYWxAbGludXgtc2gub3JnPi4KKworCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBVcGRhdGUgbnVtZXJvdXMgY2FsbHMuCisJRnJvbSBQYXVsIE11bmR0IDxsZXRoYWxAbGludXgtc2gub3JnPi4KKworMjAwNy0wOS0yMiAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBkZXNjLmMgKHN5c19wc2VsZWN0Nik6IERlY29kZSBzaWduYWwgbWFzayB3aGVuIGVudGVyaW5nIHN5c2NhbGwuCisJUmVsYXggc2lnbmFsIG1hc2sgc2l6ZSBjaGVjay4KKworCSogdGltZS5jIChwcmludF90aW1lc3BlYywgc3ByaW50X3RpbWVzcGVjKTogTmV3IGZ1bmN0aW9ucy4KKwkqIGRlZnMuaCAocHJpbnRfdGltZXNwZWMsIHNwcmludF90aW1lc3BlYyk6IERlY2xhcmUgdGhlbS4KKwkqIGRlc2MuYyAoc3lzX2lvX2dldGV2ZW50cyk6IFVzZSBwcmludF90aW1lc3BlYy4KKwkqIHN0cmVhbS5jIChzeXNfcHBvbGwpOiBMaWtld2lzZS4KKwkoZGVjb2RlX3BvbGwpOiBVc2Ugc3ByaW50X3RpbWVzcGVjLgorCisyMDA3LTA5LTIyICBBbGFuIEN1cnJ5IDxwYWNtYW5Ad29ybGQuc3RkLmNvbT4KKwkgICAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJlYW0uYyAoZGVjb2RlX3BvbGwpOiBSZWFycmFuZ2Ugc28gdGhhdCBhcmd1bWVudHMgYXJlIGRlY29kZWQKKwlhbmQgcHJpbnRlZCBvbiBzeXNjYWxsIGVudHJ5LCBleGNlcHQgZm9yIHJldmVudHMgYW5kIHRoZSBvdXRwdXQKKwl0aW1lc3BlYyB3aGljaCBhcmUgbm93IHByaW50ZWQgaW4gdGhlIGF1eHN0ci4KKwkoc3lzX3BvbGwpOiBQcmludCB0aGUgaW5wdXQgdGltZW91dCBhcmd1bWVudCBvbiBzeXNjYWxsIGVudHJ5LgorCVtMSU5VWF0gKHN5c19wcG9sbCk6IExpa2V3aXNlLgorCUZpeGVzIERlYmlhbiMzNjk2NTEuCisKKzIwMDctMDktMjIgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogZGVzYy5jIChzcHJpbnRmbGFncyk6IFJlbW92ZSBzdGF0aWMgcXVhbGlmaWVyLCBhZGQgInByZWZpeCIKKwlhcmd1bWVudCwgbW92ZSBmdW5jdGlvbiB0byAuLi4KKwkqIHV0aWwuYyAoc3ByaW50ZmxhZ3MpOiAuLi4gaGVyZS4KKwkqIGRlZnMuaCAoc3ByaW50ZmxhZ3MpOiBEZWNsYXJlIGl0LgorCisyMDA3LTExLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbQVJNXTogQ2hlY2sgVENCX1dBSVRFWEVDVkUuCisJUmVwb3J0ZWQgYnkgQmVybmhhcmQgRmlzY2hlciA8cmVwLmRvdC5ub3BAZ21haWwuY29tPi4KKworCSogbmV0LmMgKHNvY2twYWNrZXRvcHRpb25zKTogTWFrZSBQQUNLRVRfQUREX01FTUJFUlNISVAgYW5kCisJUEFDS0VUX0RST1BfTUVNQkVSU0hJUCBjb25kaXRpb25hbC4KKwlGcm9tIEJlcm5oYXJkIEZpc2NoZXIgPHJlcC5kb3Qubm9wQGdtYWlsLmNvbT4uCisKKwkqIGNvbmZpZ3VyZS5hYzogTWF0Y2ggc2g2NCogZm9yIFNINjQsIHNoKiBmb3IgU0guCisJUmVwb3J0ZWQgYnkgQmVybmhhcmQgRmlzY2hlciA8cmVwLmRvdC5ub3BAZ21haWwuY29tPi4KKworMjAwNy0xMC0wMSAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBuZXQuYyAocHJpbnRzb2NrKTogT3V0cHV0IEFGX1VOSVggc29ja2V0IGFkZHJlc3MgdXNpbmcKKwlwcmludHBhdGhuKCkgdG8gYXZvaWQgdW5wcmludGFibGUgY2hhcmFjdGVycyBpbiBvdXRwdXQuCisJU3VnZ2VzdGVkIGJ5IE5laWwgQ2FtcGJlbGwuCisKKzIwMDctMTAtMDEgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogdXRpbC5jIChzdHJpbmdfcXVvdGUpOiBNb3ZlIHF1b3RpbmcgY29kZSBmcm9tIC4uLgorCShwcmludHN0cikgLi4uIGhlcmUuICBVc2Ugc3RyaW5nX3F1b3RlLgorCShwcmludHBhdGhuKTogVXBkYXRlIGZvciBuZXcgc3RyaW5nX3F1b3RlIGludGVyZmFjZS4KKwkocHJpbnRwYXRoKTogVXNlIHByaW50cGF0aG4uCisKKzIwMDctMDktMjUgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3RyYWNlLmMgKG1haW4pOiBVc2UgY2FsbG9jIGZvciB0Y2J0YWIgYWxsb2NhdGlvbi4KKwlDaGVjayBjYWxsb2MgcmV0dXJuIHZhbHVlLgorCVJlcG9ydGVkIGJ5IEJhaSBXZWlkb25nLgorCisyMDA3LTA5LTExICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IEFkZCBtaXNzaW5nIGRlY2xzLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBDb3JyZWN0IGVudHJpZXMgZm9yIHNldGdyb3VwczMyLAorCWdldGdyb3VwczMyLCBzeXNfZ2V0ZGVudHM2NC4KKwlGcm9tIEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC1saW51eC5vcmc+LgorCisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IENvcnJlY3QgZW50cmllcyBmb3IgbWFkdmlzZSwgc2V0cmVzZ2lkLAorCWdldHJlc2dpZCwgcGl2b3Rfcm9vdCwgbWluY29yZSwgcGNpY29uZmlnX2lvYmFzZSwgZ2V0ZGVudHM2NC4KKwlGcm9tIEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC1saW51eC5vcmc+LgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEZpeCBnZXRlZ2lkMzIgZW50cnkuCisJRnJvbSBKYWt1YiBCb2d1c3ogPHFib29zaEBwbGQtbGludXgub3JnPi4KKworCSogZGVmcy5oIFtMSU5VWFNQQVJDXTogVXNlIGFzbS9wc3Jjb21wYXQuaCBmb3IgW1NQQVJDNjRdLCBub3QgYXNtL3Bzci5oLgorCUZyb20gSmFrdWIgQm9ndXN6IDxxYm9vc2hAcGxkLWxpbnV4Lm9yZz4uCisKKwkqIG1lbS5jIChzeXNfZ2V0cGFnZXNpemUpOiBEZWZpbmUgZm9yIFtTUEFSQyB8fCBTUEFSQzY0XSB0b28uCisJRnJvbSBKYWt1YiBCb2d1c3ogPHFib29zaEBwbGQtbGludXgub3JnPi4KKworMjAwNy0wOC0yMCAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzeXNjYWxsLmMgKHF1YWxfc3lzY2FsbCwgcXVhbGlmeSk6IEZpeCBuc3lzY2FsbHMgYW5kIE1BWF9RVUFMUyBtaXN1c2UuCisJUmVwb3J0ZWQgYnkgWGlhb25pbmcgRGluZy4KKworMjAwNy0wOC0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBmaWxlLmMgWyFIQVZFX1NUQVQ2NCAmJiBMSU5VWCAmJiBYODZfNjRdIChzdHJ1Y3Qgc3RhdDY0KTogRGVmaW5lIGl0LgorCVshSEFWRV9TVEFUNjQgJiYgTElOVVggJiYgWDg2XzY0XSAoSEFWRV9TVEFUNjQsIFNUQVQ2NF9TSVpFKTogRGVmaW5lLgorCVtIQVZFX1NUQVQ2NF0gKHByaW50c3RhdDY0KSBbU1RBVDY0X1NJWkVdOiBBZGQgY29tcGlsZS10aW1lIGFzc2VydGlvbi4KKwlGaXhlcyBSSCMyMjIyNzUuCisKKwkqIGZpbGUuYyAocHJpbnRzdGF0NjQpOiBUZXN0IFtIQVZFX0xPTkdfTE9OR10gZm9yIHN0X3NpemUgcHJpbnRpbmcKKwlhbmQgY2FzdCB0byB3aWRlc3QgdHlwZSBhdmFpbGFibGUuCisKKzIwMDctMDgtMDMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgorCisJKiBmaWxlLmMgKG9wZW5fbW9kZV9mbGFncyk6IEFkZCBPX0NMT0VYRUMuCisJKiBuZXQuYyAobXNnX2ZsYWdzKTogQWRkIE1TR19DTVNHX0NMT0VYRUMuCisJRml4ZXMgUkgjMzY1NzgxLgorCisyMDA3LTA4LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjE2LgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xNi0xLgorCisJKiBkZWJpYW4vY29udHJvbCAoQnVpbGQtRGVwZW5kcyk6IFJlcGxhY2UgbGliYzYtZGV2LXMzOTB4IGFuZAorCWxpYmM2LWRldi1zcGFyYzY0IHdpdGggZ2NjLW11bHRpbGliLgorCSogZGViaWFuL3J1bGVzOiBSZXBsYWNlIHNwYXJjLWxpbnV4LCBzMzkwLWxpbnV4IGNvbmRpdGlvbmFscyB3aXRoCisJZ2VuZXJhbCAiYXJjaDY0X21hcCIgaGFpciwgaGFuZGxlIHg4Nl82NCBhbmQgcG93ZXJwYzY0IHRvby4KKwlGcm9tIE1hdHRoaWFzIEtsb3NlIDxkb2tvQGNzLnR1LWJlcmxpbi5kZT4uCisJRml4ZXMgRGViaWFuIzQzNTMwMy4KKworMjAwNy0wOC0wMiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAoZGV0YWNoKTogTW92ZWQgdGhlIHJlc3VtZSBub3RpZmljYXRpb24gY29kZSB0byAuLi4KKwkocmVzdW1lX2Zyb21fdGNwKTogLi4uIGEgbmV3IGZ1bmN0aW9uIGhlcmUuCisJKGhhbmRsZV9ncm91cF9leGl0KTogTm8gbG9uZ2VyIGRldGFjaCBhbHNvIHRoZSB0aHJlYWQgZ3JvdXAgbGVhZGVyLgorCSh0cmFjZSk6IEZpeGVkIHBhbmljIG9uIGV4aXQgb2YgdGhlIFRDQl9HUk9VUF9FWElUSU5HIGxlYWRlciBpdHNlbGYuCisJRml4ZXMgUkgjMjQ3OTA3LgorCisJKiB0ZXN0L2xlYWRlcmtpbGwuYyAoc3RhcnQpOiBSZW5hbWVkIHRvIC4uLgorCShzdGFydDApOiAuLi4gaGVyZS4KKwkoc3RhcnQxKTogTmV3IGZ1bmN0aW9uLgorCShtYWluKTogQ3JlYXRlZCBhIG5ldyBzcGFyZSB0aHJlYWQuCisKKzIwMDctMDgtMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHV0aWwuYyAodW1vdmVuKTogRG9uJ3QgcGVycm9yIGZvciBFSU8uCisJKHVtb3Zlc3RyKTogTGlrZXdpc2UuCisKKwkqIHByb2Nlc3MuYyAocHJpbnRhcmd2KTogSGFuZGxlIGJvdW5kYXJ5IGNhc2VzIGNvcnJlY3RseS4KKwlIYW5kbGUgYmlhcmNoIGZldGNoaW5nIGNvcnJlY3RseS4KKworCSogdXRpbC5jIChwcmludHN0cik6IERvbid0IHByaW50IC4uLiBpZiB0aGUgc3RyaW5nIG1hdGNoZXMgdGhlIGxlbmd0aAorCWxpbWl0IGV4YWN0bHkuCisKKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBKdXN0ICNpbmNsdWRlIHRoZSBzcGFyYyBmaWxlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZ2V0Y3B1LgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBBZGQgZW50cnkgZm9yIGV2ZW50ZmQuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgdGltZXJmZC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogQWRkIGVudHJ5IGZvciBzaWduYWxmZC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZXBvbGxfcHdhaXQuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDctMDctMjMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHN5c19nZXRjcHUpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2dldGNwdS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIGVudHJ5IGZvciBnZXRjcHUuCisKKwkqIGRlc2MuYyAoc3lzX2V2ZW50ZmQpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2V2ZW50ZmQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZXZlbnRmZC4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiB0aW1lLmMgKHByaW50aXR2X2JpdG5lc3MpOiBBZGQgbWlzc2luZyBicmFjZXMgdG8gZW5jbG9zZQorCWNvbmRpdGlvbmFsIGNvZGUuCisJKFRERl9USU1FUl9BQlNUSU1FKTogRGVmaW5lIGlmIG5vdCBhbHJlYWR5LgorCSh0aW1lcmZkZmxhZ3MpOiBOZXcgdmFyaWFibGUuCisJKHN5c190aW1lcmZkKTogTmV3IGZ1bmN0aW9uLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHN5c190aW1lcmZkLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgdGltZXJmZCBlbnRyeS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX3NpZ25hbGZkLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgZW50cnkgZm9yIHNpZ25hbGZkLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoc3lzX3NpZ25hbGZkKTogTmV3IGZ1bmN0aW9uLgorCisJKiBkZXNjLmMgKHN5c19lcG9sbF93YWl0KTogTW92ZSBib2R5IG9mIGZ1bmN0aW9uIHRvIC4uLgorCShlcG9sbF93YWl0X2NvbW1vbik6IC4uLmhlcmUuICBOZXcgZnVuY3Rpb24uCisJKHN5c19lcG9sbF9wd2FpdCk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfZXBvbGxfcHdhaXQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZXBvbGxfcHdhaXQuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwNy0wNy0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdGltZS5jIChwcmludHR2X2JpdG5lc3MpOiBTUEVDSUFMIG9ubHkgY291bnRzIHdoZW4gdHZfc2VjID09IDAuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEFkZCBtb3ZlX3BhZ2VzLgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IG1vdmVfcGFnZXMgdGFrZXMgNiBhcmdzLCBub3QgNS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisyMDA3LTA3LTIzICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oOiBBZGQgbmV3IHBhcmFtZXRlciB0byBwcmludHR2X2JpdG5lc3MgcHJvdG90eXBlLgorCShwcmludHR0dik6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIuCisJKHByaW50dHZfc3BlY2lhbCk6IE5ldyBtYWNyby4KKwkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgb2YKKwlwcmludHR2X2JpdG5lc3MuCisJKiBmaWxlLmMgKHV0aW1lbnNhdGZsYWdzKTogTmV3IG1hY3JvLgorCShzeXNfb3NmX3V0aW1lcyk6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgb2YKKwlwcmludHR2X2JpdG5lc3MuCisJKHN5c191dGltZXMpOiBMaWtld2lzZS4KKwkoc3lzX2Z1dGltZXNhdCk6IExpa2V3aXNlLgorCShkZWNvZGVfdXRpbWVzKTogQWRkIG5ldyBwYXJhbWV0ZXIuICBQYXNzIGl0IHRvIHRoZQorCXByaW50dHZfYml0bmVzcyBjYWxscy4gIEZpeCBwcmludGluZyBvZiB0aW1lIHZhbHVlcy4KKwkoc3lzX3V0aW1lbnNhdCk6IE5ldyBmdW5jdGlvbi4KKwkqIHRpbWUuYyAoVVRJTUVfTk9XLCBVVElNRV9PTUlUKTogRGVmaW5lIGlmIG5vdCBhbHJlYWR5CisJaGFwcGVuZWQuCisJKHByaW50dHZfYml0bmVzcyk6IEFkZCBuZXcgcGFyYW1ldGVyLiAgUHJpbnQgc3BlY2lhbCBVVElNRV8qCisJdmFsdWVzIGFzIHN0cmluZ3MgaWYgc2V0LgorCShzeXNfb3NmX2dldHRpbWVvZmRheSk6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgb2YKKwlwcmludHR2X2JpdG5lc3MuCisJKHN5c19vc2Zfc2V0dGltZW9mZGF5KTogTGlrZXdpc2UuCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX3V0aW1lbnNhdC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHV0aW1lbnNhdCBlbnRyeS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBtZW0uYyAobW92ZV9wYWdlc19mbGFncyk6IE5ldyB2YXJpYWJsZS4KKwkoc3lzX21vdmVfcGFnZXMpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX21vdmVfcGFnZXMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3Igc3lzX21vdmVfcGFnZXMuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogbWVtLmMgKE1QT0xfTUZfTU9WRSwgTVBPTF9NRl9NT1ZFX0FMTCk6IERlZmluZS4KKwkobWJpbmRmbGFncyk6IEFkZCBNUE9MX01GX01PVkUgYW5kIE1QT0xfTUZfTU9WRV9BTEwgZW50cmllcy4KKworMjAwNy0wNy0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdXRpbC5jICh0dl9hZGQpOiBGaXggcm91bmRpbmcgY29tcGFyaXNvbi4KKwlSZXBvcnRlZCBieSBCYWkgV2VpZG9uZyA8YmFpd2RAY24uZnVqaXRzdS5jb20+LgorCisyMDA3LTA3LTExICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb3VudC5jIChjYWxsX3N1bW1hcnlfcGVycyk6IFVzZSB0dl9mbG9hdCBjb252ZXJzaW9uIGZvciBvdXRwdXQgb2YKKwljdW11bGF0aXZlIHRpbWUsIGluIGNhc2UgaXQgaXMgbmVnYXRpdmUgZnJvbSBib2d1cyAtTyB2YWx1ZS4KKwlGcm9tIExhaSBKaWFuZ1NoYW4gPGxhaWpzQGNuLmZ1aml0c3UuY29tPi4KKworCSogc3RyYWNlLmMgKGhhbmRsZV9ncm91cF9leGl0KTogRGV0YWNoIFRDUCBiZWZvcmUgTEVBREVSLgorCURvbid0IHVzZSBQVFJBQ0VfS0lMTCBvbiBMRUFERVIuCisKKwkqIHV0aWwuYyAocHJpbnRzdHIpOiBGaXggc2l6ZSBjYWxjdWxhdGlvbiBmb3Igb3V0c3RyIGFsbG9jYXRpb24uCisKKwkqIGNvbmZpZ3VyZS5hYyAoc3RydWN0IHNpZ2NvbnRleHQuc2NfaGkyKTogVXNlICNpZmRlZiBhcm91bmQKKwk8YXNtL3NpZ2NvbnRleHQuaD4gdG8gbWF0Y2ggc2lnbmFsLmMgaW5jbHVkZSBjb25kaXRpb25zLgorCisyMDA3LTA3LTA1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZWJpYW4vcnVsZXM6IFVzZSBkZWJpYW4vJChwYWNrYWdlKSBpbnN0ZWFkIG9mIGRlYmlhbi90bXAgYXMgdGVtcCBkaXIuCisKKwkqIGNvbmZpZ3VyZS5hYzogVXNlIDxzdGRkZWYuaD4gYmVmb3JlIDxsaW51eC9zb2NrZXQuaD4uCisKKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IEhhcm1vbml6ZSB3aXRoIGRlYmlhbiB2ZXJzaW9uLgorCSogZGViaWFuL2NvbnRyb2wgKFVwbG9hZGVycyk6IEZpeCBzdXJuYW1lIHNwZWxsaW5nLgorCShCdWlsZC1EZXBlbmRzKTogTWFrZSBkZWJoZWxwZXIgcmVxdWlyZW1lbnQgKD49IDUuMC4wKS4KKwkoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy43LjIuCisKKwkqIC5jdnNpZ25vcmU6IEFkZCBzb21lIGF1dG9tYWtlLWNyZWF0ZWQgZmlsZXMuCisKKwkqIGZpbGUuYyAoc3lzX3V0aW1lKTogVXNlIHBlcnNvbmFsaXR5X3dvcmRzaXplIHRvIGhhbmRsZSBiaWFyY2guCisJRml4ZXMgUkgjMjQ3MTg1LgorCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW01JUFNdOiBQYXNzIDNyZCBhcmcgdG8gc3ByaW50c2lnbWFzay4KKwlGcm9tIFpoYW5nIExlIDx6aGlsZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgorCisJKiBzdHJhY2UuYyAoc3RyYWNlX2ZvcGVuKTogW19MRlM2NF9MQVJHRUZJTEVdOiBVc2UgZm9wZW42NC4KKwlGaXhlcyBEZWJpYW4jMzg1MzEwLgorCisJKiBzdHJhY2UuYyAobWFpbik6IEZpeCBlcnJvciBtZXNzYWdlIGZvciB1bmZvdW5kIC11IHVzZXIuCisJRnJvbSBTcmluaXZhc2EgRHMgPHNyaW5pdmFzYUBpbi5pYm0uY29tPi4KKwlGaXhlcyBSSCMyNDcxNzAuCisKKwkqIGRlYmlhbi9jb250cm9sIChBcmNoaXRlY3R1cmUpOiBBZGQgYXJtZWwuCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IHN5c19kZWxldGVfbW9kdWxlIGFyZyBjb3VudC4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L202OGsvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2R1bW15LmggKHN5c19kZWxldGVfbW9kdWxlKTogVXNlIHN5c19vcGVuLgorCUZyb20gSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAbGludXh0di5vcmc+LgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdHJ1Y3Qgc2lnY29udGV4dC5zY19oaTIuCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW01JUFNdOiBVc2Ugc2NfaGkyIHZzIHNjX3NpZ3NldCBpZiBmb3VuZC4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKGZ1dGV4b3BzKTogQWRkIG1hbnkgbmV3IHZhbHVlcy4KKwlbTElOVVhdIChmdXRleHdha2VvcHMsIGZ1dGV4d2FrZWNtcHMpOiBOZXcgdGFibGVzLgorCVtMSU5VWF0gKHN5c19mdXRleCk6IFVzZSB0aGVtLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMjQxNDY3LgorCisyMDA3LTA3LTA1ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChkZXRhY2gpOiBOZXcgcHJvdG90eXBlLiAgRXh0ZW5kZWQgdGhlIGZ1bmN0aW9uIGNvbW1lbnQuCisJW0xJTlVYXSAoZGV0YWNoKTogQ2FsbCBkcm9wdGNiKCkgaW5zdGVhZCBvZiB0aGUgd3JvbmdseSBwYXJhbWV0cml6ZWQKKwlkZXRhY2goKSBjYWxsLgorCShoYW5kbGVfZ3JvdXBfZXhpdCk6IENhbGwgZHJvcHRjYigpIGluc3RlYWQgb2YgdGhlIHdyb25nbHkgcGFyYW1ldHJpemVkCisJZGV0YWNoKCkgY2FsbC4JQWx3YXlzIGNhbGwgZGV0YWNoKCkgb25seSBvbmNlIGZyb20gdGhlIGdyb3VwIGxlYWRlci4KKwlDb21tZW50IHRoZSBsZWFkZXIga2lsbGluZyBrbm93biBidWcgdGVzdGVkIGJ5IGB0ZXN0L2xlYWRlcmtpbGwuYycuCisJQ29kZSBhZHZpc29yeTogUm9sYW5kIE1jR3JhdGgKKwlGaXhlcyBSSCMyNDA5NjEuCisKKwkqIHRlc3QvbGVhZGVya2lsbC5jOiBOZXcgZmlsZS4KKwkqIHRlc3QvLmN2c2lnbm9yZSwgdGVzdC9NYWtlZmlsZTogQWRkIGl0LgorCisyMDA3LTAzLTIxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgorCisJKiBmaWxlLmMgKHN5c19uZXdmc3RhdGF0KTogRG9uJ3QgdXNlIHByaW50c3RhdDY0IG9uIHBwYzY0LgorCisyMDA3LTAzLTI5ICBWbGFkaW1pciBOYWR2b3JuaWsgPG5hZHZvcm5pa0BzdXNlLmN6PgorCSAgICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwlUcmFjZSBsaW51eCBTR19JTyBpb2N0bCBhcmd1bWVudHMgYW5kIHJlc3VsdHMuCisJKiBzY3NpLmM6IE5ldyBmaWxlLgorCSogTWFrZWZpbGUuYW0gKHN0cmFjZV9TT1VSQ0VTKTogQWRkIGl0LgorCSogZGVmcy5oIChzY3NpX2lvY3RsKTogTmV3IGZ1bmN0aW9uLgorCSogaW9jdGwuYyAoaW9jdGxfZGVjb2RlKTogVXNlIHNjc2lfaW9jdGwoKS4KKworMjAwNy0wNi0yOCAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiB1dGlsLmMgKHR2X211bCk6IE11bHRpcGx5IHR2X3VzZWMgcHJvcGVybHkuCisJUGF0Y2ggZnJvbSBDYWkgRmVpIDxjYWlmZWlAY24uZnVqaXRzdS5jb20+LgorCisyMDA3LTA2LTExICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwlOZXZlciBpbnRlcnJ1cHQgd2hlbiB0aGUgYXR0YWNoZWQgdHJhY2VkIHByb2Nlc3Mgd291bGQgYmUgbGVmdCBzdG9wcGVkLgorCSogc3RyYWNlLmMgKG1haW4pOiBgLXAnIGF0dGFjaGluZyBtb3ZlZCB0byAuLi4KKwkoc3RhcnR1cF9hdHRhY2gpOiAuLi4gYSBuZXcgZnVuY3Rpb24sIHJlbmFtZWQgYSB2YXJpYWJsZSBDIHRvIFRDQkkuCisJQmxvY2sgaW50ZXJydXB0aW5nIHNpZ25hbHMgc2luY2UgdGhlIGZpcnN0IHRyYWNlZSBoYXMgYmVlbiBhdHRhY2hlZC4KKwlOZXcgY29tbWVudCBhYm91dCBJTlRFUlJVUFRFRCBpbiB0aGUgbm9udGhyZWFkZWQgY2FzZS4KKwlbTElOVVhdIChzdGFydHVwX2F0dGFjaCk6IENoZWNrIElOVEVSUlVQVEVEIGFmdGVyIGVhY2ggYXR0YWNoZWQgdGhyZWFkLgorCShtYWluKTogQ29tbWFuZCBzcGF3bmluZyBtb3ZlZCB0byAuLi4KKwkoc3RhcnR1cF9jaGlsZCk6IC4uLiBhIG5ldyBmdW5jdGlvbiwgcmVwbGFjZWQgUkVUVVJOIHdpdGggRVhJVC4KKwlbTElOVVhdIChkZXRhY2gpOiBOZXcgdmFyaWFibGUgQ0FUQ0hfU0lHU1RPUCwgZG8gbm90IHNpZ25hbAorCW5ldyBTSUdTVE9QIGZvciBwcm9jZXNzZXMgc3RpbGwgaW4gVENCX1NUQVJUVVAuCisJKG1haW4pOiBNb3ZlIHNpZ25hbHMgYW5kIEJMT0NLRURfU0VUIGluaXQgYmVmb3JlIHRoZSB0cmFjZWVzIGF0dGFjaGluZywKKwlbU1VOT1M0XSAodHJhY2UpOiBSZW1vdmVkIGZpeHZmb3JrICgpIGNhbGwgYXMgYSBkZWFkIGNvZGUsIFNJR1NUT1AgbXVzdAorCWhhdmUgYmVlbiBhbHJlYWR5IGNhdWdodCBiZWZvcmUgY2xlYXJpbmcgVENCX1NUQVJUVVAuCisJKHRyYWNlKTogUmVtb3ZlZCB0aGUgYCFXSUZTVE9QUEVEKHN0YXR1cyknIGRlYWQgY29kZS4KKwlDbGVhciBUQ0JfU1RBUlRVUCBvbmx5IGluIHRoZSBjYXNlIHRoZSByZWNlaXZlZCBzaWduYWwgd2FzIFNJR1NUT1AuCisJTmV3IGNvbW1lbnQgd2hlbiBgVENCX0JQVFNFVCAmJiBUQ0JfU1RBUlRVUCcgY29tYmluYXRpb24gY2FuIGJlIHNldC4KKwlDb2RlIGFkdmlzb3J5OiBSb2xhbmQgTWNHcmF0aAorCUZpeGVzIFJIIzI0MDk4Ni4KKworMjAwNy0wNS0yNCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyBbTElOVVhdIChteV90Z2tpbGwpOiBOZXcgbWFjcm8uCisJW0xJTlVYXSAoZGV0YWNoKTogVXNlIG15X3Rna2lsbCAoKSBpbnN0ZWFkIG9mIGtpbGwoMikuCisJRml4ZXMgUkgjMjQwOTYyLgorCisyMDA3LTAzLTMwICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIG1lbS5jIChtbWFwX2ZsYWdzKTogQWRkIE1BUF8zMkJJVC4KKwlSZXBvcnRlZCBieSBLaXJpbGwgQS4gU2h1dGVtb3YuCisKKzIwMDctMDEtMTIgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc29jay5jIChzb2NrX2lvY3RsKTogQ2hlY2sgdW1vdmUoKSByZXR1cm4gY29kZS4KKwlbTElOVVhdOiBIYW5kbGUgU0lPQ0dJRlRYUUxFTiBhbmQgU0lPQ0dJRk1BUC4KKworMjAwNy0wMy0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfcmVzdGFydF9zeXNjYWxsIGZvciA3LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwNy0wMi0xOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLnNwZWMgKFN1bW1hcnkpOiBSZW1vdmUgdHJhaWxpbmcgcGVyaW9kLgorCSglZmlsZXMpOiBBZGQgJWRvYyBmaWxlcy4KKwkoJWNoYW5nZWxvZyk6IERvdWJsZSAlcyBpbiB0ZXh0LgorCShCdWlsZFJvb3QpOiBDaGFuZ2UgdG8gRmVkb3JhIGNhbm9uaWNhbC4KKwkoJWluc3RhbGwpOiBEb24ndCB1c2UgJW1ha2VpbnN0YWxsIG1hY3JvLgorCSglYnVpbGQpOiBVc2UgJXs/X3NtcF9tZmxhZ3N9LgorCisyMDA3LTAxLTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjE1LgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xNS0xLgorCisyMDA3LTAxLTE2ICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwlVcGRhdGUgbW91bnQgcGFyc2VyIHRvIG1hdGNoIGtlcm5lbCBiZWhhdmlvdXIuCisJKiBzeXN0ZW0uYyBbTElOVVhdIChNU19WRVJCT1NFKTogUmVuYW1lIHRvIE1TX1NJTEVOVC4KKwlbTElOVVhdIChNU19VTkJJTkRBQkxFLCBNU19QUklWQVRFLCBNU19TTEFWRSwgTVNfU0hBUkVEKToKKwlOZXcgbWFjcm9zLgorCVtMSU5VWF0gKG1vdW50X2ZsYWdzKTogQWRkIHRoZW0uCisJW0xJTlVYXSAoTVNfTUdDX01TSyk6IE5ldyBtYWNyby4KKwlbTElOVVhdIChzeXNfbW91bnQpOiBVcGRhdGUgcGFyc2VyIHRvIG1hdGNoIGtlcm5lbCBiZWhhdmlvdXI6CisJZGlzY2FyZCBNU19NR0NfVkFMIG1hZ2ljLCBkbyBub3QgZGVjb2RlIHR5cGUgYW5kL29yIGRhdGEKKwlzdHJpbmdzIHdoZW4gc3BlY2lmaWVkIGZsYWdzIGRvIG5vdCBpbXBseSB2YWxpZCBzdHJpbmdzLgorCisyMDA3LTAxLTEyICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHRpbWUuYyBbTElOVVhdICh0cHJpbnRfdGltZXgzMiwgdHByaW50X3RpbWV4KTogRGVjb2RlIGFkanRpbWV4CisJbW9kZXMgYXMgZmxhZ3MuCisKKzIwMDctMDEtMTEgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCVVwZGF0ZSB1bW91bnQgcGFyc2VyLgorCSogc3lzdGVtLmMgW0xJTlVYXSAoTU5UX0ZPUkNFLCBNTlRfREVUQUNILCBNTlRfRVhQSVJFKTogTmV3IG1hY3Jvcy4KKwlbTElOVVhdICh1bW91bnRfZmxhZ3MpOiBOZXcgeGxhdCBzdHJ1Y3R1cmUgd2l0aCBNTlRfKiBlbnRyaWVzLgorCVtMSU5VWF0gKHN5c191bW91bnQyKTogVXNlIHVtb3VudF9mbGFncy4KKworCUZpeCBvcGVuKDIpIGZsYWdzIHBhcnNlci4KKwkqIGRlZnMuaCAodHByaW50X29wZW5fbW9kZXMpOiBOZXcgZnVuY3Rpb24uCisJKiBkZXNjLmMgKHNwcmludF9vcGVuX21vZGVzKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfZmNudGwpOiBVc2UgdHByaW50X29wZW5fbW9kZXMoKSBhbmQgc3ByaW50X29wZW5fbW9kZXMoKS4KKwkqIGZpbGUuYyAob3Blbm1vZGVzKTogU3BsaXQgeGxhdCBpbnRvIG9wZW5fYWNjZXNzX21vZGVzIGFuZAorCW9wZW5fbW9kZV9mbGFncy4KKwkodHByaW50X29wZW5fbW9kZXMpOiBOZXcgZnVuY3Rpb24uCisJKGRlY29kZV9vcGVuKTogVXNlIGl0LgorCSogaXBjLmMgKHN5c19tcV9vcGVuLCBwcmludG1xYXR0cik6IExpa2V3aXNlLgorCUZpeGVzIFJIIzIyMjM4NS4KKworMjAwNy0wMS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xNS4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuMTUtMS4KKworCSogZGViaWFuL2NvbnRyb2wgKFVwbG9hZGVycyk6IEFkZCBGcmVkZXJpayBTY2h1ZWxlciA8ZnNAZGViaWFuLm9yZz4uCisKKwkqIHN0cmFjZS5zcGVjIChSZWxlYXNlKTogVXNlICV7P2Rpc3R9LgorCisJKiBzeXN0ZW0uYyBbTElOVVhdIChDVExfQ1BVKTogRGVmaW5lIGluIGNhc2UgaGVhZGVyIGlzIG1pc3NpbmcgaXQuCisKKzIwMDYtMTItMjcgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUFkZCBjb25zdCBxdWFsaWZpZXIgdG8geGxvb2t1cCgpIHJldHVybiB2YWx1ZS4KKwkqIGRlZnMuaCAoeGxvb2t1cCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gcmV0dXJuIHZhbHVlLgorCSogZGVzYy5jIChzcHJpbnRmbGFncyk6IExpa2V3aXNlLgorCSogcHJvY2Vzcy5jIChwcmludHByaXYpOiBVcGRhdGUgeGxvb2t1cCgpIHVzZS4KKwkqIHNpZ25hbC5jIChzcHJpbnRzaWdtYXNrKTogQWRkIGNvbnN0IHF1YWxpZmllciB0byBmaXJzdCBhcmd1bWVudCBhbmQKKwlyZXR1cm4gdmFsdWUuCisJKiB1dGlsLmMgKHhsb29rdXApOiBBZGQgY29uc3QgcXVhbGlmaWVyIHRvIHJldHVybiB2YWx1ZS4KKwkocHJpbnR4dmFsKTogVXBkYXRlIHhsb29rdXAoKSB1c2UuCisKKzIwMDYtMTItMjEgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCU1vdmUgY291bnRzIGNvZGUgdG8gc2VwYXJhdGUgZmlsZS4KKwkqIGNvdW50LmM6IE5ldyBmaWxlLgorCSogTWFrZWZpbGUuYW0gKHN0cmFjZV9TT1VSQ0VTKTogQWRkIGNvdW50LmMuCisJKiBzeXNjYWxsLmMgKGNhbGxfY291bnRzLCBjb3VudHYsIGNvdW50cywgc2hvcnRlc3QsIHRpbWVfY21wLAorCXN5c2NhbGxfY21wLCBjb3VudF9jbXAsIHNvcnRmdW4sIG92ZXJoZWFkLCBzZXRfc29ydGJ5LAorCXNldF9vdmVyaGVhZCwgY2FsbF9zdW1tYXJ5X3BlcnMsIGNhbGxfc3VtbWFyeSk6IE1vdmUgdG8gY291bnQuYworCSogY291bnQuYyAoY291bnRfc3lzY2FsbCk6IE5ldyBmdW5jdGlvbi4KKwkqIGRlZnMuaCAoY291bnRfc3lzY2FsbCk6IERlY2xhcmUgaXQuCisJKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBVc2UgaXQuCisKKzIwMDYtMTItMjAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogQ2hhbmdlIGNvbmRpdGlvbnMgZm9yIGludGVybmFsX2V4aXQsCisJaW50ZXJuYWxfZm9yaywgaW50ZXJuYWxfY2xvbmUsIGludGVybmFsX2V4ZWMgYW5kIGludGVybmFsX3dhaXQKKwljYWxscyBmcm9tIHN3aXRjaGluZyBvbiBrbm93biBzY25vIHZhbHVlcyB0byBzd2l0Y2hpbmcgb24ga25vd24KKwlzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyB2YWx1ZXMuCisJRml4ZXMgUkgjMTc5NzQwLgorCisJU2hvdyBzeXN0ZW0gY2FsbCBzdW1tYXJ5IGZvciBlYWNoIHBlcnNvbmFsaXR5LgorCSogc3lzY2FsbC5jIChjb3VudHYpOiBOZXcgY2FsbF9jb3VudHMgcG9pbnRlcnMgYXJyYXkuCisJKGNvdW50cyk6IENvbnZlcnQgdG8gbWFjcm8gd3JhcHBlciBhcm91bmQgY291bnR2LgorCShjYWxsX3N1bW1hcnlfcGVycyk6IE5ldyBmdW5jdGlvbi4KKwkoY2FsbF9zdW1tYXJ5KTogVXNlIGl0IGZvciBlYWNoIHBlcnNvbmFsaXR5LgorCUZpeGVzIFJIIzE5MjE5My4KKworMjAwNi0xMi0xMiAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJRml4IC1mZiAtbyBiZWhhdmlvdXIuICBGaXggcGlwaW5nIHRyYWNlIG91dHB1dC4KKwkqIGRlZnMuaCAobmV3b3V0Zik6IFJlbW92ZS4KKwkoYWxsb2N0Y2IpOiBSZW5hbWUgdG8gYWxsb2NfdGNiLiAgQWRkIGFsbG9jdGNiKCkgbWFjcm8gd3JhcHBlcgorCWFyb3VuZCBhbGxvY190Y2IoKS4KKwkqIHByb2Nlc3MuYyBbIVVTRV9QUk9DRlNdIChpbnRlcm5hbF9jbG9uZSwgaW50ZXJuYWxfZm9yayk6CisJUmVtb3ZlIG5ld291dGYoKSBjYWxsLgorCSogc3RyYWNlLmMgKHNldF9jbG9leGVjX2ZsYWcsIHN0cmFjZV9mb3Blbiwgc3RyYWNlX3BvcGVuLAorCXN3YXBfdWlkKTogTmV3IGZ1bmN0aW9ucy4KKwkocG9wZW5fcGlkKTogTmV3IHZhcmlhYmxlLgorCShuZXdvdXRmKTogTWFrZSBzdGF0aWMsIHVzZSBzdHJhY2VfZm9wZW4oKS4KKwkobWFpbik6IFVzZSBzdHJhY2VfZm9wZW4oKSBhbmQgc3RyYWNlX3BvcGVuKCksIHJlbW92ZSB1aWRzCisJc3dhcHBpbmcuICBEbyBub3Qgb3BlbiBvdXRmbmFtZSB3aGVuIGZvbGxvd2ZvcmsgPiAxLgorCVJlaW5pdGlhbGl6ZSB0Y3AtPm91dGYgcHJvcGVybHkuCisJKGFsbG9jdGNiKTogUmVuYW1lIHRvIGFsbG9jX3RjYi4gIFVzZSBuZXdvdXRmKCkuCisJKHRyYWNlKTogQ2hlY2sgcG9wZW5fcGlkLiAgUmVtb3ZlIG5ld291dGYoKSBjYWxsLgorCVtVU0VfUFJPQ0ZTXSAocHJvY19vcGVuLCBwcm9jX3BvbGxfb3Blbik6IFVzZSBzZXRfY2xvZXhlY19mbGFnKCkuCisJRml4ZXMgUkgjMjA0OTUwLCBSSCMyMTg0MzUsIERlYmlhbiMzNTM5MzUuCisKKzIwMDYtMTItMTAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUFkZCBiaWFyY2ggc3VwcG9ydCBmb3IgInN0cnVjdCBzaWdldmVudCIuCisJKiB0aW1lLmMgW0xJTlVYICYmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMV0gKHByaW50c2lnZXZlbnQzMik6CisJTmV3IGZ1bmN0aW9uLgorCVtMSU5VWF0gKHByaW50c2lnZXZlbnQpOiBbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxXQorCUhhbmRsZSAzMi1iaXQgcGVyc29uYWxpdHkuCisKKwlBZGQgYmlhcmNoIHN1cHBvcnQgZm9yICJzdHJ1Y3QgdGltZXgiLgorCSogdGltZS5jIFtMSU5VWCAmJiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDFdICh0cHJpbnRfdGltZXgzMik6CisJTmV3IGZ1bmN0aW9uLgorCVtMSU5VWF0gKHRwcmludF90aW1leCk6IE5ldyBmdW5jdGlvbi4KKwlbTElOVVhdIChzeXNfYWRqdGltZXgpOiBVc2UgaXQuCisKKwlFbmhhbmNlIGFkanRpbWV4IHBhcnNlci4KKwkqIHRpbWUuYyBbTElOVVhdIChhZGp0aW1leF9tb2RlcywgYWRqdGltZXhfc3RhdHVzLAorCWFkanRpbWV4X3N0YXRlKTogTmV3IHhsYXQgc3RydWN0dXJlcy4KKwlbTElOVVhdIChzeXNfYWRqdGltZXgpOiBQcmludCB0aGUgd2hvbGUgc3RydWN0IHRpbWV4LgorCURlY29kZSBtb2Rlcywgc3RhdHVzIGFuZCByZXR1cm4gY29kZS4KKworCUFkZCBiaWFyY2ggc3VwcG9ydCBmb3IgInN0cnVjdCBpdGltZXJ2YWwiLgorCSogdGltZS5jIChwcmludGl0dik6IFJlbmFtZSB0byBwcmludGl0dl9iaXRuZXNzKCkuCisJQWRkIHByaW50aXR2KCkgbWFjcm8gd3JhcHBlciBhcm91bmQgcHJpbnRpdHZfYml0bmVzcygpLgorCShwcmludGl0dl9iaXRuZXNzKTogSGFuZGxlIDMyLWJpdCBwZXJzb25hbGl0eS4KKwlbQUxQSEFdIChzeXNfb3NmX2dldGl0aW1lciwgc3lzX29zZl9zZXRpdGltZXIpOgorCVVzZSBwcmludGl0dl9iaXRuZXNzKCkuCisJKHRwcmludF90aW1ldmFsLCB0cHJpbnRfdGltZXZhbDMyKTogTmV3IGZ1bmN0aW9ucy4KKwkocHJpbnR0dl9iaXRuZXNzLCBwcmludGl0dl9iaXRuZXNzLCBzeXNfYWRqdGltZXgpOiBVc2UgdGhlbS4KKwkocHJpbnRpdHYzMik6IFJlbW92ZS4KKworCUFkZCBiaWFyY2ggc3VwcG9ydCBmb3IgInN0cnVjdCB0aW1ldmFsIi4KKwkqIGRlZnMuaCAoYml0bmVzc190KTogTmV3IGVudW0gdHlwZS4KKwkocHJpbnR0dl9iaXRuZXNzLCBzcHJpbnR0dik6IE5ldyBmdW5jdGlvbiBwcm90b3R5cGVzLgorCShwcmludHR2KTogQ29udmVydCB0byBtYWNybyB3cmFwcGVyIGFyb3VuZCBwcmludHR2X2JpdG5lc3MoKS4KKwkocHJpbnR0djMyKTogUmVtb3ZlLgorCSogZGVzYy5jIChkZWNvZGVfc2VsZWN0KTogVXNlIHByaW50dHZfYml0bmVzcygpIGFuZCBzcHJpbnR0digpLgorCShzeXNfb2xkc2VsZWN0LCBzeXNfb3NmX3NlbGVjdCwgc3lzX3NlbGVjdCwgc3lzX3BzZWxlY3Q2KToKKwlVcGRhdGUgZGVjb2RlX3NlbGVjdCgpIHVzZS4KKwkqIGZpbGUuYyBbQUxQSEFdIChzeXNfb3NmX3V0aW1lcyk6IFVzZSBwcmludHR2X2JpdG5lc3MoKS4KKwkqIHRpbWUuYyAocHJpbnR0dl9iaXRuZXNzLCBzcHJpbnR0dik6IE5ldyBmdW5jdGlvbnMuCisJKHByaW50dHYsIHByaW50dHYzMik6IFJlbW92ZS4KKwlbQUxQSEFdIChzeXNfb3NmX3NldHRpbWVvZmRheSwgc3lzX29zZl9zZXR0aW1lb2ZkYXkpOgorCVVzZSBwcmludHR2X2JpdG5lc3MoKS4KKwlGaXhlcyBSSCMxNzE2MjYsIFJIIzE3MzA1MC4KKworCUFkZCBiaWFyY2ggc3VwcG9ydCBmb3IgInN0cnVjdCBpb3ZlYyIuCisJKiBkZWZzLmggKHBlcnNvbmFsaXR5X3dvcmRzaXplKTogQWRkLgorCSogaW8uYyBbSEFWRV9TWVNfVUlPX0hdICh0cHJpbnRfaW92KTogW0xJTlVYICYmCisJU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxXSBIYW5kbGUgMzItYml0IHBlcnNvbmFsaXR5LgorCSogdXRpbC5jIFtIQVZFX1NZU19VSU9fSF0gKGR1bXBpb3YpOiBbTElOVVggJiYKKwlTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDFdIExpa2V3aXNlLgorCVBhdGNoIGZyb20gSmFrdWIgSmVsaW5lay4KKwlGaXhlcyBSSCMyMTg0MzMuCisKKwkqIHRpbWUuYyAoc3lzX3RpbWVyX2NyZWF0ZSk6IENoZWNrIHVtb3ZlKCkgcmV0dXJuIGNvZGUuCisKKwlNYWtlIHNldmVyYWwgZ2xvYmFsIHZhcmlhYmxlcyBzdGF0aWMuCisJI2lmZGVmIGRlZmluaXRpb25zIG9mIHJhcmVseSB1bnVzZWQgZnVuY3Rpb25zLgorCSogZGVmcy5oIChyZmxhZywgdGZsYWcsIG91dGZuYW1lKTogUmVtb3ZlLgorCSogc3RyYWNlLmMgKGlmbGFnLCBpbnRlcmFjdGl2ZSwgcGZsYWdfc2VlbiwgcmZsYWcsIHRmbGFnLAorCW91dGZuYW1lLCB1c2VybmFtZSk6IE1ha2Ugc3RhdGljLgorCSogZGVzYy5jIChzeXNfZ2V0ZHRhYmxlc2l6ZSk6IERlZmluZSBvbmx5IGZvcgorCUFMUEhBIHx8IEZSRUVCU0QgfHwgU1VOT1M0LgorCSogZmlsZS5jIChzeXNfZmNocm9vdCk6IERlZmluZSBvbmx5IGZvciBTVU5PUzQgfHwgU1ZSNC4KKwkoc3lzX21rZmlmbyk6IERlZmluZSBvbmx5IGZvciBGUkVFQlNELgorCSogbWVtLmMgKHN5c19zYnJrKTogRGVmaW5lIG9ubHkgZm9yIEZSRUVCU0QgfHwgU1VOT1M0LgorCShzeXNfZ2V0cGFnZXNpemUpOiBEZWZpbmUgb25seSBmb3IKKwlBTFBIQSB8fCBGUkVFQlNEIHx8IElBNjQgfHwgU1VOT1M0IHx8IFNWUjQuCisJKiBuZXQuYyAoc3lzX3NvX3NvY2tldCk6IERlZmluZSBvbmx5IGZvciBTVlI0LgorCSogcHJvY2Vzcy5jIChzeXNfZ2V0aG9zdGlkKTogRGVmaW5lIG9ubHkgZm9yCisJRlJFRUJTRCB8fCBTVU5PUzQgfHwgU1ZSNC4KKwkoc3lzX2dldGhvc3RuYW1lKTogRGVmaW5lIG9ubHkgZm9yCisJQUxQSEEgfHwgRlJFRUJTRCB8fCBTVU5PUzQgfHwgU1ZSNC4KKwkoc3lzX3NldHBncnApOiBEZWZpbmUgb25seSBmb3IgQUxQSEEgfHwgU1VOT1M0IHx8IFNWUjQuCisJKHN5c19leGVjdik6IERlZmluZSBvbmx5IGZvciBTUEFSQyB8fCBTUEFSQzY0IHx8IFNVTk9TNC4KKwkqIHNpZ25hbC5jIChzeXNfc2lnYmxvY2spOiBEZWZpbmUgb25seSBmb3IgRlJFRUJTRCB8fCBTVU5PUzQuCisJKHN5c19zaWdob2xkLCBzeXNfc2lnd2FpdCk6IERlZmluZSBvbmx5IGZvciBTVlI0LgorCShzeXNfa2lsbHBnKTogRGVmaW5lIG9ubHkgZm9yIEZSRUVCU0QgfHwgU1VOT1M0LgorCSogc3RyZWFtLmMgKHN5c19nZXRtc2cpOiBEZWZpbmUgb25seSBmb3IKKwlTUEFSQyB8fCBTUEFSQzY0IHx8IFNVTk9TNCB8fCBTVlI0LgorCSogc3lzY2FsbC5jIChzeXNfaW5kaXIpOiBEZWZpbmUgb25seSBmb3IgU1VOT1M0LgorCisyMDA2LTExLTI3ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzeXN0ZW0uYyBbTElOVVhdOiBEZWZpbmUgQ1RMX1BST0MsIHNpbmNlIExpbnV4IDIuNi4xOCsgaGVhZGVycworCXJlbW92ZWQgQ1RMX1BST0MgZW51bS4JUGF0Y2ggZnJvbSBKYWt1YiBKZWxpbmVrLgorCVtMSU5VWF0gKHN5c2N0bF9yb290KTogQWRkIENUTF9CVVMsIENUTF9BQkkgYW5kIENUTF9DUFUuCisKKzIwMDYtMTEtMjAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogQWRkICNpZiBjaGVjayB0byBtYWtlIHN1cmUgdGhhdAorCVNZU19zb2NrZXRfc3ViY2FsbCBhZGp1c3RtZW50IGlzbid0IGZvcmdvdHRlbiBhZ2Fpbi4KKworMjAwNi0xMC0xNiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUltcGxlbWVudCBjb21wcmVoZW5zaXZlIHF1b3RhY3RsKDIpIHBhcnNlciBmb3IgTGludXguCisJKiBNYWtlZmlsZS5hbSAoc3RyYWNlX1NPVVJDRVMpOiBBZGQgcXVvdGEuYy4KKwkqIHF1b3RhLmM6IE5ldyBmaWxlLgorCSogcmVzb3VyY2UuYzogUmVtb3ZlIG9sZCBxdW90YWN0bCgyKSBwYXJzZXIuCisJRml4ZXMgUkgjMTE4Njk2LgorCisyMDA2LTEwLTE0ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBjb25maWd1cmUuYWMgKEFDX0NIRUNLX0hFQURFUlMpOiBBZGQgaW50dHlwZXMuaC4KKwkqIGZpbGUuYyBbX0xGUzY0X0xBUkdFRklMRSAmJiAoTElOVVggfHwgU1ZSNCldOgorCUluY2x1ZGUgPGludHR5cGVzLmg+LgorCShzeXNfZ2V0ZGVudHM2NCk6IFVzZSBQUkl1NjQvUFJJZDY0IHRvIGF2b2lkIGdjYyB3YXJuaW5ncyBvbgorCTY0LWJpdCBwbGF0Zm9ybXMuCisKKwkqIHN0cmFjZS5jIChtYWluKTogQ2hlY2sgZ2V0Y3dkKCkgcmV0dXJuIGNvZGUuCisKKzIwMDYtMTAtMTMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgorCSAgICBCZXJuaGFyZCBLYWluZGwgPGJrQHN1c2UuZGU+CisJICAgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisJICAgIE1pY2hhZWwgSG9semhldSA8aG9semhldUBkZS5pYm0uY29tPgorCisJQWRkIGhvb2tzIGZvciBuZXcgc3lzY2FsbHMuICBBZGQgZGVjb2RlcnMgZm9yICphdCwgaW5vdGlmeSosCisJcHNlbGVjdDYsIHBwb2xsIGFuZCB1bnNoYXJlIHN5c2NhbGxzLgorCisJKiBkZWZzLmg6IERlY2xhcmUgcHJpbnRfc2lnc2V0LgorCSogZGVzYy5jIChzeXNfcHNlbGVjdDYpOiBOZXcgZnVuY3Rpb24uCisJKiBmaWxlLmMgKGRlY29kZV9vcGVuLCBkZWNvZGVfYWNjZXNzLCBkZWNvZGVfbWtkaXIsCisJZGVjb2RlX3JlYWRsaW5rLCBkZWNvZGVfY2htb2QsIGRlY29kZV91dGltZXMsIGRlY29kZV9ta25vZCk6CisJTmV3IGZ1bmN0aW9ucy4KKwkoc3lzX29wZW4sIHN5c19hY2Nlc3MsIHN5c19ta2Rpciwgc3lzX3JlYWRsaW5rLCBzeXNfY2htb2QsCisJc3lzX3V0aW1lcywgc3lzX21rbm9kKTogVXNlIHRoZW0uCisJW0xJTlVYXSAoZnN0YXRhdGZsYWdzLCB1bmxpbmthdGZsYWdzLCBpbm90aWZ5X21vZGVzKTogTmV3CisJdmFyaWFibGVzLgorCVtMSU5VWF0gKHByaW50X2RpcmZkLCBzeXNfb3BlbmF0LCBzeXNfZmFjY2Vzc2F0LAorCXN5c19uZXdmc3RhdGF0LCBzeXNfbWtkaXJhdCwgc3lzX2xpbmthdCwgc3lzX3VubGlua2F0LAorCXN5c19zeW1saW5rYXQsIHN5c19yZWFkbGlua2F0LCBzeXNfcmVuYW1lYXQsIHN5c19mY2hvd25hdCwKKwlzeXNfZmNobW9kYXQsIHN5c19mdXRpbWVzYXQsIHN5c19ta25vZGF0LCBzeXNfaW5vdGlmeV9hZGRfd2F0Y2gsCisJc3lzX2lub3RpZnlfcm1fd2F0Y2gpOiBOZXcgZnVuY3Rpb25zLgorCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c191bnNoYXJlKTogTmV3IGZ1bmN0aW9uLgorCSogc2lnbmFsLmMgKHByaW50X3NpZ3NldCk6IE5ldyBmdW5jdGlvbi4KKwkoc3lzX3NpZ3Byb2NtYXNrKTogVXNlIGl0LgorCSogc3RyZWFtLmMgKGRlY29kZV9wb2xsKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfcG9sbCk6IFVzZSBpdC4KKwlbTElOVVhdIChzeXNfcHBvbGwpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlbGNhcmUgbmV3IHN5c2NhbGwgaGFuZGxlcnMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEhvb2sgdXAgbmV3IHN5c2NhbGxzLgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJRml4ZXMgUkgjMTc4NjMzLgorCisyMDA2LTEwLTA2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJhY2UuYyBbIVVTRV9QUk9DRlNdICh0cmFjZSk6IFByZXNlbmNlIG9mIFBUX0dFVFNJR0lORk8KKwltYWNybyBkb2VzIG5vdCBtZWFuIHRoYXQgUFRfQ1JfSVBTUiBhbmQgUFRfQ1JfSUlQIG1hY3JvcyBhcmUKKwlhbHNvIGRlZmluZWQsIHNvIGNoZWNrIHRoZW0gYWxvbmcgd2l0aCBQVF9HRVRTSUdJTkZPLgorCUZpeGVzIFJIIzIwOTg1Ni4KKworMjAwNi0wOS0wMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogZmlsZS5jIChwcmludF94YXR0cl92YWwpOiBGaXggbWVtb3J5IGNvcnJ1cHRpb24gYnVnIHJlcG9ydGVkCisJYnkgSmFtZXMgQW50aWxsLgorCUZpeGVzIFJIIzIwMDYyMS4KKworMjAwNi0wNC0yMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogZGVmcy5oIFtMSU5VWCAmJiBYODZfNjQgJiYgIV9fTlJfZXhpdF9ncm91cF06IERlZmluZQorCV9fTlJfZXhpdF9ncm91cC4KKworMjAwNi0wMy0yOSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeCByYWNlIGNvbmRpdGlvbnMgaW4gdGNiIGFsbG9jYXRpb24uCisJKiBwcm9jZXNzLmMgKGZvcmtfdGNiKTogUmV0dXJuIGVycm9yIGNvZGUgYXMgZG9jdW1lbnRlZC4gIERvIG5vdAorCXByaW50ICJ0Y2IgdGFibGUgZnVsbCIgZXJyb3IgbWVzc2FnZS4KKwlbVVNFX1BST0NGU10gKGludGVybmFsX2ZvcmspOiBEbyBub3QgcHJpbnQgInRjYiB0YWJsZSBmdWxsIgorCWVycm9yIG1lc3NhZ2UuCisJW1NZU19jbG9uZSB8fCBTWVNfY2xvbmUyXSAoaW50ZXJuYWxfY2xvbmUsIGludGVybmFsX2ZvcmspOiBDYWxsCisJZm9ya190Y2IoKSBiZWZvcmUgYWxsb2N0Y2IoKS4gIERvIG5vdCBwcmludCAidGNiIHRhYmxlIGZ1bGwiCisJZXJyb3IgbWVzc2FnZS4KKwkqIHN0cmFjZS5jIChtYWluKTogRG8gbm90IHByaW50ICJ0Y2IgdGFibGUgZnVsbCIgZXJyb3IgbWVzc2FnZS4KKwkoZXhwYW5kX3RjYnRhYik6IFByaW50IGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiBtZW1vcnkgYWxsb2NhdGlvbgorCWZhaWx1cmUuCisJKGFsbG9jdGNiKTogUHJpbnQgZXJyb3IgbWVzc2FnZSB3aGVuIHRjYiB0YWJsZSBpcyBmdWxsLgorCSh0cmFjZSk6IEV4cGFuZCB0Y2IgdGFibGUgaWYgbmVjZXNzYXJ5IHByaW9yIHRvIGFsbG9jYXRpbmcKKwllbnRyeSB0aGVyZS4gIERvIG5vdCBwcmludCAidGNiIHRhYmxlIGZ1bGwiIGVycm9yIG1lc3NhZ2UuCisJRml4ZXMgUkgjMTgwMjkzLgorCisyMDA2LTA4LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBpcGMuYyAoc3lzX21zZ2dldCwgc3lzX3NlbWdldCwgc3lzX3NobWdldCk6IFNob3cga2V5IHZhbHVlcyBpbiBoZXguCisJRml4ZXMgUkgjMTk4MTc5LgorCisyMDA2LTA4LTIxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IEJ1bXAgdG8gNDAwLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGFibGUuCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L202OGsvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCUZpeGVzIFJIIzIwMTQ2Mi4KKworMjAwNi0wNC0yNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pOiBGYWlsIHdoZW4gLWMgaXMgZ2l2ZW4gd2l0aCAtZmYuCisJKiBzdHJhY2UuMTogTm90ZSB0aGVpciBpbmNvbXBhdGliaWxpdHkuCisJRml4ZXMgUkgjMTg3ODQ3LgorCisJKiBzdHJhY2UuYyAobWFpbik6IEZhaWwgd2hlbiBub25vcHRpb24gYXJncyBmb2xsb3cgLXAgc3dpdGNoZXMuCisJRml4ZXMgRGViaWFuIzM2MTMwMi4KKworCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgeGxhdGUuZWwuCisKKwkqIGxpbnV4L21pcHMvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZCwgdW51c2VkIGNydWZ0LgorCSogbGludXgvc3BhcmMvTWFrZWZpbGUuaW46IExpa2V3aXNlLgorCisJKiBzdHJhY2Uuc3BlYyAoU291cmNlMCk6IFVzZSBodHRwOi8vZGwuc291cmNlZm9yZ2UubmV0IFVSTC4KKworCSogaXBjLmMgKHN5c19zZW10aW1lZG9wKTogRml4ZWQgaW52ZXJ0ZWQgaW5kaXJlY3RfaXBjY2FsbCB0ZXN0LgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IEZpeGVkIHNlbXRpbWVkb3AgZW50cnkuCisJRnJvbSBNaWtlIFN0cm95YW4gPG1pa2Uuc3Ryb3lhbkBocC5jb20+LgorCUZpeGVzIERlYmlhbiMzNDAyMzkuCisKKzIwMDYtMDMtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IENvcnJlY3QgdGhlIG5hbWUgb2YgZXhpdC4gIFJlbW92ZQorCU02OEsgY29uZGl0aW9uYWxzIGFuZCBzeXNfc2VjdXJpdHkuICBDb3JyZWN0IHN5c2NhbGxzIDI0My0yODIuCisJRml4ZXMgRGViaWFuIzM2MDE1NC4KKworCSogcHJvY2Vzcy5jIChjaGFuZ2Vfc3lzY2FsbCk6IEFkZCBBUk0gc3VwcG9ydC4KKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pOiBIYW5kbGUgQVJNIEVBQkkuCisJRml4ZXMgRGViaWFuIzM2MDE1Mi4KKworMjAwNi0wMS0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xNC4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuMTQtMS4KKworMjAwNi0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGViaWFuL2NvbnRyb2wgKEJ1aWxkLURlcGVuZHMpOiBBZGQgZGViaGVscGVyLgorCisyMDA2LTAxLTEyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzaWduYWwuYyBbTElOVVhdIChzeXNfcmVzdGFydF9zeXNjYWxsKTogTmV3IGZ1bmN0aW9uLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHN5c19yZXN0YXJ0X3N5c2NhbGwuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBDYWxsIDAgaXMgcmVzdGFydF9zeXNjYWxsLgorCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogVXNlIHN5c19yZXN0YXJ0X3N5c2NhbGwuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGaXhlcyBSSCMxNjU0NjksIERlYmlhbiMzNTA2NDEuCisKKzIwMDUtMDgtMDggIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN5c3RlbS5jIFtMSU5VWF0gKE1TX01HQ19WQUwpOiBOZXcgbWFjcm8uCisJW0xJTlVYXSAobW91bnRfZmxhZ3MpOiBBZGQgaXQuCisJW0xJTlVYXSAoc3lzX21vdW50KTogSWYgbmVpdGhlciBNU19CSU5EIG5vciBNU19NT1ZFIGJpdHMgYXJlCisgICAgICAgIHNldCBpbiB0aGUgZmxhZ3MgYXJndW1lbnQsIHRyeSB0byBmZXRjaCBkYXRhIHN0cmluZy4KKwlGaXhlcyBSSCMxNjUzNzcuCisKKzIwMDYtMDEtMTIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN5c3RlbS5jIChzeXNfc3lzY3RsKTogRG9uJ3QgcmVhZCBvZmYgZW5kIG9mIE5BTUUgd2hlbiBtYXhfc3RybGVuCisJZXhjZWVkcyBJTkZPLm5sZW4uCisJRnJvbSBUaW1vIExpbmRmb3JzIDx0aW1vLmxpbmRmb3JzQGlraS5maT4uCisJRml4ZXMgRGViaWFuIzMzOTExNy4KKworCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IERvbid0IHBhc3MgLXMgdG8gaW5zdGFsbC4gIFVzZSBkaF9zdHJpcC4KKwlGaXhlcyBEZWJpYW4jMzI1MTMyLgorCisJKiBkZWJpYW4vY29udHJvbCAoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy42LjIuCisKKwkqIGRlZnMuaCBbTElOVVhTUEFSQ10gKFBFUlNPTkFMSVRZMF9XT1JEU0laRSwgUEVSU09OQUxJVFkxX1dPUkRTSVpFKToKKwlOZXcgbWFjcm9zLgorCVtTUEFSQzY0XSAoUEVSU09OQUxJVFkyX1dPUkRTSVpFKTogTmV3IG1hY3JvLgorCVtYODZfNjRdIChQRVJTT05BTElUWTBfV09SRFNJWkUsIFBFUlNPTkFMSVRZMV9XT1JEU0laRSk6IE5ldyBtYWNyb3MuCisJKiBzeXNjYWxsLmMgKFBFUlNPTkFMSVRZMF9XT1JEU0laRSk6IE5ldyBtYWNybyBpZiB1bmRlZmluZWQuCisJKHBlcnNvbmFsaXR5X3dvcmRzaXplKTogTmV3IHZhcmlhYmxlLgorCShkZWNvZGVfc3ViY2FsbCk6IFVzZSBpdCBmb3Igc2l6ZSBvZiBhcmd1bWVudCB3b3Jkcy4KKwlGaXhlcyBSSCMxNzQzNTQuCisKKzIwMDUtMTEtMTcgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlJbXBsZW1lbnQgcXVhbF9mbGFncyBzdXBwb3J0IGZvciBlYWNoIHBlcnNvbmFsaXR5LgorCSogc3RyYWNlLmMgKG1haW4pOiBNb3ZlIHF1YWxpZnkgY2FsbHMgYWZ0ZXIgc2V0X3BlcnNvbmFsaXR5IGNhbGwuCisJKiBzeXNjYWxsLmMgKHF1YWxfZmxhZ3MwKTogTmV3IHZhcmlhYmxlLi4KKwlbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMl0gKHF1YWxfZmxhZ3MxKTogTmV3IHZhcmlhYmxlLgorCVtTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzXSAocXVhbF9mbGFnczIpOiBOZXcgdmFyaWFibGUuCisJKHF1YWxfZmxhZ3MpOiBDaGFuZ2UgdmFyaWFibGUgZGVmaW5pdGlvbiBmcm9tIGFycmF5IHRvIHBvaW50ZXIuCisJKHNldF9wZXJzb25hbGl0eSk6IEluaXRpYWxpemUgcXVhbF9mbGFncyB2YXJpYWJsZS4KKwkocXVhbGlmeV9vbmUpOiBBZGQgInBlcnMiIGFyZ3VtZW50IHRvIHNwZWNpZnkgcGVyc29uYWxpdHkuCisJW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDJdOiBTZXQgcXVhbF9mbGFnczEgaWYgcmVxdWVzdGVkLgorCVtTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzXTogU2V0IHF1YWxfZmxhZ3MyIGlmIHJlcXVlc3RlZC4KKwkocXVhbF9zeXNjYWxsKTogUGFzcyBwZXJzb25hbGl0eSB0byBxdWFsaWZ5X29uZS4KKwlbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMl06IExvb2sgZm9yIHN5c2NhbGwgYWxzbyBpbiBzeXNlbnQxCisJdGFibGUuCisJW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDNdOiBMb29rIGZvciBzeXNjYWxsIGFsc28gaW4gc3lzZW50MgorCXRhYmxlLgorCShxdWFsX3NpZ25hbCk6IFBhc3MgcGVyc29uYWxpdHkgdG8gcXVhbGlmeV9vbmUuCisJKHF1YWxfZGVzYyk6IExpa2V3aXNlLgorCShxdWFsaWZ5KTogVXNlIHF1YWxpZnlfb25lIGluc3RlYWQgb2YgbWFudWFsIHF1YWxfZmxhZ3MKKwltYW5pcHVsYXRpb25zLgorCVtTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyXTogTG9vayBmb3Igc3lzY2FsbCBhbHNvIGluIHN5c2VudDEKKwl0YWJsZS4KKwlbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gM106IExvb2sgZm9yIHN5c2NhbGwgYWxzbyBpbiBzeXNlbnQyCisJdGFibGUuCisJKiBkZWZzLmg6IFVwZGF0ZSBxdWFsX2ZsYWdzIGRlY2xhcmF0aW9uLgorCUZpeGVzIFJIIzE3Mzk4Ni4KKworMjAwNS0xMS0xNCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3lzY2FsbC5jIChxdWFsX3N5c2NhbGwpOiBIYW5kbGUgbnVtZXJpYyBzeXNjYWxsIHNwZWNpZmljYXRpb24uCisJRml4ZXMgUkgjMTc0Nzk4LgorCisJKiBzeXNjYWxsLmMgKHF1YWxfc2lnbmFsLCBxdWFsX29wdGlvbnMpOiBSZW1vdmUgcmVkdW5kYW50IGFyZ3VtZW50CisJY2hlY2suCisKKzIwMDUtMTItMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGlwYy5jIChpbmRpcmVjdF9pcGNjYWxsKSBbTUlQUyB8fCBIUFBBXTogUmV0dXJuIGZhbHNlLgorCUZpeGVzIERlYmlhbiMzNDAyMzkuCisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L2FybS9zeXNjYWxsZW50LmgKKwlhbmQgbGludXgvbTY4ay9zeXNjYWxsZW50LmguCisJRml4ZXMgRGViaWFuIzMzNjE5Ny4KKworCSogZGViaWFuL2NvbnRyb2wgKEFyY2hpdGVjdHVyZSk6IEFkZCBhcm1lYi4KKwlGaXhlcyBEZWJpYW4jMzM1NjgxLgorCisyMDA1LTExLTAyIE1pY2hhbCBNYXJlayAgPG1tYXJla0BzdXNlLmN6PgorCisJKiBzdHJhY2UtZ3JhcGggKGhhbmRsZV90cmFjZSk6IGZvbGxvdyBjbG9uZSgpIGFuZCB2Zm9yaygpIGNhbGxzLgorCisyMDA1LTEwLTI1ICBIZWlrbyBDYXJzdGVucyAgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisKKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBBZGRlZCBpb3ByaW9fc2V0LCBpb3ByaW9fZ2V0LAorCWlub3RpZnlfaW5pdCwgaW5vdGlmeV9hZGRfd2F0Y2gsIGlub3RpZnlfcm1fd2F0Y2guCisJQ29ycmVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlcXVlc3Rfa2V5LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwNS0xMi0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogaXBjLmMgKGluZGlyZWN0X2lwY2NhbGwpIFtJQTY0XTogUmV0dXJuIGZhbHNlIHVubGVzcyB0aGUgc3lzY2FsbAorCW51bWJlciBpcyBpbiB0aGUgbG93IHJhbmdlIG9mIElBMzIgc3lzY2FsbHMuCisKKzIwMDUtMTAtMDcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBTeXNjYWxsIDExMDUgaXMgZ2V0dGlkLCBub3QgaW9wZXJtLgorCisyMDA1LTEyLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiByZXNvdXJjZS5jIChyZXNvdXJjZXMpOiBBZGQgUkxJTUlUX05JQ0UsIFJMSU1JVF9SVFBSSU8uCisJUmVwb3J0ZWQgYnkgU2NvdHQgVHNhaSA8c2NvdHR0OTU4QHlhaG9vLmNvbS50dz4uCisKKwkqIGlwYy5jIChpbmRpcmVjdF9pcGNjYWxsKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfbXNnY3RsLCBzeXNfbXNnc25kLCBzeXNfbXNncmN2LCBzeXNfc2Vtb3ApOiBVc2UgdGhhdCBwcmVkaWNhdGUKKwlpbnN0ZWFkIG9mICNpZmRlZiBMSU5VWCB0ZXN0LgorCVtMSU5VWF0gKHN5c19zZW10aW1lZG9wKTogTGlrZXdpc2UuCisJKHN5c19zaG1jdGwsIHN5c19zaG1hdCwgc3lzX3NobWR0KTogTGlrZXdpc2UuCisJRml4ZXMgUkgjMTY0NzU1LgorCisyMDA1LTA3LTMxICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogRml4IHN5c2NhbGwgcGFyYW1ldGVyIGNvdW50IGZvciBtc2dyY3YgYW5kCisJbXNnY3RsLgorCisJKiBpcGMuYyAoc3lzX21zZ3Jjdik6IEFkZCBlbnRlcmluZyBoYW5kbGluZyBhbmQgcHJpbnQgZmlyc3QgcGFyYW1ldGVyCisJdGhlcmUuCisJRml4ZXMgUkgjMTY0NzU3LgorCisyMDA1LTA4LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJhY2UuMTogVXBkYXRlICJTRUUgQUxTTyIgbGlua3MgdG8gcmVmZXJlbmNlIHRvIHZhbGlkCisJbWFucGFnZXMuCisJUGF0Y2ggZnJvbSBNaWNoYWlsIExpdHZhayA8bWNpQG93bC5vcGVud2FsbC5jb20+LgorCUZpeGVzIFJIIzE2NTM3NS4KKworMjAwNS0xMC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdXRpbC5jIChwcmludHBhdGhuKTogQ2FwIE4gYXQgc2l6ZW9mIHBhdGggLSAxLgorCisyMDA1LTA4LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjEzLgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xMy0xLgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdHJ1Y3QgZHFibGsuZHFiX2N1cmJsb2NrcyBmaWVsZC4KKwkqIHJlc291cmNlLmMgW0xJTlVYXSAoT0xEX0NNRCk6IE5ldyBtYWNyby4KKwkocXVvdGFjbWRzKTogVXNlIGl0IHRvIGhhcmQtd2lyZSBvbGQgT18qIHZhbHVlcywgZG9uJ3QgdXNlIG1hY3Jvcy4KKwkoc3lzX3F1b3RhY3RsKTogSWYgZHFiX2N1cmJsb2NrcyBpcyBub3QgdGhlcmUsIGl0J3MgY2FsbGVkCisJZHFiX2N1cnNwYWNlIGluc3RlYWQuICBQcmludCBkcWJfKiBmaWVsZHMgYXMgdW5zaWduZWQgbG9uZyBsb25nLgorCisyMDA1LTA3LTE5ICBNaWNoYWVsIFNjaG1pdHogIDxzY2htaXR6QGRlYmlhbi5vcmc+CisKKwlMb25nIG92ZXJkdWUgbTY4ayBjbGVhbnVwLgorCSogbGludXgvc3lzY2FsbGVudC5oOiByZW1vdmUgbTY4ayBkZWNsYXJhdGlvbnMuCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogbmV3IGZpbGUsIGZpeGVkIHVwIGRlY2xhcmF0aW9ucworCXRvIG1hdGNoIGtlcm5lbCB2ZXJzaW9uIDIuNi4xMS4gTmV3ZXIgc3lzY2FsbHMgYXJlIHN1ZmZpY2llbnRseQorCWRpZmZlcmVudCBmcm9tIGkzODYgdG8gbWVyaXQgYSBzZXBhcmF0ZSBmaWxlLgorCisyMDA1LTA4LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVcGRhdGUgaW5pdF9tb2R1bGUgYXJndW1lbnQgY291bnQuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Mi5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDUtMDctMjIgIEphbWVzIExlbnRpbmkgIDxqbGVudGluaUBnbWFpbC5jb20+CisKKwkqIGJqbS5jIChzeXNfaW5pdF9tb2R1bGUpOiBEaXNwbGF5IGFsbCB0aHJlZSBhcmd1bWVudHMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBhcmd1bWVudCBjb3VudC4KKworMjAwNS0wOC0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogRG9uJ3Qgc3VzcGVuZCB3aGVuIGtub3duIGNoaWxkIGlzIGtub3duCisJdG8gYmUgZXhpdGluZyBhbHJlYWR5LgorCisJKiBzdHJhY2UuYyAoZGV0YWNoKTogSWYgZGV0YWNoaW5nIHRoZSBsYXN0IGxpdmUgdGhyZWFkIGluIGEgZ3JvdXAgd2l0aAorCWEgem9tYmllIGxlYWRlciwgdGhlbiBkZXRhY2ggdGhlIGxlYWRlciB0b28uCisJKGhhbmRsZV9ncm91cF9leGl0KTogVXNlIGRldGFjaCwgbm90IGRyb3B0Y2IsIGZvciBwcmVkZWNlYXNlZCB0aHJlYWQuCisJTWFyayBwcm9jZXNzIGFib3V0IHRvIHRha2UgYSBzaWduYWwgd2l0aCBUQ0JfR1JPVVBfRVhJVElORyBmbGFnLgorCUZpeGVzIFJIIzE2MTkxOS4KKworMjAwNS0wNy0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oIFtMSU5VWF0gW002OEtdIChfX05SX2V4aXRfZ3JvdXApOiBEZWZpbmUgaXQgaWYgbWlzc2luZy4KKwlGaXhlcyBEZWJpYW4jMzE1NTAwLgorCisyMDA1LTA3LTE0ICBIZWlrbyBDYXJzdGVucyAgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisKKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oIChzeXNfdGdraWxsLCB2c2VydmVyLCBmYWR2aXNlNjRfNjQpCisJKHN0YXRmczY0LCBmc3RhdGZzNjQsIHJlbWFwX2ZpbGVfcGFnZXMsIG1iaW5kLCBnZXRfbWVtcG9saWN5KQorCShzZXRfbWVtcG9saWN5LCBtcV9vcGVuLCBtcV91bmxpbmssIG1xX3RpbWVkc2VuZCwgbXFfdGltZWRyZWNlaXZlKQorCShtcV9ub3RpZnksIG1xX2dldHNldGF0dHIsIHN5c19rZXhlY19sb2FkLCBhZGRfa2V5LCByZXF1ZXN0X2tleSkKKwkoa2V5Y3RsLCB3YWl0aWQpOiBBZGRlZC4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UgYW5kIGFkZGVkIG1pc3NpbmcgX2xsc2Vlay4KKwkqIGxpbnV4L3MzOTAvZXJybm9lbnQuaCAoRUNBTkNFTEVELCBFTk9LRVksIEVLRVlFWFBJUkVEKQorCShFS0VZUkVWT0tFRCwgRUtFWVJFSkVDVEVELCBFT1dORVJERUFELCBFTk9UUkVDT1ZFUkFCTEUpOiBBZGRlZC4KKwkqIGxpbnV4L3MzOTB4L2Vycm5vZW50Lmg6IExpa2V3aXNlLgorCisyMDA1LTA3LTA1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBtZW0uYyBbTElOVVhdIChzeXNfb2xkX21tYXApIFtYODZfNjRdOiBFeHRyYWN0IDMyLWJpdCB2YWx1ZXMgaWYKKwljaGlsZCBpcyAzMi1iaXQuCisJRml4ZXMgUkgjMTYyNDY3LgorCisyMDA1LTA2LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJSW50cm9kdWNlICItZSB0cmFjZT1kZXNjIi4KKwkqIGRlZnMuaCAoVFJBQ0VfREVTQyk6IE5ldyBmbGFnLgorCSogc3lzY2FsbC5jOiBEZWZpbmUgVEQgbWFjcm8gYmVmb3JlIGluY2x1ZGUgb2Ygc3lzY2FsbGVudCBmaWxlcworCWFuZCB1bmRlZmluZSBpdCBhZnRlcndhcmRzLgorCShsb29rdXBfY2xhc3MpOiBSZWNvZ25pemUgImRlc2MiIGtleXdvcmQuCisJKiBzdHJhY2UuMTogRG9jdW1lbnQgIi1lIHRyYWNlPWRlc2MiLgorCSogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogTWFyayB0aG9zZSBzeXNjYWxscyB3aGljaCB0YWtlIGEKKwlmaWxlIGRlc2NyaXB0b3IgYXMgYW4gYXJndW1lbnQgb3IgcmV0dXJuIGEgZmlsZSBkZXNjcmlwdG9yIHdpdGgKKwlURCBmbGFnLgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBzdW5vczQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIHN2cjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGaXhlcyBSSCMxNTk0MDAuCisKKwlSZW1vdmUgVEYgZmxhZyBmcm9tIHRob3NlIHN5c2NhbGxzIHdoaWNoIGhhdmUgbm8gZmlsZW5hbWUgYXJndW1lbnQuCisJKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIGZzdGF0LCBwcmVhZCwKKwlwd3JpdGUsIGZzdGF0LCBzZW5kZmlsZS4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogUmVtb3ZlIFRGIGZsYWcgZnJvbSByZWFkLCB3cml0ZSwKKwlwcmVhZCwgcHdyaXRlLCBzZW5kZmlsZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHJlYWQsIHdyaXRlLAorCXByZWFkLCBwd3JpdGUsIGZzdGF0NjQsIHNlbmRmaWxlLCBmdHJ1bmNhdGU2NC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHJlYWQsIHdyaXRlLAorCXNlbmRmaWxlLCBmc3RhdCwgZmFkdmlzZTY0LgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcmVhZCwgd3JpdGUsCisJZnN0YXRmcywgZnN0YXQsIHByZWFkLCBwd3JpdGUsIHNlbmRmaWxlLCBmdHJ1bmNhdGU2NCwgZnN0YXQ2NCwKKwlzZW5kZmlsZTY0LCBmYWR2aXNlNjQsIGZzdGF0ZnM2NC4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHJlYWQsIHdyaXRlLAorCWZzdGF0LCBwcmVhZCwgcHdyaXRlLCBzZW5kZmlsZSwgZnRydW5jYXRlNjQsIGZzdGF0NjQsIHNlbmRmaWxlNjQsCisJZmFkdmlzZTY0LCBmc3RhdGZzNjQsIGZhZHZpc2U2NF82NC4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsCisJc2VuZGZpbGUsIGZ0cnVuY2F0ZTY0LCBmc3RhdDY0LCBzZW5kZmlsZTY0LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsCisJc2VuZGZpbGUsIHNlbmRmaWxlNjQuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcHJlYWQsIHB3cml0ZSwKKwlzZW5kZmlsZSwgZnN0YXQ2NC4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsCisJc2VuZGZpbGUsIGZ0cnVuY2F0ZTY0LCBmc3RhdDY0LgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHNlbmRmaWxlLCBmc3RhdDY0LAorCXByZWFkLCBwd3JpdGUsIHNlbmRmaWxlNjQuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsIHNlbmRmaWxlLAorCWZ0cnVuY2F0ZTY0LCBmc3RhdDY0LCBzZW5kZmlsZTY0LCBmYWR2aXNlNjQsIGZhZHZpc2U2NCwgZnN0YXRmczY0LAorCWZhZHZpc2U2NF82NC4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcHJlYWQsIHB3cml0ZSwKKwlzZW5kZmlsZSwgZmFkdmlzZTY0XzY0LgorCSogc3ZyNC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcHJlYWQsIHB3cml0ZSwgZnRydW5jYXRlLAorCWZzdGF0dmZzNjQsIGZ0cnVuY2F0ZTY0LgorCUZpeGVzIFJIIzE1OTM0MC4KKworMjAwNS0wNy0wNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbmV0LmMgKHNvY2tpcHY2b3B0aW9ucyk6IEFkZCBJUFY2X0FERF9NRU1CRVJTSElQLAorCUlQVjZfRFJPUF9NRU1CRVJTSElQLCBJUFY2X1JPVVRFUl9BTEVSVC4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzE2MjQ1MC4KKworCSogbmV0LmMgKHNvY2tpcG9wdGlvbnMpOiBGaXggdHlwb3MuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxNjE1NzguCisKKwkqIHV0aWwuYyAocHJpbnRudW1faW50KTogTmV3IGZ1bmN0aW9uLCBwcmludG51bSB3aXRoIHMvbG9uZy9pbnQvLgorCSogZGVmcy5oOiBEZWNsYXJlIGl0LgorCSogbmV0LmMgKHByaW50c29ja29wdCk6IFVzZSBpdCBmb3IgaW50LXNpemVkIG9wdGlvbi4KKwlGaXhlcyBSSCMxNjI0NDkuCisJUmVwb3J0ZWQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKzIwMDUtMDYtMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTIuCisJKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjEyLTEuCisKKzIwMDUtMDYtMDggIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlNaW5vciBuYW1lc3BhY2UgY2xlYW51cC4KKwkqIGRlZnMuaCAoc3RyaW5nX3F1b3RlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgorCSogZmlsZS5jIChvcGVubW9kZXNzb2wpIFtMSU5VWFNQQVJDXTogTWFrZSBzdGF0aWMuCisJKGZpbGVmbGFncyk6IExpa2V3aXNlLgorCShhY2xjbWRzLCBhY2xpcGMpIFtIQVZFX1NZU19BQ0xfSF06IExpa2V3aXNlLgorCShkaXJlbnR0eXBlcykgW0ZSRUVCU0QgfHwgTElOVVhdOiBMaWtld2lzZS4KKwkoeGF0dHJmbGFncyk6IExpa2V3aXNlLgorCSogcHJvY2Vzcy5jICh1bmFsaWduY3RsX3N0cmluZyk6IE1ha2Ugc3RhdGljLgorCShzZXRhcmcpOiBEaXNhYmxlLgorCSogc3lzY2FsbC5jIChzdWJjYWxsc190YWJsZSk6IE1ha2Ugc3RhdGljLgorCShzb2NrZXRfbWFwKSBbIShMSU5VWCAmJiAoQUxQSEEgfHwgTUlQUykpXTogTGlrZXdpc2UuCisJKHNwYXJjX3NvY2tldF9kZWNvZGUpOiBNYWtlIHN0YXRpYywgZGVmaW5lIGZvciBbU1BBUkMgfHwgU1BBUkM2NF0gb25seS4KKwkoZGVjb2RlX3N1YmNhbGwpOiBNYWtlIHN0YXRpYy4KKwkoc3lzY2FsbF9maXh1cCk6IExpa2V3aXNlLgorCShnZXRfZXJyb3IpOiBMaWtld2lzZS4KKwkoc3lzY2FsbF9lbnRlcik6IExpa2V3aXNlLgorCSogdXRpbC5jICh0dl90dik6IERpc2FibGUuCisJKGdldHBjKTogTGlrZXdpc2UuCisJKHN0cmluZ19xdW90ZSk6IE1ha2Ugc3RhdGljLgorCUZpeGVzIFJIIzE1OTY4OC4KKworMjAwNS0wNS0xMiAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBtYWNxZWwuYmU+CisKKwkqIHV0aWwuYyAoZ2V0cGMsIHByaW50Y2FsbCk6IENoZWNrICNpZiBkZWZpbmVkKE02OEspLCBub3QgTTY4ay4KKwlFbmFibGVzIGAtaScgb24gbTY4ayBtYWNoaW5lcy4KKworMjAwNS0wNi0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbWDg2XzY0XTogUmVvcmRlciBlbGVtZW50cyBzbworCW1hdGNoaW5nIHdvcmtzIHJpZ2h0LgorCUZpeGVzIFJIIzE1OTc4Ny4KKworCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0LCBTWVNfYmluZCwgU1lTX2Nvbm5lY3QsIFNZU19saXN0ZW4pCisJKFNZU19hY2NlcHQsIFNZU19nZXRzb2NrbmFtZSwgU1lTX2dldHBlZXJuYW1lLCBTWVNfc29ja2V0cGFpcikKKwkoU1lTX3NlbmQsIFNZU19yZWN2LCBTWVNfc2VuZHRvLCBTWVNfcmVjdmZyb20sIFNZU19zaHV0ZG93bikKKwkoU1lTX3NldHNvY2tvcHQsIFNZU19nZXRzb2Nrb3B0LCBTWVNfc2VuZG1zZywgU1lTX3JlY3Ztc2cpCisJKFNZU19nZXRzb2NrbmFtZSwgU1lTX3NlbW9wLCBTWVNfc2VtZ3N1Yl9ldCwgU1lTX3NlbWdldCwgU1lTX3NlbWN0bCkKKwkoU1lTX3NlbXRpbWVkb3AsIFNZU19tc2dzbmQsIFNZU19tc2dyY3YsIFNZU19tc2dnZXQpCisJKFNZU19tc2djdGwsIFNZU19zaG1hdCwgU1lTX3NobWR0LCBTWVNfc2htZ2V0KQorCShTWVNfc2htY3RsKTogTWFjcm9zIHJlbmFtZWQgdG8gU1lTX3N1Yl8qLgorCSogc3lzY2FsbC5jIChkdW1waW8pOiBNYXRjaCBTWVNfc3ViXyogaWYgZGVmaW5lZCBpbnN0ZWFkIG9mIFNZU18qLgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU193YWl0aWQpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IHByZWFkL3B3cml0ZSBuYW1lcyB0byBwcmVhZDY0L3B3cml0ZTY0LgorCisJKiBkZWZzLmggKHN0cnVjdCBzeXNlbnQpOiBOZXcgbWVtYmVyIGBuYXRpdmVfc2NubycuCisJKGtub3duX3Njbm8pOiBEZWNsYXJlIG5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIG5ldyBmaW5hbCBmaWVsZCB0byBpbnRlcmVzdGluZyBzeXNjYWxscy4KKwkqIHN5c2NhbGwuYyAoa25vd25fc2Nubyk6IE5ldyBmdW5jdGlvbi4KKwkoZHVtcGlvLCBpbnRlcm5hbF9zeXNjYWxsLCBzeXNjYWxsX2ZpeHVwLCB0cmFjZV9zeXNjYWxsKTogVXNlIGl0LgorCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9mb3JrLCBpbnRlcm5hbF9leGl0KTogTGlrZXdpc2UuCisJW0lBNjRdIChBUkdfU1RBQ0tTSVpFLCBBUkdfUFRJRCwgQVJHX0NUSUQsIEFSR19UTFMpOiBMaWtld2lzZS4KKwkqIHN0cmFjZS5jIChwcm9jX29wZW4pOiBMaWtld2lzZS4KKwkqIHV0aWwuYyBbTElOVVhdIChzZXRicHQpOiBMaWtld2lzZS4KKwkqIGxpbnV4L3N5c2NhbGwuaDogUmVtb3ZlIFshZGVmaW5lZChYODZfNjQpXSBmcm9tIGNvbmRpdGlvbmFsCisJZm9yIGRlZmluaW5nIFNZU19zb2NrZXRfc3ViY2FsbCBldCBhbC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UgZm9yICNlcnJvciBjaGVjay4KKwkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IExpa2V3aXNlIGZvciBTWVNfe3NvY2tldGNhbGwsaXBjfSBjYXNlcy4KKwlGaXhlcyBSSCMxNTg5MzQuCisKKzIwMDUtMDYtMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGZpbGUuYyAocHJpbnRzdGF0ZnM2NCk6IENhc3QgdmFsdWVzIHRvIHVuc2lnbmVkIGxvbmcgbG9uZyBhbmQgdXNlCisJJWxsdSBmb3JtYXRzLgorCUZpeGVzIFJIIzE1ODI0My4KKworMjAwNS0wNS0zMSAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCURlYWwgd2l0aCBtZW1vcnkgbWFuYWdlbWVudCBpc3N1ZXMuCisJKiBkZWZzLmggKHRwcmludF9pb3YpOiBVcGRhdGUgcHJvdG90eXBlLgorCSogZGVzYy5jIChzeXNfZXBvbGxfd2FpdCkgW0hBVkVfU1lTX0VQT0xMX0hdOiBEbyBub3QgYWxsb2NhdGUKKwllcG9sbF9ldmVudCBhcnJheSBvZiBhcmJpdHJhcnkgc2l6ZSBvbiB0aGUgc3RhY2ssIHRvIGF2b2lkCisJc3RhY2sgb3ZlcmZsb3cuCisJKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IGR1cmluZworCW1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCisJKiBpby5jICh0cHJpbnRfaW92KSBbSEFWRV9TWVNfVUlPX0hdOiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdworCWR1cmluZyBtYWxsb2Mgc2l6ZSBjYWxjdWxhdGlvbiwgdG8gYXZvaWQgaGVhcCBjb3JydXB0aW9uLgorCUNoYW5nZSBpb3ZlYyBhcnJheSBoYW5kbGluZyB0byBhdm9pZCBoZWFwIG1lbW9yeSBhbGxvY2F0aW9uLgorCSogbWVtLmMgKGdldF9ub2RlcykgW0xJTlVYXTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgZHVyaW5nCisJc2l6ZSBjYWxjdWxhdGlvbiBhbmQgZG8gbm90IGFsbG9jYXRlIGFycmF5IG9mIGFyYml0cmFyeSBzaXplIG9uCisJdGhlIHN0YWNrLCB0byBhdm9pZCBzdGFjayBvdmVyZmxvdy4KKwkqIG5ldC5jIChwcmludGNtc2doZHIpIFtIQVZFX1NFTkRNU0ddOiBEbyBub3QgYWxsb2NhdGUgYXJyYXkgb2YKKwlhcmJpdHJhcnkgc2l6ZSBvbiB0aGUgc3RhY2ssIHRvIGF2b2lkIHN0YWNrIG92ZXJmbG93LiAgRG8gbm90CisJdHJ1c3QgY21zZy5jbXNnX2xlbiB0byBhdm9pZCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIGFsbG9jYXRlZAorCW9iamVjdC4KKwkocHJpbnRtc2doZHIpIFtIQVZFX1NFTkRNU0ddOiBVcGRhdGUgdHByaW50X2lvdigpIHVzYWdlLgorCSogcHJvY2Vzcy5jIChzeXNfc2V0Z3JvdXBzKTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgZHVyaW5nCisJbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4gIENoYW5nZSBnaWRfdAorCWFycmF5IGhhbmRsaW5nIHRvIGF2b2lkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24uCisJKHN5c19nZXRncm91cHMpOiBMaWtld2lzZS4KKwkoc3lzX3NldGdyb3VwczMyKSBbTElOVVhdOiBMaWtld2lzZS4KKwkoc3lzX2dldGdyb3VwczMyKSBbTElOVVhdOiBMaWtld2lzZS4KKwkqIHN0cmVhbS5jIChzeXNfcG9sbCkgW0hBVkVfU1lTX1BPTExfSF06IENoZWNrIGZvciBpbnRlZ2VyCisJb3ZlcmZsb3cgZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCisJQ2hhbmdlIHBvbGxmZCBhcnJheSBoYW5kbGluZyB0byBhdm9pZCBoZWFwIG1lbW9yeSBhbGxvY2F0aW9uLgorCSogc3lzdGVtLmMgKHN5c19zeXNjdGwpIFtMSU5VWF06IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93CisJZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCisJKiB1dGlsLmMgKGR1bXBpb3YpIFtIQVZFX1NZU19VSU9fSF06IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93CisJZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCisJRml4ZXMgUkgjMTU5MTk2LgorCisJKiB1dGlsLmMgKHByaW50eHZhbCk6IENoYW5nZSB0aGlyZCBhcmd1bWVudCBmcm9tICJjaGFyICoiIHRvCisJImNvbnN0IGNoYXIgKiIuCisJKHByaW50ZmxhZ3MpOiBBZGQgdGhpcmQgYXJndW1lbnQsICJjb25zdCBjaGFyICoiLCB3aXRoIHNpbWlsYXIKKwltZWFuaW5nIHRvIHRoZSB0aGlyZCBhcmd1bWVudCBvZiBwcmludHh2YWwoKS4KKwkqIGRlZnMuaCAocHJpbnR4dmFsKTogQ2hhbmdlIHRoaXJkIGFyZ3VtZW50IGZyb20gImNoYXIgKiIgdG8KKwkiY29uc3QgY2hhciAqIi4KKwkocHJpbnRmbGFncyk6IEFkZCB0aGlyZCBhcmd1bWVudC4KKwkqIGJqbS5jIChzeXNfcXVlcnlfbW9kdWxlKSBbTElOVVhdOiBQYXNzIHRoaXJkIGFyZ3VtZW50IHRvCisJcHJpbnRmbGFncygpLgorCSogZGVzYy5jIChzeXNfZmNudGwpOiBMaWtld2lzZS4KKwkoc3lzX2Zsb2NrKSBbTE9DS19TSF06IExpa2V3aXNlLgorCShwcmludF9lcG9sbF9ldmVudCkgW0hBVkVfU1lTX0VQT0xMX0hdOiBMaWtld2lzZS4KKwkqIGZpbGUuYyAoc3lzX29wZW4pOiBMaWtld2lzZS4KKwkoc29sYXJpc19vcGVuKSBbTElOVVhTUEFSQ106IExpa2V3aXNlLgorCShzeXNfYWNjZXNzKTogTGlrZXdpc2UuCisJKHN5c19jaGZsYWdzLCBzeXNfZmNoZmxhZ3MpIFtGUkVFQlNEXTogTGlrZXdpc2UuCisJKHJlYWxwcmludHN0YXQpIFtIQVZFX0xPTkdfTE9OR19PRkZfVCAmJgorCUhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1NdOiBMaWtld2lzZS4KKwkocHJpbnRzdGF0NjQpIFtIQVZFX1NUQVQ2NCAmJgorCUhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1NdOiBMaWtld2lzZS4KKwkoc3lzX3NldHhhdHRyLCBzeXNfZnNldHhhdHRyKTogTGlrZXdpc2UuCisJKiBpcGMuYyAoc3lzX21zZ2dldCwgc3lzX21zZ3NuZCwgc3lzX21zZ3Jjdiwgc3lzX3NlbWdldCwKKwlzeXNfc2htZ2V0LCBzeXNfc2htYXQpIFtMSU5VWCB8fCBTVU5PUzQgfHwgRlJFRUJTRF06IExpa2V3aXNlLgorCShzeXNfbXFfb3BlbikgW0xJTlVYXTogTGlrZXdpc2UuCisJKHByaW50bXFhdHRyKSBbSEFWRV9NUVVFVUVfSF06IExpa2V3aXNlLgorCSogbWVtLmMgKHByaW50X21tYXApIFshSEFWRV9MT05HX0xPTkdfT0ZGX1RdOiBMaWtld2lzZS4KKwkoc3lzX21tYXA2NCkgW19MRlM2NF9MQVJHRUZJTEUgfHwgSEFWRV9MT05HX0xPTkdfT0ZGX1RdOiBMaWtld2lzZS4KKwkoc3lzX21wcm90ZWN0KTogTGlrZXdpc2UuCisJKHN5c19tcmVtYXAsIHN5c19tYWR2aXNlLCBzeXNfbWxvY2thbGwpIFtMSU5VWF06IExpa2V3aXNlLgorCShzeXNfbXN5bmMpIFtNU19BU1lOQ106IExpa2V3aXNlLgorCShzeXNfbWN0bCkgW01DX1NZTkNdOiBMaWtld2lzZS4KKwkoc3lzX3JlbWFwX2ZpbGVfcGFnZXMsIHN5c19tYmluZCwgc3lzX2dldF9tZW1wb2xpY3kpIFtMSU5VWF06CisJTGlrZXdpc2UuCisJKiBuZXQuYyAocHJpbnRtc2doZHIpIFtIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0xdOiBMaWtld2lzZS4KKwkoc3lzX3NlbmQsIHN5c19zZW5kdG8pOiBMaWtld2lzZS4KKwkoc3lzX3NlbmRtc2cpIFtIQVZFX1NFTkRNU0ddOiBMaWtld2lzZS4KKwkoc3lzX3JlY3YsIHN5c19yZWN2ZnJvbSk6IExpa2V3aXNlLgorCShzeXNfcmVjdm1zZykgW0hBVkVfU0VORE1TR106IExpa2V3aXNlLgorCShwcmludGljbXBmaWx0ZXIpIFtJQ01QX0ZJTFRFUl06IExpa2V3aXNlLgorCSogcHJvYy5jIChwcm9jX2lvY3RsKSBbU1ZSNCAmJiAhSEFWRV9NUF9QUk9DRlMgfHwgRlJFRUJTRF06IExpa2V3aXNlLgorCSogcHJvY2Vzcy5jIChzeXNfY2xvbmUpIFtMSU5VWF06IExpa2V3aXNlLgorCShwcmludHdhaXRuKTogTGlrZXdpc2UuCisJKHN5c193YWl0aWQpIFtTVlI0IHx8IExJTlVYXTogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoc3lzX3NpZ3ZlYykgW1NVTk9TNCB8fCBGUkVFQlNEXTogTGlrZXdpc2UuCisJKHN5c19zaWdhY3Rpb24pOiBMaWtld2lzZS4KKwkocHJpbnRjb250ZXh0KSBbU1ZSNF06IExpa2V3aXNlLgorCShwcmludF9zdGFja190KSBbTElOVVgpIHx8IEZSRUVCU0RdOiBMaWtld2lzZS4KKwkoc3lzX3J0X3NpZ2FjdGlvbikgW0xJTlVYXTogTGlrZXdpc2UuCisJKiBzb2NrLmMgKHNvY2tfaW9jdGwpIFtMSU5VWF06IExpa2V3aXNlLgorCSogc3RyZWFtLmMgKHN5c19wdXRtc2csIHN5c19nZXRtc2cpOiBMaWtld2lzZS4KKwkoc3lzX3B1dHBtc2cpIFtTWVNfcHV0cG1zZ106IExpa2V3aXNlLgorCShzeXNfZ2V0cG1zZykgW1NZU19nZXRwbXNnXTogTGlrZXdpc2UuCisJKHN5c19wb2xsKTogTGlrZXdpc2UuCisJKHByaW50X3RyYW5zcG9ydF9tZXNzYWdlKSBbVElfQklORF06IExpa2V3aXNlLgorCShzdHJlYW1faW9jdGwpOiBMaWtld2lzZS4KKwkqIHN5c3RlbS5jIChzeXNfbW91bnQsIHN5c19yZWJvb3QpOiBMaWtld2lzZS4KKwkoc3lzX2NhY2hlZmx1c2gpIFtMSU5VWCAmJiBNNjhLXTogTGlrZXdpc2UuCisJKHN5c19jYXBnZXQsIHN5c19jYXBzZXQpIFtTWVNfY2FwZ2V0XTogTGlrZXdpc2UuCisJKiB0ZXJtLmMgKHRlcm1faW9jdGwpIFtUSU9DTUdFVF06IExpa2V3aXNlLgorCSogdGltZS5jIChzeXNfY2xvY2tfbmFub3NsZWVwLCBzeXNfdGltZXJfc2V0dGltZSkgW0xJTlVYXToKKwlMaWtld2lzZS4KKwlGaXhlcyBSSCMxNTkzMTAuCisKKwkqIGJqbS5jIChzeXNfcXVlcnlfbW9kdWxlKSBbTElOVVhdOiBVbml0aXplICJvdXQgb2YgbWVtb3J5IgorCWVycm9ycyByZXBvcnRpbmcgc3R5bGUuCisJKiBzdHJhY2UuYyAocmVidWlsZF9wb2xsdikgW1VTRV9QUk9DRlNdOiBMaWtld2lzZS4KKwkqIHN5c3RlbS5jIChzeXNfY2FwZ2V0LCBzeXNfY2Fwc2V0KSBbU1lTX2NhcGdldF06IExpa2V3aXNlLgorCSogdXRpbC5jIChwcmludHN0cik6IExpa2V3aXNlLgorCShkdW1waW92KSBbSEFWRV9TWVNfVUlPX0hdOiBMaWtld2lzZS4KKwkoZml4dmZvcmspIFtTVU5PUzRdOiBMaWtld2lzZS4KKwkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IENvbnRpbnVlIHRvIGRlY29kZSBzeXNjYWxsIGFyZ3VtZW50cworCWluIGNhc2Ugb2YgT09NIGNvbmRpdGlvbi4KKwkqIGZpbGUuYyAoc3lzX2dldGRlbnRzKTogTGlrZXdpc2UuCisJKHN5c19nZXRkZW50czY0KSBbX0xGUzY0X0xBUkdFRklMRV06IExpa2V3aXNlLgorCShzeXNfZ2V0ZGlyZW50cmllcykgW0ZSRUVCU0RdOiBMaWtld2lzZS4KKwkqIG1lbS5jIChzeXNfbWluY29yZSk6IENoYW5nZWQgdHlwZSBvZiB2YXJpYWJsZXMgd2hpY2ggZGVhbCB3aXRoCisJbWFsbG9jIHNpemUgZnJvbSBpbnQgdG8gdW5zaWduZWQgbG9uZy4KKwlGaXhlcyBSSCMxNTkzMDguCisKKzIwMDUtMDUtMjIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGJqbS5jIFtMSU5VWF06IERvIG5vdCBpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+LiAgSXQgaXMgbm90CisJc2FmZSB0byBpbmNsdWRlIGtlcm5lbCBoZWFkZXJzLCBhbmQgdGhpcyBvbmUgaXMgbm90IHVzZWQgYW55d2F5LgorCUZpeGVzIFJIIzE1ODQ4OC4KKworMjAwNS0wNS0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzdGVtLmMgKHN5c19zeXNjdGwpOiBDaGVjayBmb3IgZXJyb3JzIGFjY2Vzc2luZyB1c2VyIHBvaW50ZXJzLgorCVVzZSBtYWxsb2MgaW5zdGVhZCBvZiBhbGxvY2EgaW4gY2FzZSBzaXplIGlzIGluc2FuZS4KKworMjAwNS0wNS0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgbGliYWlvLmguCisJKiBkZXNjLmMgKHN5c19pb19zZXR1cCwgc3lzX2lvX3N1Ym1pdCwgc3lzX2lvX2NhbmNlbCwKKwlzeXNfaW9fZ2V0ZXZlbnRzLCBzeXNfaW9fZGVzdHJveSk6IE5ldyBmdW5jdGlvbnMuCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHRob3NlIGZvciBpb18qIHN5c2NhbGxzLgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGcm9tIFphY2ggQnJvd24gPHphY2guYnJvd25Ab3JhY2xlLmNvbT4uCisJRml4ZXMgUkgjMTU1MDY1LgorCisJKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIHBwYzY0LgorCUZpeGVzIERlYmlhbiBidWcgIzMwMTA4OS4KKworMjAwNS0wNS0wNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgorCisJKiBwcm9jZXNzLmMgKHB0cmFjZV9jbWRzKTogQWRkIFBUUkFDRV9HRVRWUlJFR1MgYW5kIFBUUkFDRV9TRVRWUlJFR1MKKwlpZiBkZWZpbmVkLgorCisyMDA1LTA1LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAobWFpbik6IFJlZnVzZSBuZWdhdGl2ZSAtcyBhcmd1bWVudCB2YWx1ZS4KKwlGaXhlcyBEZWJpYW4gYnVnICMzMDMyNTYuCisKKzIwMDUtMDQtMjUgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KKworCSogZmlsZS5jIChvcGVubW9kZXMpOiBBZGQgT19OT0FUSU1FIGZsYWcgaWYgZGVmaW5lZC4KKworMjAwNS0wNC0wNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgorCisJKiBsaW51eC9wb3dlcnBjL2lvY3RsZW50Lmg6IFJlZ2VuZXJhdGVkLgorCisJKiBzaWduYWwuYyAoc2lnbmFtZSk6IERvbid0IHRyeSBhbmQgZGVyZWZlcmVuY2UgbmVnYXRpdmUgaW5kZXguCisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBBZGQgZGVidWdfc2V0Y29udGV4dCwgdnNlcnZlciwKKwltYmluZCwgKl9tZW1wb2xpY3ksIG1xXyosIHN5c19rZXhlY19sb2FkLCBhZGRfa2V5LCByZXF1ZXN0X2tleSwKKwlrZXljdGwsIHdhaXRpZCwgc3lzX3NlbXRpbWVkb3AuICBGaXggdmFyaW91cyBvdGhlciBzeXNjYWxscy4KKworCSogaXBjLmMgKHNobV9yZXNvdXJjZV9mbGFncyk6IE5ldyB2YXJpYWJsZSwgdGFibGUgaGFzIFNITV9IVUdFVExCCisJYnV0IG5vdCBJUENfTk9XQUlULCB3aGljaCBoYXZlIHRoZSBzYW1lIHZhbHVlLgorCShzeXNfc2htZ2V0KTogVXNlIHRoYXQgaW5zdGVhZCBvZiByZXNvdXJjZV9mbGFncy4KKworMjAwNS0wMy0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVzYy5jIChkZWNvZGVfc2VsZWN0KTogSW5jcmVhc2UgbG9jYWwgYnVmZmVyIHNpemUuCisJRml4ZXMgUkgjMTUxNTcwLgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjExLgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xMS0xLgorCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBGaXggMTEzIGVudHJ5IChzeXNjYWxsLCBub3Qgdm04Nm9sZCkuCisKKzIwMDUtMDMtMTQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTAuCisJKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjEwLTEuCisKKzIwMDUtMDItMjYgIEdPVE8gTWFzYW5vcmkgIDxnb3RvbUBkZWJpYW4ub3IuanA+CisKKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogRml4IHRoZSByZXZlcnNlZCBvcmRlciBvZiBsc3RhdDY0IGFuZAorCWZzdGF0NjQuICBDbGVhbiB1cCBvc2ZfbnJlY3Ztc2cgYW5kIG9zZl9uZ2V0c29ja25hbWUuCisKKzIwMDUtMDItMjggIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CisKKwkqIHN5c2NhbGwuYyAoZ2V0cnZhbDIpOiBNb3ZlICNpZmRlZiBJQTY0IGluc2lkZSAjaWZkZWYgTElOVVguCisKKzIwMDUtMDMtMTQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBVcGRhdGUgdmFyaW91cyBjYWxscy4KKwlGcm9tIFRoaWVtbyBTZXVmZXIgPHRoc0BuZXR3b3Jrbm8uZGU+LgorCUZpeGVzIERlYmlhbiBidWcgIzI1NjY4NC4KKworCSogZGViaWFuL2NvbnRyb2wgKEFyY2hpdGVjdHVyZSk6IEFkZCBzMzkwLgorCUZpeGVzIERlYmlhbiBidWcgIzI5NDE3Mi4KKworMjAwNS0wMy0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKHRyYWNlKSBbUFRSQUNFX0dFVFNJR0lORk9dOiBGZXRjaCBzaWdpbmZvX3QgZm9yIFNJR1NFR1YKKwlhbmQgU0lHQlVTIHNpZ25hbHMsIHVzZSBzaV9hZGRyIGluIG91dHB1dC4KKworMjAwNS0wMy0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZmlsZS5jIChwcmludF94YXR0cl92YWwpOiBBZGQgYSBjYXN0LgorCisyMDA1LTAyLTA1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBDYWxjdWxhdGUgc2l6ZSBvZiBwYXNzZWQgZmRfc2V0IHZlY3RvcnMgYW5kCisJY29weSBpbiB0aGUgdXNlcidzIHNpemUgcmF0aGVyIHRoYW4gdGhlIHN0YW5kYXJkIHNpemVvZihmZF9zZXQpLgorCUZpeGVzIERlYmlhbiBidWcgIzY1NjU0LCAjMjg0MjkwLgorCisJKiB1dGlsLmMgKHByaW50cGF0aCwgcHJpbnRwYXRobik6IFByaW50IE5VTEwgYW5kIGRvbid0IHRyeSBhbnkgZmV0Y2gKKwl3aGVuIEFERFIgaXMgemVyby4KKwlGaXhlcyBEZWJpYW4gYnVnICM2MzA5My4KKworCSogZGViaWFuL2NvbnRyb2wgKEJ1aWxkLURlcGVuZHMpOiBGaXggZm9yIHMzOTAgYW5kIHNwYXJjLgorCUZyb20gQmFzdGlhbiBCbGFuayA8d2FsZGlAZGViaWFuLm9yZz4uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjkzNTY0LgorCisyMDA0LTEyLTE5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJhY2UuYyAobWFpbikgWyFVU0VfUFJPQ0ZTXTogSW4gY2hpbGQgcHJvY2VzcywgcmFpc2UgU0lHU1RPUAorCXJpZ2h0IGJlZm9yZSBleGVjdigpIGNhbGwuICBSZW1vdmUgZmFrZV9leGVjdmUoKSBjYWxsLgorCSogZGVmcy5oIChmYWtlX2V4ZWN2ZSk6IFJlbW92ZSB1bnVzZWQgZGVjbGFyYXRpb24uCisJKiBwcm9jZXNzLmMgKGZha2VfZXhlY3ZlKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KKwlGaXhlcyBSSCMxNDMzNjUuCisKKzIwMDUtMDItMDQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuOS4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuOS0yLgorCisJKiBmaWxlLmMgKE9fTEFSR0VGSUxFKTogT21pdCB3aGVuICN1bmRlZidkIGJlY2F1c2UgaXQgd2FzIHplcm8uCisKKzIwMDUtMDItMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlYmlhbi9jb250cm9sOiBBZGQgc3RyYWNlLXVkZWIgcGFja2FnZSBmb3IgaW5zdGFsbGVyIGRlYnVnZ2luZy4KKwkqIGRlYmlhbi9ydWxlcyAoYmluYXJ5LWFyY2gpOiBCdWlsZCBpdC4KKwlGcm9tIEpvc2h1YSBLd2FuIDxqb3Noa0B0cmlwbGVoZWxpeC5vcmc+LgorCUZpeGVzIERlYmlhbiBidWcgIzI2ODI5NC4KKworCSogZmlsZS5jIChvcGVubW9kZXMpIFtPX0xBUkdFRklMRV0gW09fTEFSR0VGSUxFID09IDBdOiBSZWRlZmluZSB0bworCWtub3duIHZhbHVlcyBmb3IgTGludXguCisKKwkqIHV0aWwuYyAocHJpbnRjYWxsKTogUHJpbnQgMTYgP3Mgd2hlbiBsb25nIGlzIDggYnl0ZXMuCisJRml4ZXMgUkgjMTQ2OTMyLgorCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2Vwb2xsX2NyZWF0ZSwgc3lzX2Vwb2xsX2N0bCwKKwlzeXNfZXBvbGxfd2FpdC4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbC5oOiBKdXN0ICNpbmNsdWRlICIuLi9zcGFyYy9zeXNjYWxsLmgiIGhlcmUuCisJKiBpb2N0bC5jIChuaW9jdGxlbnRzMik6IEFkZCBjb25zdCB0byB0eXBlLgorCUZpeGVzIERlYmlhbiBidWcgIzI3ODQ0OS4KKworCSogc29jay5jIChpZmZmbGFncyk6IE5ldyB2YXJpYWJsZSwgdGFibGUgb2YgSUZGXyogdmFsdWVzLgorCShwcmludF9hZGRyKTogTmV3IGZ1bmN0aW9uLgorCShzb2NrX2lvY3RsKTogSGFuZGxlIFNJT0NHSUZBRERSLCBTSU9DR0lGRFNUQUREUiwgU0lPQ0dJRkJSREFERFIsCisJU0lPQ0dJRk5FVE1BU0ssIFNJT0NHSUZGTEFHUywgU0lPQ0dJRk1FVFJJQywgU0lPQ0dJRk1UVSwgU0lPQ0dJRlNMQVZFLAorCVNJT0NHSUZIV0FERFIuCVVzZSBwcmludF9hZGRyIGZvciBTSU9DR0lGQ09ORiwgU0lPQ0dJRk5BTUUsIGFuZAorCVNJT0NHSUZJTkRFWCwgYW5kIGZpeCB0aGVpciBvdXRwdXQuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMzgyMjMuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMTkyMTY0LgorCisyMDA0LTEyLTIwICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBjb25maWd1cmUuYWM6IFVzZSBBQ19HTlVfU09VUkNFIG1hY3JvIGluc3RlYWQgb2YgY2hhbmdpbmcgQ0ZMQUdTLgorCSogZGVmcy5oIFtIQVZFX0NPTkZJR19IXTogSW5jbHVkZSBjb25maWcuaCBmaXJzdC4KKwkqIHN0cmFjZS5jOiBJbmNsdWRlICJkZWZzLmgiIGZpcnN0LgorCUZpeGVzIFJIIzE0MzM3MC4KKworCSogc3lzY2FsbC5jIChjYWxsX3N1bW1hcnkpOiBGaXggcG90ZW50aWFsIE5VTEwgZGVyZWZlcmVuY2UuCisJRml4ZXMgUkgjMTQzMzY5LgorCisyMDA0LTEyLTE5ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzeXNjYWxsLmMgKHF1YWxfc2lnbmFsKTogQ2hlY2sgYm91bmRzIGZvciBudW1lcmljIHNpZ25hbCBuYW1lcy4KKwlGaXggcGFyc2VyIG9mIHN5bWJvbGljIHNpZ25hbCBuYW1lcy4KKwlGaXggcmV0dXJuIGNvZGUsIGFzIHJlcXVpcmVkIGJ5IHF1YWxpZnkoKSBmdW5jdGlvbi4KKwkqIHN5c2NhbGwuYyAocXVhbF9kZXNjKTogQ2hlY2sgYm91bmRzIGZvciBkZXNjcmlwdG9yIG51bWJlci4KKwkqIHN5c2NhbGwuYyAocXVhbF9zeXNjYWxsKTogQ29ycmVjdCByZXR1cm4gY29kZSwgdG8gYmUgY29uc2lzdGVudAorCXdpdGggcXVhbGlmeSgpIGFuZCBvdGhlciBxdWFsXyogZnVuY3Rpb25zLgorCUZpeGVzIFJIIzE0MzM2Mi4KKworMjAwNS0wMi0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzdGVtLmMgW0xJTlVYXSAoTVNfTUFORExPQ0ssIE1TX05PQVRJTUUsIE1TX05PRElSQVRJTUUsIE1TX0JJTkQsCisJTVNfTU9WRSwgTVNfUkVDLCBNU19WRVJCT1NFLCBNU19QT1NJWEFDTCwgTVNfQUNUSVZFLCBNU19OT1VTRVIpOgorCU5ldyBtYWNyb3MuCisJW0xJTlVYXSAobW91bnRfZmxhZ3MpOiBBZGQgdGhlbS4KKwlbTElOVVhdIChzeXNfbW91bnQpOiBJZiBhbnkgb2YgKE1TX0JJTkR8TVNfTU9WRXxNU19SRU1PVU5UKSBiaXRzIGFyZQorCXNldCBpbiB0aGUgZmxhZ3MgYXJndW1lbnQsIGRvbid0IHRyeSB0byBmZXRjaCB0aGUgZmlsZXN5c3RlbSBzdHJpbmcuCisJRml4ZXMgUkgjMTQxOTMyLgorCisJKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGNhbm9uaWNhbCB2ZXJzaW9uLCB0aW1lc3RhbXAgMjAwNC0xMS0xMi4KKwkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLCB0aW1lc3RhbXAgMjAwNC0xMS0zMC4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gW1g4Nl82NF0gKHN5c19hcmNoX3ByY3RsKTogTmV3IGZ1bmN0aW9uLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIGl0LgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogVXNlIGl0LgorCVBhcnQgb2YgUkgjMTQyNjY3LgorCisJKiBwcm9jZXNzLmMgKHN5c19zY2hlZF9zZXRzY2hlZHVsZXIpOiBVc2UgJSNseCBmb3JtYXQgZm9yIGJhZCBwb2ludGVyLgorCShzeXNfc2NoZWRfZ2V0cGFyYW0sIHN5c19zY2hlZF9zZXRwYXJhbSk6IExpa2V3aXNlLgorCVBhcnQgb2YgUkgjMTQyNjY3LgorCisJKiBzaWduYWwuYyBbSEFWRV9TSUdBQ1RJT05dIFtMSU5VWCAmJiBYODZfNjRdIChTQV9SRVNUT1JFUik6IERlZmluZQorCWhlcmUgdG9vLgorCVBhcnQgb2YgUkgjMTQyNjY3LgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfbWluY29yZSBpbnN0ZWFkIG9mIHByaW50YXJncy4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLiAgQWxzbyB1c2Ugc3lzX2dldHJsaW1pdCwKKwlzeXNfc2VtdGltZWRvcCwgc3lzX3Vtb3VudDIuCisJUGFydCBvZiBSSCMxNDI2NjcuCisKKwkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBGaXggaW52ZXJ0ZWQgcmV0dXJuIHZhbHVlIGFuZCBib2d1cworCWFyZ3VtZW50IHRvIHF1YWxpZnlfb25lIGluIHRoZSBuYW1lZCBjYXNlLgorCisJKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IERvbid0IHVzZSBhdXRvIGFycmF5IHNpemVkIGJ5IHN5c2NhbGwKKwlhcmd1bWVudC4gIFVzZSBtYWxsb2MgaW5zdGVhZCwgc28gaXQgY2FuIGZhaWwgZm9yIGluc2FuZSB2YWx1ZXMuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjgzNzA0LgorCisJKiBuZXQuYyAoc3lzX2dldHNvY2tvcHQpOiBGaXggYSBmb3JtYXQgJWxkIC0+ICVkLgorCisJKiBsaW51eC9zeXNjYWxsLmggW0lBNjRdIChTWVNfc2VtdGltZWRvcCk6ICN1bmRlZiBpdC4KKworCSogc3lzY2FsbC5jIChzeXNjYWxsX2VudGVyKSBbWDg2XzY0XTogRml4IDMyLWJpdCBhcmd1bWVudCByZWdpc3RlciBtYXAKKwlub3QgdG8gZG91YmxlIHRoZSBtaWRkbGUgZW50cnkhCisJRml4ZXMgUkgjMTQ2MDkzLgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBGaXggZXhpdF9ncm91cCBlbnRyeS4KKworCSogdXRpbC5jIChnZXRwYykgW1MzOTAgfHwgUzM5MFhdOiBJbXBsZW1lbnQgaXQuCisJUGF0Y2ggYnkgRGF2aWQgV2lsZGVyIDx3aWxkZXJAdXMuaWJtLmNvbT4uCisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgZmFkdmlzZTY0LCBmc3RhdGZzNjQsIHN0YXRmczY0LCBtYmluZCwKKwlbZ3NdZXRfbWVtcG9saWN5LCBtcV8qLCBzeXNfa2V4ZWNfbG9hZCwgdnNlcnZlciwgYW5kIHdhaXRpZC4KKwlGaXhlcyBSSCMxNDYyNDUuCisKKzIwMDUtMDEtMjIgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CisKKwkqIG5ldC5jIChzeXNfZ2V0c29ja29wdCk6IENoYW5nZSB0eXBlIG9mIGxlbiB0byBpbnQuCisKKzIwMDQtMTAtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuOC4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuOC0xLgorCisJKiBmaWxlLmMgKHN5c19mYWR2aXNlNjQpOiBDb25kaXRpb25hbGl6ZSBqdXN0IG9uIFtMSU5VWF0uCisKKwkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHN5cy9lcG9sbC5oLgorCSogZGVzYy5jOiBQcm90ZWN0ICNpbmNsdWRlIDxzeXMvZXBvbGwuaD4gd2l0aCBbSEFWRV9TWVNfRVBPTExfSF0uCisJKGVwb2xsY3RscywgZXBvbGxldmVudHMpOiBQcm90ZWN0IGVhY2ggZW50cnkgd2l0aCAjaWZkZWYgb24gaXRzIG1hY3JvLgorCisJKiBzdHJhY2UuYyAoaGFuZGxlX2dyb3VwX2V4aXQpOiBEb24ndCBkZXRhY2ggbGVhZGVyIHRoYXQgd2Fzbid0CisJVENCX0FUVEFDSEVELiAgSW5zdGVhZCBtYXJrIGl0IHdpdGggVENCX0dST1VQX0VYSVRJTkcuCisJUmVtb3ZlIGRyb3B0Y2IgbG9vcCBhdCBlbmQsIG5vIGxvbmdlciByZXF1aXJlZCBzaW5jZSAyLjYgcmVwb3J0cyBlYWNoCisJdGhyZWFkIGRlYXRoLgorCUZpeGVzIFJIIzEzNTI1NC4KKworCSogc3RyYWNlLmMgKHRyYWNlKTogVXNlIGhhbmRsZV9ncm91cF9leGl0IGZvciBub24tVENCX0FUVEFDSEVEIGNoaWxkCisJdGFraW5nIHNpZ25hbCB3aGVuIGl0IGhhcyBuY2xvbmVfdGhyZWFkcyA+IDAuCisKKwkqIHN0cmFjZS5jIChoYW5kbGVfZ3JvdXBfZXhpdCwgdHJhY2UpOiBNYXJrIGxlYWRlciB3aXRoCisJVENCX0dST1VQX0VYSVRJTkcgYW5kIGRvbid0IGJlIHN1cnByaXNlZCBhdCBjaGlsZCBkZWF0aHMgd2hlbiB0aGVpcgorCWxlYWRlciBoYXMgaXQgc2V0LgorCUZpeGVzIFJIIzEzMjE1MC4KKworCSogcHJvY2Vzcy5jIChXQ09SRUZMQUcpOiBEZWZpbmUgaWYgbm90IGRlZmluZWQuCisJKFdfU1RPUENPREUsIFdfRVhJVENPREUpOiBMaWtld2lzZS4KKwlSZXBvcnRlZCBieSBNYXJ0eSBMZWlzbmVyIDxtbGVpc25lckBlbmcubWMueGVyb3guY29tPi4KKworCSogc29jay5jIFshIExJTlVYXTogSW5jbHVkZSA8c3lzL3NvY2tldC5oPiBiZWZvcmUgPHN5cy9zb2NraW8uaD4uCisJUmVwb3J0ZWQgYnkgTWFydHkgTGVpc25lciA8bWxlaXNuZXJAZW5nLm1jLnhlcm94LmNvbT4uCisKKwkqIGRlYmlhbi9ydWxlczogTWFrZSBzdHJhY2U2NC4xLmd6IHN5bWxpbmsgdG8gc3RyYWNlLjEuZ3ogaW5zdGVhZCBvZgorCXN0cmFjZTY0LjEgdG8gc3RyYWNlLjEsIHdoaWNoIGRvZXNuJ3QgZXhpc3QuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjY5MjIwLgorCisyMDA0LTA5LTA1ICBQaGlsIEJsdW5kZWxsICA8cGJAbmV4dXMuY28udWs+CisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgorCisyMDA0LTEwLTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZWJpYW4vcnVsZXMgKERFQl9CVUlMRF9HTlVfVFlQRSwgQ09ORklHX09QVFMpOiBOZXcgdmFyaWFibGVzLgorCVskKERFQl9IT1NUX0dOVV9UWVBFKSA9PSBzMzkwLWxpbnV4XSAoYnVpbGQ2NCwgSE9TVDY0LCBDQzY0KTogU2V0IHRoZW0uCisJKGJ1aWxkL01ha2VmaWxlKTogVXNlICQoQ09ORklHX09QVFMpLgorCShidWlsZDY0L01ha2VmaWxlKTogUGFzcyAtLWhvc3QgYXMgd2VsbCBhcyAtLWJ1aWxkLgorCUZyb20gQmFzdGlhbiBCbGFuayA8d2FsZGlAZGViaWFuLm9yZz4uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjcxNTAwLgorCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogVXBkYXRlIGZvciAyLjYuOSBzeXNjYWxscy4KKwlGcm9tIFJhbmRvbHBoIENodW5nIDx0YXVzcUBkZWJpYW4ub3JnPgorCUZpeGVzIERlYmlhbiBidWcgIzI3Mzg4Ny4KKworCSogZmlsZS5jIChzeXNfbGxzZWVrKTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgorCisyMDA0LTA5LTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0d2lkZGxlLm5ldD4KKworCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBBZGQgdGdraWxsLCAqc3RhdDY0LCB2c2VydmVyLCBtYmluZCwKKwlbZ3NdZXRfbWVtcG9saWN5LCBtcV8qLCB3YWl0aWQuCisKKzIwMDQtMTAtMDcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGZpbGUuYyAoc3lzX2xsc3Nlaywgc3lzX3JlYWRhaGVhZCwgc3lzX2ZhZHZpc2U2NCwgc3lzX2ZhZHZpc2U2NF82NCk6CisJVXNlIExPTkdfTE9ORyBtYWNyby4KKwkqIGlvLmMgKHN5c19wcmVhZCwgc3lzX3B3cml0ZSwgc3lzX3NlbmRmaWxlKTogTGlrZXdpc2UuCisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEZpeCBib3RjaGVkIHRhYmxlIGVudHJpZXMuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworCSogbWVtLmMgW0xJTlVYXSAoc3lzX21iaW5kLCBzeXNfc2V0X21lbXBvbGljeSwgc3lzX2dldF9tZW1wb2xpY3kpOgorCU5ldyBmdW5jdGlvbnMuCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIG1iaW5kLCBzZXRfbWVtcG9saWN5LCBnZXRfbWVtcG9saWN5LgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKwkqIGZpbGUuYyBbTElOVVggJiYgKEkzODYgfHwgWDg2XzY0KV0gKHN5c19mYWR2aXNlNjQsIHN5c19mYWR2aXNlNjRfNjQpOgorCU5ldyBmdW5jdGlvbnMuCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgdGhlbS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIGZhZHZpc2U2NCBhbmQgZmFkdmlzZTY0XzY0IHVzaW5nIHRob3NlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworMjAwNC0wOS0xMyAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogbGludXgvaW9jdGxzb3J0LmMgKG1haW4pOiBPbWl0IGR1cGxpY2F0ZSBsaW5lcworCSh3aXRoIHNhbWUgbmFtZSBhbmQgY29kZSkgZnJvbSBvdXRwdXQuCisJKiBsaW51eC9pb2N0bGVudC5zaDogQnVpbGQgdGhlIGxpc3Qgb2YgaW9jdGxzIGRlZmluZWQgaW4KKwlzY3NpL3NnLmggKDB4MjIuLiksIHNjc2kvc2NzaS5oIGFuZCBzY3NpL3Njc2lfaW9jdGwuaCAoMHg1My4uKSwKKwlhcyBzdWdnZXN0ZWQgYnkgUGV0ZXIgSm9uZXMgPHBqb25lc0ByZWRoYXQuY29tPgorCSogbGludXgvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQuCisJRml4ZXMgUkgjMTI5ODA4LgorCisyMDA0LTA5LTEzICBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPgorCSAgICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHRpbWUuYyBbTElOVVhdIChwcmludF9ydGMpOiBOZXcgZnVuY3Rpb24sIGZvciBwcmludGluZyBydGNfdGltZQorCXN0cnVjdHVyZS4KKwlbTElOVVhdIChydGNfaW9jdGwpOiBOZXcgZnVuY3Rpb24sIGZvciBwYXJzaW5nIFJUQ18qIGlvY3Rscy4KKwkqIGlvY3RsLmMgW0xJTlVYXSAoaW9jdGxfZGVjb2RlKTogQ2FsbCBydGNfaW9jdGwuCisJKiBkZWZzLmggW0xJTlVYXTogRGVjbGFyZSBydGNfaW9jdGwuCisJRml4ZXMgUkgjNTg2MDYuCisKKzIwMDQtMTAtMDYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlc2MuYyBbTElOVVhdIChzeXNfZXBvbGxfY3JlYXRlLCBzeXNfZXBvbGxfY3RsLCBzeXNfZXBvbGxfd2FpdCk6CisJTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2UgdGhvc2UgZm9yIGVwb2xsXyogc3lzY2FsbHMuCisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMzQ0NjMuCisKKwkqIHJlc291cmNlLmMgKHJlc291cmNlcyk6IEFkZCBSTElNSVRfTE9DS1MsIFJMSU1JVF9TSUdQRU5ESU5HLAorCWFuZCBSTElNSVRfTVNHUVVFVUUsIGlmIGRlZmluZWQuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMzM1OTQuCisKKwkqIG5ldC5jIFtIQVZFX1NFTkRNU0ddIChwcmludGNtc2doZHIpOiBOZXcgZnVuY3Rpb24uCisJKHByaW50bXNnaGRyKTogVXNlIGl0LgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTMxNjg5LgorCisJKiBmaWxlLmMgKHNwcmludG1vZGUpOiBBZGQgY29uc3QgdG8gcmV0dXJuIHR5cGUuCisJKHNwcmludGZzdHlwZSk6IExpa2V3aXNlLgorCSogc2lnbmFsLmMgKHByaW50c2lnaW5mbyk6IEFkZCBhIGNvbnN0LgorCisyMDA0LTA5LTE1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3dhaXRpZC4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiB3YWl0aWQgdGFrZXMgNSBhcmd1bWVudHMsIGFuZCBpcyBpbiBUUCBjYXRlZ29yeS4KKwkqIHByb2Nlc3MuYyAoc3lzX3dhaXRpZCk6IEhhbmRsZSBmaWZ0aCBhcmd1bWVudCAoc3RydWN0IHJ1c2FnZSAqKS4KKworMjAwNC0wOS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdGltZS5jIChzeXNfY2xvY2tfbmFub3NsZWVwKTogUHJpbnQgemVybyBmbGFncyBhcmcgY29ycmVjdGx5LgorCShzeXNfdGltZXJfc2V0dGltZSk6IExpa2V3aXNlLgorCShwcmludHNpZ2V2ZW50KTogUHJpbnQgc2lnbmFscyBieSBuYW1lIGZvciBTSUdFVl9TSUdOQUwuCisJKHN5c190aW1lcl9jcmVhdGUpOiBQcmludCBjbG9jayBJRCBzeW1ib2xpY2FsbHkuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMzE0MjAuCisKKzIwMDQtMDktMDcgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CisKKwkqIGRlZnMuaCAobmlvY3RsZW50czEsIG5zaWduYWxzMik6IEZpeCB0eXBvcyBpbiBkZWNscy4KKworMjAwNC0wOS0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzY2FsbC5jIChxdWFsX29wdGlvbnMpOiBBZGQgY29uc3QgdG8gZGVmbi4KKwlVcGRhdGUgYWxsIHVzZXMuCisJKGNhbGxfY291bnQsIGVycm9yX2NvdW50LCB0dl9jb3VudCk6IFZhcmlhYmxlcyByZW1vdmVkLgorCShzdHJ1Y3QgY2FsbF9jb3VudHMsIGNvdW50cyk6IE5ldyB0eXBlIGFuZCB2YXJpYWJsZS4KKwlVcGRhdGUgYWxsIHVzZXJzIG9mIHRoZSBvbGQgdGhyZWUgdG8gdXNlIHRoZSBuZXcgYXJyYXkgb2Ygc3RydWN0cy4KKwkodHJhY2Vfc3lzY2FsbCk6IEFsbG9jYXRlIGNvdW50cyBvbiBmaXJzdCB1c2UuCisJKHNvcnRlZF9jb3VudCk6IFZhcmlhYmxlIHJlbW92ZWQuCisJKGNhbGxfc3VtbWFyeSk6IEFsbG9jYXRlIGxvY2FsbHkuCisKKwkqIHN5c2NhbGwuYyAoc3lzZW50MCwgc3lzZW50MSwgc3lzZW50Miwgc3lzZW50KTogQWRkIGNvbnN0IHRvIGRlZm4uCisJKG5zeXNjYWxsczAsIG5zeXNjYWxsczEsIG5zeXNjYWxsczIpOiBMaWtld2lzZS4KKwkoZXJybm9lbnQwLCBlcnJub2VudDEsIGVycm5vZW50MiwgZXJybm9lbnQpOiBMaWtld2lzZS4KKwkobmVycm5vczAsIG5lcnJub3MxLCBuZXJybm9zMik6IExpa2V3aXNlLgorCSogc2lnbmFsLmMgKHNpZ25hbGVudDAsIHNpZ25hbGVudDEsIHNpZ25hbGVudDIpOiBMaWtld2lzZS4KKwkobnNpZ25hbHMwLCBuc2lnbmFsczEsIG5zaWduYWxzMik6IExpa2V3aXNlLgorCShzaWduYW1lKTogTElrZXdpc2UuCisJKiBpb2N0bC5jIChpb2N0bGVudDAsIGlvY3RsZW50MSwgaW9jdGxlbnQyKTogTGlrZXdpc2UuCisJKG5pb2N0bGVudHMwLCBuaW9jdGxlbnRzMSwgbmlvY3RsZW50czIpOiBMaWtld2lzZS4KKwkoaW9jdGxfbG9va3VwLCBpb2N0bF9uZXh0X21hdGNoKTogTGlrZXdpc2UuCisJKiBkZWZzLmg6IFVwZGF0ZSBkZWNscy4KKwkqIGlvLmMgKHN5c19pb2N0bCk6IFVwZGF0ZSB1c2Vycy4KKworCSogdXRpbC5jICh4bG9va3VwLCBwcmludHh2YWwsIGFkZGZsYWdzLCBwcmludGZsYWdzKTogVXNlIGNvbnN0IGZvcgorCXN0cnVjdCB4bGF0ICogYXJndW1lbnQuCisJKiBkZWZzLmggKHhsb29rdXAsIHByaW50eHZhbCwgYWRkZmxhZ3MsIHByaW50ZmxhZ3MpOiBVcGRhdGUgZGVjbHMuCisJKiBiam0uYzogQWRkIGNvbnN0IHRvIGFsbCBzdHJ1Y3QgeGxhdCBkZWZucy4KKwkqIGRlc2MuYzogTGlrZXdpc2UuCisJKiBmaWxlLmM6IExpa2V3aXNlLgorCSogaXBjLmM6IExpa2V3aXNlLgorCSogbWVtLmM6IExpa2V3aXNlLgorCSogbmV0LmM6IExpa2V3aXNlLgorCSogcHJvYy5jOiBMaWtld2lzZS4KKwkqIHByb2Nlc3MuYzogTGlrZXdpc2UuCisJKiByZXNvdXJjZS5jOiBMaWtld2lzZS4KKwkqIHNpZ25hbC5jOiBMaWtld2lzZS4KKwkqIHNvY2suYzogTGlrZXdpc2UuCisJKiBzdHJlYW0uYzogTGlrZXdpc2UuCisJKiBzeXN0ZW0uYzogTGlrZXdpc2UuCisJKiB0ZXJtLmM6IExpa2V3aXNlLgorCSogdGltZS5jOiBMaWtld2lzZS4KKwkqIHV0aWwuYzogTGlrZXdpc2UuCisKKzIwMDQtMDktMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEFkZCBuZXcgZW50cmllcyBmb3IgdGltZXJfKiwgY2xvY2tfKiwgYW5kCisJbXFfKiBzeXNjYWxscywgYW5kIG5hbWVzIG9ubHkgZm9yIG5ldyBjYWxscyB1cCB0byAyNTIuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB3YWl0aWQuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfd2FpdGlkLgorCisJKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBUYWtlIHNlY29uZCBhcmcgZ2l2aW5nIGluZGV4IG9mIGZsYWdzCisJYXJndW1lbnQuCisJKiBkZWZzLmg6IFVwZGF0ZSBwcm90b3R5cGUuCisJKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBVcGRhdGUgY2FsbGVyLgorCUFsc28gdXNlIGludGVybmFsX3dhaXQgZm9yIFNZU193YWl0aWQuCisJKiBwcm9jZXNzLmMgKHN5c193YWl0aWQpOiBEZWZpbmUgZm9yIFtMSU5VWF0gYXMgd2VsbC4KKwlEb24ndCB0d2VhayBUQ0JfU1VTUEVOREVELS1pbnRlcm5hbF93YWl0IGRvZXMgdGhhdC4KKwkod2FpdGlkX3R5cGVzKTogQ29uZGl0aW9uYWxpemUgdXNlIG9mIG5vbnN0YW5kYXJkIFBfKiBtYWNyb3MuCisKKzIwMDQtMDgtMzEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNy4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS43LTEuCisJKiBzdHJhY2Uuc3BlYzogNC41LjctMi4KKworCSogZGViaWFuL3J1bGVzOiBSZXdyaXRlIHNwYXJjNjQgY2hhbmdlIG9mIDIwMDQtMDctMTIuCisJQWx3YXlzIGRvIGVhY2ggYnVpbGQgaW4gYSBzZXBhcmF0ZSBidWlsZCBkaXJlY3RvcnkuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NzI4LgorCisJKiB0aW1lLmMgKGNsb2NrbmFtZXMpOiBVc2UgI2lmZGVmIGFyb3VuZCBDTE9DS18qIHVzZXMuCisKKwkqIHN0cmFjZS4xOiBTYXkgdGhhdCAtYyBzaG93cyBzeXN0ZW0gQ1BVIHRpbWUsIG5vdCByZWFsIHRpbWUuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NDM4LgorCisJKiBzeXNjYWxsLmMgKGR1bXBpbyk6IE1hdGNoIHByZWFkIGFuZCBwd3JpdGUgc3lzdGVtIGNhbGxzIHRvby4KKwlGaXhlcyBEZWJpYW4gYnVnICMyMzk5NDcuCisKKwkqIG5ldC5jIChzb2Nrb3B0aW9ucyk6IEFkZCBhbGwgU09fKiBtYWNyb3Mga25vd24gaW4gTGludXggMi42LjkuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMTcxNjUzLgorCisyMDA0LTA3LTEyICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzaWduYWwuYyBbTElOVVhdIChwYXJzZV9zaWdzZXRfdCk6IEZpeCBoZXggc3RyaW5ncyBwYXJzZXIuCisJRml4ZXMgUkgjMTI4MDkxLgorCisyMDA0LTA4LTMwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAobWFpbik6IERvbid0IGNhbGwgZmFrZV9leGVjdmUgdW5kZXIgLWMuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMjkxNjYuCisKKwkqIG5ldC5jIChzb2NraXBvcHRpb25zKTogQWRkIHNvbWUgb3B0aW9ucy4KKwlbU09MX0lQVjZdIChzb2NraXB2Nm9wdGlvbnMpOiBOZXcgdmFyaWFibGUuCisJKHN5c19nZXRzb2Nrb3B0LCBwcmludHNvY2tvcHQpOiBVc2UgaXQgZm9yIFNPTF9JUFY2IGxldmVsLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTI4MzkxLgorCisJKiB0aW1lLmMgKGNsb2NrbmFtZXMpOiBOZXcgdmFyaWFibGUsIHN5bWJvbGljIG5hbWVzIGZvciBjbG9ja190LgorCShzeXNfY2xvY2tfc2V0dGltZSwgc3lzX2Nsb2NrX2dldHRpbWUsIHN5c19jbG9ja19uYW5vc2xlZXApOiBVc2UgaXQuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMjkzNzguCisKKwkqIHN5c3RlbS5jIChwZXJzb25hbGl0eV9vcHRpb25zKTogSGFyZC1jb2RlIHZhbHVlcyBoZXJlLgorCURvbid0ICNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPiBhdCBhbGwuCisJRml4ZXMgUkgjMTMwOTY1IGFuZCBEZWJpYW4gYnVnICM0MDU4OC4KKworCSogZmlsZS5jIChwcmludF94YXR0cl92YWwpOiBOZXcgZnVuY3Rpb24gdG8gc2hvdyBhdHRyaWJ1dGUgdmFsdWVzLgorCShzeXNfc2V0eGF0dHIsIHN5c19mc2V0eGF0dHIsIHN5c19nZXR4YXR0ciwgc3lzX2ZnZXR4YXR0cik6IFVzZSBpdC4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEzMTE3Ny4KKworMjAwNC0wNy0xMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS42LgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS42LTEuCisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L3NwYXJjNjQgZmlsZXMuCisKKwkqIGRlYmlhbi9ydWxlczogT24gc3BhcmMtbGludXgsIGJ1aWxkIHN0cmFjZTY0IGFzIHdlbGwuCisJRnJvbSBCZW4gQ29sbGlucyA8YmNvbGxpbnNAZGViaWFuLm9yZz4uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjU0NzI4LgorCisyMDA0LTA3LTA3ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQ+CisKKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogU3luYyB3aXRoIHJlYWxpdHkuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmggKHN5c19zZW5kZmlsZTY0LCBzeXNfZnV0ZXgsIHN5c19nZXR0aWQsCisJc3lzX3NjaGVkX3NldGFmZmluaXR5LCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHksIHN5c19zZXR4YXR0ciwKKwlzeXNfbHNldHhhdHRyLCBzeXNfZnNldHhhdHRyLCBzeXNfZ2V0eGF0dHIsIHN5c19sZ2V0eGF0dHIsCisJc3lzX2ZnZXR4YXR0ciwgc3lzX2xpc3R4YXR0ciwgc3lzX2xsaXN0eGF0dHIsIHN5c19mbGlzdHhhdHRyLAorCXN5c19yZW1vdmV4YXR0ciwgc3lzX2xyZW1vdmV4YXR0ciwgc3lzX2ZyZW1vdmV4YXR0ciwKKwlzeXNfcmVtYXBfZmlsZV9wYWdlcywgc3lzX3JlYWRhaGVhZCwgc3lzX3Rna2lsbCwgc3lzX3N0YXRmczY0LAorCXN5c19mc3RhdGZzNjQsIHN5c19jbG9ja19zZXR0aW1lLCBzeXNfY2xvY2tfZ2V0dGltZSwKKwlzeXNfY2xvY2tfZ2V0cmVzLCBzeXNfY2xvY2tfbmFub3NsZWVwLCBzeXNfdGltZXJfY3JlYXRlLAorCXN5c190aW1lcl9zZXR0aW1lLCBzeXNfdGltZXJfZ2V0dGltZSk6IE5ldyBkZWNsYXJhdGlvbnMuCisJKiBsaW51eC9zcGFyYzY0L2R1bW15Mi5oLCBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgsCisJbGludXgvc3BhcmM2NC9zeXNjYWxsLmgsIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQuaCwKKwlsaW51eC9zcGFyYzY0L2Vycm5vZW50MS5oLCBsaW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oLAorCWxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaCwgbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCwKKwlsaW51eC9zcGFyYzY0L2lvY3RsZW50Mi5oLCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudC5oLAorCWxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsCisJbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oLAorCWxpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaCwgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmgsCisJbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oOiBOZXcgZmlsZXMuCisJKiBkZWZzLmggKExJTlVYU1BBUkMpOiBEZWZpbmUgYWxzbyB3aGVuIFNQQVJDNjQuCisJKExJTlVYICYmIFNQQVJDNjQpOiBTZXQgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgdG8gMy4KKwlJZ25vcmUgU0lHVFJBUCBhZnRlciBleGVjdmUgYnkgZGVmaW5pbmcgVENCX1dBSVRFWEVDVkUuCisJRGVmaW5lIHBvc3NpYmx5IG1pc3NpbmcgX19OUl9leGl0X2dyb3VwLiAgRGVjbGFyZSBnZXRydmFsMi4KKwkqIGNvbmZpZ3VyZS5hYyAoc3BhcmM2NCk6IE5ldyBhcmNoaXRlY3R1cmUgY2FzZS4KKwkqIGZpbGUuYyAoc3RhdF9zcGFyYzY0KTogTmV3IHN0cnVjdHVyZS4KKwkocHJpbnRzdGF0X3NwYXJjNjQpOiBOZXcgb3V0cHV0IHJvdXRpbmUgZm9yIHRoYXQuCisJKHByaW50c3RhdCk6IENhbGwgaXQsIGlmIHBlcnNvbmFsaXR5IGlzIDIuCisJKHByaW50c3RhdDY0KTogTGlrZXdpc2UuCisJKiB1dGlsLmM6IENvbmRpdGlvbmFsaXplIHB0cmFjZSBkZWZpbmVzIG9uIExJTlVYU1BBUkMKKwlub3QgTElOVVggJiYgU1BBUkMuCisJKFNQQVJDNjQgJiYgTElOVVgpOiBEZWZpbmUgcl9wYyB0byByX3RwYywgYW5kIFBUUkFDRV9GT09SRUdTCisJdG8gUFRSQUNFX0ZPT1JFR1M2NCBzbyB0aGF0IG1vcmUgc3BhcmMgY29kZSBjYW4gYmUgc2hhcmVkCisJYmV0d2VlbiA2NC1iaXQgYW5kIDMyLWJpdC4KKwkoX2hhY2tfc3lzY2FsbDUpOiBDb3JyZWN0IHRyYXAgbnVtYmVyIHdoZW4gU1BBUkM2NC4KKwkoUFRSQUNFX1dSSVRFe1RFWFQsREFUQX0pOiBBZGQgU1BBUkM2NCB0byBpZmRlZiBndWFyZC4KKwkoZ2V0cGMpOiBIYW5kbGUgU1BBUkM2NCAmJiBMSU5VWC4KKwkocHJpbnRjYWxsKTogTGlrZXdpc2UuCisJKGFyZyBmZXRjaGluZy9zZXR0aW5nKTogVXNlIHNhbWUgY29kZSBmb3IgU1BBUkM2NCBMSU5VWAorCWFzIGZvciBTUEFSQy4KKwkoc2V0YnB0KTogSGFuZGxlIFNQQVJDNjQgJiYgTElOVVguCisJKGNsZWFyYnB0KTogTGlrZXdpc2UuCisJKiBzaWduYWwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gU1BBUkMgYW5kCisJU1BBUkM2NC4KKwkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKKwl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKKwliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgorCShtX3NpZ2luZm8pOiBVc2Ugc2FtZSBkZWZpbml0aW9uIG9uIFNQQVJDNjQgYXMgU1BBUkMuCisJKHN5c19zaWdyZXR1cm4pOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KKwkqIHN5c2NhbGwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gU1BBUkMgYW5kCisJU1BBUkM2NC4KKwkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKKwl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKKwliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgorCShnZXRzY25vKTogVXNlIHNhbWUgc3RhdGljIHN0YXRlIG9uIFNQQVJDNjQgYXMgU1BBUkMsCisJYW5kIGFkZCBTUEFSQzY0IGhhbmRsaW5nLgorCShnZXRfZXJyb3IpOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KKwkoZm9yY2VfcmVzdWx0KTogTGlrZXdpc2UuCisJKHN5c2NhbGxfZW50ZXIpOiBMaWtld2lzZS4KKwkodHJhY2Vfc3lzY2FsbCk6IEhhbmRsZSBzeXNfc29ja2V0Y2FsbCBhbmQgc3lzX2lwYyBvbiBTUEFSQzY0CisJanVzdCBsaWtlIFNQQVJDLgorCShnZXRydmFsMik6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgorCSogcHJvY2Vzcy5jOiBDb25kaXRpb25hbGl6ZSBwdHJhY2UgZGVmaW5lcyBvbiBTUEFSQyBhbmQKKwlTUEFSQzY0LgorCShTUEFSQzY0ICYmIExJTlVYKTogRGVmaW5lIHJfcGMgdG8gcl90cGMsIGFuZCBQVFJBQ0VfRk9PUkVHUworCXRvIFBUUkFDRV9GT09SRUdTNjQgc28gdGhhdCBtb3JlIHNwYXJjIGNvZGUgY2FuIGJlIHNoYXJlZAorCWJldHdlZW4gNjQtYml0IGFuZCAzMi1iaXQuCisJKGNoYW5nZV9zeXNjYWxsKTogSGFuZGxlIExJTlVYICYmIFNQQVJDNjQuCisJKHN0cnVjdF91c2VyX29mZnNldHMpOiBJZmRlZiBvdXQgdGhvc2Ugd2hpY2ggZG8gbm90IGV4aXN0CisJb24gU1BBUkM2NC4KKwkqIG5ldC5jIChzeXNfcGlwZSk6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgorCSogaW9jdGwuYzogRml4IGluaXRpYWxpemVyIHR5cG8gZm9yIG5pb2N0bGVudHMyLCB3YXMKKwluaW9jdGxlbnRzMSBieSBhY2NpZGVudC4KKworMjAwNC0wNi0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9leGVjKTogTW92ZSBUQ0JfV0FJVEVYRUNWRSBoYW5kbGluZyBoZXJlLgorCShzeXNfZXhlY3ZlKTogUmVtb3ZlIGl0IGhlcmUuCisKKzIwMDQtMDctMTIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oLgorCisJKiBkZWJpYW4vY29udHJvbCAoU2VjdGlvbik6IE1vdmUgdG8gdXRpbHMsIG1hdGNoaW5nIERlYmlhbiBvdmVycmlkZS4KKworCSogbmV0LmMgKGFkZHJmYW1zKTogTWFrZSB2YXJpYWJsZSBnbG9iYWwuCisJKiBzb2NrLmMgKHNvY2tfaW9jdGwpOiBEZWNvZGUgdGhlIGFyZ3VtZW50cyBmb3IgU0lPQ0dJRk5BTUUsCisJU0lPQ0dJRklOREVYLCBhbmQgU0lPQ0dJRkNPTkYuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMjY5MTcuCisKKwkqIGxpbnV4L2lvY3Rsc29ydC5jOiBBZGQgc29tZSAjaW5jbHVkZXMuCisJW1BPV0VSUENdOiBLbHVkZ2Ugb3V0IGhpZ2ggYml0cy4KKwkqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQgdXNpbmcgUkhFTDMgaGVhZGVycy4KKwkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDQtMDctMTEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBSZXBsYWNlIGFzbSB3aXRoICRhc20gaW4gYWxsIHBsYWNlcy4KKworCSogY29uZmlndXJlLmFjOiBBZGQgSTM4NiBhcyBBTV9DT05ESVRJT05BTC4KKwkqIE1ha2VmaWxlLmFtIFtMSU5VWF06IEFkZCBtYWludGFpbmVyLW1vZGUgcnVsZXMgdG8gcmVnZW5lcmF0ZQorCXRoZSBpb2N0bGVudC5oIGZpbGUuCisKKzIwMDQtMDctMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHJlc291cmNlLmMgKHN5c19xdW90YWN0bCk6IFRydW5jYXRlIGZpcnN0IGFyZ3VtZW50IHRvIDMyIGJpdHMsIHNpbmNlCisJdGhhdCdzIHdoYXQgdGhlIGtlcm5lbCB3aWxsIGRvLgorCisyMDA0LTA3LTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9pb2N0bGVudC5zaDogVGFrZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgdG8gdXNlIGFzIGRpcmVjdG9yeQorCW5hbWUgaW4gcGxhY2Ugb2YgYGFzbScuCisKKzIwMDQtMDYtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNS4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuNS0xLgorCisyMDA0LTA2LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKHN5c2NhbGxfZml4dXApIFtMSU5VWCAmJiBYODZfNjRdOiBGb3IgMzItYml0IHByb2Nlc3MsCisJc2lnbiBleHRlbmQgdGhlIGxvdyAzMiBiaXRzIG9mIFJBWCB0byA2NCBiaXRzLgorCUZpeGVzIFJIIzEyNjU0Ny4KKworCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpOiBbTElOVVggJiYgWDg2XzY0XTogRml4IFJBWCo0IC0+IFJBWCo4LgorCisyMDA0LTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjQuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjQtMS4KKworCSogbmV0LmMgKGRvbWFpbnMpOiBBZGQgbWFueSBQRl8qIHZhbHVlcyAjaWZkZWYgUEZfKi4KKwkoYWRkcmZhbXMpOiBBZGQgbWFueSBBRl8qIHZhbHVlcyAjaWZkZWYgQUZfKi4KKwlGaXhlcyBEZWJpYW4gYnVnICMyNTA1MDYuCisKKzIwMDQtMDUtMDIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGxpbnV4L2lvY3Rsc29ydC5jIChjb21wYXJlKTogV2hlbiBpb2N0bCBjb2RlcyBlcXVhbCwgY29tcGFyZQorCW5hbWVzLgorCShtYWluKTogUHJpbnQgYSBub3RlIHRoYXQgcHJvZ3JhbSBvdXRwdXQgaXMgZ2VuZXJhdGVkIGJ5CisJaW9jdGxzb3J0LgorCSogbGludXgvaW9jdGxlbnQuc2g6IEJ1aWxkIHRoZSBsaXN0IG9mIGlvY3RscyBkZWZpbmVkIGluCisJbGludXgvZmIuaCAoMHg0Ni4uKSwgbGludXgva2QuaCAoMHg0Qi4uKSwgbGludXgvY2Ryb20uaCAoMHg1My4uKSwKKwlhc20vaW9jdGxzLmggKDB4NTQuLiksIGxpbnV4L3Z0LmggKDB4NTYuLiksIGxpbnV4L3ZpZGVvdGV4dC5oCisJKDB4NzEuLiksIGxpbnV4L3ZpZGVvdGV4dC5oICgweDcyLi4pLCBhc20vc29ja2lvcy5oICgweDg5Li4pLAorCWxpbnV4L3NvY2tpb3MuaCAoMHg4OS4uKSwgbGludXgvd2lyZWxlc3MuaCAoMHg4Qi4uKS4KKwkqIGxpbnV4L2lvY3RsZW50Lmg6IFJlZ2VuZXJhdGVkIGZyb20gbGludXgtMi42LjUuCisJRml4ZXMgUkgjMTIyMjU3LgorCisyMDA0LTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIGFtZDY0LgorCUZpeGVzIERlYmlhbiBidWcgIzI0NjU2OC4KKworCSogc3RyYWNlLmMgKG1haW4pIFtMSU5VWF06IEV4cGFuZCBUQ0JUQUIgYXMgbmVjZXNzYXJ5IGZvciB0aHJlYWRzCisJYXR0YWNoZWQuICBBdHRhY2ggdGhyZWFkcyBvbmx5IHVuZGVyIC1mLiAgU2V0IFRDQl9GT0xMT1dGT1JLIGluIHRoZW0uCisJKGV4cGFuZF90Y2J0YWIpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgLi4uCisJKiBwcm9jZXNzLmMgKGZvcmtfdGNiKTogLi4uIGhlcmUsIGNhbGwgdGhhdC4KKwkqIGRlZnMuaDogRGVjbGFyZSBleHBhbmRfdGNidGFiLgorCisyMDA0LTA0LTE5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHByaW50c3RhdHVzKTogQWRkIGEgc3BhY2UgYmVmb3JlIHwgaW4gb3V0cHV0LgorCisyMDA0LTA0LTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWM6IFZlcnNpb24gNC41LjMuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjMtMS4KKworMjAwNC0wMy0xOCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogcmVzb3VyY2UuYyAoc3lzX3F1b3RhY3RsKSBbTElOVVhdOiBDYXN0IGFyaXRobWV0aWMgc2hpZnQgb3BlcmFuZAorCWZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLCB0byBmaXggb3V0cHV0IG9mIHRoZSBxdW90YWN0bCBjb21tYW5kCisJcGFyc2VyLgorCUZpeGVzIFJIIzExODY5NC4KKworMjAwNC0wNC0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvczM5MC9pb2N0bGVudC5oLCBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBVcGRhdGUgREFTRCBpb2N0bHMuCisJRnJvbSBNYXhpbSBTaGNoZXR5bmluIDxtYXhpbUBkZS5pYm0uY29tPi4KKworCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgPG1xdWV1ZS5oPi4KKwkqIGlwYy5jIChzeXNfbXFfb3BlbiwgcHJpbnRtcWF0dHIpIFshIEhBVkVfTVFVRVVFX0hdOiBEb24ndCB0cnkgdG8KKwlkZWNvZGUgc3RydWN0IG1xX2F0dHIuCisJKiBORVdTOiBNZW50aW9uIG1xIHN1cHBvcnQuCisKKwkqIGxpbnV4L3N5c2NhbGwuaDogU3VwcG9ydCBuZXcgbXFfKiBzeXNjYWxscyBvbiBMaW51eC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9kdW1teS5oOiBMaWtld2lzZS4KKwkqIGlwYy5jOiBMaWtld2lzZS4KKwkqIHRpbWUuYyAocHJpbnRzaWdldmVudCk6IEhhbmRsZSBTSUdFVl9USFJFQUQuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMjA3MDEuCisKKzIwMDQtMDQtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIG5ldC5jIChtc2dfZmxhZ3MpOiBHcm9rIE1TR19GSVgsIE1TR19TWU4sIE1TR19SU1QsIE1TR19OT1NJR05BTCwKKwlNU0dfTU9SRS4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEyMDU0MS4KKworCSogcHJvY2Vzcy5jIChwcmludHN0YXR1cyk6IE1hc2sgb3V0IGJpdHMgcHJlc2VudGVkIHN5bWJvbGljYWxseSwgYW5kCisJcHJpbnQgInwgMHhubm4iIGlmIHRoZSByZW1haW5pbmcgYml0cyBhcmUgbm90IGFsbCB6ZXJvLgorCUZpeGVzIERlYmlhbiBidWcgIzI0MDA2Mi4KKworCSogcHJvY2Vzcy5jIChwcmludF9hZmZpbml0eWxpc3QpOiBSZXdyaXR0ZW4gdG8gaGFuZGxlIGluZGlyZWN0IHZhbHVlcy4KKwkoc3lzX3NjaGVkX3NldGFmZmluaXR5LCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHkpOiBVcGRhdGUgY2FsbGVycy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzExODY4NS4KKworCSogYWNpbmNsdWRlLm00OiBRdW90ZSBmaXJzdCBhcmd1bWVudCB0byBBQ19ERUZVTiBpbiBhbGwgY2FzZXMuCisKKzIwMDQtMDQtMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKSBbTElOVVhdOiBXaGVuIGF0dGFjaGluZyBmb3IgLXAsIGxvb2sgaW4KKwkvcHJvYy9QSUQvdGFzayBmb3IgYWxsIHRocmVhZHMgYW5kIGF0dGFjaCB0aGVtIGFzIHByZXN1bWVkCisJQ0xPTkVfVEhSRUFEIGNoaWxkcmVuLgorCSogTkVXUzogTWVudGlvbiB0aGUgZmVhdHVyZS4KKwlGaXhlcyBSSCMxMjA0NjIuCisKKzIwMDQtMDMtMDIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHV0aWwuYyAoc2V0YnB0KTogRml4IG9uZSBtaXNzZWQgc3BvdCB0byB1c2UgbmV3IGFyZzBfaW5kZXggbWFjcm8uCisJRnJvbSBNaWNoYWVsIEhvbHpoZXUgPEhPTFpIRVVAZGUuaWJtLmNvbT4uCisKKwkqIGRlYmlhbi9jb250cm9sIChTdGFuZGFyZHMtVmVyc2lvbik6IFVwZGF0ZSB0byAzLjYuMS4KKworMjAwNC0wMy0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4yLgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS4yLTEuCisKKwkqIHN0cmFjZS5jIChtYWluKTogQXZvaWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVycnVucyBmcm9tIGx1ZGljcm91cworCWFyZ3VtZW50cyBvciBQQVRIIHZhbHVlcy4KKwkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBCYWlsIG91dCBmb3IgdG9vLWxvbmcgc3RyaW5nLgorCisJKiBtZW0uYyBbTElOVVhdOiA8YXNtL21tYW4uaD4gLT4gPGxpbnV4L21tYW4uaD4KKwlGaXhlcyBEZWJpYW4gYnVnICMyMjMyMDcuCisKKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogQ29weSBsaW51eC9zeXNjYWxsLmggZGVjbHMgb2Ygc3lzX3NjaGVkXyouCisKKwkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGBzdHJ1Y3QgdXNlcl9kZXNjJyBpbiA8YXNtL2xkdC5oPi4KKwkqIHByb2Nlc3MuYyBbSEFWRV9TVFJVQ1RfVVNFUl9ERVNDXTogVXNlIHN0cnVjdCB1c2VyX2Rlc2MgaW4gcGxhY2Ugb2YKKwlzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcy4KKwkqIG1lbS5jIFtIQVZFX1NUUlVDVF9VU0VSX0RFU0NdOiBMaWtld2lzZS4KKworCSogc3lzdGVtLmMgKHN5c2N0bF92bSk6IENvbmRpdGlvbmFsaXplIFZNXyogbWFjcm8gdXNlcywgYWRkIHNvbWUgbW9yZS4KKwlGcm9tIFRpbSBZYW1pbiA8cGxhc21hcm9vQGdlbnRvby5vcmc+LgorCisJKiBwcm9jZXNzLmMgKHN5c19leGVjdmUpOiBDbGVhciBpbnN0ZWFkIG9mIHNldCBUQ0JfV0FJVEVYRUNWRSBvbgorCWVycmluZyBzeXNjYWxsLgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBgc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnCisJYW5kIGBzdHJ1Y3QgaWE2NF9mcHJlZycgaW4gPHN5cy9wdHJhY2UuaD4uCisJKiB1dGlsLmMsIHByb2Nlc3MuYywgc3lzY2FsbC5jLCBzaWduYWwuYzogV29yayBhcm91bmQgY29uZmxpY3RzIGJldHdlZW4KKwk8c3lzL3B0cmFjZS5oPiBhbmQgPGxpbnV4L3B0cmFjZS5oPiBmb3IgZGVmaW5pbmcgdGhvc2UgdHlwZXMuCisKKwkqIHByb2Nlc3MuYyAoc3RydWN0X3VzZXJfb2Zmc2V0cykgW0xJTlVYICYmIElBNjRdOiBDb25kaXRpb25hbGl6ZQorCVBUX0FSX0NTRCBhbmQgUFRfQVJfU1NEIHVzZXMgaW4gY2FzZSBvZiBvbGRlciBrZXJuZWwgaGVhZGVycy4KKworCSogdXRpbC5jIFtMSU5VWF0gKGFyZzBfaW5kZXgsIGFyZzFfaW5kZXgpOiBOZXcgbWFjcm9zLgorCVtTMzkwIHx8IFMzOTBYXTogRGVmaW5lIHRoZW0gd2l0aCBpbnZlcnRlZCB2YWx1ZXMuCisJKHNldGJwdCk6IFVzZSB0aGVtIGZvciB1X2FyZyBpbmRpY2VzLgorCisyMDA0LTAyLTI2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgorCisJKiBkZWZzLmggW0xJTlVYICYmIElBNjRdOiBEZWNsYXJlIGdldHJ2YWwyIGFsc28gb24gSUE2NC4KKwkqIG5ldC5jIChzeXNfcGlwZSkgW0xJTlVYICYmIElBNjRdOiBGb3IgSUE2NCB1c2UgdGhlIHR3byByZXR1cm4gdmFsdWVzLgorCSogc3lzY2FsbC5jIChnZXRydmFsMikgW0xJTlVYICYmIElBNjRdOiBJbXBsZW1lbnQgZm9yIElBNjQuCisKKzIwMDQtMDMtMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2R1bW15LmggKHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9zZXRwYXJhbSwKKwlzeXNfc2NoZWRfZ2V0cGFyYW0sIHN5c19zY2hlZF9zZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCisJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKTogUmVtb3ZlIG1hY3Jvcy4KKwkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCBzeXNfc2NoZWRfc2V0cGFyYW0sCisJc3lzX3NjaGVkX2dldHBhcmFtLCBzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAorCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKTogTmV3IGZ1bmN0aW9ucy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzExNjk5MC4KKworMjAwNC0wMi0yMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBzb21lIHN5c2NhbGxzLgorCUZyb20gUmFuZG9scGggQ2h1bmcgPHRhdXNxQGRlYmlhbi5vcmc+LgorCUZpeGVzIERlYmlhbiBidWcgIzIzMTYzMi4KKworMjAwMy0xMi0zMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfZXhpdCk6IEZvciBpYTY0LCBhbHNvIHJlY29nbml6ZSBJQS0zMiAyNTIKKwlhcyBleGl0X2dyb3VwKCkuCisJKGNoYW5nZV9zeXNjYWxsKTogRm9yIElBNjQsIGFsc28gc3VwcG9ydCBjaGFuZ2luZyBJQS0zMiBzeXNjYWxscy4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IEZvciBJQTY0LCBhbHNvIHJlY29nbml6ZSBJQS0zMgorICAgICAgICBzeXNjYWxsIDI1MiAoZXhpdF9ncm91cCkgYXMgYW4gaW50ZXJuYWxfZXhpdCgpIHN5c2NhbGwuCisJKiB1dGlsLmMgKFNZU19mb3JrKTogRm9yIElBNjQsIGRlZmluZSB0aGVtIHRvIHRoZSBJQS0zMiBzeXNjYWxsCisJbnVtYmVyLgorCShTWVNfdmZvcmspOiBMaWtld2lzZS4KKwkoYXJnX3NldHVwKTogRm9yIElBNjQgdmVyc2lvbiwgYWxzbyBzdXBwb3J0IElBLTMyIHN5c2NhbGxzLgorCShnZXRfYXJnMCk6IExpa2V3aXNlLgorCShnZXRfYXJnMSk6IExpa2V3aXNlLgorCShzZXRfYXJnMCk6IExpa2V3aXNlLgorCShzZXRfYXJnMSk6IExpa2V3aXNlLgorCisyMDA0LTAyLTE1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+CisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBBZGQgcnRhcyBjYWxsLgorCVNoaWZ0IG11bHRpcGxleGVkIHN5c2NhbGxzIHRvIHN0YXJ0IGF0IDMwMCwgd2UgYXJlIGFscmVhZHkgYWJvdXQKKwl0byBoaXQgMjU2IHJlYWwgc3lzY2FsbHMuCisJKiBsaW51eC9zeXNjYWxsLmg6IFNZU19zb2NrZXRfc3ViY2FsbCBpcyBub3cgMzAwIGZvciBbUE9XRVJQQ10uCisKKzIwMDQtMDItMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogVXNlIFRDUC0+cGlkLCBub3QgUElELCBpbiAtcCBtZXNzYWdlLgorCUZpeGVzIERlYmlhbiBidWcgIzIyOTgwMi4KKworMjAwNC0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdOiBSZW1vdmUgYm9ndXMgdXBlZWsKKwljYWxsLgorCisJKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogRml4IHR5cG8gc3RyaWN0IC0+IHN0cnVjdC4KKwlSZXBvcnRlZCBieSBQZXR0ZXIgUmVpbmhvbGR0c2VuIDxwZXJlQGh1bmdyeS5jb20+LgorCisyMDAzLTEyLTMxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KKworCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbSUE2NF06IEZpeCB1cCByZWdpc3RlciBuYW1lIGxpc3QuCisKKzIwMDMtMTItMTQgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KKworCSogZmlsZS5jIChzeXNfZ2V0ZGVudHM2NCk6IERvbid0IGNhc3QgZF9pbm8gYW5kIGRfb2ZmIHRvIHVuc2lnbmVkIGxvbmcuCisJVXNlICVsbHUgZm9ybWF0cyBmb3IgdGhlbS4KKworCSogZmlsZS5jIFtMSU5VWF0gKGZzbWFnaWMpOiBBZGQgU1lTRlNfTUFHSUMuCisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBVcGRhdGUgdG8gaW5jbHVkZSByZWNlbnRseSBhZGRlZAorCXN5c2NhbGxzLgorCisJKiBzeXNjYWxsLmMgKGdldF9lcnJvcikgW1BPV0VSUENdOiBDYXN0IHJlc3VsdCB0byB1bnNpZ25lZCBsb25nIGZvcgorCXBwYzY0LCB3ZSB3ZXJlIG1pc3JlcG9ydGluZyBzeXNjYWxscyB0aGF0IHJlYWxseSBzdWNjZWVkZWQgYXMgaGF2aW5nCisJZmFpbGVkLgorCisyMDA0LTAxLTEzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuMTogUmVtb3ZlIGNvbW1lbnQgYWJvdXQgdmZvcmsgb24gTGludXguCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjIzMzkwLgorCisJKiBmaWxlLmMgKGRpcmVudHR5cGVzKTogRGVmaW5lIHVuZGVyIFtMSU5VWF0gYXMgd2VsbC4gIEFkZCBEVF9VTktOT1dOLgorCShzeXNfZ2V0ZGVudHM2NCkgW0xJTlVYXTogUHJpbnQgZF90eXBlIGZpZWxkLgorCisyMDAzLTEyLTE1ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJhY2UuYyAodHJhY2UpIFtXQ09SRURVTVBdOiBTaG93IGNvcmVkdW1wIHN0YXR1cyBvZiB0aGUKKwlraWxsZWQgcHJvY2VzcyBpZiBhdmFpbGFibGUuICBGaXhlcyBSSCMxMTIxMTcuCisKKzIwMDMtMTEtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMS4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuMS0xLgorCisyMDAzLTA5LTA2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBkZWZzLmggKGlvY3RsX2xvb2t1cCk6IFByb3RvdHlwZSBjaGFuZ2UuCisJKiBpb2N0bC5jIChpb2N0bF9uZXh0X21hdGNoKTogTmV3IGZ1bmN0aW9uLgorCSogZGVmcy5oOiBEZWNsYXJlIGl0LgorCSogaW8uYyAoc3lzX2lvY3RsKTogVXNlIGl0LCB0byBkaXNwbGF5IGFsbCBwb3NzaWJsZSBpb2N0bCBuYW1lcworCXdoZW4gdGhlcmUncyBtb3JlIHRoYW4gb25lIG1hdGNoLgorCSogaW9jdGwuYyAoaW9jdGxfbG9va3VwKTogTGlrZXdpc2UuCisJKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogTGlrZXdpc2UuCisJUGF0Y2ggZnJvbSBTb2xhciBEZXNpZ25lciA8c29sYXJAb3BlbndhbGwuY29tPi4KKworMjAwMy0xMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDMtMDktMDYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlGaXhlcyBmb3IgUkgjMTA1MzU5LgorCSogdXRpbC5jIChwcmludHVpZCk6IE5ldyBmdW5jdGlvbi4KKwkqIGRlZnMuaDogRGVjbGFyZSBpdC4KKwkqIGZpbGUuYyAoc3lzX2Nob3duKTogVXNlIGl0LgorCSogZmlsZS5jIChzeXNfZmNob3duKTogTGlrZXdpc2UuCisJKiBwcm9jZXNzLmMgKHN5c19zZXRyZXVpZCwgc3lzX3NldHJlZ2lkLCBzeXNfc2V0cmVzdWlkLAorCXN5c19zZXRyZXNnaWQpOiBMaWtld2lzZS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQmV0dGVyIGhhbmRsZSBnZXRnaWQzMiwgZ2V0ZXVpZDMyLCBnZXRlZ2lkMzIsCisJc2V0cmV1aWQzMiwgc2V0cmVnaWQzMiwgZ2V0Z3JvdXBzMzIsIHNldGdyb3VwczMyLCBmY2hvd24zMiwKKwlzZXRyZXN1aWQzMiwgZ2V0cmVzdWlkMzIsIHNldHJlc2dpZDMyLCBnZXRyZXNnaWQzMiwgY2hvd24zMiwKKwlzZXR1aWQzMiwgc2V0Z2lkMzIsIHNldGZzdWlkMzIsIHNldGZzZ2lkMzIuCisJKiBwcm9jZXNzLmMgW0xJTlVYXTogRGVmaW5lIEdFVEdST1VQUzMyX1QuCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIpOgorCU5ldyBmdW5jdGlvbnMuCisJKiBsaW51eC9zeXNjYWxsLmggKHN5c19zZXRncm91cHMzMiwgc3lzX2dldGdyb3VwczMyKToKKwlEZWNsYXJlIHRoZW0uCisKKzIwMDMtMTEtMTEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogQmFpbCB3aXRoIHVzYWdlIGVycm9yIGZvciBtaXNzaW5nIGNvbW1hbmQgYmVmb3JlIHdlCisJb3BlbiB0aGUgLW8gZmlsZSBvciBmaWRkbGUgdWlkcy4KKworMjAwMy0xMS0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pOiBUcmVhdCBwaXBlZCBvdXRwdXQgbW9yZSBsaWtlIGZpbGUgb3V0cHV0LgorCURpc2FsbG93IC1mZiB3aXRoIHBpcGVkIG91dHB1dC4gIEZpeGVzIFJIIzEwNTM2Ni4KKwlSZXBvcnRlZCBieSBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN0cmFjZS5jICh0cHJpbnRmKTogQ2hlY2sgcmVzdWx0IG9mIHZmcHJpbnRmIGFuZCB1c2UgcGVycm9yIHdoZW4gaXQKKwlmYWlscyB3aGlsZSBub3Qgd3JpdGluZyB0byBzdGRlcnIgaXRzZWxmLiAgRml4ZXMgRGViaWFuIGJ1ZyAjMjE4NzYyLgorCisJKiBuZXQuYyAocHJpbnRzb2NrKTogRml4IHR5cG8gaW4gI2lmZGVmIEFGX05FVExJTksuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworMjAwMy0xMS0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKSBbTElOVVhdOiBDYWxjdWxhdGUgT05FX1RJQ0sgb25jZSB1c2luZworCXNldGl0aW1lciByYXRoZXIgdGhhbiBoYXJkLWNvZGluZyBhIHZhbHVlIGJhc2VkIG9uIEhaLgorCUZpeGVzIFJIIzEwODAxMiwgcmVwb3J0ZWQgYnkgRmxvcmlhbiBMYSBSb2NoZSA8bGFyb2NoZUByZWRoYXQuY29tPi4KKworMjAwMy0xMC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLjE6IEZpeGVkIGEgZmV3IHNwZWxsaW5nIGVycm9ycy4KKwlGaXhlcyBEZWJpYW4gYnVnICMyMTcwMDguCisKKwkqIHN5c2NhbGwuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCB3YXMgYnJva2VuLgorCisyMDAzLTEwLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRG9uJ3Qgc3VzcGVuZCBwYXJlbnQgd2hlbiBjYWxsIHJlcXVlc3RlZAorCWEgc3BlY2lmaWMgUElEIHRoYXQgaXMgbm90IGEgdHJhY2VkIGNoaWxkLgorCisJKiBzaWduYWwuYyBbTElOVVhdIChwYXJzZV9zaWdzZXRfdCk6IFJld3JpdGUgdG8gcHJvY2VzcyBoZXggc3RyaW5ncworCWZyb20gcmlnaHQgdG8gbGVmdCBzbyB3ZSBkb24ndCBoYXZlIHRvIHByZXN1bWUgdGhlIHNpemUuCisJUmVwb3J0ZWQgYnkgRGF2aWQgV29vZGhvdXNlIDxkd213MkByZWRoYXQuY29tPi4KKworMjAwMy0wOS0yNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbWVtLmMgKG1tYXBfcHJvdCkgW1BST1RfU0VNLCBQUk9UX0dST1dTRE9XTiwgUFJPVF9HUk9XU1VQXTogSW5jbHVkZQorCXRoZXNlIGluIHRoZSB0YWJsZSBpZiB0aGV5IGFyZSBkZWZpbmVkLgorCisyMDAzLTA5LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS0xLgorCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXTogQmFpbCBvdXQgb2YKKwlpbnN0cnVjdGlvbiBkZWNvZGluZyBicmFuY2ggaWYgVENCX0lOU1lTQ0FMTCBpcyBjbGVhci4KKwlSZXBvcnRlZCBieSA8am9jaGVuQHBlbmd1aW4tYnJlZWRlci5vcmc+LgorCisJKiBsaW51eC9pb2N0bGVudC5oOiBTd2FwIG9yZGVyIG9mIG92ZXJsb2FkZWQgVEMqIGFuZCBTTkRDVExfKiB2YWx1ZXMuCisKKzIwMDMtMDktMjMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5zcGVjOiBPbiBwcGM2NCAobWF5YmUgb3RoZXJzIGxhdGVyKSwgY3JlYXRlIGFuIHN0cmFjZTY0CisJcGFja2FnZSBhcyB3ZWxsIGNvbnRhaW5pbmcganVzdCAvdXNyL2Jpbi9zdHJhY2U2NC4KKworCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2spOiBQcmludCBSVF8ldSBmb3IgX19TSUdSVE1JTi4uX19TSUdSVE1BWC4KKwlGaXhlcyBSSCMxMDQzNjUuCisKKzIwMDMtMDgtMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IG1sb2NrIGFyZ3VtZW50IGNvdW50LiAgRml4ZXMgUkgjMTAxNDk5LgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisyMDAzLTA3LTI4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KKworCSogZGVmcy5oIChBTElHTjY0KTogRGVmaW5lIGZvciBNSVBTLgorCSogaW8uYyAoUFJFQURfT0ZGU0VUX0FSRyk6IERlZmluZS4KKwkoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogVXNlIGl0LgorCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbU0hdOiBDaGVjayB3aGV0aGVyIFJFR19YRFJFRzAKKwlpcyBkZWZpbmVkLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oIChwcmVhZCwgcHdyaXRlKTogVGFrZSBzaXggYXJndW1lbnRzLgorCSh0cnVuY2F0ZTY0LCBmdHJ1bmNhdGU2NCk6IFByZXR0eS1wcmludC4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oIChwcmVhZCwgcHdyaXRlKTogVGFrZSBzaXggYXJndW1lbnRzLgorCSh0cnVuY2F0ZTY0LCBmdHJ1bmNhdGU2NCk6IFRha2UgZm91ciBhcmd1bWVudHMuCisKKzIwMDMtMDctMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTkuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk5LTEuCisKKzIwMDMtMDctMTUgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KKworCSogaXBjLmM6IEFkZCBTSE1fSFVHRVRMQiBmaWVsZC4KKwlNYXNrIG91dCBwZXJtaXNzaW9uIGJpdHMgaW4gbXNnZ2V0LCBzZW1nZXQgYW5kIHNobWdldCBiZWZvcmUKKwkJcHJpbnRpbmcgcmVzb3VyY2VfZmxhZ3MuCisJTWFzayBleGVjdXRlIHBlcm1pc3Npb24gYml0cyAoZXZlbiB0aG91Z2ggd2UgZG9udCBjdXJyZW50bHkKKwkJdXNlIHRoZW0pLgorCisyMDAzLTA3LTE3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCAodGdraWxsKTogTmV3IGF0IDI1MC4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiB0cnVuY2F0ZTY0L2Z0cnVuY2F0ZTY0IG5lZWQgMyBhcmdzLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogSGFuZGxlIHN0YXRmczY0LCBmc3RhdGZzNjQsIHV0aW1lcy4KKwkqIGZpbGUuYyAocHJpbnRzdGF0ZnMpOiBQcmludCBmX2ZzaWQgYW5kIGZfZnJzaXplLgorCVtMSU5VWF0gKHByaW50c3RhdGZzNjQsIHN5c19zdGF0ZnM2NCwgc3lzX2ZzdGF0ZnM2NCk6IE5ldyBmdW5jdGlvbnMuCisJKiBsaW51eC9zeXNjYWxsLmg6IEFkZCBkZWNscy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCisyMDAzLTA3LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaCAodGdraWxsKTogTmV3IGF0IDEyMzUuCisKKzIwMDMtMDctMDUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHR3aWRkbGUubmV0PgorCisJKiBwcm9jZXNzLmMgKHN5c19jbG9uZSk6IE9yZGVyIGFyZ3VtZW50cyBmb3IgYWxwaGEgdGhlIHNhbWUgYXMgeDg2XzY0LgorCSogc3lzY2FsbC5jIChFUkVTVEFSVF9SRVNUQVJUQkxPQ0spOiBOZXcuCisJKHRyYWNlX3N5c2NhbGwpOiBQcmludCBpdC4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaCAob3NmX3N5c2NhbGwpOiBOYW1lIHByb3Blcmx5LgorCShvc2Zfc2V0X3Byb2dyYW1fYXR0cmlidXRlcyk6IEZpeCB0eXBvLgorCShvc2ZfbmZzc3ZjKTogTGlrZXdpc2UuCisJKG9zZl9zaWdzZW5kc2V0KTogTGlrZXdpc2UuCisJKGdldGRlbnRzNjQsIGdldHRpZCwgcmVhZGFoZWFkLCB0a2lsbCwgc2V0eGF0dHIsIGxzZXR4YXR0ciwgZnNldHhhdHRyLAorCWdldHhhdHRyLCBsZ2V0eGF0dHIsIGZnZXR4YXR0ciwgbGlzdHhhdHRyLCBsbGlzdHhhdHRyLCBmbGlzdHhhdHRyLAorCXJlbW92ZXhhdHRyLCBscmVtb3ZleGF0dHIsIGZyZW1vdmV4YXR0ciwgZnV0ZXgsIHNjaGVkX3NldGFmZmluaXR5LAorCXNjaGVkX2dldGFmZmluaXR5LCB0dXhjYWxsLCBpb19zZXR1cCwgaW9fZGVzdHJveSwgaW9fZ2V0ZXZlbnRzLAorCWlvX3N1Ym1pdCwgaW9fY2FuY2VsLCBleGl0X2dyb3VwLCBsb29rdXBfZGNvb2tpZSwgZXBvbGxfY3JlYXRlLAorCWVwb2xsX2N0bCwgZXBvbGxfd2FpdCwgcmVtYXBfZmlsZV9wYWdlcywgc2V0X3RpZF9hZGRyZXNzLAorCXJlc3RhcnRfc3lzY2FsbCwgZmFkdmlzZSwgdGltZXJfY3JlYXRlLCB0aW1lcl9zZXR0aW1lLCB0aW1lcl9nZXR0aW1lLAorCXRpbWVyX2dldG92ZXJydW4sIHRpbWVyX2RlbGV0ZSwgY2xvY2tfc2V0dGltZSwgY2xvY2tfZ2V0dGltZSwKKwljbG9ja19nZXRyZXMsIGNsb2NrX25hbm9zbGVlcCwgc2VtdGltZWRvcCk6IE5ldy4KKworMjAwMy0wNy0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc2lnbmFsLmMgKHN5c190Z2tpbGwpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB0Z2tpbGwuCisKKzIwMDMtMDYtMjcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIHR5cGUgYHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCcuCisJKiBmaWxlLmMgKGNvbnZlcnRvbGRzdGF0LCBwcmludG9sZHN0YXQpOiBEZWZpbmUgdW5kZXIKKwlbTElOVVggJiYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVRdIHJhdGhlciB0aGFuIGEgbGlzdCBvZiBhcmNocy4KKwkoc3lzX29sZHN0YXQsIHN5c19vbGRmc3RhdCwgc3lzX29sZGxzdGF0KTogTGlrZXdpc2UuCisJKiBsaW51eC9kdW1teS5oIFshIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUXQorCShzeXNfb2xkc3RhdCwgc3lzX29sZGZzdGF0LCBzeXNfb2xkbHN0YXQpOiAjZGVmaW5lIHRvIHByaW50YXJncy4KKworMjAwMy0wNi0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjOiBTSE1FRElBIC0+IFNINjQKKwkqIGRlZnMuaDogTGlrZXdpc2UuCisJKiBtZW0uYzogTGlrZXdpc2UuCisJKiBwcm9jZXNzLmM6IExpa2V3aXNlLgorCSogc29jay5jOiBMaWtld2lzZS4KKwkqIHN5c2NhbGwuYzogTGlrZXdpc2UuCisJKiB1dGlsLmM6IExpa2V3aXNlLgorCSogbGludXgvc2htZWRpYS9zeXNjYWxsZW50Lmg6IE1vdmVkIHRvIC4uLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IC4uLiBoZXJlLgorCisJKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGNhbm9uaWNhbCB2ZXJzaW9uLCB0aW1lc3RhbXAgMjAwMy0wNi0xNy4KKwkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLgorCisJKiBzeXNjYWxsLmMgKGZvcmNlX3Jlc3VsdCkgW0xJTlVYXSBbQVJNXTogRml4IHZhcmlhYmxlIHVzYWdlLgorCUZyb206IEpvc2h1YSBOZWFsIDx0aW5hcmFAbmV0cGlwZWxpbmUubmV0Pi4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19mdXRleCk6IEdyb2sgRlVURVhfUkVRVUVVRSBhbmQgcHJpbnQgNXRoIGFyZy4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogc3lzX2Z1dGV4IGFyZ3VtZW50IGNvdW50IGlzIG5vdyA1LCBub3QgNC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGcm9tIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+LgorCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbUzM5MCB8fCBTMzkwWF06IEZpeCBvbGQgdnMgbmV3IG1vZGUgZGV0ZWN0aW9uLgorCUZyb20gTWljaGFlbCBIb2x6aGV1IDxIT0xaSEVVQGRlLmlibS5jb20+LgorCisyMDAzLTA2LTIzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBuZXQuYyAoc3lzX3NvY2tldCk6IERlY29kZSBwcm90b2NvbCBmb3IgUEZfSU5FVDYgc2FtZSBhcyBQRl9JTkVULgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKzIwMDMtMDYtMTAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTguCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk4LTEuCisKKzIwMDMtMDYtMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogVXBkYXRlIG1hbnkgc3lzY2FsbHMuCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IFVwZGF0ZSBbUzM5MFhdIHZhbHVlLgorCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogVXBkYXRlIG1hbnkgc3lzY2FsbHMuCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IFVwZGF0ZSBbUzM5MF0gdmFsdWUuCisKKwkqIGxpbnV4L3NobWVkaWEvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KKwlGcm9tIFN0ZXBoZW4gVGhvbWFzIDxzdGVwaGVuLnRob21hc0BzdXBlcmguY29tPi4KKworCSogc3RyYWNlLmMgKHRyYWNlKTogUHJpbnQgYSBtZXNzYWdlIGFuZCBuZXdsaW5lIGZvciBhIFdJRkVYSVRFRCByZXBvcnQKKwlmcm9tIHRoZSBwcm9jZXNzIHdlIGp1c3QgcHJpbnRlZCBhbiB1bnRlcm1pbmF0ZWQgc3lzY2FsbCBsaW5lIGZvci4KKworMjAwMy0wNi0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdXRpbC5jIChwcmludGNhbGwpIFtMSU5VWF06IEZpeCB0eXBvIFtJQTYyXSAtPiBbSUE2NF0uCisKKwlMaW51eC9BUk0gaW1wcm92ZW1lbnRzIGZyb20gUnVzc2VsbCBLaW5nIDxybWtAYXJtLmxpbnV4Lm9yZy51az46CisJKiBkZWZzLmggW0xJTlVYXSAoVENCX1dBSVRFWEVDVkUpOiBEZWZpbmUgZm9yIFtBUk1dIHRvby4KKwkqIHByb2Nlc3MuYyAoc3RydWN0X3VzZXJfb2Zmc2V0cykgW0xJTlVYXSBbQVJNXTogQWRkIEFSTSByZWdpc3RlcnMuCisJKiBzaWduYWwuYyBbTElOVVhdIChzeXNfc2lncmV0dXJuKSBbQVJNXTogTmV3IGNhc2UuCisJKiBzeXNjYWxsLmMgKGdldF9zY25vLCBzeXNjYWxsX2ZpeHVwKSBbTElOVVhdIFtBUk1dOiBDYXNlIHJld3JpdHRlbi4KKwkoZ2V0X2Vycm9yKSBbTElOVVhdIFtBUk1dOiBVcGRhdGUuCisJKHN5c2NhbGxfZW50ZXIpIFtMSU5VWF0gW0FSTV06IE5ldyBjYXNlLgorCSogdXRpbC5jIChwcmludGNhbGwpIFtMSU5VWF0gW0FSTV06IE5ldyBjYXNlLgorCisJKiBkZWJpYW4vY29udHJvbCAoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy41LjEwLgorCisJKiBzdHJhY2UuYyAobWFpbik6IEluIFBBVEggc2VhcmNoLCBhY2NlcHQgb25seSBhIHJlZ3VsYXIgZmlsZSB3aXRoCisJZXhlY3V0ZSBiaXRzIHNldC4gIEZpeGVzIERlYmlhbiBidWcgIzEzNzEwMy4KKworMjAwMy0wNi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pOiBTZXQgLXEgd2hlbiBnaXZlbiAtbyBhbmQgbm90IC1wLCBhbmQgbm90IHdoZW4gbm90CisJZ2l2ZW4gLW8sIHRvIG1hdGNoIHdoYXQgdGhlIG1hbiBwYWdlIGFsd2F5cyBzYWlkLgorCUZpeGVzIERlYmlhbiBidWcgIzQ3MTEzLCAjMTUzNjc4LgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40Ljk3LgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Ny0xLgorCisJKiBjb25maWd1cmUuYWMsIGRlZnMuaCwgbWVtLmMsIHByb2Nlc3MuYywgc29jay5jLCBzeXNjYWxsLmMsIHV0aWwuYzoKKwlNZXJnZWQgaW4gU0htZWRpYSBwb3J0IGZyb20gU3RlcGhlbiBUaG9tYXMgPHN0ZXBoZW4udGhvbWFzQHN1cGVyaC5jb20+LgorCisJKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGZ0cDovL2Z0cC5nbnUub3JnL3B1Yi9nbnUvY29uZmlnLywKKwl0aW1lc3RhbXAgMjAwMy0wNS0yMi4KKwkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLCB0aW1lc3RhbXAgMjAwMy0wNS0yNC4KKworMjAwMy0wNS0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oIChzdHJ1Y3QgdGNiKTogTmV3IG1lbWJlciBgbnpvbWJpZXMnLgorCSogc3RyYWNlLmMgKGFsbG9jdGNiKTogSW5pdGlhbGl6ZSBpdC4KKwkoZHJvcHRjYik6IEluY3JlbWVudCBvdXIgcGFyZW50J3Mgem9tYmllIGNvdW50LgorCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogRG9uJ3QgZ28gaW50byBUQ0JfU1VTUEVOREVEIGlmIHRoZQorCXByb2Nlc3MgaGFzIHpvbWJpZXMgaXQgY2FuIHJlYXAuICBPbiB0aGUgd2F5IG91dCwgaWYgd2UgcmVhcGVkCisJYW4gdW50cmFjZWQgcHJvY2VzcywgZGVjcmVtZW50IHRoZSB6b21iaWUgY291bnQuCisKKwkqIHByb2Nlc3MuYyAoc3lzX2Nsb25lKTogTWFzayBDU0lHTkFMIG91dCBvZiBmbGFncyBhbmQgcHJpbnQgdGhhdAorCXNlcGFyYXRlbHkgdXNpbmcgc2lnbmFtZS4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSkgW1RDQl9DTE9ORV9USFJFQURdOiBVc2UgQVJHX0ZMQUdTIGluc3RlYWQKKwlvZiBsaXRlcmFsIDAgZm9yIGluZGV4LiAgQ29uc3VsdCB0aGUgcmlnaHQgZmxhZ3Mgd2l0aG91dCBjbG9iYmVyaW5nCisJYW55dGhpbmcgd2hlbiB3ZSByZXBhcmVudCB0aGUgbmV3IGNoaWxkIHRvIHRoZSBjYWxsZXIncyBwYXJlbnQgdGhyZWFkLgorCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogRml4IHN5c19jbG9uZSBhcmd1bWVudCBjb3VudC4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIHByb2Nlc3MuYyBbTElOVVhdIFtTMzkwIHx8IFMzOTBYXSAoQVJHX0NUSUQsIEFSR19UTFMpOiBGaXggc3dhcHBlZAorCWluZGljZXMuICBSZXBvcnRlZCBieSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPi4KKworCSogc2lnbmFsLmMgW0xJTlVYXSAoU0lfU0lHSU8sIFNJX1RLSUxMKTogTmV3IG1hY3Jvcy4KKwlbTElOVVggfHwgU1ZSNF0gKHNpZ2luZm9fY29kZXMpOiBBZGQgc3RyaW5ncyBmb3IgdGhlbS4KKworCSogcHJvY2Vzcy5jIChwcmludF9hZmZpbml0eWxpc3QpOiBGaXggbG9vcCBjb25kaXRpb24uCisJUmVwb3J0ZWQgYnkgSWFuIFdpZW5hbmQgPGlhbndAZ2VsYXRvLnVuc3cuZWR1LmF1Pi4KKworMjAwMy0wNC0xMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzY2FsbC5jIChxdWFsX2Rlc2MpOiBSZXR1cm4gemVybyBhZnRlciBwYXJzaW5nIG51bWJlci4KKwlGcm9tIFJvYiBMZXNsaWUgPHJvYkBtYXJzLm9yZz4sIGZpeGVzIERlYmlhbiBidWcgIzE4ODM3OS4KKworMjAwMy0wNC0wNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBIYW5kbGUgc2VtdGltZWRvcCBzdWJjYWxsIG9mIGlwYyBzeXNjYWxsLgorCSogbGludXgvc3lzY2FsbC5oOiBMaWtld2lzZS4KKwkqIGlwYy5jIFtMSU5VWF0gKHN5c19zZW10aW1lZG9wKTogTmV3IGZ1bmN0aW9uLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKwkqIGlwYy5jIChzeXNfc2VtZ2V0KTogTWFzayBvZmYgcGVybWlzc2lvbiBiaXRzIGZvciByZXNvdXJjZV9mbGFncy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCisyMDAzLTA0LTAxICBQaGlsaXBwZSBEZSBNdXl0ZXIgIDxwaGRtQG1hY3FlbC5iZT4KKworCSogc29jay5jLCBzdHJlYW0uYzogQ2hlY2sgI2lmZGVmIExJTlVYLCBub3QgbGludXguCisJKiBmaWxlLmM6IEFsd2F5cyBwcm92aWRlIHN5c18qYXR0ciwgcmVnYXJkbGVzcyBvZiAjaWZkZWYgWEFUVFJfQ1JFQVRFLgorCisyMDAzLTAzLTMwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40Ljk2LgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Ni0xLgorCisyMDAzLTAyLTI2ICBTdHVhcnQgTWVuZWZ5IDxzdHVhcnQubWVuZWZ5QHN0LmNvbT4KKworCVZhcmlvdXMgZml4ZXMgZm9yIFN1cGVySCBbU0hdOgorCSogbWVtLmMgKHN5c19vbGRfbW1hcCk6IG1tYXAoKSBwYXJhbWV0ZXJzIHBhc3NlZCBpbiByZWdpc3RlcnMKKwkqIG5ldC5jIChzeXNfcGlwZSksIHN5c2NhbGwuYyAoZ2V0cnZhbDIpOiBwaXBlKCkgcmVzdWx0cyByZXR1cm5lZAorCWluIHJlZ2lzdGVycworCSogcHJvY2Vzcy5jIChjaGFuZ2Vfc3lzY2FsbCk6IEZpeGVkIHJlZ2lzdGVyIHdoaWNoIGhvbGRzIHN5c3RlbQorCWNhbGwgbnVtYmVyCisJKiB1dGlsLmMgKGFyZzBfb2Zmc2V0LCBhcmcxX29mZnNldCk6IHByb3ZpZGUgZGVmaW5pdGlvbgorCSogTWFrZWZpbGUuYW06IEFkZGVkIG5ldyBmaWxlcyBpbiBsaW51eC9zaAorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3NoL2Vycm5vZW50Lmg6IE5ldyBmaWxlLgorCSogbGludXgvc2gvaW9jdGxlbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zaC9zaWduYWxlbnQuaDogTmV3IGZpbGUuCisKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBUYWtlIGFuIGFyZyBmb3IgbG9jYXRpb24gb2YgaGVhZGVyIGZpbGVzCisJKiBzeXNjYWxsZW50LnNoOiBSZXBsYWNlZCBsb3N0ICQKKworMjAwMy0wMy0zMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdGltZS5jIFtMSU5VWF06IEhhbmRsZSBuZXcgTGludXggMi41IGNsb2NrL3RpbWVyIHN5c2NhbGxzLgorCSogbGludXgvc3lzY2FsbC5oLCBsaW51eC9zeXNjYWxsZW50LmgsIGxpbnV4L2R1bW15Lmg6IExpa2V3aXNlLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHN5c19nZXRybGltaXQgZm9yIDE5MS4KKwlVc2UgbmFtZSAib2xkX2dldHJsaW1pdCIgZm9yIDc2LgorCVJlcG9ydGVkIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCisyMDAzLTAzLTE4ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Nsb25lKTogRG9uJ3QgZGVyZWZlcmVuY2UgcGFyZW50X3RpZCBhcmd1bWVudC4KKworMjAwMy0wMy0xNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogY2xvbmUgdGFrZXMgNSBhcmdzLgorCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19jbG9uZSkgW1g4Nl82NF06IEZpeCBhcmd1bWVudCBvcmRlci4KKworMjAwMy0wMy0xNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogQWRkIGV4aXRfZ3JvdXAgc3lzY2FsbCBhdCAyMzEuCisKKzIwMDMtMDMtMTQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBhbmQgYWRkIG1hbnkgMi41IHN5c2NhbGxzLgorCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogY2xvbmUgdGFrZXMgNSBhcmd1bWVudHMuCisJKiBwcm9jZXNzLmMgW0xJTlVYICYmIElBNjRdIChBUkdfKik6IFVwZGF0ZSBmb3IgMi41IGNsb25lIGNhbGxzLgorCisyMDAzLTAzLTEyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogRml4IGFyZyBjb3VudHMgZm9yIGNsb25lIGFuZCBjbG9uZTIuCisJVXNlIHN5c19jbG9uZSBmb3IgY2xvbmUyLgorCSogbGludXgvc3lzY2FsbC5oOiBEb24ndCBkZWNsYXJlIHN5c19jbG9uZTIuCisJKiBwcm9jZXNzLmMgKHN5c19jbG9uZSk6IFJld3JpdHRlbiB0byBoYW5kbGUgYm90aCBmbGF2b3JzLAorCXByaW50IGFsbCBleHRyYSBhcmdzIGRlcGVuZGluZyBvbiBmbGFnIGJpdHMuCisJKHN5c19jbG9uZTIpOiBGdW5jdGlvbiByZW1vdmVkLgorCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogQWRkIGEgYnVuY2ggb2YgMi41IHN5c2NhbGxzLgorCisyMDAzLTAzLTA0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKSBbSUE2NF06IERvIFRDQl9XQUlURVhFQ1ZFIGNoZWNrIG9ubHkgd2hlbgorCVRDQl9JTlNZU0NBTEwgaXMgY2xlYXIsIGxpa2Ugb3RoZXIgcGxhdGZvcm1zIGRvLgorCisyMDAzLTAzLTA0ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworCSogbWVtLmMgW0xJTlVYXSAoc3lzX3JlbWFwX2ZpbGVfcGFnZXMpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSBpdC4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19mdXRleCk6IE9taXQgZmluYWwgaWYgb3AgaXMgbm90IEZVVEVYX1dBSVQuCisKKzIwMDMtMDItMjYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogRml4IHR5cG8gaW4gbmV0aW5ldC9pbi5oIGNoZWNrLgorCUFsc28gaW5jbHVkZSA8c3lzL3R5cGVzLmg+IGFuZCA8c3lzL3NvY2tldC5oPiBiZWZvcmUgPG5ldGluZXQvaW4uaD4uCisJUmVwb3J0ZWQgYnkgQWxleCBTZW1lbnlha2EgPGFsZXhzQHNuYXJrLnJpbmV0LnJ1Pi4KKworMjAwMy0wMi0yNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45NS4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTUtMS4KKworCSogcHJvY2Vzcy5jIChzeXNfZ2V0cmVzZ2lkKTogRml4IHR5cG9zIGluIGFyZ3VtZW50IGFjY2Vzcy4KKworMjAwMy0wMi0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogcHJvY2Vzcy5jIChzeXNfZ2V0cmVzdWlkKTogRml4IHR5cG9zIGluIGFyZ3VtZW50IGFjY2Vzcy4KKwlSZXBvcnRlZCBieSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKzIwMDMtMDItMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTQuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk0LTEuCisKKwkqIHZlcnNpb24uYzogUmVtb3ZlZC4KKwkqIE1ha2VmaWxlLmFtIChzdHJhY2VfU09VUkNFUyk6IFJlbW92ZSBpdC4KKwkqIHN0cmFjZS5jOiBVc2UgUEFDS0FHRV9OQU1FIGFuZCBWRVJTSU9OIG1hY3JvcyBpbnN0ZWFkIG9mIHZlcnNpb24gdmFyLgorCisJRnJlZUJTRCByZm9yayBzdXBwb3J0IGNoYW5nZXMgZnJvbSBSdXNzIENveCA8cnNjQHBsYW45LmJlbGwtbGFicy5jb20+OgorCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogSGFuZGxlIFNZU19yZm9yayB3aXRoIGludGVybmFsX2ZvcmsuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2ZvcmspIFtTWVNfcmZvcmtdOiBCYWlsIGlmIFJGUFJPQyBmbGFnIG5vdCBzZXQuCisKKzIwMDMtMDEtMjMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHNpZ25hbC5jOiBSZW9yZGVyICNpZmRlZnMgc28gSEFWRV9BU01fU0lHQ09OVEVYVF9IIGRvZXNuJ3QgbWF0dGVyIG9uCisJU1BBUkMsIHdoaWNoIGRvZXNuJ3QgdXNlIHRoZSBoZWFkZXIgcmVnYXJkbGVzcy4KKworCSogdXRpbC5jIFtMSU5VWCAmJiBTUEFSQ106IERvIHJlbmFtaW5nIGtsdWRnZXMgYXJvdW5kIDxhc20vcmVnLmg+CisJbGlrZSBzaWduYWwuYyBkb2VzLgorCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2dldGRlbnRzNjQsIHN5c19sbHNlZWsuCisKKwkqIGxpbnV4L2R1bW15LmggWyEgU1lTX2dldHBtc2ddIChzeXNfZ2V0cG1zZyk6ICNkZWZpbmUgdG8gcHJpbnRhcmdzLgorCVshIFNZU19wdXRwbXNnXSAoc3lzX3B1dHBtc2cpOiBMaWtld2lzZS4KKworCSogcHJvY2Vzcy5jOiBSZW9yZGVyIGluY2x1ZGVzIHRvIHB1dCBzeXMvcmVnLmggYmVmb3JlIGxpbnV4L3B0cmFjZS5oLAorCXNpbmNlIHRoZXkgY2FuIGNvbmZsaWN0LgorCisyMDAzLTAxLTIxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAodXNhZ2UpOiBPbWl0IC16LCBzaW5jZSBpdCBoYXMgbmV2ZXIgd29ya2VkIHByb3Blcmx5LgorCSogTkVXUzogTGlrZXdpc2UuCisKKwkqIHN0cmFjZS5jIChtYWluKTogR3JvayBuZXcgb3B0aW9uIGAtRSB2YXI9dmFsJyBvciBgLUUgdmFyJyB0byBwdXQKKwl2YXI9dmFsIGluIGVudmlyb24gb3IgdG8gcmVtb3ZlIHZhciwgcmVzcGVjdGl2ZWx5LgorCSh1c2FnZSk6IE1lbnRpb24gaXQuCisJKiBzdHJhY2UuMSwgTkVXUzogRG9jdW1lbnQgaXQuCisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTMuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40LjkzLTEuCisJKiBzdHJhY2Uuc3BlYyAoU291cmNlMCk6IFVzZSBzdHJhY2UtVkVSU0lPTi50YXIuYnoyIG5vdy4KKworMjAwMy0wMS0yMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdIChUQ0JfV0FJVEVYRUNWRSk6IERlZmluZSBpdC4KKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8sIHN5c2NhbGxfZml4dXApIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdOiBIYW5kbGUKKwlUQ0JfV0FJVEVYRUNWRSBzdGF0ZSB3aXRoIHNwZWNpYWwga2x1ZGdlcy4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19jbG9uZSkgW1MzOTAgfHwgUzM5MFhdOiBBcmd1bWVudCBvcmRlciBpcworCXJldmVyc2VkIGZyb20gb3RoZXIgYXJjaGl0ZWN0dXJlcy4KKworCSogcHJvY2Vzcy5jIChzeXNfZXhlY3ZlKSBbTElOVVhdOiBNYWtlIHNldHRpbmcgVENCX1dBSVRFWEVDVkUgZmxhZworCWNvbmRpdGlvbmFsIG9uIFtUQ0JfV0FJVEVYRUNWRV0gaW5zdGVhZCBvZiBsaXN0IG9mIHByb2Nlc3NvcnMuCisKKwkqIHV0aWwuYyAocmVzdG9yZV9hcmcwKTogRXZhbHVhdGUgYXJncyBpbiBuby1vcCBkZWZucy4KKworCSogdXRpbC5jIFtTMzkwIHx8IFMzOTBYXSAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogRml4IGRlZmluaXRpb25zCisJZm9yIGNsb25lIGNhbGwgb24gUzM5MC4gIEZyb20gTWljaGFlbCBIb2x6aGV1IDxob2x6aGV1QGRlLmlibS5jb20+LgorCisyMDAzLTAxLTE3ICBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4KKworCSogdXRpbC5jIFtMSU5VWF0gKHNldGJwdCk6IEhhbmRsZSBTWVNfdmZvcmsgbGlrZSBTWVNfZm9yay4KKworCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0X3N1YmNhbGwpOiAyNTYgYWxzbyBmb3IgUE9XRVJQQy4KKworMjAwMy0wMS0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvcG93ZXJwYy9lcnJub2VudC5oOiBBZGQgbWlzc2luZyBlcnJub3MuCisJKiBsaW51eC9wb3dlcnBjL2lvY3RsZW50Lmg6IFVwZGF0ZSBpb2N0bCB2YWx1ZXMuCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIGlvLmMgW0xJTlVYXSAoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogRml4IGxhc3QgY2hhbmdlLgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogVXNlIHN5c19nZXRkZW50czY0LCBzeXNfdHJ1bmNhdGU2NCwKKwlzeXNfZnRydW5jYXRlNjQsIGluc3RlYWQgb2YgcHJpbnRhcmdzLCBmb3IgdGhvc2Ugc3lzY2FsbHMuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IE9ubHkgMjU2IGZvciBTMzkwLCBTMzkwWC4KKwlBbGwgb3RoZXJzIGF0IHRoZSBtb21lbnQgdXNlIGxpbnV4L3N5c2NhbGxlbnQuaCwgd2hlcmUgaXQncyAzMDAuCisKKwkqIHN0cmFjZS4xOiBVcGRhdGUgYnVnIHJlcG9ydGluZyBpbmZvLgorCisJKiByZXNvdXJjZS5jIFtMSU5VWF0gKHF1b3RhY21kcyk6IEdyb2sgbmV3IGNvbW1hbmQgZW5jb2RpbmdzLgorCUZyb20gTmF0aGFuIFNjb3R0IDxuYXRoYW5zQGRlYmlhbi5vcmc+LgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40LjkyLgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45Mi0xLgorCisJKiBjb25maWd1cmUuYWM6IE1hdGNoIHBvd2VycGMqIChpbmNsdWRlcyBwb3dlcnBjNjQpLCBhbmQgZG9uJ3QgbWF0Y2gKKwlwcGMgKG5ldmVyIGNvbWVzIG91dCBvZiBjb25maWcuc3ViKS4KKworCSogcHJvY2Vzcy5jIChzeXNfcHRyYWNlKTogVXNlICNseCBmb3JtYXQgZm9yIGFkZHJlc3MgYXJndW1lbnQuCisJW1BPV0VSUENdOiBVc2Ugc2l6ZW9mKHVuc2lnbmVkIGxvbmcpIGluIHBsYWNlIG9mIDQgZm9yIG11bHRpcGxpZXJzLgorCSogcHJvY2Vzcy5jIFtQT1dFUlBDXTogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW1BPV0VSUENdOiBMaWtld2lzZS4KKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pIFtQT1dFUlBDXTogTGlrZXdpc2UuCisJKiB1dGlsLmMgW1BPV0VSUENdOiBMaWtld2lzZS4KKwkocHJpbnRudW0pOiBVc2UgbG9uZyBmb3IgTlVNLgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiBkZWZzLmggKEFMSUdONjQpOiBGaXggZGVmbiBmb3IgUFBDLCBzYW1lIGFzIEZyZWVCU0Qgb25lLgorCisJKiB1dGlsLmMgW0xJTlVYXSAocmVzdG9yZV9hcmcwLCByZXN0b3JlX2FyZzEpOiBOZXcgbWFjcm9zLCBkZWZpbmVkCisJYXBwcm9wcmlhdGVseSB2aWEgc2V0X2FyZzAgb3Igbm8tb3BzIGZvciBlYWNoIGFyY2hpdGVjdHVyZS4KKwkoY2xlYXJicHQpOiBVc2UgdGhvc2UgaW5zdGVhZCBvZiBzZXRfYXJnMCBhbmQgc2V0X2FyZzEuCisKKwkqIGRlZnMuaCBbX0xBUkdFRklMRTY0X1NPVVJDRV0gKF9MRlM2NF9MQVJHRUZJTEUpOiBEZWZpbmUgaXQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfZ2V0ZGVudHM2NCwgc3lzX3RydW5jYXRlNjQsCisJc3lzX2Z0cnVuY2F0ZTY0LCBpbnN0ZWFkIG9mIHByaW50YXJncywgZm9yIHRob3NlIHN5c2NhbGxzLgorCisJKiBwcm9jZXNzLmM6IFVzZSA8bGludXgvcHRyYWNlLmg+IHJlZ2FyZGxlc3Mgb2YgPHN5cy9yZWcuaD4uCisJKHN5c19wdHJhY2UpOiBVc2UgcHJpbnR4dmFsLgorCShwdHJhY2VfY21kcyk6IE1ha2UgUFRSQUNFX0dFVFJFR1MgZXQgYWwgY29uZGl0aW9uYWwgb24gI2lmZGVmIFBUUkFDRV8qCisJaW5zdGVhZCBvZiBvbmx5ICNpZmRlZiBTVU5PUzQuICBBZGQgUFRSQUNFX1tHU11FVEZQWFJFR1MuCisKKwkqIGlwYy5jIChQUklOVENUTCk6IE5ldyBtYWNyby4gICNpZmRlZiBJUENfNjQsIGZhY3RvciBvdXQgdGhlIGZsYWcgYW5kCisJcHJpbnQgaXQgYmVmb3JlIHVzaW5nIHByaW50eHZhbC4KKwkoc3lzX21zZ2N0bCwgc3lzX3NlbWN0bCwgc3lzX3NobWN0bCk6IFVzZSBpdC4KKworMjAwMy0wMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlnLmd1ZXNzOiBVcGRhdGUgZnJvbSBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8sCisJdGltZXN0YW1wIDIwMDMtMDEtMTAuCisJKiBjb25maWcuc3ViOiBMaWtld2lzZSwgdGltZXN0YW1wIDIwMDMtMDEtMDMuCisJKiBpbnN0YWxsLXNoOiBVcGRhdGUgZnJvbSBBdXRvbWFrZSAxLjcuMi4KKworCSogbGludXgvcG93ZXJwYy9zaWduYWxlbnQuaDogQWRkIFNJR1JUTUlOLgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogQWRkIG1pc3Npbmcgc3lzdGVtIGNhbGxzLgorCURlY29kZSBtb3JlIHN5c3RlbSBjYWxscywgd2Ugd2VyZSBqdXN0IHByaW50YXJncyBmb3IgbWFueSB0aGluZ3MuCisJUmVtb3ZlIHNvbWUgeDg2LXNwZWNpZmljIHN5c3RlbSBjYWxscy4KKwlSZW1vdmUgdHdvIHN5c2NhbGxzIGJldHdlZW4gdGhlIHNvY2tldCBhbmQgaXBjIHN5c2NhbGxzLAorCWl0IHdhcyByZXN1bHRpbmcgaW4gYWxsIElQQyBzeXNjYWxscyBiZWluZyBvZmYgYnkgdHdvLgorCisJKiBpb2N0bC5jIChpb2N0bF9kZWNvZGUpIFtQT1dFUlBDXTogRGVjb2RlIHRlcm0gaW9jdGxzIGxpa2UgQWxwaGEuCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIGRlZnMuaCBbUE9XRVJQQ10gKFVFU1AsIEVJUCwgRUFYLCBPUklHX0VBWCk6IFJlbW92ZSB0aGlzIGNydWZ0LgorCVtMSU5VWCAmJiBQT1dFUlBDICYmICFfX3Bvd2VycGM2NF9fXSAoQUxJR042NCk6IE5ldyBtYWNyby4KKwkqIGlvLmMgKHN5c19wcmVhZCwgc3lzX3B3cml0ZSk6IFVzZSBBTElHTjY0LgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiB0ZXJtLmMgW0xJTlVYXTogR2V0IGtlcm5lbCBkZWZpbml0aW9uIG9mIHN0cnVjdCB0ZXJtaW9zLgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiBsaW51eC9pb2N0bGVudC5zaDogTG9vayBpbiBzb3VuZC8gZGlyZWN0b3J5IHRvby4KKwlGcm9tIEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KKworCSogZGVzYy5jIChwcmludGZsb2NrNjQpOiBGaXggQUREUiBhcmd1bWVudCB0eXBlLgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiBzdHJhY2UuYyBbISBIQVZFX1NUUlNJR05BTF06IENsZWFuIHVwICNpZmRlZnMgb24gZGVjbHMgZm9yCisJc3lzX3NpZ2xpc3QgYW5kIF9zeXNfc2lnbGlzdC4KKwlSZXBvcnRlZCBieSBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+LgorCisJKiBuZXQuYzogSEFWRV9PUFRIRFIgLT4gSEFWRV9TVFJVQ1RfT1BUSERSCisJUmVwb3J0ZWQgYnkgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPi4KKworCSogbGludXgvc3lzY2FsbC5oIFtBUk1dIChTWVNfc29ja2V0X3N1YmNhbGwpOiBTZXQgdG8gMzAwLgorCisyMDAzLTAxLTEwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40LjkxLgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45MS0xCisKKwkqIHV0aWwuYyBbTElOVVggJiYgWDg2XzY0XSAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogVXNlIGNvcnJlY3QKKwl2YWx1ZXMgZm9yIHg4Ni02NCwgY29uZGl0aW9uYWwgb24gY3VycmVudF9wZXJzb25hbGl0eS4KKworCSogc3RyYWNlLmMgKGRyb3B0Y2IpOiBDbGVhciBmbGFncyB3b3JkIGJlZm9yZSBjYWxsaW5nIHJlYnVpbGRfcG9sbHYuCisKKwkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgc3RydWN0IFRfY29ubl9yZXMgZm9yIFFVRVVFX3B0ciBvciBBQ0NFUFRPUl9pZC4KKwkqIHN0cmVhbS5jIChwcmludF90cmFuc3BvcnRfbWVzc2FnZSk6IFVzZSAjaWZkZWZzIGZvciB0aG9zZSBtZW1iZXJzLgorCisJKiBzdHJhY2UuYyAocmVidWlsZF9wb2xsdik6IEZpeCB0eXBvOiBzdHJ1Y3QgcG9sbCAtPiBzdHJ1Y3QgcG9sbGZkLgorCisJKiBjb25maWd1cmUuYWM6IEZpeCBzaWdpbmZvX3Qvc2lnX2F0b21pY190IGNoZWNrcy4KKwlVc2UgcHJlcmVxdWlzaXRlICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGZvciBuZXRpbmV0LyouaCBjaGVja3MuCisKKwkqIHN0cmFjZS5jIChwZmQydGNiKTogRml4IGZvciBuZXcgdGNidGFiIHR5cGUuCisJKHJlYnVpbGRfcG9sbHYpOiBMaWtld2lzZS4KKwkoZGV0YWNoKTogUHV0IHZhcmlhYmxlcyB1c2VkIHVuZGVyIFtMSU5VWF0gaW5zaWRlICNpZmRlZi4KKworCSogcHJvY2Vzcy5jIChjaGFuZ2Vfc3lzY2FsbCkgW1BPV0VSUENdOiBBZGQgbWlzc2luZyByZXR1cm4uCisJKiB1dGlsLmMgW1BPV0VSUENdIChhcmcwX29mZnNldCk6IFNldCB0byA0KlBUX1IzLCBub3QgNCpQVF9PUklHX1IzLgorCisJKiBzdHJhY2Uuc3BlYzogTmV3IGZpbGUuCisJKiBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTAtMQorCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IERlcGVuZCBvbiBidWlsZC4KKwkoY2xlYW4pOiBEb24ndCB0cnkgdG8gcnVuIE1ha2VmaWxlLmluLgorCSogZGViaWFuL2NvbnRyb2wgKFN0YW5kYXJkcy1WZXJzaW9uKTogTm93IDMuNS44LgorCisJKiBjb25maWd1cmUuYWM6IERpZGRsZSBDRkxBR1MgYWZ0ZXIgQUNfUFJPR19DQywgbm90IGJlZm9yZS4KKworMjAwMy0wMS0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpIFtTMzkwIHx8IFMzOTBYXTogRml4IHR5cG8uCisKKwkqIGRlYmlhbi9jb250cm9sOiBVcGRhdGUgTWFpbnRhaW5lcjogZmllbGQuCisKKzIwMDMtMDEtMDggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIE5FV1M6IFVwZGF0ZSBmb3IgNC40LjkwIHRlc3QgcmVsZWFzZS4KKworCVN1cHBvcnQgZm9yIG5ldyBMaW51eCAyLjUgdGhyZWFkIGZlYXR1cmVzLgorCSogZGVmcy5oIFtMSU5VWF06IERlZmluZSBfX05SX2V4aXRfZ3JvdXAgaWYgbm90IGRlZmluZWQuCisJKHN0cnVjdCB0Y2IpOiBOZXcgbWVtYmVycyBuY2xvbmVfdGhyZWFkcywgbmNsb25lX2RldGFjaGVkLAorCWFuZCBuY2xvbmVfd2FpdGluZy4KKwkoVENCX0NMT05FX0RFVEFDSEVELCBUQ0JfQ0xPTkVfVEhSRUFELCBUQ0JfR1JPVVBfRVhJVElORyk6IE5ldyBtYWNyb3MuCisJKHdhaXRpbmdfcGFyZW50KTogTWFjcm8gcmVtb3ZlZC4KKwkocGlkMnRjYik6IERlY2xhcmUgaXQuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKSBbVENCX0NMT05FX1RIUkVBRF06IFJlcGFyZW50IHRoZSBuZXcKKwljaGlsZCB0byBvdXIgcGFyZW50IGlmIHdlIGFyZSBhIENMT05FX1RIUkVBRCBjaGlsZCBvdXJzZWx2ZXMuCisJTWFpbnRhaW4gVENCX0NMT05FX1RIUkVBRCBhbmQgVENCX0NMT05FX0RFVEFDSEVEIGZsYWdzIGFuZCBjb3VudHMuCisJKGludGVybmFsX3dhaXQpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogRmFjdG9yIG91dCBkZXRhY2hlZCBjaGlsZHJlbiB3aGVuCisJZGV0ZXJtaW5pbmcgaWYgd2UgaGF2ZSBhbnkuICBJZiBUQ0JfQ0xPTkVfVEhSRUFEIGlzIHNldCwgY2hlY2sKKwlwYXJlbnQncyBjaGlsZHJlbiBpbnN0ZWFkIG9mIG91ciBvd24sIGFuZCBidW1wIG5jbG9uZV93YWl0aW5nIGNvdW50LgorCShpbnRlcm5hbF9leGl0KSBbX19OUl9leGl0X2dyb3VwXTogU2V0IHRoZSBUQ0JfR1JPVVBfRVhJVElORyBmbGFnIGlmCisJdGhlIHN5c2NhbGwgd2FzIGV4aXRfZ3JvdXAuCisJKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBVc2UgaW50ZXJuYWxfZXhpdCBmb3IgZXhpdF9ncm91cC4KKwkqIHN0cmFjZS5jIChwaWQydGNiKTogTm8gbG9uZ2VyIHN0YXRpYy4KKwkoYWxsb2N0Y2IpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogSW5pdGlhbGl6ZSBuZXcgZmllbGRzLgorCShkcm9wdGNiKSBbVENCX0NMT05FX1RIUkVBRF06IE1haW50YWluIG5ldyBmaWVsZHMuCisJSWYgd2UgaGF2ZSB0aHJlYWQgY2hpbGRyZW4sIHNldCBUQ0JfRVhJVElORyBhbmQgZG9uJ3QgY2xlYXIgdGhlIFRDQi4KKwkocmVzdW1lKSBbVENCX0NMT05FX1RIUkVBRF06IERlY3JlbWVudCBwYXJlbnQncyBuY2xvbmVfd2FpdGluZy4KKwkoZGV0YWNoKSBbVENCX0NMT05FX1RIUkVBRF06IFdoZW4gY2FsbGluZyByZXN1bWUsIGNoZWNrIGFsbCB0aHJlYWQKKwljaGlsZHJlbiBvZiBvdXIgcGFyZW50IHRoYXQgbWlnaHQgYmUgd2FpdGluZyBmb3IgdXMgdG9vLgorCVtUQ0JfR1JPVVBfRVhJVElOR10gKGhhbmRsZV9ncm91cF9leGl0KTogTmV3IGZ1bmN0aW9uLgorCSh0cmFjZSkgW1RDQl9HUk9VUF9FWElUSU5HXTogVXNlIHRoYXQgaW4gcGxhY2Ugb2YgZGV0YWNoIG9yIGRyb3B0Y2IuCisKKwlSZXZhbXAgLWYgc3VwcG9ydCBmb3IgTGludXguCisJKiB1dGlsLmMgW0xJTlVYXSAoc2V0YnB0LCBjbGVhcmJwdCk6IE5ldyBpbXBsZW1lbnRhdGlvbnMgdGhhdCB0d2VhaworCXRoZSBzeXN0ZW0gY2FsbCB0byBiZSBjbG9uZSB3aXRoIENMT05FX1BUUkFDRSBzZXQuICBWYXJpb3VzIG5ldyBzdGF0aWMKKwloZWxwZXIgZnVuY3Rpb25zLgorCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9jbG9uZSk6IERlZmluZSBhbHNvICNpZmRlZiBTWVNfY2xvbmUyLgorCUluaXRpYWxpemUgVENQQ0hJTEQtPnBhcmVudCBmaWVsZC4KKwlbQ0xPTkVfUFRSQUNFXTogRG9uJ3QgZG8gUFRSQUNFX0FUVEFDSCBoZXJlLCBiZWNhdXNlIGl0J3MgcHJlYXR0YWNoZWQuCisJQ2hlY2sgaW4gY2FzZSB0aGUgbmV3IGNoaWxkIGlzIGluIHRoZSB0Y2IgYWxyZWFkeS4KKwkoaW50ZXJuYWxfZm9yaykgW0xJTlVYXTogSnVzdCBjYWxsIGludGVybmFsX2Nsb25lLgorCSogc3RyYWNlLmMgKHRyYWNlKSBbTElOVVhdOiBVbmRlciAtZi8tRiwgZ3JvayBhbiB1bmtub3duIHBpZAorCXJlcG9ydGluZyB0byB3YWl0LCBwdXQgaXQgaW4gdGhlIFRDQiB3aXRoIFRDQl9BVFRBQ0hFRHxUQ0JfU1VTUEVOREVELgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaCAoc3lzX29sZGxzdGF0KTogI2RlZmluZSBhcyBwcmludGFyZ3MuCisKKwkqIGZpbGUuYyBbTElOVVhdOiAjdW5kZWYgc3RfW2FtY110aW1lIGluIGNhc2UgdGhleSBhcmUgbWFjcm9zLgorCisJKiBNYWtlZmlsZS5hbSAoQU1fQ0ZMQUdTKTogTmV3IHZhcmlhYmxlLCBkZWZpbmUgdG8gJChXQVJORkxBR1MpLgorCisJKiBNYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IFJlbW92ZSBkZWJpYW4vcG9zdGluc3QgYW5kIGRlYmlhbi9wcmVybS4KKworMjAwMy0wMS0wOSAgV2ljaGVydCBBa2tlcm1hbiAgPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KKworCSogZGViaWFuL3Bvc3RpbnN0LCBkZWJpYW4vcHJlcm06IHJlbW92ZWQsIC91c3IvZG9jIHN5bWxpbmsgaXMgbm8KKwlsb25nZXIgdXNlZAorCSogZGViaWFuL3J1bGVzOiBubyBsb25nZXIgaW5zdGFsbCBwb3N0aW5zdCBhbmQgcHJlcm0KKwkqIGRlYmlhbi9jb250cm9sOiBkbyBub3QgZW5kIHN1bW1hcnkgd2l0aCBmdWxsIHN0b3AgKGxpbnRpYW4pCisKKzIwMDItMTItMzAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmFtIChiaW5fU0NSSVBUUyk6IE5ldyB2YXJpYWJsZSwgbGlzdCBzdHJhY2UtZ3JhcGguCisJKEVYVFJBX0RJU1QpOiBBZGQgbWlzc2luZyBmaWxlcy4KKworCSogY29uZmlndXJlLmFjOiBGaXggYXNtL3NpZ2NvbnRleHQuaCBjaGVjayB0byBpbmNsdWRlIHByZXJlcXVpc2l0ZS4KKworCSogc3lzY2FsbC5jIChxdWFsaWZ5X29uZSk6IE5ldyBmdW5jdGlvbi4KKwkocXVhbF9vcHRpb25zKTogUmVwbGFjZSBsb29rdXAgZmllbGQgd2l0aCBxdWFsaWZ5LCB1cGRhdGUgaW5pdGlhbGl6ZXIuCisJKHF1YWxpZnkpOiBVcGRhdGUgY2FsbGVyLgorCShxdWFsX3NpZ25hbCwgcXVhbF9mYXVsdCwgcXVhbF9kZXNjKTogUmV3cml0dGVuIGZyb20gbG9va3VwXyouCisJKHF1YWxfc3lzY2FsbCk6IFJld3JpdHRlbiBsb29rdXBfc3lzY2FsbCwgbWF0Y2ggbmFtZSBtb3JlIHRoYW4gb25jZS4KKwlGaXhlcyBSSCM3MDU3OSwgYml0ZXMgSUE2NCAtZWZvbyB3aGVuIGZvbyBleGlzdHMgb24gSUEzMi4KKworCSogdmVyc2lvbi5jICh2ZXJzaW9uKTogTWFrZSBjb25zdCwgYnVtcCB0byA0LjQuOTAuCisJKiBzdHJhY2UuYzogVXBkYXRlIGRlY2wuCisKKwkqIE1ha2VmaWxlLmFtIFtMSU5VWCAmJiBYODZfNjRdOiBSZW1vdmUgY3J1ZnQuCisJKiBsaW51eC94ODZfNjQvZXJybm9lbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgveDg2XzY0L2lvY3RsZW50MS5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgveDg2XzY0L2kzODYtaGVhZGVycy5kaWZmOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC94ODZfNjQvbWFrZWhlYWRlcnMuc2g6IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L3g4Nl82NC9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgorCisJKiBsaW51eC9zeXNjYWxsZW50LmggW1g4Nl82NF06IERpc2FibGUgc2FuaXR5IGNoZWNrcywgc3ViY2FsbCBzdHVmZiBpcworCWFscmVhZHkgYnJva2VuIGZvciAzMi1iaXQgcGVyc29uYWxpdHkgb24geDg2LTY0LgorCisyMDAyLTEyLTI5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE1ha2VmaWxlLmFtOiBQdW50IHN1YmRpcnMsIGhhbmRsZSBldmVyeXRoaW5nIGhlcmUuCisJKiBsaW51eC9NYWtlZmlsZS5hbTogRmlsZSByZW1vdmVkLgorCSogZnJlZWJzZC9NYWtlZmlsZS5hbTogRmlsZSByZW1vdmVkLgorCSogc3Vub3M0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBzdnI0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisKKwkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC9ocHBhL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC9pYTY0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC9wb3dlcnBjL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC9zMzkwL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC9zMzkweC9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgorCisyMDAyLTEyLTI2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsZW50LnNoOiBHcm9rIHRocmVlIGZsYXZvcnMgb2YgI2RlZmluZSBsaW5lLCB1bmlxdWlmeS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5zaDogRmlsZSByZW1vdmVkLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LnNoOiBGaWxlIHJlbW92ZWQuCisKKwkqIGxpbnV4L01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KKwkqIGxpbnV4L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisJKiBmcmVlYnNkL01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KKwkqIGZyZWVic2QvaTM4Ni9NYWtlZmlsZS5hbTogTmV3IGZpbGUuCisJKiBmcmVlYnNkL2kzODYvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKworMjAwMi0xMi0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCVVwZGF0ZSB0byBBdXRvY29uZiAyLjU3LCBhbmQgQXV0b21ha2lmeSB3aXRoIHZlcnNpb24gMS43LgorCSogTWFrZWZpbGUuYW06IE5ldyBmaWxlLgorCSogTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGNvbmZpZ3VyZS5pbjogTW92ZWQgdG8gLi4uCisJKiBjb25maWd1cmUuYWM6IC4uLiBoZXJlLiAgVXBkYXRlIGZvciBBdXRvY29uZiAyLjV4IGFuZCBBdXRvbWFrZS4KKwkqIGFjbG9jYWwubTQ6IE1vdmVkIHRvIC4uLgorCSogYWNpbmNsdWRlLm00OiAuLi4gaGVyZS4gIFVwZGF0ZSBmb3IgQXV0b2NvbmYgMi41eC4KKwkqIGFjY29uZmlnLmg6IEZpbGUgcmVtb3ZlZC4KKwkqIEFVVEhPUlM6IE5ldyBmaWxlLCBtYWtlcyBhdXRvbWFrZSBoYXBweS4KKwkqIGF1dG9nZW4uc2g6IEZpbGUgcmVtb3ZlZC4KKwkqIFJFQURNRS1DVlM6IFVwZGF0ZSB0byByZWNvbW1lbmQgYXV0b3JlY29uZiBpbnN0ZWFkLgorCSogZmlsZS5jOiBIQVZFX1NUXyogLT4gSEFWRV9TVFJVQ1RfU1RBVF9TVF8qLgorCSogbmV0LmM6IEhBVkVfU0lONl9TQ09QRV9JRCAtPiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCwKKwlIQVZFX01TR19DT05UUk9MIC0+IEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTC4KKwkqIHN0cmFjZS5jOiAqX0RFQ0xBUkVEIC0+IEhBVkVfREVDTF8qCisJKiBzdHJlYW0uYzogSEFWRV8qIC0+IEhBVkVfU1RSVUNUXyoKKworCSogbGludXgvTWFrZWZpbGUuaW4gKGlvY3RsZGVmcy5oIGlvY3Rscy5oKTogVXNlICQoU0hFTEwpIGluc3RlYWQgb2YKKwlzaCwgYW5kIHVzZSAkKHNyY2RpcikgdG8gZmluZCB0aGUgc2NyaXB0LgorCSogbGludXgvcG93ZXJwYy9NYWtlZmlsZS5pbiAoaW9jdGxlbnQucmF3KTogRmluZCBpb2N0bGVudC5zaCBpbiAuLi8uCisJKGlvY3Rsc29ydC5vKTogVXNlIC4uL2lvY3Rsc29ydC5jLCBub3QgLi4vLi4vaW9jdGxzb3J0LmMuCisJKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW4gKGhlYWRlcnMpOiBSZW5hbWVkIHRvIGFsbC4KKwkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBBZGQgZW1wdHkgaW5zdGFsbCB0YXJnZXQuCisJKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW46IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCisJKiBsaW51eC9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCisKKzIwMDItMTItMjYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlZnMuaCBbTElOVVggJiYgTUlQU10gKE1BWF9RVUFMUyk6IFNldCB0byA1MDAwLCBub3QgNDk5OS4KKwlGcm9tIERhbmllbCBKYWNvYm93aXR6IDxkcm93QGZhbHNlLm9yZz4uCisKKzIwMDItMTItMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHNvbWUgbmV3IDIuNSBzeXNjYWxsIG5hbWVzLgorCU5vdyBjbG9uZSB0YWtlcyA1IGFyZ3MuCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoY2xvbmVfZmxhZ3MpOiBVcGRhdGUgd2l0aCAyLjUgZmxhZyBiaXRzLgorCVtMSU5VWF0gKHN5c19jbG9uZSk6IFByaW50IG5ldyBhcmdzLgorCSogbWVtLmMgKHByaW50X2xkdF9lbnRyeSk6IE1ha2UgZ2xvYmFsLgorCisJKiBsaW51eC9zeXNjYWxsLmggW0kzODYgfHwgSUE2NF0gKFNZU19zb2NrZXRfc3ViY2FsbCk6IEJ1bXAgdG8gMzAwIGZvcgorCXNhZmV0eSwgc2luY2UgdXAgdG8gMjYwIGFyZSBhbHJlYWR5IHVzZWQgaW4gMi41IGtlcm5lbHMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIHN5c2NhbGwuYyAoZm9yY2VfcmVzdWx0KTogTmV3IGZ1bmN0aW9uLgorCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogSGFuZGxlIEVDSElMRCBleGl0IGZyb20gd2FpdCBjYWxsIHdpdGgKKwlXTk9IQU5HIGZsYWcgc2V0OyBmb3JjZSB0aGUgcmV0dXJuIHZhbHVlIHRvIDAgaW4gdGhlIGluZmVyaW9yIHdoZW4gaXQKKwloYXMgbGl2ZSBjaGlsZHJlbiB3ZSBhcmUgdHJhY2luZy4KKwkqIE5FV1M6IE1lbnRpb24gdGhlIGJ1ZyBmaXguCisKKzIwMDItMTItMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgcGxhY2Vob2xkZXJzIDI3NS0yOTggdG8gY2F0Y2ggdXAKKwl3aXRoIGxpbnV4L3N5c2NhbGxlbnQuaCBhZGRpdGlvbnMuCisKKwkqIHN0cmFjZS5jICh0Y2J0YWIpOiBNYWtlIHRoaXMgYSBwb2ludGVyIHRvIHBvaW50ZXJzLCBub3QgYW4gYXJyYXkuCisJKHRjYnRhYnNpemUpOiBOZXcgdmFyaWFibGUuCisJKG1haW4pOiBJbml0aWFsaXplIHRoZW0gdXNpbmcgZHluYW1pYyBhbGxvY2F0aW9uLgorCShhbGxvY3RjYiwgbWFpbik6IFVzZSB0Y2J0YWJzaXplIGluIHBsYWNlIG9mIE1BWF9QUk9DUzsgaW5kaXJlY3QuCisJKHBpZDJ0Y2IsIGNsZWFudXApOiBMaWtld2lzZS4KKwlbVVNFX1BST0NGU10gKHBvbGx2KTogTWFrZSB0aGlzIGEgcG9pbnRlciwgbm90IGFuIGFycmF5OyBtYWtlIHN0YXRpYy4KKwkocmVidWlsZF9wb2xsdik6IER5bmFtaWNhbGx5IGFsbG9jYXRlIHRoZSB2ZWN0b3IuCisJKiBkZWZzLmggKHRjYnRhYik6IFVwZGF0ZSBkZWNscy4KKwkoTUFYX1BST0NTKTogTWFjcm8gcmVtb3ZlZCwgbm8gbW9yZSBzdGF0aWMgbGltaXQgb24gdGhpcy4KKwkqIHByb2Nlc3MuYyAoZm9ya190Y2IpOiBOZXcgZnVuY3Rpb24uCisJKGludGVybmFsX2Nsb25lLCBpbnRlcm5hbF9mb3JrKTogVXNlIGl0IGluc3RlYWQgb2YgY2hlY2tpbmcgbnByb2NzLgorCisJKiBzdHJhY2UuYyAoZGV0YWNoKSBbTElOVVhdOiBVc2UgX19XQUxMIChvciBhIHNlY29uZCB0cnkgd2l0aCBfX1dDTE9ORSkKKwlpbiB3YWl0IGFmdGVyIHNlbmRpbmcgU0lHU1RPUC4KKworMjAwMi0xMi0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc2lnbmFsLmMgKHNwcmludHNpZ21hc2spOiBJbmNyZWFzZSBzdGF0aWMgYnVmZmVyIHNpemUgdG8gYWNjb3VudCBmb3IKKwl3b3JzdCBwb3NzaWJsZSBjYXNlLiAgUmVwb3J0ZWQgYnkgRGFuaWVsIEphY29ib3dpdHogPGRyb3dAZmFsc2Uub3JnPi4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHdhaXQ0X29wdGlvbnMpOiBGaXggX19XQ0xPTkUgdmFsdWUuICBBZGQKKwlfX1dOT1RIUkVBRCBhbmQgX19XQUxMLgorCisJKiBzdHJhY2UuYyAodHJhY2UpIFtMSU5VWF06IE9ubHkgY2hlY2sgZXJybm8gaWYgd2FpdDQgYWN0dWFsbHkgZmFpbHMsCisJc28gd2UgZG9uJ3QgcmVwZWF0IGEgd2FpdCBhbmQgdGh1cyBkcm9wIGEgc3RhdHVzLiAgRml4ZXMgUkgjNjI1OTEuCisKKzIwMDItMTItMTUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHByb2Nlc3MuYyAoc2V0YXJnKSBbUE9XRVJQQ106IFN1cHBvcnQgaXQuCisKKwkqIHV0aWwuYyBbUE9XRVJQQ10gKExPT1ApOiBGaXggdmFsdWUsIG5vdyAweDQ4MDAwMDAwICgwOiBiIDBiKS4KKwlPbGQgdmFsdWUgd2FzIGJvZ3VzLCBub3QgZXZlbiBhIHByb3BlciBpbnN0cnVjdGlvbi4KKwlGcm9tIEd1eSBNLiBTdHJlZXRlciA8c3RyZWV0ZXJAcmVkaGF0LmNvbT4uCisKKwkqIHN0cmFjZS5jIChtYWluKSBbISBVU0VfUFJPQ0ZTXTogQWx3YXlzIHJlc2V0IFNJR0NITEQgdG8gU0lHX0RGTC4KKworCSogY29uZmlndXJlLmluOiBEb24ndCBjaGVjayBmb3IgcHV0cG1zZy4KKwkqIHN0cmVhbS5jIChzeXNfZ2V0cG1zZywgc3lzX3B1dHBtc2cpOiBNYWtlIHRoZXNlIGNvbmRpdGlvbmFsIG9uCisJI2lmZGVmIFNZU18qLCByYXRoZXIgdGhhbiBvbiBIQVZFX1BVVFBNU0cuCisKKwkqIGFjbG9jYWwubTQgKEFDX1NUQVQ2NCk6IEluY2x1ZGUgPGxpbnV4L3R5cGVzLmg+IGJlZm9yZSA8YXNtL3N0YXQuaD4KKwlpbiB0ZXN0LiAgVGVzdCBvdXIgb3duICNpZmRlZiBMSU5VWCByYXRoZXIgdGhhbiBwcmVkZWZpbmVkIGBsaW51eCcuCisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2xsc2VlayBmb3IgX2xsc2Vlay4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIHN5c2NhbGwuYyAoc3lzY2FsbF9lbnRlcikgW0xJTlVYICYmIFBPV0VSUENdOiBEZWZpbmUgUFRfT1JJR19SMyBpZgorCW5vdCBkZWZpbmVkLCBzaW5jZSA8YXNtL3B0cmFjZS5oPiBkZWZpbmVzIGl0IG9ubHkgI2lmZGVmIF9fS0VSTkVMX18uCisJKiBwcm9jZXNzLmM6IExpa2V3aXNlLgorCisJKiBkZXNjLmMgKHN5c19vc2Zfc2VsZWN0KTogQWRkIG1pc3NpbmcgcmV0dXJuIHR5cGUuCisKKwkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IFVzZSBzdHJlcnJvciwgbm90IHN5c19lcnJsaXN0L3N5c19uZXJyLgorCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogUmVtb3ZlIG1hY3JvcyBmb3Igc3lzX2RlbGV0ZV9tb2R1bGUsCisJc3lzX25hbm9zbGVlcCwgYm90aCBhbHJlYWR5IGluIGxpbnV4L2R1bW15LmguCisKKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pOiBNb3ZlIHN0YXRpYyBgY3VycnBlcnMnIGluc2lkZSAjaWZkZWYgWDg2XzY0LgorCSh0cmFjZV9zeXNjYWxsKTogRml4IHJldHVybiB3aXRob3V0IHZhbHVlLgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0YWJsZSB3aXRoIG5hbWVzIG9mIG5ldyBzeXNjYWxscworCWlvX3NldHVwLCBpb19kZXN0cm95LCBpb19nZXR2ZW50cywgaW9fc3VibWl0LCBpb19jYW5jZWwuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIHNpZ25hbC5jIFtMSU5VWCAmJiBJMzg2XTogUHJvdmlkZSBTQV9SRVNUT1JFUiBjb25zdGFudCBpZiBub3QKKwlkZWZpbmVkLiAgSWYgdGhlIGJpdCBpcyBzZXQsIHByaW50IHRoZSBzYV9yZXN0b3JlciBmaWVsZCBvZiBzaWdhY3Rpb24uCisKKwkqIG1lbS5jOiBBZGQgc3lzX3tnZXQsc2V0fV90aHJlYWRfYXJlYS4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIHRhYmxlIGZvciB0aGVzZS4KKwkqIGxpbnV4L2R1bW15LmggKHN5c19tb2RpZnlfbGR0KTogRGVmaW5lIG9ubHkgI2lmbmRlZiBJMzg2LgorCShzeXNfZ2V0X3RocmVhZF9hcmVhLCBzeXNfc2V0X3RocmVhZF9hcmVhKTogTmV3IG1hY3JvcyAjaWZuZGVmIEkzODYuCisKKwkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIGxpbnV4L3hhdHRyLmggYW5kIGxpbnV4L2Z1dGV4LmggaGVhZGVycy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogQWRkIHN5c18qIGRlY2xzIGZvciBuZXcgc3lzY2FsbHMgZ2V0cG1zZywgcHV0cG1zZywKKwlyZWFkYWhlYWQsIHNlbmRmaWxlNjQsIHNldHhhdHRyLCBmc2V0eGF0dHIsIGdldHhhdHRyLCBmZ2V0eGF0dHIsIGludAorCWxpc3R4YXR0ciwgZmxpc3R4YXR0ciwgcmVtb3ZleGF0dHIsIGZyZW1vdmV4YXR0ciwgc2NoZWRfc2V0YWZmaW5pdHksCisJc2NoZWRfZ2V0YWZmaW5pdHksIGZ1dGV4LgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIHRhYmxlLgorCSogaW8uYzogQWRkIHN5c19zZW5kZmlsZTY0LgorCSogZmlsZS5jOiBBZGQgc3lzX3JlYWRhaGVhZCwgc3lzXyp4YXR0ci4KKwkqIHByb2Nlc3MuYzogQWRkIHN5c19mdXRleCwgc3lzXyphZmZpbml0eS4KKworCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0X3N1YmNhbGwpOiBEZWZpbmUgdG8gMjU2IG9uIGFsbCBtYWNoaW5lcy4KKwkoU1lTX2lwY19zdWJjYWxsKTogQWx3YXlzIFNZU19zb2NrZXRfc3ViY2FsbCArIFNZU19zb2NrZXRfbnN1YmNhbGxzLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVcGRhdGUgdGhlIHRhYmxlIGZvciBzb2NrZXQgYW5kIGlwYyBzdWJjYWxscy4KKworMjAwMi0xMS0wOSAgSGVpa28gQ2Fyc3RlbnMgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisKKwlCdWdmaXggZm9yIHMzOTAvczM5MHg6CisJKiBzeXNjYWxsLmM6IEZpeGVkIHNjbm8gZGVyaXZhdGlvbiBmb3IgczM5MC9zMzkweC4KKworMjAwMi0xMS0wNiAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KKworCU1lcmdlZCBwYXRjaCBmcm9tIFN0ZXZlbiBKLiBIaWxsIDxzamhpbGxAcmVhbGl0eWRpbHV0ZWQuY29tPgorCXRvIGFsbG93IHRoZSBjb21waWxhdGlvbiBvZiBhIG5hdGl2ZSBNSVBTIHN0cmFjZS4KKworMjAwMi0xMS0wNiAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KKworCUZyb20gTWFydHkgTGVpc25lciA8bGVpc25lckByb2NoZXN0ZXIucnIuY29tPiwKKwlyZXdyaXR0ZW4gYnkgbWx1ZHZpZzoKKwkqIHN0cmFjZS5jIChub3RfZmFpbGluZ19vbmx5KTogTmV3LgorCSh1c2FnZSk6IEFkZGVkIC16IHN3aXRjaCBkZXNjcmlwdGlvbi4KKwkobWFpbik6IEFkZGVkIC16IHN3aXRjaCBwYXJzaW5nIHRvIG5vdF9mYWlsaW5nX29ubHkgdmFyaWFibGUuCisJKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBBZGRlZCBub3RfZmFpbGluZ19vbmx5IGhhbmRsaW5nLgorCisyMDAyLTEwLTA4ICBIZWlrbyBDYXJzdGVucyA8aGVpa28uY2Fyc3RlbnNAZGUuaWJtLmNvbT4KKworCU1pc3NpbmcgY29tcGxldGUgY2hhbmdlbG9nIGZvciAyMDAyLTEwLTA3IGNvbW1pdDoKKwkqIE1ha2VmaWxlLmluOiBBZGRlZCBsaW51eC9zMzkwLCBsaW51eC9zMzkweCB0byBBTExfU1VCRElSUy4KKwkqIGFjY29uZmlnLmg6IE5ldyBkZWZpbmUgZm9yIHMzOTB4LgorCSogY29uZmlnLnN1YjogQWRkZWQgbWlzc2luZyBkZWZpbmUgZm9yIHMzOTAgYW5kIG5ldyBvbmUgZm9yIHMzOTB4LgorCSogY29uZmlndXJlLmluOiBBZGRlZCBuZXcgZGVmaW5lIGZvciBzMzkweC4KKwkqIGZpbGUuYzogQWRkZWQgbWlzc2luZyAjdW5kZWYgZGlyZW50NjQgYW5kIG5ldyBkZWZpbmVzIGZvciBzMzkweC4KKwkqIGxpbnV4L3MzOTA6IE5ldyBkaXJlY3RvcnkuCisJKiBsaW51eC9zMzkwL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTAvZXJybm9lbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zMzkwL2lvY3RsZW50Lmg6IE5ldyBmaWxlLgorCSogbGludXgvczM5MC9zaWduYWxlbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zMzkweDogTmV3IGRpcmVjdG95LgorCSogbGludXgvczM5MHgvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgorCSogbGludXgvczM5MHgvZXJybm9lbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zMzkweC9pb2N0bGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTB4L3NpZ25hbGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zeXNjYWxsLmg6IEFkZGVkIHN5c19taW5jb3JlKCkgcHJvdG90eXBlIGFuZCBhZGRlZCBuZXcKKwlzMzkweCBkZWZpbmVzLgorCSogcHJvY2Vzcy5jOiBBZGRlZCBzMzkweCBkZWZpbmVzLgorCShjaGFuZ2Vfc3lzY2FsbCk6IENoYW5nZWQgaGFuZGxpbmcgZm9yIHMzOTAuCisJKHNldGFyZyk6IEFkZGVkIG1pc3NpbmcgczM5MC9zMzkweCBjb2RlIGluIHNldGFyZygpLgorCSogc2lnbmFsLmM6IEFkZGVkIHMzOTB4IGRlZmluZS4KKwkoc3lzX3NpZ3JldHVybik6IEJ1Z2ZpeCBpbiBzMzkwL3MzOTB4IGNvZGUgKHdyb25nIG51bWJlciBvZgorCWFyZ3VtZW50cyB0byBzcHJpbnRzaWdtYXNrKCkpLgorCSogc3RyZWFtLmMgKGludGVybmFsX3N0cmVhbV9pb2N0bCk6IENoYW5nZWQgaW50IGNhc3QgdG8gbG9uZyBjYXN0LAorCXNpbmNlIHByaW50c3RyKCkgZXhwZWN0cyBhIGxvbmcuCisJKiBzeXNjYWxsLmMgKGRlY29kZV9zdWJjYWxsKTogQ2hhbmdlZCBzZXZlcmFsIHZhcmlhYmxlcyB0byBiZSBsb25nCisJaW5zdGVhZCBvZiBpbnQgdG8gbWF0Y2ggNjQgYml0IHJlcXVpcmVtZW50cy4gQWRkZWQgczM5MHggZGVmaW5lcy4KKwkoc3lzY2FsbF9lbnRlcik6IENoYW5nZWQgdXBlZWsoKSBjYWxsIHRvIG1hdGNoIHMzOTAgYW5kIHMzOTB4CisJcmVxdWlyZW1lbnRzLgorCSogdXRpbC5jOiBBZGRlZCBzMzkweCBkZWZpbmVzLgorCisyMDAyLTEwLTA3ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgorCisJTWVyZ2VkIHMzOTB4IHBvcnQgYnkgSGVpa28gQ2Fyc3RlbnMgPEhlaWtvLkNhcnN0ZW5zQGRlLmlibS5jb20+CisJYW5kIGJ1Z2ZpeGVzIHRvIHMzOTAgYnkgRC5KLiBCYXJyb3cuCisKKzIwMDItMDktMjMgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CisKKwlNZXJnZWQgeDg2LTY0IHBvcnQgYnkgQW5kaSBLbGVlbiA8YWtAc3VzZS5kZT4KKwlhbmQgTWljaGFsIEx1ZHZpZyA8bWx1ZHZpZ0BzdXNlLmN6PgorCSogTWFrZWZpbGUuaW46IE5ldyB0YXJnZXQgJ2hlYWRlcnMnLiBGYWlsdXJlIGlnbm9yZWQuCisJKiBhY2NvbmZpZy5oOiBOZXcgZGVmaW5lcyBmb3IgeDg2LTY0LgorCSogY29uZmlndXJlLmluOiBEaXR0by4KKwkqIGRlZnMuaDogRGl0dG8uCisJKiBmaWxlLmM6IERpdHRvLgorCSogc2lnbmFsLmM6IERpdHRvLgorCSogcHJvY2Vzcy5jOiBBZGRlZCBzdXBwb3J0IGZvciB4ODYtNjQuCisJKiB1dGlsLmM6IERpdHRvLgorCSogc3lzY2FsbC5jOiBEaXR0byArIGFkZGVkIGF1dG9tYXRpYyBwZXJzb25hbGl0eSBzd2l0Y2hpbmcuCisJKiBsaW51eC9zeXNjYWxsLmg6IERpdHRvLgorCSogbGludXgveDg2XzY0OiBOZXcgZGlyZWN0b3J5LgorCSogbGludXgveDg2XzY0L01ha2VmaWxlLmluOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3g4Nl82NC9nZW50YWIucGw6IERpdHRvLgorCSogbGludXgveDg2XzY0L2kzODYtaGVhZGVycy5kaWZmOiBEaXR0by4KKwkqIGxpbnV4L3g4Nl82NC9tYWtlaGVhZGVycy5zaDogRGl0dG8uCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBEaXR0by4KKwkqIG1lbS5jIChwcmludF9tbWFwKTogQWx3YXlzIHByaW50IGFyZ1s0XSBhcyBpbnQuCisKKzIwMDItMDktMjMgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CisKKwkqIGNvbmZpZ3VyZS5pbjogRml4IHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisJKiBsaW51eC9zeXNjYWxsLmg6IEFkZGVkIG1pc3NpbmcgYnJhY2VzIGluIHByb3RvdHlwZSBvZgorCXN5c19nZXRkZW50czY0KCkuCisJKiBmaWxlLmM6IFVzZSAnI2lmZGVmIExJTlVYJyBpbnN0ZWFkIG9mICcjaWZkZWYgbGludXgnLgorCShzdHJ1Y3QgZmlsZWZsYWdzKTogTWFkZSBleHRlcm4gdG8gaW5oaWJpdCBjb21waWF0aW9uIHdhcm5pbmdzLgorCShzeXNfZ2V0ZGVudHM2NCk6IE1lcmdlZCBMSU5VWCBhbmQgU1ZSNCBwYXJ0LgorCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IFNwbGl0IG11bHRpbGluZSBzdHJpbmcgaW50byB0d28gZGlzdGluY3QKKwlzdHJpbmdzLgorCisyMDAyLTA1LTI0ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHN0cmVhbS5oLCBuZXQuaDogQXZvaWQgcG9zc2libGUgaW5maW5pdGUgbG9vcCBjYXVzZWQgYnkKKwl1bnNpZ25lZCBhcml0aG1ldGljIGluIHByZWNlZWRpbmcgY2hhbmdlLgorCisyMDAyLTA1LTIzICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIGFjY29uZmlnLmg6IEFkZCBIQVZFX09QVEhEUiBhbmQgSEFWRV9UX09QVEhEUiBkZWZpbmVzLgorCisJKiBhY2xvY2FsLm00OiBBZGQgdGVzdHMgZm9yIHN0cnVjdCBvcHRoZHIgaW4gc3lzL3NvY2tldC5oIGFuZAorCXN0cnVjdCB0X29wdGhkciBpbiBzeXMvdGl1c2VyLmgsIGRlZmluZSBIQVZFX09QVEhEUiBhbmQgSEFWRV9UX09QVEhEUgorCWlmIGZvdW5kLgorCisJKiBjb25maWd1cmUuaW46IHVzZSB0ZXN0cyBmb3Igc3RydWN0IG9wdGhkciBhbmQgc3RydWN0IHRfb3B0aGRyLgorCisJKiBkZWZzLmg6IGFkZCBuZXcgZnVuY3Rpb24gcHJpbnRfc29ja19vcHRtZ210LgorCisJKiBpby5jOiBhZGQgaGFjayB0aGF0IGxldHMgaW9jdGwgZGVjb2RlIGZ1bmN0aW9ucyBzZXQgYXV4aWxsaWFyeQorCXN0cmluZyByZXR1cm4uCisKKwkqIHN0cmVhbS5jOiBiZXR0ZXIgZGVjb2RpbmcgZm9yIHRpbW9kIGlvY3Rscy4KKworCSogbmV0LmM6IGFkZCBmdW5jdGlvbiBwcmludF9zb2NrX29wdG1nbXQsIHVzZWQgYnkgdGltb2QgaW9jdGwKKwlkZWNvZGluZyBmdW5jdGlvbnMgaW4gc3RyZWFtLmMuCisKKzIwMDItMDUtMjMgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogYWNjb25maWcuaDogTWFrZSBhdXRvaGVhZGVyIGhhcHB5IGFib3V0IExpbnV4L1N1cGVySAorCisyMDAyLTA1LTIzICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHN0cmFjZS5jOiBHZXQgcmlkIG9mIHdhcm5pbmcgaWYgbm90IHVzaW5nIFBPTExfSEFDSworCisyMDAyLTA1LTIyICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIG5ldC5jOiBTaW1wbGlmeSB7Z2V0LHNldH1zb2Nrb3B0LCBkZWNvZGUgU09fTElOR0VSLCBjb3BlIHdpdGgKKwlvcHRpb25zIHRoYXQgYXJlIG5vdCBqdXN0IGludHMsIGNvcGUgd2l0aCBzeXN0ZW1zIHRoYXQgZG9uJ3QKKwkjZGVmaW5lIFNPTF9UQ1AgYW5kIHNvIG9uLgorCisyMDAyLTA1LTIxICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHN0cmFjZS5jOiBGaXggd2FybmluZyBpZiBQT0xMX0hBQ0sgaXMgdXNlZC4KKworMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgorCisJKiBzdnI0L2lvY3RsZW50LnNoOiBTb21lIGRlZmluZXMgb24gVVcgY29tZSB3aXRoIHRvbyBtYW55IHNwYWNlcy4KKworMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgorCisJKiBzdnI0L2lvY3RsZW50LnNoOiBDb3BlIHdpdGggI2RlZmluZXMgd3JhcHBlZCBpbiAjaWZkZWZzLgorCisyMDAyLTA1LTE3ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHN0cmVhbS5jOiB0aWR5IHVwIG91dHB1dCBhIGxpdHRsZS4KKworMjAwMi0wNS0xNyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgorCisJKiBwcm9jZXNzLmMsIHN2cjQvZHVtbXkuaCwgc3ZyNC9zeXNjYWxsLmg6IGRlY29kZSBhcmd1bWVudHMKKwl0byBwcm9jcHJpdiBzeXNjYWxsLgorCisyMDAyLTA1LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+CisKKwkqIGNvbmZpZ3VyZS5pbiwgZGVmcy5oLCBwcm9jZXNzLmMsIHNvY2suYywgc3lzY2FsbC5jLCB1dGlsLmM6IG1lcmdlCisJICBwYXRjaCBmcm9tIEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+IGZvciBMaW51eC9TdXBlckgKKwkgIHN1cHBvcnQKKworMjAwMi0wNC0wMSAgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgorCisJKiBzdHJhY2UuYzogY2xvc2UgdGNwLT5vdXRmIGluIGRyb3B0Y2IoKQorCisyMDAyLTA0LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+CisKKwkqIG5ldC5jOiBkZWNvZGUgcGFja2V0IG9wdGlvbnMKKworMjAwMi0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgorCisJKiBsaW51eC97YWxwaGEsaHBwYSxpYTY0LG1pcHMscG93ZXJwYyxzcGFyY30vc3lzY2FsbGVudC5oOiByZWdlbmVyYXRlZAorCisyMDAyLTAzLTMxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+CisKKwkqIGRlYmlhbi8qOiBhZGRlZAorCSogbGludXgvc3lzY2FsbGVudC5oOiBmaXggdHlwbyBhbmQgYWRkIHRoZSByZXNlcnZlZCBzdHJlYW0gc3lzY2FsbHMKKwkqIGRlZnMuaCwgZmlsZS5jLCBpby5jOiBmaXggc2lnbmVkL3Vuc2lnbmVkIGlzc3VlcworCSogc3lzY2FsbC5jOiBjaGVjayBmb3IgbmVnYXRpdmUgdV9lcnJvcnMKKwkqIGN2c2J1aWxkOiByZW5hbWVkIHRvIGF1dG9nZW4uc2gKKworMjAwMS0xMi0xNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworCSogbmV0LmM6IGFkZCBuZXcgVENQIHNvY2tldCBvcHRpb25zCisKKzIwMDEtMTAtMjYgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogc3ZyNC9pb2N0bGVudC5zaDogQ29wZSB3aXRoICNkZWZpbmUgbGluZXMgY29udGFpbmluZworCWNvbW1lbnRzIHRoYXQgdGVybWluYXRlIG9uIHN1YnNlcXVlbnQgbGluZXMuICBVc2VkIHRvCisJY29tbWVudCBvdXQgc3Vic2VxdWVudCBpb2N0bHMhCisKKzIwMDEtMTAtMjUgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKwkqIGxpbnV4L2lvY3RsZW50Lmg6IHJlZ2VuZXJhdGVkIHVzaW5nIGN1cnJlbnQgc2NyaXB0cyBzbworCSAgdGVybSBpb2N0bHMgYXJlIGluY2x1ZGVkCisKKzIwMDEtMTAtMTkgIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIHN0cmFjZS5jKHByb2Nfb3Blbik6IE9uIFNWUjQgb25seSB0cmFjZSB0aGUgc3lzY2FsbHMsCisJc2lnbmFscyBhbmQgZmF1bHRzIHdlIGNhcmUgYWJvdXQuCisKKzIwMDEtMTAtMTggIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIGFjY29uZmlnLmg6IEFkZCBIQVNfU0lHSU5GT19ULgorCSogYWNsb2NhbC5tNDogYWRkIGNoZWNrIGZvciBzaWdpbmZvX3QgaW4gc2lnbmFsLmguCisJKiBjb25maWd1cmUuaW46IHVzZSBjaGVjayBmb3Igc2lnaW5mb190LgorCSogZGVmcy5oOiBpZiBIQVZFX1NJR0lORk9fVCB0aGUgZGVjbGFyZSBwcmludHNpZ2luZm8uICBPbiBTVlI0CisJICBhbGxvdyBhY2Nlc3MgdG8gc2lnaW5mbyB3aGVuIHNpZ25hbCByZWNpZXZlZC4KKwkqIHByb2Nlc3MuYzogUmVtb3ZlIFNWUjQgb25seSB2ZXJzaW9uIG9mIHByaW50c2lnaW5mby4KKwkqIHNpZ25hbC5jOiBtZXJnZSBTVlI0IGFuZCBMSU5VWCB2ZXJzaW9ucyBvZiBwcmludHNpZ2luZm8uCisJKiBzdHJhY2UuYzogb24gU1ZSNCBwcmludCBzaWdpbmZvIHdoZW4gc2lnbmFsIHJlY2lldmVkLgorCisyMDAxLTEwLTE4ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgorCisJKiBzeXN0ZW0uYyhzeXNfc3Npc3lzKTogaGFuZGxlIHJldHVybiB2YWx1ZXMgZm9yIHNzaXN5cworCisyMDAxLTEwLTE4ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgorCisJKiBzaWduYWwuYzogaGFuZGxlIHNpZ3dhaXQKKwkqIHN2cjQvZHVtbXkuYzogTW92ZSBzaWd3YWl0IHRvIGRvbmUKKwkqIHN2cjQvc3lzY2FsbC5oOiBoYW5kbGUgc2lnd2FpdAorCisyMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgorCisJKiBzeXN0ZW0uYyhzeXNfc3Npc3lzKTogZGVjb2RlIHNvbWUgYXJncyBmb3Igc3Npc3lzLgorCisyMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgorCisJKiBtZW0uYzogTVNfU1lOQyBpcyB6ZXJvLCBzbyBtdXN0IGJlIGZpcnN0IGluIHhsYXQgbGlzdC4KKworCSogc3ZyNC9kdW1teS5oOiBtZW1jbnRsIGlzIG11Y2ggbGlrZSBtY3RsLgorCisyMDAxLTEwLTE2ICBKb2huIEh1Z2hlcyAgPGpvaG5AQ2FsdmEuQ09NPgorCisJKiB1dGlsLmMgKHVtb3Zlc3RyKTogVW5peFdhcmUgKHN2cjQ/KSByZXR1cm5zIDAgd2hlbiB0cnlpbmcKKwl0byByZWFkIHVubWFwcGVkIHBhZ2UuICBNYWtlIGl0IHBvc3NpYmxlIHRvIHN0cmFjZSBrc2guCisKKzIwMDEtMTAtMDMgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgorCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogQXZvaWQgcmFjZSBjb25kaXRpb24gYnkgY2xlYXJpbmcKKwlicmVha3BvaW50IGFmdGVyIGF0dGFjaGluZyB0byBjaGlsZC4KKworMjAwMS0xMC0wMiAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBEZWZpbmUgaWEzMiBzeXNjYWxsIG51bWJlcnMgKG9yaWdpbmFsbHkKKwlieSBEb24gRHVnZ2VyLCB3aXRoIG15IHJlZmluZW1lbnRzKS4KKworCSogbGludXgvaWE2NC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlIGFuZCBtYW51YWxseSBtZXJnZSBjb25mbGljdGluZworCWlvY3RscyAoVENHRVRTICYgU05EQ1RMX1RNUl9USU1FQkFTRSwgZXRjLikuCisKKwkqIGxpbnV4L2lhNjQvTWFrZWZpbGUuaW4gKGlvY3RsZGVmcy5oIGlvY3Rscy5oKTogVXBkYXRlIGZvcgorCW5ldyBpb2N0bGVudC5oIGdlbmVyYXRpb24gc2NoZW1lLgorCisJKiBsaW51eC9zeXNjYWxsLmggKHN5c19jbG9uZTIpOiBEZWNsYXJlLgorCVtJQTY0XSBEZWZpbmUgaWEzMiBzb2NrZXQsIGlwYywgYW5kIGV4dHJhIHN5c2NhbGwgbnVtYmVycy4KKworCSogbGludXgvaW9jdGxlbnQuc2ggKHJlZ2V4cCk6IEFsc28gaGFuZGxlIDxhc20vaW9jdGxzLmg+IHNvIHdlCisJZG9uJ3QgbWlzcyB0aGUgdHR5IGlvY3RscyAodW5mb3J0dW5hdGVseSwgc29tZSBvZiB0aGUgc291bmQgdGltZXIKKwlpb2N0bHMgYXJlIGluIGNvbmZsaWN0IHdpdGggdGhlbSEpLgorCisJKiB1dGlsLmMgKHNldGJwdCkgW0lBNjRdOiBBZGQgaWEzMiBzdXBwb3J0IChieSBEb24gRHVnZ2VyKS4KKwkoY2xyYnB0KSBbSUE2NF06IERpdHRvLgorCisJKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBIYW5kbGUgU1lTX2Nsb25lMiwgU1lTMzJfd2FpdDQsCisJYW5kIFNZUzMyX2V4aXQuCisJKGdldF9zY25vKTogR2V0IGlhMzIgc3lzY2FsbCBudW1iZXIgZnJvbSByMSAob3JpZyBlYXgpIGluc3RlYWQgb2YKKwlyOCAoZWF4KS4gIEhhbmRsZSBUQ0JfV0FJVEVYRUNWRS4KKwkoc3lzY2FsbF9maXh1cCk6IEhhbmRsZSBpYTY0LgorCShzeXNjYWxsX2VudGVyKTogRml4IGFyZ3VtZW50IGZldGNoaW5nIGZvciBpYTY0LgorCisJKiBzdHJhY2UuYyBbSUE2NCAmJiBMSU5VWF06IEluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPi4KKwkodHJhY2UpIFtQVF9HRVRTSUdJTkZPXTogUHJpbnQgc2lnbmFsIGFkZHJlc3MgYW5kIHBjIGlmIHBvc3NpYmxlLgorCisJKiBwcm9jZXNzLmMgKHRjcCk6IE5ldyBmdW5jdGlvbi4KKwkoY2hhbmdlX3N5c2NhbGwpOiBBZGQgc3VwcG9ydCBmb3IgaWE2NCBsaW51eC4KKwkoc3lzX2V4ZWN2ZSk6IFR1cm4gb24gVENCX1dBSVRFWEVDVkUgZm9yIGlhNjQgbGludXguCisKKwkqIGRlc2MuYyAoZ2V0bGspOiBDYXN0IGxfbGVuIHRvICJsb25nIGxvbmciIHRvIGF2b2lkIHdhcm5pbmdzIHdoZW4KKwl0eXBlIGlzIG5hcnJvd2VyLgorCSogcmVzb3VyY2UuYyAoc3ByaW50cmxpbTY0KTogRGl0dG8uCisKKwkqIGRlZnMuaCAoVENCX1dBSVRFWEVDVkUpIFtJQTY0XTogRGVmaW5lLgorCVtJQTY0XTogRGVjbGFyZSAiaWEzMiIgdmFyaWFibGUuCisKKwkqIGJqbS5jOiBEbyBub3QgaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+LiAgSXQncyBub3Qgc2FmZSB0byBpbmNsdWRlCisJa2VybmVsIGhlYWRlcnMuICBEZWNsYXJlIHRoZSBuZWNlc3NhcnkgY29uc3RhbnRzIGFuZCBzdHJ1Y3R1cmVzCisJZGlyZWN0bHkgaW5zdGVhZC4KKworMjAwMS0xMC0wMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKwkqIHNpZ25hbC5jIChwYXJzZV9zaWdzZXRfdCk6IE5ldyBmdW5jdGlvbi4KKwkoc2lnaXNoYW5kbGVkKTogRml4IG9mZi1ieS1vbmUgYnVnIGJ5IHVzaW5nIHBhcnNlX3NpZ3NldF90KCkgYW5kCisJYXZvaWRpbmcgcmVseWluZyBvbiBpbnRlcm5hbCBsYXlvdXQgb2Ygc2lnc2V0X3QgZGF0YXN0cnVjdHVyZS4KKworMjAwMS0wNC0yNiAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgZ2V0dW53aW5kKCkuCisKKzIwMDEtMDQtMTEgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgorCisJKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpOiBVc2UgUFRfUkJTX0VORCBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQKKwlQVF9BUl9CU1AuICBQaWNrIHVwIGFyZ3VtZW50cyBzdGFydGluZyB3aXRoIG91dDAsIHdoaWNoIGlzIG5vdAorCWFsd2F5cyB0aGUgc2FtZSBhcyByMzIgKGUuZy4sIGNvbnNpZGVyIGlubGluZWQgc3lzY2FsbHMpLgorCisyMDAxLTA5LTI4ICAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogcHJvY2Vzcy5jOiBGcmVlQlNELUNVUlJFTlQgbm8gbG9uZ2VyIGhhcyBQVF9SRUFEX1UsIGFuZCBhbnl3YXkgd2UKKyAgICB3ZXJlIHNob3dpbmcgaXQgYXMgUFRfV1JJVEVfVSEgIEZpeCBmcm9tIE1heGltZSBIZW5yaW9uLgorCisyMDAxLTA5LTE4ICAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogbmV0LmM6IGZpeCBkaXNwbGF5IG9mIHNvY2thZGRyIHN0cnVjdHVyZXMsIHNvbWV0aW1lcyB0b28gbWFueSAifSIsCisgICAgc29tZXRpbWVzIHRvbyBmZXcuICBGaXggc3VnZ2VzdGVkIGJ5IFJpY2hhcmQgS2V0dGxld2VsbC4KKworMjAwMS0wOC0xOSAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBzaWduYWwuYzogZG8gbm90IGluY2x1ZGUgYXNtL3NpZ2NvbnRleHQuaCBvbiBJQTY0IHNpbmNlIGl0IGdldHMKKyAgICB0aGUgc3RydWN0IGZyb20gYml0cy9zaWdjb250ZXh0LmggYWxyZWFkeSB3aGljaCBzaWduYWwuaCBpbmNsdWRlcy4KKworMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9pb2N0bGVudC5zaDogY2hhbmdlIHJlZ2V4cHMgc28gd2UgY2F0Y2ggc291bmQgaW9jdGxzIGFzIHdlbGwgaW4KKyAgICBMaW51eAorICAqIGxpbnV4L01ha2VmaWxlLmluOiBmaXggYSBmZXcgdGhpbmdzIHNvIHRoZSBpb2N0bCBsaXN0IGlzIGdlbmVyYXRlZAorICAgIHByb3Blcmx5CisgICogaW9jdGwuYzogcmVtZW1iZXIgdG8gc2hpZnQgaW9jdGwgbWFza3MgYXMgd2VsbAorCisyMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIExpbnV4LyoqL3N5c2NhbGxlbnQuaDogc3luY2hyb25pemUgc2VjdGlvbiBmb3IgZmNudGwgYW5kIHVzZSBzeXNfZmNudGwKKyAgICBmb3Igc3lzX2ZjbnRsIGFzIHdlbGwKKworMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogdXBkYXRlZCBmcm9tIE1hdHRoZXcgV2lsY294CisKKzIwMDEtMDgtMDMgICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogcHJvY2Vzcy5jOiBzZWVtcyBMaW51eC9JQTY0IGNoYW5nZWQgcmVnaXN0ZXIgbmFtZXMgb24gdXMsIHN3aXRjaCB0bworICAgIHVzaW5nIG5ldyBuYW1lcy4KKworMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBzdHJhY2UuYzogc2V0IENMT0VYRUMgIGZsYWcgZm9yIG91dHB1dGZpbGUKKworMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9zcGFyYy9zeXNjYWxsLmgsIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogYWRkIHNvbWUgTEZTIGNhbGxzCisKKzIwMDEtMDctMjMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBjb25maWd1cmUuaW46IFN1cHBvcnQgY3Jvc3MtY29tcGlsaW5nIGJldHdlZW4gYXJjaGl0ZWN0dXJlcworCisyMDAxLTA3LTEzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogY29uZmlndXJlLmluOiBhZGQgUzM5MCB0byBhcmNoaXRlY3R1cmUgbGlzdAorCisyMDAxLTA3LTEwICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBUT0RPLCBkZWZzLmgsIGlvLmgsIG5ldC5jLCBzdHJhY2UuYywgc3lzY2FsbC5jLCB1dGlsLmM6IE1lcmdlIGZpeGVzCisgICAgZnJvbSBSaWNoYXJkIEtldHRsZXdlbGwgPHJrZXR0bGV3ZWxsQHpldXMuY29tPiB3aGljaCBhZGQgSS9PIGR1bXBpbmcKKyAgICBvZiBhcmdzIHRvIHJlYWR2L3dyaXRldi4gIEFsc28gZ2V0cyByaWQgb2YgcmVkdW5kYW50IHByaW50aW92ZWMKKyAgICByb3V0aW5lIGZyb20gbmV0LmMgKGR1cGxpY2F0ZSBvZiB0cHJpbnRfaW92IGluIHV0aWwuYykuCisKKzIwMDEtMDctMDIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBjb25maWcue2d1ZXNzLHN1Yn06IHVwZGF0ZWQKKworMjAwMS0wNS0xNSAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogc2lnbmFsLmM6IHBhc3MgYSBwb2ludGVyIHRvIHNpZ21hc2sgdG8gcHJpbnRzaWdtYXNrIGZyb20gcHJpbnRjb250ZXh0LAorICAgIGl0IHdhcyBqdXN0IHBhc3NpbmcgdGhlIHNpZ21hc2sgKHVjcC0+dWNfc2lnbWFzaykuCisKKzIwMDEtMDUtMTUgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIHV0aWwuYzogRG9uJ3QgcnVuIG9mZiB0aGUgZW5kIG9mIHZhbGlkIG1lbW9yeSBpbiB1bW92ZXN0ciB3aGVuCisgICAgVVNFX1BST0NGUy4gIEltcG9ydGFudCBmb3IgRlJFRUJTRCBzeXN0ZW1zICh3aGljaCBzZWVtIHRvIGhhdmUgYW4KKyAgICB1bm1hcHBlZCBwYWdlIGp1c3QgYWZ0ZXIgdGhlIGFyZ3MvZW52IGFyZWEpLgorCisyMDAxLTA0LTE4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBjb25maWd1cmUuaW46IHRlc3QgZm9yIHN5cy9uc2NzeXMuaCwgdGhlIG5vbi1zdG9wIGNsdXN0ZXJzIGluY2x1ZGVzLgorICAqIHByb2Nlc3MuYzogaGFuZGxlIHJmb3JrezEsYWxsfSBhbmQgcmV4ZWN2ZSBjYWxscyBvbiBub24tc3RvcCBjbHVzdGVycy4KKyAgKiBzeXNjYWxsLmM6IHRyZWF0IHJmb3JrezEsYWxsfSBhbmQgZm9ya3sxLGFsbH0gYXMgZm9yayBsaWtlIGNhbGxzLgorICAgIFRyZWF0IHJleGVjdmUgYXMgYW4gZXhlYy4KKyAgKiBzeXN0ZW0uYzogZGVjb2RlIGFyZ3VtZW50cyB0byBzc2lzeXMgY2FsbCBvbiBuc2Mgc3lzdGVtcy4KKyAgKiBzdnI0L2R1bW15LmgsIHN2cjQvc3lzY2FsbC5oOiBub3cgd2UgaGFuZGxlIHJmb3JrezEsYWxsfSwgc3Npc3lzIGFuZAorICAgIHJleGVjdmUgY2FsbHMuCisKKzIwMDEtMDQtMTIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBwcm9jZXNzLmM6IGZpeCBjYXN0IGZvciBwb3dlcnBjIGNvZGUKKyAgKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogdXBkYXRlIHN5c2NhbGwgbGlzdAorICAqIFJFQURNRTogZml4IGFkZHJlc3MgZm9yIHRoZSBzdHJhY2UgbWFpbGluZ2xpc3QKKyAgKiBzaWduYWwuYzogc3dpdGNoIHRvIHVzaW5nIC9wcm9jLzxwaWQ+L3N0YXR1cyBvbiBMaW51eCBzbyB3ZSBjYW4gZ2V0CisgICAgdGhlIHJlYWx0aW1lIHNpZ25hbHMgYXMgd2VsbAorCisyMDAxLTA0LTEwICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgcGF0Y2hlcyBmcm9tIE1hY2llaiBXLiBSb3p5Y2tpOgorICAgICsgdXRpbC5jOiBhZGQgY29kZSB0byBwcmludCBQQyBmb3IgTUlQUworICAgICsgbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IHVwZGF0ZWQKKyAgICArIHN5c3RlbS5jOiBmb3JtYXRpbmcgZml4ZXMgZm9yIHN5c19zeXNtaXBzCisgICAgKyBjb25maWd1cmUuaW46IHRlc3QgZm9yIHlldCBtb3JlIGhlYWRlcnMKKyAgICArIHN0cmVhbS5jOiB1c2UgY29uZmlndXJlLWhlYWRlcnRlc3RzIGluc3RlYWQgb2YgcmVseWluZyBvbiBPUyBoaW50cworCisyMDAxLTA0LTA3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTkVXUzogc3RhcnQgNC4zLjEgaXRlbXMKKyAgKiB2ZXJzaW9uLmM6IHVwZGF0ZWQgdG8gc2F5IDQuMy4xICh3YXMgc3RpbGwgNC4yLCBvb3BzISkKKworMjAwMS0wNC0wNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3IgYXNtL3N5c21pcHMuaCBhbmQgbGludXgvdXRzbmFtZS5oCisgICogbGludXgvc3lzY2FsbC5oOiBmaXggYSB0eXBvIGZvciBzeXNfc3lzbWlwcworICAqIHN5c3RlbS5jOiBpbmNsdWRlIGFzbS9zeXNtaXBzLmggYW5kIGxpbnV4L3V0c25hbWUuaCBpZiB0aGV5IGV4aXN0LAorICAgIGZpeCB0eXBvCisKKzIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9taXBzL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCisKKzIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9pYTY0L2lvY3RsZW50Lmg6IHJlZ2VuZXJhdGVkCisKKzIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC97YWxwaGEsaWE2NCxwb3dlcnBjfS9pb2N0bGVudC5zaDogcmVtb3ZlZCwgYWxsIGFyY2hzIHVzZSB0aGUKKyAgICBnZW5lcmFsIExpbnV4IGlvY3RsZW50LnNoCisKKzIwMDEtMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9pb2N0bGVudC5zaDogYWRkIGRpciB2YXJpYWJsZSBmb3IgbG9jYXRpb24gb2Yga2VybmVsIGhlYWRlcnMKKworMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKKworMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKKworMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2hwcGEvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKKworMjAwMS0wMy0yOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2FscGhhL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCisKKzIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBjb25maWd1cmUuaW46IHVzZSBzcGFyYyogc28gd2UgY2FuIGNvbXBpbGUgb24gc3BhcmM2NCBhcyB3ZWxsCisgICogcHJvY2Vzcy5jLCBzeXNjYWxsLmM6IHdvcmsgYXJvdW5kIGRvdWJsZSBkZWZpbmUgb2YgZnBxLCBmcSBhbmQgZnB1CisgICAgc3RydWN0cyBvbiBMaW51eC9zcGFyYywgYW5kIHVzZSByZWdzIGluc3RlYWQgb2YgcHRfcmVncworICAqIGRvbid0IHVzZSBhc20vc2lnY29udGV4dC5oIG9uIExpbnV4L3NwYXJjCisKKzIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9zcGFyYy9pb2N0bGVudC5oOiB1cGRhdGVkIHVzaW5nIG5ldyBMaW51eCBpb2N0bCBzZXR1cAorCisyMDAxLTAzLTI4ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogc3RyYWNlLmM6IHVzZSBfX1dBTEwgYXMgd2FpdDQgZmxhZyBpZiBpdCBleGlzdHMgc28gd2UgY2FuIHByb3Blcmx5CisgICAgdHJhY2UgdGhyZWFkZWQgcHJvZ3JhbXMKKworMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogYWNsb2NhbC5tNDogYWRkIGNoZWNrIGZvciBlbmRpYW5uZXNzIG9mIGxvbmcgbG9uZy4KKyAgKiBhY2NvbmZpZy5oOiBhZGQgI2RlZmluZSBmb3IgTElUVExFX0VORElBTl9MT05HX0xPTkcuCisgICogY29uZmlndXJlLmluOiBjaGVjayBmb3IgZW5kaWFubmVzcyBvZiBsb25nIGxvbmcuCisgICogZGVmcy5oOiBjaGFuZ2UgTE9OR19MT05HIG1hY3JvIHRvIHdvcmsgd2l0aCBlaXRoZXIgZW5kaWFubmVzcyBvZgorICAgIGxvbmcgbG9uZy4KKworMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogbmV0LmM6IE1ha2UgY29tcGlsYWJsZSBieSBTQ08gVURLIGNvbXBpbGVyIChkb2Vzbid0IGxpa2UgZW1wdHkKKyAgICBpbml0aWFsaXNhdGlvbiBsaXN0IGZvciBhcnJheSkuCisKKzIwMDEtMDMtMjcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIHN2cjQvc3lzY2FsbGVudC5oOiBudHBfYWRqdGltZSBlbnRyeSB3YXMgZHVwbGljYXRlZCBvbiBTb2xhcmlzCisgICAgc3lzdGVtcyAtIGJhZCBtZXJnZSBvZiBIYXJhbGQgQm9laG1lJ3MgcGF0Y2ggYnkgbWUuCisKKzIwMDEtMDMtMjcgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsb3RzIG9mIGZpbGVzOiBhZGQgTGludXgvaHBwYSBzdXBwb3J0CisKKzIwMDEtMDMtMTkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogd2UgY2FuJ3QgaGF2ZSAtMSBuYXJncywgY2hhbmdlIHRvIDAKKyAgKiBsaW51eC9zeXNjYWxsZW50Lmg6IG5vdCB0aGF0IHN5c2NhbGxzIDIyMCBhbmQgMjIxIGFyZSB1c2VkIG5vdworICAqIGNvbmZpZy5ndWVzczogdXBkYXRlZAorCisyMDAxLTAzLTE3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbGludXgvaW9jbHNvcnQuYzogbmV3IGZpbGUKKyAgKiBsaW51eC9pb2N0bGVudC5zaDogY29tcGxldGUgcmV3cml0ZSB0byB1c2UgYSBtb3JlIHNhbmUgYXBwcm9hY2ggdG8gZ2V0CisgICAgdGhlIGlvY3RsIGxpc3QgdGhhdCBkb2Vzbid0IGludm9sdmUgYXR0ZW1wdGluZyB0byAjaW5jbHVkZSBhbGwga2VybmVsCisgICAgaGVhZGVycworICAqIGxpbnV4Ly5jdnNpZ25vcmU6IGFkZGVkIGlvY3RkZWZzLmggYW5kIGlvY3Rscy5oIHdoaWNoIGFyZSBnZW5lcmF0ZWQKKyAgICBieSB0aGUgbmV3IGlvY3RsZW50LnNoCisgICogaW9jdGwuYzogb25seSBsb29rIGF0IHRoZSBudW1iZXIgYW5kIHR5cGUgYml0cyBmb3IgbGludXgsIHNpbmNlCisgICAgaW9jdGxlbnQuc2ggbm8gbG9uZ2VyIHN1cHBsaWVzIHRoZSBvdGhlcnMKKworMjAwMS0wMy0wOCAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogZnJlZWJzZC9zeXNjYWxscy5wbDogT24gRnJlZUJTRCB3ZSBtdXN0IGNvcGUgd2l0aCBDT01QQVRpYmlsaXR5IHN5c2NhbGxzLAorICAgIHByZXRlbmQgdGhleSBoYXZlIG5hbWVzIGVuZGluZyB3aXRoICI/IiBzbyB0aGF0IC1lIHRyYWNlPXN0YXQgKGZvcgorICAgIGV4YW1wbGUpIHdpbGwgd29yay4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBhZGQgPyB0byBjb21wYXRhYmlsaXR5IHN5c2NhbGxzLgorICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmg6IGNvbnNpc3RlbmN5LgorCisyMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBhY2NvbmZpZy5oOiBhZGQgbmV3IFNUX3h4eCBkZWZpbmVzLgorICAqIGFjbG9jYWwubTQ6IG1hY3JvcyB0byBjaGVjayBmb3IgbW9yZSBmaWVsZHMgaW4gc3RydWN0IHN0YXQuCisgICogY29uZmlndXJlLmluOiB1c2UgbmV3IG1hY3JvcyB0byBjaGVjayBmb3IgZmllbGRzIGluIHN0cnVjdCBzdGF0LgorICAqIGZpbGUuYzogdXNlIG5ldyBkZWZpbmVzIHRvIHJlcGxhY2UgI2lmZGVmIEZSRUVCU0QgYnkgI2lmIEhBVkVfU1RfeHh4LgorCisyMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBkZWZzLmg6IHJlbmFtZSB3aW1weSBnZXQ2NCBhcyBwb3dlcmZ1bCBuZXcgTE9OR19MT05HCisgICogZmlsZS5jOiB1c2UgTE9OR19MT05HCisgICogaW8uYzogdXNlIExPTkdfTE9ORworICAqIG1lbS5jIHVzZSBMT05HX0xPTkcKKworMjAwMS0wMy0wOCAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogYWNjb25maWcuaDogbmV3ICNkZWZpbmVzIEhBVkVfTE9OR19MT05HX09GRl9UIGFuZCBIQVZFX0xPTkdfTE9OR19STElNX1QuCisgICogYWNsb2NhbC5tNDogcm91dGluZXMgdG8gY2hlY2sgZm9yIGxvbmcgbG9uZyBvZmZfdCBhbmQgcmxpbV90LgorICAqIGNvbmZpZ3VyZS5pbjogY2hlY2sgZm9yIGxvbmcgbG9uZyBvZmZfdCBhbmQgcmxpbV90LgorICAqIGRlc2MuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdHJlYXQgZmxvY2sgYXMgZmxvY2s2NAorICAqIGZpbGUuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdHJlYXQgc3RhdCxsc3RhdCxmc3RhdCBhbmQgbHNlZWsgYXMgNjQKKyAgICBiaXQgdmVyc2lvbnMuCisgICogaW8uYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiBwcmVhZCBhbmQgcHdyaXRlLgorICAqIG1lbS5jOiBpZiBIQVZFX0xPTkdfTE9OR19PRkZfVCB1c2UgNjQgYml0IHZlcnNpb24gb2YgbW1hcAorICAqIHJlc291cmNlLmM6IGlmIEhBVkVfTE9OR19MT05HX09GRl9UIHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgZ2V0cmxpbWl0CisgICAgYW5kIHNldHJsaW1pdC4KKyAgKiBmcmVlYnNkL3N5c2NhbGxzLnByaW50OiBkb24ndCBleHBsaWNpdGx5IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgY2FsbHMsCisgICAgbm93IGRvbmUgYXV0b21hdGljYWx5IGZvciB1cy4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiBkaXR0by4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oIGRpdHRvLgorCisyMDAxLTAzLTA3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBkZXNjLmM6IE9uIEZyZWVCU0QgZmxvY2sgc3RydWN0dXJlIHVzZXMgNjQgYml0IG9mZnNldHMuCisgICogZmlsZS5jOiBPbiBGcmVlQlNEIHVzZSBzdGF0NjQgYW5kIHBhbHMgaW5zdGVhZCBvZiBzdGF0LgorICAqIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQ6IHVzZSBzdGF0NjQsIGxzdGF0NjQgYW5kIGZzdGF0NjQuCisgICogZnJlZWJzZC9pMzg2L3N5c2NhbGwuaDogZGl0dG8uCisgICogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogZGl0dG8uCisKKzIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGZpbGUuYzogbWVyZ2UgbWlzc2luZyBwYXJ0IG9mIEhhcmFsZCBCw7ZobWUncyBzb2xhcmlzIHBhdGNoZXMsCisgICAgd2FzIG9ubHkgZGVjbGFyaW5nIHN5c197c3RhdDY0LGxzdGF0NjQsZnN0YXQ2NH0gb24gbGludXghCisKKzIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIHN2cjQvZHVtbXkuaDogZml4IG11bHRpcGxlIGRlZmluZSB3YXJuaW5nIG9uIG5vbiBMRlM2NCBzeXN0ZW1zLgorICAqIHN2cjQvc3lzY2FsbGVudC5oOiBwcmVhZC9wd3JpdGUgYXJlIFRGIGNhbGxzLgorCisyMDAxLTAzLTA3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBkZWZzLmg6IGFkZCBBTElHTjY0IG1hY3JvIHRvIGNvcGUgd2l0aCBGcmVlQlNEJ3Mgc3RyYW5nZSBpbnNpc3RlbmNlCisgICAgb24gYWxpZ25tZW50IGZvciBvZmZfdCAoNjQgYml0KSBhcmd1bWVudHMuICBBbHNvIHNpbXBsaWZ5IGdldDY0IHNvCisgICAgd2UgZG9uJ3QgbmVlZCB0byBrbm93IGVuZGlhbm5lc3Mgb2YgbG9uZyBsb25nLgorICAqIGZpbGUuYzogRnJlZUJTRCBub3cgdXNlcyA2NCBiaXQgdmVyc2lvbnMgb2YgbHNlZWssIHRydW5jYXRlLAorICAgIGZ0cnVuY2F0ZSwgYWxsb3dzIHJlZHVjdGlvbiBpbiBudW12YmVyIG9mIGhvcnJpZCAjaWYncworICAqIGlvLmM6IEZyZWVCU0Qgbm93IHVzZXMgNjQgYml0IHZlcnNpb25zIG9mIHByZWFkLCBwd3JpdGUuCisgICogbWVtLmM6IEZyZWVCU0Qgbm93IHVzZXMgNjQgYml0IHZlcnNpb24gb2YgbW1hcC4KKyAgKiBmcmVlYnNkL3N5c2NhbGxzLnByaW50OiB1c2UgNjQgYml0IHZlcnNpb25zIG9mIHZhcmlvdXMgc3lzY2FsbHMuCisgICogZnJlZWJzZC9pMzg2L3N5c2NhbGwuaDogdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiB2YXJpb3VzIHN5c2NhbGxzLgorICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsZW50Lmg6IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgdmFyaW91cyBzeXNjYWxscy4KKworMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogZmlsZS5jOiBJbXBsZW1lbnQgdHJ1bmNhdGU2NCBhbmQgZnRydW5jYXRlNjQKKyAgKiBzdnI0L2R1bW15Lmg6IGFkZCBkdW1taWVzIGZvciB0cnVuY2F0ZTY0IGFuZCBmdHJ1bmNhdGU2NCBmb3Igbm9uCisgICAgTEZTNjQgc3lzdGVtcy4KKyAgKiBzdnI0L3N5c2NhbGwuaDogYWRkIGRlY2xhcmF0aW9ucyBmb3IgdHJ1bmNhdGU2NCBhbmQgZnRydW5jYXRlNjQuCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGZyZWVic2Qvc3lzY2FsbHMucGw6IGZpeCBmb3IgRnJlZUJTRCA0LjEgKG5ldyBvcHRpb25hbCBmaWVsZCBpbgorICAgIHN5c2NhbGwgbWFzdGVyIGZpbGUpLgorCisyMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBzeXNjYWxsLmM6IGZpeCBmb3IgRnJlZUJTRCA0LjEgKFNZU19zZW1jb25maWcgaGFzIGRpc2FwcGVhcmVkKS4gIEFsc28KKyAgICB6YXAgaW5jb3JyZWN0IHN5c2NhbGwgc3ViYXJnIHJhbmdlIGNoZWNrLgorCisyMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBjb25maWd1cmUuaW4sIGRlZnMuaCwgZGVzYy5jLCBmaWxlLmMsIGlvLmMsIG1lbS5jLCBuZXQuYywgcmVzb3VyY2UuYywKKyAgICBzaWduYWwuYywgc3lzY2FsbC5jLCBzdnI0L2R1bW15LmgsIHN2cjQvc3lzY2FsbC5oLCBzdnI0L3N5c2NhbGxlbnQuaDoKKyAgICBtZXJnZSBIYXJhbGQgQsO2aG1lJ3Mgc29sYXJpcyBwYXRjaGVzIChfTEZTNjRfTEFSR0VGSUxFIGFuZCBrZXJuZWwgYWlvCisgICAgbW9zdGx5KS4KKworMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogZHVtbXkuaDogYWRkIHVuaW1wbGVtZW50ZWQgVVcgc3ljYWxscworICAqIHN5c2NhbGwuaDogd2UgY2FuIGRvIHNldHRpbWVvZmRheSBmb3IgVVcsIHdob3BlZSEKKyAgKiBzeXNjYWxsZW50Lmg6IGZpeCB1bmltcGxlbWVudGVkIFVXIHN5c2NhbGxzCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGFjbG9jYWwubTQ6IGxvb2sgZm9yIHByX3N5c2NhbGwgaW4gcHJfbHdwIGlmIHdlIEhBVkVfTVBfUFJPQ0ZTCisgICogZGVmcy5oOiBhZGQgUFJfU1lTQ0FMTCB0byBhbGxvdyB1c2Ugb2YgcHJfbHdwLnByX3N5c2NhbGwgaWYgaXQgZXhpc3RzLgorICAqIHN5c2NhbGwuYzogdXNlIFBSX1NZU0NBTEwgaW5zdGVhZCBvZiBwcl9zeXNjYWxsLCBmaXggdXAgVW5peFdhcmUgY29kZQorICAgIHNvIGl0IGRvZXNuJ3QgdHJ5IHRvIHVzZSBwcl9zeXNhcmcuCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGFjbG9jYWwubTQ6IG9uIHN5c3RlbXMgb3RoZXIgdGhhbiBsaW51eCBsb29rIGZvciBzdGF0NjQgaW4gc3lzL3N0YXQuaAorICAqIGZpbGUuYzogaGFuZGxlIHhzdGF0IHZlcnNpb24gX1NUQVQ2NF9WRVIsIGFrYSBzdGF0NjQuCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIG5ldC5jOiBtYWtlIHN1cmUgU09MXyBvcHRpb25zIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZy4KKyAgKiBzaWduYWwuYzogZGVjbGFyZSBzaWdzZXQgdmFyaWFibGUsIG9ubHkgdXNlZCBvbiBsaW51eCwgaW5zaWRlICNpZmRlZi4KKworMjAwMS0wMi0yMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIG5ldC5jOiBmaXggZm9ybWF0IGZvciBwcmludGluZyBVbml4IGRvbWFpbiBzb2NrZXRzCisKKzIwMDEtMDItMTkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogdXNlIG5ldyBzeXNfc3lzbWlwcworICAqIHN5c3RlbS5jOiBhZGQgc3lzX3N5c21pcHMgZGVjb2RpbmcKKworMjAwMS0wMi0xNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIENSRURJVFM6IGFkZCBBcmthZGl1c3ogTWlza2lld2ljeiA8bWlzaWVrQHBsZC5vcmcucGw+IHdobworICAgIHN1Ym1pdHRlZCB0aGUgSVA2IHNjb3BlIElEIHVwZGF0ZXMKKyAgKiBhY2NvbmZpZy5oOiBhZGQgSEFWRV9TSU42X1NDT1BFX0lEIGFuZCBIQVZFX1NJTjZfU0NPUEVfSURfTElOVVgKKyAgKiBhY2xvY2FsLm00OiBhZGQgQUNfU0lONl9TQ09QRV9JRCB0byBjaGVjayBpZiBzaW42X3Njb3BlX2lkIGlzCisgICAgYXZhaWxhYmxlCisgICogY29uZmlndXJlLmluOiBjaGVjayBmb3IgaWZfaW5kZXh0b25hbWUgZnVuY3Rpb24gYW5kIHNpbjZfc2NvcGVfaWQKKyAgKiBuZXQuYzogdGVhY2ggcHJpbnRzb2NrIGFib3V0IElQNiBzY29wZSBpZHMKKworMjAwMS0wMi0xNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3IgbmV0aW5ldC90Y3AuaCBhbmQgbmV0aW5ldC91ZHAuaCBleGlzdGFuY2UKKyAgKiBuZXQuYzogaW5jbHVkZSBuZXRpbmV0L3RjcC5oIGFuZCBuZXRpbmV0L3VkcC5oIGlmIHRoZXkgZXhpc3QKKyAgKiBNYWtlZmlsZS5pbjogdXNlIEBtYW5kaXJAIGFuZCBAYmluZGlyQAorCisyMDAwLTExLTI2ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogIG5ldC5jOiBmaXggZm9ybWF0aW5nIGVycm9yIGluIHN5c19zZXRzb2Nrb3B0CisgICogIG5ldC5jOiBhZGQgbGlzdCBvZiBzb2NrZXRsYXllcnMgYW5kIHVzZSB0aGF0IGZvciBbZ3NdZXRzb2Nrb3B0CisKKzIwMDAtMTAtMTIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiB0aW1lLmM6IHVzZSBzeXMvdGltZXguaCBzbyB0aGluZ3MgY29tcGlsZSB3aXRoIDIuMiBrZXJuZWxzCisgICogc3RyZWFtLmM6IHRlc3QgaWYgTVNHXyogY29uc3RhbnRzIGFyZSAjZGVmaW5lZAorCisyMDAwLTA5LTAzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogcHJvY2Vzcy5jOiBwZXJmb3JtIGJwdCB0cmljayBmb3IgY2xvbmUgYXMgd2VsbCBzbyB3ZSBjYW4gZ2V0IHRoZQorICAgIHBpZCBvZiB0aGUgY2hpbGQgYmVmb3JlIGl0IHN0YXJ0cyBkb2luZyBzb21ldGhpbmcKKyAgKiBmaWxlLmM6IHJlbmFtZSBkaXJlbnQ2NCBzdHJ1Y3QgdG8ga2VybmVsX2RpcmVudDY0IHNvIHRoaW5ncyBjb21waWxlCisgICAgYWdhaW4gd2l0aCBuZXdlciBsaWJjcworICAqIHRlc3QvY2xvbmUuYzogaW1wcm92ZSBvdXIgdGVzdGNhc2UgYSBiaXQKKyAgKiBNZXJnZSBhbm90aGVyIHBhdGNoIGZyb20gR8OkZWwgUm91YWxsYW5kIHdpdGggRnJlZUJTRCB1cGRhdGVzCisKKzIwMDAtMDktMDEgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsb3RzIG9mIGZpbGVzOiBtZXJnZSBwYXRjaCBmcm9tIEdhw6tsIFJvdWFsbGFuZCB0byBhZGQKKyAgICBzdXBwb3J0IGZvciBGcmVlQlNELgorCisyMDAwLTA4LTA5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogZmlsZS5jOiB1cGRhdGUgdG8gcmVmbGVjdCB0aGF0IHN0X2lubyBzdWRkZW5seSBiZWNhbWUgYSBsb25nIGxvbmcKKyAgICBpbiB0aGUgaW4gTGludXggMi40LjAtdGVzdDYKKworMjAwMC0wOC0wOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHRlc3QvY2xvbmUuYzogbWlub3IgZml4dXAKKyAgKiBBbm90aGVyIGJ1bmNoIG9mIHBhdGNoZXMgZnJvbSBKb2huIEh1Z2hlcyBtZXJnZWQ6CisgICogc2lnbmFsLmM6CisgICAgKyBTVlI0IHByaW50Y29udGV4dCgpOiBzaWdzZXRfdCAhPSBzaWdzZXRfdCoKKyAgICArIGdldGNvbnRleHQgcmV0dXJucyBhIHZhbHVlLCBzbyBwcmludCBvbiBleGl0IG9mIHN5c2NhbGwKKyAgICArIGFkZCBVQ19GUCB0byB1Y29udGV4dF9mbGFncyBmb3IgT1Mgd3JpdGVycyB0aGF0IGNhbid0IHNwZWxsCisgICAgKyBzeXNfc2lnbmFsKCk6IHNwZWNpYWwgY2FzZSBTSUdfe0VSUixERkwsSUdOfQorICAgICsgZGVjb2RlX3N1YmNhbGwoKTogb25seSBkbyBzdWJjYWxsIHJhbmdlIGNoZWNraW5nIHdoZW4gbmVlZGVkCisgICogYnVuY2ggb2YgVW5peFdhcmUgdXBkYXRlcworICAqIGFjbG9jYWwubTQsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjogYWRkIHRlc3QgZm9yIGxvbmcgbG9uZyB0eXBlCisKKzIwMDAtMDctMDQgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBuZXQuYzogYWRkIFNPTF9QQUNLRVQgYW5kIFNPTF9SQVcgc29ja2V0IG9wdGlvbnMsIHVwZGF0ZQorICAgIFNPTF9JUCBhbmQgU09MX1RDUAorCisyMDAwLTA2LTIzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogc3RyYWNlLmM6IGNsb3NlIG91dGYgYmVmb3JlIHdlIGV4ZWMgYSBjaGlsZCBwcm9jZXNzCisKKzIwMDAtMDYtMDkgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgorCisgICogY29uZmlndXJlLmluOiBEb24ndCBsaW5rIGFnYWluc3QgbGlibnNsIG9uIExpbnV4LCBpdCdzIHVubmVjZXNzYXJ5LgorICAqIGRlZnMuaCAoc3RydWN0IHRjYik6IE1ha2UgYXV4c3RyIG1lbWJlciBjb25zdC4KKyAgKiBmaWxlLmMgKGZzbWFnaWMpOiBBbmQgbWFueSBtb3JlIG1hZ2ljIG51bWJlcnMuCisgICogdXRpbC5jOiBEb24ndCBpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4gZm9yIGdsaWJjIDIuMSBhbmQgdXAuCisKKzIwMDAtMDQtMjYgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBkZWZzLmg6IGJhbGFuY2UgI2lmLyNlbmRpZiBhZ2FpbgorICAqIHN5c3RlbS5jOiBmaXggcmV0dXJuIHN0YXRlbWVudHMgaW4gc3lzX2NhcGdldCgpCisgICogTWVyZ2UgdXBkYXRlcyBmcm9tIFRvcGkgTWlldHRpbmVuIDxUb3BpLk1pZXR0aW5lbkBuaWMuZmk+OgorICAgICsgZmlsZS5jOiBhZGQgRl9bU0ddRVRTSUcgdG8gZmNudGwgZmxhZ3MKKyAgICArIHN0cmFjZS5jOiBkb24ndCBzZXRyZVtndV1pZCBpZiBub3QgbmVlZGVkCisgICAgKyBzeXN0ZW0uYzogaGFuZGxlIHN5c19yZWJvb3QgZm9yIExpbnV4CisgICAgKyB0ZXJtLmM6IGFkZCBiYXVkcmF0ZSBjb25zdGFudHMgdXAgdG8gQjQwMDAwMDAKKyAgICArIGxpbnV4LyoqL3N5c2NhbGxlbnQuaDogbm90ZSB0aGF0IG11bmxvY2thbGwgaGFzIG5vIGFyZ3VtZW50cworCisyMDAwLTA0LTI1ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KKworICAqIENSRURJVFM6IGZpeCBlbWFpbCBhZGRyZXNzCisgICogcHJvY2Vzcy5jOiBoYW5kbGUgUFJfW0dTXUVUX1VOQUxJR04gYW5kIFBSX1tHU11FVF9LRUVQQ0FQUworICAqIHNpZ25hbC5jOiBob25vdXIgb2Zmc2V0IG9mIHNpZ2NvbmZpZyBpbiBzaWdmcmFtZSBzdHJ1Y3R1cmUgZm9yCisgICAgTGludXgvaWE2NAorICAqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgcGVyZm1vbmN0bCwgcGl2b3Ryb290LCBtaW5jb3JlLCBhbmQKKyAgICBtYWR2aXNlIHN5c2NhbGxzLgorICAqIHN5c2NhbGwuYyAoc3lzY2FsbF9lbnRlcik6IFdpdGggS2V2aW4ncyBsYXRlc3QgcHRyYWNlIHBhdGNoZXMsCisgICAgQVJfQlNQIHBvaW50cyB0byB0aGUgX2VuZF8gb2YgdGhlIGFjdGl2ZSByZWdpc3RlciBmcmFtZSwgc28gd2UgbmVlZAorICAgIHRvIGFkanVzdCBic3AgYnkgbW92aW5nIGl0IGJhY2sgYnkgdGhlIHNpemUgb2YgdGhlIGFjdGl2ZSBmcmFtZQorICAgIGJlZm9yZSB1c2luZyBpdC4KKworMjAwMC0wNC0yNCAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHByb2Nlc3MuYzogYWRkIHNwYXJjIHN1cHBvcnQgdG8gY2hhbmdlX3N5c2NhbGwKKworMjAwMC0wNC0yMiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBmaXggc29tZSB0eXBvcworCisyMDAwLTA0LTE0ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IGFkZGVkIG5hbWVzIGZvciBTVlI0LCBTWVNWLCBCU0Q0LjMgYW5kIFBPU0lYCisgICAgc3lzY2FsbHMKKworMjAwMC0wNC0xMyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGRlZnMuaDogTGludXgvTUlQUyB1c2VzIHN5c2NhbGxzIHVwIHRvID40aywgc28gc2V0IE1BWF9RVUFMUyB0bworICAgIDQ5OTkKKworMjAwMC0wNC0wOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFJFQURNRS1saW51eDogdXBkYXRlZCB0byBub3RlIHRoYXQgc3RyYWNlIG1pZ2h0IG5vdCBjb21waWxlCisgICAgd2l0aCBkZXZlbG9wbWVudCBrZXJuZWxzCisgICogYmptLmM6IHN5c19xdWVyeV9tb2R1bGU6IGNoZWNrIGlmIG1hbGxvYyBzdWNjZWVkcworICAqIHN5c3RlbS5jOiBzeXNfY2FwW2dzXWV0KCk6IGNoZWNrIGlmIG1hbGxvYyBzdWNjZWVkcywgb25seSBtYWxsb2Mgb25jZQorICAqIGxpbnV4L3N5c2NhbGxlbnQuaDogdXBkYXRlZCBmb3IgMi4zLjk5cHJlMworICAqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogdXBkYXRlZCBmb3IgMi4zLjk5cHJlMywgYWRkIGFsbCBvc2Ygc3lzY2FsbHMKKyAgICBldmVuIHRob3VnaCBMaW51eCBkb2Vzbid0IGltcGxlbWVudCB0aGVtCisgICogc3lzY2FsbC5jOiBhZGQgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgTUlQUyByZWdpc3RlcnMgYXMgd2VsbAorICAqIHN5c2NhbGwuYzogbW92ZSBnbG9iYWwgdmFyaWFibGVzIHRvIGJlZm9yZSBnZXRfc2NubyBzaW5jZSB0aGF0IHVzZXMgdGhlbQorICAqIHV0aWwuYzogb29wcywgbWlzc3BlbGxlZCBkZWZpbmVkCisgICogcHJvY2Vzcy5jOiBmaXggcHRyYWNlIGNhbGxzIGluIGNoYW5nZV9zeXNjYWxsCisgICogbWVtLmM6IGRlY29kZSBzeXNfbWFkdmlzZQorICAqIE1lcmdlIHBhdGNoIGZyb20gVG9waSBNaWV0dGluZW4gPFRvcGkuTWlldHRpbmVuQG5pYy5maT4KKyAgICArIGFkZCBzdXBwb3J0IGZvciBxdW90YWN0bCwgZmRhdGFzeW5jLCBtbG9jaywgbWxvY2thbGwsIG11bmxvY2thbGwgJiBhY2N0CisgICAgKyBzbWFsbCBmaXggZm9yIFJMSU1JVF8qIGFuZCBSVVNBR0VfQk9USAorICAgICsgZW5oYWNlIHN1cHBvcnQgZm9yIGNhcGdldCBhbmQgY2Fwc2V0CisKKzIwMDAtMDItMTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHRlc3QvdmZvcmsuYzogbmV3IGZpbGUgdG8gdGVzdCB2Zm9yayB0cmFjZXMKKyAgKiB0ZXN0Ly5jdnNpZ25vcmU6IG5ldyBmaWxlCisgICogZGVmcy5oOiBVcCBtYXhpbXVtIG51bWJlciBvZiB0cmFjZWQgcHJvY2Vzc2VkIHRvIDY0CisgICogc3RyYWNlLmM6IERpc2FibGUgc29tZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIGRhdmlkbQorICAqIGltcGxlbWVudCBzZXRhcmcgZm9yIG1vcmUgYXJjaGl0ZWN0dXJlcworICAqIGltcGxlbWVudCBjaGFuZ2Vfc3lzY2FsbAorCisxOTk5LTEyLTI3ICBNb3J0ZW4gV2VsaW5kZXIgIDx0ZXJyYUBkaWt1LmRrPgorCisJKiBzeXNjYWxsLmMgKGxvb2t1cF9zaWduYWwsIGxvb2t1cF9kZXNjKTogaXNkaWdpdCByZXF1aXJlcyBhbgorCV91bnNpZ25lZF8gY2hhciBwYXJhbWV0ZXIuCisKKzIwMDAtMDItMTQgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFMzOTAgdXBkYXRlcworCisyMDAwLTAyLTAzIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBMaW51eC9pYTY0IHBhdGNoZXMKKworMjAwMC0wMS0wMiBQYXZlbCBNYWNoZWsJICAgICA8cGF2ZWxAdWN3LmN6PgorCisgICogcHJvYmUgaWYgc3lzL3BvbGwuaCBleGlzdHMgaW4gY29uZmlndXJlICsgbWlub3IgY2xlYW51cHMKKworICAqIHN5c2NhbGwuYzogc3BsaXQgdHJhY2Vfc3lzY2FsbCBpbnRvIGZldyBwaWVjZXMgdG8gbWFrZSBjb2RlIHJlYWRhYmxlCisKKzIwMDAtMDEtMjEgV2ljaGVydCBBa2tlcm1hbiAgPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBSZWxlYXNlIHZlcnNpb24gNC4yIHRvIGdldCB0aGUgY3VycmVudCB1cGRhdGVzIG91dCBhbmQgc28KKyAgICB3ZSBjYW4gY29uY2VudHJhdGUgaW4gZmluaXNoaW5nIHRoZSBjbG9uZSBzdXBwb3J0LgorCisyMDAwLTAxLTExIFdpY2hlcnQgQWtrZXJtYW4gIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogQWRkIDE5MDAgdG8gdG1feWVhciBpbiBzcHJpbnR0aW1lCisKKzE5OTktMTItMjQgIFdpY2hlcnQgQWtrZXJtYW4gIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgKiBmaWxlLmM6IHByb3RlY3QgcHJpbnRzdGF0NjQgd2l0aCBTVEFUNjQgaW5zdGVhZCBvZiBsaW51eCBzbyB3ZSBjYW4KKyAgIGNvbXBpbGUgb24gTGludXggYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUgaXQKKyAqIHV0aWwuYzogZml4IExPT1AgZm9yIEFSTQorCitGcmkgRGVjIDI0IDE4OjA1OjAwIEVTVCAxOTk5CisKKzE5OTktMTItMjMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgorCisgKiBmaWxlLmM6IFVzZSB1Z2x5IGxpYmNfc3RhdCB0cmljayBhbHNvIGZvciBzdGF0NjQuCisgICBJbXBsZW1lbnQgc3lzX3N0YXQ2NCwgc3lzX2ZzdGF0NjQsIHN5c19sc3RhdDY0LCBhbmQgcHJpbnRzdGF0NjQuCisgKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRml4IGEgZmV3IHR5cG9zIGFuZCBhZGQgZGVmaW5pdGlvbnMgdG8gbWFrZQorICAgaXQgYXQgbGVhc3QgY29tcGlsZS4KKyAqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfc3RhdDY0LCBzeXNfbHN0YXQ2NCwgYW5kIHN5c19mc3RhdDY0LgorICogbGludXgvc3lzY2FsbGVudC5oOiBEZWZpbmUgdGFibGUgZW50cmllcyBmb3Igc3lzX3N0YXQ2NCwgc3lzX2xzdGF0NjQsCisgICBhbmQgc3lzX2ZzdGF0NjQuCisgKiBhY2xvY2FsLm00OiBEZWZpbmUgQUNfU1RBVDY0LgorICogYWNjb25maWcuaDogRGVmaW5lIEhBVkVfU1RBVDY0LgorICogY29uZmlndXJlLmluOiBBZGQgQUNfU1RBVDY0LgorCitUaHUgRGVjIDIzIDE1OjAxOjM3IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBwYXRjaCBmcm9tIGZ0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2xpbnV4MzkwLyB0byBhZGQKKyAgICBzdXBwb3J0IGZvciBMaW51eCBvbiB0aGUgSUJNIFMvMzkwIGFyY2hpdGVjdHVyZQorICAqIHByb2Nlc3MuYzogYWRkIGludGVybmFsX2Nsb25lKCksIGN1cnJlbnRseSBvbmx5IHNob3dzIHRoZSBvcHRpb25zCisgICogc3lzY2FsbC5jOiB1c2UgaW50ZXJuYWxfY2xvbmUgdG8gaGFuZGxlIFNZU19jbG9uZQorCitNb24gRGVjIDIwIDAwOjI3OjUwIENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBSZXdyaXRlIG1tYXAtaGFuZGxpbmcgdG8gc3VwcG9ydCBtbWFwMiBvbiBMaW51eAorCitUdWUgRGVjIDE0IDExOjM1OjE2IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBOb3RlIHRoYXQgTGludXggY2FuIGhhbmRsZSBzeXNfc2Vtb3AoKSBhcyB3ZWxsCisKK1R1ZSBOb3YgMzAgMTE6MDU6MjYgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEluY2x1ZGUgbGludXgvaW42LmggZm9yIGdsaWJjMi4wIGFuZCBvbGRlcgorCitNb24gTm92IDI5IDE2OjMzOjA0IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgdG8gbWFrZSBjb25maWd1cmUgc3VwcG9ydCBVbml4V2FyZQorCitTYXQgTm92IDI3IDIxOjM4OjE3IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBFbmhhbmNlIHN5c19xdWVyeV9tb2R1bGUKKworRnJpIE5vdiAyNiAxMDo1MTo1NSBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogUGF0Y2hlcyBmcm9tIEpvaG4gSHVnaGVzOgorICAgICsgY29zbWVjdGljIGZpeCBpbiBzeXNfZ2V0cG1zZworICAgICsgYWxsb3cgbmV0LmMgdG8gY29tcGlsZSBvbiBzeXN0ZW1zIHdpdGhvdXQgQUZfSU5FVDYKKyAgICArIE9ubHkgdXNlIGxvbmdfdG9fc2lnc2V0IG9uIExpbnV4IHN5c3RlbXMKKyAgICArIFVuaXhXYXJlIHRyZWF0cyBzaWdtYXNrX3QgYW5kIHNpZ21hc2tfdCogYXMgdGhlIHNhbWUgdGhpbmcKKyAgICArIEFkZCBwb2xsaGFjaworICAgICsgUGFyc2UgbW91bnQgYXJndW1lbnRzIGZvciBVbml4V2FyZQorICAgICsgQUNMIGZpeGVzIGZvciBVbml4V2FyZQorCitGcmkgTm92IDI2IDAxOjI4OjA5IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBSZWxlYXNlIDQuMSB0byBnZXQgYWxsIHRoZSBjaGFuZ2VzIG1hZGUgb3V0IHRoZXJlCisKK1RodSBOb3YgMTggMTg6MDQ6MDQgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIHN0cmFjZWZvcmsgZnJvbSBBbGV4ZXkgS3V6bmV0c292IDxrdXpuZXRAbXMyLmluci5hYy5ydT4KKyAgICArIFNvY2tldCBjYWxscyBwYXJzZWQgYmV0dGVyCisJKyBidW5jaCBvZiBhbHBoYSBPU0Ygc3lzY2FsbHMgYWRkZWQKKwkrIEZpeCBhbHBoYSAzMi82NCBiaXQgaXNzdWVzCisKK01vbiBOb3YgIDEgMjA6NTI6MDggQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1vdmUgTGludXgga2VybmVsbW9kdWxlLWZ1bmN0aW9ucyBmcm9tIHN5c3RlbS5jIHRvIGJqbS5jIGFuZAorICAgIHJlbW92ZSBkdXBsaWNhdGUgZm9yIHN5c19jcmVhdGVfbW9kdWxlCisgICogTGludXggTUlQUyB1cGRhdGVzOgorICAgICsgUGxheSB3aXRoICNpZmRlZidzIGluIG5ldC5jIHRvIGdldCBJUHY2IHJpZ2h0CisgICAgKyBVc2UgcHJpbnRhcmdzIGZvciB2bTg2LXN5c2NhbGwKKworU3VuIE9jdCAzMSAyMjowMzowMCBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgTGludXggbWlwcyBwYXRjaCBmcm9tIEZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KKworTW9uIE9jdCAxMSAwMDozNjoyNSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIHBhdGNoIGZyb20gS2VpdGggT3dlbnMgPGthb3NAb2NzLmNvbS5hdT4gdG8gc3lzX3F1ZXJ5X21vZHVsZQorICAgIGFuZCBzeXNfZGVsZXRlX21vZHVsZSBjb3JyZWN0bHkKKworV2VkIE9jdCAgNiAwMjowMDozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFVwZGF0ZSBjdnNidWlsZCB0byBnaXZlIGEgYmV0dGVyIGVycm9yIGlmIGF1dG9jb25mIGlzbid0IGluc3RhbGxlZAorICAqIEFkZCB0ZXN0IGZvciBsaW51eC9wdHJhY2UuaCB0byBjb25maWd1cmUKKyAgKiBTaW5jZSB3ZSBkZWZpbmUgR05VX1NPVVJDRSBpbiB0aGUgTWFrZWZpbGUgd2UgZG9uJ3QgbmVlZCB0byBkZWZpbmUKKyAgICBVU0VfR05VIGluIGZpbGUuYyBhbnltb3JlCisKK0ZyaSBTZXAgMTAgMDQ6MzU6MTYgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiAjZGVmaW5lIFVTRV9HTlUgYmVmb3JlIGluY2x1ZGluZyBmaWxlLmMgc28gd2UgZ2V0IHNvbWUgZXh0cmEgT18qIGZsYWdzCisKK1R1ZSBBdWcgMzEgMTY6Mjc6MjEgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBBZGQgbWlzc2luZyB9IGluIElQdjYgb3V0cHV0CisKK1R1ZSBBdWcgMzEgMDE6MjM6MDggQ0VTVCAxOTk5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogVXBkYXRlIGNvcHlyaWdodCBmb3Igc3RyYWNlLWdyYXBoIHRvIEJTRCB0byBiZSBjb25zaXN0ZW50IHdpdGgKKyAgICB0aGUgcmVzdCBvZiBzdHJhY2UKKworTW9uIEF1ZyAzMCAwMDo1Mzo1NyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIHBhdGNoIGZyb20gRGFuaWVsIEphY29ib3dpdHo6IEtFUk5fSkFWQV8qIGFuZCBLRVJOX1NFQ1VSRUxWTCBhcmVuJ3QKKyAgICBkZWZpbmVkIGZvciBhbGwga2VybmVsdmVyc2lvbnMKKyAgKiBBZGQgc3RyYWNlLWdyYXBoLCB3cml0dGVuIGJ5IFJpY2hhcmQgQnJhYWttYW4gPGRhcmtAeHM0YWxsLm5sPgorCitUaHUgQXVnIDE5IDEzOjEwOjE1IENFU1QgMTk5OSBKYWt1YiBKZWxpbmVrIDxqakB1bHRyYS5saW51eC5jej4KKworICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogRGVjbGFyZSBjcmVhdGVfbW9kdWxlL2luaXRfbW9kdWxlLgorICAqIGNvbmZpZ3VyZS5pbjogQWxsb3cgY29tcGlsYXRpb24gaW4gYSBkaWZmZXJlbnQgZGlyZWN0b3J5CisgICAgdGhhbiB0aGUgc291cmNlIG9uZS4KKyAgKiBzaWduYWwuYzogVXNlIGFzbS9yZWcuaCBhbmQgc3RydWN0IHJlZ3MgaW5zdGVhZCBvZiBwdF9yZWdzCisgICAgc28gdGhhdCB3ZSBkb24ndCBkZXBlbmQgb24gYXNtL3B0cmFjZS5oIHdoaWNoIGNsYXNoZXMgd2l0aAorICAgIGdsaWJjIHN5cy9wdHJhY2UuaC4KKyAgKiB1dGlsLmM6IExpa2V3aXNlLgorICAqIHN5c2NhbGwuYzogTGlrZXdpc2UuCisKK1dlZCBBdWcgIDQgMTg6MDE6NTAgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBTeXNjYWxsIDk0IG9uIExpbnV4IGFscGhhIGlzIHN5c19wb2xsCisKK1N1biBKdWwgMjUgMTQ6Mzg6MzMgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBpbiBVbml4V2FyZSBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCitUaHUgSnVsIDE1IDIzOjAwOjMyIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgcGF0Y2ggZnJvbSBNYWNpZWogVy4gUm96eWNraSA8bWFjcm9AZHMyLnBnLmdkYS5wbD46CisgICAgKyBDb3JyZWN0bHkgaW1wbGVtZW50IGZpeCBzeXNfY3JlYXRlbW9kdWxlIChMaW51eCkKKyAgICArIEFkZCBsaW1pdGVkIGhhbmRsaWcgb2Ygc3lzX2luaXRtb2R1bGUgKExpbnV4KQorCitUdWUgSnVsIDEzIDE3OjA3OjUwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogQWRkIGNvbmZpZ3VyZS10ZXN0IGZvciBzeXMvcmVnLmggYW5kIHVzZSB0aGF0CisgICogVXNlIHN5cy9yZWcuaCBpbnN0ZWFkIG9mIGFzbS9wdHJhY2UuaAorCitTYXQgSnVsIDEwIDAxOjQ2OjEwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogUmVtb3ZlIGhhY2sgaW4gc2lnbmFsLmMgZm9yIGFybSBhcmNoaXRlY3R1cmUKKyAgKiBBZGQgaGFjayBzbyB3ZSBjb21waWxlIGNvcnJlY3RseSBvbiBwb3dlcnBjCisKK0ZyaSBKdWwgIDkgMDI6Mjg6MTYgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBBZGQgYSBjb3JyZWN0ZWQgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0egorCitUaHUgSnVsICA4IDE2OjAwOjA0IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0eiB0byBhbGxvdyB1cyB0byB1c2UgdGhlIGtlcm5lbCB0eXBlcworICAgIGZvciB0aGUgc3RhdCBzdHJ1Y3R1cmUKKworVGh1IEp1biAyNCAxNTo1NDoxOCBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEZpeCB0ZXN0IGZvciBzeXMvcmVnIGluY2x1ZGUKKworVHVlIEp1biAyMiAxNzoyNjozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEZpeGVkIHNvbWUgTGludXgvcG93ZXJwYyBzaWxseW5lc3MsIHRoYW5rcyB0byBEYW5pZWwgSmFjb2Jvd2l0egorICAqIEZpeGVkIHNvbWUgU3VuT1MgY29tcGlsZSBwcm9ibGVtcyBlYXJsaWVyIHRoYXQgSSBmb3Jnb3QgdG8gaW5jbHVkZQorICAgIGhlcmUKKworTW9uIEp1biAxNCAxMjo0NDoyNSBDRVNUIDE5OTkKKworICAqIEF2b2lkIGxlYWtpbnQgZmQgaW50byBjaGlsZCB3aGVuIGZvcmtpbmcsIHBhdGNoIGZyb20KKyAgICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKK0ZyaSBKdW4gMTEgMTQ6NTQ6NDcgQ0VTVCAxOTk5CisKKyAgKiBBcHBsaWVkIElSSVg2NCBwYXRjaCBmcm9tIFRob21hcyBFLiBEaWNrZXkgPGRpY2tleUBjbGFyay5uZXQ+CisgICogQXBwbGllZCBTb2xhcmlzIGFuZCBtYW5wYWdlIHVwZGF0ZXMgZnJvbSBHdXkgSGFycmlzIDxndXlAbmV0YXBwLmNvbT4KKworV2VkIEp1biAgOSAxNDo0ODo0OSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEJyb3VnaHQgc3lzY2FsbCBsaXN0IGZvciBhbHBoYSB1cCB0byBkYXRlCisKK1dlZCBKdW4gIDIgMTg6MzA6MTIgQ0VTVCAxOTk5IEpha3ViIEplbGluZWsgPGpqQHVsdHJhLmxpbnV4LmN6PgorCisgICogc3lzdGVtLmM6IHN5c191bW91bnQyIHN5c2NhbGwgc3VwcG9ydC4KKyAgKiBsaW51eC9zcGFyYy9lcnJub2VudC5oOiBVcGRhdGUgc3BhcmMtbGludXggZXJybm9zLgorICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogVXBkYXRlIHVzZWQgc3BhcmMtbGludXggc3lzY2FsbHMuCisgICogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBNYXRjaCAyLjIuOSBzeXN0ZW0gY2FsbHMuCisgICogZmlsZS5jOiBzcGFyYy1saW51eCBhc20vc3RhdC5oIHVzZXMgZGV2X3QgZXRjLiB0eXBlcywKKyAgICBzbyBpdCBuZWVkcyBzdHJhY2UncyBvd24gY29weSBvZiB0aGUgc3RhdCBzdHJ1Y3R1cmUuCisgICogdXRpbC5jOiBNYWtlIGl0IGNvbXBpbGUgb24gc3BhcmMtbGludXguCisgICogc3RyYWNlLmM6IEZpeCBzdHJhY2UgLWYgYW5kIC1mZiBvcGVyYXRpb24gb24gc3BhcmMtbGludXguCisgICogc2lnbmFsLmM6IHJ0X3NpZ2FjdGlvbiBoYXMgZGlmZmVyZW50IGFyZ3VtZW50cyBvbiBzcGFyYyotbGludXgKKyAgICBhbmQgYWxwaGEtbGludXguCisgICogc3lzY2FsbC5jOiBSZWNvZ25pemUgc3BhcmM2NC1saW51eCBiaW5hcmllcy4KKworRnJpIE1heSAyOCAyMTowOTowMCBQU1QgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4KKworICAqIGNvbmZpZ3VyZS5pbjogRml4IHR5cG8gKENGTEFHIC0+IENGTEFHUykuCisKKyAgKiBzeXNjYWxsLmM6IERvbid0IGluY2x1ZGUgbGludXgvcHRyYWNlLmggZXhwbGljaXRseSBmb3IgZ2xpYmMuCisKK1RodSBNYXkgMjcgMTM6NTk6MjcgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBBZGQgc29tZSBzeXNjdGwgc3VwcG9ydCwgcGF0Y2ggZnJvbSBVbHJpY2ggRHJlcHBlcgorCitXZWQgTWF5IDI2IDAxOjA0OjM0IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogVXNlIGtlcm5lbCBkaXJlbnQgc3RydWN0dXJlIGZvciBMaW51eAorCitTdW4gTWF5ICA5IDAyOjE4OjMwIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgaW4gcGF0Y2hlcyBmcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uY3MudW5pLWRvcnRtdW5kLmRlPgorICAgICsgc29tZSBsYXlvdXQgYW5kIG90aGVyIG1pbm9yIGZpeGVzCisgICAgKyBhZGQgc29tZSBtNjhrLXNwZWNpZmljIHRoaW5ncyB0byBsaW51eC9zeXNjYWxsZW50LmguIE5vdGUgdGhhdCBtNjhrCisgICAgICBpcyBzaW1pbGFyIGVub3VnaCB0byBpMzg2IHRvIG5vdCBuZWVkIGl0J3Mgb3duIHN1YmRpcmVjdG9yeQorICAgICsgYWRkIHN1cHBvcnQgZm9yIHNlbmRmaWxlIGFuZCBtcmVtYXAgc3lzY2FsbHMgZm9yIExpbnV4CisgICogTWVyZ2UgaW4gcGF0Y2hlcyBmcm9tIFNhc2NoYSBTY2h1bWFubiA8c2FzY2hhQHNjaHVtYW5uLjJucy5kZT4KKyAgICArIGlvY3Rscy5oIHZzIHN5cy9pb2N0bC5oIG9uIEFscGhhIHBsYXRmb3JtCisgICAgKyBwb2ludGVyIHdhcyBjYXN0ZWQgdG8gYW4gaW50IGluIHN0cmVhbS5jCisgICAgKyBzdHJzaWduYWwoKSBuZWVkcyAtRF9HTlVfU09VUkNFIGluIENGTEFHUworICAgICsgc2V2ZXJhbCBvdGhlciBjYXN0cyBjaGFuZ2VkCisgICAgKyBjb3JyZWN0IEFSTS9QT1dFUlBDIGFyY2hpdGVjdHVyZSBkZWZpbmVzIGluIGFjY29uZmlnLmgKKyAgKiBNZXJnZSBpbiBwYXRjaGVzIGZyb20gTW9ydGVuIFdlbGluZGVyIDx0ZXJyYUBkaWt1LmRrPgorICAgICsgYWRkIHNvbWUgYXV0b2NvbmYtdGVzdHMgZm9yIGluY2x1ZGVmaWxlcworICAgICsgaGFuZGxlIHNvbGFyaXMgdmVyc2lvbiBvZiBzaWdjb250ZXh0IHN0cnVjdCAoYWN0dWFsbHkgSSBoYWNrZWQgdGhpcworICAgICAgdXAgYWdhaW4sIGJ1dCB0aGUgaWRlYSBpcyBoaXMgOikKKworU3VuIEFwciAxOCAyMjozMjo0MiBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFVwZGF0ZSBzeXNjYWxscyBmb3IgbGludXggYWxwaGEsIHBhdGNoIGZyb20gQmFydCBXYXJtZXJkYW0KKyAgICA8YmFydHdAZGViaWFuLm9yZz4KKyAgKiBVcGRhdGUgc3BhcmMgY29kZSBzbyBpdCBhY3R1YWxseSBjb21waWxlcworCitGcmkgQXByIDE2IDAyOjE4OjA1IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogQWRkIHN1cHBvcnQgZm9yIG9sZF8qc3RhdCBmdW5jdGlvbnMgZm9yIExpbnV4LiBQbGVhc2Ugbm90ZSB5b3UgbmVlZAorICAgIHRvIHVzZSByZWFzb25hYmx5IHJlY2VudCBrZXJuZWwgaGVhZGVycyB0byBjb21waWxlIHN0cmFjZSBub3cuCisgICogQ2hhbmdlIHJlZmVyZW5jZXMgdG8gTElOVVggaW50byBsaW51eCBpbiBmaWxlLmMKKyAgKiBGaXggaW5jbHVkZSBmb3IgTERUIGluIG1lbS5jCisKK1RodSBBcHIgMTUgMjI6Mjg6MTUgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBDaGFuZ2UgaW4gc3RyYWNlIG1haW50YWluZXJzaGlwLCBqcnMgcGFzc2VkIHRoZSB0b3JjaCB0byBtZS4KKyAgKiBVc2UgYXV0b2NvbmYgMi4xMworICAqIEluY29ycG9yYXRlIGFsbCBjaGFuZ2VzIGFscmVhZHkgbWFkZSBpbiB0aGUgRGViaWFuIHN0cmFjZSBwYWNrYWdlOgorICAgICsgY29tcGlsZXMgd2l0aCBtb3JlIExpbnV4IGtlcm5lbHMKKyAgICArIGFkZGVkIHN1cHBvcnQgZm9yIG1vcmUgTGludXggYXJjaGl0ZWN0dXJlcworICAgICsgYWRkIHN1cHBvcnQgZm9yIGEgbG90IG9mIGV4dHJhIHN5c2NhbGxzCisgICAgKyBmaXggc29tZSBwcm9ibGVtcyB3aXRoIGhhbmdpbmcgY2hpbGRyZW4KKyAgICArIGNoZWNrIHN0cmF5IHN5c2NhbGwgYWZ0ZXIgZXhlY3YKKyAgICArIGRlY29kZSBjYXBnZXQgYW5kIGNhcHNldCBhcmd1bWVudHMKKyAgICArIGFkZCBtb3JlIGNvbnN0YW50cyB0byBuZXQuYworICAgICsgZGV0ZWN0IFJPU0UgbmV0d29ya2luZworICAgICsgYWRkIG1vcmUgcHJvdG9jb2wgZmFtaWxpZXMgdG8gZG9tYWlucworICAgICsgYWRkIElQSVAgcHJvdG9jb2wKKyAgICArIGFkZGVkIE1TR19QUk9YWSBhbmQgTVNHX0NUUlVOQyB0byBtc2dfZmxhZ3MKKyAgICArIGFkZGVkIFNPX0JTRENPTVBBVCBhbmQgU09fUkVVU0VQT1JUIHRvIHNvY2tvcHRpb25zCisgICAgKyBhZGRlZCBJUCwgSVBYIGFuZCBUQ1Atb3B0aW9ucworICAgICsgYWRkZWQgSVAsIElQWCBhbmQgVENQIHN1cHBvcnQgdG8gZ2V0LS9zZXRzb2Nrb3B0KCkKKyAgICArIGFkZGVkIElQWCBzdXBwb3J0CisgICAgKyB1cGRhdGVkIGhhbmRsaW5nIG9mIHNpZ25hbHMKKworU3VuIE9jdCAyNyAyMjoyODowMCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdXRpbC5jICh1bW92ZXN0cikgW0xJTlVYXTogSGFuZGxlIExpbnV4IGxpa2UgU3VuT1M0CisJaW5zdGVhZCBvZiBTVlI0LiAgVGhhdCBpcywgcmVhZCBhIGZldyBieXRlcyBhdCBhIHRpbWUKKwl0byBhdm9pZCBvdmVycnVubmluZyB0aGUgZW5kIG9mIHRoZSBzdGFjay4KKworRnJpIE1heSAzMSAwMTo0ODo0OSAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMSBpcyByZWxlYXNlZC4KKworVGh1IE1heSAyMyAwMTowNDo0MyAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogYWNsb2NhbC5tNCAoQUNfREVDTF9TWVNfRVJSTElTVCk6IFRyeSBsb29raW5nIGluIHN0ZGlvLmgKKwlhcyB3ZWxsIHNpbmNlIHRoYXQncyB3aGVyZSBnbGliYyBkZWNsYXJlcyBpdC4gIEdvIGZpZ3VyZS4KKwkqIHNpZ25hbC5jIChzeXNfc2lncmV0dXJuKSBbQUxQSEFdOiBVc2Ugc2lnY29udGV4dAorCWluc3RlYWQgb2Ygc2lnY29udGV4dF9zdHJ1Y3Qgc2luY2UgZ2xpYmMgdjUrIGFwcGFyZW50bHkKKwlwbGF5cyBnYW1lcyB3aXRoIHRoZSBuYXRpdmUgT1MgbmFtZXNwYWNlLgorCUZyb20gRGF2aWQgTW9zYmVyZ2VyLVRhbmcgPGRhdmlkbUBBWlN0YXJOZXQuY29tPi4KKworTW9uIE1heSAyMCAyMzoxNzoxNCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xNCBpcyByZWxlYXNlZC4KKworCSogYWNsb2NhbC5tNCAoQUNfU1RSVUNUX01TR19DT05UUk9MKTogTmV3IG1hY3JvLgorCSogY29uZmlndXJlLmluOiBBZGQgY2FsbCB0byBBQ19TVFJVQ1RfTVNHX0NPTlRST0wuCisJKiBuZXQuYyAocHJpbnRtc2doZHIpOiBIYW5kbGUgQlNEIDQuMyBhbmQgNC40IG1zZ2hkciBtZW1iZXJzCisJZGlmZmVyZW50bHkuCisJUmVwb3J0ZWQgYnkgSGVucmlrIFN0b3JuZXIgPHN0b3JuZXJAb3NpcmlzLnBpbmcuZGs+LgorCisJKiBjb25maWd1cmUuaW46IChBQ19DSEVDS197SEVBREVSUyxGVU5DU30pOiBBZGQgY2hlY2tzIGZvcgorCXN5cy9maWxpby5oIGFuZCBzeXMvc3RyZWFtLmggYW5kIHJlbW92ZSBjaGVjayBmb3IgcG9sbC4KKwkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCwgc3lzX3NlbGVjdCwgc3lzX29sZHNlbGVjdCkgW0xJTlVYXToKKwlIYW5kbGUgb2xkIGFuZCBuZXcgc3R5bGVzIG9mIGFyZ3VtZW50IHBhc3NpbmcgZm9yIHNlbGVjdCBvbiBMaW51eC4KKwkqIGlvY3RsLmMsIHN0cmVhbS5jOiBDb25kaXRpb25hbGl6ZSBzdHJlYW0gY29kZSBvbiBwcmVzZW5jZSBvZgorCXN5cy9zdHJlYW0uaCBpbnN0ZWFkIG9mIHBvbGwgYmVjYXVzZSBnbGliYyBpbXBsZW1lbnRzIHBvbGwgYnV0CisJbm90IHRoZSByZXN0IG9mIHRoZSBzdHJlYW0gaW50ZXJmYWNlLgorCSogc2lnbmFsLmMgW0xJTlVYXTogU3RhbmRhcmRpemUgb24gdGhlIG5hbWUgc2lnY29udGV4dF9zdHJ1Y3QuCisJKHN5c19zaWdwcm9jbWFzaykgW0FMUEhBXTogSGFuZGxlIE9TRiBmbGF2b3Igd2hpY2ggaXMgbW9yZSBsaWtlCisJc2lnc2V0bWFzay4KKwkqIHRlcm0uYyAodGVybV9pb2N0bCk6IFVzZSBfVk1JTiwgaWYgcHJlc2VudCwgZm9yIFRDe0csU31FVEEqLgorCSogdXRpbC5jICh1bW92ZW4sIHVtb3Zlc3RyKTogTW92ZSBkYXRhIGluIGxvbmctc2l6ZWQgY2h1bmtzCisJYXQgYSB0aW1lLCBpbnN0ZWFkIG9mIGhhcmQgY29kaW5nIGl0IHRvIGJlIDQuCisJRnJvbSBEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQEFaU3Rhck5ldC5jb20+LgorCitNb24gTWF5IDIwIDAxOjE5OjM2IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEzIGlzIHJlbGVhc2VkLgorCisJKiBjb25maWd1cmUuaW4gKEFDX0NIRUNLX0hFQURFUlMpOiBBZGQgY2hlY2sgZm9yIGFzbS9zaWdjb250ZXh0LmguCisJKiBzaWduYWwuYyBbSEFWRV9BU01fU0lHQ09OVEVYVF9IXTogQ29uZGl0aW9uYWxseSBpbmNsdWRlCisJYXNtL3NpZ2NvbnRleHQuaCB0byBkZWZpbmUgc2lnY29udGV4dF9zdHJ1Y3QgYW5kIGRvbid0IGRlZmluZSBpdAorCWxvY2FsbHkgaWYgdGhlIGhlYWRlciBpcyBwcmVzZW50LgorCisJKiBzeXNjYWxsLmMgKG5lcnJub3N7MCwyfSk6IENvcnJlY3Qgc2l6ZSBjb21wdXRhdGlvbi4KKworCSogTWFrZWZpbGUuaW46IFJlbW92ZSBkZXBlbmRlbmNpZXMgYW5kIHJ1bGVzIHJlbGF0aW5nIHRvIGZpbGVzCisJbm9ybWFsbHkgZm91bmQgaW4gdGhlIG9zIGRpcmVjdG9yeS4gIEJlY2F1c2Ugb2YgdGhlIG5ldyBzY2hlbWUgd2UKKwlkb24ndCBrbm93IHByZWNpc2VseSB3aGVyZSB0aGV5IGNvbWUgZnJvbS4gIFNpZ2guCisJKiBzaWduYWxlbnQuc2g6IE1ha2UgaXQgd29yayBmb3Igc3Vub3M0LCBsaW51eCwgYW5kIHN2cjQuCisJKiB7c3Vub3M0LGxpbnV4eywvYWxwaGF9LHN2cjR9L01ha2VmaWxlLmluOiBNYWtlIHJ1bGVzIGNvcnJlc3BvbmQKKwl0byB0cmFkaXRpb25hbCBtYWtlIHN5bnRheC4gIEFkZCBzaWduYWxlbnQuaCB0byBmaWxlcyB3aGljaCBjYW4KKwl1bmNvbmRpdGlvbmFsbHkgYmUgcmVidWlsdC4gIFByZXZlbnQgc2lnbmFsZW50LmggZnJvbSBiZWluZworCXVuY29uZGl0aW9uYWxseSBiZWluZyByZWJ1aWx0IHNpbmNlIGl0J3MgY3VzdG9taXplZC4KKwkqIHtzdW5vczQsbGludXh7LC9hbHBoYX0sc3ZyNH0ve2lvY3RsZW50LGVycm5vZW50LHNpZ25hbGVudH0uaDoKKwlVc2UgdmVyc2lvbnMgYnVpbHQgYnkge2lvY3RsZW50LGVycm5vZW50LHNpZ25hbHRlbnR9LnNoLgorCSogc3Vub3M0L2lvY3RsZW50LnNoOiBXb3JrIGFyb3VuZCBzcHJpbnRmIHRyb3VibGVzIHdpdGggU3VuT1MKKwk0LjEuNCBhbmQgZ2NjIDIuNy4yLgorCitTdW4gTWF5IDE5IDE3OjE0OjA5IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluOiBBZGQgT1NBUkNIIGNvbmNlcHQgdG8gZmluaXNoCisJYnVpbGQgc3VwcG9ydCBmb3IgdGhlIGFscGhhLgorCSogTWFrZWZpbGUuaW4sIGxpbnV4L01ha2VmaWxlLmluOiBSZXdyaXRlIGNsZWFuLCBkaXN0Y2xlYW4sCisJYW5kIG1haW50YWluZXItY2xlYW4gcnVsZXMuCisJKiBkZWZzLmgsIGlvY3Rsc29ydC5jOiBNYWtlIGlvY3RsIGNvZGUgbWVtYmVyIHVuc2lnbmVkLgorCSogaW9jdGwuYywgaW9jdGxzb3J0LmMgKGNvbXBhcmUpOiBQZXJmb3JtIGV4cGxpY2l0IGNoZWNraW5nCisJZm9yIGxlc3MsIGdyZWF0ZXIsIGFuZCBlcXVhbCBzaW5jZSBzdWJ0cmFjdGlvbiBvbiB0d28ncworCWNvbXBsZW1lbnQgbnVtYmVycyBpc24ndCBhbiBvcmRlciByZWxhdGlvbiAoaXQgaXNuJ3QgdHJhbnNpdGl2ZSkhCisJKiBsaW51eC9NYWtlZmlsZS5pbjogQWRkIHJ1bGVzIGZvciB0aGUgc2lnbmFsZW50LmggZmlsZS4KKwkqIGxpbnV4L2FscGhhL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KKworU3VuIE1heSAxOSAwMToxMjoyOCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xMiBpcyByZWxlYXNlZC4KKworCSogbGludXh7LGFscGhhfS9pb2N0bGVudC5zaDogVHdlYWsgZm9yIHJlY2VudCBrZXJuZWxzLgorCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgorCisJKiBkZWZzLmggKFNVUFBPUlRFRF9QRVJTT05BTElURVMsIERFRkFVTFRfUEVSU09OQUxJVFkpOiBOZXcuCisJKiBzeXNjYWxsLmMgKHNldF9wZXJzb25hbGl0eSk6IE5ldy4KKwkqIHN0cmFjZS5jIChtYWluKTogQ2FsbCBzZXRfcGVyc29uYWxpdHkuCisJKiBkZWZzLmgsIHN5c2NhbGwuYywgaW9jdGwuYywgc2lnbmFsLmM6IE1ha2Ugc3lzZW50LCBlcnJub2VudCwKKwlpb2N0bGVudCwgYW5kIHNpZ25hbGVudCBpbmRpcmVjdCBwb2ludGVycyBhbmQgcmVkaXJlY3QgdGhlbQorCWJhc2VkIG9uIHBlcnNvbmFsaXR5LgorCSoge3N1bm9zNCxzdnI0LGxpbnV4eywvYWxwaGF9fS9zaWduYWxlbnQuaDogTmV3IGZpbGVzLgorCVN1Z2dlc3RlZCBieSBUb20gRHlhcyA8dGR5YXNAZWRlbi5ydXRnZXJzLmVkdT4uCisKKwkqIHV0aWwuYyAodXBlZWspOiBIYW5kbGUgY2FzZSB3aGVyZSBwdHJhY2UgcmV0dXJucyBhIGxvbmcKKwlhbmQgc2l6ZW9mKGxvbmcpICE9IHNpemVvZihpbnQpLgorCUZyb20gUmljaGFyZCBIZW5kZXJzb24gPHJpY2hhcmRAdHdpZGRsZS50YW11LmVkdT4KKworRnJpIE1heSAxNyAyMTowMzozNiAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xMSBpcyByZWxlYXNlZC4KKworCSogbWFueSBmaWxlczogRml4IG1vcmUgcHJpbnRmIHdhcm5pbmdzIGZvciBvdGhlciBwbGF0Zm9ybXMuCisKKwkqIGlwYy5jIChzeXNfbXNncmN2KSBbTElOVVhdOiBDb25kaXRpb25hbGl6ZSBkZWZpbml0aW9uIG9mIGlwY193cmFwcGVyLgorCisJKiBsaW51eC9kdW1teS5oOiBIYW5kbGUgbWlzc2luZyBsaWJyYXJ5IHN1cHBvcnQgZm9yIHtzZW5kLHJlY3Z9bXNnLgorCVJlcG9ydGVkIGJ5IFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGJpZ2J1Zy5mcmFua2VuLmRlPi4KKworCSogbGludXgvc3lzY2FsbC5oIChzeXNfdXRpbWVzKTogRml4IGEgdHlwbyBpbiB0aGUgZGVjbGFyYXRpb24uCisJRnJvbSBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4uCisKK0ZyaSBNYXkgMTcgMDA6NTA6MDYgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMTAgaXMgcmVsZWFzZWQuCisKKwkqIE1ha2ZpbGUuaW46IEFkZCBvcy9hcmNoIHRvIGluY2x1ZGVzIHNvIHRoYXQgYSBnaXZlbiBhcmNoCisJKGxpa2UgYWxwaGEpIGNhbiBvdmVycmlkZSB0aGUgbmF0aXZlIGFyY2ggKGxpa2UgaTM4NikuCisJKiBjb25maWd1cmUuaW46IENoZWNrIGZvciBzZW5kbXNnLgorCisJKiBuZXQuYzogTWFrZSBzZW5kbXNnIGFuZCByZWN2bXNnIGRlcGVuZGVudCBvbiBhbiBhdXRvY29uZgorCXRlc3QuICBSZXBvcnRlZCBieSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCisKKwkqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjogRGV0ZWN0IHRoZSBhbHBoYS4KKwkqIGlvY3RsLmM6IEhhbmRsZSB0aGUgYWxwaGEuCisJKiBkZWZzLmg6IE1ha2Ugc29tZSBtZW1iZXJzIGxvbmcgZm9yIHRoZSBhbHBoYS4gIERlZmluZQorCXNvbWUgcmVnaXN0ZXIgbmlja25hbWVzLiAgQWRkIHN1cHBvcnQgZm9yIFdBSVRFWEVDVkUuCisJKiBmaWxlLmMgW0FMUEhBXTogU3VwcG9ydCB0aGUgYWxwaGEgZm9yIHN0YXRmcy4gIEFkZAorCW9zZl9zdGF0ZnMgYW5kIG9zZl9mc3RhdGZzIGZvciB0aGUgYWxwaGEuICBNYWtlIGRhbW4gc3VyZQorCW1ham9yIGFuZCBtaW5vciByZXN1bHRzIGFyZSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBwcmludGYuCisJKiBzaWduYWwuYywgc3lzY2FsbC5jOiBTdXBwb3J0IHRoZSBhbHBoYS4KKwkqIHByb2Nlc3MuYzogQWRkIGFscGhhIHVzZXIgb2Zmc2V0cy4KKwkqIG1vc3QgZmlsZXM6IFVzZSAlbD8gZm9yIHByaW50ZiBhcmd1bWVudHMgc2luY2UKKwltb3N0IGFyZSBub3cgbG9uZ3MgZm9yIHRoZSBhbHBoYS4KKwkqIGxpbnV4L2FscGhhL3tlcnJub2VudC5oLGlvY3RsZW50LntoLHNofSxzeXNjYWxsZW50Lmh9OgorCU5ldyBmb3IgdGhlIGFscGhhLgorCUZyb20gVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYmlnYnVnLmZyYW5rZW4uZGU+LgorCitXZWQgTWF5IDE1IDAwOjI5OjM3IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjkgaXMgcmVsZWFzZWQuCisKKwkqIGNvbmZpZy5pbiwgY29uZmlnLnN1YiwgaW5zdGFsbC1zaDogVXBncmFkZSB0byBhdXRvY29uZiAyLjEwLgorCisJKiBsaW51eC9kdW1teS5oLCBsaW51eC9zeXNjYWxsZW50LmgsIGxpbnV4L3N5c2NhbGwuaDogQWRkIHJlY2VudAorCUxpbnV4IGtlcm5lbCB2ZXJzaW9uIHN5c3RlbSBjYWxscy4KKworV2VkIE1hciAxMyAwMTowMzozOCAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogaXBjLmMgW1NVTk9TNF06IEFkZCBTdW5PUyBzdXBwb3J0IGZvciBkZWNvZGluZyBJUEMgY2FsbHMuCisJKiBzeXNjYWxsLmMgW1NVTk9TNF06IENvbXBpbGUgZGVjb2RlX3N1YmNhbGwgb24gU3VuT1MgYW5kCisJZGVjb2RlIElQQyBjYWxscyB1c2luZyBpdC4KKwkqIHN1bm9zNC9kdW1teS5oOiBBbGlhcyBzeXNfc2Vtb3AgdG8gcHJpbnRhcmdzLgorCSogc3Vub3M0L3N5c2NhbGwuaDogQWRkIG5ldyBwc2V1ZG8gc3lzY2FsbHMgZm9yIElQQy4KKwkqIHN1bm9zNC9zeXNjYWxsZW50Lmg6IEluY2x1ZGUgbmV3IHN1YmNhbGxzIGZvciBJUEMuCisJRnJvbSBNYXR0aGlhcyBQZmFsbGVyIDxsZW9AZGFjaGF1Lm1hcmNvLmRlPi4KKworVHVlIEZlYiAxMyAyMjowODoyNSAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC44IGlzIHJlbGVhc2VkLgorCisJKiB0aW1lLmMgW0xJTlVYXTogRXhwbGljaXRseSBpbmNsdWRlIGxpbnV4L3ZlcnNpb24uaC4KKworCSogc3RyYWNlLmMgKG1haW4pOiBEb24ndCBsZXQgdGhlbSBldmVuICp0cnkqIHRvCisJZ2V0IHN0cmFjZSB0byBhdHRhY2ggdG8gaXRzZWxmIHNpbmNlIHNvbWUgc3lzdGVtcworCWRvbid0IGhhbmRsZSB0aGlzIGNhc2UgdmVyeSBncmFjZWZ1bGx5LgorCVJlcG9ydGVkIGJ5IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AY2FpcC5ydXRnZXJzLmVkdT4uCisKKwkqIE1ha2VmaWxlLmluIChkaXN0Y2xlYW4pOiBGaXggaXQgZm9yIHN1YmRpcmVjdG9yaWVzLgorCisJKiBzdW5vczQvc3lzY2FsbGVudC5oLCBzdnI0L3N5c2NhbGxlbnQuaDogRmlsbCBpbiB0aGUgbmV3CisJc3lzX2ZsYWdzIG1lbWJlciBmb3IgZWFjaCBkZWZpbmVkIHN5c3RlbSBjYWxsLgorCitGcmkgRGVjICA4IDAxOjE3OjI4IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBkZWZzLmggKFRSQUNFXyopOiBOZXcgZmxhZ3MgdG8gZGVzY3JpYmUgd2hhdCBjbGFzcworCW9mIHN5c3RlbSBjYWxsIGVhY2ggc3lzdGVtIGNhbGwgaXMuCisJKHN5c2VudCk6IEFkZCBzeXNfZmxhZ3MgbWVtYmVyLgorCSogc3lzY2FsbC5jIChzeXNlbnQpOiBEZWZpbmUgKGFuZCBsYXRlciB1bmRlZikgYWJicmV2aWF0aW9ucworCWZvciB0aGUgc3lzdGVtIGNhbGwgY2xhc3MgZmxhZ3MuCisJKGxvb2t1cF9jbGFzcyk6IE5ldyBmdW5jdGlvbiB0byB0cmFuc2xhdGUgc3RyaW5ncyB0bworCXN5c3RlbSBjYWxsIGNsYXNzIGZsYWdzLgorCShxdWFsaWZ5KTogSGFuZGxlIG5ldyBzeXN0ZW0gY2FsbCBjbGFzcyBtZWNoYW5pc20uCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEZpbGwgaW4gdGhlIG5ldyBzeXNfZmxhZ3MgbWVtYmVyCisJZm9yIGVhY2ggZGVmaW5lZCBzeXN0ZW0gY2FsbC4KKworCSogZGVmcy5oIChwcmludF9zb2NrKTogUmVtb3ZlIHJlZHVuZGFudCBhbmQgbm9uLUsmUiBDCisJY29tcGF0aWJsZSBwcm90b3R5cGUuICBGcm9tIEp1ZXJnZW4gV2VpZ2VydAorCTxqbndlaWdlckBpbW1kNC5pbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4uCisKK1RodSBEZWMgIDcgMDE6MTc6NDAgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBUd2VhayB0byBpbXByb3ZlIGlvY3RsIGFjY3VyYWN5LgorCUZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgorCisJKiBzeXN0ZW0uYyAoaW5jbHVkZXMpIFtMSU5VWF06IEFkZCBsaW51eC9uZnMuaCBmb3IgcmVjZW50CisJa2VybmVscy4gIEZyb20gTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgorCitXZWQgRGVjICA2IDIxOjUyOjI4IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBmaWxlLmMgKHNwcmludGZzdHlwZSk6IEVuY2xvc2Ugc3RyaW5nIHJlc3VsdCBpbiBkb3VibGUKKwlxdW90ZXMuCisKKwkqIHRpbWUuYyAoc3lzX2FkanRpbWV4KSBbTElOVVhdOiBDb25kaXRpb25hbGl6ZQorCWNvbnN0YW50bHkgZXZvbHZpbmcgdGltZXggc3RydWN0dXJlLgorCUZyb20gQWFyb24gVWNrbyA8VUNLT0BWQVgxLlJPQ0tIVVJTVC5FRFU+LgorCisJKiBkZWZzLmgsIHN5c2NhbGwuYywgc3RyYWNlLmM6IFJlbmFtZSBzeXNjYWxsIHRvCisJdHJhY2Vfc3lzY2FsbCBhbmQgY2hhbmdlIHByb3RvdHlwZSBhbmQgYWxsIGNhbGxlcnMKKwliZWNhdXNlIG9mIGJyb2tlbiBMaW51eCBzaGFyZWQgbGlicmFyaWVzLgorCUZyb20gQWFyb24gVWNrbyA8VUNLT0BWQVgxLlJPQ0tIVVJTVC5FRFU+LgorCisJKiBNYWtlZmlsZS5pbiAoY2xlYW4pOiBDaGVjayBmb3IgYSBmaWxlIHdpdGggdGVzdCAtZiBub3QKKwl0ZXN0IC1kLiAgRnJvbSBBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4uCisKK1R1ZSBTZXAgMjYgMDI6MzI6MzEgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuNyBpcyByZWxlYXNlZC4KKworCSogdXRpbC5jIChzdHJpbmdfcXVvdGUpOiBGaXggdGhpbmtvIHdoaWNoIGNhdXNlZCBjb3JlCisJZHVtcHMgZm9yIHN0cmluZ3Mgd2l0aCBxdW90ZXMgaW4gdGhlbS4KKwlSZXBvcnRlZCBieSBNYXJ0eSBMZWlzbmVyIDxsZWlzbmVyQHNkc3AubWMueGVyb3guY29tPi4KKworCSogbGludXgvTWFrZWZpbGUuaW4gKGVycm5vZW50LmggcnVsZSk6IEdyYWIgYWxsIGVycm5vLmgKKwlmaWxlcyBmcm9tIC91c3IvaW5jbHVkZSwgbm90IGp1c3QgdGhlIGxpbnV4IG9uZS4KKwlGcm9tIE1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0Pi4KKworCSogbGludXgvZXJybm9lbnQuc2g6IFRvdGFsIHJld3JpdGUgdG8gaGFuZGxlIG1vcmUgaW9jdGxzIHdpdGgKKwlmZXdlciBmYWxzZSBwb3NpdGl2ZXMgb24gbW9yZSBrZXJuZWwgZmxhdm9ycy4KKwlGcm9tIE1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0Pi4KKworTW9uIFNlcCAgNCAwMToyOToyMiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC42IGlzIHJlbGVhc2VkLgorCisJKiBsaW51eC9kdW1teS5oLCBsaW51eC9zeXNjYWxsLmgsIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkCisJc3lzX21zeW5jLgorCSogbWVtLmMgKG1jdGxfZnVuY3MsIG1jdGxfbG9ja2FzLCBzeXNfbWN0bCk6IENvbmRpdGlvbmFsaXplCisJb24gTUNfU1lOQyBpbnN0ZWFkIG9mIEhBVkVfTUNUTC4KKwkobWN0bF9zeW5jKTogQ29uZGl0aW9uYWxpemUgb24gTVNfQVNZTkMgaW5zdGVhZCBvZiBIQVZFX01DVEwuCisJKHN5c19tc3luYyk6IE5ldyBmdW5jdGlvbi4KKworU2F0IFNlcCAgMiAxMjowNjowNCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogbGludXgvZHVtbXkuaCwgbGludXgvc3lzY2FsbC5oLCBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZAorCXN5c19mbG9jayBhbmQgc3lzX2dldGRlbnRzLgorCSogZGVzYy5jIChmbG9ja2NtZHMsIHN5c19mbG9jayk6IENvbmRpdGlvbmFsaXplIG9uIExPQ0tfU0gKKwlub3QgU1VOT1M0LgorCSogZmlsZS5jIChzeXNfZ2V0ZGVudHMpOiBEZWZpbmUgdW5jb25kaXRpb25hbGx5IGFuZCBoYW5kbGUKKwlMSU5VWCBjYXNlLgorCSogc3RyYWNlLmMgKG1haW4pOiBEaXNhbGxvdyB1c2VybmFtZSBvcHRpb24gdW5sZXNzIGJvdGggcmVhbAorCWFuZCBlZmZlY3RpdmUgdWlkcyBhcmUgcm9vdC4KKworV2VkIEF1ZyAzMCAwMToyOTo1OCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pOiBFbnN1cmUgdGhhdCBydW5fdWlkIGFuZCBydW5fZ2lkIGFyZQorCWFsd2F5cyBzZXQgdG8gc29tZXRoaW5nIG1lYW5pbmdmdWwuCisJKG1haW4sIG5ld291dGYpIFshU1ZSNF06IFN3YXAgcmVhbCBhbmQgZWZmZWN0aXZlIHVpZHMgd2hpbGUKKwlvcGVuaW5nIGFueSBvdXRwdXQgZmlsZXMuCisJKG1haW4pIFshU1ZSNF06IFRyZWF0IGVmZmVjdGl2ZSB1aWQgb2Ygcm9vdCBhcyBhIHJlcXVlc3QKKwl0byBoYW5kbGUgc3VpZCBiaW5hcmllcyBjb3JyZWN0bHkgdXNpbmcgdGhlIHJlYWwgdWlkIG9mCisJdGhlIGludm9raW5nIHVzZXIuCisKK1NhdCBBdWcgMTkgMDA6MDY6MDggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIE1ha2VmaWxlLmluOiBBZGQgYHx8IHRydWUnIHRvIGNsZWFuIHJ1bGUgYmVjYXVzZQorCWFsdGhvdWdoIEdOVSBtYWtlIDMuNzQgdXNlcyBgc2ggLWMnIHRvIGludm9rZSBjb21tYW5kcworCWV2ZXJ5IG90aGVyIG1ha2UgaW4gdGhlIHdvcmxkIHVzZXMgYHNoIC1lYycuCisKKwkqIHN5c2NhbGwuYyAoc3lzY2FsbCkgW1NWUjQsIE1JUFNdOiBUaGUgZmlmdGggYW5kIHN1YnNlcXVlbnQKKwlhcmd1bWVudHMgYXBwZWFyIHRvIGJlIHN0b3JlZCBvbiB0aGUgc3RhY2ssIG5vdCBpbiB0aGUKKwlyZWdpc3RlcnMgZm9sbG93aW5nIEEzIChlbXBpcmljYWwgcmVzdWx0KS4KKworCSogZGVmcy5oOiBBZGQgcHJvdG90eXBlIGZvciBwcmludHNvY2suCisJKiBzdnI0L2R1bW15Lmg6IFJlbW92ZSBnZW5lcmljIGhhbmRsaW5nIG9mIHN5c19tb3VudC4KKwkqIHN5c3RlbS5jIFtTVlI0LCBNSVBTXTogSW5jbHVkZSBzZXZlcmFsIHN5c3RlbSBoZWFkZXJzIHRvIGNsZWFubHkKKwlnZXQgYWNjZXNzIHRvIFNHSSBtb3VudCBpbmZvcm1hdGlvbi4KKwkobW91bnRfZmxhZ3MsIG5mc19mbGFncykgW1NWUjQsIE1JUFNdOiBOZXcgb2JqZWN0cy4KKwkoc3lzX21vdW50KSBbU1ZSNCwgTUlQU106IE5ldyBmdW5jdGlvbi4KKwkoc3lzX21vdW50KSBbU1ZSNCwgIU1JUFNdOiBOZXcgZnVuY3Rpb24uCisKK1R1ZSBKdWwgIDQgMDA6MzA6MzQgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuNSBpcyByZWxlYXNlZC4KKworCSogZGVzYy5jLCByZXNvdXJjZS5jLCBzdHJhY2UuYywgc3lzY2FsbC5jLCB0aW1lLmM6IENhc3QgdHZfc2VjIGFuZAorCXR2X3VzZWMgbWVtYmVycyB0byBsb25nIHdoZW4gdXNpbmcgcHJpbnRmLgorCisJKiBpcGMuYzogT21pdCBkZWZpbmUgb2YgX19LRVJORUxfXy4KKwkoe01TRyxTRU0sU0hNfV97U1RBVCxJTkZPfSk6IEV4cGxpY2l0bHkgZGVmaW5lIHRob3NlIHRoaW5ncyB3ZQorCXdhbnQgd2hpY2ggX19LRVJORUxfXyB1c2VkIHRvIHByb3ZpZGUuCisJKHN5c19tc2dyY3YpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvIGlwY19rbHVkZ2Ugc3RydWN0dXJlIHRvCisJbG9vay1hbGlrZSBpcGNfd3JhcHBlciB0byBhdm9pZCBkZXBlbmRlbmNlIG9uIF9fS0VSTkVMX18uCisKKwltZW0uYyAobW1hcF9mbGFncykgW01BUF97R1JPV1NET1dOLERFTllXUklURSxFWEVDVVRBQkxFfV06IEFkZAorCUxpbnV4IHNwZWNpZmljIG9wdGlvbnMuCisKKwlzeXNjYWxsLmM6IFVzZSBTWVNfRVJSTElTVF9ERUNMQVJFRCBpbnN0ZWFkIG9mIGd1ZXNzaW5nLgorCVtFe1JFU1RBUlR7U1lTLE5Pe0lOVFIsSEFORH19LE5PSU9DVExDTUR9XTogRXhwbGljaXRseSBkZWZpbmUKKwlpbnN0ZWFkIG9mIGRlcGVuZGluZyBvZiBfX0tFUk5FTF9fLgorCisJdGVybS5jOiBDYXN0IGNfe2ksbyxjLGx9ZmxhZyB0byBsb25nIHdoZW4gdXNpbmcgcHJpbnRmLgorCitUdWUgSnVuICA2IDAwOjI3OjQ4IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBhY2xvY2FsLm00IChBQ19ERUNMX1NZU19FUlJMSVNULCBBQ19ERUNMX19TWVNfU0lHTElTVCk6IE5ldy4KKwkqIGNvbmZpZ3VyZS5pbjogQ2FsbCBBQ19ERUNMX1NZU19FUlJMSVNULCBBQ19ERUNMX1NZU19TSUdMSVNULAorCWFuZCBBQ19ERUNMX19TWVNfU0lHTElTVC4KKwkqIGFjY29uZmlnLmggKFNZU19FUlJMSVNUX0RFQ0xBUkVEKTogTmV3LgorCSogc3RyYWNlLmMgKHN0cmVycm9yKTogVXNlIFNZU19FUlJMSVNUX0RFQ0xBUkVELgorCShzdHJzaWduYWwpOiBVc2UgU1lTX1NJR0xJU1RfREVDTEFSRUQuCisKKwluZXQuYyAoc3lzX3NvY2tldCk6IE9taXQgaW5hZHZlcnRlbnQgc3VycGx1cyBjb21tYSB3aGVuCisJcHJvdG9jb2wgZmFtaWx5IGlzbid0IFBGX0lORVQuCisKKwl1dGlsLmMgKGR1bXBzdHIpOiBGaXggaW5jb3JyZWN0IHByaW50aW5nIG9mIG9uZSB0b28gbWFueQorCWNoYXJhY3RlcnMgd2hlbiB0aGUgbGVuZ3RoIGlzIG5vdCBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzLgorCVJlcG9ydGVkIGJ5IEp1ZXJnZW4gV2VpZ2VydAorCTxqbndlaWdlckBpbW1kNC5pbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4uCisKK1RodSBNYXkgIDQgMjM6Mzc6NDcgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIGlvY3RsLmMgKGNvbXBhcmUpOiBDaGFuZ2UgcHJvdG90eXBlIHRvIG1hdGNoIFBPU0lYIHFzb3J0LgorCSogc2lnbmFsLmMgKHNpZ2lzaGFuZGxlZCkgW1NWUjRdOiBPbWl0IGV2ZXJ5dGhpbmcgYWZ0ZXIgcmV0dXJuLgorCSogc3RyYWNlLmMgKHRyYWNlKSBbU1ZSNF06IEJyZWFrIG91dCBvZiBmb3IgbG9vcCBpbnN0ZWFkIG9mCisJcmV0dXJuaW5nIHdoZW4gZmluaXNoZWQgc28gZmluYWwgcmV0dXJuIHN0YXRlbWVudCBpcyBleGVjdXRlZC4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IEFkZCBtb3JlIFNZU193YWl0KiB2YXJpYXRpb25zLgorCShzeXNjYWxsKSBbTElOVVhdOiBDb3JyZWN0IHR5cG8gd2hpY2ggY29tbWVudGVkIG91dCB0aGUgTTY4SworCWFyZ3VtZW50IHRvIGlmZGVmLgorCSogdXRpbC5jIChwcmludHN0cik6IENhc3QgdW5zaWduZWQgY2hhciBwb2ludGVyIGFyZ3VtZW50CisJdG8gY2hhciBwb2ludGVyIGluIHVtb3Zlc3RyIGNhbGwuCisJKGR1bXBzdHIpOiBMaWtld2lzZSBmb3IgdW1vdmVuLgorCitXZWQgTWF5ICAzIDAxOjEwOjU2IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjQgaXMgcmVsZWFzZWQuCisKKwkqIHNpZ25hbC5jIChzeXNfc2lnYmxvY2spOiBNb3ZlIGFmdGVyIHRoZSBkZWZpbml0aW9uIG9mCisJc3lzX3NpZ3NldG1hc2sgdGhhdCBpdCBjYWxscyB0byBhdm9pZCBhbiBpbXBsaWNpdCBkZWNsYXJhdGlvbi4KKwkqIHN0cmVhbS5jICh0cmFuc3BvcnRfdXNlcl9vcHRpb25zLCB0cmFuc3BvcnRfc2VydmVyX29wdGlvbnMpOgorCU9ubHkgbmVlZGVkIGlmIFRJX0JJTkQgaXMgZGVmaW5lZC4KKwkqIGNvbmZpZ3VyZS5pbjogQWRkIC1Xbm8taW1wbGljaXQgdG8gV0FSTkZMQUdTIG9uIFN1bk9TIDQueC4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9mb3JrKSBbU1ZSNF06IEZpeCBhIHR5cG8gdGhhdCBvbWl0dGVkCisJdGhlIHRjcCBhcmd1ZW1lbnQgZnJvbSB0aGUgY2FsbCB0byBleGl0aW5nLiAgQWRkIGdldHJ2YWwyCisJY2hlY2sgc28gbm8gZm9yayBwcm9jZXNzaW5nIGlzIGRvbmUgaW4gdGhlIGNoaWxkLgorCShwcmludHdhaXRuKTogSW5pdGlhbGl6ZSBleGl0ZWQgc28gdGhhdCBpdHMgdmFsdWUgaXMgZGVmaW5lZAorCWZvciBhbGwgZmxvd3Mgb2YgZXhlY3V0aW9uLgorCitUdWUgTWF5ICAyIDIyOjM5OjQyIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBsaW51eC9kdW1teS5oOiBBZGQgYWxpYXNlcyBmb3Igc3lzZnMsIHBlcnNvbmFsaXR5LCBhZnNfc3lzY2FsbCwKKwlzZXRmc3VpZCwgc2V0ZnNnaWQsIGFuZCBfbGxzZWVrIHN5c2NhbGxzLgorCSogbGludXgvc3lzY2FsbC5oOiBBZGQgcHJvdG90eXBlcyBmb3IgdGhlbS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHRoZW0gdG8gdGhlIHN5c2NhbGwgZW50cmllcyB0YWJsZS4KKwkqIHN5c3RlbS5jIChoZWFkZXJzKSBbTElOVVhdOiBJbmNsdWRlIGxpbnV4L3VuaXN0ZC5oIHRvIGdldCBfX05SXyoKKwlkZWZpbmVzIGFuZCBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGludXgvcGVyc29uYWxpdHkuaCBpZgorCV9fTlJfcGVyc29uYWxpdHkgaXMgZGVmaW5lZC4KKwkocGVyc29uYWxpdHlfb3B0aW9ucykgW0xJTlVYXTogTmV3IHRhYmxlLgorCShzeXNfcGVyc29uYWxpdHkpIFtMSU5VWF06IE5ldyBmdW5jdGlvbi4KKworVHVlIE1heSAgMiAwMDoyMDozOSAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogc3RyYWNlLmMgKHRyYWNlKSBbIVNWUjRdOiBDaGFuZ2UgZm9yZXZlciBsb29wIHRvIG9uZSBwcmVkaWNhdGVkCisJb24gdGhlIG51bWJlciBvZiB0cmFjZWQgcHJvY2Vzc2VzIHNvIHRoYXQgd2UgY2FuIGhhdmUgdW50cmFjZWQKKwljaGlsZHJlbiAoZS5nLiB2aWEgcG9wZW4pLgorCisJKiBzdHJhY2UgKG1haW4pIFshU1ZSNF06IENhbGwgZmFrZV9leGVjdmUgdG8gZ2V0IHRoZSBhY3R1YWwKKwlleGVjIGFuZCBpdHMgYXJndW1lbnRzIGludG8gdGhlIHRyYWNlLgorCShlbnZpcm9uKTogRGVjbGFyZSBpdC4KKwkqIHByb2Nlc3MuYyAoZmFrZV9leGVjdmUpOiBOZXcgZnVuY3Rpb24uCisJKGhlYWRlcnMpOiBJbmNsdWRlIHN5cy9zeXNjYWxsLmggdG8gZ2V0IFNZU18qIGRlZmluZXMuCisKKwkqIHByb2Nlc3MuYyAoc3lzX2V4ZWN2LCBzeXNfZXhlY3ZlKTogU3Vycm91bmQgYXJndW1lbnQgYW5ub3RhdGlvbnMKKwl3aXRoIEMgY29tbWVudCBkZWxpbWl0ZXJzLgorCShwcmludGFyZ3YsIHByaW50YXJnYyk6IFRoZSBhcmcgdmVjdG9yIGlzIGFuIGFycmF5IG9mIGNoYXIgcG9pbnRlcnMKKwlub3QgaW50cy4KKworCSogc3RyYWNlLmMgKHByaW50bGVhZGVyKTogQWxzbyBjaGVjayBmb3IgbXVsdGlwbGUgLXAgYXJndW1lbnRzCisJd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIHByaW50IHRoZSBwaWQgZmllbGQuCisKKwkqIHN0cmFjZS5jIChzdHJlcnJvcikgWyFIQVZFX1NUUkVSUk9SXTogTmV3IGZ1bmN0aW9uLgorCSogZGVmcy5oIChzdHJlcnJvciwgc3Ryc2lnbmFsKTogQWRkIHRoZXNlIHByb3RvdHlwZXMgaWYgd2UgcHJvdmlkZQorCXRoZSBmdW5jdGlvbnMuCisJKiBjb25maWd1cmUuaW4gKEFDX0NIRUNLX0ZVTkNTKTogQWRkIHN0cmVycm9yLgorCisJKiBzdHJhY2UuYyAobWFpbiwgcHJvY19wb2xsZXIpOiBBZGQgU0lHUElQRSB0byB0aGUgbGlzdCBvZiBjYXVnaHQKKwlhbmQgYmxvY2tlZCBzaWduYWxzLgorCisJKiBzdHJhY2UuYyAobWFpbik6IEFkZCB1c2VybmFtZSBvcHRpb24uICBWZXJpZnkgdGhleSBhcmUgcm9vdCBiZWZvcmUKKwlsZXR0aW5nIHRoZW0gdXNlIGl0LiAgTG9vayB1cCB0aGUgaWRzIGluIHRoZSBwYXNzd29yZCBmaWxlLiAgU2V0CisJdGhlbSBqdXN0IGJlZm9yZSBleGVjdXRpbmcgdGhlIHByb2dyYW0uCisJRnJvbSBSZXViZW4gU3VtbmVyIDxyYXN1bW5lckB1bmRlcmdyYWQubWF0aC51d2F0ZXJsb28uY2E+LgorCitTYXQgQXByIDI5IDAwOjA5OjU2IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjMgaXMgcmVsZWFzZWQuCisKKwkqIHN5c3RlbS5jIChtb3VudF9mbGFncykgW0xJTlVYXTogT21pdCBkdXBsaWNhdGVkIE1TX05PU1VJRCBlbnRyeS4KKwlGcm9tIFJldWJlbiBTdW1uZXIgPHJhc3VtbmVyQHVuZGVyZ3JhZC5tYXRoLnV3YXRlcmxvby5jYT4uCisKKwkqIHN0cmFjZS5jIChvdXRmbmFtZSk6IEluaXRpYWxpemUgdG8gTlVMTC4KKwkobWFpbik6IERlZmVyIG91dHB1dCBmaWxlIHByb2Nlc3NpbmcgdW50aWwgYWZ0ZXIgYXJndW1lbnRzLgorCUFsbG93IGVpdGhlciBhIHBpcGUgb3IgYSBiYW5nIGZvciBjb21tYW5kIGFyZ3VtZW50cy4KKwlDaGVjayBpZiBvdXRmbmFtZSBpcyBOVUxMIGluc3RlYWQgb2YgY2hlY2tpbmcgb3V0ZiBmb3Igc3RkZXJyLgorCVJlaW5pdGlhbGl6ZSBlYWNoIHN0YXJ0dXAgVENCJ3Mgb3V0ZiB0byBmaXggLXAvLW8gb3JkZXJpbmcgYnVnLgorCShkcm9wdGNiKTogUmVzZXQgY2xvc2UgVENCJ3Mgb3V0ZiB0byBOVUxMIGluc3RlYWQgb2Ygc3RkZXJyLgorCSh0cHJpbnRmKTogQXZvaWQgY2FsbGluZyB2ZnByaW50ZiBpZiBvdXRmIGlzIE5VTEwuCisKKwkqIHN0cmFjZS5jIChtYWluKTogVXNlIHBvcGVuIGlmIC1vIGFyZ3VtZW50IGJlZ2lucyB3aXRoIGEgcGlwZS4KKwlGcm9tIE1hcnR5IExlaXNuZXIgPGxlaXNuZXJAc2RzcC5tYy54ZXJveC5jb20+LgorCisJKiBwcm9jZXNzLmMgKHByaW50c3RhdHVzKTogRml4IGEgdHlwbyB3aGVyZSBXSUZTSUdOQUxFRCB3YXMgbWVhbnQKKwlidXQgV0lGU1RPUFBFRCB3YXMgdXNlZC4KKworCSogTWFrZWZpbGUuaW46IEFkZCBhbiBFWFRSQV9ERUZTIHZhcmlhYmxlIGFuZCB1c2UgaXQgaW4gdGhlIC5jLm8KKwlydWxlIHRvIHByZXZlbnQgdGhlIGNvbW1lbnQgZnJvbSBiZWluZyB1bnRydWUuCisKK0ZyaSBBcHIgMjggMjI6MDE6NTYgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHN0cmFjZS5jIChzeXNfZXhpdCk6IE1vdmUgZm9sbG93IGZvcmsgY29kZSB0byBpbnRlcm5hbF9leGl0LgorCShzeXNfZm9yayk6IE1vdmUgZm9sbG93IGZvcmsgY29kZSB0byBpbnRlcm5hbF9mb3JrLgorCShzeXNfZXhlY3YsIHN5c19leGVjdmUpOiBNb3ZlIGZvbGxvdyBmb3JrIGNvZGUgdG8gaW50ZXJuYWxfZXhlYy4KKwkoc3lzX3dhaXRwaWQsIHN5c193YWl0NCk6IE1vdmUgZm9sbG93IGZvcmsgY29kZSB0byBpbnRlcm5hbF93YWl0LgorCSh2Zm9ya2luZyk6IFJlbW92ZSB0aGlzIHN0YXRpYyB2YXJpYWJsZSBhbmQgY2hlY2sgc2NubyBpbgorCWludGVybmFsX2ZvcmsgaW5zdGVhZC4KKwkoaW50ZXJuYWxfZXhpdCwgaW50ZXJuYWxfZm9yaywgaW50ZXJuYWxfZXhlYywgaW50ZXJuYWxfd2FpdCk6IE5ldworCWZ1bmN0aW9ucy4KKwkqIGRlZnMuaDogQWRkIHByb3RvdHlwZXMgZm9yIHRoZSBuZXcgaW50ZXJuYWxfKiBmdW5jdGlvbnMuCisJKiBzeXNjYWxsLmMgKHN5c2NhbGwpOiBNb3ZlIHN5c2NhbGwgZW50ZXJpbmcgdHJhY2UgcXVhbGlmaWVyIGNoZWNrCisJYW5kIHJlcHJpbnQgY2hlY2tpbmcgYWZ0ZXIgY29udGV4dCBkZWNvZGluZyBhbmQgcHJlY2VkZSB0aGVtIHdpdGgKKwlhIGNhbGwgdG8gaW50ZXJuYWxfc3lzY2FsbC4gIFByZWNlZGUgc3lzY2FsbCBleGl0aW5nIHRyYWNlCisJcXVhbGlmaWVyIGNoZWNrIHdpdGggYSBjYWxsIHRvIGludGVybmFsX3N5c2NhbGwuCisJKGludGVybmFsX3N5c2NhbGwpOiBOZXcgZnVuY3Rpb24uCisKKwkqIGRlZnMuaCAoc3RydWN0IHRjYik6IE1ha2Ugc2NubyBzaWduZWQuCisJKiBzdHJhY2UuYyAoc3lzY2FsbCkgTWFrZSB1X2Vycm9yIHNpZ25lZC4KKwlbTElOVVgsIEkzODZdOiBBdm9pZCB1bnNpZ25lZCBjYXN0IGluIGVheCBjaGVjay4KKwkqIHN5c2NhbGwuYyAoc3lzX2luZGlyKTogTWFrZSBpLCBzY25vLCBhbmQgbmFyZ3Mgc2lnbmVkLgorCSogZGVzYy5jIChzeXNfc2VsZWN0KTogTWFrZSBjdW1sZW4gdW5zaWduZWQKKworTW9uIEFwciAyNCAyMzo1Mjo0NyAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogbmV0LmMgKHNvY2t0eXBlcyk6IEFkZCBTT0NLX1BBQ0tFVC4KKworU3VuIEFwciAgMiAyMzo1MDozOSAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogTWFrZWZpbGUgKGNsZWFuKTogQ2hlY2sgZXhwbGljaXRseSBmb3IgYSBNYWtlZmlsZSBpbiBzdWJkaXJzCisJYmVmb3JlIHJ1bm5pbmcgbWFrZSBpbiB0aGVtLgorCitTdW4gTWFyIDI2IDEyOjM3OjIxIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBzdHJhY2UuYyBbTUlQU10gKHByb2Nfb3Blbik6IENvbmRpdGlvbmFsaXplIHJ1biBvbiBNSVBTLgorCVtNSVBTXSAoZGV0YWNoKTogSW5pdGlhbGl6ZSBlcnJvciBmb3IgTUlQUyBjYXNlLgorCSh0cmFjZSk6IEluaXRpYWxpemUgaW9jdGxfcmVzdWx0IGFuZCBpb2N0bF9lcnJubyBmb3Igb3Zlcmx5IGhlbHBmdWwKKwljb21waWxlcnMuCisJKiBzeXNjYWxsLmMgKGRlY29kZV9zdWJjYWxsKTogTW92ZSB2YXJpYWJsZSBpIGludG8gY29uZGl0aW9uYWxzCisJdGhhdCB1c2UgdXNlIGl0LgorCSogc3lzdGVtLmMgKHN5c3NnaV9vcHRpb25zKTogQ29uZGl0aW9uYWxpemUgU0dJX1JFQ1ZMTVNHIGFuZAorCVNHSV9TRVRfRlBERUJVRyB0aGF0IFNHSSBkZWNpZGVkIHRvIGRyb3AuICBJIGRvbid0IGhhdmUgdGhlIHN0b21hY2gKKwl0byBjaGFuZ2UgdGhlbSBhbGwuCisJKiB0ZXJtLmMgKHRlcm1faW9jdGwpOiBGb3JjZSBbY19baW9jbF1mbGFncyBtZW1iZXJzIHRvIGxvbmcgYmVmb3JlCisJcHJpbnRpbmcgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGF0IHRoZSBzaXplIG9mIHRoZWlyIHR5cGUgaXMuCisJKiB1dGlsLmMgW1NWUjQsIE1JUFNdICh1bW92ZW4pOiBQcmV2ZW50IE1JUFMgZnJvbSB1c2luZyBwcmVhZCBldmVuCisJaWYgYXV0b2NvbmYgZGV0ZWN0cyBpdCBzaW5jZSBpdCBzZWVtcyB0byBlaXRoZXIgbm90IHdvcmsgb3IgZG8KKwlzb21ldGhpbmcgZWxzZSBlbnRpcmVseSBvbiBJcml4IDUuMy4KKworU3VuIE1hciAyNiAwMDowMToxMSAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4yIGlzIHJlbGVhc2VkLgorCSogbGludXgvZHVtbXkuaDogTWFrZSBzeXNfZmNoZGlyIGxpa2Ugc3lzX2Nsb3NlIGluc3RlYWQgb2YgcHJpbnRhcmdzCisJc28gdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9yIGFyZyBpcyBkZWNpbWFsLgorCitTYXQgTWFyIDI1IDIyOjUwOjEzIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBuZXQuYyBbTElOVVhdIChwcm90b2NvbHMpOiBFeHBsaWNpdGx5IGRlZmluZSBhbGwgSVBQUk9UT18qIGVudHJpZXMKKwliZWNhdXNlIG9uIExpbnV4IHRoZXkgYXJlIGVudW1lcmF0b3JzLgorCisJKiBzeXN0ZW0uYyBbTElOVVhdIChtb3VudF9mbGFncyk6IEhhbmRsZSByZW5hbWluZyBvZiBNU19TWU5DIHRvCisJTVNfU1lOQ0hST05PVVMuCisKKwkqIHV0aWwuYyAocHJpbnR4dmFsKTogV2hlbiB0aGVyZSBpcyBubyB0cmFuc2xhdGlvbiwgcHJpbnQgdGhlIGFjdHVhbAorCW51bWJlciBmaXJzdCBhbmQgdGhlIHRoZSBkZWZhdWx0IHZhbHVlIGFzIGEgQyBjb21tZW50LgorCisJKiBuZXQuYyAoc3lzX3NlbmQsIHN5c19zZW5kdG8sIHN5c19zZW5kbXNnLCBzeXNfZ2V0c29ja29wdCwKKwlzeXNfc2V0c29ja29wdCk6IENoYW5nZSBmaXJzdCBhcmd1bWVudCBmcm9tIHVuc2lnbmVkIHRvIHNpZ25lZCB0bworCWNhdGVyIHRvIHRoZSBmcmVxdWVudCBwcmFjdGljZSBvZiBjYWxsaW5nIHN5c3RlbSBjYWxscyB3aXRoIGEgZmlsZQorCWRlc2NyaXB0b3Igb2YgLTEuCisJKiBtZW0uYyAoc3lzX21tYXApOiBMaWtld2lzZS4KKworU3VuIE1hciAxOSAxMzo1Mzo1MiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogc2lnbmFsLmMgW0xJTlVYXSAoc2lnbmFsZW50KTogSGFuZGxlIG9sZCBhbmQgbmV3IHZhbHVlcyBvZiBTSUdJTy4KKworU3VuIERlYyAxMSAyMjo1MTo1MSAxOTk0ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4xIGlzIHJlbGVhc2VkLgorCSogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbiwgYWNsb2NhbC5tNDogQ2hhbmdlcyBmb3IgYXV0b2NvbmYgMi4wLgorCSogY29uZmlnLmd1ZXNzLCBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIHRoZSBGU0YuCisJKiBpbnN0YWxsLXNoOiBOZXcgZnJvbSB0aGUgRlNGLgorCitNb24gRGVjICA1IDIwOjUxOjI5IDE5OTQgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBNYWtlZmlsZS5pbjogQWRkIG02OGsgYXJjaC4KKwkqIGFjY29uZmlnLmggKE02OEspOiBBZGQgbTY4ayBkZWZpbmUuCisJKiBjb25maWd1cmUuaW46IEFkZCBkZXRlY3Rpb24gb2YgYXJjaCBtNjhrLgorCSogcHJvY2Vzcy5jIFtNNjhLXSAoc3RydWN0X3VzZXJfb2Zmc2V0cyk6IFN1cHBvcnQgbTY4ayByZWdpc3RlcnMgYW5kCisJb2Zmc2V0cy4KKwkqIHNpZ25hbC5jIFtNNjhLXSAoc2lnY29udGV4dF9zdHJ1Y3QpOiBTdXBwb3J0IG02OGsgc2lnY29udGV4dAorCXN0cnVjdHVyZS4KKwlbTTY4S10gKHN5c19zaWdyZXR1cm4pOiBTdXBwb3J0IG02OGsgc2lncmV0dXJuIGhhbmRsaW5nLgorCSogc3lzY2FsbC5jIFtNNjhLXSAoc3lzY2FsbCk6IFN1cHBvcnQgbTY4ayBzeXNjYWxsIG51bWJlciByZWdpc3RlcgorCWFuZCBlcnJubyBpbiBkMCBpbnN0ZWFkIG9mIGVheC4KKwkqIHV0aWwuYyBbTTY4S10gKGdldHBjLCBwcmludGNhbGwsIHNldGJwdCwgY2xlYXJicHQpOiBTdXBwb3J0IG02OGsKKwlwcm9ncmFtIGNvdW50ZXIgaW4gUFRfUEMgaW5zdGVhZCBvZiBFSVAuCisJW002OEtdIChMT09QKTogU3VwcG9ydCBtNjhrIGxvb3AgaW5zdHJ1Y3Rpb24uCisJRnJvbSBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KKworCSogbWVtLmMgW01BUF9BTk9OWU1PVVNdIChtbWFwX2ZsYWdzKTogQ29ycmVjdCBpbmFkdmVydGVudCByZWZlcmVuY2UKKwl0byBNQVBfRklYRUQgaW5zdGVhZCBvZiBNQVBfQU5PTllNT1VTLgorCUZyb20gQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4uCisKKwkqIHNpZ25hbC5jIFtMSU5VWF0gKHNpZ25hbGVudCk6IFNpZ25hbCAzMCBpcyBub3cgU0lHUFdSLgorCUZyb20gQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4uCisKK01vbiBEZWMgIDUgMDE6MDU6NDYgMTk5NCAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIGRlZnMuaCAodHByaW50Zik6IEZpeCB0eXBvIGluIG5vbi1nY2MgYW5zaSBwcm90b3R5cGUgZm9yIHRwcmludGYuCisJUmVwb3J0ZWQgYnkgVGhhbmggTWEgPHRtYUBlbmNvcmUuY29tPi4KKworCSogc3RyYWNlLmMgKGNsZWFudXApOiBTZW5kIFNJR0NPTlQgYmVmb3JlIFNJR1RFUk0gYmVjYXVzZSBMaW51eAorCTEuMS42MiBkb2Vzbid0IGNvbnRpbnVlIGEgdHJhY2VkIGNoaWxkIHdoZW4gdGhlIHBhcmVudCBleGl0cy4KKwlSZXBvcnRlZCBieSBNYXR0IERheSA8bWRheUBhcnRpc29mdC5jb20+LgorCisJKiBzeXN0ZW0uYyBbTElOVVhdOiBJbmNsdWRlIG5ldGluZXQvaW4uaCBiZWZvcmUgYXJwYS9pbmV0LmguCisKKwkqIHV0aWwuYyAocHJpbnRzdHIpOiBGaXggbG9uZ3N0YW5kaW5nIGJ1ZyBpbiBub3RhdGluZyBzdHJpbmcKKwljb250aW51YXRpb24uCisKKwkqIHN0cmFjZS5jIFtTVlI0XSAocHJvY19vcGVuKTogU3BlY2lmaWNhbGx5IHdhaXQgZm9yIHRoZSBjaGlsZCB0aGUKKwljaGlsZCB0byBnbyBpbnRvIHRoZSBleGVjdmUgc3lzY2FsbCB0byBhdm9pZCBzcHVyaW91cyB0cmFjZXMuCisJW0xJTlVYXSAoZGV0YWNoKTogQ29uZGl0aW9uYWxpemUgdGhlIHN0YXR1cyB2YXJpYWJsZS4KKworU3VuIERlYyAgNCAyMzoyMTo0MiAxOTk0ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogTWFrZWZpbGUuaW46IEFkZCBtaXBzIGFyY2guCisJKiBhY2NvbmZpZy5oIChNSVBTKTogQWRkIG1pcHMgZGVmaW5lLgorCSogY29uZmlndXJlLmluOiBBZGQgZGV0ZWN0aW9uIG9mIG9wc3lzIGlyaXg1IGFuZCBhcmNoIG1pcHMuICBDaGVjaworCWZvciBwcmN0bCBmdW5jdGlvbi4KKwlDaGVjayBmb3Igc3lzL3N5c2NvbmZpZy5oIGhlYWRlci4KKwkqIGRlZnMuaCAoTUFYX0FSR1MpOiBCdW1wIG1heGltdW0gc3lzY2FsbCBhcmd1bWVudHMgZnJvbSA4IHRvIDMyLgorCSogZmlsZS5jIFtTVlI0XTogSW5jbHVkZSBzeXMvY3JlZC5oLgorCShhY2Nlc3NfZmxhZ3MpOiBVcGRhdGUgYWNjZXNzIGZsYWdzIGZvciBTR0kuCisJKHNwcmludHRpbWUpOiBDaGFuZ2UgdHlwZSBvZiBzcHJpbnR0aW1lIGFyZ3VtZW50IGZyb20gdW5zaWduZWQKKwlsb25nIHRvIHRpbWVfdC4KKwkqIHByb2Nlc3MuYyBbSEFWRV9QUkNUTF06IEluY2x1ZGUgc3lzL3ByY3RsLmguCisJW0hBVkVfUFJDVExdIChwcmN0bF9vcHRpb25zLCBzeXNfcHJjdGwpOiBOZXcgZm9yIFNHSS4KKwkocHJpbnRzaWdpbmZvKTogQ29uZGl0aW9uYWxseSBjb21waWxlIFNJX1RJTUVSIGFuZCBTSV9NRVNHUS4KKwlDYXN0IHNpX2JhbmQgbWVtYmVyIHRvIGxvbmcgYmVmb3JlIHByaW50aW5nLgorCSogc2lnbmFsLmMgKHNpZ2FjdF9mbGFncyk6IEFkZCBfU0FfQlNEQ0FMTCBmb3IgU0dJLgorCShzaWdwcm9jbWFza2NtZHMpOiBBZGQgU0lHX1NFVE1BU0szMiBmb3IgU0dJLgorCSogc3RyYWNlLmMgW1NWUjRdIFtNSVBTXToKKwkoZm9vYmFyKTogTmV3IGR1bW15IHNpZ25hbCBoYW5kbGVyLgorCShtYWluKTogSW5zdGFsbCBhIGR1bW15IHNpZ25hbCBoYW5kbGVyIGluIHRoZSBjaGlsZCBiZWZvcmUgcGF1c2luZworCXRvIHdvcmsgYXJvdW5kIGFuIFNHSSBidWcgaW4gUFJTQUJPUlQuCisJKHByb2Nfb3Blbik6IFNlbmQgYSBpbnRlcnJ1cHQgdG8gdGhlIGNoaWxkIGluc3RlYWQgb2YgYWJvcnRpbmcgdGhlCisJc3lzY2FsbCB3aGljaCBkb2Vzbid0IHdvcmsgb24gSXJpeDUuMi4KKwkqIHN2cjQvZHVtbXkuaDogQWRkIG5ldyB1bmZpbmlzaGVkIFNHSSBzeXNjYWxscworCShlLmcuIHN5c19zeXNtcCwgc3lzX3NnaW5hcCwgZXRjLikuICBIYW5kbGUgc29tZSBTR0kgc3lzY2FsbHMgbGlrZQorCWV4aXN0aW5nIGNhbGxzIChlLmcuIHN5c19rc2lnYWN0aW9uIGxpa2Ugc3lzX3NpZ2FjdGlvbikuCisJUHJpbnRhcmdzIGRvZXMgdGhlIHByaW50IHRoaW5nIGZvciBzeXNfc2V0aG9zdGlkLgorCSogc3ZyNC9zeXNjYWxsLmg6IERlY2xhcmUgYWxsIG5ldyBTR0kgc3lzY2FsbHMuCisJKFNHSV9LTFVER0UpOiBEZWZpbmUgc3lzY2FsbCB0YWJsZSBzdGFydGluZyBpbmRleCB0byBiZSAxIGZvciBTR0kKKwlhbmQgYWRkIGl0IHRvIGFsbCBzdWJjYWxsIGVudHJ5IHBvaW50cy4KKwkoU1lTX3BncnBzeXNfc3ViY2FsbCwgU1lTX3NpZ2NhbGxfc3ViY2FsbCwgU1lTX2NvbnRleHQpOiBEb24ndAorCWRlY29kZSBhcyBzdWJjYWxscyBvbiBNSVBTLiBJbnN0ZWFkLCB1c2UgdGhlIG5vcm1hbCBzeXNjYWxscy4KKwkqIHN2cjQvc3lzY2FsbGVudC5oIFtNSVBTXTogTGVhZCBzeXNjYWxsIHRhYmxlIHdpdGggYSBkdW1teSBlbnRyeQorCXNpbmNlIFNHSSBzeXNjYWxsIG51bWJlcnMgYXJlIG9mZiBieSBvbmUuCisJW01JUFNdIChzeXNfcGdycHN5cyk6IFJlbmFtZSB0byBzeXNfc2V0cGdycCBvbiBTR0kuCisJW01JUFNdIChzeXNfeGVuaXgpOiBSZW5hbWUgdG8gc3lzX3N5c3NnaSBvbiBTR0kuCisJW01JUFNdIChzeXNfc3lzbWFjaGluZSk6IFJlbmFtZSB0byBzeXNfc3lzbWlwcyBvbiBTR0kuCisJW01JUFNdOiBDb25kaXRpb25hbGl6ZSBTVlI0IGV4dGVuc2lvbiBpbnRvIFNHSSBhbmQgU29sYXJpcyBjbGFzc2VzLgorCSogc3lzY2FsbC5jIChkdW1waW8pOiBWYWxpZGF0ZSBkZXNjcmlwdG9yIGFnYWluc3QgTUFYX1FVQUxTLgorCVtIQVZFX1BSX1NZU0NBTExdIChzeXNjYWxsKTogQ29uZGl0aW9uYWxpemUgU1lTX3Zmb3JrLgorCVtNSVBTXSAoc3lzY2FsbCk6IEFkZCBTR0kgc2VjdGlvbiBmb3IgZGVjb2RpbmcgdV9lcnJvciBhbmQgdV9ydmFsLgorCUFkZCB3b3JrYXJvdW5kIGZvciBicm9rZW4gU0dJIHByX3N5c2FyZyBvbiBzeXNjYWxsIGVudHJ5LgorCVtTVlI0XSAoc3lzY2FsbCk6IENvbmRpdGlvbmFsaXplIHN1YmNhbGwgZGVjb2RpbmcgZm9yCisJU1lTX3B0cnBzeXNfc3ViY2FsbCwgU1lTX3NpZ2NhbGxfc3ViY2FsbCBhbmQgU1lTX2NvbnRleHRfc3ViY2FsbC4KKwlbU1ZSNF0gW01JUFNdIChnZXRydmFsMik6IEhhbmRsZSBTR0kuCisJKiBzeXNjYWxsZW50LnNoOiBEb3JrIHRoZSBzZWQgbGluZSB0byBiZSBjaG9vc2llciBhYm91dCBTWVNfIGxpbmVzLgorCSogc3lzdGVtLmMgW0hBVkVfU1lTQ09ORklHX0hdOiBJbmNsdWRlIHN5cy9zeXNjb25maWcuaC4KKwlbTUlQU10gKHN5c3NnaV9vcHRpb25zLCBzeXNfc3lzc2dpKTogTmV3IGZvciBTR0kuCmRpZmYgLS1naXQgYS9JTlNUQUxMIGIvSU5TVEFMTAppbmRleCBhMmM4NzIyLi43YTExZWQwIDEwMDY0NAotLS0gYS9JTlNUQUxMCisrKyBiL0lOU1RBTEwKQEAgLTE3OCw0ICsxNzgsMyBAQAogICAgICBzY3JpcHQsIGFuZCBleGl0LgogCiBgY29uZmlndXJlJyBhbHNvIGFjY2VwdHMgc29tZSBvdGhlciwgbm90IHdpZGVseSB1c2VmdWwsIG9wdGlvbnMuCi0KZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1OTA5MjYuLjAwMDAwMDAKLS0tIGEvTWFrZWZpbGUuYW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotIyBBdXRvbWFrZSBpbnB1dCBmb3Igc3RyYWNlLgotCi1iaW5fUFJPR1JBTVMgPSBzdHJhY2UKLW1hbl9NQU5TID0gc3RyYWNlLjEKLWJpbl9TQ1JJUFRTID0gc3RyYWNlLWdyYXBoCi0KLSMgT1MgaXMgb25lIG9mIGBsaW51eCcsIGBzdW5vczQnLCBgc3ZyNCcsIG9yIGBmcmVlYnNkJy4KLU9TCQk9IEBvcHN5c0AKLSMgQVJDSCBpcyBgaTM4NicsIGBtNjhrJywgYHNwYXJjJywgZXRjLgotQVJDSAkJPSBAYXJjaEAKLQotQU1fQ0ZMQUdTID0gJChXQVJORkxBR1MpCi1JTkNMVURFUyA9IC1JJChPUykvJChBUkNIKSAtSSQoc3JjZGlyKS8kKE9TKS8kKEFSQ0gpIC1JJChPUykgLUkkKHNyY2RpcikvJChPUykKLQotc3RyYWNlX1NPVVJDRVMgPSBzdHJhY2UuYyBzeXNjYWxsLmMgdXRpbC5jIGRlc2MuYyBmaWxlLmMgaXBjLmMgXAotCQkgaW8uYyBpb2N0bC5jIG1lbS5jIG5ldC5jIHByb2Nlc3MuYyBiam0uYyBcCi0JCSByZXNvdXJjZS5jIHNpZ25hbC5jIHNvY2suYyBzeXN0ZW0uYyB0ZXJtLmMgdGltZS5jIFwKLQkJIHByb2MuYyBzdHJlYW0uYwotbm9pbnN0X0hFQURFUlMgPSBkZWZzLmgKLQotRVhUUkFfRElTVCA9ICQobWFuX01BTlMpIGVycm5vZW50LnNoIHNpZ25hbGVudC5zaCBzeXNjYWxsZW50LnNoIGlvY3Rsc29ydC5jIFwKLSAgICAgCSAgICAgZGViaWFuL2NoYW5nZWxvZyBkZWJpYW4vY29udHJvbCBkZWJpYW4vY29weXJpZ2h0IGRlYmlhbi9ydWxlcyBcCi0JICAgICBzdHJhY2Uuc3BlYyBcCi0JICAgICBzdHJhY2UtZ3JhcGggQ09QWVJJR0hUIENSRURJVFMgUE9SVElORyBcCi0JICAgICBSRUFETUUtQ1ZTIFJFQURNRS1mcmVlYnNkIFJFQURNRS1saW51eCBSRUFETUUtc3Vub3M0IFJFQURNRS1zdnI0IFwKLQkgICAgIGxpbnV4L2lvY3Rsc29ydC5jIGxpbnV4L2lvY3RsZW50LnNoIFwKLQkgICAgIGxpbnV4L2lvY3RsZW50LmggbGludXgvZXJybm9lbnQuaCBsaW51eC9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9zeXNjYWxsLmggbGludXgvc3lzY2FsbGVudC5oIGxpbnV4L2R1bW15LmggXAotCSAgICAgbGludXgvYWxwaGEvZXJybm9lbnQuaCBsaW51eC9hbHBoYS9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L2FscGhhL3NpZ25hbGVudC5oIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9ocHBhL2Vycm5vZW50LmggbGludXgvaHBwYS9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L2hwcGEvc2lnbmFsZW50LmggbGludXgvaHBwYS9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvaWE2NC9zeXNjYWxsZW50LmggbGludXgvaWE2NC9lcnJub2VudC5oIFwKLQkgICAgIGxpbnV4L2lhNjQvaW9jdGxlbnQuaCBsaW51eC9pYTY0L3NpZ25hbGVudC5oIFwKLSAgICAgCSAgICAgbGludXgvbWlwcy9pb2N0bGVudC5zaCBsaW51eC9taXBzL2Vycm5vZW50LmggXAotCSAgICAgbGludXgvbWlwcy9pb2N0bGVudC5oIGxpbnV4L21pcHMvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvbWlwcy9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvcG93ZXJwYy9lcnJub2VudC5oIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaCBcCi0JICAgICBsaW51eC9wb3dlcnBjL3NpZ25hbGVudC5oIFwKLQkgICAgIGxpbnV4L3MzOTAvZXJybm9lbnQuaCBsaW51eC9zMzkwL2lvY3RsZW50LmggXAotCSAgICAgbGludXgvczM5MC9zaWduYWxlbnQuaCBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9zMzkweC9lcnJub2VudC5oIGxpbnV4L3MzOTB4L2lvY3RsZW50LmggXAotCSAgICAgbGludXgvczM5MHgvc2lnbmFsZW50LmggbGludXgvczM5MHgvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L3NoL3N5c2NhbGxlbnQuaCBsaW51eC9zaC9lcnJub2VudC5oIFwKLQkgICAgIGxpbnV4L3NoL2lvY3RsZW50LmggbGludXgvc2gvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvc2g2NC9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvc3BhcmMvZHVtbXkyLmggXAotCSAgICAgbGludXgvc3BhcmMvZXJybm9lbnQuaCBsaW51eC9zcGFyYy9lcnJub2VudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9pb2N0bGVudC5oIGxpbnV4L3NwYXJjL2lvY3RsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL3NpZ25hbGVudC5oIGxpbnV4L3NwYXJjL3NpZ25hbGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9zeXNjYWxsLmggbGludXgvc3BhcmMvc3lzY2FsbDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9zeXNjYWxsZW50LmggbGludXgvc3BhcmMvc3lzY2FsbGVudDEuaCBcCi0JICAgICBsaW51eC9zcGFyYy9nZW4ucGwgbGludXgvc3BhcmMvc3lzY2FsbC5oLjIgXAotCSAgICAgbGludXgvc3BhcmM2NC9kdW1teTIuaCBsaW51eC9zcGFyYzY0L2Vycm5vZW50LmggXAotCSAgICAgbGludXgvc3BhcmM2NC9lcnJub2VudDEuaCBsaW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaCBsaW51eC9zcGFyYzY0L2lvY3RsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmggbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L3NpZ25hbGVudDEuaCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudDIuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L3N5c2NhbGwuaCBsaW51eC9zcGFyYzY0L3N5c2NhbGwxLmggXAotCSAgICAgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmggbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaCBcCi0JICAgICBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oIGxpbnV4L3g4Nl82NC9nZW50YWIucGwgXAotCSAgICAgbGludXgveDg2XzY0L2Vycm5vZW50MS5oIGxpbnV4L3g4Nl82NC9pb2N0bGVudDEuaCBcCi0JICAgICBsaW51eC94ODZfNjQvc2lnbmFsZW50MS5oIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50MS5oIFwKLQkgICAgIGZyZWVic2QvaW9jdGxlbnQuc2ggXAotCSAgICAgZnJlZWJzZC9zeXNjYWxscy5jYXQgZnJlZWJzZC9zeXNjYWxscy5wbCBmcmVlYnNkL3N5c2NhbGxzLnByaW50IFwKLQkgICAgIGZyZWVic2QvaTM4Ni9lcnJub2VudC5oIGZyZWVic2QvaTM4Ni9pb2N0bGVudC5oIFwKLQkgICAgIGZyZWVic2QvaTM4Ni9zaWduYWxlbnQuaCBcCi0JICAgICBmcmVlYnNkL2kzODYvc3lzY2FsbC5oIGZyZWVic2QvaTM4Ni9zeXNjYWxsZW50LmggXAotCSAgICAgc3Vub3M0L2R1bW15Lmggc3Vub3M0L2Vycm5vZW50LmggXAotCSAgICAgc3Vub3M0L2lvY3RsZW50Lmggc3Vub3M0L2lvY3RsZW50LnNoIHN1bm9zNC9zaWduYWxlbnQuaCBcCi0JICAgICBzdW5vczQvc3lzY2FsbC5oIHN1bm9zNC9zeXNjYWxsZW50LmggXAotCSAgICAgc3ZyNC9kdW1teS5oIHN2cjQvZXJybm9lbnQuaCBzdnI0L2lvY3RsZW50Lmggc3ZyNC9pb2N0bGVudC5zaCBcCi0JICAgICBzdnI0L3NpZ25hbGVudC5oIHN2cjQvc3lzY2FsbC5oIHN2cjQvc3lzY2FsbGVudC5oCi0KLWlmIE1BSU5UQUlORVJfTU9ERQotaWYgTElOVVgKLQotSU9DVExESVIgPSAvdXNyL2luY2x1ZGUKLUlPQ1RMQVNNID0gYXNtCi0KLWlmIEkzODYKLWlvY3RsZW50X2ggPSBsaW51eC9pb2N0bGVudC5oCi1lbHNlCi1pb2N0bGVudF9oID0gbGludXgvJChBUkNIKS9pb2N0bGVudC5oCi1lbmRpZgotCi1CVUlMVF9TT1VSQ0VTID0gJChpb2N0bGVudF9oKQotCi0kKHNyY2RpcikvJChpb2N0bGVudF9oKTogaW9jdGxzb3J0Ci0JJCg8RCkvJCg8RikgPiAkQAotaW9jdGxzb3J0OiAkKHNyY2RpcikvbGludXgvaW9jdGxzb3J0LmMgaW9jdGxzLmggaW9jdGxkZWZzLmgKLQkkKGZpbHRlci1vdXQgLUklLCQoTElOSy5jKSkgLUkuIC1JJChJT0NUTERJUikgJChmaWx0ZXIgLUklLCQoTElOSy5jKSkgXAotCSAgLW8gJEAgJDwKLWlvY3Rscy5oOiAkKHNyY2RpcikvbGludXgvaW9jdGxlbnQuc2gKLQkkKFNIRUxMKSAkPCAkKElPQ1RMRElSKSAkKElPQ1RMQVNNKQotaW9jdGxkZWZzLmg6IGlvY3Rscy5oIDsKLQotZW5kaWYKLWVuZGlmCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YmUwNjQxLi4wMDAwMDAwCi0tLSBhL01ha2VmaWxlLmluCisrKyAvZGV2L251bGwKQEAgLTEsNzYwICswLDAgQEAKLSMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuOS41IGZyb20gTWFrZWZpbGUuYW0uCi0jIEBjb25maWd1cmVfaW5wdXRACi0KLSMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotIyAyMDAzLCAyMDA0LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0KLUBTRVRfTUFLRUAKLQotIyBBdXRvbWFrZSBpbnB1dCBmb3Igc3RyYWNlLgotCi0KLQotU09VUkNFUyA9ICQoc3RyYWNlX1NPVVJDRVMpCi0KLXNyY2RpciA9IEBzcmNkaXJACi10b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi1WUEFUSCA9IEBzcmNkaXJACi1wa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLXBrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLXBrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotdG9wX2J1aWxkZGlyID0gLgotYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotSU5TVEFMTCA9IEBJTlNUQUxMQAotaW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLWluc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLWluc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLXRyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLU5PUk1BTF9JTlNUQUxMID0gOgotUFJFX0lOU1RBTEwgPSA6Ci1QT1NUX0lOU1RBTEwgPSA6Ci1OT1JNQUxfVU5JTlNUQUxMID0gOgotUFJFX1VOSU5TVEFMTCA9IDoKLVBPU1RfVU5JTlNUQUxMID0gOgotYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLWhvc3RfdHJpcGxldCA9IEBob3N0QAotYmluX1BST0dSQU1TID0gc3RyYWNlJChFWEVFWFQpCi1ESVNUX0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChub2luc3RfSEVBREVSUykgXAotCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotCSQoc3JjZGlyKS9jb25maWcuaC5pbiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBBVVRIT1JTIFwKLQlDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIFRPRE8gY29uZmlnLmd1ZXNzIGNvbmZpZy5zdWIgZGVwY29tcCBcCi0JaW5zdGFsbC1zaCBtaXNzaW5nIG1raW5zdGFsbGRpcnMKLXN1YmRpciA9IC4KLUFDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLWFtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2FjaW5jbHVkZS5tNCBcCi0JJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLWFtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0JJChBQ0xPQ0FMX000KQotYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMgPSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKLSBjb25maWd1cmUubGluZW5vIGNvbmZpZ3VyZS5zdGF0dXMubGluZW5vCi1ta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9ta2luc3RhbGxkaXJzCi1DT05GSUdfSEVBREVSID0gY29uZmlnLmgKLUNPTkZJR19DTEVBTl9GSUxFUyA9Ci1hbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKGJpbmRpcikiIFwKLQkiJChERVNURElSKSQobWFuMWRpcikiCi1iaW5QUk9HUkFNU19JTlNUQUxMID0gJChJTlNUQUxMX1BST0dSQU0pCi1QUk9HUkFNUyA9ICQoYmluX1BST0dSQU1TKQotYW1fc3RyYWNlX09CSkVDVFMgPSBzdHJhY2UuJChPQkpFWFQpIHN5c2NhbGwuJChPQkpFWFQpIHV0aWwuJChPQkpFWFQpIFwKLQlkZXNjLiQoT0JKRVhUKSBmaWxlLiQoT0JKRVhUKSBpcGMuJChPQkpFWFQpIGlvLiQoT0JKRVhUKSBcCi0JaW9jdGwuJChPQkpFWFQpIG1lbS4kKE9CSkVYVCkgbmV0LiQoT0JKRVhUKSBwcm9jZXNzLiQoT0JKRVhUKSBcCi0JYmptLiQoT0JKRVhUKSByZXNvdXJjZS4kKE9CSkVYVCkgc2lnbmFsLiQoT0JKRVhUKSBcCi0Jc29jay4kKE9CSkVYVCkgc3lzdGVtLiQoT0JKRVhUKSB0ZXJtLiQoT0JKRVhUKSB0aW1lLiQoT0JKRVhUKSBcCi0JcHJvYy4kKE9CSkVYVCkgc3RyZWFtLiQoT0JKRVhUKQotc3RyYWNlX09CSkVDVFMgPSAkKGFtX3N0cmFjZV9PQkpFQ1RTKQotc3RyYWNlX0xEQUREID0gJChMREFERCkKLWJpblNDUklQVF9JTlNUQUxMID0gJChJTlNUQUxMX1NDUklQVCkKLVNDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQotREVGQVVMVF9JTkNMVURFUyA9IC1JLiAtSSQoc3JjZGlyKSAtSS4KLWRlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2RlcGNvbXAKLWFtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi1DT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKLQkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi1DQ0xEID0gJChDQykKLUxJTksgPSAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi1TT1VSQ0VTID0gJChzdHJhY2VfU09VUkNFUykKLURJU1RfU09VUkNFUyA9ICQoc3RyYWNlX1NPVVJDRVMpCi1tYW4xZGlyID0gJChtYW5kaXIpL21hbjEKLU5ST0ZGID0gbnJvZmYKLU1BTlMgPSAkKG1hbl9NQU5TKQotSEVBREVSUyA9ICQobm9pbnN0X0hFQURFUlMpCi1FVEFHUyA9IGV0YWdzCi1DVEFHUyA9IGN0YWdzCi1ESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9OKQotdG9wX2Rpc3RkaXIgPSAkKGRpc3RkaXIpCi1hbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCi0gIHsgdGVzdCAhIC1kICQoZGlzdGRpcikgXAotICAgIHx8IHsgZmluZCAkKGRpc3RkaXIpIC10eXBlIGQgISAtcGVybSAtMjAwIC1leGVjIGNobW9kIHUrdyB7fSAnOycgXAotICAgICAgICAgJiYgcm0gLWZyICQoZGlzdGRpcik7IH07IH0KLURJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIpLnRhci5neiAkKGRpc3RkaXIpLnRhci5iejIKLUdaSVBfRU5WID0gLS1iZXN0Ci1kaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50Ci1kaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLUFDTE9DQUwgPSBAQUNMT0NBTEAKLUFNREVQX0ZBTFNFID0gQEFNREVQX0ZBTFNFQAotQU1ERVBfVFJVRSA9IEBBTURFUF9UUlVFQAotQU1UQVIgPSBAQU1UQVJACi1BVVRPQ09ORiA9IEBBVVRPQ09ORkAKLUFVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLUFVVE9NQUtFID0gQEFVVE9NQUtFQAotQVdLID0gQEFXS0AKLUNDID0gQENDQAotQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLUNGTEFHUyA9IEBDRkxBR1NACi1DUFAgPSBAQ1BQQAotQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi1DWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotREVGUyA9IEBERUZTQAotREVQRElSID0gQERFUERJUkAKLUVDSE9fQyA9IEBFQ0hPX0NACi1FQ0hPX04gPSBARUNIT19OQAotRUNIT19UID0gQEVDSE9fVEAKLUVHUkVQID0gQEVHUkVQQAotRVhFRVhUID0gQEVYRUVYVEAKLUZSRUVCU0RfRkFMU0UgPSBARlJFRUJTRF9GQUxTRUAKLUZSRUVCU0RfVFJVRSA9IEBGUkVFQlNEX1RSVUVACi1JMzg2X0ZBTFNFID0gQEkzODZfRkFMU0VACi1JMzg2X1RSVUUgPSBASTM4Nl9UUlVFQAotSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLUlOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi1JTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLUlOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi1MREZMQUdTID0gQExERkxBR1NACi1MSUJPQkpTID0gQExJQk9CSlNACi1MSUJTID0gQExJQlNACi1MSU5VWF9GQUxTRSA9IEBMSU5VWF9GQUxTRUAKLUxJTlVYX1RSVUUgPSBATElOVVhfVFJVRUAKLUxUTElCT0JKUyA9IEBMVExJQk9CSlNACi1NQUlOVCA9IEBNQUlOVEAKLU1BSU5UQUlORVJfTU9ERV9GQUxTRSA9IEBNQUlOVEFJTkVSX01PREVfRkFMU0VACi1NQUlOVEFJTkVSX01PREVfVFJVRSA9IEBNQUlOVEFJTkVSX01PREVfVFJVRUAKLU1BS0VJTkZPID0gQE1BS0VJTkZPQAotT0JKRVhUID0gQE9CSkVYVEAKLVBBQ0tBR0UgPSBAUEFDS0FHRUAKLVBBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLVBBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLVBBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi1QQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLVBFUkwgPSBAUEVSTEAKLVNFVF9NQUtFID0gQFNFVF9NQUtFQAotU0hFTEwgPSBAU0hFTExACi1TVFJJUCA9IEBTVFJJUEAKLVNVTk9TNF9GQUxTRSA9IEBTVU5PUzRfRkFMU0VACi1TVU5PUzRfVFJVRSA9IEBTVU5PUzRfVFJVRUAKLVNWUjRfRkFMU0UgPSBAU1ZSNF9GQUxTRUAKLVNWUjRfVFJVRSA9IEBTVlI0X1RSVUVACi1WRVJTSU9OID0gQFZFUlNJT05ACi1XQVJORkxBR1MgPSBAV0FSTkZMQUdTQAotWDg2XzY0X0ZBTFNFID0gQFg4Nl82NF9GQUxTRUAKLVg4Nl82NF9UUlVFID0gQFg4Nl82NF9UUlVFQAotYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi1hY19jdF9TVFJJUCA9IEBhY19jdF9TVFJJUEAKLWFtX19mYXN0ZGVwQ0NfRkFMU0UgPSBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAKLWFtX19mYXN0ZGVwQ0NfVFJVRSA9IEBhbV9fZmFzdGRlcENDX1RSVUVACi1hbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLWFtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi1hbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotYW1fX3RhciA9IEBhbV9fdGFyQAotYW1fX3VudGFyID0gQGFtX191bnRhckAKLWFyY2ggPSBAYXJjaEAKLWJpbmRpciA9IEBiaW5kaXJACi1idWlsZCA9IEBidWlsZEAKLWJ1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLWJ1aWxkX29zID0gQGJ1aWxkX29zQAotYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLWRhdGFkaXIgPSBAZGF0YWRpckAKLWV4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotaG9zdCA9IEBob3N0QAotaG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotaG9zdF9jcHUgPSBAaG9zdF9jcHVACi1ob3N0X29zID0gQGhvc3Rfb3NACi1ob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLWluY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLWluZm9kaXIgPSBAaW5mb2RpckAKLWluc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLWxpYmRpciA9IEBsaWJkaXJACi1saWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi1sb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi1tYW5kaXIgPSBAbWFuZGlyQAotbWtkaXJfcCA9IEBta2Rpcl9wQAotb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotb3BzeXMgPSBAb3BzeXNACi1wcmVmaXggPSBAcHJlZml4QAotcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotc2JpbmRpciA9IEBzYmluZGlyQAotc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi1zeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi10YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotbWFuX01BTlMgPSBzdHJhY2UuMQotYmluX1NDUklQVFMgPSBzdHJhY2UtZ3JhcGgKLQotIyBPUyBpcyBvbmUgb2YgYGxpbnV4JywgYHN1bm9zNCcsIGBzdnI0Jywgb3IgYGZyZWVic2QnLgotT1MgPSBAb3BzeXNACi0jIEFSQ0ggaXMgYGkzODYnLCBgbTY4aycsIGBzcGFyYycsIGV0Yy4KLUFSQ0ggPSBAYXJjaEAKLUFNX0NGTEFHUyA9ICQoV0FSTkZMQUdTKQotSU5DTFVERVMgPSAtSSQoT1MpLyQoQVJDSCkgLUkkKHNyY2RpcikvJChPUykvJChBUkNIKSAtSSQoT1MpIC1JJChzcmNkaXIpLyQoT1MpCi1zdHJhY2VfU09VUkNFUyA9IHN0cmFjZS5jIHN5c2NhbGwuYyB1dGlsLmMgZGVzYy5jIGZpbGUuYyBpcGMuYyBcCi0JCSBpby5jIGlvY3RsLmMgbWVtLmMgbmV0LmMgcHJvY2Vzcy5jIGJqbS5jIFwKLQkJIHJlc291cmNlLmMgc2lnbmFsLmMgc29jay5jIHN5c3RlbS5jIHRlcm0uYyB0aW1lLmMgXAotCQkgcHJvYy5jIHN0cmVhbS5jCi0KLW5vaW5zdF9IRUFERVJTID0gZGVmcy5oCi1FWFRSQV9ESVNUID0gJChtYW5fTUFOUykgZXJybm9lbnQuc2ggc2lnbmFsZW50LnNoIHN5c2NhbGxlbnQuc2ggaW9jdGxzb3J0LmMgXAotICAgICAJICAgICBkZWJpYW4vY2hhbmdlbG9nIGRlYmlhbi9jb250cm9sIGRlYmlhbi9jb3B5cmlnaHQgZGViaWFuL3J1bGVzIFwKLQkgICAgIHN0cmFjZS5zcGVjIFwKLQkgICAgIHN0cmFjZS1ncmFwaCBDT1BZUklHSFQgQ1JFRElUUyBQT1JUSU5HIFwKLQkgICAgIFJFQURNRS1DVlMgUkVBRE1FLWZyZWVic2QgUkVBRE1FLWxpbnV4IFJFQURNRS1zdW5vczQgUkVBRE1FLXN2cjQgXAotCSAgICAgbGludXgvaW9jdGxzb3J0LmMgbGludXgvaW9jdGxlbnQuc2ggXAotCSAgICAgbGludXgvaW9jdGxlbnQuaCBsaW51eC9lcnJub2VudC5oIGxpbnV4L3NpZ25hbGVudC5oIFwKLQkgICAgIGxpbnV4L3N5c2NhbGwuaCBsaW51eC9zeXNjYWxsZW50LmggbGludXgvZHVtbXkuaCBcCi0JICAgICBsaW51eC9hbHBoYS9lcnJub2VudC5oIGxpbnV4L2FscGhhL2lvY3RsZW50LmggXAotCSAgICAgbGludXgvYWxwaGEvc2lnbmFsZW50LmggbGludXgvYWxwaGEvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L2hwcGEvZXJybm9lbnQuaCBsaW51eC9ocHBhL2lvY3RsZW50LmggXAotCSAgICAgbGludXgvaHBwYS9zaWduYWxlbnQuaCBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaCBsaW51eC9pYTY0L2Vycm5vZW50LmggXAotCSAgICAgbGludXgvaWE2NC9pb2N0bGVudC5oIGxpbnV4L2lhNjQvc2lnbmFsZW50LmggXAotICAgICAJICAgICBsaW51eC9taXBzL2lvY3RsZW50LnNoIGxpbnV4L21pcHMvZXJybm9lbnQuaCBcCi0JICAgICBsaW51eC9taXBzL2lvY3RsZW50LmggbGludXgvbWlwcy9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9taXBzL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9wb3dlcnBjL2Vycm5vZW50LmggbGludXgvcG93ZXJwYy9pb2N0bGVudC5oIFwKLQkgICAgIGxpbnV4L3Bvd2VycGMvc2lnbmFsZW50LmggXAotCSAgICAgbGludXgvczM5MC9lcnJub2VudC5oIGxpbnV4L3MzOTAvaW9jdGxlbnQuaCBcCi0JICAgICBsaW51eC9zMzkwL3NpZ25hbGVudC5oIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oIFwKLQkgICAgIGxpbnV4L3MzOTB4L2Vycm5vZW50LmggbGludXgvczM5MHgvaW9jdGxlbnQuaCBcCi0JICAgICBsaW51eC9zMzkweC9zaWduYWxlbnQuaCBsaW51eC9zMzkweC9zeXNjYWxsZW50LmggXAotCSAgICAgbGludXgvc2gvc3lzY2FsbGVudC5oIGxpbnV4L3NoL2Vycm5vZW50LmggXAotCSAgICAgbGludXgvc2gvaW9jdGxlbnQuaCBsaW51eC9zaC9zaWduYWxlbnQuaCBcCi0JICAgICBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaCBcCi0JICAgICBsaW51eC9zcGFyYy9kdW1teTIuaCBcCi0JICAgICBsaW51eC9zcGFyYy9lcnJub2VudC5oIGxpbnV4L3NwYXJjL2Vycm5vZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL2lvY3RsZW50LmggbGludXgvc3BhcmMvaW9jdGxlbnQxLmggXAotCSAgICAgbGludXgvc3BhcmMvc2lnbmFsZW50LmggbGludXgvc3BhcmMvc2lnbmFsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCBsaW51eC9zcGFyYy9zeXNjYWxsMS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaCBsaW51eC9zcGFyYy9zeXNjYWxsZW50MS5oIFwKLQkgICAgIGxpbnV4L3NwYXJjL2dlbi5wbCBsaW51eC9zcGFyYy9zeXNjYWxsLmguMiBcCi0JICAgICBsaW51eC9zcGFyYzY0L2R1bW15Mi5oIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L2Vycm5vZW50MS5oIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQyLmggXAotCSAgICAgbGludXgvc3BhcmM2NC9pb2N0bGVudC5oIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQxLmggXAotCSAgICAgbGludXgvc3BhcmM2NC9pb2N0bGVudDIuaCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudC5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oIFwKLQkgICAgIGxpbnV4L3NwYXJjNjQvc3lzY2FsbC5oIGxpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaCBcCi0JICAgICBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaCBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQxLmggXAotCSAgICAgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Mi5oIFwKLQkgICAgIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50LmggbGludXgveDg2XzY0L2dlbnRhYi5wbCBcCi0JICAgICBsaW51eC94ODZfNjQvZXJybm9lbnQxLmggbGludXgveDg2XzY0L2lvY3RsZW50MS5oIFwKLQkgICAgIGxpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmggbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmggXAotCSAgICAgZnJlZWJzZC9pb2N0bGVudC5zaCBcCi0JICAgICBmcmVlYnNkL3N5c2NhbGxzLmNhdCBmcmVlYnNkL3N5c2NhbGxzLnBsIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQgXAotCSAgICAgZnJlZWJzZC9pMzg2L2Vycm5vZW50LmggZnJlZWJzZC9pMzg2L2lvY3RsZW50LmggXAotCSAgICAgZnJlZWJzZC9pMzg2L3NpZ25hbGVudC5oIFwKLQkgICAgIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmggZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaCBcCi0JICAgICBzdW5vczQvZHVtbXkuaCBzdW5vczQvZXJybm9lbnQuaCBcCi0JICAgICBzdW5vczQvaW9jdGxlbnQuaCBzdW5vczQvaW9jdGxlbnQuc2ggc3Vub3M0L3NpZ25hbGVudC5oIFwKLQkgICAgIHN1bm9zNC9zeXNjYWxsLmggc3Vub3M0L3N5c2NhbGxlbnQuaCBcCi0JICAgICBzdnI0L2R1bW15Lmggc3ZyNC9lcnJub2VudC5oIHN2cjQvaW9jdGxlbnQuaCBzdnI0L2lvY3RsZW50LnNoIFwKLQkgICAgIHN2cjQvc2lnbmFsZW50Lmggc3ZyNC9zeXNjYWxsLmggc3ZyNC9zeXNjYWxsZW50LmgKLQotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQElPQ1RMRElSID0gL3Vzci9pbmNsdWRlCi1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVASU9DVExBU00gPSBhc20KLUBJMzg2X0ZBTFNFQEBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bGVudF9oID0gbGludXgvJChBUkNIKS9pb2N0bGVudC5oCi1ASTM4Nl9UUlVFQEBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bGVudF9oID0gbGludXgvaW9jdGxlbnQuaAotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQEJVSUxUX1NPVVJDRVMgPSAkKGlvY3RsZW50X2gpCi1hbGw6ICQoQlVJTFRfU09VUkNFUykgY29uZmlnLmgKLQkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbGwtYW0KLQotLlNVRkZJWEVTOgotLlNVRkZJWEVTOiAuYyAubyAub2JqCi1hbS0tcmVmcmVzaDoKLQlAOgotJChzcmNkaXIpL01ha2VmaWxlLmluOiBATUFJTlRBSU5FUl9NT0RFX1RSVUVAICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0JQGZvciBkZXAgaW4gJD87IGRvIFwKLQkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotCSAgICAqJCRkZXAqKSBcCi0JICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gJzsgXAotCSAgICAgIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gIFwKLQkJJiYgZXhpdCAwOyBcCi0JICAgICAgZXhpdCAxOzsgXAotCSAgZXNhYzsgXAotCWRvbmU7IFwKLQllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gIE1ha2VmaWxlJzsgXAotCWNkICQodG9wX3NyY2RpcikgJiYgXAotCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduICBNYWtlZmlsZQotLlBSRUNJT1VTOiBNYWtlZmlsZQotTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotCUBjYXNlICckPycgaW4gXAotCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0JICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMnOyBcCi0JICAgICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1czs7IFwKLQkgICopIFwKLQkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLQllc2FjOwotCi0kKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLQkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCi0KLSQodG9wX3NyY2RpcikvY29uZmlndXJlOiBATUFJTlRBSU5FUl9NT0RFX1RSVUVAICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotCWNkICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQotJChBQ0xPQ0FMX000KTogQE1BSU5UQUlORVJfTU9ERV9UUlVFQCAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0JY2QgJChzcmNkaXIpICYmICQoQUNMT0NBTCkgJChBQ0xPQ0FMX0FNRkxBR1MpCi0KLWNvbmZpZy5oOiBzdGFtcC1oMQotCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAotCSAgcm0gLWYgc3RhbXAtaDE7IFwKLQkgICQoTUFLRSkgc3RhbXAtaDE7IFwKLQllbHNlIDo7IGZpCi0KLXN0YW1wLWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLQlAcm0gLWYgc3RhbXAtaDEKLQljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIGNvbmZpZy5oCi0kKHNyY2RpcikvY29uZmlnLmguaW46IEBNQUlOVEFJTkVSX01PREVfVFJVRUAgJChhbV9fY29uZmlndXJlX2RlcHMpIAotCWNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPSEVBREVSKQotCXJtIC1mIHN0YW1wLWgxCi0JdG91Y2ggJEAKLQotZGlzdGNsZWFuLWhkcjoKLQktcm0gLWYgY29uZmlnLmggc3RhbXAtaDEKLWluc3RhbGwtYmluUFJPR1JBTVM6ICQoYmluX1BST0dSQU1TKQotCUAkKE5PUk1BTF9JTlNUQUxMKQotCXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChta2Rpcl9wKSAiJChERVNURElSKSQoYmluZGlyKSIKLQlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0JICBwMT1gZWNobyAkJHB8c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAotCSAgaWYgdGVzdCAtZiAkJHAgXAotCSAgOyB0aGVuIFwKLQkgICAgZj1gZWNobyAiJCRwMSIgfCBzZWQgJ3MsXi4qLywsOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nYDsgXAotCSAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoYmluUFJPR1JBTVNfSU5TVEFMTCkgJyQkcCcgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKLQkgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoYmluUFJPR1JBTVNfSU5TVEFMTCkgIiQkcCIgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIiB8fCBleGl0IDE7IFwKLQkgIGVsc2UgOjsgZmk7IFwKLQlkb25lCi0KLXVuaW5zdGFsbC1iaW5QUk9HUkFNUzoKLQlAJChOT1JNQUxfVU5JTlNUQUxMKQotCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLQkgIGY9YGVjaG8gIiQkcCIgfCBzZWQgJ3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJ2A7IFwKLQkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQoYmluZGlyKS8kJGYnIjsgXAotCSAgcm0gLWYgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAotCWRvbmUKLQotY2xlYW4tYmluUFJPR1JBTVM6Ci0JLXRlc3QgLXogIiQoYmluX1BST0dSQU1TKSIgfHwgcm0gLWYgJChiaW5fUFJPR1JBTVMpCi1zdHJhY2UkKEVYRUVYVCk6ICQoc3RyYWNlX09CSkVDVFMpICQoc3RyYWNlX0RFUEVOREVOQ0lFUykgCi0JQHJtIC1mIHN0cmFjZSQoRVhFRVhUKQotCSQoTElOSykgJChzdHJhY2VfTERGTEFHUykgJChzdHJhY2VfT0JKRUNUUykgJChzdHJhY2VfTERBREQpICQoTElCUykKLWluc3RhbGwtYmluU0NSSVBUUzogJChiaW5fU0NSSVBUUykKLQlAJChOT1JNQUxfSU5TVEFMTCkKLQl0ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQobWtkaXJfcCkgIiQoREVTVERJUikkKGJpbmRpcikiCi0JQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0JICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotCSAgaWYgdGVzdCAtZiAkJGQkJHA7IHRoZW4gXAotCSAgICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSknYDsgXAotCSAgICBlY2hvICIgJChiaW5TQ1JJUFRfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKLQkgICAgJChiaW5TQ1JJUFRfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAotCSAgZWxzZSA6OyBmaTsgXAotCWRvbmUKLQotdW5pbnN0YWxsLWJpblNDUklQVFM6Ci0JQCQoTk9STUFMX1VOSU5TVEFMTCkKLQlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLQkgIGY9YGVjaG8gIiQkcCIgfCBzZWQgJ3N8Xi4qL3x8OyQodHJhbnNmb3JtKSdgOyBcCi0JICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKLQkgIHJtIC1mICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKLQlkb25lCi0KLW1vc3RseWNsZWFuLWNvbXBpbGU6Ci0JLXJtIC1mICouJChPQkpFWFQpCi0KLWRpc3RjbGVhbi1jb21waWxlOgotCS1ybSAtZiAqLnRhYi5jCi0KLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9iam0uUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Rlc2MuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZpbGUuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lvLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pb2N0bC5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaXBjLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tZW0uUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL25ldC5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJvYy5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJvY2Vzcy5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVzb3VyY2UuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NpZ25hbC5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc29jay5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3RyYWNlLlBvQGFtX19xdW90ZUAKLUBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zdHJlYW0uUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N5c2NhbGwuUG9AYW1fX3F1b3RlQAotQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N5c3RlbS5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVybS5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGltZS5Qb0BhbV9fcXVvdGVACi1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdXRpbC5Qb0BhbV9fcXVvdGVACi0KLS5jLm86Ci1AYW1fX2Zhc3RkZXBDQ19UUlVFQAlpZiAkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAiJChERVBESVIpLyQqLlRwbyIgLWMgLW8gJEAgJDw7IFwKLUBhbV9fZmFzdGRlcENDX1RSVUVACXRoZW4gbXYgLWYgIiQoREVQRElSKS8kKi5UcG8iICIkKERFUERJUikvJCouUG8iOyBlbHNlIHJtIC1mICIkKERFUERJUikvJCouVHBvIjsgZXhpdCAxOyBmaQotQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKLQotLmMub2JqOgotQGFtX19mYXN0ZGVwQ0NfVFJVRUAJaWYgJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgIiQoREVQRElSKS8kKi5UcG8iIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2A7IFwKLUBhbV9fZmFzdGRlcENDX1RSVUVACXRoZW4gbXYgLWYgIiQoREVQRElSKS8kKi5UcG8iICIkKERFUERJUikvJCouUG8iOyBlbHNlIHJtIC1mICIkKERFUERJUikvJCouVHBvIjsgZXhpdCAxOyBmaQotQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAotdW5pbnN0YWxsLWluZm8tYW06Ci1pbnN0YWxsLW1hbjE6ICQobWFuMV9NQU5TKSAkKG1hbl9NQU5TKQotCUAkKE5PUk1BTF9JTlNUQUxMKQotCXRlc3QgLXogIiQobWFuMWRpcikiIHx8ICQobWtkaXJfcCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgotCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKLQlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9NQU5TKSAkKG5vZGlzdF9tYW5fTUFOUyknOyBcCi0JZm9yIGkgaW4gJCRsMjsgZG8gXAotCSAgY2FzZSAiJCRpIiBpbiBcCi0JICAgICouMSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKLQkgIGVzYWM7IFwKLQlkb25lOyBcCi0JZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0JICBpZiB0ZXN0IC1mICQoc3JjZGlyKS8kJGk7IHRoZW4gZmlsZT0kKHNyY2RpcikvJCRpOyBcCi0JICBlbHNlIGZpbGU9JCRpOyBmaTsgXAotCSAgZXh0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCi0JICBjYXNlICIkJGV4dCIgaW4gXAotCSAgICAxKikgOzsgXAotCSAgICAqKSBleHQ9JzEnIDs7IFwKLQkgIGVzYWM7IFwKLQkgIGluc3Q9YGVjaG8gJCRpIHwgc2VkIC1lICdzL1xcLlswLTlhLXpdKiQkLy8nYDsgXAotCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBcCi0JICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKLQkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCi0JICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKLQlkb25lCi11bmluc3RhbGwtbWFuMToKLQlAJChOT1JNQUxfVU5JTlNUQUxMKQotCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKLQlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9NQU5TKSAkKG5vZGlzdF9tYW5fTUFOUyknOyBcCi0JZm9yIGkgaW4gJCRsMjsgZG8gXAotCSAgY2FzZSAiJCRpIiBpbiBcCi0JICAgICouMSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKLQkgIGVzYWM7IFwKLQlkb25lOyBcCi0JZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0JICBleHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxcLi8vJ2A7IFwKLQkgIGNhc2UgIiQkZXh0IiBpbiBcCi0JICAgIDEqKSA7OyBcCi0JICAgICopIGV4dD0nMScgOzsgXAotCSAgZXNhYzsgXAotCSAgaW5zdD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXFwuWzAtOWEtel0qJCQvLydgOyBcCi0JICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKLQkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkICckKHRyYW5zZm9ybSknYC4kJGV4dDsgXAotCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAotCSAgcm0gLWYgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKLQlkb25lCi0KLUlEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0JbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLQl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLQkgIGRvbmUgfCBcCi0JICAkKEFXSykgJyAgICB7IGZpbGVzWyQkMF0gPSAxOyB9IFwKLQkgICAgICAgRU5EIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9J2A7IFwKLQlta2lkIC1mSUQgJCR1bmlxdWUKLXRhZ3M6IFRBR1MKLQotVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0JCSQoVEFHU19GSUxFUykgJChMSVNQKQotCXRhZ3M9OyBcCi0JaGVyZT1gcHdkYDsgXAotCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0JdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLQkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0JICBkb25lIHwgXAotCSAgJChBV0spICcgICAgeyBmaWxlc1skJDBdID0gMTsgfSBcCi0JICAgICAgIEVORCB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfSdgOyBcCi0JaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLQkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLQkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLQkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0JZmkKLWN0YWdzOiBDVEFHUwotQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLQl0YWdzPTsgXAotCWhlcmU9YHB3ZGA7IFwKLQlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0JICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotCSAgZG9uZSB8IFwKLQkgICQoQVdLKSAnICAgIHsgZmlsZXNbJCQwXSA9IDE7IH0gXAotCSAgICAgICBFTkQgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH0nYDsgXAotCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotCSAgICAgJCR0YWdzICQkdW5pcXVlCi0KLUdUQUdTOgotCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0JICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLQkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0KLWRpc3RjbGVhbi10YWdzOgotCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0KLWRpc3RkaXI6ICQoRElTVEZJTEVTKQotCUBjYXNlIGBzZWQgMTVxICQoc3JjZGlyKS9ORVdTYCBpbiBcCi0JKiIkKFZFUlNJT04pIiopIDogOzsgXAotCSopIFwKLQkgIGVjaG8gIk5FV1Mgbm90IHVwZGF0ZWQ7IG5vdCByZWxlYXNpbmciIDE+JjI7IFwKLQkgIGV4aXQgMTs7IFwKLQllc2FjCi0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0JbWtkaXIgJChkaXN0ZGlyKQotCSQobWtkaXJfcCkgJChkaXN0ZGlyKS9kZWJpYW4gJChkaXN0ZGlyKS9mcmVlYnNkICQoZGlzdGRpcikvZnJlZWJzZC9pMzg2ICQoZGlzdGRpcikvbGludXggJChkaXN0ZGlyKS9saW51eC9hbHBoYSAkKGRpc3RkaXIpL2xpbnV4L2hwcGEgJChkaXN0ZGlyKS9saW51eC9pYTY0ICQoZGlzdGRpcikvbGludXgvbWlwcyAkKGRpc3RkaXIpL2xpbnV4L3Bvd2VycGMgJChkaXN0ZGlyKS9saW51eC9zMzkwICQoZGlzdGRpcikvbGludXgvczM5MHggJChkaXN0ZGlyKS9saW51eC9zaCAkKGRpc3RkaXIpL2xpbnV4L3NoNjQgJChkaXN0ZGlyKS9saW51eC9zcGFyYyAkKGRpc3RkaXIpL2xpbnV4L3NwYXJjNjQgJChkaXN0ZGlyKS9saW51eC94ODZfNjQgJChkaXN0ZGlyKS9zdW5vczQgJChkaXN0ZGlyKS9zdnI0Ci0JQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7IFwKLQl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsgXAotCWxpc3Q9JyQoRElTVEZJTEVTKSc7IGZvciBmaWxlIGluICQkbGlzdDsgZG8gXAotCSAgY2FzZSAkJGZpbGUgaW4gXAotCSAgICAkKHNyY2RpcikvKikgZmlsZT1gZWNobyAiJCRmaWxlIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotCSAgICAkKHRvcF9zcmNkaXIpLyopIGZpbGU9YGVjaG8gIiQkZmlsZSIgfCBzZWQgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98ImA7OyBcCi0JICBlc2FjOyBcCi0JICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0JICBkaXI9YGVjaG8gIiQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0JICBpZiB0ZXN0ICIkJGRpciIgIT0gIiQkZmlsZSIgJiYgdGVzdCAiJCRkaXIiICE9ICIuIjsgdGhlbiBcCi0JICAgIGRpcj0iLyQkZGlyIjsgXAotCSAgICAkKG1rZGlyX3ApICIkKGRpc3RkaXIpJCRkaXIiOyBcCi0JICBlbHNlIFwKLQkgICAgZGlyPScnOyBcCi0JICBmaTsgXAotCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLQkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0JICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotCSAgICBmaTsgXAotCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0JICBlbHNlIFwKLQkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0JICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotCSAgICB8fCBleGl0IDE7IFwKLQkgIGZpOyBcCi0JZG9uZQotCS1maW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJtIC03NzcgLWV4ZWMgY2htb2QgYStyd3gge30gXDsgLW8gXAotCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAotCSAgISAtdHlwZSBkICEgLXBlcm0gLTQwMCAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAotCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKFNIRUxMKSAkKGluc3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBcCi0JfHwgY2htb2QgLVIgYStyICQoZGlzdGRpcikKLWRpc3QtZ3ppcDogZGlzdGRpcgotCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6Ci0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi1kaXN0LWJ6aXAyOiBkaXN0ZGlyCi0JdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKLQkkKGFtX19yZW1vdmVfZGlzdGRpcikKLQotZGlzdC10YXJaOiBkaXN0ZGlyCi0JdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGNvbXByZXNzIC1jID4kKGRpc3RkaXIpLnRhci5aCi0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0KLWRpc3Qtc2hhcjogZGlzdGRpcgotCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6Ci0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0KLWRpc3QtemlwOiBkaXN0ZGlyCi0JLXJtIC1mICQoZGlzdGRpcikuemlwCi0JemlwIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRpc3RkaXIpCi0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0KLWRpc3QgZGlzdC1hbGw6IGRpc3RkaXIKLQl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negotCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCi0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0KLSMgVGhpcyB0YXJnZXQgdW50YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4KLSMgaXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBkaXN0cmlidXRpb24gaXMgc2VsZi1jb250YWluZWQgYnkgbWFraW5nIGFub3RoZXIKLSMgdGFyZmlsZS4KLWRpc3RjaGVjazogZGlzdAotCWNhc2UgJyQoRElTVF9BUkNISVZFUyknIGluIFwKLQkqLnRhci5neiopIFwKLQkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7XAotCSoudGFyLmJ6MiopIFwKLQkgIGJ1bnppcDIgLWMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAotCSoudGFyLloqKSBcCi0JICB1bmNvbXByZXNzIC1jICQoZGlzdGRpcikudGFyLlogfCAkKGFtX191bnRhcikgOztcCi0JKi5zaGFyLmd6KikgXAotCSAgR1pJUD0kKEdaSVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAotCSouemlwKikgXAotCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCi0JZXNhYwotCWNobW9kIC1SIGEtdyAkKGRpc3RkaXIpOyBjaG1vZCBhK3cgJChkaXN0ZGlyKQotCW1rZGlyICQoZGlzdGRpcikvX2J1aWxkCi0JbWtkaXIgJChkaXN0ZGlyKS9faW5zdAotCWNobW9kIGEtdyAkKGRpc3RkaXIpCi0JZGNfaW5zdGFsbF9iYXNlPWAkKGFtX19jZCkgJChkaXN0ZGlyKS9faW5zdCAmJiBwd2QgfCBzZWQgLWUgJ3MsXlteOlxcL106W1xcL10sLywnYCBcCi0JICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKLQkgICYmIGNkICQoZGlzdGRpcikvX2J1aWxkIFwKLQkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKLQkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdTKSBcCi0JICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0JICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkdmkgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbCBcCi0JICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAotCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxsIFwKLQkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCi0JICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sgXAotCSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIgXAotCSAgJiYgKHsgXAotCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIiKSBcCi0JICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgaW5zdGFsbCBcCi0JICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgdW5pbnN0YWxsIFwKLQkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCi0JICAgICAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0YWxsY2hlY2s7IFwKLQkgICAgICB9IHx8IHsgcm0gLXJmICIkJGRjX2Rlc3RkaXIiOyBleGl0IDE7IH0pIFwKLQkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCi0JICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0IFwKLQkgICYmIHJtIC1yZiAkKERJU1RfQVJDSElWRVMpIFwKLQkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrCi0JJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0JQChlY2hvICIkKGRpc3RkaXIpIGFyY2hpdmVzIHJlYWR5IGZvciBkaXN0cmlidXRpb246ICI7IFwKLQkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKLQkgIHNlZCAtZSAnMXtoO3MvLi89L2c7cDt4O30nIC1lICckJHtwO3g7fScKLWRpc3R1bmluc3RhbGxjaGVjazoKLQlAY2QgJChkaXN0dW5pbnN0YWxsY2hlY2tfZGlyKSBcCi0JJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCi0JICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKLQkgICAgICAgIGlmIHRlc3QgLW4gIiQoREVTVERJUikiOyB0aGVuIFwKLQkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKLQkgICAgICAgIGZpIDsgXAotCSAgICAgICAgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSA7IFwKLQkgICAgICAgIGV4aXQgMTsgfSA+JjIKLWRpc3RjbGVhbmNoZWNrOiBkaXN0Y2xlYW4KLQlAaWYgdGVzdCAnJChzcmNkaXIpJyA9IC4gOyB0aGVuIFwKLQkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7IFwKLQkgIGV4aXQgMSA7IFwKLQlmaQotCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWVxIDAgXAotCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBpbiBidWlsZCBkaXJlY3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCi0JICAgICAgICQoZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzKSA7IFwKLQkgICAgICAgZXhpdCAxOyB9ID4mMgotY2hlY2stYW06IGFsbC1hbQotY2hlY2s6ICQoQlVJTFRfU09VUkNFUykKLQkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjaGVjay1hbQotYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKFNDUklQVFMpICQoTUFOUykgJChIRUFERVJTKSBjb25maWcuaAotaW5zdGFsbGRpcnM6Ci0JZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSI7IGRvIFwKLQkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKG1rZGlyX3ApICIkJGRpciI7IFwKLQlkb25lCi1pbnN0YWxsOiAkKEJVSUxUX1NPVVJDRVMpCi0JJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1hbQotaW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLWluc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi11bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotCi1pbnN0YWxsLWFtOiBhbGwtYW0KLQlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotCi1pbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotaW5zdGFsbC1zdHJpcDoKLQkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0JICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLQkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLW1vc3RseWNsZWFuLWdlbmVyaWM6Ci0KLWNsZWFuLWdlbmVyaWM6Ci0KLWRpc3RjbGVhbi1nZW5lcmljOgotCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotCi1tYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0JQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLQktdGVzdCAteiAiJChCVUlMVF9TT1VSQ0VTKSIgfHwgcm0gLWYgJChCVUlMVF9TT1VSQ0VTKQotY2xlYW46IGNsZWFuLWFtCi0KLWNsZWFuLWFtOiBjbGVhbi1iaW5QUk9HUkFNUyBjbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWFtCi0KLWRpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0JLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0JLXJtIC1yZiAuLyQoREVQRElSKQotCS1ybSAtZiBNYWtlZmlsZQotZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0JZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tdGFncwotCi1kdmk6IGR2aS1hbQotCi1kdmktYW06Ci0KLWh0bWw6IGh0bWwtYW0KLQotaW5mbzogaW5mby1hbQotCi1pbmZvLWFtOgotCi1pbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCi0KLWluc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWJpblNDUklQVFMKLQotaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLQotaW5zdGFsbC1tYW46IGluc3RhbGwtbWFuMQotCi1pbnN0YWxsY2hlY2stYW06Ci0KLW1haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLQktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKLQktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0b200dGUuY2FjaGUKLQktcm0gLXJmIC4vJChERVBESVIpCi0JLXJtIC1mIE1ha2VmaWxlCi1tYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0KLW1vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotCi1tb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljCi0KLXBkZjogcGRmLWFtCi0KLXBkZi1hbToKLQotcHM6IHBzLWFtCi0KLXBzLWFtOgotCi11bmluc3RhbGwtYW06IHVuaW5zdGFsbC1iaW5QUk9HUkFNUyB1bmluc3RhbGwtYmluU0NSSVBUUyBcCi0JdW5pbnN0YWxsLWluZm8tYW0gdW5pbnN0YWxsLW1hbgotCi11bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQotCi0uUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gYW0tLXJlZnJlc2ggY2hlY2sgY2hlY2stYW0gY2xlYW4gXAotCWNsZWFuLWJpblBST0dSQU1TIGNsZWFuLWdlbmVyaWMgY3RhZ3MgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKLQlkaXN0LWd6aXAgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXppcCBkaXN0Y2hlY2sgZGlzdGNsZWFuIFwKLQlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIFwKLQlkaXN0Y2xlYW4tdGFncyBkaXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBkdmkgXAotCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0JaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWJpblNDUklQVFMgaW5zdGFsbC1kYXRhIFwKLQlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWluZm8gXAotCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgaW5zdGFsbC1zdHJpcCBcCi0JaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKLQltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0JbW9zdGx5Y2xlYW4tZ2VuZXJpYyBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIFwKLQl1bmluc3RhbGwtYW0gdW5pbnN0YWxsLWJpblBST0dSQU1TIHVuaW5zdGFsbC1iaW5TQ1JJUFRTIFwKLQl1bmluc3RhbGwtaW5mby1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCi0KLQotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQCQoc3JjZGlyKS8kKGlvY3RsZW50X2gpOiBpb2N0bHNvcnQKLUBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUAJJCg8RCkvJCg8RikgPiAkQAotQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQGlvY3Rsc29ydDogJChzcmNkaXIpL2xpbnV4L2lvY3Rsc29ydC5jIGlvY3Rscy5oIGlvY3RsZGVmcy5oCi1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSQoZmlsdGVyLW91dCAtSSUsJChMSU5LLmMpKSAtSS4gLUkkKElPQ1RMRElSKSAkKGZpbHRlciAtSSUsJChMSU5LLmMpKSBcCi1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSAgLW8gJEAgJDwKLUBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bHMuaDogJChzcmNkaXIpL2xpbnV4L2lvY3RsZW50LnNoCi1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSQoU0hFTEwpICQ8ICQoSU9DVExESVIpICQoSU9DVExBU00pCi1ATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVAaW9jdGxkZWZzLmg6IGlvY3Rscy5oIDsKLSMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0jIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLS5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDI2NDE0MmIuLmIxODkxYTkgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtMSwzICsxLDE4MSBAQAorTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgNC42Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBDaGFuZ2VzIGluIGJlaGF2aW9yCisgICogUHJpbnQgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbiBhYm91dCBjaGFuZ2VzIGluIHBlcnNvbmFsaXR5IG1vZGUgdG8KKyAgICBzdGFuZGFyZCBlcnJvciBpbnN0ZWFkIG9mIHN0YW5kYXJkIG91dHB1dC4KKworKiBJbXByb3ZlbWVudHMKKyAgKiBJbXBsZW1lbnRlZCBhIG5ldyBtZXRob2Qgb2YgZm9sbG93aW5nIGNsb25lLCBmb3JrLCBhbmQgdmZvcmsKKyAgICBzeXNjYWxscyB1c2luZyB0aGUgTGludXgga2VybmVsJ3MgZXhwbGljaXQgZmFjaWxpdGllcyBmb3IgdHJhY2luZworICAgIGNyZWF0aW9uIG9mIHRocmVhZHMgYW5kIGNoaWxkIHByb2Nlc3Nlcy4KKyAgKiBJbXBsZW1lbnRlZCBDTE9ORV9QQVJFTlQgYW5kIENMT05FX1VOVFJBQ0VEIGZsYWdzIGhhbmRsaW5nLgorICAqIEltcGxlbWVudGVkIGRlY29kaW5nIG9mIFRMUyBzeXNjYWxscyBvbiBtNjhrLgorICAqIEltcGxlbWVudGVkIGJpYXJjaCBzdXBwb3J0IG9uIHBvd2VycGM2NC4KKyAgKiBJbXBsZW1lbnRlZCBiaWFyY2ggc3VwcG9ydCBmb3IgZ2V0cmxpbWl0KCkgYW5kIHNldHJsaW1pdCgpLgorICAqIEltcGxlbWVudGVkIGRlY29kaW5nIG9mIHN0cnVjdCB1Y3JlZCBpbiBnZXRzb2Nrb3B0IFNPX1BFRVJDUkVELgorICAqIEltcGxlbWVudGVkIFNPTF9TQ1RQIHNvY2tldCBvcHRpb25zIGRlY29kaW5nLgorICAqIEFkZGVkIEhESU9fKiBpb2N0bCBuYW1lcy4KKyAgICAoQWRkcmVzc2VzIERlYmlhbiBidWcgIzQ1MDk1MykuCisgICogQWRkZWQgTE9PUF8qIGlvY3RsIG5hbWVzLgorICAqIFVwZGF0ZWQgbGlzdHMgb2YgQ0xPQ0tfKiwgQ0xPTkVfKiwgTVNfKiwgYW5kIFNPTF8qIGNvbnN0YW50cworICAgIHRvIG1hdGNoIExpbnV4IDIuNi4zNy4KKyAgKiBVcGRhdGVkIHRoZSBsaXN0IG9mIElQUFJPVE9fKiBjb25zdGFudHMgdG8gbWF0Y2ggbmV0aW5ldC9pbi5oLgorICAqIEltcGxlbWVudGVkIGRlY29kaW5nIG9mIEhESU9fKiBhbmQgQkxLKiBpb2N0bHMuCisgICogQWRkZWQgTWljcm9CbGF6ZSBhcmNoaXRlY3R1cmUgc3VwcG9ydC4KKyAgKiBBZGRlZCBuZXcgc3lzY2FsbCBlbnRyaWVzIHRvIG1hdGNoIExpbnV4IDIuNi4zNy4KKyAgKiBSZWdlbmVyYXRlZCBsaXN0IG9mIGlvY3RsIG5hbWVzIGZyb20gTGludXggMi42LjM3LgorICAqIEVuaGFuY2VkIHNpZ25hbCBub3RpZmljYXRpb24gZGVjb2RpbmcuCisgICogRG9jdW1lbnRlZCAtQyBhbmQgLUQgb3B0aW9ucy4KKworKiBCdWcgZml4ZXMKKyAgKiBGaXhlZCBmZXRjaGluZyBzeXNjYWxsIGFyZ3VtZW50cyBvbiBtNjhrLgorICAqIEZpeGVkIGFuIGVycm9yIHdoZW4ganVkZ2luZyB3aGV0aGVyIGEgcHJvY2VzcyBoYXMgY2hpbGRyZW4uCisgICogRml4ZWQgZ2V0L3NldF9yb2J1c3RfbGlzdCBzeXNjYWxsIG51bWJlcnMgZm9yIHBvd2VycGMuCisgICogRml4ZWQgYSBjb3JuZXIgY2FzZSBpbiBwcmludGluZyBjbG9uZSBmbGFncy4KKyAgKiBGaXhlZCBjcm9zcy1jb21waWxpbmcgaXNzdWVzLgorICAqIEZpeGVkIGJ1aWxkIGlzc3VlcyBvbiBwb3dlcnBjNjQsIFNIIGFuZCBTUEFSQy4KKyAgKiBGaXhlZCBzeXNjYWxsIGZsYWdzIG9mIGZzdGF0YXQqLCBtbWFwLCBtbWFwMiwgZmFkdmlzZTY0Kiwgc3dhcG9mZiwKKyAgICBmZ2V0eGF0dHIsIGZsaXN0eGF0dHIsIGZyZW1vdmV4YXR0ciwgZXBvbGxfY3JlYXRlLCBmYWxsb2NhdGUsCisgICAgZmFub3RpZnlfaW5pdCwgYW5kIGZhbm90aWZ5X21hcmsgc3lzY2FsbHMuCisgICogRml4ZWQgZGVjb2Rpbmcgb2YgZ2V0W3VnXWlkLCBnZXRlW3VnXWlkIGFuZCBzZXRmc1t1Z11pZCByZXR1cm4gdmFsdWVzLgorICAqIEZpeGVkIGJpYXJjaCBzdXBwb3J0IGluIElPIGR1bXBpbmcuCisgICogRml4ZWQgcmF3IGV4aXRfZ3JvdXAgZGVjb2RpbmcuCisgICogRml4ZWQgZGVjb2Rpbmcgb2YgZmlsZSBkZXNjcmlwdG9ycyBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcy4KKyAgKiBGaXhlZCBhIGNvcm5lciBjYXNlIGluIHdhaXRwaWQgaGFuZGxpbmcuCisgICAgKEFkZHJlc3NlcyBSZWQgSGF0IGJ1ZyAjNjYzNTQ3KS4KKyAgKiBGaXhlZCBzdGF0NjQgZGVjb2Rpbmcgb24gbWlwcworICAgIChBZGRyZXNzZXMgRGViaWFuIGJ1ZyAjNTk5MDI4KS4KKyAgKiBGaXhlZCBtaXNsZWFkaW5nIGl0YWxpY3MgaW4gdGhlIG1hbnVhbCBwYWdlLgorICAgIChBZGRyZXNzZXMgRGViaWFuIGJ1ZyAjNTg5MzIzKS4KKworTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgNC41LjIwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBJbXByb3ZlbWVudHMKKyAgKiBJbXBsZW1lbnRlZCBkZWNvZGluZyBvZiBuZXcgbGludXggc3lzY2FsbHM6IGlub3RpZnlfaW5pdDEsIHJlY3ZtbXNnLgorICAqIEltcGxlbWVudGVkIGJhc2ljIGRlY29kaW5nIG9mIG5ldyBsaW51eCBzeXNjYWxsczogcHJlYWR2LCBwd3JpdGV2LAorICAgIHJ0X3Rnc2lncXVldWVpbmZvLCBwZXJmX2V2ZW50X29wZW4uCisgICogRW5oYW5jZWQgZGVjb2Rpbmcgb2YgcmVjZW50bHkgYWRkZWQgc3lzY2FsbHMgb24gbm9uLXg4NiBhcmNoaXRlY3R1cmVzCisgICAgYnkgcmVwbGFjaW5nIGEgYmFyZSBkZWNvZGVyIHdpdGggZWxhYm9yYXRlIHBhcnNlcnMgZW5hYmxlZCBlYXJsaWVyCisgICAgZm9yIHg4Ni94ODYtNjQuCisgICogSW1wbGVtZW50ZWQgLUMgb3B0aW9uIHRvIGNvbWJpbmUgcmVndWxhciBhbmQgLWMgb3V0cHV0LgorICAgIChBZGRyZXNzZXMgRGViaWFuIGJ1ZyAjNDY2MTk2KQorICAqIEVuaGFuY2VkIGRlY29kaW5nIG9mIG1iaW5kIGFuZCBtcmVtYXAgc3lzY2FsbHMuCisgICogRW5oYW5jZWQgU09MX1BBQ0tFVCBzb2NrZXQgb3B0aW9ucyBkZWNvZGluZy4KKyAgKiBSZWdlbmVyYXRlZCBsaXN0IG9mIGlvY3RsIG5hbWVzIGZyb20gbGludXggMi42LjMzLgorICAqIEFkZGVkIFRJTEUgYXJjaGl0ZWN0dXJlIHN1cHBvcnQuCisKKyogQnVnIGZpeGVzCisgICogRml4ZWQgYnVpbGQgd2l0aCBMaW51eCBrZXJuZWwgaGVhZGVycyAyLjYuMzItcmM1Ky4KKyAgICAoQWRkcmVzc2VzIERlYmlhbiBidWcgIzU2MDUxNiBhbmQgRmVkb3JhIGJ1ZyAjNTM5MDQ0KQorICAqIEZpeGVkIGJ1aWxkIG9uIG1pcHMuCisgICogRml4ZWQgaGFuZGxpbmcgb2YgTGludXggc3lzdGVtcyB3aXRob3V0IHN0cnVjdCBzdGF0ZnM2NC4KKyAgKiBGaXhlZCByZXBvcnRpbmcgc2lnbmFsIG1hc2sgYnkgc2lncmV0dXJuIG9uIHBvd2VycGMuCisgICogRml4ZWQgcG90ZW50aWFsIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyBpbiBzZWxlY3QgZGVjb2Rlci4KKyAgICAoQWRkcmVzc2VzIEZlZG9yYSBidWcgIzU1NjY3OCkKKyAgKiBDb3JyZWN0ZWQgbXNnc25kIGluZGlyZWN0IGlwY2NhbGwgZGVjb2RpbmcuCisgICogQ29ycmVjdGVkIGRlY29kaW5nIG9mIDY0Yml0IHN5c2NhbGxzLgorICAgIChBZGRyZXNzZXMgRGViaWFuIGJ1ZyAjNTcwNjAzKQorICAqIENvcnJlY3RlZCBnZXRzb2Nrb3B0IGRlY29kaW5nIG9uIGFyY2hpdGVjdHVyZXMgd2hlcmUKKyAgICBzaXplb2YobG9uZykgPiBzaXplb2YoaW50KS4KKyAgICAoQWRkcmVzc2VzIERlYmlhbiBidWcgIzQ5NDg0NCkKKyAgKiBDb3JyZWN0ZWQgZGVjb2Rpbmcgb2YgZXBvbGxfcHdhaXQuCisgICAgKEFkZHJlc3NlcyBEZWJpYW4gYnVnICM1MTMwMTQpCisgICogQ29ycmVjdGVkIGhhbmRsaW5nIG9mIGtpbGxlZCB0aHJlYWRzLgorCitOb3Rld29ydGh5IGNoYW5nZXMgaW4gcmVsZWFzZSA0LjUuMTkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIENoYW5nZXMgaW4gYmVoYXZpb3IKKyAgKiBXaGVuIGNvbW1hbmQgZXhpdHMsIHN0cmFjZSBub3cgZXhpdHMgd2l0aCB0aGUgc2FtZSBleGl0IHN0YXR1cy4KKyAgICBJZiBjb21tYW5kIGlzIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwsIHN0cmFjZSB0ZXJtaW5hdGVzIGl0c2VsZgorICAgIHdpdGggdGhlIHNhbWUgc2lnbmFsLCBzbyB0aGF0IHN0cmFjZSBjYW4gYmUgdXNlZCBhcyBhIHdyYXBwZXIKKyAgICBwcm9jZXNzIHRyYW5zcGFyZW50IHRvIHRoZSBpbnZva2luZyBwYXJlbnQgcHJvY2Vzcy4KKyAgICBXaGVuIHVzaW5nIC1wIG9wdGlvbiwgdGhlIGV4aXQgc3RhdHVzIG9mIHN0cmFjZSBpcyB6ZXJvIHVubGVzcworICAgIHRoZXJlIHdhcyBhbiB1bmV4cGVjdGVkIGVycm9yIGluIGRvaW5nIHRoZSB0cmFjaW5nLgorICAgIChBZGRyZXNzZXMgRmVkb3JhIGJ1ZyAjMTA1MzcxIGFuZCBEZWJpYW4gYnVnICMzNzY2NSkKKworKiBJbXByb3ZlbWVudHMKKyAgKiBJbXBsZW1lbnRlZCBkZWNvZGluZyBvZiBuZXcgTGludXggc3lzY2FsbHM6IGFjY2VwdDQsIGR1cDMsCisgICAgZXBvbGxfY3JlYXRlMSwgZXZlbnRmZDIsIGlub3RpZnlfaW5pdDEsIHBpcGUyLCBzaWduYWxmZDQuCisgICogSW1wbGVtZW50ZWQgZGVjb2Rpbmcgb2Ygc29ja2V0IHR5cGUgZmxhZ3MgaW50cm9kdWNlZCBpbiBMaW51eCAyLjYuMjcuCisgICogSW1wbGVtZW50ZWQgZGVjb2Rpbmcgb2YgYWNjZXB0NCBzb2NrZXRjYWxsLgorICAqIEVuaGFuY2VkIHByY3RsIGRlY29kaW5nLgorICAqIEVuaGFuY2VkIG5hbm9zbGVlcCBkZWNvZGluZy4KKyAgKiBFbmhhbmNlZCBwdHJhY2UgZGVjb2RpbmcuCisgICogRW5oYW5jZWQgZnV0ZXggZGVjb2RpbmcuCisgICogRW5oYW5jZWQgQ0FQXyogZGVjb2RpbmcuCisgICogRW5oYW5jZWQgU0lPQ1MqIGlvY3RscyBkZWNvZGluZy4KKyAgKiBFbmhhbmNlZCBmY250bCBGXyogZmxhZ3MgZGVjb2RpbmcuCisgICogRW5oYW5jZWQgc2Vtb3Avc2VtdGltZWRvcCBkZWNvZGluZy4KKyAgKiBVcGRhdGVkIEFSTSBhcmNoaXRlY3R1cmUgc3VwcG9ydC4KKyAgKiBBZGRlZCBCbGFja2ZpbiBhcmNoaXRlY3R1cmUgc3VwcG9ydC4KKyAgKiBBZGRlZCBBVlIzMiBhcmNoaXRlY3R1cmUgc3VwcG9ydC4KKyAgKiBBZGRlZCBDUklTIGFyY2hpdGVjdHVyZSBzdXBwb3J0LgorICAqIE1hZGUgc3RyYWNlIGRldGVjdCB3aGVuIHRyYWNlZCBwcm9jZXNzIHN1ZGRlbmx5IGRpc2FwcGVhcmVkLgorCisqIEJ1ZyBmaXhlcworICAqIEZpeGVkIHN5c2NhbGwgbnVtYmVycyBmb3IgdGVlIGFuZCBzeW5jX2ZpbGVfcmFuZ2UuCisgICAgKEFkZHJlc3NlcyBEZWJpYW4gYnVnICM1MDMxMjQpCisgICogRml4ZWQgc2V2ZXJhbCBidWdzIGluIHN0cmluZ3MgZGVjb2RlciwgaW5jbHVkaW5nIHBvdGVudGlhbCBoZWFwCisgICAgbWVtb3J5IGNvcnJ1cHRpb24uCisgICAgKEFkZHJlc3NlcyBGZWRvcmEgYnVncyAjNDcwNTI5LCAjNDc4MzI0IGFuZCAjNTExMDM1KQorICAqIE1hcmtlZCBzZW5kZmlsZSgyKSBhcyBhIG5ldHdvcmsgc3lzY2FsbC4KKyAgICAoQWRkcmVzc2VzIERlYmlhbiBidWcgIzUwOTQ5OSkKKyAgKiBGaXhlZCBhY2NlcHQoMikgZGVjb2RpbmcuCisgICAgKEFkZHJlc3NlcyBEZWJpYW4gYnVnICM1MDc1NzMpCisgICogRml4ZWQgc2lndGltZWR3YWl0KDIpIGRlY29kaW5nLgorICAqIEZpeGVkIGJ1aWxkIG9uIEFSTSBFQUJJLgorICAgIChBZGRyZXNzZXMgRGViaWFuIGJ1Z3MgIzUyMDA4NCBhbmQgIzUzNTU2NCwgYW5kIEZlZG9yYSBidWcgIzUwNzU3NikKKyAgKiBGaXhlZCBkaXNwbGF5IG9mIDMyLWJpdCBmY250bChGX1NFVExLKSBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcy4KKyAgICAoQWRkcmVzc2VzIFJlZCBIYXQgYnVnICM0NzExNjkpCisgICogRml4ZWQgZGlzcGxheSBvZiAzMi1iaXQgYXJndiBhcnJheSBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcy4KKyAgICAoQWRkcmVzc2VzIEZlZG9yYSBidWcgIzUxOTQ4MCkKKyAgKiBGaXhlZCBkaXNwbGF5IG9mIDMyLWJpdCBzdHJ1Y3Qgc2lnYWN0aW9uIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmVzLgorICAqIEZpeGVkIEhQUEEgYXJjaGl0ZWN0dXJlIHN1cHBvcnQuCisgICAgKEFkZHJlc3NlcyBEZWJpYW4gYnVncyAjNDM3OTI4IGFuZCAjNTQ2NjE5KQorCitDaGFuZ2VzIGluIDQuNS4xOAorPT09PT09PT09PT09PT0KKyogQnVnIGZpeGVzLgorKiBTdXBwb3J0IG5ldyBMaW51eC9QUEMgc3lzdGVtIGNhbGwgc3VicGFnZV9wcm90IGFuZCBQUk9UX1NBTyBmbGFnLgorKiBJbiBzaWdhY3Rpb24gc3lzdGVtIGNhbGwsIGRpc3BsYXkgc2FfZmxhZ3MgdmFsdWUgYWxvbmcgd2l0aCBTSUdfREZML1NJR19JR04uCisKK0NoYW5nZXMgaW4gNC41LjE3Cis9PT09PT09PT09PT09PQorKiBNYW55IGJ1ZyBmaXhlcy4KKyogLUYgaXMgbm93IGRlcHJlY2F0ZWQsIC1mIGhhcyB0cmFjZWQgdmZvcmsgdG9vIG9uIExpbnV4IGZvciBhIGxvbmcgdGltZSBub3cuCisqIFByaW50IE9fQ0xPRVhFQywgTVNHX0NNU0dfQ0xPRVhFQyBmbGFnIGJpdHMuCisqIEltcHJvdmVkIG91dHB1dCBmb3IgcHJjdGwgc3lzdGVtIGNhbGwgb24gTGludXguCisqIEltcHJvdmVkIHN1cHBvcnQgZm9yIExpbnV4L0FSTS4KKyogU0FfTk9NQVNLIGlzIG5vdyBzcGVsbGVkIFNBX05PREVGRVIsIGFuZCBTQV9PTkVTSE9UIGlzIHNwZWxsZWQgU0FfUkVTRVRIQU5ELgorCitDaGFuZ2VzIGluIDQuNS4xNgorPT09PT09PT09PT09PT0KKyogQnVnIGZpeGVzLgorKiBJbXByb3ZlZCBvdXRwdXQgZm9yIGRlbGV0ZV9tb2R1bGUsIGZ1dGV4LCBhbmQgbWJpbmQgc3lzdGVtIGNhbGxzIG9uIExpbnV4LgorKiBJbXByb3ZlZCBvdXRwdXQgZm9yIFNHX0lPIGlvY3RscyBvbiBMaW51eC4KKyogU3VwcG9ydCBuZXcgTGludXggc3lzdGVtIGNhbGxzIG1vdmVfcGFnZXMsIHV0aW1lbnNhdCwgc2lnbmFsZmQsIHRpbWVyZmQsCisgIGV2ZW50ZmQsIGdldGNwdSwgZXBvbGxfcHdhaXQuCisKK0NoYW5nZXMgaW4gNC41LjE1Cis9PT09PT09PT09PT09PQorKiBCdWcgZml4ZXMuCisqIFNldmVyYWwgYmlhcmNoIGltcHJvdmVtZW50cy4KKyogSW1wcm92ZWQgb3V0cHV0IGZvciBhZGp0aW1leCwgc3lzY3RsLCBxdW90YWN0bCwgbW91bnQsIHVtb3VudC4KKyogU3VwcG9ydCBuZXcgTGludXggc3lzdGVtIGNhbGxzICphdCwgaW5vdGlmeSosIHBzZWxlY3Q2LCBwcG9sbCBhbmQgdW5zaGFyZS4KKworQ2hhbmdlcyBpbiA0LjUuMTQKKz09PT09PT09PT09PT09CisqIEJ1ZyBmaXhlcy4KKyogQWNjZXB0IG51bWVyaWMgc3lzdGVtIGNhbGxzIGluIC1lLgorCitDaGFuZ2VzIGluIDQuNS4xMworPT09PT09PT09PT09PT0KKyogQnVnIGZpeGVzLgorKiBJbnRyb2R1Y2UgIi1lIHRyYWNlPWRlc2MiLgorCiBDaGFuZ2VzIGluIDQuNS4xMgogPT09PT09PT09PT09PT0KICogQnVnIGZpeGVzLgpkaWZmIC0tZ2l0IGEvUkVBRE1FIGIvUkVBRE1FCmluZGV4IDkxNGNlZGUuLjUxNDkwY2IgMTAwNjQ0Ci0tLSBhL1JFQURNRQorKysgYi9SRUFETUUKQEAgLTI0LDkgKzI0LDggQEAKIFNlZSB0aGUgZmlsZSBUT0RPIGlmIHlvdSBmZWVsIGxpa2UgaGVscGluZyBvdXQuCiAKIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBzdHJhY2UgZnJvbSBpdHMgaG9tZXBhZ2UgYXQKLWh0dHA6Ly93d3cubGlhY3MubmwvfndpY2hlcnQvc3RyYWNlLyAuCitodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3N0cmFjZS8gLgogCiBQbGVhc2Ugc2VuZCBidWcgcmVwb3J0cyBhbmQgZW5oYW5jZW1lbnRzIHRvIHRoZSBzdHJhY2UKIG1haWxpbmdsaXN0IGF0IHN0cmFjZS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQsIG9yIGRpcmVjdGx5IHRvCiBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgotCmRpZmYgLS1naXQgYS9SRUFETUUtQW5kcm9pZCBiL1JFQURNRS1BbmRyb2lkCmluZGV4IDQ1M2EzYzEuLjBmNDVmZTYgMTAwNjQ0Ci0tLSBhL1JFQURNRS1BbmRyb2lkCisrKyBiL1JFQURNRS1BbmRyb2lkCkBAIC0xLDExICsxLDE0IEBACi1TdGVwcyB0byBidWlsZCBmcm9tIG9yaWdpbmFsIHNvdXJjZToKK1N0cmFjZSBvbiBBbmRyb2lkCiAKLTEpIGFwcGx5IGFybS1lYWJpLnBhdGNoIGZyb20gRGViaWFuIGJ1ZyB0cmFja2VyCitUaGUgQW5kcm9pZCBwb3J0IG9mIFN0cmFjZSBkb2VzIG5vdCB1c2UgdGhlIGNvbmZpZ3VyZSBzY3JpcHRzIG9yIE1ha2VmaWxlcworZnJvbSB0aGUgb3JpZ2luYWwgc291cmNlIGRpc3RyaWJ1dGlvbi4KIAotMikgcnVuIGNvbmZpZ3VyZSBhcyBmb2xsb3dzCi0uL2NvbmZpZ3VyZSBDRkxBR1M9LUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAuL2NvbmZpZ3VyZSAgLS1wcmVmaXg9L2RhdGEvIC0tYnVpbGQ9YXJtLXVua25vd24tbGludXgtZ251CitCdWlsZCBTdHJhY2Ugb24gQW5kcm9pZCB1c2luZyB0aGUgQW5kcm9pZCBidWlsZCBzeXN0ZW0sIGxpa2UgdGhlIHJlc3QKK29mIHRoZSBzeXN0ZW0uCiAKLShub3RlIHRoaXMgdXNlcyB0aGUgZGVza3RvcCBnY2MgYW5kIGdsaWJjIGhlYWRlcnMpCitBbmRyb2lkLXNwZWNpZmljIGN1c3RvbWl6YXRpb25zIGFyZSBpbW1vcnRhbGl6ZWQgaW4gQW5kcm9pZC5wYXRjaCB0bworZWFzZSBmdXR1cmUgdXBncmFkZXMuCiAKLTMpIEZ1cnRoZXIgbW9kaWZpY2F0aW9ucyBhcyBjaGFuZ2UgaGlzdG9yeSB3aWxsIHNob3cKK1RoaXMgZmlsZSBjYW4gYmUgcmVnZW5lcmF0ZWQgdXNpbmc6CiAKK2RpZmYgLXIgLXUgLWQgcGF0aC10by1vcmlnaW5hbC11bm1vZGlmaWVkLXN0cmFjZSAuIHwgZ3JlcCAtdiAiT25seSBpbiIgPiBhbmRyb2lkLnBhdGNoCmRpZmYgLS1naXQgYS9SRUFETUUtbGludXggYi9SRUFETUUtbGludXgKaW5kZXggZTJmOTc3OS4uNjJkZjI1OCAxMDA2NDQKLS0tIGEvUkVBRE1FLWxpbnV4CisrKyBiL1JFQURNRS1saW51eApAQCAtNyw3ICs3LDcgQEAKIHlvdSB1c2UgcmVjZW50IGtlcm5lbCBoZWFkZXJzLiBTdHJhY2UgbmVlZHMgdGhvc2UgdG8gZ2V0IHRoZSBwcm9wZXIgZGF0YQogc3RydWN0dXJlcyBhbmQgY29uc3RhdG5zIHVzZWQgYnkgdGhlIGtlcm5lbCwgc2luY2UgdGhlc2UgY2FuIGJlCiBkaWZmZXJlbnQgZnJvbSB0aGUgc3RydWN0dXJlcyB0aGF0IHRoZSBDIGxpYnJhcnkgdXNlcy4gQ3VycmVudGx5IHlvdQotd2lsbCBuZWVkIGF0IGxlYXN0IGEgMi4yLjcgb3IgbmV3ZXIga2VybmVsLiAKK3dpbGwgbmVlZCBhdCBsZWFzdCBhIDIuMi43IG9yIG5ld2VyIGtlcm5lbC4KIAogVG8gY29tcGxpY2F0ZSB0aGluZ3MgYSBiaXQgZnVydGhlciBzdHJhY2UgbWlnaHQgbm90IGNvbXBpbGUgaWYgeW91IGFyZQogdXNpbmcgZGV2ZWxvcG1lbnQga2VybmVscy4gVGhlc2UgdGVuZCB0byBoYXZlIGhlYWRlcnMgdGhhdCBjb25mbGljdCB3aXRoCkBAIC0yOSw0ICsyOSwzIEBACiAKICogeW91IGNhbiBsaW5rIC91c3IvaW5jbHVkZS9saW51eCBhbmQgL3Vzci9pbmNsdWRlL2FzbSB0byB0aGUKICAgY29ycmVzcG9uZGluZyBkaXJlY3RvcmllcyBpbiB5b3VyIGtlcm5lbCBzb3VyY2UtdHJlZS4KLQpkaWZmIC0tZ2l0IGEvYWNpbmNsdWRlLm00IGIvYWNpbmNsdWRlLm00CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzBjYTA5Li4wMDAwMDAwCi0tLSBhL2FjaW5jbHVkZS5tNAorKysgL2Rldi9udWxsCkBAIC0xLDI4MSArMCwwIEBACi1kbmwKLWRubCBUaGlzIGZpbGUgY29udGFpbnMgbWFjcm9zIHVzZWQgaW4gY29uZmlndXJlLmFjLgotZG5sIGF1dG9tYWtlIHVzZXMgdGhpcyBmaWxlIHRvIGdlbmVyYXRlIGFjbG9jYWwubTQsIHdoaWNoIGlzIHVzZWQgYnkgYXV0b2NvbmYuCi1kbmwKLQotZG5sICMjIyBBIG1hY3JvIHRvIGZpbmQgdGhlIGluY2x1ZGUgZGlyZWN0b3J5LCB1c2VmdWwgZm9yIGNyb3NzLWNvbXBpbGluZy4KLUFDX0RFRlVOKFtBQ19JTkNMVURFRElSXSwKLVtBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi1BQ19TVUJTVChpbmNsdWRlZGlyKQotQUNfTVNHX0NIRUNLSU5HKGZvciBwcmltYXJ5IGluY2x1ZGUgZGlyZWN0b3J5KQotaW5jbHVkZWRpcj0vdXNyL2luY2x1ZGUKLWlmIHRlc3QgLW4gIiRHQ0MiCi10aGVuCi0JPmNvbmZ0ZXN0LmMKLQluZXdfaW5jbHVkZWRpcj1gCi0JCSRDQyAtdiAtRSBjb25mdGVzdC5jIDI+JjEgfCAkQVdLICcKLQkJCS9eRW5kIG9mIHNlYXJjaCBsaXN0LyB7IHByaW50IGxhc3Q7IGV4aXQgfQotCQkJeyBsYXN0ID0gWyRdMSB9Ci0JCScKLQlgCi0Jcm0gLWYgY29uZnRlc3QuYwotCWlmIHRlc3QgLW4gIiRuZXdfaW5jbHVkZWRpciIgJiYgdGVzdCAtZCAiJG5ld19pbmNsdWRlZGlyIgotCXRoZW4KLQkJaW5jbHVkZWRpcj0kbmV3X2luY2x1ZGVkaXIKLQlmaQotZmkKLUFDX01TR19SRVNVTFQoJGluY2x1ZGVkaXIpCi1dKQotCi1kbmwgIyMjIEEgbWFjcm8gdG8gc2V0IGdjYyB3YXJuaW5nIGZsYWdzLgotZGVmaW5lKEFDX1dBUk5GTEFHUywKLVtBQ19TVUJTVChXQVJORkxBR1MpCi1pZiB0ZXN0IC16ICIkV0FSTkZMQUdTIgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIElmIHdlJ3JlIHVzaW5nIGdjYyB3ZSB3YW50IHdhcm5pbmcgZmxhZ3MuCi0JCVdBUk5GTEFHUz0tV2FsbAotCWZpCi1maQotXSkKLQotZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiB3ZSBoYXZlIGEgIk1QIiB0eXBlIHByb2NmcwotQUNfREVGVU4oW0FDX01QX1BST0NGU10sCi1bQUNfTVNHX0NIRUNLSU5HKGZvciBNUCBwcm9jZnMpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfbXBfcHJvY2ZzLAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci0KLW1haW4oKQotewotCWludCBwaWQ7Ci0JY2hhciBwcm9jWzMyXTsKLQlGSUxFICpjdGw7Ci0JRklMRSAqc3RhdHVzOwotCWludCBjbWQ7Ci0Jc3RydWN0IHBzdGF0dXMgcHN0YXR1czsKLQotCWlmICgocGlkID0gZm9yaygpKSA9PSAwKSB7Ci0JCXBhdXNlKCk7Ci0JCWV4aXQoMCk7Ci0JfQotCXNwcmludGYocHJvYywgIi9wcm9jLyVkL2N0bCIsIHBpZCk7Ci0JaWYgKChjdGwgPSBmb3Blbihwcm9jLCAidyIpKSA9PSBOVUxMKQotCQlnb3RvIGZhaWw7Ci0Jc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKLQlpZiAoKHN0YXR1cyA9IGZvcGVuIChwcm9jLCAiciIpKSA9PSBOVUxMKQotCQlnb3RvIGZhaWw7Ci0JY21kID0gUENTVE9QOwotCWlmICh3cml0ZSAoZmlsZW5vIChjdGwpLCAmY21kLCBzaXplb2YgY21kKSA8IDApCi0JCWdvdG8gZmFpbDsKLQlpZiAocmVhZCAoZmlsZW5vIChzdGF0dXMpLCAmcHN0YXR1cywgc2l6ZW9mIHBzdGF0dXMpIDwgMCkKLQkJZ290byBmYWlsOwotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDApOwotZmFpbDoKLQlraWxsKHBpZCwgU0lHS0lMTCk7Ci0JZXhpdCgxKTsKLX0KLV1dKV0sW2FjX2N2X21wX3Byb2Nmcz15ZXNdLFthY19jdl9tcF9wcm9jZnM9bm9dLFsKLSMgR3Vlc3Mgb3IgcHVudC4KLWNhc2UgIiRob3N0X29zIiBpbgotc3ZyNC4yKnxzdnI1KikKLQlhY19jdl9tcF9wcm9jZnM9eWVzCi0JOzsKLSopCi0JYWNfY3ZfbXBfcHJvY2ZzPW5vCi0JOzsKLWVzYWMKLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X21wX3Byb2NmcykKLWlmIHRlc3QgIiRhY19jdl9tcF9wcm9jZnMiID0geWVzCi10aGVuCi0JQUNfREVGSU5FKFtIQVZFX01QX1BST0NGU10sIDEsCi1bRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4KLUkuRS4gL2Rldi94eHgvY3RsLCAvZGV2L3h4eC9zdGF0dXMuCi1BbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy5dKQotZmkKLV0pCi0KLWRubCAjIyMgQSBtYWNybyB0byBkZXRlcm1pbmUgaWYgcHJvY2ZzIGlzIHBvbGxhYmxlLgotQUNfREVGVU4oW0FDX1BPTExBQkxFX1BST0NGU10sCi1bQUNfTVNHX0NIRUNLSU5HKGZvciBwb2xsYWJsZSBwcm9jZnMpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfcG9sbGFibGVfcHJvY2ZzLAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzaWduYWwuaD4KLSNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0cm9wdHMuaD4KLSNpbmNsdWRlIDxwb2xsLmg+Ci0KLSNpZmRlZiBIQVZFX01QX1BST0NGUwotI2RlZmluZSBQSU9DU1RPUAlQQ1NUT1AKLSNkZWZpbmUgUE9MTFdBTlQJUE9MTFdSTk9STQotI2RlZmluZSBQUk9DCQkiL3Byb2MvJWQvY3RsIgotI2RlZmluZSBQUk9DX01PREUJInciCi1pbnQgSU9DVEwgKGludCBmZCwgaW50IGNtZCwgaW50IGFyZykgewotCXJldHVybiB3cml0ZSAoZmQsICZjbWQsIHNpemVvZiBjbWQpOwotfQotI2Vsc2UKLSNkZWZpbmUgUE9MTFdBTlQJUE9MTFBSSQotI2RlZmluZQlQUk9DCQkiL3Byb2MvJWQiCi0jZGVmaW5lIFBST0NfTU9ERQkicisiCi0jZGVmaW5lIElPQ1RMCQlpb2N0bAotI2VuZGlmCi0KLW1haW4oKQotewotCWludCBwaWQ7Ci0JY2hhciBwcm9jWzMyXTsKLQlGSUxFICpwZnA7Ci0Jc3RydWN0IHBvbGxmZCBwZmQ7Ci0KLQlpZiAoKHBpZCA9IGZvcmsoKSkgPT0gMCkgewotCQlwYXVzZSgpOwotCQlleGl0KDApOwotCX0KLQlzcHJpbnRmKHByb2MsIFBST0MsIHBpZCk7Ci0JaWYgKChwZnAgPSBmb3Blbihwcm9jLCBQUk9DX01PREUpKSA9PSBOVUxMKQotCQlnb3RvIGZhaWw7Ci0JaWYgKElPQ1RMKGZpbGVubyhwZnApLCBQSU9DU1RPUCwgTlVMTCkgPCAwKQotCQlnb3RvIGZhaWw7Ci0JcGZkLmZkID0gZmlsZW5vKHBmcCk7Ci0JcGZkLmV2ZW50cyA9IFBPTExXQU5UOwotCWlmIChwb2xsKCZwZmQsIDEsIDApIDwgMCkKLQkJZ290byBmYWlsOwotCWlmICghKHBmZC5yZXZlbnRzICYgUE9MTFdBTlQpKQotCQlnb3RvIGZhaWw7Ci0Ja2lsbChwaWQsIFNJR0tJTEwpOwotCWV4aXQoMCk7Ci1mYWlsOgotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDEpOwotfQotXV0pXSxbYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPXllc10sW2FjX2N2X3BvbGxhYmxlX3Byb2Nmcz1ub10sWwotIyBHdWVzcyBvciBwdW50LgotY2FzZSAiJGhvc3Rfb3MiIGluCi1zb2xhcmlzMip8aXJpeDUqfHN2cjQuMnV3KnxzdnI1KikKLQlhY19jdl9wb2xsYWJsZV9wcm9jZnM9eWVzCi0JOzsKLSopCi0JYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCi0JOzsKLWVzYWMKLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X3BvbGxhYmxlX3Byb2NmcykKLWlmIHRlc3QgIiRhY19jdl9wb2xsYWJsZV9wcm9jZnMiID0geWVzCi10aGVuCi0JQUNfREVGSU5FKFtIQVZFX1BPTExBQkxFX1BST0NGU10sIDEsCi1bRGVmaW5lIGlmIHlvdSBoYXZlIFNWUjQgYW5kIHRoZSBwb2xsIHN5c3RlbSBjYWxsIHdvcmtzIG9uIC9wcm9jIGZpbGVzLl0pCi1maQotXSkKLQotZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiB0aGUgcHJzdGF0dXMgc3RydWN0dXJlIGhhcyBhIHByX3N5c2NhbGwgbWVtYmVyLgotQUNfREVGVU4oW0FDX1NUUlVDVF9QUl9TWVNDQUxMXSwKLVtBQ19NU0dfQ0hFQ0tJTkcoZm9yIHByX3N5c2NhbGwgaW4gc3RydWN0IHByc3RhdHVzKQotQUNfQ0FDSEVfVkFMKGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsLAotW0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPl1dLCBbWyNpZmRlZiBIQVZFX01QX1BST0NGUwotcHN0YXR1c190IHM7Ci1zLnByX2x3cC5wcl9zeXNjYWxsCi0jZWxzZQotcHJzdGF0dXNfdCBzOwotcy5wcl9zeXNjYWxsCi0jZW5kaWZdXSldLFthY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD15ZXNdLFthY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD1ub10pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsKQotaWYgdGVzdCAiJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsIiA9IHllcwotdGhlbgotCUFDX0RFRklORShbSEFWRV9QUl9TWVNDQUxMXSwgMSwKLVtEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuXSkKLWZpCi1dKQotCi1kbmwgIyMjIEEgbWFjcm8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgc3RhdDY0IGlzIGRlZmluZWQuCi1BQ19ERUZVTihbQUNfU1RBVDY0XSwKLVtBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN0YXQ2NCBpbiAoYXNtfHN5cykvc3RhdC5oKQotQUNfQ0FDSEVfVkFMKGFjX2N2X3R5cGVfc3RhdDY0LAotW0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaWZkZWYgTElOVVgKLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWZdXSwgW1tzdHJ1Y3Qgc3RhdDY0IHN0O11dKV0sW2FjX2N2X3R5cGVfc3RhdDY0PXllc10sW2FjX2N2X3R5cGVfc3RhdDY0PW5vXSldKQotQUNfTVNHX1JFU1VMVCgkYWNfY3ZfdHlwZV9zdGF0NjQpCi1pZiB0ZXN0ICIkYWNfY3ZfdHlwZV9zdGF0NjQiID0geWVzCi10aGVuCi0JQUNfREVGSU5FKFtIQVZFX1NUQVQ2NF0sIDEsCi1bRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC5dKQotZmkKLV0pCi0KLWRubCAjIyMgQSBtYWNybyB0byBkZXRlcm1pbmUgaWYgb2ZmX3QgaXMgYSBsb25nIGxvbmcKLUFDX0RFRlVOKFtBQ19PRkZfVF9JU19MT05HX0xPTkddLAotW0FDX01TR19DSEVDS0lORyhmb3IgbG9uZyBsb25nIG9mZl90KQotQUNfQ0FDSEVfVkFMKGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90LAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotbWFpbiAoKSB7Ci0JaWYgKHNpemVvZiAob2ZmX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotCSAgICBzaXplb2YgKG9mZl90KSA+IHNpemVvZiAobG9uZykpCi0JICAgIHJldHVybiAwOwotCXJldHVybiAxOwotfQotXV0pXSxbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9eWVzXSxbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm9dLFsjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm8KLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90KQotaWYgdGVzdCAiJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90IiA9IHllcwotdGhlbgotCUFDX0RFRklORShbSEFWRV9MT05HX0xPTkdfT0ZGX1RdLCAxLCBbRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLl0pCi1maQotXSkKLQotZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcKLUFDX0RFRlVOKFtBQ19STElNX1RfSVNfTE9OR19MT05HXSwKLVtBQ19NU0dfQ0hFQ0tJTkcoZm9yIGxvbmcgbG9uZyBybGltX3QpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90LAotW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0jaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci1tYWluICgpIHsKLQlpZiAoc2l6ZW9mIChybGltX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotCSAgICBzaXplb2YgKHJsaW1fdCkgPiBzaXplb2YgKGxvbmcpKQotCSAgICByZXR1cm4gMDsKLQlyZXR1cm4gMTsKLX0KLV1dKV0sW2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdD15ZXNdLFthY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9bm9dLFsjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCi1dKV0pCi1BQ19NU0dfUkVTVUxUKCRhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3QpCi1pZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90IiA9IHllcwotdGhlbgotCUFDX0RFRklORShbSEFWRV9MT05HX0xPTkdfUkxJTV9UXSwgMSwgW0RlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuXSkKLWZpCi1dKQotCi1kbmwgIyMjIEEgbWFjcm8gdG8gZGV0ZXJtaW5lIGVuZGlhbm5lc3Mgb2YgbG9uZyBsb25nCi1BQ19ERUZVTihbQUNfTElUVExFX0VORElBTl9MT05HX0xPTkddLAotW0FDX01TR19DSEVDS0lORyhmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZywKLVtBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWwotaW50IG1haW4gKCkgewotCXVuaW9uIHsKLQkJbG9uZyBsb25nIGxsOwotCQlsb25nIGwgWzJdOwotCX0gdTsKLQl1LmxsID0gMHgxMjM0NTY3ODsKLQlpZiAodS5sWzBdID09IDB4MTIzNDU2NzgpCi0JCXJldHVybiAwOwotCXJldHVybiAxOwotfQotXV0pXSxbYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZz15ZXNdLFthY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPW5vXSxbIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKLWFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9bm8KLV0pXSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmcpCi1pZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZyIgPSB5ZXMKLXRoZW4KLQlBQ19ERUZJTkUoW0hBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkddLCAxLAotW0RlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi5dKQotZmkKLV0pCmRpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVmMzE1OC4uMDAwMDAwMAotLS0gYS9hY2xvY2FsLm00CisrKyAvZGV2L251bGwKQEAgLTEsODkyICswLDAgQEAKLSMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgYWNsb2NhbCAxLjkuNSAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAotIyAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0jIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLQotIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9OKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEF1dG9tYWtlIFguWSB0cmFjZXMgdGhpcyBtYWNybyB0byBlbnN1cmUgYWNsb2NhbC5tNCBoYXMgYmVlbgotIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFguWS4KLUFDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwgW2FtX19hcGlfdmVyc2lvbj0iMS45Il0pCi0KLSMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIENhbGwgQU1fQVVUT01BS0VfVkVSU0lPTiBzbyBpdCBjYW4gYmUgdHJhY2VkLgotIyBUaGlzIGZ1bmN0aW9uIGlzIEFDX1JFUVVJUkVkIGJ5IEFDX0lOSVRfQVVUT01BS0UuCi1BQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCi0JIFtBTV9BVVRPTUFLRV9WRVJTSU9OKFsxLjkuNV0pXSkKLQotIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotCi0jIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBGb3IgcHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zvb10pLCBBdXRvY29uZiBzZXRzCi0jICRhY19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCi0jIGAkc3JjZGlyJywgYCRzcmNkaXIvLi4nLCBvciBgJHNyY2Rpci8uLi8uLicuCi0jCi0jIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKLSMgdG9vbCBmcm9tIHRoZSBhdXhpbGlhcnkgZGlyZWN0b3J5LiAgVGhlIHByb2JsZW0gaXMgdGhhdCAkc3JjZGlyIChhbmQKLSMgdGhlcmVmb3JlICRhY19hdXhfZGlyIGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUsCi0jIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBzaW5jZQotIyBpdCBtYWtlcyAkYWNfYXV4X2RpciBxdWl0ZSB1bnVzYWJsZSBpbiBzdWJkaXJlY3RvcmllczogaW4gdGhlIHRvcAotIyBzb3VyY2UgZGlyZWN0b3J5LCBhbnkgZm9ybSB3aWxsIHdvcmsgZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKLSMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4KLSMKLSMgJGFjX2F1eF9kaXIvbWlzc2luZwotIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCi0jICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcKLSMgICAgZmFpbHMgaWYgJGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCi0jICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCi0jICAgICAgICAgIGEgcmVsYXRpdmUgJGFjX2F1eF9kaXIKLSMKLSMgVGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKLSMgYXJlIGJvdGggcHJlZml4ZWQgYnkgJHNyY2Rpci4gIEluIGFuIGluLXNvdXJjZSBidWlsZCB0aGlzIGlzIHVzdWFsbHkKLSMgaGFybWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRoaW5ncyB3aWxsIGJyb2tlIHdoZW4geW91Ci0jIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIuCi0jCi0jIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2ltaWxhciB0byAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nLAotIyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKLSMgICBhbV9hdXhfZGlyPSdcJCh0b3Bfc3JjZGlyKS8nYGV4cHIgIiRhY19hdXhfZGlyIiA6ICIkc3JjZGlyLy8qXCguKlwpImAKLSMgYW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFzCi0jICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0jIFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcgYXMgTUlTU0lORyBpcyBub3QgY2FsbGVkIGZyb20gY29uZmlndXJlLCBiZWNhdXNlCi0jIHVuZm9ydHVuYXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBjb25maWd1cmUuCi0jIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KLSMgY29uZmlndXJlLCBhbmQgY291bGQgdGhlcmVmb3JlIG5vdCB1c2UgdGhpcyAiZml4ZWQiICRhY19hdXhfZGlyLgotIwotIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4KLSMgYWJzb2x1dGUgUEFUSC4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IHVzaW5nIGFic29sdXRlIHBhdGhzIHByZXZlbnQgYQotIyBjb25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCByZWNvbmZpZ3VyYXRpb24uCi0KLUFDX0RFRlVOKFtBTV9BVVhfRElSX0VYUEFORF0sCi1bZG5sIFJlbHkgb24gYXV0b2NvbmYgdG8gc2V0IHVwIENEUEFUSCBwcm9wZXJseS4KLUFDX1BSRVJFUShbMi41MF0pZG5sCi0jIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi1hbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi1dKQotCi0jIEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDcKLQotIyBBTV9DT05ESVRJT05BTChOQU1FLCBTSEVMTC1DT05ESVRJT04pCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCi1BQ19ERUZVTihbQU1fQ09ORElUSU9OQUxdLAotW0FDX1BSRVJFUSgyLjUyKWRubAotIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCi0JWyQxXSwgW0ZBTFNFXSwgW0FDX0ZBVEFMKFskMDogaW52YWxpZCBjb25kaXRpb246ICQxXSldKWRubAotQUNfU1VCU1QoWyQxX1RSVUVdKQotQUNfU1VCU1QoWyQxX0ZBTFNFXSkKLWlmICQyOyB0aGVuCi0gICQxX1RSVUU9Ci0gICQxX0ZBTFNFPScjJwotZWxzZQotICAkMV9UUlVFPScjJwotICAkMV9GQUxTRT0KLWZpCi1BQ19DT05GSUdfQ09NTUFORFNfUFJFKAotW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9IjsgdGhlbgotICBBQ19NU0dfRVJST1IoW1tjb25kaXRpb25hbCAiJDEiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCi1maV0pXSkKLQotCi0jIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNQotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIHNlcmlhbCA4Ci0KLSMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0jIHdyaXR0ZW4gaW4gY2xlYXIsIGluIHdoaWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xvY2FsLm00LAotIyB3aWxsIHRoaW5rIGl0IHNlZXMgYSAqdXNlKiwgYW5kIHRoZXJlZm9yZSB3aWxsIHRyaWdnZXIgYWxsIGl0J3MKLSMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZwotIyBDQyBldGMuIGluIHRoZSBNYWtlZmlsZSwgd2lsbCBhc2sgZm9yIGFuIEFDX1BST0dfQ0MgdXNlLi4uCi0KLQotIyBfQU1fREVQRU5ERU5DSUVTKE5BTUUpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotIyBOQU1FIGlzICJDQyIsICJDWFgiLCAiR0NKIiwgb3IgIk9CSkMiLgotIyBXZSB0cnkgYSBmZXcgdGVjaG5pcXVlcyBhbmQgdXNlIHRoYXQgdG8gc2V0IGEgc2luZ2xlIGNhY2hlIHZhcmlhYmxlLgotIwotIyBXZSBkb24ndCBBQ19SRVFVSVJFIHRoZSBjb3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxhdHRlciB3YXMKLSMgbW9kaWZpZWQgdG8gaW52b2tlIF9BTV9ERVBFTkRFTkNJRVMoQ0MpOyB3ZSB3b3VsZCBoYXZlIGEgY2lyY3VsYXIKLSMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotIyBqdXN0IHJlbHkgb24gQUNfUFJPR19DQy4KLUFDX0RFRlVOKFtfQU1fREVQRU5ERU5DSUVTXSwKLVtBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKLUFDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSlkbmwKLUFDX1JFUVVJUkUoW0FNX01BS0VfSU5DTFVERV0pZG5sCi1BQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAotCi1pZmVsc2UoWyQxXSwgQ0MsICAgW2RlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD1dLAotICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKLSAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpDIiBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAotICAgICAgIFskMV0sIEdDSiwgIFtkZXBjYz0iJEdDSiIgIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCi0gICAgICAgICAgICAgICAgICAgW2RlcGNjPSIkJDEiICAgYW1fY29tcGlsZXJfbGlzdD1dKQotCi1BQ19DQUNIRV9DSEVDSyhbZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2NdLAotICAgICAgICAgICAgICAgW2FtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlXSwKLVtpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0gICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAotICAjIGluIEQnLgotICBta2RpciBjb25mdGVzdC5kaXIKLSAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSAgY2QgY29uZnRlc3QuZGlyCi0gICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0gICMgZGlyZWN0b3J5LgotICBta2RpciBzdWIKLQotICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi0gIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0gICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSAgZmkKLSAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0gICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0gICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAotICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KLSAgICAjCi0gICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgotICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgotICAgIDogPiBzdWIvY29uZnRlc3QuYwotICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwotICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYwotICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCi0gICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSAgICBkb25lCi0gICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgotCi0gICAgY2FzZSAkZGVwbW9kZSBpbgotICAgIG5vc2lkZWVmZmVjdCkKLSAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCi0JY29udGludWUKLSAgICAgIGVsc2UKLQlicmVhawotICAgICAgZmkKLSAgICAgIDs7Ci0gICAgbm9uZSkgYnJlYWsgOzsKLSAgICBlc2FjCi0gICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0gICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKLSAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4KLSAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKLSAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0gICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAtbyBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LmMgXAotICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwotICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgotICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKLSAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6Ci0gICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0gICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQotICAgICAgICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotICAgICAgICBicmVhawotICAgICAgZmkKLSAgICBmaQotICBkb25lCi0KLSAgY2QgLi4KLSAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotZWxzZQotICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi1maQotXSkKLUFDX1NVQlNUKFskMURFUE1PREVdLCBbZGVwbW9kZT0kYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdKQotQU1fQ09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0gIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCi0gICYmIHRlc3QgIiRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzXSkKLV0pCi0KLQotIyBBTV9TRVRfREVQRElSCi0jIC0tLS0tLS0tLS0tLS0KLSMgQ2hvb3NlIGEgZGlyZWN0b3J5IG5hbWUgZm9yIGRlcGVuZGVuY3kgZmlsZXMuCi0jIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotQUNfREVGVU4oW0FNX1NFVF9ERVBESVJdLAotW0FDX1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0pZG5sCi1BQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi1dKQotCi0KLSMgQU1fREVQX1RSQUNLCi0jIC0tLS0tLS0tLS0tLQotQUNfREVGVU4oW0FNX0RFUF9UUkFDS10sCi1bQUNfQVJHX0VOQUJMRShkZXBlbmRlbmN5LXRyYWNraW5nLAotWyAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBidWlsZAotICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCi1pZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KLSAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIKLSAgQU1ERVBCQUNLU0xBU0g9J1wnCi1maQotQU1fQ09ORElUSU9OQUwoW0FNREVQXSwgW3Rlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhub10pCi1BQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKQotXSkKLQotIyBHZW5lcmF0ZSBjb2RlIHRvIHNldCB1cCBkZXBlbmRlbmN5IHRyYWNraW5nLiAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotCi0jIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNQotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jc2VyaWFsIDMKLQotIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1BQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLVtmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCi0gIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgZGlycGFydD1gQVNfRElSTkFNRSgiJG1mIilgCi0gIGVsc2UKLSAgICBjb250aW51ZQotICBmaQotICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0gIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0gIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotICAjIGV4cGFuc2lvbi4KLSAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0gICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0gICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0gICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0gICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0gICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAotICAgIEFTX01LRElSX1AoWyRkaXJwYXJ0LyRmZGlyXSkKLSAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgotICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgotICBkb25lCi1kb25lCi1dKSMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCi0KLQotIyBBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFDX1JFUVVJUkUuCi0jCi0jIFRoaXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcKLSMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVhdGVzIGVhY2ggYC5QJyBmaWxlIHRoYXQgd2Ugd2lsbAotIyBuZWVkIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGUgZGVwZW5kZW5jeSBoYW5kbGluZyBjb2RlLgotQUNfREVGVU4oW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLVtBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwKLSAgICAgW3Rlc3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10sCi0gICAgIFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkKLV0pCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDgKLQotIyBBTV9DT05GSUdfSEVBREVSIGlzIG9ic29sZXRlLiAgSXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgQUNfQ09ORklHX0hFQURFUlMuCi1BVV9ERUZVTihbQU1fQ09ORklHX0hFQURFUl0sIFtBQ19DT05GSUdfSEVBREVSUygkQCldKQotCi0jIERvIGFsbCB0aGUgd29yayBmb3IgQXV0b21ha2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDEyCi0KLSMgVGhpcyBtYWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkgbmVlZGVkIGlmCi0jIHlvdXIgcGFja2FnZSBkb2VzIGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRoaXMgaXNuJ3QgcmVhbGx5IGEgYmlnIGRlYWwuCi0KLSMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdFLCBWRVJTSU9OLCBbTk8tREVGSU5FXSkKLSMgQU1fSU5JVF9BVVRPTUFLRShbT1BUSU9OU10pCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBjYWxsIHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHlsZQotIyBjYWxsIChwcmUgYXV0b2NvbmYtMi41MCksIHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBvdXQuICBQQUNLQUdFCi0jIGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQgZnJvbQotIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgotIyBXZSBzdXBwb3J0IGJvdGggY2FsbCBzdHlsZXMgZm9yIHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIKLSMgdGhlIG5leHQgQXV0b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKLSMgYXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5ldyBBdXRvY29uZgotIyByZWxlYXNlIGFuZCBkcm9wIHRoZSBvbGQgY2FsbCBzdXBwb3J0LgotQUNfREVGVU4oW0FNX0lOSVRfQVVUT01BS0VdLAotW0FDX1BSRVJFUShbMi41OF0pZG5sCi1kbmwgQXV0b2NvbmYgd2FudHMgdG8gZGlzYWxsb3cgQU1fIG5hbWVzLiAgV2UgZXhwbGljaXRseSBhbGxvdwotZG5sIHRoZSBvbmVzIHdlIGNhcmUgYWJvdXQuCi1tNF9wYXR0ZXJuX2FsbG93KFteQU1fW0EtWl0rRkxBR1MkXSlkbmwKLUFDX1JFUVVJUkUoW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dKWRubAotQUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKLSMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAotaWYgdGVzdCAiYGNkICRzcmNkaXIgJiYgcHdkYCIgIT0gImBwd2RgIiAmJgotICAgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KLSAgQUNfTVNHX0VSUk9SKFtzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuICJtYWtlIGRpc3RjbGVhbiIgdGhlcmUgZmlyc3RdKQotZmkKLQotIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCi1pZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgotICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KLSAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCi0gIGVsc2UKLSAgICBDWUdQQVRIX1c9ZWNobwotICBmaQotZmkKLUFDX1NVQlNUKFtDWUdQQVRIX1ddKQotCi0jIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCi1kbmwgRGlzdGluZ3Vpc2ggYmV0d2VlbiBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4KLW00X2lmdmFsKFskMl0sCi1bbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZpbmVdKV0pZG5sCi0gQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJDFdKWRubAotIEFDX1NVQlNUKFtWRVJTSU9OXSwgWyQyXSldLAotW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAotIEFDX1NVQlNUKFtQQUNLQUdFXSwgWydBQ19QQUNLQUdFX1RBUk5BTUUnXSlkbmwKLSBBQ19TVUJTVChbVkVSU0lPTl0sIFsnQUNfUEFDS0FHRV9WRVJTSU9OJ10pXSlkbmwKLQotX0FNX0lGX09QVElPTihbbm8tZGVmaW5lXSwsCi1bQUNfREVGSU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1lIG9mIHBhY2thZ2VdKQotIEFDX0RFRklORV9VTlFVT1RFRChWRVJTSU9OLCAiJFZFUlNJT04iLCBbVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZV0pXSlkbmwKLQotIyBTb21lIHRvb2xzIEF1dG9tYWtlIG5lZWRzLgotQUNfUkVRVUlSRShbQU1fU0FOSVRZX0NIRUNLXSlkbmwKLUFDX1JFUVVJUkUoW0FDX0FSR19QUk9HUkFNXSlkbmwKLUFNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2FsLSR7YW1fX2FwaV92ZXJzaW9ufSkKLUFNX01JU1NJTkdfUFJPRyhBVVRPQ09ORiwgYXV0b2NvbmYpCi1BTV9NSVNTSU5HX1BST0coQVVUT01BS0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSkKLUFNX01JU1NJTkdfUFJPRyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQotQU1fTUlTU0lOR19QUk9HKE1BS0VJTkZPLCBtYWtlaW5mbykKLUFNX1BST0dfSU5TVEFMTF9TSAotQU1fUFJPR19JTlNUQUxMX1NUUklQCi1BQ19SRVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAotIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KLSMgc29tZSBwbGF0Zm9ybXMuCi1BQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi1BQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VUXSlkbmwKLUFDX1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0pZG5sCi1fQU1fSUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSAgICAgICAgICAgICAgW19BTV9JRl9PUFRJT04oW3Rhci1wYXhdLCBbX0FNX1BST0dfVEFSKFtwYXhdKV0sCi0JICAgICAgCQkgICAgIFtfQU1fUFJPR19UQVIoW3Y3XSldKV0pCi1fQU1fSUZfT1BUSU9OKFtuby1kZXBlbmRlbmNpZXNdLCwKLVtBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19DQ10sCi0gICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhDQyldLAotICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNfUFJPR19DQ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRlZm4oW0FDX1BST0dfQ0NdKVtfQU1fREVQRU5ERU5DSUVTKENDKV0pXSlkbmwKLUFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0gICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhDWFgpXSwKLSAgICAgICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihbQUNfUFJPR19DWFhdKVtfQU1fREVQRU5ERU5DSUVTKENYWCldKV0pZG5sCi1dKQotXSkKLQotCi0jIFdoZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0jIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgotIyB0aGF0IGlzIGdlbmVyYXRlZC4gIFRoZSBzdGFtcCBmaWxlcyBhcmUgbnVtYmVyZWQgdG8gaGF2ZSBkaWZmZXJlbnQgbmFtZXMuCi0KLSMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKLSMgbG9vcCB3aGVyZSBjb25maWcuc3RhdHVzIGNyZWF0ZXMgdGhlIGhlYWRlcnMsIHNvIHdlIGNhbiBnZW5lcmF0ZQotIyBvdXIgc3RhbXAgZmlsZXMgdGhlcmUuCi1BQ19ERUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCi1bIyBDb21wdXRlICQxJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgotX2FtX3N0YW1wX2NvdW50PTEKLWZvciBfYW1faGVhZGVyIGluICRjb25maWdfaGVhZGVycyA6OyBkbwotICBjYXNlICRfYW1faGVhZGVyIGluCi0gICAgJDEgfCAkMToqICkKLSAgICAgIGJyZWFrIDs7Ci0gICAgKiApCi0gICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7Ci0gIGVzYWMKLWRvbmUKLWVjaG8gInRpbWVzdGFtcCBmb3IgJDEiID5gQVNfRElSTkFNRShbJDFdKWAvc3RhbXAtaFtdJF9hbV9zdGFtcF9jb3VudF0pCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIEFNX1BST0dfSU5TVEFMTF9TSAotIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSMgRGVmaW5lICRpbnN0YWxsX3NoLgotQUNfREVGVU4oW0FNX1BST0dfSU5TVEFMTF9TSF0sCi1bQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotaW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIiRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQotQUNfU1VCU1QoaW5zdGFsbF9zaCldKQotCi0jIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBzZXJpYWwgMgotCi0jIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCi0jIHdpdGggYSBsZWFkaW5nIGRvdC4gIEZvciBpbnN0YW5jZSBNUy1ET1MgZG9lc24ndC4KLUFDX0RFRlVOKFtBTV9TRVRfTEVBRElOR19ET1RdLAotW3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCi1ta2RpciAudHN0IDI+L2Rldi9udWxsCi1pZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSAgYW1fX2xlYWRpbmdfZG90PS4KLWVsc2UKLSAgYW1fX2xlYWRpbmdfZG90PV8KLWZpCi1ybWRpciAudHN0IDI+L2Rldi9udWxsCi1BQ19TVUJTVChbYW1fX2xlYWRpbmdfZG90XSldKQotCi0jIEFkZCAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUgb3B0aW9uIHRvIGNvbmZpZ3VyZS4gICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0jIEZyb20gSmltIE1leWVyaW5nCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk4LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1Ci0jIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDQKLQotQUNfREVGVU4oW0FNX01BSU5UQUlORVJfTU9ERV0sCi1bQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlc10pCi0gIGRubCBtYWludGFpbmVyLW1vZGUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAotICBBQ19BUkdfRU5BQkxFKG1haW50YWluZXItbW9kZSwKLVsgIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSAgZW5hYmxlIG1ha2UgcnVsZXMgYW5kIGRlcGVuZGVuY2llcyBub3QgdXNlZnVsCi0JCQkgIChhbmQgc29tZXRpbWVzIGNvbmZ1c2luZykgdG8gdGhlIGNhc3VhbCBpbnN0YWxsZXJdLAotICAgICAgVVNFX01BSU5UQUlORVJfTU9ERT0kZW5hYmxldmFsLAotICAgICAgVVNFX01BSU5UQUlORVJfTU9ERT1ubykKLSAgQUNfTVNHX1JFU1VMVChbJFVTRV9NQUlOVEFJTkVSX01PREVdKQotICBBTV9DT05ESVRJT05BTChNQUlOVEFJTkVSX01PREUsIFt0ZXN0ICRVU0VfTUFJTlRBSU5FUl9NT0RFID0geWVzXSkKLSAgTUFJTlQ9JE1BSU5UQUlORVJfTU9ERV9UUlVFCi0gIEFDX1NVQlNUKE1BSU5UKWRubAotXQotKQotCi1BVV9ERUZVTihbam1fTUFJTlRBSU5FUl9NT0RFXSwgW0FNX01BSU5UQUlORVJfTU9ERV0pCi0KLSMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIHNlcmlhbCAzCi0KLSMgQU1fTUFLRV9JTkNMVURFKCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0KLSMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KLUFDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAotW2FtX21ha2U9JHtNQUtFLW1ha2V9Ci1jYXQgPiBjb25maW5jIDw8ICdFTkQnCi1hbV9fZG9pdDoKLQlAZWNobyBkb25lCi0uUEhPTlk6IGFtX19kb2l0Ci1FTkQKLSMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4KLUFDX01TR19DSEVDS0lORyhbZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZV0pCi1hbV9faW5jbHVkZT0iIyIKLWFtX19xdW90ZT0KLV9hbV9yZXN1bHQ9bm9uZQotIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLWVjaG8gImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKLSMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVjdG9yeScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKLSMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KLSMgSW4gcGFydGljdWxhciB3ZSBkb24ndCBsb29rIGF0IGBebWFrZTonIGJlY2F1c2UgR05VIG1ha2UgbWlnaHQKLSMgYmUgaW52b2tlZCB1bmRlciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCi0jIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KLWlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsIHwgZ3JlcCAtdiAnaW5nIGRpcmVjdG9yeSdgIiA9ICJkb25lIjsgdGhlbgotICAgYW1fX2luY2x1ZGU9aW5jbHVkZQotICAgYW1fX3F1b3RlPQotICAgX2FtX3Jlc3VsdD1HTlUKLWZpCi0jIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLWlmIHRlc3QgIiRhbV9faW5jbHVkZSIgPSAiIyI7IHRoZW4KLSAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KLSAgICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCi0gICAgICBhbV9fcXVvdGU9IlwiIgotICAgICAgX2FtX3Jlc3VsdD1CU0QKLSAgIGZpCi1maQotQUNfU1VCU1QoW2FtX19pbmNsdWRlXSkKLUFDX1NVQlNUKFthbV9fcXVvdGVdKQotQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQotcm0gLWYgY29uZmluYyBjb25mbWYKLV0pCi0KLSMgRmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dyYW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVzZS4gIC0qLSBBdXRvY29uZiAtKi0KLQotIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUKLSMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBzZXJpYWwgNAotCi0jIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUFDX0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAotW0FDX1JFUVVJUkUoW0FNX01JU1NJTkdfSEFTX1JVTl0pCi0kMT0keyQxLSIke2FtX21pc3NpbmdfcnVufSQyIn0KLUFDX1NVQlNUKCQxKV0pCi0KLQotIyBBTV9NSVNTSU5HX0hBU19SVU4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tCi0jIERlZmluZSBNSVNTSU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZhciBhbmQgdGVzdCBpZiBpdCBzdXBwb3J0cyAtLXJ1bi4KLSMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3NpbmdfcnVuIHRvIHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgotQUNfREVGVU4oW0FNX01JU1NJTkdfSEFTX1JVTl0sCi1bQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAotdGVzdCB4IiR7TUlTU0lORytzZXR9IiA9IHhzZXQgfHwgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0jIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLWlmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCi0gIGFtX21pc3NpbmdfcnVuPSIkTUlTU0lORyAtLXJ1biAiCi1lbHNlCi0gIGFtX21pc3NpbmdfcnVuPQotICBBQ19NU0dfV0FSTihbYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmddKQotZmkKLV0pCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIEFNX1BST0dfTUtESVJfUAotIyAtLS0tLS0tLS0tLS0tLS0KLSMgQ2hlY2sgd2hldGhlciBgbWtkaXIgLXAnIGlzIHN1cHBvcnRlZCwgZmFsbGJhY2sgdG8gbWtpbnN0YWxsZGlycyBvdGhlcndpc2UuCi0jCi0jIEF1dG9tYWtlIDEuOCB1c2VkIGBta2RpciAtbSAwNzU1IC1wIC0tJyB0byBlbnN1cmUgdGhhdCBkaXJlY3RvcmllcwotIyBjcmVhdGVkIGJ5IGBtYWtlIGluc3RhbGwnIGFyZSBhbHdheXMgd29ybGQgcmVhZGFibGUsIGV2ZW4gaWYgdGhlCi0jIGluc3RhbGxlciBoYXBwZW5zIHRvIGhhdmUgYW4gb3Zlcmx5IHJlc3RyaWN0aXZlIHVtYXNrIChlLmcuIDA3NykuCi0jIFRoaXMgd2FzIGEgbWlzdGFrZS4gIFRoZXJlIGFyZSBhdCBsZWFzdCB0d28gcmVhc29ucyB3aHkgd2UgbXVzdCBub3QKLSMgdXNlIGAtbSAwNzU1JzoKLSMgICAtIGl0IGNhdXNlcyBzcGVjaWFsIGJpdHMgbGlrZSBTR0lEIHRvIGJlIGlnbm9yZWQsCi0jICAgLSBpdCBtYXkgYmUgdG9vIHJlc3RyaWN0aXZlIChzb21lIHNldHVwcyBleHBlY3QgNzc1IGRpcmVjdG9yaWVzKS4KLSMKLSMgRG8gbm90IHVzZSAtbSAwNzU1IGFuZCBsZXQgcGVvcGxlIGNob29zZSB3aGF0ZXZlciB0aGV5IGV4cGVjdCBieQotIyBzZXR0aW5nIHVtYXNrLgotIwotIyBXZSBjYW5ub3QgYWNjZXB0IGFueSBpbXBsZW1lbnRhdGlvbiBvZiBgbWtkaXInIHRoYXQgcmVjb2duaXplcyBgLXAnLgotIyBTb21lIGltcGxlbWVudGF0aW9ucyAoc3VjaCBhcyBTb2xhcmlzIDgncykgYXJlIG5vdCB0aHJlYWQtc2FmZTogaWYgYQotIyBwYXJhbGxlbCBtYWtlIHRyaWVzIHRvIHJ1biBgbWtkaXIgLXAgYS9iJyBhbmQgYG1rZGlyIC1wIGEvYycKLSMgY29uY3VycmVudGx5LCBib3RoIHZlcnNpb24gY2FuIGRldGVjdCB0aGF0IGEvIGlzIG1pc3NpbmcsIGJ1dCBvbmx5Ci0jIG9uZSBjYW4gY3JlYXRlIGl0IGFuZCB0aGUgb3RoZXIgd2lsbCBlcnJvciBvdXQuICBDb25zZXF1ZW50bHkgd2UKLSMgcmVzdHJpY3Qgb3Vyc2VsdmVzIHRvIEdOVSBtYWtlICh1c2luZyB0aGUgLS12ZXJzaW9uIG9wdGlvbiBlbnN1cmVzCi0jIHRoaXMuKQotQUNfREVGVU4oW0FNX1BST0dfTUtESVJfUF0sCi1baWYgbWtkaXIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgotICAjIFdlIHVzZWQgdG8ga2VlcGluZyB0aGUgYC4nIGFzIGZpcnN0IGFyZ3VtZW50LCBpbiBvcmRlciB0bwotICAjIGFsbG93ICQobWtkaXJfcCkgdG8gYmUgdXNlZCB3aXRob3V0IGFyZ3VtZW50LiAgQXMgaW4KLSAgIyAgICQobWtkaXJfcCkgJChzb21lZGlyKQotICAjIHdoZXJlICQoc29tZWRpcikgaXMgY29uZGl0aW9uYWxseSBkZWZpbmVkLiAgSG93ZXZlciB0aGlzIGlzIHdyb25nCi0gICMgZm9yIHR3byByZWFzb25zOgotICAjICAxLiBpZiB0aGUgcGFja2FnZSBpcyBpbnN0YWxsZWQgYnkgYSB1c2VyIHdobyBjYW5ub3Qgd3JpdGUgYC4nCi0gICMgICAgIG1ha2UgaW5zdGFsbCB3aWxsIGZhaWwsCi0gICMgIDIuIHRoZSBhYm92ZSBjb21tZW50IHNob3VsZCBtb3N0IGNlcnRhaW5seSByZWFkCi0gICMgICAgICQobWtkaXJfcCkgJChERVNURElSKSQoc29tZWRpcikKLSAgIyAgICAgc28gaXQgZG9lcyBub3Qgd29yayB3aGVuICQoc29tZWRpcikgaXMgdW5kZWZpbmVkIGFuZAotICAjICAgICAkKERFU1RESVIpIGlzIG5vdC4KLSAgIyAgVG8gc3VwcG9ydCB0aGUgbGF0dGVyIGNhc2UsIHdlIGhhdmUgdG8gd3JpdGUKLSAgIyAgICAgdGVzdCAteiAiJChzb21lZGlyKSIgfHwgJChta2Rpcl9wKSAkKERFU1RESVIpJChzb21lZGlyKSwKLSAgIyAgc28gdGhlIGAuJyB0cmljayBpcyBwb2ludGxlc3MuCi0gIG1rZGlyX3A9J21rZGlyIC1wIC0tJwotZWxzZQotICAjIE9uIE5leHRTdGVwIGFuZCBPcGVuU3RlcCwgdGhlIGBta2RpcicgY29tbWFuZCBkb2VzIG5vdAotICAjIHJlY29nbml6ZSBhbnkgb3B0aW9uLiAgSXQgd2lsbCBpbnRlcnByZXQgYWxsIG9wdGlvbnMgYXMKLSAgIyBkaXJlY3RvcmllcyB0byBjcmVhdGUsIGFuZCB0aGVuIGFib3J0IGJlY2F1c2UgYC4nIGFscmVhZHkKLSAgIyBleGlzdHMuCi0gIGZvciBkIGluIC4vLXAgLi8tLXZlcnNpb247Ci0gIGRvCi0gICAgdGVzdCAtZCAkZCAmJiBybWRpciAkZAotICBkb25lCi0gICMgJChta2luc3RhbGxkaXJzKSBpcyBkZWZpbmVkIGJ5IEF1dG9tYWtlIGlmIG1raW5zdGFsbGRpcnMgZXhpc3RzLgotICBpZiB0ZXN0IC1mICIkYWNfYXV4X2Rpci9ta2luc3RhbGxkaXJzIjsgdGhlbgotICAgIG1rZGlyX3A9JyQobWtpbnN0YWxsZGlycyknCi0gIGVsc2UKLSAgICBta2Rpcl9wPSckKGluc3RhbGxfc2gpIC1kJwotICBmaQotZmkKLUFDX1NVQlNUKFtta2Rpcl9wXSldKQotCi0jIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAyLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIHNlcmlhbCAzCi0KLSMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUFDX0RFRlVOKFtfQU1fTUFOR0xFX09QVElPTl0sCi1bW19BTV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKLQotIyBfQU1fU0VUX09QVElPTihOQU1FKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2V0IG9wdGlvbiBOQU1FLiAgUHJlc2VudGx5IHRoYXQgb25seSBtZWFucyBkZWZpbmluZyBhIGZsYWcgZm9yIHRoaXMgb3B0aW9uLgotQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OXSwKLVttNF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkKLQotIyBfQU1fU0VUX09QVElPTlMoT1BUSU9OUykKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBPUFRJT05TIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgQXV0b21ha2Ugb3B0aW9ucy4KLUFDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNdLAotW0FDX0ZPUkVBQ0goW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0KLSMgX0FNX0lGX09QVElPTihPUFRJT04sIElGLVNFVCwgW0lGLU5PVC1TRVRdKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgotQUNfREVGVU4oW19BTV9JRl9PUFRJT05dLAotW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCi0KLSMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuICAgIC0qLSBBdXRvY29uZiAtKi0KLQotIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUKLSMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0jIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLQotIyBzZXJpYWwgNAotCi0jIEFNX1NBTklUWV9DSEVDSwotIyAtLS0tLS0tLS0tLS0tLS0KLUFDX0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotW0FDX01TR19DSEVDS0lORyhbd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lXSkKLSMgSnVzdCBpbiBjYXNlCi1zbGVlcCAxCi1lY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKLSMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKLSMgZGlyZWN0b3J5KS4KLWlmICgKLSAgIHNldCBYIGBscyAtTHQgJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCi0gICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhlbgotICAgICAgIyAtTCBkaWRuJ3Qgd29yay4KLSAgICAgIHNldCBYIGBscyAtdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAotICAgZmkKLSAgIHJtIC1mIGNvbmZ0ZXN0LmZpbGUKLSAgIGlmIHRlc3QgIiRbKl0iICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKLSAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0KLSAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KLSAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKLSAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KLSAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudF0pCi0gICBmaQotCi0gICB0ZXN0ICIkWzJdIiA9IGNvbmZ0ZXN0LmZpbGUKLSAgICkKLXRoZW4KLSAgICMgT2suCi0gICA6Ci1lbHNlCi0gICBBQ19NU0dfRVJST1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2tdKQotZmkKLUFDX01TR19SRVNVTFQoeWVzKV0pCi0KLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotCi0jIEFNX1BST0dfSU5TVEFMTF9TVFJJUAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgT25lIGlzc3VlIHdpdGggdmVuZG9yIGBpbnN0YWxsJyAoZXZlbiBHTlUpIGlzIHRoYXQgeW91IGNhbid0Ci0jIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQotIyBhbm5veWluZyBpbiBjcm9zcy1jb21waWxpbmcgZW52aXJvbm1lbnRzLCB3aGVyZSB0aGUgYnVpbGQncyBzdHJpcAotIyBpcyB1bmxpa2VseSB0byBoYW5kbGUgdGhlIGhvc3QncyBiaW5hcmllcy4KLSMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQotIyBhbHdheXMgdXNlIGluc3RhbGwtc2ggaW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcsIGFuZCBpbml0aWFsaXplCi0jIFNUUklQUFJPRyB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgU1RSSVAgdmFyaWFibGUgKHNldCBieSB0aGUgdXNlcikuCi1BQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKLVtBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU0hdKWRubAotIyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCi0jIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0jIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCi0jIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgotZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KLWlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCi0gIEFDX0NIRUNLX1RPT0woW1NUUklQXSwgW3N0cmlwXSwgOikKLWZpCi1JTlNUQUxMX1NUUklQX1BST0dSQU09Ilwke1NIRUxMfSBcJChpbnN0YWxsX3NoKSAtYyAtcyIKLUFDX1NVQlNUKFtJTlNUQUxMX1NUUklQX1BST0dSQU1dKV0pCi0KLSMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLQotIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIwotIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0KLSMgc2VyaWFsIDIKLQotIyBfQU1fUFJPR19UQVIoRk9STUFUKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgotIyBGT1JNQVQgc2hvdWxkIGJlIG9uZSBvZiBgdjcnLCBgdXN0YXInLCBvciBgcGF4Jy4KLSMKLSMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKLSMgd3JpdGluZyB0byBzdGRvdXQgYSBGT1JNQVQtdGFyYmFsbCBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkKLSMgJHRhcmRpci4KLSMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKLSMKLSMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJhY3Qgc3VjaAotIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgotIyAgICAgJChhbV9fdW50YXIpIDwgcmVzdWx0LnRhcgotQUNfREVGVU4oW19BTV9QUk9HX1RBUl0sCi1bIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotQU1fTUlTU0lOR19QUk9HKFtBTVRBUl0sIFt0YXJdKQotbTRfaWYoWyQxXSwgW3Y3XSwKLSAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCi0gICAgIFttNF9jYXNlKFskMV0sIFt1c3Rhcl0sLCBbcGF4XSwsCi0gICAgICAgICAgICAgIFttNF9mYXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQotQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQotIyBMb29wIG92ZXIgYWxsIGtub3duIG1ldGhvZHMgdG8gY3JlYXRlIGEgdGFyIGFyY2hpdmUgdW50aWwgb25lIHdvcmtzLgotX2FtX3Rvb2xzPSdnbnV0YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWludGFyXSkgcGF4IGNwaW8gbm9uZScKLV9hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9Ci0jIERvIG5vdCBmb2xkIHRoZSBhYm92ZSB0d28gbGluZSBpbnRvIG9uZSwgYmVjYXVzZSBUcnU2NCBzaCBhbmQKLSMgU29sYXJpcyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9mIGAtJy4KLWZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCi1kbwotICBjYXNlICRfYW1fdG9vbCBpbgotICBnbnV0YXIpCi0gICAgZm9yIF9hbV90YXIgaW4gdGFyIGdudXRhciBndGFyOwotICAgIGRvCi0gICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhawotICAgIGRvbmUKLSAgICBhbV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiQkdGFyZGlyIicKLSAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKLSAgICBhbV9fdW50YXI9IiRfYW1fdGFyIC14ZiAtIgotICAgIDs7Ci0gIHBsYWludGFyKQotICAgICMgTXVzdCBza2lwIEdOVSB0YXI6IGlmIGl0IGRvZXMgbm90IHN1cHBvcnQgLS1mb3JtYXQ9IGl0IGRvZXNuJ3QgY3JlYXRlCi0gICAgIyB1c3RhciB0YXJiYWxsIGVpdGhlci4KLSAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCi0gICAgYW1fX3Rhcj0ndGFyIGNoZiAtICIkJHRhcmRpciInCi0gICAgYW1fX3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciInCi0gICAgYW1fX3VudGFyPSd0YXIgeGYgLScKLSAgICA7OwotICBwYXgpCi0gICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCi0gICAgYW1fX3Rhcl89J3BheCAtTCAteCAkMSAtdyAiJHRhcmRpciInCi0gICAgYW1fX3VudGFyPSdwYXggLXInCi0gICAgOzsKLSAgY3BpbykKLSAgICBhbV9fdGFyPSdmaW5kICIkJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSAgICBhbV9fdW50YXI9J2NwaW8gLWkgLUggJDEgLWQnCi0gICAgOzsKLSAgbm9uZSkKLSAgICBhbV9fdGFyPWZhbHNlCi0gICAgYW1fX3Rhcl89ZmFsc2UKLSAgICBhbV9fdW50YXI9ZmFsc2UKLSAgICA7OwotICBlc2FjCi0KLSAgIyBJZiB0aGUgdmFsdWUgd2FzIGNhY2hlZCwgc3RvcCBub3cuICBXZSBqdXN0IHdhbnRlZCB0byBoYXZlIGFtX190YXIKLSAgIyBhbmQgYW1fX3VudGFyIHNldC4KLSAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCi0KLSAgIyB0YXIvdW50YXIgYSBkdW1teSBkaXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBjb21tYW5kIHdvcmtzCi0gIHJtIC1yZiBjb25mdGVzdC5kaXIKLSAgbWtkaXIgY29uZnRlc3QuZGlyCi0gIGVjaG8gR3JlcE1lID4gY29uZnRlc3QuZGlyL2ZpbGUKLSAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKLSAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgotICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCi0gICAgZ3JlcCBHcmVwTWUgY29uZnRlc3QuZGlyL2ZpbGUgPi9kZXYvbnVsbCAyPiYxICYmIGJyZWFrCi0gIGZpCi1kb25lCi1ybSAtcmYgY29uZnRlc3QuZGlyCi0KLUFDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKLUFDX01TR19SRVNVTFQoWyRhbV9jdl9wcm9nX3Rhcl8kMV0pXSkKLUFDX1NVQlNUKFthbV9fdGFyXSkKLUFDX1NVQlNUKFthbV9fdW50YXJdKQotXSkgIyBfQU1fUFJPR19UQVIKLQotbTRfaW5jbHVkZShbYWNpbmNsdWRlLm00XSkKZGlmZiAtLWdpdCBhL2FuZHJvaWQvYXJjaC9hcm0vY29uZmlnLmggYi9hbmRyb2lkL2FyY2gvYXJtL2NvbmZpZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTk4OWFmLi4wMDAwMDAwCi0tLSBhL2FuZHJvaWQvYXJjaC9hcm0vY29uZmlnLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MjIgKzAsMCBAQAotLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8KLS8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBBbHBoYSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgQUxQSEEgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4gKi8KLSNkZWZpbmUgQVJNIDEKLQotLyogRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotLyogI3VuZGVmIEZSRUVCU0QgKi8KLQotLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBzZXQgYnkgYGdldGdyb3VwcycuIFVzdWFsbHkKLSAgIHRoaXMgaXMgZWl0aGVyIGBpbnQnIG9yIGBnaWRfdCcuICovCi0jZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3JlZy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0FTTV9SRUdfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9zaWdjb250ZXh0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9zeXNtaXBzLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfQVNNX1NZU01JUFNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHN5c19lcnJsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgX3N5c19zaWdsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCi0gICAqLwotI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkZW50cycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9HRVRERU5UUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX2luZGV4dG9uYW1lJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5ldF9udG9wJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvY3Rscy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0lPQ1RMU19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGliYWlvLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfTElCQUlPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuc2wnIGxpYnJhcnkgKC1sbnNsKS4gKi8KLS8qICN1bmRlZiBIQVZFX0xJQk5TTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2ljbXAuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pZl9wYWNrZXQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2luNi5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLQotLyogRGVmaW5lIGlmIGxvbmcgbG9uZyBpcyBsaXR0bGUtZW5kaWFuLiAqLwotI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGxvbmcgbG9uZycuICovCi0jZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLQotLyogRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLiAqLwotLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UICovCi0KLS8qIERlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuICovCi0vKiAjdW5kZWYgSEFWRV9MT05HX0xPTkdfUkxJTV9UICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWN0bCcgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9NQ1RMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4gSS5FLiAvZGV2L3h4eC9jdGwsCi0gICAvZGV2L3h4eC9zdGF0dXMuIEFsc28gaW1wbGllcyB0aGF0IHlvdSBoYXZlIHRoZSBwcl9sd3AgbWVtYmVyIGluIHByc3RhdHVzLgotICAgKi8KLS8qICN1bmRlZiBIQVZFX01QX1BST0NGUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLiAqLwotLyogI3VuZGVmIEhBVkVfTkRJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3AuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC91ZHAuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSBTVlI0IGFuZCB0aGUgcG9sbCBzeXN0ZW0gY2FsbCB3b3JrcyBvbiAvcHJvYyBmaWxlcy4gKi8KLS8qICN1bmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfUE9MTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmN0bCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfUFJDVEwgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9QUkVBRCAxCi0KLS8qIERlZmluZSBpZiB0aGUgcHJzdGF0dXMgc3RydWN0dXJlIGluIHN5cy9wcm9jZnMuaCBoYXMgYSBwcl9zeXNjYWxsIG1lbWJlci4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9QUl9TWVNDQUxMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VuZG1zZycgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU0VORE1TRyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWN0aW9uJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc2lnaW5mb190Jy4gKi8KLSNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc2lnX2F0b21pY190Jy4gKi8KLSNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotCi0vKiBEZWZpbmUgaWYgc3RhdDY0IGlzIGF2YWlsYWJsZSBpbiBhc20vc3RhdC5oLiAqLwotI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RETElCX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmVycm9yJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Ryb3B0cy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJzaWduYWwnIGZ1bmN0aW9uLiAqLwotLy9BTkRST0lECi0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci0jaWZkZWYgX19CSU9OSUNfXwotI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi0jZW5kaWYKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBpYTY0X2ZwcmVnJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9JQTY0X0ZQUkVHICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtc2dfY29udHJvbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbXNnaGRyJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBvcHRoZHInLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX09QVEhEUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX2luNicuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2FjbGNudCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9BQ0xDTlQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsa3NpemUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYmxvY2tzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZmxhZ3MnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZzdHlwZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2dlbicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9HRU4gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2xldmVsJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0xFVkVMICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9yZGV2JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYEFDQ0VQVE9SX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX0FDQ0VQVE9SX0lEICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBRVUVVRV9wdHInIGlzIG1lbWJlciBvZiBgc3RydWN0IFRfY29ubl9yZXMnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfUVVFVUVfUFRSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgdF9vcHRoZHInLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1RfT1BUSERSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgdXNlcl9kZXNjJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYWNsLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0FDTF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Fpby5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19BSU9fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9hc3luY2guaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQVNZTkNIX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY29uZi5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19DT05GX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRElSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZG9vci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19ET09SX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZXBvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMSAKLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGlvLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW9jdGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfTkRJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25zY3N5cy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19OU0NTWVNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcmVnLmg+IGhlYWRlciBmaWxlLiAqLwotLy9BTkRST0lECi0vLyNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0cmVhbS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19TVFJFQU1fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNjb25maWcuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfU1lTQ09ORklHX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGloZHIuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfVElIRFJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aXVzZXIuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfVElVU0VSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91aW8uaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdmZzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dGVybWlvLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYF9zeXNfc2lnbGlzdCcgZnVuY3Rpb24uICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSBmb3IgdGhlIEhQUEEgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIEhQUEEgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgaTM4NiBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgSTM4NiAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBJQTY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBJQTY0ICovCi0KLS8qIERlZmluZSBmb3IgdGhlIExpbnV4IG9wZXJhdGluZyBzeXN0ZW0uICovCi0jZGVmaW5lIExJTlVYIDEKLQotLyogRGVmaW5lIGZvciB0aGUgbTY4ayBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgTTY4SyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbiA8bWtkZXYuaD4uCi0gICAqLwotLyogI3VuZGVmIE1BSk9SX0lOX01LREVWICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtYWpvcicsIGBtaW5vcicsIGFuZCBgbWFrZWRldicgYXJlIGRlY2xhcmVkIGluCi0gICA8c3lzbWFjcm9zLmg+LiAqLwotLyogI3VuZGVmIE1BSk9SX0lOX1NZU01BQ1JPUyAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBNSVBTIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBNSVBTICovCi0KLS8qIE5hbWUgb2YgcGFja2FnZSAqLwotI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi0KLS8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwotI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotCi0vKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotCi0vKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotCi0vKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotCi0vKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwotI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLQotLyogRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgUE9XRVJQQyAqLwotCi0vKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoYGludCcgb3IgYHZvaWQnKS4gKi8KLSNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi0KLS8qIERlZmluZSBmb3IgdGhlIFMzOTAgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFMzOTAgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFMzOTBYICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTSCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTSDY0ICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTUEFSQyAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTUEFSQzY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTUEFSQzY0ICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBgU19JUyonIG1hY3JvcyBpbiA8c3lzL3N0YXQuaD4gZG8gbm90IHdvcmsgcHJvcGVybHkuICovCi0vKiAjdW5kZWYgU1RBVF9NQUNST1NfQlJPS0VOICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotI2RlZmluZSBTVERDX0hFQURFUlMgMQotCi0vKiBEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS4gKi8KLS8qICN1bmRlZiBTVU5PUzQgKi8KLQotLyogRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uIG9mCi0gICBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLiBPbmx5Ci0gICB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNCBpbiB0aGUKLSAgIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS4gKi8KLS8qICN1bmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFN5c3RlbSBWIHJlbGVhc2UgNCBvcGVyYXRpbmcgc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlCi0gICBTb2xhcmlzIDIueCBvciBJcml4IDUueC4gKi8KLS8qICN1bmRlZiBTVlI0ICovCi0KLS8qIERlZmluZSBmb3IgVW5peFdhcmUgc3lzdGVtcy4gKi8KLS8qICN1bmRlZiBVTklYV0FSRSAqLwotCi0vKiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCi0jZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLQotLyogRGVmaW5lIGZvciB0aGUgQU1EIHg4Ni02NCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgWDg2XzY0ICovCi0KLS8qIEVuYWJsZSBHTlUgZXh0ZW5zaW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KLSNpZm5kZWYgX0dOVV9TT1VSQ0UKLSMgZGVmaW5lIF9HTlVfU09VUkNFIDEKLSNlbmRpZgotCi0vKiBEZWZpbmUgdG8gZW1wdHkgaWYgYGNvbnN0JyBkb2VzIG5vdCBjb25mb3JtIHRvIEFOU0kgQy4gKi8KLS8qICN1bmRlZiBjb25zdCAqLwotCi0vKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2Vzbid0IGRlZmluZS4gKi8KLS8qICN1bmRlZiBnaWRfdCAqLwotCi0vKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCi0vKiAjdW5kZWYgbW9kZV90ICovCi0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLwotLyogI3VuZGVmIHVpZF90ICovCmRpZmYgLS1naXQgYS9hbmRyb2lkL2FyY2gvc2gvY29uZmlnLmggYi9hbmRyb2lkL2FyY2gvc2gvY29uZmlnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxNTFlYWYuLjAwMDAwMDAKLS0tIGEvYW5kcm9pZC9hcmNoL3NoL2NvbmZpZy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIzICswLDAgQEAKLS8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovCi0vKiBjb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgQWxwaGEgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIEFMUEhBICovCi0KLS8qIERlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgQVJNICovCi0KLS8qIERlZmluZSBmb3IgdGhlIEZyZWVCU0Qgb3BlcmF0aW5nIHN5c3RlbS4gKi8KLS8qICN1bmRlZiBGUkVFQlNEICovCi0KLS8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkgc2V0IGJ5IGBnZXRncm91cHMnLiBVc3VhbGx5Ci0gICB0aGlzIGlzIGVpdGhlciBgaW50JyBvciBgZ2lkX3QnLiAqLwotI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9yZWcuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9BU01fUkVHX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc2lnY29udGV4dC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc3lzbWlwcy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0FTTV9TWVNNSVBTX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfZXJybGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYF9zeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX0RFQ0xfX1NZU19TSUdMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLSNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZGVudHMnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfR0VUREVOVFMgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9JT0NUTFNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYmFpby5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0xJQkFJT19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCi0vKiAjdW5kZWYgSEFWRV9MSUJOU0wgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaWZfcGFja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pbjYuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC91dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi0KLS8qIERlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi4gKi8KLSNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb25nIGxvbmcnLiAqLwotI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi0KLS8qIERlZmluZSBpZiBvZmZfdCBpcyBhIGxvbmcgbG9uZy4gKi8KLS8qICN1bmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVCAqLwotCi0vKiBEZWZpbmUgaWYgcmxpbV90IGlzIGEgbG9uZyBsb25nLiAqLwotLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX1JMSU1fVCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jdGwnIGZ1bmN0aW9uLiAqLwotLyogI3VuZGVmIEhBVkVfTUNUTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIFNWUjQgTVAgdHlwZSBwcm9jZnMuIEkuRS4gL2Rldi94eHgvY3RsLAotICAgL2Rldi94eHgvc3RhdHVzLiBBbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9NUF9QUk9DRlMgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4gKi8KLS8qICN1bmRlZiBIQVZFX05ESVJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgU1ZSNCBhbmQgdGhlIHBvbGwgc3lzdGVtIGNhbGwgd29ya3Mgb24gL3Byb2MgZmlsZXMuICovCi0vKiAjdW5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1BPTExfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJjdGwnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1BSQ1RMIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmVhZCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfUFJFQUQgMQotCi0vKiBEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuCi0gICAqLwotLyogI3VuZGVmIEhBVkVfUFJfU1lTQ0FMTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbmRtc2cnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ2luZm9fdCcuICovCi0jZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ19hdG9taWNfdCcuICovCi0jZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLQotLyogRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC4gKi8KLSNkZWZpbmUgSEFWRV9TVEFUNjQgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cm9wdHMuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFsJyBmdW5jdGlvbi4gKi8KLS8vQU5EUk9JRAotI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotI2lmZGVmIF9fQklPTklDX18KLSNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotI2VuZGlmCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgaWE2NF9mcHJlZycuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbXNnX2NvbnRyb2wnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1zZ2hkcicuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3Qgb3B0aGRyJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9PUFRIRFIgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9hY2xjbnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9ibGtzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsb2NrcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZMQUdTICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9mc3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRlNUWVBFICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9nZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9sZXZlbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfcmRldicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi0KLS8qIERlZmluZSB0byAxIGlmIGBBQ0NFUFRPUl9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19BQ0NFUFRPUl9JRCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgUVVFVUVfcHRyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHRfb3B0aGRyJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX09QVEhEUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHVzZXJfZGVzYycuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FjbC5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19BQ0xfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9haW8uaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQUlPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYXN5bmNoLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0FTWU5DSF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQ09ORl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCi0gICAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0RJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rvb3IuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRE9PUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Vwb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsaW8uaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRklMSU9fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLS8qICN1bmRlZiBIQVZFX1NZU19ORElSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbnNjc3lzLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX05TQ1NZU19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZWcuaD4gaGVhZGVyIGZpbGUuICovCi0vL0FORFJPSUQKLS8vI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2NvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19TWVNDT05GSUdfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aWhkci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19USUhEUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19USVVTRVJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx0ZXJtaW8uaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX3N5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLQotLyogRGVmaW5lIGZvciB0aGUgSFBQQSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgSFBQQSAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBpMzg2IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBJMzg2ICovCi0KLS8qIERlZmluZSBmb3IgdGhlIElBNjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIElBNjQgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgTGludXggb3BlcmF0aW5nIHN5c3RlbS4gKi8KLSNkZWZpbmUgTElOVVggMQotCi0vKiBEZWZpbmUgZm9yIHRoZSBtNjhrIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBNNjhLICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtYWpvcicsIGBtaW5vcicsIGFuZCBgbWFrZWRldicgYXJlIGRlY2xhcmVkIGluIDxta2Rldi5oPi4KLSAgICovCi0vKiAjdW5kZWYgTUFKT1JfSU5fTUtERVYgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4KLSAgIDxzeXNtYWNyb3MuaD4uICovCi0vKiAjdW5kZWYgTUFKT1JfSU5fU1lTTUFDUk9TICovCi0KLS8qIERlZmluZSBmb3IgdGhlIE1JUFMgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIE1JUFMgKi8KLQotLyogTmFtZSBvZiBwYWNrYWdlICovCi0jZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLQotLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCi0jZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi0KLS8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi0KLS8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi0KLS8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi0KLS8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0jZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotCi0vKiBEZWZpbmUgZm9yIHRoZSBQb3dlclBDIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBQT1dFUlBDICovCi0KLS8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLwotI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLQotLyogRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgUzM5MCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTMzkweCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgUzM5MFggKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU0ggYXJjaGl0ZWN0dXJlLiAqLwotI2RlZmluZSBTSCAxCi0KLS8qIERlZmluZSBmb3IgdGhlIFNINjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNINjQgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU1BBUkMgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNQQVJDICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFNQQVJDNjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFNQQVJDNjQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIGBTX0lTKicgbWFjcm9zIGluIDxzeXMvc3RhdC5oPiBkbyBub3Qgd29yayBwcm9wZXJseS4gKi8KLS8qICN1bmRlZiBTVEFUX01BQ1JPU19CUk9LRU4gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCi0jZGVmaW5lIFNURENfSEVBREVSUyAxCi0KLS8qIERlZmluZSBmb3IgdGhlIFN1bk9TIDQueCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotLyogI3VuZGVmIFNVTk9TNCAqLwotCi0vKiBEZWZpbmUgaWYgeW91IGFyZSBoYXZlIGEgU1BBUkMgd2l0aCBTVU5PUzQgYW5kIHlvdXIgd2FudCBhIHZlcnNpb24gb2YKLSAgIHN0cmFjZSB0aGF0IHdpbGwgd29yayBvbiBzdW40LCBzdW40YyBhbmQgc3VuNG0ga2VybmVsIGFyY2hpdGVjdHVyZXMuIE9ubHkKLSAgIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIHN5bWJvbGljIGxpbmsgZnJvbSBtYWNoaW5lIHRvIC91c3IvaW5jbHVkZS9zdW40IGluIHRoZQotICAgY29tcGlsYXRpb24gZGlyZWN0b3J5LiAqLwotLyogI3VuZGVmIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZyBzeXN0ZW0gb3IgYSBkZXJpdmF0aXZlIGxpa2UKLSAgIFNvbGFyaXMgMi54IG9yIElyaXggNS54LiAqLwotLyogI3VuZGVmIFNWUjQgKi8KLQotLyogRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLiAqLwotLyogI3VuZGVmIFVOSVhXQVJFICovCi0KLS8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KLSNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotCi0vKiBEZWZpbmUgZm9yIHRoZSBBTUQgeDg2LTY0IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBYODZfNjQgKi8KLQotLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLwotI2lmbmRlZiBfR05VX1NPVVJDRQotIyBkZWZpbmUgX0dOVV9TT1VSQ0UgMQotI2VuZGlmCi0KLS8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLwotLyogI3VuZGVmIGNvbnN0ICovCi0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLwotLyogI3VuZGVmIGdpZF90ICovCi0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KLS8qICN1bmRlZiBtb2RlX3QgKi8KLQotLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCi0vKiAjdW5kZWYgdWlkX3QgKi8KZGlmZiAtLWdpdCBhL2FuZHJvaWQvYXJjaC94ODYvY29uZmlnLmggYi9hbmRyb2lkL2FyY2gveDg2L2NvbmZpZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYmRhYTE3Li4wMDAwMDAwCi0tLSBhL2FuZHJvaWQvYXJjaC94ODYvY29uZmlnLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MjMgKzAsMCBAQAotLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8KLS8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBBbHBoYSBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgQUxQSEEgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBBUk0gKi8KLQotLyogRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotLyogI3VuZGVmIEZSRUVCU0QgKi8KLQotLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBzZXQgYnkgYGdldGdyb3VwcycuIFVzdWFsbHkKLSAgIHRoaXMgaXMgZWl0aGVyIGBpbnQnIG9yIGBnaWRfdCcuICovCi0jZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3JlZy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0FTTV9SRUdfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9zaWdjb250ZXh0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9zeXNtaXBzLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfQVNNX1NZU01JUFNfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHN5c19lcnJsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQotICAgZG9uJ3QuICovCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfU0lHTElTVCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgX3N5c19zaWdsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCi0gICAqLwotI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkZW50cycgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9HRVRERU5UUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX2luZGV4dG9uYW1lJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5ldF9udG9wJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvY3Rscy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX0lPQ1RMU19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGliYWlvLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfTElCQUlPX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuc2wnIGxpYnJhcnkgKC1sbnNsKS4gKi8KLS8qICN1bmRlZiBIQVZFX0xJQk5TTCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2ljbXAuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pZl9wYWNrZXQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2luNi5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLQotLyogRGVmaW5lIGlmIGxvbmcgbG9uZyBpcyBsaXR0bGUtZW5kaWFuLiAqLwotI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGxvbmcgbG9uZycuICovCi0jZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLQotLyogRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLiAqLwotLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UICovCi0KLS8qIERlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuICovCi0vKiAjdW5kZWYgSEFWRV9MT05HX0xPTkdfUkxJTV9UICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWN0bCcgZnVuY3Rpb24uICovCi0vKiAjdW5kZWYgSEFWRV9NQ1RMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4gSS5FLiAvZGV2L3h4eC9jdGwsCi0gICAvZGV2L3h4eC9zdGF0dXMuIEFsc28gaW1wbGllcyB0aGF0IHlvdSBoYXZlIHRoZSBwcl9sd3AgbWVtYmVyIGluIHByc3RhdHVzLgotICAgKi8KLS8qICN1bmRlZiBIQVZFX01QX1BST0NGUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLiAqLwotLyogI3VuZGVmIEhBVkVfTkRJUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3AuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC91ZHAuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSBTVlI0IGFuZCB0aGUgcG9sbCBzeXN0ZW0gY2FsbCB3b3JrcyBvbiAvcHJvYyBmaWxlcy4gKi8KLS8qICN1bmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUyAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfUE9MTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmN0bCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfUFJDVEwgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9QUkVBRCAxCi0KLS8qIERlZmluZSBpZiB0aGUgcHJzdGF0dXMgc3RydWN0dXJlIGluIHN5cy9wcm9jZnMuaCBoYXMgYSBwcl9zeXNjYWxsIG1lbWJlci4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9QUl9TWVNDQUxMICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2VuZG1zZycgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU0VORE1TRyAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWN0aW9uJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc2lnaW5mb190Jy4gKi8KLSNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc2lnX2F0b21pY190Jy4gKi8KLSNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotCi0vKiBEZWZpbmUgaWYgc3RhdDY0IGlzIGF2YWlsYWJsZSBpbiBhc20vc3RhdC5oLiAqLwotI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1RETElCX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cmVycm9yJyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Ryb3B0cy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJzaWduYWwnIGZ1bmN0aW9uLiAqLwotLy9BTkRST0lECi0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci0jaWZkZWYgX19CSU9OSUNfXwotI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi0jZW5kaWYKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBpYTY0X2ZwcmVnJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9JQTY0X0ZQUkVHICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBtc2dfY29udHJvbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbXNnaGRyJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBvcHRoZHInLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX09QVEhEUiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHNpbjZfc2NvcGVfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX2luNicuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2FjbGNudCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9BQ0xDTlQgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsa3NpemUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYmxvY2tzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZmxhZ3MnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZzdHlwZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2dlbicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0vKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9HRU4gKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X2xldmVsJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0xFVkVMICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9yZGV2JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgYEFDQ0VQVE9SX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KLS8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX0FDQ0VQVE9SX0lEICovCi0KLS8qIERlZmluZSB0byAxIGlmIGBRVUVVRV9wdHInIGlzIG1lbWJlciBvZiBgc3RydWN0IFRfY29ubl9yZXMnLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfUVVFVUVfUFRSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgdF9vcHRoZHInLiAqLwotLyogI3VuZGVmIEhBVkVfU1RSVUNUX1RfT1BUSERSICovCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgdXNlcl9kZXNjJy4gKi8KLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCcuICovCi0jZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYWNsLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX0FDTF9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Fpby5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19BSU9fSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9hc3luY2guaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfQVNZTkNIX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY29uZi5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19DT05GX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfRElSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZG9vci5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19ET09SX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZXBvbGwuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxpby5oPiBoZWFkZXIgZmlsZS4gKi8KLS8qICN1bmRlZiBIQVZFX1NZU19GSUxJT19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2lvY3RsLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCi0gICAqLwotLyogI3VuZGVmIEhBVkVfU1lTX05ESVJfSCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uc2NzeXMuaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfTlNDU1lTX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHRyYWNlLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3JlZy5oPiBoZWFkZXIgZmlsZS4gKi8KLS8vQU5EUk9JRAotLy8jZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNfc2lnbGlzdCcgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdHJlYW0uaD4gaGVhZGVyIGZpbGUuICovCi0vKiAjdW5kZWYgSEFWRV9TWVNfU1RSRUFNX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY29uZmlnLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1NZU0NPTkZJR19IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpaGRyLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1RJSERSX0ggKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGl1c2VyLmg+IGhlYWRlciBmaWxlLiAqLwotLyogI3VuZGVmIEhBVkVfU1lTX1RJVVNFUl9IICovCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdWlvLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zmcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHRlcm1pby5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBfc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLwotLy9BTkRST0lECi0vLyNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotCi0vKiBEZWZpbmUgZm9yIHRoZSBIUFBBIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBIUFBBICovCi0KLS8qIERlZmluZSBmb3IgdGhlIGkzODYgYXJjaGl0ZWN0dXJlLiAqLwotI2RlZmluZSBJMzg2IDEKLQotLyogRGVmaW5lIGZvciB0aGUgSUE2NCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgSUE2NCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBMaW51eCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotI2RlZmluZSBMSU5VWCAxCi0KLS8qIERlZmluZSBmb3IgdGhlIG02OGsgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIE02OEsgKi8KLQotLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4gPG1rZGV2Lmg+LgotICAgKi8KLS8qICN1bmRlZiBNQUpPUl9JTl9NS0RFViAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbgotICAgPHN5c21hY3Jvcy5oPi4gKi8KLS8qICN1bmRlZiBNQUpPUl9JTl9TWVNNQUNST1MgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgTUlQUyAqLwotCi0vKiBOYW1lIG9mIHBhY2thZ2UgKi8KLSNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotCi0vKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KLSNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLQotLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwotI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLQotLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwotI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLQotLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwotI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLQotLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi0KLS8qIERlZmluZSBmb3IgdGhlIFBvd2VyUEMgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFBPV0VSUEMgKi8KLQotLyogRGVmaW5lIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMgKGBpbnQnIG9yIGB2b2lkJykuICovCi0jZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotCi0vKiBEZWZpbmUgZm9yIHRoZSBTMzkwIGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTMzkwICovCi0KLS8qIERlZmluZSBmb3IgdGhlIFMzOTB4IGFyY2hpdGVjdHVyZS4gKi8KLS8qICN1bmRlZiBTMzkwWCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTSCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgU0ggKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU0g2NCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgU0g2NCAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTUEFSQyBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgU1BBUkMgKi8KLQotLyogRGVmaW5lIGZvciB0aGUgU1BBUkM2NCBhcmNoaXRlY3R1cmUuICovCi0vKiAjdW5kZWYgU1BBUkM2NCAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgYFNfSVMqJyBtYWNyb3MgaW4gPHN5cy9zdGF0Lmg+IGRvIG5vdCB3b3JrIHByb3Blcmx5LiAqLwotLyogI3VuZGVmIFNUQVRfTUFDUk9TX0JST0tFTiAqLwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KLSNkZWZpbmUgU1REQ19IRUFERVJTIDEKLQotLyogRGVmaW5lIGZvciB0aGUgU3VuT1MgNC54IG9wZXJhdGluZyBzeXN0ZW0uICovCi0vKiAjdW5kZWYgU1VOT1M0ICovCi0KLS8qIERlZmluZSBpZiB5b3UgYXJlIGhhdmUgYSBTUEFSQyB3aXRoIFNVTk9TNCBhbmQgeW91ciB3YW50IGEgdmVyc2lvbiBvZgotICAgc3RyYWNlIHRoYXQgd2lsbCB3b3JrIG9uIHN1bjQsIHN1bjRjIGFuZCBzdW40bSBrZXJuZWwgYXJjaGl0ZWN0dXJlcy4gT25seQotICAgdXNlZnVsIGlmIHlvdSBoYXZlIGEgc3ltYm9saWMgbGluayBmcm9tIG1hY2hpbmUgdG8gL3Vzci9pbmNsdWRlL3N1bjQgaW4gdGhlCi0gICBjb21waWxhdGlvbiBkaXJlY3RvcnkuICovCi0vKiAjdW5kZWYgU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTeXN0ZW0gViByZWxlYXNlIDQgb3BlcmF0aW5nIHN5c3RlbSBvciBhIGRlcml2YXRpdmUgbGlrZQotICAgU29sYXJpcyAyLnggb3IgSXJpeCA1LnguICovCi0vKiAjdW5kZWYgU1ZSNCAqLwotCi0vKiBEZWZpbmUgZm9yIFVuaXhXYXJlIHN5c3RlbXMuICovCi0vKiAjdW5kZWYgVU5JWFdBUkUgKi8KLQotLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLwotI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi0KLS8qIERlZmluZSBmb3IgdGhlIEFNRCB4ODYtNjQgYXJjaGl0ZWN0dXJlLiAqLwotLyogI3VuZGVmIFg4Nl82NCAqLwotCi0vKiBFbmFibGUgR05VIGV4dGVuc2lvbnMgb24gc3lzdGVtcyB0aGF0IGhhdmUgdGhlbS4gICovCi0jaWZuZGVmIF9HTlVfU09VUkNFCi0jIGRlZmluZSBfR05VX1NPVVJDRSAxCi0jZW5kaWYKLQotLyogRGVmaW5lIHRvIGVtcHR5IGlmIGBjb25zdCcgZG9lcyBub3QgY29uZm9ybSB0byBBTlNJIEMuICovCi0vKiAjdW5kZWYgY29uc3QgKi8KLQotLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCi0vKiAjdW5kZWYgZ2lkX3QgKi8KLQotLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwotLyogI3VuZGVmIG1vZGVfdCAqLwotCi0vKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2Vzbid0IGRlZmluZS4gKi8KLS8qICN1bmRlZiB1aWRfdCAqLwpkaWZmIC0tZ2l0IGEvYXJtLWVhYmkucGF0Y2ggYi9hcm0tZWFiaS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTNlMjdmOC4uMDAwMDAwMAotLS0gYS9hcm0tZWFiaS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTIwMDYtMDMtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+Ci0KLQkqIHByb2Nlc3MuYyAoY2hhbmdlX3N5c2NhbGwpOiBBZGQgQVJNIHN1cHBvcnQuCi0JKiBzeXNjYWxsLmMgKGdldF9zY25vKTogSGFuZGxlIEFSTSBFQUJJLgotCi1JbmRleDogc3RyYWNlL3Byb2Nlc3MuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHN0cmFjZS5vcmlnL3Byb2Nlc3MuYwkyMDA2LTAzLTMwIDE3OjM2OjE0LjAwMDAwMDAwMCAtMDUwMAotKysrIHN0cmFjZS9wcm9jZXNzLmMJMjAwNi0wMy0zMCAxNzo0NDoxNi4wMDAwMDAwMDAgLTA1MDAKLUBAIC02OTQsNiArNjk0LDE2IEBAIGludCBuZXc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMCB8IG5ldykgPCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICByZXR1cm4gMDsKLSsjZWxpZiBkZWZpbmVkKEFSTSkKLSsgICAgICAgLyogU29tZSBrZXJuZWxzIHN1cHBvcnQgdGhpcywgc29tZSAocHJlLTIuNi4xNiBvciBzbykgZG9uJ3QuICAqLwotKyMgaWZuZGVmIFBUUkFDRV9TRVRfU1lTQ0FMTAotKyMgIGRlZmluZSBQVFJBQ0VfU0VUX1NZU0NBTEwgMjMKLSsjIGVuZGlmCi0rCi0rICAgICAgIGlmIChwdHJhY2UgKFBUUkFDRV9TRVRfU1lTQ0FMTCwgdGNwLT5waWQsIDAsIG5ldykgIT0gMCkKLSsJCXJldHVybiAtMTsKLSsKLSsgICAgICAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSAjd2FybmluZyBEbyBub3Qga25vdyBob3cgdG8gaGFuZGxlIGNoYW5nZV9zeXNjYWxsIGZvciB0aGlzIGFyY2hpdGVjdHVyZQotICNlbmRpZiAvKiBhcmNoaXRlY3R1cmUgKi8KLUluZGV4OiBzdHJhY2Uvc3lzY2FsbC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc3RyYWNlLm9yaWcvc3lzY2FsbC5jCTIwMDYtMDMtMzAgMTc6MzY6MTQuMDAwMDAwMDAwIC0wNTAwCi0rKysgc3RyYWNlL3N5c2NhbGwuYwkyMDA2LTAzLTMwIDE3OjQ0OjE2LjAwMDAwMDAwMCAtMDUwMAotQEAgLTExMDgsMTYgKzExMDgsMjUgQEAgc3RydWN0IHRjYiAqdGNwOwotIAkJCQlyZXR1cm4gMDsKLSAJCQl9Ci0gCi0tCQkJaWYgKChzY25vICYgMHgwZmYwMDAwMCkgIT0gMHgwZjkwMDAwMCkgewotLQkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwIDB4JTA4bHhcbiIsCi0tCQkJCQlzY25vKTsKLS0JCQkJcmV0dXJuIC0xOwotLQkJCX0KLSsJCQkvKiBIYW5kbGUgdGhlIEVBQkkgc3lzY2FsbCBjb252ZW50aW9uLiAgV2UgZG8gbm90Ci0rCQkJICAgYm90aGVyIGNvbnZlcnRpbmcgc3RydWN0dXJlcyBiZXR3ZWVuIHRoZSB0d28KLSsJCQkgICBBQklzLCBidXQgYmFzaWMgZnVuY3Rpb25hbGl0eSBzaG91bGQgd29yayBldmVuCi0rCQkJICAgaWYgc3RyYWNlIGFuZCB0aGUgdHJhY2VkIHByb2dyYW0gaGF2ZSBkaWZmZXJlbnQKLSsJCQkgICBBQklzLiAgKi8KLSsJCQlpZiAoc2NubyA9PSAweGVmMDAwMDAwKSB7Ci0rCQkJCXNjbm8gPSByZWdzLkFSTV9yNzsKLSsJCQl9IGVsc2UgewotKwkJCQlpZiAoKHNjbm8gJiAweDBmZjAwMDAwKSAhPSAweDBmOTAwMDAwKSB7Ci0rCQkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwIDB4JTA4bHhcbiIsCi0rCQkJCQkJc2Nubyk7Ci0rCQkJCQlyZXR1cm4gLTE7Ci0rCQkJCX0KLSAKLS0JCQkvKgotLQkJCSAqIEZpeHVwIHRoZSBzeXNjYWxsIG51bWJlcgotLQkJCSAqLwotLQkJCXNjbm8gJj0gMHgwMDBmZmZmZjsKLSsJCQkJLyoKLSsJCQkJICogRml4dXAgdGhlIHN5c2NhbGwgbnVtYmVyCi0rCQkJCSAqLwotKwkJCQlzY25vICY9IDB4MDAwZmZmZmY7Ci0rCQkJfQotIAkJfQotIAotIAkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSB7CmRpZmYgLS1naXQgYS9iam0uYyBiL2JqbS5jCmluZGV4IDIwMDg1YzUuLjIyNWI0MjIgMTAwNjQ0Ci0tLSBhL2JqbS5jCisrKyBiL2JqbS5jCkBAIC0yNyw3ICsyNyw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBiam0uYyx2IDEuMTUgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogI2luY2x1ZGUgImRlZnMuaCIKIApAQCAtMTAwLDUyICsxMDAsNTQgQEAKIH07CiAKIGludAotc3lzX3F1ZXJ5X21vZHVsZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfcXVlcnlfbW9kdWxlKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLQotCWlmIChleGl0aW5nKHRjcCkpIHsKKwlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKIAkJdHByaW50ZigiLCAiKTsKIAkJcHJpbnR4dmFsKHdoaWNoLCB0Y3AtPnVfYXJnWzFdLCAiUU1fPz8/Iik7CiAJCXRwcmludGYoIiwgIik7Ci0JCWlmICghdmVyYm9zZSh0Y3ApKSB7Ci0JCQl0cHJpbnRmKCIlI2x4LCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKLQkJfSBlbHNlIGlmICh0Y3AtPnVfcnZhbCE9MCkgewotCQkJc2l6ZV90CXJldDsKLQkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJnJldCk7Ci0JCQl0cHJpbnRmKCIlI2x4LCAlbHUsICVadSIsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIHJldCk7CisJfSBlbHNlIHsKKwkJc2l6ZV90IHJldDsKKworCQlpZiAoIXZlcmJvc2UodGNwKSB8fCBzeXNlcnJvcih0Y3ApIHx8CisJCSAgICB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZyZXQpIDwgMCkgeworCQkJdHByaW50ZigiJSNseCwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1syXSwKKwkJCQl0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKIAkJfSBlbHNlIGlmICh0Y3AtPnVfYXJnWzFdPT1RTV9JTkZPKSB7CiAJCQlzdHJ1Y3QgbW9kdWxlX2luZm8JbWk7Ci0JCQlzaXplX3QJCQlyZXQ7Ci0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZtaSk7Ci0JCQl0cHJpbnRmKCJ7YWRkcmVzcz0lI2x4LCBzaXplPSVsdSwgZmxhZ3M9IiwgbWkuYWRkciwgbWkuc2l6ZSk7Ci0JCQlwcmludGZsYWdzKG1vZGZsYWdzLCBtaS5mbGFncywgIk1PRF8/Pz8iKTsKLQkJCXRwcmludGYoIiwgdXNlY291bnQ9JWx1fSIsIG1pLnVzZWNvdW50KTsKLQkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJnJldCk7Ci0JCQl0cHJpbnRmKCIsICVadSIsIHJldCk7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmbWkpIDwgMCkgeworCQkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMl0pOworCQkJfSBlbHNlIHsKKwkJCQl0cHJpbnRmKCJ7YWRkcmVzcz0lI2x4LCBzaXplPSVsdSwgZmxhZ3M9IiwKKwkJCQkJbWkuYWRkciwgbWkuc2l6ZSk7CisJCQkJcHJpbnRmbGFncyhtb2RmbGFncywgbWkuZmxhZ3MsICJNT0RfPz8/Iik7CisJCQkJdHByaW50ZigiLCB1c2Vjb3VudD0lbHV9LCAiLCBtaS51c2Vjb3VudCk7CisJCQl9CisJCQl0cHJpbnRmKCIlWnUiLCByZXQpOwogCQl9IGVsc2UgaWYgKCh0Y3AtPnVfYXJnWzFdPT1RTV9NT0RVTEVTKSB8fAotCQkJICAgICAgIAkodGNwLT51X2FyZ1sxXT09UU1fREVQUykgfHwKLQkJCSAgICAgICAJKHRjcC0+dV9hcmdbMV09PVFNX1JFRlMpKSB7Ci0JCQlzaXplX3QJcmV0OwotCi0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZyZXQpOworCQkJICAgKHRjcC0+dV9hcmdbMV09PVFNX0RFUFMpIHx8CisJCQkgICAodGNwLT51X2FyZ1sxXT09UU1fUkVGUykpIHsKIAkJCXRwcmludGYoInsiKTsKIAkJCWlmICghYWJicmV2KHRjcCkpIHsKLQkJCQljaGFyKglkYXRhCT0gKGNoYXIqKW1hbGxvYyh0Y3AtPnVfYXJnWzNdKTsKKwkJCQljaGFyKglkYXRhCT0gbWFsbG9jKHRjcC0+dV9hcmdbM10pOwogCQkJCWNoYXIqCW1vZAk9IGRhdGE7CiAJCQkJc2l6ZV90CWlkeDsKIAotCQkJCWlmIChkYXRhPT1OVUxMKSB7CisJCQkJaWYgKCFkYXRhKSB7CiAJCQkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CiAJCQkJCXRwcmludGYoIiAvKiAlWnUgZW50cmllcyAqLyAiLCByZXQpOwogCQkJCX0gZWxzZSB7Ci0JCQkJCXVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIGRhdGEpOwotCQkJCQlmb3IgKGlkeD0wOyBpZHg8cmV0OyBpZHgrKykgewotCQkJCQkJaWYgKGlkeCE9MCkKLQkJCQkJCQl0cHJpbnRmKCIsIik7Ci0JCQkJCQl0cHJpbnRmKCIlcyIsIG1vZCk7Ci0JCQkJCQltb2QrPXN0cmxlbihtb2QpKzE7CisJCQkJCWlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzJdLAorCQkJCQkJdGNwLT51X2FyZ1szXSwgZGF0YSkgPCAwKSB7CisJCQkJCQl0cHJpbnRmKCIgLyogJVp1IGVudHJpZXMgKi8gIiwgcmV0KTsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCWZvciAoaWR4PTA7IGlkeDxyZXQ7IGlkeCsrKSB7CisJCQkJCQkJdHByaW50ZigiJXMlcyIsCisJCQkJCQkJCShpZHggPyAiLCAiIDogIiIpLAorCQkJCQkJCQltb2QpOworCQkJCQkJCW1vZCArPSBzdHJsZW4obW9kKSsxOworCQkJCQkJfQogCQkJCQl9CiAJCQkJCWZyZWUoZGF0YSk7CiAJCQkJfQpAQCAtMTUzLDIyICsxNTUsMjcgQEAKIAkJCQl0cHJpbnRmKCIgLyogJVp1IGVudHJpZXMgKi8gIiwgcmV0KTsKIAkJCXRwcmludGYoIn0sICVadSIsIHJldCk7CiAJCX0gZWxzZSBpZiAodGNwLT51X2FyZ1sxXT09UU1fU1lNQk9MUykgewotCQkJc2l6ZV90CXJldDsKLQkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJnJldCk7CiAJCQl0cHJpbnRmKCJ7Iik7CiAJCQlpZiAoIWFiYnJldih0Y3ApKSB7Ci0JCQkJY2hhcioJCQlkYXRhCT0gKGNoYXIgKiltYWxsb2ModGNwLT51X2FyZ1szXSk7CisJCQkJY2hhcioJCQlkYXRhCT0gbWFsbG9jKHRjcC0+dV9hcmdbM10pOwogCQkJCXN0cnVjdCBtb2R1bGVfc3ltYm9sKglzeW0JPSAoc3RydWN0IG1vZHVsZV9zeW1ib2wqKWRhdGE7CiAJCQkJc2l6ZV90CQkJaWR4OwogCi0JCQkJaWYgKGRhdGE9PU5VTEwpIHsKKwkJCQlpZiAoIWRhdGEpIHsKIAkJCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKIAkJCQkJdHByaW50ZigiIC8qICVadSBlbnRyaWVzICovICIsIHJldCk7CiAJCQkJfSBlbHNlIHsKLQkJCQkJdW1vdmVuKHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgZGF0YSk7Ci0JCQkJCWZvciAoaWR4PTA7IGlkeDxyZXQ7IGlkeCsrKSB7Ci0JCQkJCQl0cHJpbnRmKCJ7bmFtZT0lcywgdmFsdWU9JWx1fSAiLCBkYXRhKyhsb25nKXN5bS0+bmFtZSwgc3ltLT52YWx1ZSk7Ci0JCQkJCQlzeW0rKzsKKwkJCQkJaWYgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMl0sCisJCQkJCQl0Y3AtPnVfYXJnWzNdLCBkYXRhKSA8IDApIHsKKwkJCQkJCXRwcmludGYoIiAvKiAlWnUgZW50cmllcyAqLyAiLCByZXQpOworCQkJCQl9IGVsc2UgeworCQkJCQkJZm9yIChpZHg9MDsgaWR4PHJldDsgaWR4KyspIHsKKwkJCQkJCQl0cHJpbnRmKCIlc3tuYW1lPSVzLCB2YWx1ZT0lbHV9IiwKKwkJCQkJCQkJKGlkeCA/ICIgIiA6ICIiKSwKKwkJCQkJCQkJZGF0YSsobG9uZylzeW0tPm5hbWUsCisJCQkJCQkJCXN5bS0+dmFsdWUpOworCQkJCQkJCXN5bSsrOworCQkJCQkJfQogCQkJCQl9CiAJCQkJCWZyZWUoZGF0YSk7CiAJCQkJfQpAQCAtMTk5LDggKzIwNiw5IEBACiBzdHJ1Y3QgdGNiICp0Y3A7CiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzJdLCAtMSk7CiAJfQogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2suYyBiL2Jsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA3Yzg0OQotLS0gL2Rldi9udWxsCisrKyBiL2Jsb2NrLmMKQEAgLTAsMCArMSwyODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTAgSmVmZiBNYWhvbmV5IDxqZWZmbUBzdXNlLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2lmZGVmIExJTlVYCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9ibGtwZy5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvaGRyZWcuaD4KKworLyogaW9jdGxzIDw9IDExNCBhcmUgcHJlc2VudCBpbiBMaW51eCAyLjQuIFRoZSBmb2xsb3dpbmcgb25lcyBoYXZlIGJlZW4KKyAqIGFkZGVkIHNpbmNlIHRoZW4gYW5kIGhlYWRlcnMgY29udGFpbmluZyB0aGVtIG1heSBub3QgYmUgYXZhaWxhYmxlIG9uCisgKiBldmVyeSBzeXN0ZW0uICovCisKKyNkZWZpbmUgQkxLVFJBQ0VfQkRFVl9TSVpFICAgICAgMzIKK3N0cnVjdCBibGtfdXNlcl90cmFjZV9zZXR1cCB7CisJY2hhciBuYW1lW0JMS1RSQUNFX0JERVZfU0laRV07CS8qIG91dHB1dCAqLworCXVpbnQxNl90IGFjdF9tYXNrOwkJLyogaW5wdXQgKi8KKwl1aW50MzJfdCBidWZfc2l6ZTsJCS8qIGlucHV0ICovCisJdWludDMyX3QgYnVmX25yOwkJLyogaW5wdXQgKi8KKwl1aW50NjRfdCBzdGFydF9sYmE7CisJdWludDY0X3QgZW5kX2xiYTsKKwl1aW50MzJfdCBwaWQ7Cit9OworCisjaWZuZGVmIEJMS1RSQUNFU0VUVVAKKyNkZWZpbmUgQkxLVFJBQ0VTRVRVUCBfSU9XUigweDEyLDExNSxzdHJ1Y3QgYmxrX3VzZXJfdHJhY2Vfc2V0dXApCisjZW5kaWYKKyNpZm5kZWYgQkxLVFJBQ0VTVEFSVAorI2RlZmluZSBCTEtUUkFDRVNUQVJUIF9JTygweDEyLDExNikKKyNlbmRpZgorI2lmbmRlZiBCTEtUUkFDRVNUQVJUCisjZGVmaW5lIEJMS1RSQUNFU1RPUCBfSU8oMHgxMiwxMTcpCisjZW5kaWYKKyNpZm5kZWYgQkxLVFJBQ0VURUFSRE9XTgorI2RlZmluZSBCTEtUUkFDRVRFQVJET1dOIF9JTygweDEyLDExOCkKKyNlbmRpZgorI2lmbmRlZiBCTEtESVNDQVJECisjZGVmaW5lIEJMS0RJU0NBUkQgX0lPKDB4MTIsMTE5KQorI2VuZGlmCisjaWZuZGVmIEJMS0lPTUlOCisjZGVmaW5lIEJMS0lPTUlOIF9JTygweDEyLDEyMCkKKyNlbmRpZgorI2lmbmRlZiBCTEtJT09QVAorI2RlZmluZSBCTEtJT09QVCBfSU8oMHgxMiwxMjEpCisjZW5kaWYKKyNpZm5kZWYgQkxLQUxJR05PRkYKKyNkZWZpbmUgQkxLQUxJR05PRkYgX0lPKDB4MTIsMTIyKQorI2VuZGlmCisjaWZuZGVmIEJMS1BCU1pHRVQKKyNkZWZpbmUgQkxLUEJTWkdFVCBfSU8oMHgxMiwxMjMpCisjZW5kaWYKKyNpZm5kZWYgQkxLRElTQ0FSRFpFUk9FUworI2RlZmluZSBCTEtESVNDQVJEWkVST0VTIF9JTygweDEyLDEyNCkKKyNlbmRpZgorI2lmbmRlZiBCTEtTRUNESVNDQVJECisjZGVmaW5lIEJMS1NFQ0RJU0NBUkQgX0lPKDB4MTIsMTI1KQorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBibGtwZ19vcHNbXSA9IHsKKwl7IEJMS1BHX0FERF9QQVJUSVRJT04sCSJCTEtQR19BRERfUEFSVElUSU9OIiwgfSwKKwl7IEJMS1BHX0RFTF9QQVJUSVRJT04sCSJCTEtQR19ERUxfUEFSVElUSU9OIiwgfSwKKwl7IDAsCQkJTlVMTCB9LAorfTsKKworc3RhdGljIHZvaWQKK3ByaW50X2Jsa3BnX3JlcShzdHJ1Y3QgdGNiICp0Y3AsIHN0cnVjdCBibGtwZ19pb2N0bF9hcmcgKmJsa3BnKQoreworCXN0cnVjdCBibGtwZ19wYXJ0aXRpb24gcDsKKworCXRwcmludGYoInsiKTsKKwlwcmludHh2YWwoYmxrcGdfb3BzLCBibGtwZy0+b3AsICJCTEtQR18/Pz8iKTsKKworCXRwcmludGYoIiwgZmxhZ3M9JWQsIGRhdGFsZW49JWQsICIsCisJCWJsa3BnLT5mbGFncywgYmxrcGctPmRhdGFsZW4pOworCisJaWYgKHVtb3ZlKHRjcCwgKGxvbmcpIGJsa3BnLT5kYXRhLCAmcCkgPCAwKQorCQl0cHJpbnRmKCIlI2x4fSIsIChsb25nKSBibGtwZy0+ZGF0YSk7CisJZWxzZQorCQl0cHJpbnRmKCJ7c3RhcnQ9JWxsZCwgbGVuZ3RoPSVsbGQsIHBubz0lZCwgIgorCQkJImRldm5hbWU9XCIlLipzXCIsIHZvbG5hbWU9XCIlLipzXCJ9fSIsCisJCQlwLnN0YXJ0LCBwLmxlbmd0aCwgcC5wbm8sCisJCQkoaW50KSBzaXplb2YocC5kZXZuYW1lKSwgcC5kZXZuYW1lLAorCQkJKGludCkgc2l6ZW9mKHAudm9sbmFtZSksIHAudm9sbmFtZSk7Cit9CisKK2ludAorYmxvY2tfaW9jdGwoc3RydWN0IHRjYiAqdGNwLCBsb25nIGNvZGUsIGxvbmcgYXJnKQoreworCXN3aXRjaCAoY29kZSkgeworCS8qIHRha2UgYXJnIGFzIGEgdmFsdWUsIG5vdCBhcyBhIHBvaW50ZXIgKi8KKwljYXNlIEJMS1JBU0VUOgorCWNhc2UgQkxLRlJBU0VUOgorCQlpZiAoZW50ZXJpbmcodGNwKSkKKwkJCXRwcmludGYoIiwgJWxkIiwgYXJnKTsKKwkJYnJlYWs7CisKKwkvKiB0YWtlIGEgc2lnbmVkIGludCAqLworCWNhc2UgQkxLUk9TRVQ6CisJY2FzZSBCTEtCU1pTRVQ6CisJCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCQlpbnQgdmFsOworCQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIsICVkIiwgdmFsKTsKKwkJfQorCQlicmVhazsKKworCS8qIHJldHVybnMgYW4gdW5zaWduZWQgc2hvcnQgKi8KKwljYXNlIEJMS1NFQ1RHRVQ6CisJCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJCXVuc2lnbmVkIHNob3J0IHZhbDsKKwkJCWlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIsICVodSIsIHZhbCk7CisJCX0KKwkJYnJlYWs7CisKKwkvKiByZXR1cm4gYSBzaWduZWQgaW50ICovCisJY2FzZSBCTEtST0dFVDoKKwljYXNlIEJMS0JTWkdFVDoKKwljYXNlIEJMS1NTWkdFVDoKKwljYXNlIEJMS0FMSUdOT0ZGOgorCQlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCQlpbnQgdmFsOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgJWQiLCB2YWwpOworCQl9CisJCWJyZWFrOworCisJLyogcmV0dXJuIGFuIHVuc2lnbmVkIGludCAqLworCWNhc2UgQkxLUEJTWkdFVDoKKwljYXNlIEJMS0lPTUlOOgorCWNhc2UgQkxLSU9PUFQ6CisJY2FzZSBCTEtESVNDQVJEWkVST0VTOgorCQlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCQl1bnNpZ25lZCBpbnQgdmFsOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgJXUiLCB2YWwpOworCQl9CisJCWJyZWFrOworCisJLyogcmV0dXJuIGEgc2lnbmVkIGxvbmcgKi8KKwljYXNlIEJMS1JBR0VUOgorCWNhc2UgQkxLRlJBR0VUOgorCQlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCQlsb25nIHZhbDsKKwkJCWlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIsICVsZCIsIHZhbCk7CisJCX0KKwkJYnJlYWs7CisKKwkvKiByZXR1cm5zIGFuIHVuc2lnbmVkIGxvbmcgKi8KKwljYXNlIEJMS0dFVFNJWkU6CisJCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJCXVuc2lnbmVkIGxvbmcgdmFsOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgJWx1IiwgdmFsKTsKKwkJCX0KKwkJYnJlYWs7CisKKwkvKiByZXR1cm4gYW4gdWludDY0X3QgKi8KKwljYXNlIEJMS0dFVFNJWkU2NDoKKwkJaWYgKGV4aXRpbmcodGNwKSkgeworCQkJdWludDY0X3QgdmFsOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgJSIgUFJJdTY0LCB2YWwpOworCQl9CisJCWJyZWFrOworCisJLyogTW9yZSBjb21wbGV4IHR5cGVzICovCisJY2FzZSBCTEtESVNDQVJEOgorCWNhc2UgQkxLU0VDRElTQ0FSRDoKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXVpbnQ2NF90IHJhbmdlWzJdOworCQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCByYW5nZSkgPCAwKQorCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7CisJCQllbHNlCisJCQkJdHByaW50ZigiLCB7JSIgUFJJeDY0ICIsICUiIFBSSXg2NCAifSIsCisJCQkJCXJhbmdlWzBdLCByYW5nZVsxXSk7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIEhESU9fR0VUR0VPOgorCQlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCQlzdHJ1Y3QgaGRfZ2VvbWV0cnkgZ2VvOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZnZW8pIDwgMCkKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwge2hlYWRzPSVoaHUsIHNlY3RvcnM9JWhodSwgIgorCQkJCQkiY3lsaW5kZXJzPSVodSwgc3RhcnQ9JWx1fSIsCisJCQkJCWdlby5oZWFkcywgZ2VvLnNlY3RvcnMsCisJCQkJCWdlby5jeWxpbmRlcnMsIGdlby5zdGFydCk7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIEJMS1BHOgorCQlpZiAoZW50ZXJpbmcodGNwKSkgeworCQkJc3RydWN0IGJsa3BnX2lvY3RsX2FyZyBibGtwZzsKKwkJCWlmICh1bW92ZSh0Y3AsIGFyZywgJmJsa3BnKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UgeworCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnRfYmxrcGdfcmVxKHRjcCwgJmJsa3BnKTsKKwkJCX0KKwkJfQorCQlicmVhazsKKworCWNhc2UgQkxLVFJBQ0VTRVRVUDoKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXN0cnVjdCBibGtfdXNlcl90cmFjZV9zZXR1cCBidXRzOworCQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmYnV0cykgPCAwKQorCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7CisJCQllbHNlCisJCQkJdHByaW50ZigiLCB7YWN0X21hc2s9JWh1LCBidWZfc2l6ZT0ldSwgIgorCQkJCQkiYnVmX25yPSV1LCBzdGFydF9sYmE9JSIgUFJJdTY0ICIsICIKKwkJCQkJImVuZF9sYmE9JSIgUFJJdTY0ICIsIHBpZD0ldX0iLAorCQkJCQlidXRzLmFjdF9tYXNrLCBidXRzLmJ1Zl9zaXplLAorCQkJCQlidXRzLmJ1Zl9uciwgYnV0cy5zdGFydF9sYmEsCisJCQkJCWJ1dHMuZW5kX2xiYSwgYnV0cy5waWQpOworCQl9CisJCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJCXN0cnVjdCBibGtfdXNlcl90cmFjZV9zZXR1cCBidXRzOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZidXRzKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIsIHtuYW1lPVwiJS4qc1wifSIsCisJCQkJCShpbnQpIHNpemVvZihidXRzLm5hbWUpLCBidXRzLm5hbWUpOworCQl9CisJCWJyZWFrOworCisJLyogTm8gYXJndW1lbnRzIG9yIHVuaGFuZGxlZCAqLworCWNhc2UgQkxLVFJBQ0VTVEFSVDoKKwljYXNlIEJMS1RSQUNFU1RPUDoKKwljYXNlIEJMS1RSQUNFVEVBUkRPV046CisJY2FzZSBCTEtGTFNCVUY6IC8qIFJlcXVpcmVzIGRyaXZlciBrbm93bGVnZSAqLworCWNhc2UgQkxLUlJQQVJUOiAvKiBObyBhcmdzICovCisJZGVmYXVsdDoKKwkJaWYgKGVudGVyaW5nKHRjcCkpCisJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQlicmVhazsKKworCX07CisJcmV0dXJuIDE7Cit9CisjZW5kaWYgLyogTElOVVggKi8KZGlmZiAtLWdpdCBhL2NvbmZpZy5ndWVzcyBiL2NvbmZpZy5ndWVzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggODIyOTQ3MS4uMDAwMDAwMAotLS0gYS9jb25maWcuZ3Vlc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUzICswLDAgQEAKLSMhIC9iaW4vc2gKLSMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KLSMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0jICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLQotdGltZXN0YW1wPScyMDA0LTExLTEyJwotCi0jIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Ci0jIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0jIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0jIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0jCi0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0jCi0jIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0jIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0jCi0jIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0jIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0jIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLQotIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0jIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAotIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50cnkuCi0jCi0jIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KLSMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCi0jIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgotIwotIyBUaGUgcGxhbiBpcyB0aGF0IHRoaXMgY2FuIGJlIGNhbGxlZCBieSBjb25maWd1cmUgc2NyaXB0cyBpZiB5b3UKLSMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KLQotbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCi0KLXVzYWdlPSJcCi1Vc2FnZTogJDAgW09QVElPTl0KLQotT3V0cHV0IHRoZSBjb25maWd1cmF0aW9uIG5hbWUgb2YgdGhlIHN5c3RlbSBcYCRtZScgaXMgcnVuIG9uLgotCi1PcGVyYXRpb24gbW9kZXM6Ci0gIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAotICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0Ci0gIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0KLVJlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCi0KLXZlcnNpb249IlwKLUdOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCi0KLU9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KLUNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNAotRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLVRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi13YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0KLWhlbHA9IgotVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotCi0jIFBhcnNlIGNvbW1hbmQgbGluZQotd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gIGNhc2UgJDEgaW4KLSAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCAwIDs7Ci0gICAgLS12ZXJzaW9uIHwgLXYgKQotICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgMCA7OwotICAgIC0taGVscCB8IC0taCogfCAtaCApCi0gICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCAwIDs7Ci0gICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0gICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0gICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgotICAgICAgIGJyZWFrIDs7Ci0gICAgLSogKQotICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIgPiYyCi0gICAgICAgZXhpdCAxIDs7Ci0gICAgKiApCi0gICAgICAgYnJlYWsgOzsKLSAgZXNhYwotZG9uZQotCi1pZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0gIGV4aXQgMQotZmkKLQotdHJhcCAnZXhpdCAxJyAxIDIgMTUKLQotIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQotIyBjb21waWxlciB0byBhaWQgaW4gc3lzdGVtIGRldGVjdGlvbiBpcyBkaXNjb3VyYWdlZCBhcyBpdCByZXF1aXJlcwotIyB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBpcyBhCi0jIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCi0KLSMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0NDJy4gV2Ugc3RpbGwKLSMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLQotIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5IHRoZSBBdXRvY29uZiB0ZWFtLgotCi1zZXRfY2NfZm9yX2J1aWxkPScKLXRyYXAgImV4aXRjb2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOwotdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKLTogJHtUTVBESVI9L3RtcH0gOwotIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAtcSAiJFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIiA7IH0gfHwKLSB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAotIHsgdG1wPSRUTVBESVIvY2ctJCQgJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSAmJiBlY2hvICJXYXJuaW5nOiBjcmVhdGluZyBpbnNlY3VyZSB0ZW1wIGRpcmVjdG9yeSIgPiYyIDsgfSB8fAotIHsgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIgOyBleGl0IDEgOyB9IDsKLWR1bW15PSR0bXAvZHVtbXkgOwotdG1wZmlsZXM9IiRkdW1teS5jICRkdW1teS5vICRkdW1teS5yZWwgJGR1bW15IiA7Ci1jYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCi0gLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7Ci0JZm9yIGMgaW4gY2MgZ2NjIGM4OSBjOTkgOyBkbwotCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1teS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0JICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotCSAgZmkgOwotCWRvbmUgOwotCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0JICBDQ19GT1JfQlVJTEQ9bm9fY29tcGlsZXJfZm91bmQgOwotCWZpCi0JOzsKLSAsLCopICAgQ0NfRk9SX0JVSUxEPSRDQyA7OwotICwqLCopICBDQ19GT1JfQlVJTEQ9JEhPU1RfQ0MgOzsKLWVzYWMgOycKLQotIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KLSMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQotaWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLQlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKLWZpCi0KLVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgotVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCi1VTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgotVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCi0KLSMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KLQotY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgotICAgICo6TmV0QlNEOio6KikKLQkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgotCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKLQkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQotCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAotCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKLQkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKLQkjIG9iamVjdCBmaWxlIGZvcm1hdC4KLQkjCi0JIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCi0JIyBwb3J0aW9uIG9mIHRoZSBuYW1lLiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCi0Jc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgotCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAotCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAotCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KLQkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwotCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtub3duIDs7Ci0JICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7Ci0JICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKLQkgICAgKikgbWFjaGluZT0ke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93biA7OwotCWVzYWMKLQkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKLQkjIHRvIEVMRiByZWNlbnRseSwgb3Igd2lsbCBpbiB0aGUgZnV0dXJlLgotCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KLQkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0JCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQkJaWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKLQkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKLQkJdGhlbgotCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgotCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/Ci0JCSAgICBvcz1uZXRic2QKLQkJZWxzZQotCQkgICAgb3M9bmV0YnNkZWxmCi0JCWZpCi0JCTs7Ci0JICAgICopCi0JICAgICAgICBvcz1uZXRic2QKLQkJOzsKLQllc2FjCi0JIyBUaGUgT1MgcmVsZWFzZQotCSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCi0JIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAotCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKLQkjIHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KLQljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgotCSAgICBEZWJpYW4qKQotCQlyZWxlYXNlPSctZ251JwotCQk7OwotCSAgICAqKQotCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAotCQk7OwotCWVzYWMKLQkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKLQkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKLQkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCi0JZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0iCi0JZXhpdCAwIDs7Ci0gICAgYW1kNjQ6T3BlbkJTRDoqOiopCi0JZWNobyB4ODZfNjQtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIGFtaWdhOk9wZW5CU0Q6KjoqKQotCWVjaG8gbTY4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgY2F0czpPcGVuQlNEOio6KikKLQllY2hvIGFybS11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgaHAzMDA6T3BlbkJTRDoqOiopCi0JZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBsdW5hODhrOk9wZW5CU0Q6KjoqKQotICAgIAllY2hvIG04OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIG1hYzY4azpPcGVuQlNEOio6KikKLQllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIG1hY3BwYzpPcGVuQlNEOio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIG12bWU2OGs6T3BlbkJTRDoqOiopCi0JZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBtdm1lODhrOk9wZW5CU0Q6KjoqKQotCWVjaG8gbTg4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbXZtZXBwYzpPcGVuQlNEOio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIHNnaTpPcGVuQlNEOio6KikKLQllY2hvIG1pcHM2NC11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgc3VuMzpPcGVuQlNEOio6KikKLQllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgICo6T3BlbkJTRDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAqOmVra29CU0Q6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbWFjcHBjOk1pckJTRDoqOiopCi0JZWNobyBwb3dlcnBwYy11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAqOk1pckJTRDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIGFscGhhOk9TRjE6KjoqKQotCWNhc2UgJFVOQU1FX1JFTEVBU0UgaW4KLQkqNC4wKQotCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAotCQk7OwotCSo1LiopCi0JICAgICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAotCQk7OwotCWVzYWMKLQkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBvbgotCSMgT1NGLzEgYW5kIFRydTY0IHN5c3RlbXMgcHJvZHVjZWQgc2luY2UgMTk5NS4gIEkgaG9wZSB0aGF0Ci0JIyBjb3ZlcnMgbW9zdCBzeXN0ZW1zIHJ1bm5pbmcgdG9kYXkuICBUaGlzIGNvZGUgcGlwZXMgdGhlIENQVQotCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgotCUFMUEhBX0NQVV9UWVBFPWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9eICBUaGUgYWxwaGEgXCguKlwpIHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKLQljYXNlICIkQUxQSEFfQ1BVX1RZUEUiIGluCi0JICAgICJFVjQgKDIxMDY0KSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotCSAgICAiRVY0LjUgKDIxMDY0KSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotCSAgICAiTENBNCAoMjEwNjYvMjEwNjgpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7Ci0JICAgICJFVjUgKDIxMTY0KSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1IiA7OwotCSAgICAiRVY1LjYgKDIxMTY0QSkiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7Ci0JICAgICJFVjUuNiAoMjExNjRQQykiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBjYTU2IiA7OwotCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NyIgOzsKLQkgICAgIkVWNiAoMjEyNjQpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7Ci0JICAgICJFVjYuNyAoMjEyNjRBKSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2NyIgOzsKLQkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7Ci0JICAgICJFVjYuOEFMICgyMTI2NEIpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCi0JCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKLQkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY5IiA7OwotCSAgICAiRVY3ICgyMTM2NCkiKQotCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIgOzsKLQkgICAgIkVWNy45ICgyMTM2NEEpIikKLQkJVU5BTUVfTUFDSElORT0iYWxwaGFldjc5IiA7OwotCWVzYWMKLQkjIEEgUG4ubiB2ZXJzaW9uIGlzIGEgcGF0Y2hlZCB2ZXJzaW9uLgotCSMgQSBWbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCB2ZXJzaW9uLgotCSMgQSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCi0JIyBBIFhuLm4gdmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBiYXNlbGV2ZWwuCi0JIyAxLjIgdXNlcyAiMS4yIiBmb3IgdW5hbWUgLXIuCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0JZXhpdCAwIDs7Ci0gICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKLQkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0JIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCi0JIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/Ci0JZWNobyBhbHBoYS1wYy1pbnRlcml4Ci0JZXhpdCAwIDs7Ci0gICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQotCWVjaG8gYWxwaGEtZGVjLXdpbm50My41Ci0JZXhpdCAwIDs7Ci0gICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiopCi0JZWNobyBtNjhrLXVua25vd24tc3lzdjQKLQlleGl0IDA7OwotICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcwotCWV4aXQgMCA7OwotICAgICo6W01tXW9ycGhbT29dW1NzXToqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcwotCWV4aXQgMCA7OwotICAgICo6T1MvMzkwOio6KikKLQllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCi0JZXhpdCAwIDs7Ci0gICAgKjp6L1ZNOio6KikKLQllY2hvIHMzOTAtaWJtLXp2bW9lCi0JZXhpdCAwIDs7Ci0gICAgKjpPUzQwMDoqOiopCi0gICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLQlleGl0IDAgOzsKLSAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0JZWNobyBhcm0tYWNvcm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMDs7Ci0gICAgU1IyPzAxOkhJLVVYL01QUDoqOiogfCBTUjgwMDA6SEktVVgvTVBQOio6KikKLQllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCi0JZXhpdCAwOzsKLSAgICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKLQkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgotCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KLQkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKLQllbHNlCi0JCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAotCWZpCi0JZXhpdCAwIDs7Ci0gICAgTklMRSo6KjoqOmRjb3N4KQotCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN2cjQKLQlleGl0IDAgOzsKLSAgICBEUlM/NjAwMDp1bml4OjQuMDo2KikKLQllY2hvIHNwYXJjLWljbC1ueDYKLQlleGl0IDAgOzsKLSAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCi0JY2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCi0JICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDcgJiYgZXhpdCAwIDs7Ci0JZXNhYyA7OwotICAgIHN1bjRIOlN1bk9TOjUuKjoqKQotCWVjaG8gc3BhcmMtaGFsLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0JZXhpdCAwIDs7Ci0gICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKLQllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgIGk4NnBjOlN1bk9TOjUuKjoqKQotCWVjaG8gaTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgIHN1bjQqOlN1bk9TOjYqOiopCi0JIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKLQkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAotCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCi0JZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLQlleGl0IDAgOzsKLSAgICBzdW40KjpTdW5PUzoqOiopCi0JY2FzZSAiYC91c3IvYmluL2FyY2ggLWtgIiBpbgotCSAgICBTZXJpZXMqfFM0KikKLQkJVU5BTUVfUkVMRUFTRT1gdW5hbWUgLXZgCi0JCTs7Ci0JZXNhYwotCSMgSmFwYW5lc2UgTGFuZ3VhZ2UgdmVyc2lvbnMgaGF2ZSBhIHZlcnNpb24gbnVtYmVyIGxpa2UgYDQuMS4zLUpMJy4KLQllY2hvIHNwYXJjLXN1bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAotCWV4aXQgMCA7OwotICAgIHN1bjMqOlN1bk9TOio6KikKLQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIHN1bio6Kjo0LjJCU0Q6KikKLQlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAotCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKLQljYXNlICJgL2Jpbi9hcmNoYCIgaW4KLQkgICAgc3VuMykKLQkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLQkJOzsKLQkgICAgc3VuNCkKLQkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9Ci0JCTs7Ci0JZXNhYwotCWV4aXQgMCA7OwotICAgIGF1c2hwOlN1bk9TOio6KikKLQllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQotICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotICAgICMgImF0YXJpc3QiIG9yICJhdGFyaXN0ZSIgYXQgbGVhc3Qgc2hvdWxkIGhhdmUgYSBwcm9jZXNzb3IKLSAgICAjID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQiCi0gICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKLSAgICAjIHRoZSBzeXN0ZW0gbmFtZSAiVE9TIiBkZW5vdGVzIGEgc3lzdGVtIHdoaWNoIGlzIGFjdHVhbGx5IG5vdAotICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJkIGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3VsZAotICAgICMgYmUgbm8gcHJvYmxlbS4KLSAgICBhdGFyaXN0W2VdOipNaU5UOio6KiB8IGF0YXJpc3RbZV06Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6KikKLSAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQotCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotICAgICAgICBleGl0IDAgOzsKLSAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLSAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbWlsYW4qOipNaU5UOio6KiB8IG1pbGFuKjoqbWludDoqOiogfCAqbWlsYW4qOipUT1M6KjoqKQotICAgICAgICBlY2hvIG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0KLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQotICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0gICAgICAgIGVjaG8gbTY4ay11bmtub3duLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0gICAgICAgIGV4aXQgMCA7OwotICAgIG02OGs6bWFjaHRlbjoqOiopCi0JZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgcG93ZXJwYzptYWNodGVuOio6KikKLQllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBSSVNDKjpNYWNoOio6KikKLQllY2hvIG1pcHMtZGVjLW1hY2hfYnNkNC4zCi0JZXhpdCAwIDs7Ci0gICAgUklTQyo6VUxUUklYOio6KikKLQllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBWQVgqOlVMVFJJWCo6KjoqKQotCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCi0JZWNobyBjbGlwcGVyLWludGVyZ3JhcGgtY2xpeCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBtaXBzOio6KjpVTUlQUyB8IG1pcHM6KjoqOlJJU0NvcykKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSNpZmRlZiBfX2NwbHVzcGx1cwotI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJpbnRmKCkgcHJvdG90eXBlICovCi0JaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSNlbHNlCi0JaW50IG1haW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107IHsKLSNlbmRpZgotCSNpZiBkZWZpbmVkIChob3N0X21pcHMpICYmIGRlZmluZWQgKE1JUFNFQikKLQkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQotCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwotCSNlbmRpZgotCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQpCi0JICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0JI2VuZGlmCi0JI2lmIGRlZmluZWQgKFNZU1RZUEVfQlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCi0JICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKLQkjZW5kaWYKLQkjZW5kaWYKLQkgIGV4aXQgKC0xKTsKLQl9Ci1FT0YKLQkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyBcCi0JICAmJiAkZHVtbXkgYGVjaG8gIiR7VU5BTUVfUkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9wJ2AgXAotCSAgJiYgZXhpdCAwCi0JZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKLQllY2hvIHBvd2VycGMtbW90b3JvbGEtcG93ZXJtYXgKLQlleGl0IDAgOzsKLSAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKLQllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0JZXhpdCAwIDs7Ci0gICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5OlBvd2VyTUFYX09TOio6KikKLQllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0JZXhpdCAwIDs7Ci0gICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKLQllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VydW5peAotCWV4aXQgMCA7OwotICAgIG04OGs6Q1gvVVg6Nyo6KikKLQllY2hvIG04OGstaGFycmlzLWN4dXg3Ci0JZXhpdCAwIDs7Ci0gICAgbTg4azoqOjQqOlI0KikKLQllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKLQlleGl0IDAgOzsKLSAgICBtODhrOio6Myo6UjMqKQotCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotCWV4aXQgMCA7OwotICAgIEFWaWlPTjpkZ3V4Oio6KikKLSAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKLSAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLQlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTAwIF0gfHwgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODExMCBdCi0JdGhlbgotCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKLQkgICAgICAgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSB4IF0KLQkgICAgdGhlbgotCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KLQkgICAgZWxzZQotCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KLQkgICAgZmkKLQllbHNlCi0JICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQotCWZpCi0gCWV4aXQgMCA7OwotICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCi0JZWNobyBtODhrLWRvbHBoaW4tc3lzdjMKLQlleGl0IDAgOzsKLSAgICBNODgqOio6UjMqOiopCi0JIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZSMwotCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotCWV4aXQgMCA7OwotICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQotCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKLQlleGl0IDAgOzsKLSAgICBUZWs0M1swLTldWzAtOV06VVRlazoqOiopICMgVGVrdHJvbml4IDQzMDAgc3lzdGVtIHJ1bm5pbmcgVVRlayAoQlNEKQotCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCi0JZXhpdCAwIDs7Ci0gICAgKjpJUklYKjoqOiopCi0JZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAotCWV4aXQgMCA7OwotICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KLQllY2hvIHJvbXAtaWJtLWFpeCAgICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKLQlleGl0IDAgOzsgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJwotICAgIGkqODY6QUlYOio6KikKLQllY2hvIGkzODYtaWJtLWFpeAotCWV4aXQgMCA7OwotICAgIGlhNjQ6QUlYOio6KikKLQlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLQkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKLQllbHNlCi0JCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0JZmkKLQllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0KLQlleGl0IDAgOzsKLSAgICAqOkFJWDoyOjMpCi0JaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0JCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+Ci0KLQkJbWFpbigpCi0JCQl7Ci0JCQlpZiAoIV9fcG93ZXJfcGMoKSkKLQkJCQlleGl0KDEpOwotCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKLQkJCWV4aXQoMCk7Ci0JCQl9Ci1FT0YKLQkJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIGV4aXQgMAotCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKLQllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgotCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKLQllbHNlCi0JCWVjaG8gcnM2MDAwLWlibS1haXgzLjIKLQlmaQotCWV4aXQgMCA7OwotICAgICo6QUlYOio6WzQ1XSkKLQlJQk1fQ1BVX0lEPWAvdXNyL3NiaW4vbHNkZXYgLUMgLWMgcHJvY2Vzc29yIC1TIGF2YWlsYWJsZSB8IHNlZCAxcSB8IGF3ayAneyBwcmludCAkMSB9J2AKLQlpZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQkJSUJNX0FSQ0g9cnM2MDAwCi0JZWxzZQotCQlJQk1fQVJDSD1wb3dlcnBjCi0JZmkKLQlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLQkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKLQllbHNlCi0JCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0JZmkKLQllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9Ci0JZXhpdCAwIDs7Ci0gICAgKjpBSVg6KjoqKQotCWVjaG8gcnM2MDAwLWlibS1haXgKLQlleGl0IDAgOzsKLSAgICBpYm1ydDo0LjRCU0Q6Knxyb21wLWlibTpCU0Q6KikKLQllY2hvIHJvbXAtaWJtLWJzZDQuNAotCWV4aXQgMCA7OwotICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCi0JZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bwotCWV4aXQgMCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVwb3J0OiByb21wLWlibSBCU0QgNC4zCi0gICAgKjpCT1NYOio6KikKLQllY2hvIHJzNjAwMC1idWxsLWJvc3gKLQlleGl0IDAgOzsKLSAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQotCWVjaG8gbTY4ay1idWxsLXN5c3YzCi0JZXhpdCAwIDs7Ci0gICAgOTAwMC9bMzRdPz86NC4zYnNkOjEuKjoqKQotCWVjaG8gbTY4ay1ocC1ic2QKLQlleGl0IDAgOzsKLSAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQotCWVjaG8gbTY4ay1ocC1ic2Q0LjQKLQlleGl0IDAgOzsKLSAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCi0JSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCi0JY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLQkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7Ci0JICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNIPW02OGsgOzsKLQkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCi0JCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCi0JCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKLSAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotICAgICAgICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAotICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQotICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCi0gICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7Ci0gICAgICAgICAgICAgICAgICAgIGVzYWMKLQkJZmkKLQkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCi0JCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0JCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15LmMKLQotICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KLQotICAgICAgICAgICAgICBpbnQgbWFpbiAoKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLSAgICAgICAgICAgICAgICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKLSAgICAgICAgICAgICAgI2VuZGlmCi0gICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotCi0gICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkKLSAgICAgICAgICAgICAgCXsKLSAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOwotICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7Ci0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCi0gICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQotICAgICAgICAgICAgICAJCXsKLSAgICAgICAgICAgICAgCQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7Ci0gICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOwotICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotICAgICAgICAgICAgICAJCX0gYnJlYWs7Ci0gICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCi0gICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0gICAgICAgICAgICAgICNlbmRpZgotICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7Ci0gICAgICAgICAgICAgIAl9Ci0gICAgICAgICAgICAgICAgICBleGl0ICgwKTsKLSAgICAgICAgICAgICAgfQotRU9GCi0JCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAotCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQotCQlmaSA7OwotCWVzYWMKLQlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KLQl0aGVuCi0JICAgICMgYXZvaWQgZG91YmxlIGV2YWx1YXRpb24gb2YgJHNldF9jY19mb3JfYnVpbGQKLQkgICAgdGVzdCAtbiAiJENDX0ZPUl9CVUlMRCIgfHwgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtKSB8IGdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAotCSAgICB0aGVuCi0JCUhQX0FSQ0g9ImhwcGEyLjB3IgotCSAgICBlbHNlCi0JCUhQX0FSQ0g9ImhwcGE2NCIKLQkgICAgZmkKLQlmaQotCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0KLQlleGl0IDAgOzsKLSAgICBpYTY0OkhQLVVYOio6KikKLQlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKLQllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9Ci0JZXhpdCAwIDs7Ci0gICAgMzA1MCo6SEktVVg6KjoqKQotCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotCSNpbmNsdWRlIDx1bmlzdGQuaD4KLQlpbnQKLQltYWluICgpCi0JewotCSAgbG9uZyBjcHUgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwotCSAgLyogVGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91c2x5IHJldHVybnMKLQkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0Ci0JICAgICByZXN1bHRzLCBob3dldmVyLiAgKi8KLQkgIGlmIChDUFVfSVNfUEFfUklTQyAoY3B1KSkKLQkgICAgewotCSAgICAgIHN3aXRjaCAoY3B1KQotCQl7Ci0JCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLQkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRzICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Ci0JCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotCQl9Ci0JICAgIH0KLQkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKLQkgICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7Ci0JICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOwotCSAgZXhpdCAoMCk7Ci0JfQotRU9GCi0JJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIGV4aXQgMAotCWVjaG8gdW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIKLQlleGl0IDAgOzsKLSAgICA5MDAwLzc/Pzo0LjNic2Q6KjoqIHwgOTAwMC84P1s3OV06NC4zYnNkOio6KiApCi0JZWNobyBocHBhMS4xLWhwLWJzZAotCWV4aXQgMCA7OwotICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCi0JZWNobyBocHBhMS4wLWhwLWJzZAotCWV4aXQgMCA7OwotICAgICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKLQllY2hvIGhwcGExLjAtaHAtbXBlaXgKLQlleGl0IDAgOzsKLSAgICBocDc/PzpPU0YxOio6KiB8IGhwOD9bNzldOk9TRjE6KjoqICkKLQllY2hvIGhwcGExLjEtaHAtb3NmCi0JZXhpdCAwIDs7Ci0gICAgaHA4Pz86T1NGMToqOiopCi0JZWNobyBocHBhMS4wLWhwLW9zZgotCWV4aXQgMCA7OwotICAgIGkqODY6T1NGMToqOiopCi0JaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhlbgotCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxbWsKLQllbHNlCi0JICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjEKLQlmaQotCWV4aXQgMCA7OwotICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKLQllY2hvIGhwcGExLjEtaHAtbGl0ZXMKLQlleGl0IDAgOzsKLSAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQotCWVjaG8gYzEtY29udmV4LWJzZAotICAgICAgICBleGl0IDAgOzsKLSAgICBDMio6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMyKjoqKQotCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYwotCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0JZmkKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQzM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM0KjoqKQotCWVjaG8gYzM0LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQotCWVjaG8gYzM4LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDNCo6KikKLQllY2hvIGM0LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgQ1JBWSpZLU1QOio6KjoqKQotCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0JZXhpdCAwIDs7Ci0gICAgQ1JBWSpbQS1aXTkwOio6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAotCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAotCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKLQkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCi0JZXhpdCAwIDs7Ci0gICAgQ1JBWSpUUzoqOio6KikKLQllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotCWV4aXQgMCA7OwotICAgIENSQVkqVDNFOio6KjoqKQotCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotCWV4aXQgMCA7OwotICAgIENSQVkqU1YxOio6KjoqKQotCWVjaG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0JZXhpdCAwIDs7Ci0gICAgKjpVTklDT1MvbXA6KjoqKQotCWVjaG8gY3JheW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLQlleGl0IDAgOzsKLSAgICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklYX1N5c3RlbV9WOio6KikKLQlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAotICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0gICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9fLydgCi0gICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0gICAgICAgIGV4aXQgMCA7OwotICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAotICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0JZXhpdCAwIDs7Ci0gICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgc3BhcmMqOkJTRC9PUzoqOiopCi0JZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpCU0QvT1M6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpGcmVlQlNEOio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYAotCWV4aXQgMCA7OwotICAgIGkqOkNZR1dJTio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCi0JZXhpdCAwIDs7Ci0gICAgaSo6TUlOR1cqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIKLQlleGl0IDAgOzsKLSAgICBpKjpQVyo6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgotCWV4aXQgMCA7OwotICAgIHg4NjpJbnRlcml4KjpbMzRdKikKLQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1wuLiovLycKLQlleGl0IDAgOzsKLSAgICBbMzQ1XTg2OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93c185ODoqIHwgWzM0NV04NjpXaW5kb3dzX05UOiopCi0JZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKLQlleGl0IDAgOzsKLSAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKLQkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0JIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKLQkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/Ci0JZWNobyBpNTg2LXBjLWludGVyaXgKLQlleGl0IDAgOzsKLSAgICBpKjpVV0lOKjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy11d2luCi0JZXhpdCAwIDs7Ci0gICAgcCo6Q1lHV0lOKjoqKQotCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCi0JZXhpdCAwIDs7Ci0gICAgcHJlcCo6U3VuT1M6NS4qOiopCi0JZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgICo6R05VOio6KikKLQkjIHRoZSBHTlUgc3lzdGVtCi0JZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0JZXhpdCAwIDs7Ci0gICAgKjpHTlUvKjoqOiopCi0JIyBvdGhlciBzeXN0ZW1zIHdpdGggR05VIGxpYmMgYW5kIHVzZXJsYW5kCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdzLF5bXi9dKi8sLCcgfCB0ciAnW0EtWl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYC1nbnUKLQlleGl0IDAgOzsKLSAgICBpKjg2Ok1pbml4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLQlleGl0IDAgOzsKLSAgICBhcm0qOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBjcmlzOkxpbnV4Oio6KikKLQllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBjcmlzdjMyOkxpbnV4Oio6KikKLQllY2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBmcnY6TGludXg6KjoqKQotICAgIAllY2hvIGZydi11bmtub3duLWxpbnV4LWdudQotCWV4aXQgMCA7OwotICAgIGlhNjQ6TGludXg6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotCWV4aXQgMCA7OwotICAgIG0zMnIqOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBtNjgqOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBtaXBzOkxpbnV4Oio6KikKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLQkjdW5kZWYgQ1BVCi0JI3VuZGVmIG1pcHMKLQkjdW5kZWYgbWlwc2VsCi0JI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLQlDUFU9bWlwc2VsCi0JI2Vsc2UKLQkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQotCUNQVT1taXBzCi0JI2Vsc2UKLQlDUFU9Ci0JI2VuZGlmCi0JI2VuZGlmCi1FT0YKLQlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeQ1BVPWAKLQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSIgJiYgZXhpdCAwCi0JOzsKLSAgICBtaXBzNjQ6TGludXg6KjoqKQotCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLQlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotCSN1bmRlZiBDUFUKLQkjdW5kZWYgbWlwczY0Ci0JI3VuZGVmIG1pcHM2NGVsCi0JI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLQlDUFU9bWlwczY0ZWwKLQkjZWxzZQotCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0JQ1BVPW1pcHM2NAotCSNlbHNlCi0JQ1BVPQotCSNlbmRpZgotCSNlbmRpZgotRU9GCi0JZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkNQVT1gCi0JdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiICYmIGV4aXQgMAotCTs7Ci0gICAgcHBjOkxpbnV4Oio6KikKLQllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBwcGM2NDpMaW51eDoqOiopCi0JZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBhbHBoYTpMaW51eDoqOiopCi0JY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KLQkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFscGhhZXY1IDs7Ci0JICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKLQkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLQkgIFBDQTU3KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLQkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7Ci0JICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLQkgIEVWNjgqKSBVTkFNRV9NQUNISU5FPWFscGhhZXY2OCA7OwotICAgICAgICBlc2FjCi0Jb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKLQlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KLQlleGl0IDAgOzsKLSAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCi0JIyBMb29rIGZvciBDUFUgbGV2ZWwKLQljYXNlIGBncmVwICdeY3B1W15hLXpdKjonIC9wcm9jL2NwdWluZm8gMj4vZGV2L251bGwgfCBjdXQgLWQnICcgLWYyYCBpbgotCSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7Ci0JICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKLQkgICopICAgIGVjaG8gaHBwYS11bmtub3duLWxpbnV4LWdudSA7OwotCWVzYWMKLQlleGl0IDAgOzsKLSAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQotCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251Ci0JZXhpdCAwIDs7Ci0gICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1saW51eAotCWV4aXQgMCA7OwotICAgIHNoNjQqOkxpbnV4Oio6KikKLSAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0JZXhpdCAwIDs7Ci0gICAgc2gqOkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLQlleGl0IDAgOzsKLSAgICB4ODZfNjQ6TGludXg6KjoqKQotCWVjaG8geDg2XzY0LXVua25vd24tbGludXgtZ251Ci0JZXhpdCAwIDs7Ci0gICAgaSo4NjpMaW51eDoqOiopCi0JIyBUaGUgQkZEIGxpbmtlciBrbm93cyB3aGF0IHRoZSBkZWZhdWx0IG9iamVjdCBmaWxlIGZvcm1hdCBpcywgc28KLQkjIGZpcnN0IHNlZSBpZiBpdCB3aWxsIHRlbGwgdXMuIGNkIHRvIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmV2ZW50Ci0JIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgotCSMgU2V0IExDX0FMTD1DIHRvIGVuc3VyZSBsZCBvdXRwdXRzIG1lc3NhZ2VzIGluIEVuZ2xpc2guCi0JbGRfc3VwcG9ydGVkX3RhcmdldHM9YGNkIC87IExDX0FMTD1DIGxkIC0taGVscCAyPiYxIFwKLQkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFyZ2V0czovIWQKLQkJCQkgICAgcy9bIAldWyAJXSovIC9nCi0JCQkJICAgIHMvLipzdXBwb3J0ZWQgdGFyZ2V0czogKi8vCi0JCQkJICAgIHMvIC4qLy8KLQkJCQkgICAgcCdgCi0gICAgICAgIGNhc2UgIiRsZF9zdXBwb3J0ZWRfdGFyZ2V0cyIgaW4KLQkgIGVsZjMyLWkzODYpCi0JCVRFTlRBVElWRT0iJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnUiCi0JCTs7Ci0JICBhLm91dC1pMzg2LWxpbnV4KQotCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWFvdXQiCi0JCWV4aXQgMCA7OwotCSAgY29mZi1pMzg2KQotCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWNvZmYiCi0JCWV4aXQgMCA7OwotCSAgIiIpCi0JCSMgRWl0aGVyIGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgotCQkjIG9uZSB0aGF0IGRvZXMgbm90IGdpdmUgdXMgdXNlZnVsIC0taGVscC4KLQkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVvbGRsZCIKLQkJZXhpdCAwIDs7Ci0JZXNhYwotCSMgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCi0JZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0JI2luY2x1ZGUgPGZlYXR1cmVzLmg+Ci0JI2lmZGVmIF9fRUxGX18KLQkjIGlmZGVmIF9fR0xJQkNfXwotCSMgIGlmIF9fR0xJQkNfXyA+PSAyCi0JTElCQz1nbnUKLQkjICBlbHNlCi0JTElCQz1nbnVsaWJjMQotCSMgIGVuZGlmCi0JIyBlbHNlCi0JTElCQz1nbnVsaWJjMQotCSMgZW5kaWYKLQkjZWxzZQotCSNpZmRlZiBfX0lOVEVMX0NPTVBJTEVSCi0JTElCQz1nbnUKLQkjZWxzZQotCUxJQkM9Z251YW91dAotCSNlbmRpZgotCSNlbmRpZgotCSNpZmRlZiBfX2RpZXRsaWJjX18KLQlMSUJDPWRpZXRsaWJjCi0JI2VuZGlmCi1FT0YKLQlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeTElCQz1gCi0JdGVzdCB4IiR7TElCQ30iICE9IHggJiYgZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IiAmJiBleGl0IDAKLQl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIGVjaG8gIiR7VEVOVEFUSVZFfSIgJiYgZXhpdCAwCi0JOzsKLSAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQotCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCi0JIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAotCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCi0JZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKLQlleGl0IDAgOzsKLSAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6Mi4qKQotICAgICAgICAjIFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCi0gICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KLSAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAotCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KLSAgICAgICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7VU5BTUVfVkVSU0lPTn0KLQlleGl0IDAgOzsKLSAgICBpKjg2Ok9TLzI6KjoqKQotCSMgSWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBFTVggVW5peCBjb21wYXRpYmlsaXR5Ci0JIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9zMi1lbXgKLQlleGl0IDAgOzsKLSAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKLQlleGl0IDAgOzsKLSAgICBpKjg2OmF0aGVvczoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYXRoZW9zCi0JZXhpdCAwIDs7Ci0JaSo4NjpzeWxsYWJsZToqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCi0JZXhpdCAwIDs7Ci0gICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhPUzo0LjAqOiopCi0JZWNobyBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIGkqODY6KkRPUzoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKLQlleGl0IDAgOzsKLSAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQotCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdzL1wvTVAkLy8nYAotCWlmIGdyZXAgTm92ZWxsIC91c3IvaW5jbHVkZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KLQllbHNlCi0JCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9Ci0JZmkKLQlleGl0IDAgOzsKLSAgICBpKjg2Oio6NTpbNzhdKikKLQljYXNlIGAvYmluL3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgotCSAgICAqNDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKLQkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7Ci0JICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7Ci0JZXNhYwotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9OfQotCWV4aXQgMCA7OwotICAgIGkqODY6KjozLjI6KikKLQlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCi0JCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKLQkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKLQllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KLQkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAotCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKLQkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKLQkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgotCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKLQkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKLQkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAotCWVsc2UKLQkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgotCWZpCi0JZXhpdCAwIDs7Ci0gICAgcGM6KjoqOiopCi0JIyBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHk6Ci0gICAgICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Ci0gICAgICAgICMgdGhlIHByb2Nlc3Nvciwgc28gd2UgcGxheSBzYWZlIGJ5IGFzc3VtaW5nIGkzODYuCi0JZWNobyBpMzg2LXBjLW1zZG9zZGpncHAKLSAgICAgICAgZXhpdCAwIDs7Ci0gICAgSW50ZWw6TWFjaDozKjoqKQotCWVjaG8gaTM4Ni1wYy1tYWNoMwotCWV4aXQgMCA7OwotICAgIHBhcmFnb246KjoqOiopCi0JZWNobyBpODYwLWludGVsLW9zZjEKLQlleGl0IDAgOzsKLSAgICBpODYwOio6NC4qOiopICMgaTg2MC1TVlI0Ci0JaWYgZ3JlcCBTdGFyZGVudCAvdXNyL2luY2x1ZGUvc3lzL3VhZG1pbi5oID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLQkgIGVjaG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKLQllbHNlICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCi0JICBlY2hvIGk4NjAtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSAgIyBVbmtub3duIGk4NjAtU1ZSNAotCWZpCi0JZXhpdCAwIDs7Ci0gICAgbWluaSo6Q1RJWDpTWVMqNToqKQotCSMgIm1pbmlmcmFtZSIKLQllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKLQlleGl0IDAgOzsKLSAgICBtYzY4azpVTklYOlNZU1RFTTU6My41MW0pCi0JZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lzdgotCWV4aXQgMCA7OwotICAgIE02ODA/MDpELU5JWDo1LjM6KikKLQllY2hvIG02OGstZGlhYi1kbml4Ci0JZXhpdCAwIDs7Ci0gICAgTTY4KjoqOlIzVls1Njc4XSo6KikKLQl0ZXN0IC1yIC9zeXNWNjggJiYgZWNobyAnbTY4ay1tb3Rvcm9sYS1zeXN2JyAmJiBleGl0IDAgOzsKLSAgICAzWzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDozLjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkKLQlPU19SRUw9JycKLQl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKLQkmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAotCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAotCSAgJiYgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9ICYmIGV4aXQgMAotCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAotCSAgJiYgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9ICYmIGV4aXQgMCA7OwotICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQotICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSAgICAgICAgICAmJiBlY2hvIGk0ODYtbmNyLXN5c3Y0ICYmIGV4aXQgMCA7OwotICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQotCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBtYzY4MDMwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0JZWNobyBtNjhrLWF0YXJpLXN5c3Y0Ci0JZXhpdCAwIDs7Ci0gICAgVFNVTkFNSTpMeW54T1M6Mi4qOiopCi0JZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICByczYwMDA6THlueE9TOjIuKjoqKQotCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC4wKjoqKQotCWVjaG8gcG93ZXJwYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBTTVtCRV1TOlVOSVhfU1Y6KjoqKQotCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCi0JZWNobyBtaXBzLXNuaS1zeXN2NAotCWV4aXQgMCA7OwotICAgIFJNKjpTSU5JWC0qOio6KikKLQllY2hvIG1pcHMtc25pLXN5c3Y0Ci0JZXhpdCAwIDs7Ci0gICAgKjpTSU5JWC0qOio6KikKLQlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgotCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotCQllY2hvICR7VU5BTUVfTUFDSElORX0tc25pLXN5c3Y0Ci0JZWxzZQotCQllY2hvIG5zMzJrLXNuaS1zeXN2Ci0JZmkKLQlleGl0IDAgOzsKLSAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAotICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KLSAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAotICAgICAgICBleGl0IDAgOzsKLSAgICAqOlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKLQkjIEZyb20gR2VyYWxkIEhld2VzIDxoZXdlc0BvcGVubWFya2V0LmNvbT4uCi0JIyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCi0JZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKLQlleGl0IDAgOzsKLSAgICAqOio6KjpGVFgqKQotCSMgRnJvbSBzZWFuZkBzd2RjLnN0cmF0dXMuY29tLgotCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0Ci0JZXhpdCAwIDs7Ci0gICAgKjpWT1M6KjoqKQotCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgotCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXZvcwotCWV4aXQgMCA7OwotICAgIG1jNjgqOkEvVVg6KjoqKQotCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbmV3cyo6TkVXUy1PUzo2KjoqKQotCWVjaG8gbWlwcy1zb255LW5ld3NvczYKLQlleGl0IDAgOzsKLSAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKLQlpZiBbIC1kIC91c3IvbmVjIF07IHRoZW4KLQkgICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLQllbHNlCi0JICAgICAgICBlY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfQotCWZpCi0gICAgICAgIGV4aXQgMCA7OwotICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KLQllY2hvIHBvd2VycGMtYmUtYmVvcwotCWV4aXQgMCA7OwotICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KLQllY2hvIHBvd2VycGMtYXBwbGUtYmVvcwotCWV4aXQgMCA7OwotICAgIEJlUEM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCi0JZWNobyBpNTg2LXBjLWJlb3MKLQlleGl0IDAgOzsKLSAgICBTWC00OlNVUEVSLVVYOio6KikKLQllY2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBTWC01OlNVUEVSLVVYOio6KikKLQllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBTWC02OlNVUEVSLVVYOio6KikKLQllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQotCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKLSAgICAqOlJoYXBzb2R5Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpEYXJ3aW46KjoqKQotCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0JY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCi0JICAgICo4NikgVU5BTUVfUFJPQ0VTU09SPWk2ODYgOzsKLQkgICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBvd2VycGMgOzsKLQllc2FjCi0JZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwotICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQotCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCi0JaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgotCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgotCQlVTkFNRV9NQUNISU5FPXBjCi0JZmkKLQllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpRTlg6Kjo0KikKLQllY2hvIGkzODYtcGMtcW54Ci0JZXhpdCAwIDs7Ci0gICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQotCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpOb25TdG9wLVVYOio6KikKLQllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1eAotCWV4aXQgMCA7OwotICAgIEJTMjAwMDpQT1NJWCo6KjoqKQotCWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgotCWV4aXQgMCA7OwotICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpQbGFuOToqOiopCi0JIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4gMzg2Ci0JIyBpcyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKLQkjIG9wZXJhdGluZyBzeXN0ZW1zLgotCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYiOyB0aGVuCi0JICAgIFVOQU1FX01BQ0hJTkU9aTM4NgotCWVsc2UKLQkgICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCi0JZmkKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQotCWV4aXQgMCA7OwotICAgICo6VE9QUy0xMDoqOiopCi0JZWNobyBwZHAxMC11bmtub3duLXRvcHMxMAotCWV4aXQgMCA7OwotICAgICo6VEVORVg6KjoqKQotCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAotCWV4aXQgMCA7OwotICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCi0JZWNobyBwZHAxMC1kZWMtdG9wczIwCi0JZXhpdCAwIDs7Ci0gICAgWEtMLTE6VE9QUy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKLQllY2hvIHBkcDEwLXhrbC10b3BzMjAKLQlleGl0IDAgOzsKLSAgICAqOlRPUFMtMjA6KjoqKQotCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKLQlleGl0IDAgOzsKLSAgICAqOklUUzoqOiopCi0JZWNobyBwZHAxMC11bmtub3duLWl0cwotCWV4aXQgMCA7OwotICAgIFNFSToqOio6U0VJVVgpCi0gICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjpEcmFnb25GbHk6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKLQlleGl0IDAgOzsKLSAgICAqOipWTVM6KjoqKQotICAgIAlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCi0JICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgJiYgZXhpdCAwIDs7Ci0JICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyAmJiBleGl0IDAgOzsKLQkgICAgViopIGVjaG8gdmF4LWRlYy12bXMgJiYgZXhpdCAwIDs7Ci0JZXNhYyA7OwotICAgICo6WEVOSVg6KjpTeXNWKQotCWVjaG8gaTM4Ni1wYy14ZW5peAotCWV4aXQgMCA7OwotZXNhYwotCi0jZWNobyAnKE5vIHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5vdCByZWNvZ25pemVkLiknIDE+JjIKLSNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKLQotZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotY2F0ID4kZHVtbXkuYyA8PEVPRgotI2lmZGVmIF9TRVFVRU5UXwotIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KLSNlbmRpZgotbWFpbiAoKQotewotI2lmIGRlZmluZWQgKHNvbnkpCi0jaWYgZGVmaW5lZCAoTUlQU0VCKQotICAvKiBCRkQgd2FudHMgImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFuZ2VkLAotICAgICBJIGRvbid0IGtub3cuLi4uICAqLwotICBwcmludGYgKCJtaXBzLXNvbnktYnNkXG4iKTsgZXhpdCAoMCk7Ci0jZWxzZQotI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0jaWZkZWYgTkVXU09TNAotICAgICAgICAgICI0IgotI2Vsc2UKLQkgICIiCi0jZW5kaWYKLSAgICAgICAgICk7IGV4aXQgKDApOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVkIChfX3VuaXgpCi0gIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXgiKTsgZXhpdCAoMCk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKLSAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZCAoTmVYVCkKLSNpZiAhZGVmaW5lZCAoX19BUkNISVRFQ1RVUkVfXykKLSNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKLSNlbmRpZgotICBpbnQgdmVyc2lvbjsKLSAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOwotICBpZiAodmVyc2lvbiA8IDQpCi0gICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKLSAgZWxzZQotICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7Ci0gIGV4aXQgKDApOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQotI2lmIGRlZmluZWQgKFVNQVhWKQotICBwcmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOwotI2Vsc2UKLSNpZiBkZWZpbmVkIChDTVUpCi0gIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7Ci0jZWxzZQotICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7Ci0jZW5kaWYKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChfXzM4NkJTRF9fKQotICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIChzZXF1ZW50KQotI2lmIGRlZmluZWQgKGkzODYpCi0gIHByaW50ZiAoImkzODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotI2VuZGlmCi0jaWYgZGVmaW5lZCAobnMzMjAwMCkKLSAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKLSAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKLQotICAgIHVuYW1lKCZ1bik7Ci0KLSAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7Ci0JcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKLSAgICB9Ci0gICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYxIiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KLQlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4aXQgKDApOwotICAgIH0KLSAgICBwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7Ci0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZCAodmF4KQotIyBpZiAhZGVmaW5lZCAodWx0cml4KQotIyAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0jICBpZiBkZWZpbmVkIChCU0QpCi0jICAgaWYgQlNEID09IDQzCi0gICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOwotIyAgIGVsc2UKLSMgICAgaWYgQlNEID09IDE5OTAwNgotICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4iKTsgZXhpdCAoMCk7Ci0jICAgIGVsc2UKLSAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7Ci0jICAgIGVuZGlmCi0jICAgZW5kaWYKLSMgIGVsc2UKLSAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOwotIyAgZW5kaWYKLSMgZWxzZQotICAgIHByaW50ZiAoInZheC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7Ci0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCi0gIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsKLSNlbmRpZgotCi0gIGV4aXQgKDEpOwotfQotRU9GCi0KLSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsICYmICRkdW1teSAmJiBleGl0IDAKLQotIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgotCi10ZXN0IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0tYXBvbGxvLSR7U1lTVFlQRX07IGV4aXQgMDsgfQotCi0jIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCi0KLWlmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCi10aGVuCi0gICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KLSAgICBjMSopCi0JZWNobyBjMS1jb252ZXgtYnNkCi0JZXhpdCAwIDs7Ci0gICAgYzIqKQotCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYwotCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0JZmkKLQlleGl0IDAgOzsKLSAgICBjMzQqKQotCWVjaG8gYzM0LWNvbnZleC1ic2QKLQlleGl0IDAgOzsKLSAgICBjMzgqKQotCWVjaG8gYzM4LWNvbnZleC1ic2QKLQlleGl0IDAgOzsKLSAgICBjNCopCi0JZWNobyBjNC1jb252ZXgtYnNkCi0JZXhpdCAwIDs7Ci0gICAgZXNhYwotZmkKLQotY2F0ID4mMiA8PEVPRgotJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlwZQotCi1UaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVkIHRvIHJlY29nbml6ZQotdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQotZG93bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCi0KLSAgICBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8KLQotSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCi1zZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQotcGVydGluZW50IHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBpbiBvcmRlciB0byBwcm92aWRlIHRoZSBuZWVkZWQKLWluZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KLQotY29uZmlnLmd1ZXNzIHRpbWVzdGFtcCA9ICR0aW1lc3RhbXAKLQotdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi11bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLXVuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0KLS91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGxgCi0vYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCi0KLWhvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAKLS9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAotL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGxgCi0vYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAotL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCi0vdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbGAKLQotVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KLVVOQU1FX1JFTEVBU0UgPSAke1VOQU1FX1JFTEVBU0V9Ci1VTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNURU19Ci1VTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQotRU9GCi0KLWV4aXQgMQotCi0jIExvY2FsIHZhcmlhYmxlczoKLSMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCi0jIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKLSMgdGltZS1zdGFtcC1lbmQ6ICInIgotIyBFbmQ6CmRpZmYgLS1naXQgYS9jb25maWcuaC5pbiBiL2NvbmZpZy5oLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjA0MjkwLi4wMDAwMDAwCi0tLSBhL2NvbmZpZy5oLmluCisrKyAvZGV2L251bGwKQEAgLTEsNDEyICswLDAgQEAKLS8qIGNvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLwotCi0vKiBEZWZpbmUgZm9yIHRoZSBBbHBoYSBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgQUxQSEEKLQotLyogRGVmaW5lIGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBBUk0KLQotLyogRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotI3VuZGVmIEZSRUVCU0QKLQotLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheSBzZXQgYnkgYGdldGdyb3VwcycuIFVzdWFsbHkKLSAgIHRoaXMgaXMgZWl0aGVyIGBpbnQnIG9yIGBnaWRfdCcuICovCi0jdW5kZWYgR0VUR1JPVVBTX1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vcmVnLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfQVNNX1JFR19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3NpZ2NvbnRleHQuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9BU01fU0lHQ09OVEVYVF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3N5c21pcHMuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9BU01fU1lTTUlQU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX2Vycmxpc3QnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI3VuZGVmIEhBVkVfREVDTF9TWVNfRVJSTElTVAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHN5c19zaWdsaXN0JywgYW5kIHRvIDAgaWYgeW91Ci0gICBkb24ndC4gKi8KLSN1bmRlZiBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBfc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKLSAgIGRvbid0LiAqLwotI3VuZGVmIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLSN1bmRlZiBIQVZFX0RJUkVOVF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZGVudHMnIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfR0VUREVOVFMKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCi0jdW5kZWYgSEFWRV9JRl9JTkRFWFRPTkFNRQotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCi0jdW5kZWYgSEFWRV9JTkVUX05UT1AKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX0lOVFRZUEVTX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9JT0NUTFNfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYmFpby5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX0xJQkFJT19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCi0jdW5kZWYgSEFWRV9MSUJOU0wKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfTElOVVhfSUNNUF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaWZfcGFja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfTElOVVhfSUZfUEFDS0VUX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pbjYuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9JTjZfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9ORVRMSU5LX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9QVFJBQ0VfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9MSU5VWF9VVFNOQU1FX0gKLQotLyogRGVmaW5lIGlmIGxvbmcgbG9uZyBpcyBsaXR0bGUtZW5kaWFuLiAqLwotI3VuZGVmIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGxvbmcgbG9uZycuICovCi0jdW5kZWYgSEFWRV9MT05HX0xPTkcKLQotLyogRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLiAqLwotI3VuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCi0KLS8qIERlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuICovCi0jdW5kZWYgSEFWRV9MT05HX0xPTkdfUkxJTV9UCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWN0bCcgZnVuY3Rpb24uICovCi0jdW5kZWYgSEFWRV9NQ1RMCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfTUVNT1JZX0gKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4gSS5FLiAvZGV2L3h4eC9jdGwsCi0gICAvZGV2L3h4eC9zdGF0dXMuIEFsc28gaW1wbGllcyB0aGF0IHlvdSBoYXZlIHRoZSBwcl9sd3AgbWVtYmVyIGluIHByc3RhdHVzLgotICAgKi8KLSN1bmRlZiBIQVZFX01QX1BST0NGUwotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX01RVUVVRV9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuICovCi0jdW5kZWYgSEFWRV9ORElSX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX05FVElORVRfVENQX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3VkcC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX05FVElORVRfVURQX0gKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIFNWUjQgYW5kIHRoZSBwb2xsIHN5c3RlbSBjYWxsIHdvcmtzIG9uIC9wcm9jIGZpbGVzLiAqLwotI3VuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1BPTExfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByY3RsJyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX1BSQ1RMCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJlYWQnIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfUFJFQUQKLQotLyogRGVmaW5lIGlmIHRoZSBwcnN0YXR1cyBzdHJ1Y3R1cmUgaW4gc3lzL3Byb2Nmcy5oIGhhcyBhIHByX3N5c2NhbGwgbWVtYmVyLgotICAgKi8KLSN1bmRlZiBIQVZFX1BSX1NZU0NBTEwKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZW5kbXNnJyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX1NFTkRNU0cKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhY3Rpb24nIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfU0lHQUNUSU9OCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzaWdpbmZvX3QnLiAqLwotI3VuZGVmIEhBVkVfU0lHSU5GT19UCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzaWdfYXRvbWljX3QnLiAqLwotI3VuZGVmIEhBVkVfU0lHX0FUT01JQ19UCi0KLS8qIERlZmluZSBpZiBzdGF0NjQgaXMgYXZhaWxhYmxlIGluIGFzbS9zdGF0LmguICovCi0jdW5kZWYgSEFWRV9TVEFUNjQKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TVERJTlRfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NURExJQl9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfU1RSRVJST1IKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1RSSU5HU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1RSSU5HX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJvcHRzLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1RST1BUU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFsJyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX1NUUlNJR05BTAotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IGlhNjRfZnByZWcnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKLQotLyogRGVmaW5lIHRvIDEgaWYgYG1zZ19jb250cm9sJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtc2doZHInLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTAotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IG9wdGhkcicuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfT1BUSERSCi0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncycuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfUFRfQUxMX1VTRVJfUkVHUwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc2luNl9zY29wZV9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfaW42Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRAotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYWNsY250JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0FDTENOVAotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfYmxrc2l6ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9ibG9ja3MnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTCi0KLS8qIERlZmluZSB0byAxIGlmIGBzdF9mbGFncycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHUwotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZnN0eXBlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZTVFlQRQotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfZ2VuJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0dFTgotCi0vKiBEZWZpbmUgdG8gMSBpZiBgc3RfbGV2ZWwnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfTEVWRUwKLQotLyogRGVmaW5lIHRvIDEgaWYgYHN0X3JkZXYnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFVgotCi0vKiBEZWZpbmUgdG8gMSBpZiBgQUNDRVBUT1JfaWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IFRfY29ubl9yZXMnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfQUNDRVBUT1JfSUQKLQotLyogRGVmaW5lIHRvIDEgaWYgYFFVRVVFX3B0cicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19RVUVVRV9QVFIKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCB0X29wdGhkcicuICovCi0jdW5kZWYgSEFWRV9TVFJVQ1RfVF9PUFRIRFIKLQotLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCB1c2VyX2Rlc2MnLiAqLwotI3VuZGVmIEhBVkVfU1RSVUNUX1VTRVJfREVTQwotCi0vKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0Jy4gKi8KLSN1bmRlZiBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9hY2wuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfQUNMX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYWlvLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0FJT19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FzeW5jaC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19BU1lOQ0hfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jb25mLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0NPTkZfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgotICAgKi8KLSN1bmRlZiBIQVZFX1NZU19ESVJfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kb29yLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0RPT1JfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9lcG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19FUE9MTF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGlvLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW9jdGwuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfSU9DVExfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KLSAgICovCi0jdW5kZWYgSEFWRV9TWVNfTkRJUl9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25zY3N5cy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19OU0NTWVNfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb2xsLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX1BPTExfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfUFRSQUNFX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcmVnLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX1JFR19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLwotI3VuZGVmIEhBVkVfU1lTX1NJR0xJU1QKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19TVEFUX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLwotI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2NvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19TWVNDT05GSUdfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aWhkci5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19USUhEUl9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19USVVTRVJfSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19UWVBFU19ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1NZU19VSU9fSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9TWVNfVkZTX0gKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx0ZXJtaW8uaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9URVJNSU9fSAotCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1VOSVNURF9ICi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX3N5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KLSN1bmRlZiBIQVZFX19TWVNfU0lHTElTVAotCi0vKiBEZWZpbmUgZm9yIHRoZSBIUFBBIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBIUFBBCi0KLS8qIERlZmluZSBmb3IgdGhlIGkzODYgYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIEkzODYKLQotLyogRGVmaW5lIGZvciB0aGUgSUE2NCBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgSUE2NAotCi0vKiBEZWZpbmUgZm9yIHRoZSBMaW51eCBvcGVyYXRpbmcgc3lzdGVtLiAqLwotI3VuZGVmIExJTlVYCi0KLS8qIERlZmluZSBmb3IgdGhlIG02OGsgYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIE02OEsKLQotLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4gPG1rZGV2Lmg+LgotICAgKi8KLSN1bmRlZiBNQUpPUl9JTl9NS0RFVgotCi0vKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbgotICAgPHN5c21hY3Jvcy5oPi4gKi8KLSN1bmRlZiBNQUpPUl9JTl9TWVNNQUNST1MKLQotLyogRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgTUlQUwotCi0vKiBOYW1lIG9mIHBhY2thZ2UgKi8KLSN1bmRlZiBQQUNLQUdFCi0KLS8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLwotI3VuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCi0KLS8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSN1bmRlZiBQQUNLQUdFX05BTUUKLQotLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLwotI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCi0KLS8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KLSN1bmRlZiBQQUNLQUdFX1RBUk5BTUUKLQotLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KLSN1bmRlZiBQQUNLQUdFX1ZFUlNJT04KLQotLyogRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuICovCi0jdW5kZWYgUE9XRVJQQwotCi0vKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoYGludCcgb3IgYHZvaWQnKS4gKi8KLSN1bmRlZiBSRVRTSUdUWVBFCi0KLS8qIERlZmluZSBmb3IgdGhlIFMzOTAgYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIFMzOTAKLQotLyogRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLiAqLwotI3VuZGVmIFMzOTBYCi0KLS8qIERlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTSAotCi0vKiBEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTSDY0Ci0KLS8qIERlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTUEFSQwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTUEFSQzY0IGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBTUEFSQzY0Ci0KLS8qIERlZmluZSB0byAxIGlmIHRoZSBgU19JUyonIG1hY3JvcyBpbiA8c3lzL3N0YXQuaD4gZG8gbm90IHdvcmsgcHJvcGVybHkuICovCi0jdW5kZWYgU1RBVF9NQUNST1NfQlJPS0VOCi0KLS8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotI3VuZGVmIFNURENfSEVBREVSUwotCi0vKiBEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS4gKi8KLSN1bmRlZiBTVU5PUzQKLQotLyogRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uIG9mCi0gICBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLiBPbmx5Ci0gICB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNCBpbiB0aGUKLSAgIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS4gKi8KLSN1bmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFCi0KLS8qIERlZmluZSBmb3IgdGhlIFN5c3RlbSBWIHJlbGVhc2UgNCBvcGVyYXRpbmcgc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlCi0gICBTb2xhcmlzIDIueCBvciBJcml4IDUueC4gKi8KLSN1bmRlZiBTVlI0Ci0KLS8qIERlZmluZSBmb3IgVW5peFdhcmUgc3lzdGVtcy4gKi8KLSN1bmRlZiBVTklYV0FSRQotCi0vKiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCi0jdW5kZWYgVkVSU0lPTgotCi0vKiBEZWZpbmUgZm9yIHRoZSBBTUQgeDg2LTY0IGFyY2hpdGVjdHVyZS4gKi8KLSN1bmRlZiBYODZfNjQKLQotLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLwotI2lmbmRlZiBfR05VX1NPVVJDRQotIyB1bmRlZiBfR05VX1NPVVJDRQotI2VuZGlmCi0KLS8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLwotI3VuZGVmIGNvbnN0Ci0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLwotI3VuZGVmIGdpZF90Ci0KLS8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KLSN1bmRlZiBtb2RlX3QKLQotLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCi0jdW5kZWYgdWlkX3QKZGlmZiAtLWdpdCBhL2NvbmZpZy5sb2cgYi9jb25maWcubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGI3MzJiLi4wMDAwMDAwCi0tLSBhL2NvbmZpZy5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw1NDAxICswLDAgQEAKLVRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi1ydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotCi1JdCB3YXMgY3JlYXRlZCBieSBzdHJhY2UgY29uZmlndXJlIDQuNS4xMiwgd2hpY2ggd2FzCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLQotICAkIC4vY29uZmlndXJlIC0tcHJlZml4PS9kYXRhLyAtLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudQotCi0jIyAtLS0tLS0tLS0gIyMKLSMjIFBsYXRmb3JtLiAjIwotIyMgLS0tLS0tLS0tICMjCi0KLWhvc3RuYW1lID0gc2t5d3JpdGluZy5jb3JwLmdvb2dsZS5jb20KLXVuYW1lIC1tID0geDg2XzY0Ci11bmFtZSAtciA9IDIuNi4xOC41LWdnMTl3b3Jrc3RhdGlvbi1taXhlZDY0LTMyCi11bmFtZSAtcyA9IExpbnV4Ci11bmFtZSAtdiA9ICMxIFNNUCBUdWUgTm92IDIwIDE2OjAyOjUyIFBTVCAyMDA3Ci0KLS91c3IvYmluL3VuYW1lIC1wID0gdW5rbm93bgotL2Jpbi91bmFtZSAtWCAgICAgPSB1bmtub3duCi0KLS9iaW4vYXJjaCAgICAgICAgICAgICAgPSB4ODZfNjQKLS91c3IvYmluL2FyY2ggLWsgICAgICAgPSB1bmtub3duCi0vdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgotaG9zdGluZm8gICAgICAgICAgICAgICA9IHVua25vd24KLS9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1bmtub3duCi0vdXNyL2Jpbi9vc2xldmVsICAgICAgID0gdW5rbm93bgotL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KLQotUEFUSDogL3Vzci9sb2NhbC9zeW1saW5rcwotUEFUSDogL3Vzci9sb2NhbC9zY3JpcHRzCi1QQVRIOiAvdXNyL2xvY2FsL3NiaW4KLVBBVEg6IC91c3IvbG9jYWwvYmluCi1QQVRIOiAvdXNyL3NiaW4KLVBBVEg6IC91c3IvYmluCi1QQVRIOiAvc2JpbgotUEFUSDogL2JpbgotUEFUSDogL3Vzci9iaW4vWDExCi1QQVRIOiAvYW5kcm9pZC9kZXZpY2UvcHJlYnVpbHQvTGludXgvdG9vbGNoYWluL2Jpbi8KLVBBVEg6IC9ob21lL21rZi9iaW4KLVBBVEg6IC9hbmRyb2lkL2RldmljZS9vdXQvaG9zdC9saW51eC14ODYvYmluCi1QQVRIOiAvYW5kcm9pZC9kZXZpY2UvcHJlYnVpbHQvTGludXgvdG9vbGNoYWluL2FybS1lbGYKLVBBVEg6IC9hbmRyb2lkL2RldmljZS90b29scy9xdG9vbHMKLVBBVEg6IC9hbmRyb2lkL2RldmljZS9wcmVidWlsdC9MaW51eC90b29sY2hhaW4tZWFiaS00LjIuMS9iaW4KLVBBVEg6IC9hbmRyb2lkL2RldmljZS9wcmVidWlsdC9MaW51eC90b29sY2hhaW4tZWFiaS00LjIuMS9iaW4KLQotCi0jIyAtLS0tLS0tLS0tLSAjIwotIyMgQ29yZSB0ZXN0cy4gIyMKLSMjIC0tLS0tLS0tLS0tICMjCi0KLWNvbmZpZ3VyZToxMzU4OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCi1jb25maWd1cmU6MTQxMzogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jCi1jb25maWd1cmU6MTQyNDogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lCi1jb25maWd1cmU6MTQ2NzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZToxNTMyOiBjaGVja2luZyBmb3IgZ2F3awotY29uZmlndXJlOjE1NDg6IGZvdW5kIC91c3IvYmluL2dhd2sKLWNvbmZpZ3VyZToxNTU4OiByZXN1bHQ6IGdhd2sKLWNvbmZpZ3VyZToxNTY4OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpCi1jb25maWd1cmU6MTU4ODogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZToxNzU2OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcwotY29uZmlndXJlOjE3NjU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZToxNzg2OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQotY29uZmlndXJlOjE4MDQ6IHJlc3VsdDogYXJtLXVua25vd24tbGludXgtZ251Ci1jb25maWd1cmU6MTgxMjogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQotY29uZmlndXJlOjE4MjY6IHJlc3VsdDogYXJtLXVua25vd24tbGludXgtZ251Ci1jb25maWd1cmU6MTgzNTogY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBvcGVyYXRpbmcgc3lzdGVtCi1jb25maWd1cmU6MTg5NDogcmVzdWx0OiBsaW51eAotY29uZmlndXJlOjE4OTc6IGNoZWNraW5nIGZvciBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlCi1jb25maWd1cmU6MjAyODogcmVzdWx0OiBhcm0KLWNvbmZpZ3VyZToyMTQxOiBjaGVja2luZyBmb3IgZ2NjCi1jb25maWd1cmU6MjE1NzogZm91bmQgL3Vzci9iaW4vZ2NjCi1jb25maWd1cmU6MjE2NzogcmVzdWx0OiBnY2MKLWNvbmZpZ3VyZToyNDExOiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uCi1jb25maWd1cmU6MjQxNDogZ2NjIC0tdmVyc2lvbiA8L2Rldi9udWxsID4mNQotZ2NjIChHQ0MpIDQuMC4zIChVYnVudHUgNC4wLjMtMXVidW50dTUpCi1Db3B5cmlnaHQgKEMpIDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi1UaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwotd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCi0KLWNvbmZpZ3VyZToyNDE3OiAkPyA9IDAKLWNvbmZpZ3VyZToyNDE5OiBnY2MgLXYgPC9kZXYvbnVsbCA+JjUKLVVzaW5nIGJ1aWx0LWluIHNwZWNzLgotVGFyZ2V0OiBpNDg2LWxpbnV4LWdudQotQ29uZmlndXJlZCB3aXRoOiAuLi9zcmMvY29uZmlndXJlIC12IC0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxqYXZhLGY5NSxvYmpjLGFkYSx0cmVlbGFuZyAtLXByZWZpeD0vdXNyIC0tZW5hYmxlLXNoYXJlZCAtLXdpdGgtc3lzdGVtLXpsaWIgLS1saWJleGVjZGlyPS91c3IvbGliIC0td2l0aG91dC1pbmNsdWRlZC1nZXR0ZXh0IC0tZW5hYmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtbmxzIC0tcHJvZ3JhbS1zdWZmaXg9LTQuMCAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1lbmFibGUtY2xvY2FsZT1nbnUgLS1lbmFibGUtbGlic3RkY3h4LWRlYnVnIC0tZW5hYmxlLWphdmEtYXd0PWd0ay1kZWZhdWx0IC0tZW5hYmxlLWd0ay1jYWlybyAtLXdpdGgtamF2YS1ob21lPS91c3IvbGliL2p2bS9qYXZhLTEuNC4yLWdjai00LjAtMS40LjIuMC9qcmUgLS1lbmFibGUtbXBmciAtLWRpc2FibGUtd2Vycm9yIC0td2l0aC10dW5lPXBlbnRpdW00IC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgaTQ4Ni1saW51eC1nbnUKLVRocmVhZCBtb2RlbDogcG9zaXgKLWdjYyB2ZXJzaW9uIDQuMC4zIChVYnVudHUgNC4wLjMtMXVidW50dTUpCi1jb25maWd1cmU6MjQyMjogJD8gPSAwCi1jb25maWd1cmU6MjQyNDogZ2NjIC1WIDwvZGV2L251bGwgPiY1Ci1nY2M6ICctVicgb3B0aW9uIG11c3QgaGF2ZSBhcmd1bWVudAotY29uZmlndXJlOjI0Mjc6ICQ/ID0gMQotY29uZmlndXJlOjI0NTA6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQotY29uZmlndXJlOjI0NTM6IGdjYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6MjQ1NjogJD8gPSAwCi1jb25maWd1cmU6MjUwMjogcmVzdWx0OiBhLm91dAotY29uZmlndXJlOjI1MDc6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKLWNvbmZpZ3VyZToyNTEzOiAuL2Eub3V0Ci1jb25maWd1cmU6MjUxNjogJD8gPSAwCi1jb25maWd1cmU6MjUzMzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZToyNTQwOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKLWNvbmZpZ3VyZToyNTQyOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6MjU0NTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwotY29uZmlndXJlOjI1NDc6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6MjU1MDogJD8gPSAwCi1jb25maWd1cmU6MjU3NTogcmVzdWx0OiAKLWNvbmZpZ3VyZToyNTgxOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcwotY29uZmlndXJlOjI2MDI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjI2MDU6ICQ/ID0gMAotY29uZmlndXJlOjI2Mjc6IHJlc3VsdDogbwotY29uZmlndXJlOjI2MzE6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgotY29uZmlndXJlOjI2NTU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjI2NjE6ICQ/ID0gMAotY29uZmlndXJlOjI2NjU6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjI2Njg6ICQ/ID0gMAotY29uZmlndXJlOjI2NzE6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjI2NzQ6ICQ/ID0gMAotY29uZmlndXJlOjI2ODc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6MjY5MzogY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZwotY29uZmlndXJlOjI3MTQ6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZToyNzIwOiAkPyA9IDAKLWNvbmZpZ3VyZToyNzI0OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZToyNzI3OiAkPyA9IDAKLWNvbmZpZ3VyZToyNzMwOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZToyNzMzOiAkPyA9IDAKLWNvbmZpZ3VyZToyNzQ0OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjI3NjE6IGNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMKLWNvbmZpZ3VyZToyODMxOiBnY2MgIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6MjgzNzogJD8gPSAwCi1jb25maWd1cmU6Mjg0MTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Mjg0NDogJD8gPSAwCi1jb25maWd1cmU6Mjg0NzogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6Mjg1MDogJD8gPSAwCi1jb25maWd1cmU6Mjg2ODogcmVzdWx0OiBub25lIG5lZWRlZAotY29uZmlndXJlOjI4ODY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzoyOiBlcnJvcjogc3ludGF4IGVycm9yIGJlZm9yZSAnbWUnCi1jb25maWd1cmU6Mjg5MjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgI2lmbmRlZiBfX2NwbHVzcGx1cwotfCAgIGNob2tlIG1lCi18ICNlbmRpZgotY29uZmlndXJlOjMwMzY6IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgbWFrZQotY29uZmlndXJlOjMwNjQ6IHJlc3VsdDogR05VCi1jb25maWd1cmU6MzA5MjogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MKLWNvbmZpZ3VyZTozMTgyOiByZXN1bHQ6IGdjYzMKLWNvbmZpZ3VyZTozMjA3OiBjaGVja2luZyBmb3IgcHJpbWFyeSBpbmNsdWRlIGRpcmVjdG9yeQotY29uZmlndXJlOjMyMjU6IHJlc3VsdDogL3Vzci9pbmNsdWRlCi1jb25maWd1cmU6MzI3NDogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKLWNvbmZpZ3VyZTozMzA5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTozMzE1OiAkPyA9IDAKLWNvbmZpZ3VyZTozMzQ3OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6MTQ6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6MzM1MzogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci1jb25maWd1cmU6MzM5MjogcmVzdWx0OiBnY2MgLUUKLWNvbmZpZ3VyZTozNDE2OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTozNDIyOiAkPyA9IDAKLWNvbmZpZ3VyZTozNDU0OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6MTQ6Mjg6IGVycm9yOiBhY19ub25leGlzdGVudC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6MzQ2MDogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci1jb25maWd1cmU6MzUwNTogY2hlY2tpbmcgZm9yIGVncmVwCi1jb25maWd1cmU6MzUxNTogcmVzdWx0OiBncmVwIC1FCi1jb25maWd1cmU6MzUyMTogY2hlY2tpbmcgd2hldGhlciBnY2MgbmVlZHMgLXRyYWRpdGlvbmFsCi1jb25maWd1cmU6MzU2MzogcmVzdWx0OiBubwotY29uZmlndXJlOjM1ODM6IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKLWNvbmZpZ3VyZTozNjM4OiByZXN1bHQ6IC91c3IvYmluL2luc3RhbGwgLWMKLWNvbmZpZ3VyZTozNjQ5OiBjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QKLWNvbmZpZ3VyZTozNzE2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTozNzIyOiAkPyA9IDAKLWNvbmZpZ3VyZTozNzI2OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTozNzI5OiAkPyA9IDAKLWNvbmZpZ3VyZTozNzMyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTozNzM1OiAkPyA9IDAKLWNvbmZpZ3VyZTozNzQ2OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjM3NTY6IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzCi1jb25maWd1cmU6Mzc4MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6Mzc4NzogJD8gPSAwCi1jb25maWd1cmU6Mzc5MTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Mzc5NDogJD8gPSAwCi1jb25maWd1cmU6Mzc5NzogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6MzgwMDogJD8gPSAwCi1jb25maWd1cmU6Mzg4OTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6MzE6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKLWNvbmZpZ3VyZTozODkyOiAkPyA9IDAKLWNvbmZpZ3VyZTozODk0OiAuL2NvbmZ0ZXN0Ci1jb25maWd1cmU6Mzg5NzogJD8gPSAwCi1jb25maWd1cmU6MzkxMjogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTozOTMwOiBjaGVja2luZyBmb3IgZGlyZW50LmggdGhhdCBkZWZpbmVzIERJUgotY29uZmlndXJlOjM5NTQ6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjM5NjA6ICQ/ID0gMAotY29uZmlndXJlOjM5NjQ6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjM5Njc6ICQ/ID0gMAotY29uZmlndXJlOjM5NzA6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjM5NzM6ICQ/ID0gMAotY29uZmlndXJlOjM5ODQ6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Mzk5NzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyCi1jb25maWd1cmU6NDAyNzogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo0MDMzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MDM3OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MDQwOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MDQzOiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NDA0NjogJD8gPSAwCi1jb25maWd1cmU6NDExNjogcmVzdWx0OiBub25lIHJlcXVpcmVkCi1jb25maWd1cmU6NDI1MjogY2hlY2tpbmcgd2hldGhlciBzdGF0IGZpbGUtbW9kZSBtYWNyb3MgYXJlIGJyb2tlbgotY29uZmlndXJlOjQzMDA6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKLWNvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjQzMjQ6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3RkbGliLmgKLWNvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjQzMjQ6IGNoZWNraW5nIGZvciBzdHJpbmcuaAotY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjQzNDY6ICQ/ID0gMAotY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjQzNTM6ICQ/ID0gMAotY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjQzNTk6ICQ/ID0gMAotY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIG1lbW9yeS5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3IgaW50dHlwZXMuaAotY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjQzNDY6ICQ/ID0gMAotY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjQzNTM6ICQ/ID0gMAotY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjQzNTk6ICQ/ID0gMAotY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIHN0ZGludC5oCi1jb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDM0NjogJD8gPSAwCi1jb25maWd1cmU6NDM1MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDM1MzogJD8gPSAwCi1jb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDM1OTogJD8gPSAwCi1jb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3IgdW5pc3RkLmgKLWNvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKLWNvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjQzODI6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9ibGtzaXplCi1jb25maWd1cmU6NDQwNTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDQxMTogJD8gPSAwCi1jb25maWd1cmU6NDQxNTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDQxODogJD8gPSAwCi1jb25maWd1cmU6NDQyMTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDQyNDogJD8gPSAwCi1jb25maWd1cmU6NDQ4MTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0NDkxOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxvY2tzCi1jb25maWd1cmU6NDUxNDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NDUyMDogJD8gPSAwCi1jb25maWd1cmU6NDUyNDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NDUyNzogJD8gPSAwCi1jb25maWd1cmU6NDUzMDogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NDUzMzogJD8gPSAwCi1jb25maWd1cmU6NDU5MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo0NjAwOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYWNsY250Ci1jb25maWd1cmU6NDYyMzogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9hY2xjbnQnCi1jb25maWd1cmU6NDYyOTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoYWNfYWdnci5zdF9hY2xjbnQpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjQ2Njc6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfYWNsY250JwotY29uZmlndXJlOjQ2NzM6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLXwgaWYgKHNpemVvZiBhY19hZ2dyLnN0X2FjbGNudCkKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDY5OTogcmVzdWx0OiBubwotY29uZmlndXJlOjQ3MDk6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9mbGFncwotY29uZmlndXJlOjQ3MzI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfZmxhZ3MnCi1jb25maWd1cmU6NDczODogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoYWNfYWdnci5zdF9mbGFncykKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDc3NjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9mbGFncycKLWNvbmZpZ3VyZTo0NzgyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci18IGlmIChzaXplb2YgYWNfYWdnci5zdF9mbGFncykKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDgwODogcmVzdWx0OiBubwotY29uZmlndXJlOjQ4MTg6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9mc3R5cGUKLWNvbmZpZ3VyZTo0ODQxOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2ZzdHlwZScKLWNvbmZpZ3VyZTo0ODQ3OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci18IGlmIChhY19hZ2dyLnN0X2ZzdHlwZSkKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NDg4NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9mc3R5cGUnCi1jb25maWd1cmU6NDg5MTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZnN0eXBlKQotfCByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo0OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NDkyNzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2dlbgotY29uZmlndXJlOjQ5NTA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfZ2VuJwotY29uZmlndXJlOjQ5NTY6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLXwgaWYgKGFjX2FnZ3Iuc3RfZ2VuKQotfCByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo0OTk0OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2dlbicKLWNvbmZpZ3VyZTo1MDAwOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci18IGlmIChzaXplb2YgYWNfYWdnci5zdF9nZW4pCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjUwMjY6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo1MDM2OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfbGV2ZWwKLWNvbmZpZ3VyZTo1MDU5OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2xldmVsJwotY29uZmlndXJlOjUwNjU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLXwgaWYgKGFjX2FnZ3Iuc3RfbGV2ZWwpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjUxMDM6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfbGV2ZWwnCi1jb25maWd1cmU6NTEwOTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfbGV2ZWwpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjUxMzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo1MTQ1OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfcmRldgotY29uZmlndXJlOjUxNjg6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjUxNzQ6ICQ/ID0gMAotY29uZmlndXJlOjUxNzg6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjUxODE6ICQ/ID0gMAotY29uZmlndXJlOjUxODQ6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjUxODc6ICQ/ID0gMAotY29uZmlndXJlOjUyNDQ6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NTI1NTogY2hlY2tpbmcgZm9yIHN0YXQ2NCBpbiAoYXNtfHN5cykvc3RhdC5oCi1jb25maWd1cmU6NTI4MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NTI4NzogJD8gPSAwCi1jb25maWd1cmU6NTI5MTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NTI5NDogJD8gPSAwCi1jb25maWd1cmU6NTI5NzogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NTMwMDogJD8gPSAwCi1jb25maWd1cmU6NTMxMjogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo1MzI0OiBjaGVja2luZyByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMKLWNvbmZpZ3VyZTo1MzU1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo1MzYxOiAkPyA9IDAKLWNvbmZpZ3VyZTo1MzY1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo1MzY4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1MzcxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo1Mzc0OiAkPyA9IDAKLWNvbmZpZ3VyZTo1Mzg1OiByZXN1bHQ6IHZvaWQKLWNvbmZpZ3VyZTo1MzkzOiBjaGVja2luZyBmb3IgdWlkX3QgaW4gc3lzL3R5cGVzLmgKLWNvbmZpZ3VyZTo1NDE2OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjU0MzE6IGNoZWNraW5nIGZvciBtb2RlX3QKLWNvbmZpZ3VyZTo1NDU1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo1NDYxOiAkPyA9IDAKLWNvbmZpZ3VyZTo1NDY1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo1NDY4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NDcxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo1NDc0OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NDg1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjU0OTc6IGNoZWNraW5nIHR5cGUgb2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0Z3JvdXBzCi1jb25maWd1cmU6NTUzNTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NTA6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKLWNvbmZpZ3VyZTo1NTM4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NTQwOiAuL2NvbmZ0ZXN0Ci1jb25maWd1cmU6NTU0MzogJD8gPSAwCi1jb25maWd1cmU6NTU3NjogcmVzdWx0OiBnaWRfdAotY29uZmlndXJlOjU1ODQ6IGNoZWNraW5nIHdoZXRoZXIgc3lzL3R5cGVzLmggZGVmaW5lcyBtYWtlZGV2Ci1jb25maWd1cmU6NTYwNTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo1NjExOiAkPyA9IDAKLWNvbmZpZ3VyZTo1NjE1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo1NjE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo1NjIxOiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NTYyNDogJD8gPSAwCi1jb25maWd1cmU6NTYzNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo1OTM4OiBjaGVja2luZyBmb3Igc2lnX2F0b21pY190Ci1jb25maWd1cmU6NTk2MzogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NTk2OTogJD8gPSAwCi1jb25maWd1cmU6NTk3MzogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NTk3NjogJD8gPSAwCi1jb25maWd1cmU6NTk3OTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NTk4MjogJD8gPSAwCi1jb25maWd1cmU6NTk5MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MDAzOiBjaGVja2luZyBmb3Igc2lnaW5mb190Ci1jb25maWd1cmU6NjAyODogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjAzNDogJD8gPSAwCi1jb25maWd1cmU6NjAzODogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjA0MTogJD8gPSAwCi1jb25maWd1cmU6NjA0NDogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjA0NzogJD8gPSAwCi1jb25maWd1cmU6NjA1ODogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MDY5OiBjaGVja2luZyBmb3Igc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkCi1jb25maWd1cmU6NjA5NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjEwMTogJD8gPSAwCi1jb25maWd1cmU6NjEwNTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjEwODogJD8gPSAwCi1jb25maWd1cmU6NjExMTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjExNDogJD8gPSAwCi1jb25maWd1cmU6NjE3NDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MTg1OiBjaGVja2luZyBmb3IgbG9uZyBsb25nCi1jb25maWd1cmU6NjIwOTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjIxNTogJD8gPSAwCi1jb25maWd1cmU6NjIxOTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjIyMjogJD8gPSAwCi1jb25maWd1cmU6NjIyNTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjIyODogJD8gPSAwCi1jb25maWd1cmU6NjIzOTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2MjUwOiBjaGVja2luZyBmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcKLWNvbmZpZ3VyZTo2MjgwOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjYyODM6ICQ/ID0gMAotY29uZmlndXJlOjYyODU6IC4vY29uZnRlc3QKLWNvbmZpZ3VyZTo2Mjg4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2MzAzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjYzMTQ6IGNoZWNraW5nIGZvciBsb25nIGxvbmcgb2ZmX3QKLWNvbmZpZ3VyZTo2MzQwOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjYzNDM6ICQ/ID0gMAotY29uZmlndXJlOjYzNDU6IC4vY29uZnRlc3QKLWNvbmZpZ3VyZTo2MzQ4OiAkPyA9IDEKLWNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18IG1haW4gKCkgewotfCAJaWYgKHNpemVvZiAob2ZmX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotfCAJICAgIHNpemVvZiAob2ZmX3QpID4gc2l6ZW9mIChsb25nKSkKLXwgCSAgICByZXR1cm4gMDsKLXwgCXJldHVybiAxOwotfCB9Ci18IAotY29uZmlndXJlOjYzNjM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Mzc0OiBjaGVja2luZyBmb3IgbG9uZyBsb25nIHJsaW1fdAotY29uZmlndXJlOjY0MDI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6NjQwNTogJD8gPSAwCi1jb25maWd1cmU6NjQwNzogLi9jb25mdGVzdAotY29uZmlndXJlOjY0MTA6ICQ/ID0gMQotY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci18ICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLXwgbWFpbiAoKSB7Ci18IAlpZiAoc2l6ZW9mIChybGltX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgotfCAJICAgIHNpemVvZiAocmxpbV90KSA+IHNpemVvZiAobG9uZykpCi18IAkgICAgcmV0dXJuIDA7Ci18IAlyZXR1cm4gMTsKLXwgfQotfCAKLWNvbmZpZ3VyZTo2NDI1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjQzNjogY2hlY2tpbmcgZm9yIHN0cnVjdCBvcHRoZHIKLWNvbmZpZ3VyZTo2NDYxOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NDM6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IG9wdGhkcicgCi1jb25maWd1cmU6NjQ2NzogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IGlmICgoc3RydWN0IG9wdGhkciAqKSAwKQotfCAgIHJldHVybiAwOwotfCBpZiAoc2l6ZW9mIChzdHJ1Y3Qgb3B0aGRyKSkKLXwgICByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo2NDkxOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjUwMjogY2hlY2tpbmcgZm9yIHN0cnVjdCB0X29wdGhkcgotY29uZmlndXJlOjY1Mjc6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzozNjoyNDogZXJyb3I6IHN5cy90aXVzZXIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo0MzogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgdF9vcHRoZHInIAotY29uZmlndXJlOjY1MzM6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3RpdXNlci5oPgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBpZiAoKHN0cnVjdCB0X29wdGhkciAqKSAwKQotfCAgIHJldHVybiAwOwotfCBpZiAoc2l6ZW9mIChzdHJ1Y3QgdF9vcHRoZHIpKQotfCAgIHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjY1NTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3Igc2lnYWN0aW9uCi1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3Igc3RyZXJyb3IKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBzdHJzaWduYWwKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBwcmVhZAotY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25maWd1cmU6NjcxODogJD8gPSAwCi1jb25maWd1cmU6NjcyMjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjcyNTogJD8gPSAwCi1jb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAotY29uZmlndXJlOjY3MzE6ICQ/ID0gMAotY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIHN5c19zaWdsaXN0Ci1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgX3N5c19zaWdsaXN0Ci1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgZ2V0ZGVudHMKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotL3RtcC9jY0k0eWJVby5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Y29uZnRlc3QuYzooLnRleHQrMHgyMik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGdldGRlbnRzJwotL3RtcC9jY0k0eWJVby5vOiguZGF0YSsweDApOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRkZW50cycKLWNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCi1jb25maWd1cmU6NjcxODogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18IC8qIERlZmluZSBnZXRkZW50cyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldGRlbnRzLgotfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KLXwgI2RlZmluZSBnZXRkZW50cyBpbm5vY3VvdXNfZ2V0ZGVudHMKLXwgCi18IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLXwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZ2V0ZGVudHMgKCk7IGJlbG93LgotfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLXwgCi18ICNpZmRlZiBfX1NURENfXwotfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgotfCAjZWxzZQotfCAjIGluY2x1ZGUgPGFzc2VydC5oPgotfCAjZW5kaWYKLXwgCi18ICN1bmRlZiBnZXRkZW50cwotfCAKLXwgLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLXwgI2lmZGVmIF9fY3BsdXNwbHVzCi18IGV4dGVybiAiQyIKLXwgewotfCAjZW5kaWYKLXwgLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotfCBjaGFyIGdldGRlbnRzICgpOwotfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCi18ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi18ICNpZiBkZWZpbmVkIChfX3N0dWJfZ2V0ZGVudHMpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2dldGRlbnRzKQotfCBjaG9rZSBtZQotfCAjZWxzZQotfCBjaGFyICgqZikgKCkgPSBnZXRkZW50czsKLXwgI2VuZGlmCi18ICNpZmRlZiBfX2NwbHVzcGx1cwotfCB9Ci18ICNlbmRpZgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCByZXR1cm4gZiAhPSBnZXRkZW50czsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIG1jdGwKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotL3RtcC9jY09SWTRxdi5vOiBJbiBmdW5jdGlvbiBgbWFpbic6Y29uZnRlc3QuYzooLnRleHQrMHgyMik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1jdGwnCi0vdG1wL2NjT1JZNHF2Lm86KC5kYXRhKzB4MCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1jdGwnCi1jb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwotY29uZmlndXJlOjY3MTg6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAvKiBEZWZpbmUgbWN0bCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIG1jdGwuCi18ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwotfCAjZGVmaW5lIG1jdGwgaW5ub2N1b3VzX21jdGwKLXwgCi18IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLXwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbWN0bCAoKTsgYmVsb3cuCi18ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi18ICAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotfCAKLXwgI2lmZGVmIF9fU1REQ19fCi18ICMgaW5jbHVkZSA8bGltaXRzLmg+Ci18ICNlbHNlCi18ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci18ICNlbmRpZgotfCAKLXwgI3VuZGVmIG1jdGwKLXwgCi18IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi18ICNpZmRlZiBfX2NwbHVzcGx1cwotfCBleHRlcm4gIkMiCi18IHsKLXwgI2VuZGlmCi18IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKLXwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLXwgY2hhciBtY3RsICgpOwotfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCi18ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi18ICNpZiBkZWZpbmVkIChfX3N0dWJfbWN0bCkgfHwgZGVmaW5lZCAoX19zdHViX19fbWN0bCkKLXwgY2hva2UgbWUKLXwgI2Vsc2UKLXwgY2hhciAoKmYpICgpID0gbWN0bDsKLXwgI2VuZGlmCi18ICNpZmRlZiBfX2NwbHVzcGx1cwotfCB9Ci18ICNlbmRpZgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCByZXR1cm4gZiAhPSBtY3RsOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjY3NDM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgcHJjdGwKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBzZW5kbXNnCi1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgaW5ldF9udG9wCi1jb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Ci1jb25maWd1cmU6NjczMTogJD8gPSAwCi1jb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgaWZfaW5kZXh0b25hbWUKLWNvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQotY29uZmlndXJlOjY3MTg6ICQ/ID0gMAotY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY3MjU6ICQ/ID0gMAotY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKLWNvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9yZWcuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9yZWcuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9yZWcuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2ZpbGlvLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgxOjIzOiBlcnJvcjogc3lzL2ZpbGlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2ZpbGlvLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9maWxpby5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25mdGVzdC5jOjQ3OjIzOiBlcnJvcjogc3lzL2ZpbGlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvZmlsaW8uaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9maWxpby5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9hY2wuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6ODE6MjE6IGVycm9yOiBzeXMvYWNsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2FjbC5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvYWNsLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NDc6MjE6IGVycm9yOiBzeXMvYWNsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvYWNsLmg+Ci1jb25maWd1cmU6Njg3NTogcmVzdWx0OiBubwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvYWNsLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2FzeW5jaC5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MToyNDogZXJyb3I6IHN5cy9hc3luY2guaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvYXN5bmNoLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9hc3luY2guaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0NzoyNDogZXJyb3I6IHN5cy9hc3luY2guaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN5cy9hc3luY2guaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9hc3luY2guaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvZG9vci5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MToyMjogZXJyb3I6IHN5cy9kb29yLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2Rvb3IuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2Rvb3IuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0NzoyMjogZXJyb3I6IHN5cy9kb29yLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvZG9vci5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL2Rvb3IuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzdHJvcHRzLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzdHJvcHRzLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzdHJvcHRzLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9jb25mLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgyOjIyOiBlcnJvcjogc3lzL2NvbmYuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2NvbmYuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2NvbmYuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0ODoyMjogZXJyb3I6IHN5cy9jb25mLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL2NvbmYuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9jb25mLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL3N0cmVhbS5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MjoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvc3RyZWFtLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NDg6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL3N0cmVhbS5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy90aWhkci5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo4MjoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3RpaGRyLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NDg6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy90aWhkci5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy90aXVzZXIuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6ODI6MjQ6IGVycm9yOiBzeXMvdGl1c2VyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3RpdXNlci5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25mdGVzdC5jOjQ4OjI0OiBlcnJvcjogc3lzL3RpdXNlci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6Njg1NTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy90aXVzZXIuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvc3lzY29uZmlnLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgyOjI3OiBlcnJvcjogc3lzL3N5c2NvbmZpZy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvc3lzY29uZmlnLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9zeXNjb25maWcuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0ODoyNzogZXJyb3I6IHN5cy9zeXNjb25maWcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc3lzY29uZmlnLmg+Ci1jb25maWd1cmU6Njg3NTogcmVzdWx0OiBubwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvc3lzY29uZmlnLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgaW9jdGxzLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjgyOjIwOiBlcnJvcjogaW9jdGxzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgI2luY2x1ZGUgPGlvY3Rscy5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBpb2N0bHMuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo0ODoyMDogZXJyb3I6IGlvY3Rscy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6Njg1NTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGlvY3Rscy5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgaW9jdGxzLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2lvY3RsLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvaW9jdGwuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9pb2N0bC5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvcHRyYWNlLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvcHRyYWNlLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvcHRyYWNlLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHRlcm1pby5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgdGVybWlvLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciB0ZXJtaW8uaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgbGludXgvcHRyYWNlLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBsaW51eC9wdHJhY2UuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGxpbnV4L3B0cmFjZS5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBhc20vcmVnLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjg2OjIxOiBlcnJvcjogYXNtL3JlZy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8YXNtL3JlZy5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBhc20vcmVnLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NTI6MjE6IGVycm9yOiBhc20vcmVnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPGFzbS9yZWcuaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGFzbS9yZWcuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvdWlvLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvdWlvLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvdWlvLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9haW8uaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6ODc6MjE6IGVycm9yOiBzeXMvYWlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAotfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1lTX1NUQVRfSAotfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci18ICNlbmRpZgotfCAjaWYgU1REQ19IRUFERVJTCi18ICMgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgaW5jbHVkZSA8c3RkZGVmLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERMSUJfSAotfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HX0gKLXwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLXwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Ci18ICMgZW5kaWYKLXwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR1NfSAotfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX0lOVFRZUEVTX0gKLXwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RESU5UX0gKLXwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1VOSVNURF9ICi18ICMgaW5jbHVkZSA8dW5pc3RkLmg+Ci18ICNlbmRpZgotfCAjaW5jbHVkZSA8c3lzL2Fpby5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvYWlvLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZ0ZXN0LmM6NTM6MjE6IGVycm9yOiBzeXMvYWlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvYWlvLmg+Ci1jb25maWd1cmU6Njg3NTogcmVzdWx0OiBubwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvYWlvLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgcG9sbC5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgcG9sbC5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25maWd1cmU6Njg1NTogJD8gPSAwCi1jb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgcG9sbC5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvcG9sbC5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3BvbGwuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9wb2xsLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy92ZnMuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy92ZnMuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy92ZnMuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgYXNtL3N5c21pcHMuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6OTA6MjU6IGVycm9yOiBhc20vc3lzbWlwcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6NjgxMjogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxhc20vc3lzbWlwcy5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBhc20vc3lzbWlwcy5oIHByZXNlbmNlCi1jb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCi1jb25mdGVzdC5jOjU2OjI1OiBlcnJvcjogYXNtL3N5c21pcHMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxhc20vc3lzbWlwcy5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgYXNtL3N5c21pcHMuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBsaW51eC91dHNuYW1lLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBsaW51eC91dHNuYW1lLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBsaW51eC91dHNuYW1lLmgKLWNvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9uc2NzeXMuaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6OTE6MjQ6IGVycm9yOiBzeXMvbnNjc3lzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN0ZGlvLmg+Ci18ICNpZiBIQVZFX1NZU19UWVBFU19ICi18ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TWVNfU1RBVF9ICi18ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KLXwgI2VuZGlmCi18ICNpZiBTVERDX0hFQURFUlMKLXwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KLXwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURExJQl9ICi18ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdfSAotfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAotfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KLXwgIyBlbmRpZgotfCAjIGluY2x1ZGUgPHN0cmluZy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfU1RSSU5HU19ICi18ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfSU5UVFlQRVNfSAotfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci18ICNlbHNlCi18ICMgaWYgSEFWRV9TVERJTlRfSAotfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KLXwgIyBlbmRpZgotfCAjZW5kaWYKLXwgI2lmIEhBVkVfVU5JU1REX0gKLXwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KLXwgI2VuZGlmCi18ICNpbmNsdWRlIDxzeXMvbnNjc3lzLmg+Ci1jb25maWd1cmU6NjgzNTogcmVzdWx0OiBubwotY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9uc2NzeXMuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo1NzoyNDogZXJyb3I6IHN5cy9uc2NzeXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4NTU6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL25zY3N5cy5oPgotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL25zY3N5cy5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIG1xdWV1ZS5oIHVzYWJpbGl0eQotY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMAotY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY4MTk6ICQ/ID0gMAotY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY4MjU6ICQ/ID0gMAotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjgzOTogY2hlY2tpbmcgbXF1ZXVlLmggcHJlc2VuY2UKLWNvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKLWNvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBtcXVldWUuaAotY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2Vwb2xsLmggdXNhYmlsaXR5Ci1jb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NjgxMjogJD8gPSAwCi1jb25maWd1cmU6NjgxNjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NjgxOTogJD8gPSAwCi1jb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NjgyNTogJD8gPSAwCi1jb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvZXBvbGwuaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZmlndXJlOjY4NTU6ICQ/ID0gMAotY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9lcG9sbC5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBsaWJhaW8uaCB1c2FiaWxpdHkKLWNvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6OTM6MjA6IGVycm9yOiBsaWJhaW8uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZmlndXJlOjY4MTI6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3RkaW8uaD4KLXwgI2lmIEhBVkVfU1lTX1RZUEVTX0gKLXwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NZU19TVEFUX0gKLXwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotfCAjZW5kaWYKLXwgI2lmIFNURENfSEVBREVSUwotfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgotfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgotfCAjZWxzZQotfCAjIGlmIEhBVkVfU1RETElCX0gKLXwgIyAgaW5jbHVkZSA8c3RkbGliLmg+Ci18ICMgZW5kaWYKLXwgI2VuZGlmCi18ICNpZiBIQVZFX1NUUklOR19ICi18ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICi18ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgotfCAjIGVuZGlmCi18ICMgaW5jbHVkZSA8c3RyaW5nLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9TVFJJTkdTX0gKLXwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Ci18ICNlbmRpZgotfCAjaWYgSEFWRV9JTlRUWVBFU19ICi18ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KLXwgI2Vsc2UKLXwgIyBpZiBIQVZFX1NURElOVF9ICi18ICMgIGluY2x1ZGUgPHN0ZGludC5oPgotfCAjIGVuZGlmCi18ICNlbmRpZgotfCAjaWYgSEFWRV9VTklTVERfSAotfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgotfCAjZW5kaWYKLXwgI2luY2x1ZGUgPGxpYmFpby5oPgotY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBsaWJhaW8uaCBwcmVzZW5jZQotY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYwotY29uZnRlc3QuYzo1OToyMDogZXJyb3I6IGxpYmFpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25maWd1cmU6Njg1NTogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxsaWJhaW8uaD4KLWNvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGxpYmFpby5oCi1jb25maWd1cmU6NjkxNzogcmVzdWx0OiBubwotY29uZmlndXJlOjY5Mzc6IGNoZWNraW5nIGZvciBsaW51eC9pY21wLmgKLWNvbmZpZ3VyZTo2OTUyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo2OTU4OiAkPyA9IDAKLWNvbmZpZ3VyZTo2OTYyOiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo2OTY1OiAkPyA9IDAKLWNvbmZpZ3VyZTo2OTY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo2OTcxOiAkPyA9IDAKLWNvbmZpZ3VyZTo2OTgyOiByZXN1bHQ6IHllcwotY29uZmlndXJlOjY5Mzc6IGNoZWNraW5nIGZvciBsaW51eC9pbjYuaAotY29uZmlndXJlOjY5NTI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY5NTg6ICQ/ID0gMAotY29uZmlndXJlOjY5NjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY5NjU6ICQ/ID0gMAotY29uZmlndXJlOjY5Njg6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY5NzE6ICQ/ID0gMAotY29uZmlndXJlOjY5ODI6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkzNzogY2hlY2tpbmcgZm9yIGxpbnV4L25ldGxpbmsuaAotY29uZmlndXJlOjY5NTI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjY5NTg6ICQ/ID0gMAotY29uZmlndXJlOjY5NjI6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjY5NjU6ICQ/ID0gMAotY29uZmlndXJlOjY5Njg6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjY5NzE6ICQ/ID0gMAotY29uZmlndXJlOjY5ODI6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NjkzNzogY2hlY2tpbmcgZm9yIGxpbnV4L2lmX3BhY2tldC5oCi1jb25maWd1cmU6Njk1MjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6Njk1ODogJD8gPSAwCi1jb25maWd1cmU6Njk2MjogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Njk2NTogJD8gPSAwCi1jb25maWd1cmU6Njk2ODogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6Njk3MTogJD8gPSAwCi1jb25maWd1cmU6Njk4MjogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo2OTk3OiBjaGVja2luZyBmb3IgYXNtL3NpZ2NvbnRleHQuaAotY29uZmlndXJlOjcwMTM6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjcwMTk6ICQ/ID0gMAotY29uZmlndXJlOjcwMjM6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjcwMjY6ICQ/ID0gMAotY29uZmlndXJlOjcwMjk6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjcwMzI6ICQ/ID0gMAotY29uZmlndXJlOjcwNDM6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NzA1OTogY2hlY2tpbmcgZm9yIG5ldGluZXQvdGNwLmgKLWNvbmZpZ3VyZTo3MDc1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo3MDgxOiAkPyA9IDAKLWNvbmZpZ3VyZTo3MDg1OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo3MDg4OiAkPyA9IDAKLWNvbmZpZ3VyZTo3MDkxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo3MDk0OiAkPyA9IDAKLWNvbmZpZ3VyZTo3MTA1OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjcwNTk6IGNoZWNraW5nIGZvciBuZXRpbmV0L3VkcC5oCi1jb25maWd1cmU6NzA3NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6NzA4MTogJD8gPSAwCi1jb25maWd1cmU6NzA4NTogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6NzA4ODogJD8gPSAwCi1jb25maWd1cmU6NzA5MTogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6NzA5NDogJD8gPSAwCi1jb25maWd1cmU6NzEwNTogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo3MTE3OiBjaGVja2luZyBmb3IgTVAgcHJvY2ZzCi1jb25maWd1cmU6NzE3OTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6Nzg6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ3BzdGF0dXMnIGlzbid0IGtub3duCi1jb25mdGVzdC5jOjgyOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCi1jb25mdGVzdC5jOjkwOiBlcnJvcjogJ1BDU1RPUCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCi1jb25mdGVzdC5jOjkwOiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQotY29uZnRlc3QuYzo5MDogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQotY29uZnRlc3QuYzo5Njogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0JwotY29uZmlndXJlOjcxODI6ICQ/ID0gMQotY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaW5jbHVkZSA8c2lnbmFsLmg+Ci18ICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci18IAotfCBtYWluKCkKLXwgewotfCAJaW50IHBpZDsKLXwgCWNoYXIgcHJvY1szMl07Ci18IAlGSUxFICpjdGw7Ci18IAlGSUxFICpzdGF0dXM7Ci18IAlpbnQgY21kOwotfCAJc3RydWN0IHBzdGF0dXMgcHN0YXR1czsKLXwgCi18IAlpZiAoKHBpZCA9IGZvcmsoKSkgPT0gMCkgewotfCAJCXBhdXNlKCk7Ci18IAkJZXhpdCgwKTsKLXwgCX0KLXwgCXNwcmludGYocHJvYywgIi9wcm9jLyVkL2N0bCIsIHBpZCk7Ci18IAlpZiAoKGN0bCA9IGZvcGVuKHByb2MsICJ3IikpID09IE5VTEwpCi18IAkJZ290byBmYWlsOwotfCAJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKLXwgCWlmICgoc3RhdHVzID0gZm9wZW4gKHByb2MsICJyIikpID09IE5VTEwpCi18IAkJZ290byBmYWlsOwotfCAJY21kID0gUENTVE9QOwotfCAJaWYgKHdyaXRlIChmaWxlbm8gKGN0bCksICZjbWQsIHNpemVvZiBjbWQpIDwgMCkKLXwgCQlnb3RvIGZhaWw7Ci18IAlpZiAocmVhZCAoZmlsZW5vIChzdGF0dXMpLCAmcHN0YXR1cywgc2l6ZW9mIHBzdGF0dXMpIDwgMCkKLXwgCQlnb3RvIGZhaWw7Ci18IAlraWxsKHBpZCwgU0lHS0lMTCk7Ci18IAlleGl0KDApOwotfCBmYWlsOgotfCAJa2lsbChwaWQsIFNJR0tJTEwpOwotfCAJZXhpdCgxKTsKLXwgfQotfCAKLWNvbmZpZ3VyZTo3MjAyOiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NzIxMzogY2hlY2tpbmcgZm9yIHBvbGxhYmxlIHByb2NmcwotY29uZmlndXJlOjcyOTA6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjk3OiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCi1jb25mdGVzdC5jOjEwMjogZXJyb3I6ICdQSU9DU1RPUCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCi1jb25mdGVzdC5jOjEwMjogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKLWNvbmZ0ZXN0LmM6MTAyOiBlcnJvcjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pCi1jb25mdGVzdC5jOjExMTogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0JwotY29uZmlndXJlOjcyOTM6ICQ/ID0gMQotY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNpbmNsdWRlIDxzdGRpby5oPgotfCAjaW5jbHVkZSA8c2lnbmFsLmg+Ci18ICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+Ci18ICNpbmNsdWRlIDxzeXMvc3Ryb3B0cy5oPgotfCAjaW5jbHVkZSA8cG9sbC5oPgotfCAKLXwgI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCi18ICNkZWZpbmUgUElPQ1NUT1AJUENTVE9QCi18ICNkZWZpbmUgUE9MTFdBTlQJUE9MTFdSTk9STQotfCAjZGVmaW5lIFBST0MJCSIvcHJvYy8lZC9jdGwiCi18ICNkZWZpbmUgUFJPQ19NT0RFCSJ3IgotfCBpbnQgSU9DVEwgKGludCBmZCwgaW50IGNtZCwgaW50IGFyZykgewotfCAJcmV0dXJuIHdyaXRlIChmZCwgJmNtZCwgc2l6ZW9mIGNtZCk7Ci18IH0KLXwgI2Vsc2UKLXwgI2RlZmluZSBQT0xMV0FOVAlQT0xMUFJJCi18ICNkZWZpbmUJUFJPQwkJIi9wcm9jLyVkIgotfCAjZGVmaW5lIFBST0NfTU9ERQkicisiCi18ICNkZWZpbmUgSU9DVEwJCWlvY3RsCi18ICNlbmRpZgotfCAKLXwgbWFpbigpCi18IHsKLXwgCWludCBwaWQ7Ci18IAljaGFyIHByb2NbMzJdOwotfCAJRklMRSAqcGZwOwotfCAJc3RydWN0IHBvbGxmZCBwZmQ7Ci18IAotfCAJaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKLXwgCQlwYXVzZSgpOwotfCAJCWV4aXQoMCk7Ci18IAl9Ci18IAlzcHJpbnRmKHByb2MsIFBST0MsIHBpZCk7Ci18IAlpZiAoKHBmcCA9IGZvcGVuKHByb2MsIFBST0NfTU9ERSkpID09IE5VTEwpCi18IAkJZ290byBmYWlsOwotfCAJaWYgKElPQ1RMKGZpbGVubyhwZnApLCBQSU9DU1RPUCwgTlVMTCkgPCAwKQotfCAJCWdvdG8gZmFpbDsKLXwgCXBmZC5mZCA9IGZpbGVubyhwZnApOwotfCAJcGZkLmV2ZW50cyA9IFBPTExXQU5UOwotfCAJaWYgKHBvbGwoJnBmZCwgMSwgMCkgPCAwKQotfCAJCWdvdG8gZmFpbDsKLXwgCWlmICghKHBmZC5yZXZlbnRzICYgUE9MTFdBTlQpKQotfCAJCWdvdG8gZmFpbDsKLXwgCWtpbGwocGlkLCBTSUdLSUxMKTsKLXwgCWV4aXQoMCk7Ci18IGZhaWw6Ci18IAlraWxsKHBpZCwgU0lHS0lMTCk7Ci18IAlleGl0KDEpOwotfCB9Ci18IAotY29uZmlndXJlOjczMTM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3MzI1OiBjaGVja2luZyBmb3Igc3RydWN0IG1zZ2hkci5tc2dfY29udHJvbAotY29uZmlndXJlOjczNDk6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjczNTU6ICQ/ID0gMAotY29uZmlndXJlOjczNTk6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjczNjI6ICQ/ID0gMAotY29uZmlndXJlOjczNjU6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjczNjg6ICQ/ID0gMAotY29uZmlndXJlOjc0MjY6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6NzQzNzogY2hlY2tpbmcgZm9yIHByX3N5c2NhbGwgaW4gc3RydWN0IHByc3RhdHVzCi1jb25maWd1cmU6NzQ2NDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjc2OiBlcnJvcjogJ3Byc3RhdHVzX3QnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3ByX3N5c2NhbGwnCi1jb25maWd1cmU6NzQ3MDogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18ICNpZmRlZiBIQVZFX01QX1BST0NGUwotfCBwc3RhdHVzX3QgczsKLXwgcy5wcl9sd3AucHJfc3lzY2FsbAotfCAjZWxzZQotfCBwcnN0YXR1c190IHM7Ci18IHMucHJfc3lzY2FsbAotfCAjZW5kaWYKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo3NDk1OiByZXN1bHQ6IG5vCi1jb25maWd1cmU6NzUwNzogY2hlY2tpbmcgZm9yIHN0cnVjdCBUX2Nvbm5fcmVzLlFVRVVFX3B0cgotY29uZmlndXJlOjc1MzI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo2NzoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzo2ODoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgotY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KLWNvbmZpZ3VyZTo3NTM4OiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi18ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKLXwgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Ci18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLXwgCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Ci18IGlmIChhY19hZ2dyLlFVRVVFX3B0cikKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NzU3ODogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25mdGVzdC5jOjY3OjI0OiBlcnJvcjogc3lzL3N0cmVhbS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25mdGVzdC5jOjY4OjIzOiBlcnJvcjogc3lzL3RpaGRyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCi1jb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgotY29uZmlndXJlOjc1ODQ6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi18IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLXwgI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KLXwgI2luY2x1ZGUgPHN5cy90aWhkci5oPgotfCAKLXwgaW50Ci18IG1haW4gKCkKLXwgewotfCBzdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKLXwgaWYgKHNpemVvZiBhY19hZ2dyLlFVRVVFX3B0cikKLXwgcmV0dXJuIDA7Ci18ICAgOwotfCAgIHJldHVybiAwOwotfCB9Ci1jb25maWd1cmU6NzYxMDogcmVzdWx0OiBubwotY29uZmlndXJlOjc2MjA6IGNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZAotY29uZmlndXJlOjc2NDU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZnRlc3QuYzo2NzoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzo2ODoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci1jb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Ci1jb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgotY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KLWNvbmZpZ3VyZTo3NjUxOiAkPyA9IDEKLWNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgotfCAvKiBjb25mZGVmcy5oLiAgKi8KLXwgCi18ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi18ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCi18ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKLXwgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi18ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIExJTlVYIDEKLXwgI2RlZmluZSBBUk0gMQotfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKLXwgI2RlZmluZSBTVERDX0hFQURFUlMgMQotfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi18ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQotfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLXwgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi18ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCi18ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLXwgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi18ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKLXwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCi18ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQotfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKLXwgI2RlZmluZSBIQVZFX1BSRUFEIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9QUkNUTCAxCi18ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKLXwgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCi18ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCi18ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKLXwgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Ci18ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLXwgCi18IGludAotfCBtYWluICgpCi18IHsKLXwgc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Ci18IGlmIChhY19hZ2dyLkFDQ0VQVE9SX2lkKQotfCByZXR1cm4gMDsKLXwgICA7Ci18ICAgcmV0dXJuIDA7Ci18IH0KLWNvbmZpZ3VyZTo3NjkxOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6Njc6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKLWNvbmZ0ZXN0LmM6Njg6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQotY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgotY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KLWNvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCi1jb25maWd1cmU6NzY5NzogJD8gPSAxCi1jb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKLXwgLyogY29uZmRlZnMuaC4gICovCi18IAotfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgotfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgotfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi18ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgotfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBMSU5VWCAxCi18ICNkZWZpbmUgQVJNIDEKLXwgI2RlZmluZSBfR05VX1NPVVJDRSAxCi18ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKLXwgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQotfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLXwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCi18ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQotfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAotfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Ci18ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi18ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKLXwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLXwgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCi18ICNkZWZpbmUgSEFWRV9QUkVBRCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCi18ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQotfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCi18ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKLXwgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLXwgI2RlZmluZSBIQVZFX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCi18ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQotfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKLXwgLyogZW5kIGNvbmZkZWZzLmguICAqLwotfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotfCAjaW5jbHVkZSA8c3lzL3RpaGRyLmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IHN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOwotfCBpZiAoc2l6ZW9mIGFjX2FnZ3IuQUNDRVBUT1JfaWQpCi18IHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjc3MjM6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3NzM1OiBjaGVja2luZyBmb3Igc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0Ci1jb25maWd1cmU6Nzc2MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Ci1jb25maWd1cmU6Nzc2NjogJD8gPSAwCi1jb25maWd1cmU6Nzc3MDogdGVzdCAteiAKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi1jb25maWd1cmU6Nzc3MzogJD8gPSAwCi1jb25maWd1cmU6Nzc3NjogdGVzdCAtcyBjb25mdGVzdC5vCi1jb25maWd1cmU6Nzc3OTogJD8gPSAwCi1jb25maWd1cmU6Nzc5MDogcmVzdWx0OiB5ZXMKLWNvbmZpZ3VyZTo3ODAyOiBjaGVja2luZyBmb3Igc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MKLWNvbmZpZ3VyZTo3ODI3OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NzU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MnIAotY29uZmlndXJlOjc4MzM6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IGlmICgoc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MgKikgMCkKLXwgICByZXR1cm4gMDsKLXwgaWYgKHNpemVvZiAoc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MpKQotfCAgIHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjc4NTc6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3ODY3OiBjaGVja2luZyBmb3Igc3RydWN0IGlhNjRfZnByZWcKLWNvbmZpZ3VyZTo3ODkyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKLWNvbmZ0ZXN0LmM6NzU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGlhNjRfZnByZWcnIAotY29uZmlndXJlOjc4OTg6ICQ/ID0gMQotY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Ci18IC8qIGNvbmZkZWZzLmguICAqLwotfCAKLXwgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKLXwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLXwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgotfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKLXwgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCi18ICNkZWZpbmUgTElOVVggMQotfCAjZGVmaW5lIEFSTSAxCi18ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQotfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCi18ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLXwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKLXwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCi18ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKLXwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKLXwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLXwgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKLXwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLXwgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAotfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKLXwgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQotfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLXwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi18ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi18ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQotfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQotfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLXwgI2RlZmluZSBIQVZFX1BSQ1RMIDEKLXwgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKLXwgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLXwgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCi18ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCi18ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQotfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi18ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKLXwgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKLXwgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLXwgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCi18ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCi18ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKLXwgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQotfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCi18ICNkZWZpbmUgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgMQotfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCi18ICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci18IAotfCBpbnQKLXwgbWFpbiAoKQotfCB7Ci18IGlmICgoc3RydWN0IGlhNjRfZnByZWcgKikgMCkKLXwgICByZXR1cm4gMDsKLXwgaWYgKHNpemVvZiAoc3RydWN0IGlhNjRfZnByZWcpKQotfCAgIHJldHVybiAwOwotfCAgIDsKLXwgICByZXR1cm4gMDsKLXwgfQotY29uZmlndXJlOjc5MjI6IHJlc3VsdDogbm8KLWNvbmZpZ3VyZTo3OTM0OiBjaGVja2luZyBmb3Igc3RydWN0IHVzZXJfZGVzYwotY29uZmlndXJlOjc5NTk6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjc5NjU6ICQ/ID0gMAotY29uZmlndXJlOjc5Njk6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjc5NzI6ICQ/ID0gMAotY29uZmlndXJlOjc5NzU6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjc5Nzg6ICQ/ID0gMAotY29uZmlndXJlOjc5ODk6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6ODAwMTogY2hlY2tpbmcgd2hldGhlciBzeXNfZXJybGlzdCBpcyBkZWNsYXJlZAotY29uZmlndXJlOjgwMjU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjgwMzE6ICQ/ID0gMAotY29uZmlndXJlOjgwMzU6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjgwMzg6ICQ/ID0gMAotY29uZmlndXJlOjgwNDE6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjgwNDQ6ICQ/ID0gMAotY29uZmlndXJlOjgwNTU6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6ODA3MzogY2hlY2tpbmcgd2hldGhlciBzeXNfc2lnbGlzdCBpcyBkZWNsYXJlZAotY29uZmlndXJlOjgwOTg6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQotY29uZmlndXJlOjgxMDQ6ICQ/ID0gMAotY29uZmlndXJlOjgxMDg6IHRlc3QgLXogCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotY29uZmlndXJlOjgxMTE6ICQ/ID0gMAotY29uZmlndXJlOjgxMTQ6IHRlc3QgLXMgY29uZnRlc3QubwotY29uZmlndXJlOjgxMTc6ICQ/ID0gMAotY29uZmlndXJlOjgxMjg6IHJlc3VsdDogeWVzCi1jb25maWd1cmU6ODE0NDogY2hlY2tpbmcgd2hldGhlciBfc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQKLWNvbmZpZ3VyZTo4MTY5OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKLWNvbmZpZ3VyZTo4MTc1OiAkPyA9IDAKLWNvbmZpZ3VyZTo4MTc5OiB0ZXN0IC16IAotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLWNvbmZpZ3VyZTo4MTgyOiAkPyA9IDAKLWNvbmZpZ3VyZTo4MTg1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KLWNvbmZpZ3VyZTo4MTg4OiAkPyA9IDAKLWNvbmZpZ3VyZTo4MTk5OiByZXN1bHQ6IHllcwotY29uZmlndXJlOjgyMjA6IGNoZWNraW5nIGZvciBwZXJsCi1jb25maWd1cmU6ODIzODogZm91bmQgL3Vzci9iaW4vcGVybAotY29uZmlndXJlOjgyNTA6IHJlc3VsdDogL3Vzci9iaW4vcGVybAotY29uZmlndXJlOjg0MTg6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwotCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBSdW5uaW5nIGNvbmZpZy5zdGF0dXMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0KLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyLCB3aGljaCB3YXMKLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwotCi0gIENPTkZJR19GSUxFUyAgICA9IAotICBDT05GSUdfSEVBREVSUyAgPSAKLSAgQ09ORklHX0xJTktTICAgID0gCi0gIENPTkZJR19DT01NQU5EUyA9IAotICAkIC4vY29uZmlnLnN0YXR1cyAKLQotb24gc2t5d3JpdGluZy5jb3JwLmdvb2dsZS5jb20KLQotY29uZmlnLnN0YXR1czo3MTY6IGNyZWF0aW5nIE1ha2VmaWxlCi1jb25maWcuc3RhdHVzOjgyMDogY3JlYXRpbmcgY29uZmlnLmgKLWNvbmZpZy5zdGF0dXM6MTIyNjogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIENhY2hlIHZhcmlhYmxlcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLQotYWNfY3ZfYnVpbGQ9YXJtLXVua25vd24tbGludXgtZ251Ci1hY19jdl9idWlsZF9hbGlhcz1hcm0tdW5rbm93bi1saW51eC1nbnUKLWFjX2N2X2NfY29tcGlsZXJfZ251PXllcwotYWNfY3ZfY19jb25zdD15ZXMKLWFjX2N2X2Vudl9DQ19zZXQ9Ci1hY19jdl9lbnZfQ0NfdmFsdWU9Ci1hY19jdl9lbnZfQ0ZMQUdTX3NldD1zZXQKLWFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9LUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLwotYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KLWFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KLWFjX2N2X2Vudl9DUFBfc2V0PQotYWNfY3ZfZW52X0NQUF92YWx1ZT0KLWFjX2N2X2Vudl9MREZMQUdTX3NldD0KLWFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPQotYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD1zZXQKLWFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT1hcm0tdW5rbm93bi1saW51eC1nbnUKLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0KLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPQotYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9Ci1hY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQotYWNfY3ZfZXhlZXh0PQotYWNfY3ZfZnVuY19fc3lzX3NpZ2xpc3Q9eWVzCi1hY19jdl9mdW5jX2dldGRlbnRzPW5vCi1hY19jdl9mdW5jX2lmX2luZGV4dG9uYW1lPXllcwotYWNfY3ZfZnVuY19pbmV0X250b3A9eWVzCi1hY19jdl9mdW5jX21jdGw9bm8KLWFjX2N2X2Z1bmNfcHJjdGw9eWVzCi1hY19jdl9mdW5jX3ByZWFkPXllcwotYWNfY3ZfZnVuY19zZW5kbXNnPXllcwotYWNfY3ZfZnVuY19zaWdhY3Rpb249eWVzCi1hY19jdl9mdW5jX3N0cmVycm9yPXllcwotYWNfY3ZfZnVuY19zdHJzaWduYWw9eWVzCi1hY19jdl9mdW5jX3N5c19zaWdsaXN0PXllcwotYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdD15ZXMKLWFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdD15ZXMKLWFjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdD15ZXMKLWFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9eWVzCi1hY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdD1ubwotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCi1hY19jdl9oZWFkZXJfYXNtX3JlZ19oPW5vCi1hY19jdl9oZWFkZXJfYXNtX3NpZ2NvbnRleHRfaD15ZXMKLWFjX2N2X2hlYWRlcl9hc21fc3lzbWlwc19oPW5vCi1hY19jdl9oZWFkZXJfZGlyZW50X2RpcmVudF9oPXllcwotYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCi1hY19jdl9oZWFkZXJfaW9jdGxzX2g9bm8KLWFjX2N2X2hlYWRlcl9saWJhaW9faD1ubwotYWNfY3ZfaGVhZGVyX2xpbnV4X2ljbXBfaD15ZXMKLWFjX2N2X2hlYWRlcl9saW51eF9pZl9wYWNrZXRfaD15ZXMKLWFjX2N2X2hlYWRlcl9saW51eF9pbjZfaD15ZXMKLWFjX2N2X2hlYWRlcl9saW51eF9uZXRsaW5rX2g9eWVzCi1hY19jdl9oZWFkZXJfbGludXhfcHRyYWNlX2g9eWVzCi1hY19jdl9oZWFkZXJfbGludXhfdXRzbmFtZV9oPXllcwotYWNfY3ZfaGVhZGVyX21lbW9yeV9oPXllcwotYWNfY3ZfaGVhZGVyX21xdWV1ZV9oPXllcwotYWNfY3ZfaGVhZGVyX25ldGluZXRfdGNwX2g9eWVzCi1hY19jdl9oZWFkZXJfbmV0aW5ldF91ZHBfaD15ZXMKLWFjX2N2X2hlYWRlcl9wb2xsX2g9eWVzCi1hY19jdl9oZWFkZXJfc3RhdF9icm9rZW49bm8KLWFjX2N2X2hlYWRlcl9zdGRjPXllcwotYWNfY3ZfaGVhZGVyX3N0ZGludF9oPXllcwotYWNfY3ZfaGVhZGVyX3N0ZGxpYl9oPXllcwotYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwotYWNfY3ZfaGVhZGVyX3N0cmluZ3NfaD15ZXMKLWFjX2N2X2hlYWRlcl9zdHJvcHRzX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX2FjbF9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX2Fpb19oPW5vCi1hY19jdl9oZWFkZXJfc3lzX2FzeW5jaF9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX2NvbmZfaD1ubwotYWNfY3ZfaGVhZGVyX3N5c19kb29yX2g9bm8KLWFjX2N2X2hlYWRlcl9zeXNfZXBvbGxfaD15ZXMKLWFjX2N2X2hlYWRlcl9zeXNfZmlsaW9faD1ubwotYWNfY3ZfaGVhZGVyX3N5c19pb2N0bF9oPXllcwotYWNfY3ZfaGVhZGVyX3N5c19uc2NzeXNfaD1ubwotYWNfY3ZfaGVhZGVyX3N5c19wb2xsX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX3B0cmFjZV9oPXllcwotYWNfY3ZfaGVhZGVyX3N5c19yZWdfaD15ZXMKLWFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPXllcwotYWNfY3ZfaGVhZGVyX3N5c19zdHJlYW1faD1ubwotYWNfY3ZfaGVhZGVyX3N5c19zeXNjb25maWdfaD1ubwotYWNfY3ZfaGVhZGVyX3N5c190aWhkcl9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX3RpdXNlcl9oPW5vCi1hY19jdl9oZWFkZXJfc3lzX3R5cGVzX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldj15ZXMKLWFjX2N2X2hlYWRlcl9zeXNfdWlvX2g9eWVzCi1hY19jdl9oZWFkZXJfc3lzX3Zmc19oPXllcwotYWNfY3ZfaGVhZGVyX3Rlcm1pb19oPXllcwotYWNfY3ZfaGVhZGVyX3VuaXN0ZF9oPXllcwotYWNfY3ZfaG9zdD1hcm0tdW5rbm93bi1saW51eC1nbnUKLWFjX2N2X2hvc3RfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251Ci1hY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQ9bm8KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9bm8KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sPXllcwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zb2NrYWRkcl9pbjZfc2luNl9zY29wZV9pZD15ZXMKLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hY2xjbnQ9bm8KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplPXllcwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2Nrcz15ZXMKLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncz1ubwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZT1ubwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbj1ubwotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2xldmVsPW5vCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldj15ZXMKLWFjX2N2X21wX3Byb2Nmcz1ubwotYWNfY3Zfb2JqZXh0PW8KLWFjX2N2X3BhdGhfUEVSTD0vdXNyL2Jpbi9wZXJsCi1hY19jdl9wYXRoX2luc3RhbGw9Jy91c3IvYmluL2luc3RhbGwgLWMnCi1hY19jdl9wb2xsYWJsZV9wcm9jZnM9bm8KLWFjX2N2X3Byb2dfQVdLPWdhd2sKLWFjX2N2X3Byb2dfQ1BQPSdnY2MgLUUnCi1hY19jdl9wcm9nX2FjX2N0X0NDPWdjYwotYWNfY3ZfcHJvZ19jY19nPXllcwotYWNfY3ZfcHJvZ19jY19zdGRjPQotYWNfY3ZfcHJvZ19lZ3JlcD0nZ3JlcCAtRScKLWFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsPW5vCi1hY19jdl9wcm9nX21ha2VfbWFrZV9zZXQ9eWVzCi1hY19jdl9zZWFyY2hfb3BlbmRpcj0nbm9uZSByZXF1aXJlZCcKLWFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsPW5vCi1hY19jdl90eXBlX2dldGdyb3Vwcz1naWRfdAotYWNfY3ZfdHlwZV9sb25nX2xvbmc9eWVzCi1hY19jdl90eXBlX21vZGVfdD15ZXMKLWFjX2N2X3R5cGVfc2lnX2F0b21pY190PXllcwotYWNfY3ZfdHlwZV9zaWdpbmZvX3Q9eWVzCi1hY19jdl90eXBlX3NpZ25hbD12b2lkCi1hY19jdl90eXBlX3N0YXQ2ND15ZXMKLWFjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0PXllcwotYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZz1ubwotYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyPW5vCi1hY19jdl90eXBlX3N0cnVjdF9wdF9hbGxfdXNlcl9yZWdzPW5vCi1hY19jdl90eXBlX3N0cnVjdF90X29wdGhkcj1ubwotYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjPXllcwotYWNfY3ZfdHlwZV91aWRfdD15ZXMKLWFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPWdjYzMKLQotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIE91dHB1dCB2YXJpYWJsZXMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotCi1BQ0xPQ0FMPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOScKLUFNREVQQkFDS1NMQVNIPSdcJwotQU1ERVBfRkFMU0U9JyMnCi1BTURFUF9UUlVFPScnCi1BTVRBUj0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gdGFyJwotQVVUT0NPTkY9JyR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIGF1dG9jb25mJwotQVVUT0hFQURFUj0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYXV0b2hlYWRlcicKLUFVVE9NQUtFPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhdXRvbWFrZS0xLjknCi1BV0s9J2dhd2snCi1DQz0nZ2NjJwotQ0NERVBNT0RFPSdkZXBtb2RlPWdjYzMnCi1DRkxBR1M9Jy1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8nCi1DUFA9J2djYyAtRScKLUNQUEZMQUdTPScnCi1DWUdQQVRIX1c9J2VjaG8nCi1ERUZTPSctREhBVkVfQ09ORklHX0gnCi1ERVBESVI9Jy5kZXBzJwotRUNIT19DPScnCi1FQ0hPX049Jy1uJwotRUNIT19UPScnCi1FR1JFUD0nZ3JlcCAtRScKLUVYRUVYVD0nJwotRlJFRUJTRF9GQUxTRT0nJwotRlJFRUJTRF9UUlVFPScjJwotSTM4Nl9GQUxTRT0nJwotSTM4Nl9UUlVFPScjJwotSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLUlOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKLUlOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwotSU5TVEFMTF9TVFJJUF9QUk9HUkFNPScke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zJwotTERGTEFHUz0nJwotTElCT0JKUz0nJwotTElCUz0nJwotTElOVVhfRkFMU0U9JyMnCi1MSU5VWF9UUlVFPScnCi1MVExJQk9CSlM9JycKLU1BSU5UPScjJwotTUFJTlRBSU5FUl9NT0RFX0ZBTFNFPScnCi1NQUlOVEFJTkVSX01PREVfVFJVRT0nIycKLU1BS0VJTkZPPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycKLU9CSkVYVD0nbycKLVBBQ0tBR0U9J3N0cmFjZScKLVBBQ0tBR0VfQlVHUkVQT1JUPScnCi1QQUNLQUdFX05BTUU9J3N0cmFjZScKLVBBQ0tBR0VfU1RSSU5HPSdzdHJhY2UgNC41LjEyJwotUEFDS0FHRV9UQVJOQU1FPSdzdHJhY2UnCi1QQUNLQUdFX1ZFUlNJT049JzQuNS4xMicKLVBBVEhfU0VQQVJBVE9SPSc6JwotUEVSTD0nL3Vzci9iaW4vcGVybCcKLVNFVF9NQUtFPScnCi1TSEVMTD0nL2Jpbi9zaCcKLVNUUklQPScnCi1TVU5PUzRfRkFMU0U9JycKLVNVTk9TNF9UUlVFPScjJwotU1ZSNF9GQUxTRT0nJwotU1ZSNF9UUlVFPScjJwotVkVSU0lPTj0nNC41LjEyJwotV0FSTkZMQUdTPSctV2FsbCcKLVg4Nl82NF9GQUxTRT0nJwotWDg2XzY0X1RSVUU9JyMnCi1hY19jdF9DQz0nZ2NjJwotYWNfY3RfU1RSSVA9JycKLWFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCi1hbV9fZmFzdGRlcENDX1RSVUU9JycKLWFtX19pbmNsdWRlPSdpbmNsdWRlJwotYW1fX2xlYWRpbmdfZG90PScuJwotYW1fX3F1b3RlPScnCi1hbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIicKLWFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLWFyY2g9J2FybScKLWJpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwotYnVpbGQ9J2FybS11bmtub3duLWxpbnV4LWdudScKLWJ1aWxkX2FsaWFzPSdhcm0tdW5rbm93bi1saW51eC1nbnUnCi1idWlsZF9jcHU9J2FybScKLWJ1aWxkX29zPSdsaW51eC1nbnUnCi1idWlsZF92ZW5kb3I9J3Vua25vd24nCi1kYXRhZGlyPScke3ByZWZpeH0vc2hhcmUnCi1leGVjX3ByZWZpeD0nJHtwcmVmaXh9JwotaG9zdD0nYXJtLXVua25vd24tbGludXgtZ251JwotaG9zdF9hbGlhcz0nJwotaG9zdF9jcHU9J2FybScKLWhvc3Rfb3M9J2xpbnV4LWdudScKLWhvc3RfdmVuZG9yPSd1bmtub3duJwotaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwotaW5mb2Rpcj0nJHtwcmVmaXh9L2luZm8nCi1pbnN0YWxsX3NoPScvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvaW5zdGFsbC1zaCcKLWxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwotbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKLWxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCi1tYW5kaXI9JyR7cHJlZml4fS9tYW4nCi1ta2Rpcl9wPSdta2RpciAtcCAtLScKLW9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKLW9wc3lzPSdsaW51eCcKLXByZWZpeD0nL2RhdGEvJwotcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJwotc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKLXNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwotc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKLXRhcmdldF9hbGlhcz0nJwotCi0jIyAtLS0tLS0tLS0tLSAjIwotIyMgY29uZmRlZnMuaC4gIyMKLSMjIC0tLS0tLS0tLS0tICMjCi0KLSNkZWZpbmUgQVJNIDEKLSNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKLSNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDEKLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19TSUdMSVNUIDEKLSNkZWZpbmUgSEFWRV9ERUNMX19TWVNfU0lHTElTVCAxCi0jZGVmaW5lIEhBVkVfRElSRU5UX0ggMQotI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKLSNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQotI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQotI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCi0jZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQotI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKLSNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQotI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKLSNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQotI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKLSNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKLSNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCi0jZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCi0jZGVmaW5lIEhBVkVfUE9MTF9IIDEKLSNkZWZpbmUgSEFWRV9QUkNUTCAxCi0jZGVmaW5lIEhBVkVfUFJFQUQgMQotI2RlZmluZSBIQVZFX1NFTkRNU0cgMQotI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCi0jZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKLSNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQotI2RlZmluZSBIQVZFX1NUQVQ2NCAxCi0jZGVmaW5lIEhBVkVfU1RESU5UX0ggMQotI2RlZmluZSBIQVZFX1NURExJQl9IIDEKLSNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLSNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCi0jZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKLSNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQotI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgMQotI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQotI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKLSNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKLSNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKLSNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQotI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKLSNkZWZpbmUgSEFWRV9VTklTVERfSCAxCi0jZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKLSNkZWZpbmUgTElOVVggMQotI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCi0jZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCi0jZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgotI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKLSNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCi0jZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgotI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLSNkZWZpbmUgU1REQ19IRUFERVJTIDEKLSNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgotI2RlZmluZSBfR05VX1NPVVJDRSAxCi0KLWNvbmZpZ3VyZTogZXhpdCAwCmRpZmYgLS1naXQgYS9jb25maWcuc3RhdHVzIGIvY29uZmlnLnN0YXR1cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMjQ1N2U3Yy4uMDAwMDAwMAotLS0gYS9jb25maWcuc3RhdHVzCisrKyAvZGV2L251bGwKQEAgLTEsMTMxNyArMCwwIEBACi0jISAvYmluL3NoCi0jIEdlbmVyYXRlZCBieSBjb25maWd1cmUuCi0jIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLSMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLQotZGVidWc9ZmFsc2UKLWFjX2NzX3JlY2hlY2s9ZmFsc2UKLWFjX2NzX3NpbGVudD1mYWxzZQotU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBCZSBCb3VybmUgY29tcGF0aWJsZQotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGVtdWxhdGUgc2gKLSAgTlVMTENNRD06Ci0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBzZXQgLW8gcG9zaXgKLWZpCi1EVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0Ci1lbHNlCi0gIGFzX3Vuc2V0PWZhbHNlCi1maQotCi0KLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi1QUzE9JyQgJwotUFMyPSc+ICcKLVBTND0nKyAnCi0KLSMgTkxTIG51aXNhbmNlcy4KLWZvciBhc192YXIgaW4gXAotICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotICBMQ19URUxFUEhPTkUgTENfVElNRQotZG8KLSAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLSAgZWxzZQotICAgICRhc191bnNldCAkYXNfdmFyCi0gIGZpCi1kb25lCi0KLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgYXNfZXhwcj1leHByCi1lbHNlCi0gIGFzX2V4cHI9ZmFsc2UKLWZpCi0KLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLWVsc2UKLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLWZpCi0KLQotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYLyIkMCIgfAotICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLQotCi0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLQotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NFUEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLQotCi0gIGFzX2xpbmVub18xPSRMSU5FTk8KLSAgYXNfbGluZW5vXzI9JExJTkVOTwotICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLSAgIyByZWxhdGl2ZSBvciBub3QuCi0gIGNhc2UgJDAgaW4KLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotZG9uZQotCi0gICAgICAgOzsKLSAgZXNhYwotICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0gICAgYXNfbXlzZWxmPSQwCi0gIGZpCi0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICBmaQotICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLSAgJycpCi0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0JIGNhc2UgJGFzX2RpciBpbgotCSAvKikKLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLSAgYXNfbGluZW5vXzE9JExJTkVOTwotICBhc19saW5lbm9fMj0kTElORU5PCi0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0JICAgZmk7OwotCSBlc2FjCi0gICAgICAgZG9uZQotZG9uZQotOzsKLSAgZXNhYwotCi0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLSAgICBzZWQgJwotICAgICAgTgotICAgICAgcywkLC0sCi0gICAgICA6IGxvb3AKLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotICAgICAgdCBsb29wCi0gICAgICBzLC0kLCwKLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi0gICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0gIC4gLi8kYXNfbWUubGluZW5vCi0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotICBleGl0Ci19Ci0KLQotY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotJyBFQ0hPX1Q9JwknIDs7Ci0gICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci1lc2FjCi0KLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX2V4cHI9ZXhwcgotZWxzZQotICBhc19leHByPWZhbHNlCi1maQotCi1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotZWNobyA+Y29uZiQkLmZpbGUKLWlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLSAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCi0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotICAgIGFzX2xuX3M9J2NwIC1wJwotICBlbHNlCi0gICAgYXNfbG5fcz0nbG4gLXMnCi0gIGZpCi1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICBhc19sbl9zPWxuCi1lbHNlCi0gIGFzX2xuX3M9J2NwIC1wJwotZmkKLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0KLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSAgYXNfbWtkaXJfcD06Ci1lbHNlCi0gIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gIGFzX21rZGlyX3A9ZmFsc2UKLWZpCi0KLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi1hc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotCi0KLSMgSUZTCi0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotYXNfbmw9JwotJwotSUZTPSIgCSRhc19ubCIKLQotIyBDRFBBVEguCi0kYXNfdW5zZXQgQ0RQQVRICi0KLWV4ZWMgNj4mMQotCi0jIE9wZW4gdGhlIGxvZyByZWFsIHNvb24sIHRvIGtlZXAgXCRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwotIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCi0jIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9nZ2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KLWV4ZWMgNT4+Y29uZmlnLmxvZwotewotICBlY2hvCi0gIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0jIyBSdW5uaW5nICRhc19tZS4gIyMKLV9BU0JPWAotfSA+JjUKLWNhdCA+JjUgPDxfQ1NFT0YKLQotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBzdHJhY2UgJGFzX21lIDQuNS4xMiwgd2hpY2ggd2FzCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLQotICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCi0gIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCi0gIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKLSAgJCAkMCAkQAotCi1fQ1NFT0YKLWVjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1Ci1lY2hvID4mNQotY29uZmlnX2ZpbGVzPSIgTWFrZWZpbGUiCi1jb25maWdfaGVhZGVycz0iIGNvbmZpZy5oIgotY29uZmlnX2NvbW1hbmRzPSIgZGVwZmlsZXMiCi0KLWFjX2NzX3VzYWdlPSJcCi1cYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKLWN1cnJlbnQgY29uZmlndXJhdGlvbi4KLQotVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KLQotICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0gIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwotICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0JCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLQkJICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKLQotQ29uZmlndXJhdGlvbiBmaWxlczoKLSRjb25maWdfZmlsZXMKLQotQ29uZmlndXJhdGlvbiBoZWFkZXJzOgotJGNvbmZpZ19oZWFkZXJzCi0KLUNvbmZpZ3VyYXRpb24gY29tbWFuZHM6Ci0kY29uZmlnX2NvbW1hbmRzCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgotYWNfY3NfdmVyc2lvbj0iXAotc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyCi1jb25maWd1cmVkIGJ5IC4vY29uZmlndXJlLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCi0gIHdpdGggb3B0aW9ucyBcIictLXByZWZpeD0vZGF0YS8nICctLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudScgJ0NGTEFHUz0tSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJyAnYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251J1wiCi0KLUNvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLVRoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKLXNyY2Rpcj0uCi1JTlNUQUxMPSIvdXNyL2Jpbi9pbnN0YWxsIC1jIgotIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHRoZW4gd2UgbmVlZCB0byBwcm92aWRlIGRlZmF1bHQKLSMgdmFsdWUuICBCeSB3ZSBuZWVkIHRvIGtub3cgaWYgZmlsZXMgd2VyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCi1hY19uZWVkX2RlZmF1bHRzPToKLXdoaWxlIHRlc3QgJCMgIT0gMAotZG8KLSAgY2FzZSAkMSBpbgotICAtLSo9KikKLSAgICBhY19vcHRpb249YGV4cHIgIngkMSIgOiAneFwoW149XSpcKT0nYAotICAgIGFjX29wdGFyZz1gZXhwciAieCQxIiA6ICd4W149XSo9XCguKlwpJ2AKLSAgICBhY19zaGlmdD06Ci0gICAgOzsKLSAgLSopCi0gICAgYWNfb3B0aW9uPSQxCi0gICAgYWNfb3B0YXJnPSQyCi0gICAgYWNfc2hpZnQ9c2hpZnQKLSAgICA7OwotICAqKSAjIFRoaXMgaXMgbm90IGFuIG9wdGlvbiwgc28gdGhlIHVzZXIgaGFzIHByb2JhYmx5IGdpdmVuIGV4cGxpY2l0Ci0gICAgICMgYXJndW1lbnRzLgotICAgICBhY19vcHRpb249JDEKLSAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0gIGVzYWMKLQotICBjYXNlICRhY19vcHRpb24gaW4KLSAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KLSAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0gICAgYWNfY3NfcmVjaGVjaz06IDs7Ci0gIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCi0gICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKLSAgLS1oZSB8IC0taCkKLSAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCi1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKLSAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKLSAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCi0gICAgZGVidWc9OiA7OwotICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotICAgICRhY19zaGlmdAotICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0gICAgJGFjX3NoaWZ0Ci0gICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCi0gICAgYWNfY3Nfc2lsZW50PTogOzsKLQotICAjIFRoaXMgaXMgYW4gZXJyb3IuCi0gIC0qKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0KLSAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIgOzsKLQotICBlc2FjCi0gIHNoaWZ0Ci1kb25lCi0KLWFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQotCi1pZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0gIGV4ZWMgNj4vZGV2L251bGwKLSAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLWZpCi0KLWlmICRhY19jc19yZWNoZWNrOyB0aGVuCi0gIGVjaG8gInJ1bm5pbmcgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAiICctLXByZWZpeD0vZGF0YS8nICctLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudScgJ0NGTEFHUz0tSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJyAnYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251JyAkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgIiAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIgPiY2Ci0gIGV4ZWMgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAnLS1wcmVmaXg9L2RhdGEvJyAnLS1idWlsZD1hcm0tdW5rbm93bi1saW51eC1nbnUnICdDRkxBR1M9LUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLycgJ2J1aWxkX2FsaWFzPWFybS11bmtub3duLWxpbnV4LWdudScgJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCi1maQotCi0jCi0jIElOSVQtQ09NTUFORFMgc2VjdGlvbi4KLSMKLQotQU1ERVBfVFJVRT0iIiBhY19hdXhfZGlyPSIuIgotCi1mb3IgYWNfY29uZmlnX3RhcmdldCBpbiAkYWNfY29uZmlnX3RhcmdldHMKLWRvCi0gIGNhc2UgIiRhY19jb25maWdfdGFyZ2V0IiBpbgotICAjIEhhbmRsaW5nIG9mIGFyZ3VtZW50cy4KLSAgIk1ha2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSAgImRlcGZpbGVzIiApIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKLSAgImNvbmZpZy5oIiApIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmlnLmgiIDs7Ci0gICopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLSAgZXNhYwotZG9uZQotCi0jIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCi0jIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKLSMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCi1pZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgotICB0ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxlcwotICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdfaGVhZGVycwotICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwotZmkKLQotIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0jIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBwdXQgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgotIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KLSRkZWJ1ZyB8fAotewotICB0cmFwICdleGl0X3N0YXR1cz0kPzsgcm0gLXJmICR0bXAgJiYgZXhpdCAkZXhpdF9zdGF0dXMnIDAKLSAgdHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKLX0KLQotIyBDcmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0KLXsKLSAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAtcSAiLi9jb25mc3RhdFhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgotICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotfSAgfHwKLXsKLSAgdG1wPS4vY29uZnN0YXQkJC0kUkFORE9NCi0gICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkKLX0gfHwKLXsKLSAgIGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH0KLX0KLQotCi0jCi0jIENPTkZJR19GSUxFUyBzZWN0aW9uLgotIwotCi0jIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KLSMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAotaWYgdGVzdCAtbiAiJENPTkZJR19GSUxFUyI7IHRoZW4KLSAgIyBQcm90ZWN0IGFnYWluc3QgYmVpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBzZWQgc3Vic3QgaW4gY29uZmlnLnN0YXR1cy4KLSAgc2VkICdzLyxAL0BALzsgcy9ALC9AQC87IHMvLDt0IHQkL0A7dCB0LzsgL0A7dCB0JC9zL1tcXCYsXS9cXCYvZzsKLSAgIHMvQEAvLEAvOyBzL0BAL0AsLzsgcy9AO3QgdCQvLDt0IHQvJyA+JHRtcC9zdWJzLnNlZCA8PFxDRU9GCi1zLEBTSEVMTEAsL2Jpbi9zaCw7dCB0Ci1zLEBQQVRIX1NFUEFSQVRPUkAsOiw7dCB0Ci1zLEBQQUNLQUdFX05BTUVALHN0cmFjZSw7dCB0Ci1zLEBQQUNLQUdFX1RBUk5BTUVALHN0cmFjZSw7dCB0Ci1zLEBQQUNLQUdFX1ZFUlNJT05ALDQuNS4xMiw7dCB0Ci1zLEBQQUNLQUdFX1NUUklOR0Asc3RyYWNlIDQuNS4xMiw7dCB0Ci1zLEBQQUNLQUdFX0JVR1JFUE9SVEAsLDt0IHQKLXMsQGV4ZWNfcHJlZml4QCwke3ByZWZpeH0sO3QgdAotcyxAcHJlZml4QCwvZGF0YS8sO3QgdAotcyxAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAscyx4LHgsLDt0IHQKLXMsQGJpbmRpckAsJHtleGVjX3ByZWZpeH0vYmluLDt0IHQKLXMsQHNiaW5kaXJALCR7ZXhlY19wcmVmaXh9L3NiaW4sO3QgdAotcyxAbGliZXhlY2RpckAsJHtleGVjX3ByZWZpeH0vbGliZXhlYyw7dCB0Ci1zLEBkYXRhZGlyQCwke3ByZWZpeH0vc2hhcmUsO3QgdAotcyxAc3lzY29uZmRpckAsJHtwcmVmaXh9L2V0Yyw7dCB0Ci1zLEBzaGFyZWRzdGF0ZWRpckAsJHtwcmVmaXh9L2NvbSw7dCB0Ci1zLEBsb2NhbHN0YXRlZGlyQCwke3ByZWZpeH0vdmFyLDt0IHQKLXMsQGxpYmRpckAsJHtleGVjX3ByZWZpeH0vbGliLDt0IHQKLXMsQGluY2x1ZGVkaXJALC91c3IvaW5jbHVkZSw7dCB0Ci1zLEBvbGRpbmNsdWRlZGlyQCwvdXNyL2luY2x1ZGUsO3QgdAotcyxAaW5mb2RpckAsJHtwcmVmaXh9L2luZm8sO3QgdAotcyxAbWFuZGlyQCwke3ByZWZpeH0vbWFuLDt0IHQKLXMsQGJ1aWxkX2FsaWFzQCxhcm0tdW5rbm93bi1saW51eC1nbnUsO3QgdAotcyxAaG9zdF9hbGlhc0AsLDt0IHQKLXMsQHRhcmdldF9hbGlhc0AsLDt0IHQKLXMsQERFRlNALC1ESEFWRV9DT05GSUdfSCw7dCB0Ci1zLEBFQ0hPX0NALCw7dCB0Ci1zLEBFQ0hPX05ALC1uLDt0IHQKLXMsQEVDSE9fVEAsLDt0IHQKLXMsQExJQlNALCw7dCB0Ci1zLEBJTlNUQUxMX1BST0dSQU1ALCR7SU5TVEFMTH0sO3QgdAotcyxASU5TVEFMTF9TQ1JJUFRALCR7SU5TVEFMTH0sO3QgdAotcyxASU5TVEFMTF9EQVRBQCwke0lOU1RBTEx9IC1tIDY0NCw7dCB0Ci1zLEBDWUdQQVRIX1dALGVjaG8sO3QgdAotcyxAUEFDS0FHRUAsc3RyYWNlLDt0IHQKLXMsQFZFUlNJT05ALDQuNS4xMiw7dCB0Ci1zLEBBQ0xPQ0FMQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOSw7dCB0Ci1zLEBBVVRPQ09ORkAsJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYXV0b2NvbmYsO3QgdAotcyxAQVVUT01BS0VALCR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuOSw7dCB0Ci1zLEBBVVRPSEVBREVSQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhdXRvaGVhZGVyLDt0IHQKLXMsQE1BS0VJTkZPQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBtYWtlaW5mbyw7dCB0Ci1zLEBpbnN0YWxsX3NoQCwvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvaW5zdGFsbC1zaCw7dCB0Ci1zLEBTVFJJUEAsLDt0IHQKLXMsQGFjX2N0X1NUUklQQCwsO3QgdAotcyxASU5TVEFMTF9TVFJJUF9QUk9HUkFNQCwke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zLDt0IHQKLXMsQG1rZGlyX3BALG1rZGlyIC1wIC0tLDt0IHQKLXMsQEFXS0AsZ2F3ayw7dCB0Ci1zLEBTRVRfTUFLRUAsLDt0IHQKLXMsQGFtX19sZWFkaW5nX2RvdEAsLiw7dCB0Ci1zLEBBTVRBUkAsJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gdGFyLDt0IHQKLXMsQGFtX190YXJALCR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiLDt0IHQKLXMsQGFtX191bnRhckAsJHtBTVRBUn0geGYgLSw7dCB0Ci1zLEBNQUlOVEFJTkVSX01PREVfVFJVRUAsIyw7dCB0Ci1zLEBNQUlOVEFJTkVSX01PREVfRkFMU0VALCw7dCB0Ci1zLEBNQUlOVEAsIyw7dCB0Ci1zLEBidWlsZEAsYXJtLXVua25vd24tbGludXgtZ251LDt0IHQKLXMsQGJ1aWxkX2NwdUAsYXJtLDt0IHQKLXMsQGJ1aWxkX3ZlbmRvckAsdW5rbm93biw7dCB0Ci1zLEBidWlsZF9vc0AsbGludXgtZ251LDt0IHQKLXMsQGhvc3RALGFybS11bmtub3duLWxpbnV4LWdudSw7dCB0Ci1zLEBob3N0X2NwdUAsYXJtLDt0IHQKLXMsQGhvc3RfdmVuZG9yQCx1bmtub3duLDt0IHQKLXMsQGhvc3Rfb3NALGxpbnV4LWdudSw7dCB0Ci1zLEBvcHN5c0AsbGludXgsO3QgdAotcyxAYXJjaEAsYXJtLDt0IHQKLXMsQExJTlVYX1RSVUVALCw7dCB0Ci1zLEBMSU5VWF9GQUxTRUAsIyw7dCB0Ci1zLEBJMzg2X1RSVUVALCMsO3QgdAotcyxASTM4Nl9GQUxTRUAsLDt0IHQKLXMsQFg4Nl82NF9UUlVFQCwjLDt0IHQKLXMsQFg4Nl82NF9GQUxTRUAsLDt0IHQKLXMsQFNVTk9TNF9UUlVFQCwjLDt0IHQKLXMsQFNVTk9TNF9GQUxTRUAsLDt0IHQKLXMsQFNWUjRfVFJVRUAsIyw7dCB0Ci1zLEBTVlI0X0ZBTFNFQCwsO3QgdAotcyxARlJFRUJTRF9UUlVFQCwjLDt0IHQKLXMsQEZSRUVCU0RfRkFMU0VALCw7dCB0Ci1zLEBDQ0AsZ2NjLDt0IHQKLXMsQENGTEFHU0AsLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyw7dCB0Ci1zLEBMREZMQUdTQCwsO3QgdAotcyxAQ1BQRkxBR1NALCw7dCB0Ci1zLEBhY19jdF9DQ0AsZ2NjLDt0IHQKLXMsQEVYRUVYVEAsLDt0IHQKLXMsQE9CSkVYVEAsbyw7dCB0Ci1zLEBERVBESVJALC5kZXBzLDt0IHQKLXMsQGFtX19pbmNsdWRlQCxpbmNsdWRlLDt0IHQKLXMsQGFtX19xdW90ZUAsLDt0IHQKLXMsQEFNREVQX1RSVUVALCw7dCB0Ci1zLEBBTURFUF9GQUxTRUAsIyw7dCB0Ci1zLEBBTURFUEJBQ0tTTEFTSEAsXCw7dCB0Ci1zLEBDQ0RFUE1PREVALGRlcG1vZGU9Z2NjMyw7dCB0Ci1zLEBhbV9fZmFzdGRlcENDX1RSVUVALCw7dCB0Ci1zLEBhbV9fZmFzdGRlcENDX0ZBTFNFQCwjLDt0IHQKLXMsQFdBUk5GTEFHU0AsLVdhbGwsO3QgdAotcyxAQ1BQQCxnY2MgLUUsO3QgdAotcyxARUdSRVBALGdyZXAgLUUsO3QgdAotcyxAUEVSTEAsL3Vzci9iaW4vcGVybCw7dCB0Ci1zLEBMSUJPQkpTQCwsO3QgdAotcyxATFRMSUJPQkpTQCwsO3QgdAotQ0VPRgotCi0gICMgU3BsaXQgdGhlIHN1YnN0aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCi0gICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgotICBhY19tYXhfc2VkX2xpbmVzPTQ4Ci0gIGFjX3NlZF9mcmFnPTEgIyBOdW1iZXIgb2YgY3VycmVudCBmaWxlLgotICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfZW5kPSRhY19tYXhfc2VkX2xpbmVzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfbW9yZV9saW5lcz06Ci0gIGFjX3NlZF9jbWRzPQotICB3aGlsZSAkYWNfbW9yZV9saW5lczsgZG8KLSAgICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KLSAgICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwotICAgIGVsc2UKLSAgICAgIHNlZCAiJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKLSAgICBmaQotICAgIGlmIHRlc3QgISAtcyAkdG1wL3N1YnMuZnJhZzsgdGhlbgotICAgICAgYWNfbW9yZV9saW5lcz1mYWxzZQotICAgIGVsc2UKLSAgICAgICMgVGhlIHB1cnBvc2Ugb2YgdGhlIGxhYmVsIGFuZCBvZiB0aGUgYnJhbmNoaW5nIGNvbmRpdGlvbiBpcyB0bwotICAgICAgIyBzcGVlZCB1cCB0aGUgc2VkIHByb2Nlc3NpbmcgKGlmIHRoZXJlIGFyZSBubyBgQCcgYXQgYWxsLCB0aGVyZQotICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkgb2YgdGhlIHN1YnN0aXR1dGlvbnMpLgotICAgICAgIyBUaGVzZSBhcmUgdGhlIHR3byBleHRyYSBzZWQgY29tbWFuZHMgbWVudGlvbmVkIGFib3ZlLgotICAgICAgKGVjaG8gJzp0Ci0gIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYmIGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkCi0gICAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0JYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKLSAgICAgIGVsc2UKLQlhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwgc2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgotICAgICAgZmkKLSAgICAgIGFjX3NlZF9mcmFnPWBleHByICRhY19zZWRfZnJhZyArIDFgCi0gICAgICBhY19iZWc9JGFjX2VuZAotICAgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9saW5lc2AKLSAgICBmaQotICBkb25lCi0gIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSAgICBhY19zZWRfY21kcz1jYXQKLSAgZmkKLWZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLQotZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0ZJTEVTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotICBjYXNlICRhY19maWxlIGluCi0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotCWNhdCA+JHRtcC9zdGRpbgotCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLQlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0gIGVzYWMKLQotICAjIENvbXB1dGUgQHNyY2RpckAsIEB0b3Bfc3JjZGlyQCwgYW5kIEBJTlNUQUxMQCBmb3Igc3ViZGlyZWN0b3JpZXMuCi0gIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYWNfZmlsZSIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KLSAgICBta2RpciAtcCAiJGFjX2RpciIKLSAgZWxzZQotICAgIGFzX2Rpcj0iJGFjX2RpciIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICBhY19idWlsZGRpcj0uCi0KLWlmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KLSAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAotICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCi1lbHNlCi0gIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KLWZpCi0KLWNhc2UgJHNyY2RpciBpbgotICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0gICAgYWNfc3JjZGlyPS4KLSAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgotICAgICAgIGFjX3RvcF9zcmNkaXI9LgotICAgIGVsc2UKLSAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCi0gICAgZmkgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0gICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7Ci0gICopICMgUmVsYXRpdmUgcGF0aC4KLSAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKLWVzYWMKLQotIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCi0jIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgotY2FzZSBgcHdkYCBpbgotLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0qKQotICBjYXNlICIkYWNfZGlyIiBpbgotICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OwotICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0qKQotICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KLSAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OwotICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfc3JjZGlyIGluCi0gIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgotICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0gICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLQotCi0gIGNhc2UgJElOU1RBTEwgaW4KLSAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwotICAqKSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRkaXIkSU5TVEFMTCA7OwotICBlc2FjCi0KLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0gICAgcm0gLWYgIiRhY19maWxlIgotICBmaQotICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAotICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6Ci0gICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCi0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgotICAgIGNvbmZpZ3VyZV9pbnB1dD0KLSAgZWxzZQotICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAiCi0gIGZpCi0gIGNvbmZpZ3VyZV9pbnB1dD0kY29uZmlndXJlX2lucHV0IkdlbmVyYXRlZCBmcm9tIGBlY2hvICRhY19maWxlX2luIHwKLQkJCQkgICAgIHNlZCAncywuKi8sLCdgIGJ5IGNvbmZpZ3VyZS4iCi0KLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLSAgIyBzcmMgdHJlZS4KLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0gICAgICBjYXNlICRmIGluCi0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLSAgICAgIFtcXC8kXSopCi0JICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0JIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSBlY2hvICIkZiI7OwotICAgICAgKikgIyBSZWxhdGl2ZQotCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLQkgICAjIEJ1aWxkIHRyZWUKLQkgICBlY2hvICIkZiIKLQkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotCSAgICMgU291cmNlIHRyZWUKLQkgICBlY2hvICIkc3JjZGlyLyRmIgotCSBlbHNlCi0JICAgIyAvZGV2L251bGwgdHJlZQotCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JIGZpOzsKLSAgICAgIGVzYWMKLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSAgc2VkICIvXlsJIF0qVlBBVEhbCSBdKj0vewotcy86KlwkKHNyY2Rpcik6Ki86LzsKLXMvOipcJHtzcmNkaXJ9OiovOi87Ci1zLzoqQHNyY2RpckA6Ki86LzsKLXMvXlwoW149XSo9WwkgXSpcKToqL1wxLzsKLXMvOiokLy87Ci1zL15bXj1dKj1bCSBdKiQvLzsKLX0KLQotOnQKLS9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKLXMsQGNvbmZpZ3VyZV9pbnB1dEAsJGNvbmZpZ3VyZV9pbnB1dCw7dCB0Ci1zLEBzcmNkaXJALCRhY19zcmNkaXIsO3QgdAotcyxAYWJzX3NyY2RpckAsJGFjX2Fic19zcmNkaXIsO3QgdAotcyxAdG9wX3NyY2RpckAsJGFjX3RvcF9zcmNkaXIsO3QgdAotcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNfdG9wX3NyY2Rpciw7dCB0Ci1zLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKLXMsQGFic19idWlsZGRpckAsJGFjX2Fic19idWlsZGRpciw7dCB0Ci1zLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVpbGRkaXIsO3QgdAotcyxAYWJzX3RvcF9idWlsZGRpckAsJGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdAotcyxASU5TVEFMTEAsJGFjX0lOU1RBTEwsO3QgdAotIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvc3RkaW4KLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotICAgIG12ICR0bXAvb3V0ICRhY19maWxlCi0gIGVsc2UKLSAgICBjYXQgJHRtcC9vdXQKLSAgICBybSAtZiAkdG1wL291dAotICBmaQotCi1kb25lCi0KLSMKLSMgQ09ORklHX0hFQURFUiBzZWN0aW9uLgotIwotCi0jIFRoZXNlIHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBhcyAiQSBOQU1FIEIgTkFNRSBDIFZBTFVFIEQiLCB3aGVyZQotIyBOQU1FIGlzIHRoZSBjcHAgbWFjcm8gYmVpbmcgZGVmaW5lZCBhbmQgVkFMVUUgaXMgdGhlIHZhbHVlIGl0IGlzIGJlaW5nIGdpdmVuLgotIwotIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVmaW5lIE5BTUUgVkFMVUUiIGxpbmVzLgotYWNfZEE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qZGVmaW5lWwkgXVsJIF0qXCknCi1hY19kQj0nWwkgXS4qJCxcMSNcMicKLWFjX2RDPScgJwotYWNfZEQ9Jyw7dCcKLSMgYWNfdSB0dXJucyAiI3VuZGVmIE5BTUUiIHdpdGhvdXQgdHJhaWxpbmcgYmxhbmtzIGludG8gIiNkZWZpbmUgTkFNRSBWQUxVRSIuCi1hY191QT0ncyxeXChbCSBdKlwpI1woWwkgXSpcKXVuZGVmXChbCSBdWwkgXSpcKScKLWFjX3VCPSckLFwxI1wyZGVmaW5lXDMnCi1hY191Qz0nICcKLWFjX3VEPScsO3QnCi0KLWZvciBhY19maWxlIGluIDogJENPTkZJR19IRUFERVJTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotICBjYXNlICRhY19maWxlIGluCi0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotCWNhdCA+JHRtcC9zdGRpbgotCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLQlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0gIGVzYWMKLQotICB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtICYmIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0KLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLSAgIyBzcmMgdHJlZS4KLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0gICAgICBjYXNlICRmIGluCi0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLSAgICAgIFtcXC8kXSopCi0JICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0JIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSAjIERvIHF1b3RlICRmLCB0byBwcmV2ZW50IERPUyBwYXRocyBmcm9tIGJlaW5nIElGUydkLgotCSBlY2hvICIkZiI7OwotICAgICAgKikgIyBSZWxhdGl2ZQotCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLQkgICAjIEJ1aWxkIHRyZWUKLQkgICBlY2hvICIkZiIKLQkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotCSAgICMgU291cmNlIHRyZWUKLQkgICBlY2hvICIkc3JjZGlyLyRmIgotCSBlbHNlCi0JICAgIyAvZGV2L251bGwgdHJlZQotCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JIGZpOzsKLSAgICAgIGVzYWMKLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSAgIyBSZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlcy4KLSAgc2VkICdzL1sJIF0qJC8vJyAkYWNfZmlsZV9pbnB1dHMgPiR0bXAvaW4KLQotICAjIEhhbmRsZSBhbGwgdGhlICNkZWZpbmUgdGVtcGxhdGVzIG9ubHkgaWYgbmVjZXNzYXJ5LgotICBpZiBncmVwICJeWwkgXSojWwkgXSpkZWZpbmUiICR0bXAvaW4gPi9kZXYvbnVsbDsgdGhlbgotICAjIElmIHRoZXJlIGFyZSBubyBkZWZpbmVzLCB3ZSBtYXkgaGF2ZSBhbiBlbXB0eSBpZi9maQotICA6Ci0gIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKLS9eWwkgXSojWwkgXSpkZWZpbmUvIWIKLXQgY2xyCi06IGNscgotJHthY19kQX1QQUNLQUdFX05BTUUke2FjX2RCfVBBQ0tBR0VfTkFNRSR7YWNfZEN9InN0cmFjZSIke2FjX2REfQotJHthY19kQX1QQUNLQUdFX1RBUk5BTUUke2FjX2RCfVBBQ0tBR0VfVEFSTkFNRSR7YWNfZEN9InN0cmFjZSIke2FjX2REfQotJHthY19kQX1QQUNLQUdFX1ZFUlNJT04ke2FjX2RCfVBBQ0tBR0VfVkVSU0lPTiR7YWNfZEN9IjQuNS4xMiIke2FjX2REfQotJHthY19kQX1QQUNLQUdFX1NUUklORyR7YWNfZEJ9UEFDS0FHRV9TVFJJTkcke2FjX2RDfSJzdHJhY2UgNC41LjEyIiR7YWNfZER9Ci0ke2FjX2RBfVBBQ0tBR0VfQlVHUkVQT1JUJHthY19kQn1QQUNLQUdFX0JVR1JFUE9SVCR7YWNfZEN9IiIke2FjX2REfQotJHthY19kQX1QQUNLQUdFJHthY19kQn1QQUNLQUdFJHthY19kQ30ic3RyYWNlIiR7YWNfZER9Ci0ke2FjX2RBfVZFUlNJT04ke2FjX2RCfVZFUlNJT04ke2FjX2RDfSI0LjUuMTIiJHthY19kRH0KLSR7YWNfZEF9TElOVVgke2FjX2RCfUxJTlVYJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9QVJNJHthY19kQn1BUk0ke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1fR05VX1NPVVJDRSR7YWNfZEJ9X0dOVV9TT1VSQ0Uke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1TVERDX0hFQURFUlMke2FjX2RCfVNURENfSEVBREVSUyR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfRElSRU5UX0gke2FjX2RCfUhBVkVfRElSRU5UX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NZU19UWVBFU19IJHthY19kQn1IQVZFX1NZU19UWVBFU19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfU1RBVF9IJHthY19kQn1IQVZFX1NZU19TVEFUX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NURExJQl9IJHthY19kQn1IQVZFX1NURExJQl9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJJTkdfSCR7YWNfZEJ9SEFWRV9TVFJJTkdfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTUVNT1JZX0gke2FjX2RCfUhBVkVfTUVNT1JZX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUklOR1NfSCR7YWNfZEJ9SEFWRV9TVFJJTkdTX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0lOVFRZUEVTX0gke2FjX2RCfUhBVkVfSU5UVFlQRVNfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1RESU5UX0gke2FjX2RCfUhBVkVfU1RESU5UX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1VOSVNURF9IJHthY19kQn1IQVZFX1VOSVNURF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFJHthY19kQn1IQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyR7YWNfZEJ9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1Mke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYke2FjX2RCfUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1RBVDY0JHthY19kQn1IQVZFX1NUQVQ2NCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfVJFVFNJR1RZUEUke2FjX2RCfVJFVFNJR1RZUEUke2FjX2RDfXZvaWQke2FjX2REfQotJHthY19kQX1HRVRHUk9VUFNfVCR7YWNfZEJ9R0VUR1JPVVBTX1Qke2FjX2RDfWdpZF90JHthY19kRH0KLSR7YWNfZEF9SEFWRV9TSUdfQVRPTUlDX1Qke2FjX2RCfUhBVkVfU0lHX0FUT01JQ19UJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TSUdJTkZPX1Qke2FjX2RCfUhBVkVfU0lHSU5GT19UJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQke2FjX2RCfUhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9MT05HX0xPTkcke2FjX2RCfUhBVkVfTE9OR19MT05HJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyR7YWNfZEJ9SEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU0lHQUNUSU9OJHthY19kQn1IQVZFX1NJR0FDVElPTiR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1RSRVJST1Ike2FjX2RCfUhBVkVfU1RSRVJST1Ike2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlNJR05BTCR7YWNfZEJ9SEFWRV9TVFJTSUdOQUwke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1BSRUFEJHthY19kQn1IQVZFX1BSRUFEJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfU0lHTElTVCR7YWNfZEJ9SEFWRV9TWVNfU0lHTElTVCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX19TWVNfU0lHTElTVCR7YWNfZEN9MSR7YWNfZER9Ci1DRU9GCi0gIHNlZCAtZiAkdG1wL2RlZmluZXMuc2VkICR0bXAvaW4gPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvaW4KLSAgbXYgJHRtcC9vdXQgJHRtcC9pbgotCi0gIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKLS9eWwkgXSojWwkgXSpkZWZpbmUvIWIKLXQgY2xyCi06IGNscgotJHthY19kQX1IQVZFX1BSQ1RMJHthY19kQn1IQVZFX1BSQ1RMJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TRU5ETVNHJHthY19kQn1IQVZFX1NFTkRNU0cke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0lORVRfTlRPUCR7YWNfZEJ9SEFWRV9JTkVUX05UT1Ake2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0lGX0lOREVYVE9OQU1FJHthY19kQn1IQVZFX0lGX0lOREVYVE9OQU1FJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfUkVHX0gke2FjX2RCfUhBVkVfU1lTX1JFR19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJPUFRTX0gke2FjX2RCfUhBVkVfU1RST1BUU19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfSU9DVExfSCR7YWNfZEJ9SEFWRV9TWVNfSU9DVExfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfU1lTX1BUUkFDRV9IJHthY19kQn1IQVZFX1NZU19QVFJBQ0VfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfVEVSTUlPX0gke2FjX2RCfUhBVkVfVEVSTUlPX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX1BUUkFDRV9IJHthY19kQn1IQVZFX0xJTlVYX1BUUkFDRV9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfVUlPX0gke2FjX2RCfUhBVkVfU1lTX1VJT19IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9QT0xMX0gke2FjX2RCfUhBVkVfUE9MTF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfUE9MTF9IJHthY19kQn1IQVZFX1NZU19QT0xMX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NZU19WRlNfSCR7YWNfZEJ9SEFWRV9TWVNfVkZTX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX1VUU05BTUVfSCR7YWNfZEJ9SEFWRV9MSU5VWF9VVFNOQU1FX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX01RVUVVRV9IJHthY19kQn1IQVZFX01RVUVVRV9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TWVNfRVBPTExfSCR7YWNfZEJ9SEFWRV9TWVNfRVBPTExfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTElOVVhfSUNNUF9IJHthY19kQn1IQVZFX0xJTlVYX0lDTVBfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTElOVVhfSU42X0gke2FjX2RCfUhBVkVfTElOVVhfSU42X0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX05FVExJTktfSCR7YWNfZEJ9SEFWRV9MSU5VWF9ORVRMSU5LX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0xJTlVYX0lGX1BBQ0tFVF9IJHthY19kQn1IQVZFX0xJTlVYX0lGX1BBQ0tFVF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9BU01fU0lHQ09OVEVYVF9IJHthY19kQn1IQVZFX0FTTV9TSUdDT05URVhUX0gke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX05FVElORVRfVENQX0gke2FjX2RCfUhBVkVfTkVUSU5FVF9UQ1BfSCR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfTkVUSU5FVF9VRFBfSCR7YWNfZEJ9SEFWRV9ORVRJTkVUX1VEUF9IJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MJHthY19kQn1IQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCR7YWNfZEJ9SEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX1NUUlVDVF9VU0VSX0RFU0Mke2FjX2RCfUhBVkVfU1RSVUNUX1VTRVJfREVTQyR7YWNfZEN9MSR7YWNfZER9Ci0ke2FjX2RBfUhBVkVfREVDTF9TWVNfRVJSTElTVCR7YWNfZEJ9SEFWRV9ERUNMX1NZU19FUlJMSVNUJHthY19kQ30xJHthY19kRH0KLSR7YWNfZEF9SEFWRV9ERUNMX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX0RFQ0xfU1lTX1NJR0xJU1Qke2FjX2RDfTEke2FjX2REfQotJHthY19kQX1IQVZFX0RFQ0xfX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX0RFQ0xfX1NZU19TSUdMSVNUJHthY19kQ30xJHthY19kRH0KLUNFT0YKLSAgc2VkIC1mICR0bXAvZGVmaW5lcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKLSAgcm0gLWYgJHRtcC9pbgotICBtdiAkdG1wL291dCAkdG1wL2luCi0KLSAgZmkgIyBncmVwCi0KLSAgIyBIYW5kbGUgYWxsIHRoZSAjdW5kZWYgdGVtcGxhdGVzCi0gIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgotL15bCSBdKiNbCSBdKnVuZGVmLyFiCi10IGNscgotOiBjbHIKLSR7YWNfdUF9UEFDS0FHRV9OQU1FJHthY191Qn1QQUNLQUdFX05BTUUke2FjX3VDfSJzdHJhY2UiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRV9UQVJOQU1FJHthY191Qn1QQUNLQUdFX1RBUk5BTUUke2FjX3VDfSJzdHJhY2UiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRV9WRVJTSU9OJHthY191Qn1QQUNLQUdFX1ZFUlNJT04ke2FjX3VDfSI0LjUuMTIiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRV9TVFJJTkcke2FjX3VCfVBBQ0tBR0VfU1RSSU5HJHthY191Q30ic3RyYWNlIDQuNS4xMiIke2FjX3VEfQotJHthY191QX1QQUNLQUdFX0JVR1JFUE9SVCR7YWNfdUJ9UEFDS0FHRV9CVUdSRVBPUlQke2FjX3VDfSIiJHthY191RH0KLSR7YWNfdUF9UEFDS0FHRSR7YWNfdUJ9UEFDS0FHRSR7YWNfdUN9InN0cmFjZSIke2FjX3VEfQotJHthY191QX1WRVJTSU9OJHthY191Qn1WRVJTSU9OJHthY191Q30iNC41LjEyIiR7YWNfdUR9Ci0ke2FjX3VBfUxJTlVYJHthY191Qn1MSU5VWCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUFSTSR7YWNfdUJ9QVJNJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9X0dOVV9TT1VSQ0Uke2FjX3VCfV9HTlVfU09VUkNFJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9U1REQ19IRUFERVJTJHthY191Qn1TVERDX0hFQURFUlMke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0RJUkVOVF9IJHthY191Qn1IQVZFX0RJUkVOVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TWVNfVFlQRVNfSCR7YWNfdUJ9SEFWRV9TWVNfVFlQRVNfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1NUQVRfSCR7YWNfdUJ9SEFWRV9TWVNfU1RBVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVERMSUJfSCR7YWNfdUJ9SEFWRV9TVERMSUJfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSSU5HX0gke2FjX3VCfUhBVkVfU1RSSU5HX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX01FTU9SWV9IJHthY191Qn1IQVZFX01FTU9SWV9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJJTkdTX0gke2FjX3VCfUhBVkVfU1RSSU5HU19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9JTlRUWVBFU19IJHthY191Qn1IQVZFX0lOVFRZUEVTX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NURElOVF9IJHthY191Qn1IQVZFX1NURElOVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9VTklTVERfSCR7YWNfdUJ9SEFWRV9VTklTVERfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSR7YWNfdUJ9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1Mke2FjX3VCfUhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWJHthY191Qn1IQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NUQVQ2NCR7YWNfdUJ9SEFWRV9TVEFUNjQke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1SRVRTSUdUWVBFJHthY191Qn1SRVRTSUdUWVBFJHthY191Q312b2lkJHthY191RH0KLSR7YWNfdUF9R0VUR1JPVVBTX1Qke2FjX3VCfUdFVEdST1VQU19UJHthY191Q31naWRfdCR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU0lHX0FUT01JQ19UJHthY191Qn1IQVZFX1NJR19BVE9NSUNfVCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU0lHSU5GT19UJHthY191Qn1IQVZFX1NJR0lORk9fVCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEJHthY191Qn1IQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfTE9OR19MT05HJHthY191Qn1IQVZFX0xPTkdfTE9ORyR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcke2FjX3VCfUhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NJR0FDVElPTiR7YWNfdUJ9SEFWRV9TSUdBQ1RJT04ke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NUUkVSUk9SJHthY191Qn1IQVZFX1NUUkVSUk9SJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJTSUdOQUwke2FjX3VCfUhBVkVfU1RSU0lHTkFMJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9QUkVBRCR7YWNfdUJ9SEFWRV9QUkVBRCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1NJR0xJU1Qke2FjX3VCfUhBVkVfU1lTX1NJR0xJU1Qke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX19TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9fU1lTX1NJR0xJU1Qke2FjX3VDfTEke2FjX3VEfQotQ0VPRgotICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvaW4KLSAgbXYgJHRtcC9vdXQgJHRtcC9pbgotCi0gIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgotL15bCSBdKiNbCSBdKnVuZGVmLyFiCi10IGNscgotOiBjbHIKLSR7YWNfdUF9SEFWRV9QUkNUTCR7YWNfdUJ9SEFWRV9QUkNUTCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU0VORE1TRyR7YWNfdUJ9SEFWRV9TRU5ETVNHJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9JTkVUX05UT1Ake2FjX3VCfUhBVkVfSU5FVF9OVE9QJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9JRl9JTkRFWFRPTkFNRSR7YWNfdUJ9SEFWRV9JRl9JTkRFWFRPTkFNRSR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1JFR19IJHthY191Qn1IQVZFX1NZU19SRUdfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RST1BUU19IJHthY191Qn1IQVZFX1NUUk9QVFNfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX0lPQ1RMX0gke2FjX3VCfUhBVkVfU1lTX0lPQ1RMX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1NZU19QVFJBQ0VfSCR7YWNfdUJ9SEFWRV9TWVNfUFRSQUNFX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX1RFUk1JT19IJHthY191Qn1IQVZFX1RFUk1JT19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9QVFJBQ0VfSCR7YWNfdUJ9SEFWRV9MSU5VWF9QVFJBQ0VfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1VJT19IJHthY191Qn1IQVZFX1NZU19VSU9fSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfUE9MTF9IJHthY191Qn1IQVZFX1BPTExfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX1BPTExfSCR7YWNfdUJ9SEFWRV9TWVNfUE9MTF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TWVNfVkZTX0gke2FjX3VCfUhBVkVfU1lTX1ZGU19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9VVFNOQU1FX0gke2FjX3VCfUhBVkVfTElOVVhfVVRTTkFNRV9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9NUVVFVUVfSCR7YWNfdUJ9SEFWRV9NUVVFVUVfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1lTX0VQT0xMX0gke2FjX3VCfUhBVkVfU1lTX0VQT0xMX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0xJTlVYX0lDTVBfSCR7YWNfdUJ9SEFWRV9MSU5VWF9JQ01QX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0xJTlVYX0lONl9IJHthY191Qn1IQVZFX0xJTlVYX0lONl9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9ORVRMSU5LX0gke2FjX3VCfUhBVkVfTElOVVhfTkVUTElOS19IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9MSU5VWF9JRl9QQUNLRVRfSCR7YWNfdUJ9SEFWRV9MSU5VWF9JRl9QQUNLRVRfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfQVNNX1NJR0NPTlRFWFRfSCR7YWNfdUJ9SEFWRV9BU01fU0lHQ09OVEVYVF9IJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9ORVRJTkVUX1RDUF9IJHthY191Qn1IQVZFX05FVElORVRfVENQX0gke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX05FVElORVRfVURQX0gke2FjX3VCfUhBVkVfTkVUSU5FVF9VRFBfSCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCR7YWNfdUJ9SEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQke2FjX3VCfUhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9TVFJVQ1RfVVNFUl9ERVNDJHthY191Qn1IQVZFX1NUUlVDVF9VU0VSX0RFU0Mke2FjX3VDfTEke2FjX3VEfQotJHthY191QX1IQVZFX0RFQ0xfU1lTX0VSUkxJU1Qke2FjX3VCfUhBVkVfREVDTF9TWVNfRVJSTElTVCR7YWNfdUN9MSR7YWNfdUR9Ci0ke2FjX3VBfUhBVkVfREVDTF9TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9ERUNMX1NZU19TSUdMSVNUJHthY191Q30xJHthY191RH0KLSR7YWNfdUF9SEFWRV9ERUNMX19TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9ERUNMX19TWVNfU0lHTElTVCR7YWNfdUN9MSR7YWNfdUR9Ci1zLF5bCSBdKiNbCSBdKnVuZGVmWwkgXVsJIF0qW2EtekEtWl9dW2EtekEtWl8wLTldKiwvKiAmICovLAotQ0VPRgotICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0Ci0gIHJtIC1mICR0bXAvaW4KLSAgbXYgJHRtcC9vdXQgJHRtcC9pbgotCi0gICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0gICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSAgaWYgdGVzdCB4IiRhY19maWxlIiA9IHgtOyB0aGVuCi0gICAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAotICBlbHNlCi0gICAgZWNobyAiLyogJGFjX2ZpbGUuICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCi0gIGZpCi0gIGNhdCAkdG1wL2luID4+JHRtcC9jb25maWcuaAotICBybSAtZiAkdG1wL2luCi0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KLSAgICBpZiBkaWZmICRhY19maWxlICR0bXAvY29uZmlnLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQotZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9Ci0gICAgZWxzZQotICAgICAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhY19maWxlIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KLSAgICBta2RpciAtcCAiJGFjX2RpciIKLSAgZWxzZQotICAgIGFzX2Rpcj0iJGFjX2RpciIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICAgICAgcm0gLWYgJGFjX2ZpbGUKLSAgICAgIG12ICR0bXAvY29uZmlnLmggJGFjX2ZpbGUKLSAgICBmaQotICBlbHNlCi0gICAgY2F0ICR0bXAvY29uZmlnLmgKLSAgICBybSAtZiAkdG1wL2NvbmZpZy5oCi0gIGZpCi0jIENvbXB1dGUgJGFjX2ZpbGUncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi1fYW1fc3RhbXBfY291bnQ9MQotZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0gIGNhc2UgJF9hbV9oZWFkZXIgaW4KLSAgICAkYWNfZmlsZSB8ICRhY19maWxlOiogKQotICAgICAgYnJlYWsgOzsKLSAgICAqICkKLSAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKLSAgZXNhYwotZG9uZQotZWNobyAidGltZXN0YW1wIGZvciAkYWNfZmlsZSIgPmAoZGlybmFtZSAkYWNfZmlsZSkgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgkYWNfZmlsZSA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYJGFjX2ZpbGUgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCRhY19maWxlIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgkYWNfZmlsZSA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgkYWNfZmlsZSB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKLWRvbmUKLQotIwotIyBDT05GSUdfQ09NTUFORFMgc2VjdGlvbi4KLSMKLWZvciBhY19maWxlIGluIDogJENPTkZJR19DT01NQU5EUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCi0gIGFjX2Rlc3Q9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgCi0gIGFjX3NvdXJjZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLSAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2Rlc3QiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYWNfZGVzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhY19kZXN0IiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICIkYWNfZGlyIgotICBlbHNlCi0gICAgYXNfZGlyPSIkYWNfZGlyIgotICAgIGFzX2RpcnM9Ci0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLSAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCi0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhc19kaXIiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgIGRvbmUKLSAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwotICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotCi0gIGFjX2J1aWxkZGlyPS4KLQotaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCi0gICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0gIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKLWVsc2UKLSAgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQotZmkKLQotY2FzZSAkc3JjZGlyIGluCi0gIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLSAgICBhY19zcmNkaXI9LgotICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCi0gICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0gICAgZWxzZQotICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRpciB8IHNlZCAncywvJCwsJ2AKLSAgICBmaSA7OwotICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCi0gICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKLSAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4Ci0gICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OwotZXNhYwotCi0jIERvIG5vdCB1c2UgYGNkIGZvbyAmJiBwd2RgIHRvIGNvbXB1dGUgYWJzb2x1dGUgcGF0aHMsIGJlY2F1c2UKLSMgdGhlIGRpcmVjdG9yaWVzIG1heSBub3QgZXhpc3QuCi1jYXNlIGBwd2RgIGluCi0uKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKLSopCi0gIGNhc2UgIiRhY19kaXIiIGluCi0gIC4pIGFjX2Fic19idWlsZGRpcj1gcHdkYDs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0gICopIGFjX2Fic19idWlsZGRpcj1gcHdkYC8iJGFjX2RpciI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSopCi0gIGNhc2UgJHthY190b3BfYnVpbGRkaXJ9LiBpbgotICAuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gICopIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpci8ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY19zcmNkaXIgaW4KLSAgLikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotICAqKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY190b3Bfc3JjZGlyIGluCi0gIC4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfdG9wX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotCi0KLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjUKLWVjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjY7fQotICBjYXNlICRhY19kZXN0IGluCi0gICAgZGVwZmlsZXMgKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCi0gIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgZGlycGFydD1gKGRpcm5hbWUgIiRtZiIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRtZiIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIGVsc2UKLSAgICBjb250aW51ZQotICBmaQotICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0gIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0gIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotICAjIGV4cGFuc2lvbi4KLSAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0gICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0gICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0gICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0gICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0gICAgZmRpcj1gKGRpcm5hbWUgIiRmaWxlIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkZmlsZSIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICRkaXJwYXJ0LyRmZGlyCi0gIGVsc2UKLSAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0gICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCi0gIGRvbmUKLWRvbmUKLSA7OwotICBlc2FjCi1kb25lCi0KLXsgKGV4aXQgMCk7IGV4aXQgMDsgfQpkaWZmIC0tZ2l0IGEvY29uZmlnLnN1YiBiL2NvbmZpZy5zdWIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDk4N2IxN2QuLjAwMDAwMDAKLS0tIGEvY29uZmlnLnN1YgorKysgL2Rldi9udWxsCkBAIC0xLDE1NjYgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCi0jICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAotIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLXRpbWVzdGFtcD0nMjAwNC0xMS0zMCcKLQotIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0jIFRoZSBwcmVzZW5jZSBvZiBhIG1hY2hpbmUgaW4gdGhpcyBmaWxlIHN1Z2dlc3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUKLSMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KLSMKLSMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSMKLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMKLSMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLQotIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0jIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0KLSMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0Ci0jIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4KLSMKLSMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCi0jIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1bWVudC4KLSMgSWYgaXQgaXMgaW52YWxpZCwgd2UgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBvbiBzdGRlcnIgYW5kIGV4aXQgd2l0aCBjb2RlIDEuCi0jIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCi0KLSMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCi0jIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcwotIyB0aGF0IGFyZSBtZWFuaW5nZnVsIHdpdGggKmFueSogR05VIHNvZnR3YXJlLgotIyBFYWNoIHBhY2thZ2UgaXMgcmVzcG9uc2libGUgZm9yIHJlcG9ydGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucwotIyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKLSMgYSBmYWlsdXJlIHRvIHN1cHBvcnQgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZyb20gYSBtZWFuaW5nbGVzcwotIyBjb25maWd1cmF0aW9uLgotCi0jIFRoZSBnb2FsIG9mIHRoaXMgZmlsZSBpcyB0byBtYXAgYWxsIHRoZSB2YXJpb3VzIHZhcmlhdGlvbnMgb2YgYSBnaXZlbgotIyBtYWNoaW5lIHNwZWNpZmljYXRpb24gaW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtOgotIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQotIyBvciBpbiBzb21lIGNhc2VzLCB0aGUgbmV3ZXIgZm91ci1wYXJ0IGZvcm06Ci0jCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTQotIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCi0KLW1lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAotCi11c2FnZT0iXAotVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BTWVMKLSAgICAgICAkMCBbT1BUSU9OXSBBTElBUwotCi1DYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIG5hbWUuCi0KLU9wZXJhdGlvbiBtb2RlczoKLSAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0gIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKLQotUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLQotdmVyc2lvbj0iXAotR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCi0KLUNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNAotRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLVRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi13YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0KLWhlbHA9IgotVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotCi0jIFBhcnNlIGNvbW1hbmQgbGluZQotd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gIGNhc2UgJDEgaW4KLSAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCAwIDs7Ci0gICAgLS12ZXJzaW9uIHwgLXYgKQotICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgMCA7OwotICAgIC0taGVscCB8IC0taCogfCAtaCApCi0gICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCAwIDs7Ci0gICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0gICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0gICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgotICAgICAgIGJyZWFrIDs7Ci0gICAgLSogKQotICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIKLSAgICAgICBleGl0IDEgOzsKLQotICAgICpsb2NhbCopCi0gICAgICAgIyBGaXJzdCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMuCi0gICAgICAgZWNobyAkMQotICAgICAgIGV4aXQgMDs7Ci0KLSAgICAqICkKLSAgICAgICBicmVhayA7OwotICBlc2FjCi1kb25lCi0KLWNhc2UgJCMgaW4KLSAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCi0gICAgZXhpdCAxOzsKLSAxKSA7OwotICopIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgotICAgIGV4aXQgMTs7Ci1lc2FjCi0KLSMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KLSMgSGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtFUk5FTC1PUyBjb21iaW5hdGlvbnMuCi1tYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKLWNhc2UgJG1heWJlX29zIGluCi0gIG50by1xbngqIHwgbGludXgtZ251KiB8IGxpbnV4LWRpZXRsaWJjIHwgbGludXgtdWNsaWJjKiB8IHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IFwKLSAga2ZyZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQotICAgIG9zPS0kbWF5YmVfb3MKLSAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAotICAgIDs7Ci0gICopCi0gICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAotICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQotICAgIHRoZW4gb3M9YGVjaG8gJDEgfCBzZWQgJ3MvLiotLy0vJ2AKLSAgICBlbHNlIG9zPTsgZmkKLSAgICA7OwotZXNhYwotCi0jIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KLSMjIyB0aGF0IHRoaW5ncyBsaWtlIGNvbmZpZy5zdWIgZGVjc3RhdGlvbi0zMTAwIHdvcmsuICBXZSBhbHNvCi0jIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMsIHNvIHdlCi0jIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KLWNhc2UgJG9zIGluCi0JLXN1bipvcyopCi0JCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgotCQk7OwotCS1kZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAtc29ueSogfCBcCi0JLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCi0JLXVuaWNvbSogfCAtaWJtKiB8IC1uZXh0IHwgLWhwIHwgLWlzaSogfCAtYXBvbGxvIHwgLWFsdG9zKiB8IFwKLQktY29udmVyZ2VudCogfCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAotCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0JLWhhcnJpcyB8IC1kb2xwaGluIHwgLWhpZ2hsZXZlbCB8IC1nb3VsZCB8IC1jYm0gfCAtbnMgfCAtbWFzc2NvbXAgfCBcCi0JLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSkKLQkJb3M9Ci0JCWJhc2ljX21hY2hpbmU9JDEKLQkJOzsKLQktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKLQkJb3M9Ci0JCWJhc2ljX21hY2hpbmU9JDEKLQkJOzsKLQktc2NvdXQpCi0JCTs7Ci0JLXdycykKLQkJb3M9LXZ4d29ya3MKLQkJYmFzaWNfbWFjaGluZT0kMQotCQk7OwotCS1jaG9ydXNvcyopCi0JCW9zPS1jaG9ydXNvcwotCQliYXNpY19tYWNoaW5lPSQxCi0JCTs7Ci0gCS1jaG9ydXNyZGIpCi0gCQlvcz0tY2hvcnVzcmRiCi0JCWJhc2ljX21hY2hpbmU9JDEKLSAJCTs7Ci0JLWhpdXgqKQotCQlvcz0taGl1eHdlMgotCQk7OwotCS1zY281KQotCQlvcz0tc2NvMy4ydjUKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS1zY280KQotCQlvcz0tc2NvMy4ydjQKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS1zY28zLjIuWzQtOV0qKQotCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLQkJOzsKLQktc2NvMy4ydls0LTldKikKLQkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS1zY28qKQotCQlvcz0tc2NvMy4ydjIKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotCQk7OwotCS11ZGsqKQotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0JCTs7Ci0JLWlzYykKLQkJb3M9LWlzYzIuMgotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0JCTs7Ci0JLWNsaXgqKQotCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAotCQk7OwotCS1pc2MqKQotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0JCTs7Ci0JLWx5bngqKQotCQlvcz0tbHlueG9zCi0JCTs7Ci0JLXB0eCopCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAotCQk7OwotCS13aW5kb3dzbnQqKQotCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50LydgCi0JCTs7Ci0JLXBzb3MqKQotCQlvcz0tcHNvcwotCQk7OwotCS1taW50IHwgLW1pbnRbMC05XSopCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQotCQlvcz0tbWludAotCQk7OwotZXNhYwotCi0jIERlY29kZSBhbGlhc2VzIGZvciBjZXJ0YWluIENQVS1DT01QQU5ZIGNvbWJpbmF0aW9ucy4KLWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KLQkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFueSBuYW1lLgotCSMgU29tZSBhcmUgb21pdHRlZCBoZXJlIGJlY2F1c2UgdGhleSBoYXZlIHNwZWNpYWwgbWVhbmluZ3MgYmVsb3cuCi0JMTc1MGEgfCA1ODAgXAotCXwgYTI5ayBcCi0JfCBhbHBoYSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFscGhhZXY2Wzc4XSB8IGFscGhhcGNhNVs2N10gXAotCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCi0JfCBhbTMzXzIuMCBcCi0JfCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBhdnIgXAotCXwgYzR4IHwgY2xpcHBlciBcCi0JfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAotCXwgZnIzMCB8IGZydiBcCi0JfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotCXwgaTM3MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBcCi0JfCBpcDJrIHwgaXEyMDAwIFwKLQl8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayB8IG1heHEgfCBtY29yZSBcCi0JfCBtaXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKLQl8IG1pcHMxNiBcCi0JfCBtaXBzNjQgfCBtaXBzNjRlbCBcCi0JfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAotCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKLQl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVsIFwKLQl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMwMGVsIFwKLQl8IG1pcHM2NHZyNTAwMCB8IG1pcHM2NHZyNTAwMGVsIFwKLQl8IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKLQl8IG1pcHNpc2EzMnIyIHwgbWlwc2lzYTMycjJlbCBcCi0JfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCi0JfCBtaXBzaXNhNjRyMiB8IG1pcHNpc2E2NHIyZWwgXAotCXwgbWlwc2lzYTY0c2IxIHwgbWlwc2lzYTY0c2IxZWwgXAotCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKLQl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCi0JfCBtbjEwMjAwIHwgbW4xMDMwMCBcCi0JfCBtc3A0MzAgXAotCXwgbnMxNmsgfCBuczMyayBcCi0JfCBvcGVucmlzYyB8IG9yMzIgXAotCXwgcGRwMTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwKLQl8IHBvd2VycGMgfCBwb3dlcnBjNjQgfCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSB8IHBwY2JlIFwKLQl8IHB5cmFtaWQgXAotCXwgc2ggfCBzaFsxMjM0XSB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCi0JfCBzaDY0IHwgc2g2NGxlIFwKLQl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIFwKLQl8IHN0cm9uZ2FybSBcCi0JfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAotCXwgdjg1MCB8IHY4NTBlIFwKLQl8IHdlMzJrIFwKLQl8IHg4NiB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKLQl8IHo4aykKLQkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0JCTs7Ci0JbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyKQotCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KLQkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0JCW9zPS1ub25lCi0JCTs7Ci0JbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6OGspCi0JCTs7Ci0KLQkjIFdlIHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJwotCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAotCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNlIGJlZ2lubmluZyB1c2Vycy4KLQlpKjg2IHwgeDg2XzY0KQotCSAgYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS1wYwotCSAgOzsKLQkjIE9iamVjdCBpZiBtb3JlIHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgotCSotKi0qKQotCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKLQkJZXhpdCAxCi0JCTs7Ci0JIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNvbXBhbnkgbmFtZS4KLQk1ODAtKiBcCi0JfCBhMjlrLSogXAotCXwgYWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCi0JfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAotCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCi0JfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKLQl8IGF2ci0qIFwKLQl8IGJzMjAwMC0qIFwKLQl8IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIHwgYzU0eC0qIHwgYzU1eC0qIHwgYzZ4LSogXAotCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKLQl8IGQxMHYtKiB8IGQzMHYtKiB8IGRseC0qIFwKLQl8IGVseHNpLSogXAotCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAotCXwgaDgzMDAtKiB8IGg4NTAwLSogXAotCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKLQl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCi0JfCBpcDJrLSogfCBpcTIwMDAtKiBcCi0JfCBtMzJyLSogfCBtMzJybGUtKiBcCi0JfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAotCXwgbTg4MTEwLSogfCBtODhrLSogfCBtYXhxLSogfCBtY29yZS0qIFwKLQl8IG1pcHMtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKLQl8IG1pcHMxNi0qIFwKLQl8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiBcCi0JfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKLQl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAotCXwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwKLQl8IG1pcHM2NHZyNDMwMC0qIHwgbWlwczY0dnI0MzAwZWwtKiBcCi0JfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAotCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKLQl8IG1pcHNpc2EzMnIyLSogfCBtaXBzaXNhMzJyMmVsLSogXAotCXwgbWlwc2lzYTY0LSogfCBtaXBzaXNhNjRlbC0qIFwKLQl8IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAotCXwgbWlwc2lzYTY0c2IxLSogfCBtaXBzaXNhNjRzYjFlbC0qIFwKLQl8IG1pcHNpc2E2NHNyNzFrLSogfCBtaXBzaXNhNjRzcjcxa2VsLSogXAotCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCi0JfCBtbWl4LSogXAotCXwgbXNwNDMwLSogXAotCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCi0JfCBvcmlvbi0qIFwKLQl8IHBkcDEwLSogfCBwZHAxMS0qIHwgcGotKiB8IHBqbC0qIHwgcG4tKiB8IHBvd2VyLSogXAotCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKLQl8IHB5cmFtaWQtKiBcCi0JfCByb21wLSogfCByczYwMDAtKiBcCi0JfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGJlLSogXAotCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCi0JfCBzcGFyYy0qIHwgc3BhcmM2NC0qIHwgc3BhcmM4NngtKiB8IHNwYXJjbGV0LSogfCBzcGFyY2xpdGUtKiBcCi0JfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3Ryb25nYXJtLSogfCBzdjEtKiB8IHN4Py0qIFwKLQl8IHRhaG9lLSogfCB0aHVtYi0qIFwKLQl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIFwKLQl8IHRyb24tKiBcCi0JfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAotCXwgd2UzMmstKiBcCi0JfCB4ODYtKiB8IHg4Nl82NC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAotCXwgeHN0b3JteTE2LSogfCB4dGVuc2EtKiBcCi0JfCB5bXAtKiBcCi0JfCB6OGstKikKLQkJOzsKLQkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5hbWVzIGFuZCBhbGlhc2VzIHdoaWNoIHN0YW5kCi0JIyBmb3IgYSBDUFUgdHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KLQkzODZic2QpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0JCW9zPS1ic2QKLQkJOzsKLQkzYjEgfCA3MzAwIHwgNzMwMC1hdHQgfCBhdHQtNzMwMCB8IHBjNzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKLQkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0Ci0JCTs7Ci0JM2IqKQotCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAotCQk7OwotCWEyOWtoaWYpCi0JCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLQkJb3M9LXVkaQotCQk7OwotICAgIAlhYmFjdXMpCi0JCWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KLQkJOzsKLQlhZG9iZTY4aykKLQkJYmFzaWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKLQkJb3M9LXNjb3V0Ci0JCTs7Ci0JYWxsaWFudCB8IGZ4ODApCi0JCWJhc2ljX21hY2hpbmU9Zng4MC1hbGxpYW50Ci0JCTs7Ci0JYWx0b3MgfCBhbHRvczMwNjgpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hbHRvcwotCQk7OwotCWFtMjlrKQotCQliYXNpY19tYWNoaW5lPWEyOWstbm9uZQotCQlvcz0tYnNkCi0JCTs7Ci0JYW1kNjQpCi0JCWJhc2ljX21hY2hpbmU9eDg2XzY0LXBjCi0JCTs7Ci0JYW1kNjQtKikKLQkJYmFzaWNfbWFjaGluZT14ODZfNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLQkJOzsKLQlhbWRhaGwpCi0JCWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAotCQlvcz0tc3lzdgotCQk7OwotCWFtaWdhIHwgYW1pZ2EtKikKLQkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLQkJOzsKLQlhbWlnYW9zIHwgYW1pZ2Fkb3MpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0JCW9zPS1hbWlnYW9zCi0JCTs7Ci0JYW1pZ2F1bml4IHwgYW1peCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLQkJb3M9LXN5c3Y0Ci0JCTs7Ci0JYXBvbGxvNjgpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KLQkJb3M9LXN5c3YKLQkJOzsKLQlhcG9sbG82OGJzZCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbwotCQlvcz0tYnNkCi0JCTs7Ci0JYXV4KQotCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKLQkJb3M9LWF1eAotCQk7OwotCWJhbGFuY2UpCi0JCWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAotCQlvcz0tZHluaXgKLQkJOzsKLQljOTApCi0JCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKLQkJb3M9LXVuaWNvcwotCQk7OwotCWNvbnZleC1jMSkKLQkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKLQkJb3M9LWJzZAotCQk7OwotCWNvbnZleC1jMikKLQkJYmFzaWNfbWFjaGluZT1jMi1jb252ZXgKLQkJb3M9LWJzZAotCQk7OwotCWNvbnZleC1jMzIpCi0JCWJhc2ljX21hY2hpbmU9YzMyLWNvbnZleAotCQlvcz0tYnNkCi0JCTs7Ci0JY29udmV4LWMzNCkKLQkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4Ci0JCW9zPS1ic2QKLQkJOzsKLQljb252ZXgtYzM4KQotCQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKLQkJb3M9LWJzZAotCQk7OwotCWNyYXkgfCBqOTApCi0JCWJhc2ljX21hY2hpbmU9ajkwLWNyYXkKLQkJb3M9LXVuaWNvcwotCQk7OwotCWNyYXludikKLQkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQotCQlvcz0tdW5pY29zbXAKLQkJOzsKLQljcjE2YykKLQkJYmFzaWNfbWFjaGluZT1jcjE2Yy11bmtub3duCi0JCW9zPS1lbGYKLQkJOzsKLQljcmRzIHwgdW5vcykKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWNyZHMKLQkJOzsKLQljcmlzdjMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhmcyopCi0JCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCi0JCTs7Ci0JY3JpcyB8IGNyaXMtKiB8IGV0cmF4KikKLQkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKLQkJOzsKLQljcngpCi0JCWJhc2ljX21hY2hpbmU9Y3J4LXVua25vd24KLQkJb3M9LWVsZgotCQk7OwotCWRhMzAgfCBkYTMwLSopCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1kYTMwCi0JCTs7Ci0JZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0YXRuKQotCQliYXNpY19tYWNoaW5lPW1pcHMtZGVjCi0JCTs7Ci0JZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQotCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwotCQlvcz0tdG9wczEwCi0JCTs7Ci0JZGVjc3lzdGVtMjAqIHwgZGVjMjAqKQotCQliYXNpY19tYWNoaW5lPXBkcDEwLWRlYwotCQlvcz0tdG9wczIwCi0JCTs7Ci0JZGVsdGEgfCAzMzAwIHwgbW90b3JvbGEtMzMwMCB8IG1vdG9yb2xhLWRlbHRhIFwKLQkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLW1vdG9yb2xhCi0JCTs7Ci0JZGVsdGE4OCkKLQkJYmFzaWNfbWFjaGluZT1tODhrLW1vdG9yb2xhCi0JCW9zPS1zeXN2MwotCQk7OwotCWRqZ3BwKQotCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLQkJb3M9LW1zZG9zZGpncHAKLQkJOzsKLQlkcHgyMCB8IGRweDIwLSopCi0JCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLQkJb3M9LWJvc3gKLQkJOzsKLQlkcHgyKiB8IGRweDIqLWJ1bGwpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0JCW9zPS1zeXN2MwotCQk7OwotCWVibW9uMjlrKQotCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0JCW9zPS1lYm1vbgotCQk7OwotCWVseHNpKQotCQliYXNpY19tYWNoaW5lPWVseHNpLWVseHNpCi0JCW9zPS1ic2QKLQkJOzsKLQllbmNvcmUgfCB1bWF4IHwgbW1heCkKLQkJYmFzaWNfbWFjaGluZT1uczMyay1lbmNvcmUKLQkJOzsKLQllczE4MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0UpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgotCQlvcz0tb3NlCi0JCTs7Ci0JZngyODAwKQotCQliYXNpY19tYWNoaW5lPWk4NjAtYWxsaWFudAotCQk7OwotCWdlbml4KQotCQliYXNpY19tYWNoaW5lPW5zMzJrLW5zCi0JCTs7Ci0JZ21pY3JvKQotCQliYXNpY19tYWNoaW5lPXRyb24tZ21pY3JvCi0JCW9zPS1zeXN2Ci0JCTs7Ci0JZ28zMikKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0JCW9zPS1nbzMyCi0JCTs7Ci0JaDMwNTByKiB8IGhpdXgqKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQotCQlvcz0taGl1eHdlMgotCQk7OwotCWg4MzAwaG1zKQotCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKLQkJb3M9LWhtcwotCQk7OwotCWg4MzAweHJheSkKLQkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCi0JCW9zPS14cmF5Ci0JCTs7Ci0JaDg1MDBobXMpCi0JCWJhc2ljX21hY2hpbmU9aDg1MDAtaGl0YWNoaQotCQlvcz0taG1zCi0JCTs7Ci0JaGFycmlzKQotCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCi0JCW9zPS1zeXN2MwotCQk7OwotCWhwMzAwLSopCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotCQk7OwotCWhwMzAwYnNkKQotCQliYXNpY19tYWNoaW5lPW02OGstaHAKLQkJb3M9LWJzZAotCQk7OwotCWhwMzAwaHB1eCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0JCW9zPS1ocHV4Ci0JCTs7Ci0JaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1bMC05XSkKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0JCTs7Ci0JaHA5azJbMC05XVswLTldIHwgaHA5azMxWzAtOV0pCi0JCWJhc2ljX21hY2hpbmU9bTY4MDAwLWhwCi0JCTs7Ci0JaHA5azNbMi05XVswLTldKQotCQliYXNpY19tYWNoaW5lPW02OGstaHAKLQkJOzsKLQlocDlrNlswLTldWzAtOV0gfCBocDZbMC05XVswLTldKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLQkJOzsKLQlocDlrN1swLTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCi0JCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotCQk7OwotCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQotCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJOzsKLQlocDlrOFs2N10xIHwgaHA4WzY3XTEgfCBocDlrODBbMjRdIHwgaHA4MFsyNF0gfCBocDlrOFs3OF05IHwgaHA4Wzc4XTkgfCBocDlrODkzIHwgaHA4OTMpCi0JCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCi0JCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotCQk7OwotCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJOzsKLQlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLQkJOzsKLQlocHBhLW5leHQpCi0JCW9zPS1uZXh0c3RlcDMKLQkJOzsKLQlocHBhb3NmKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJb3M9LW9zZgotCQk7OwotCWhwcHJvKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLQkJb3M9LXByb2VsZgotCQk7OwotCWkzNzAtaWJtKiB8IGlibSopCi0JCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KLQkJOzsKLSMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91bGQgdGhpcyBiZSBzeXN2My4yPwotCWkqODZ2MzIpCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotCQlvcz0tc3lzdjMyCi0JCTs7Ci0JaSo4NnY0KikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0JCW9zPS1zeXN2NAotCQk7OwotCWkqODZ2KQotCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLQkJb3M9LXN5c3YKLQkJOzsKLQlpKjg2c29sMikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0JCW9zPS1zb2xhcmlzMgotCQk7OwotCWkzODZtYWNoKQotCQliYXNpY19tYWNoaW5lPWkzODYtbWFjaAotCQlvcz0tbWFjaAotCQk7OwotCWkzODYtdnN0YSB8IHZzdGEpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0JCW9zPS12c3RhCi0JCTs7Ci0JaXJpcyB8IGlyaXM0ZCkKLQkJYmFzaWNfbWFjaGluZT1taXBzLXNnaQotCQljYXNlICRvcyBpbgotCQkgICAgLWlyaXgqKQotCQkJOzsKLQkJICAgICopCi0JCQlvcz0taXJpeDQKLQkJCTs7Ci0JCWVzYWMKLQkJOzsKLQlpc2k2OCB8IGlzaSkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQotCQlvcz0tc3lzdgotCQk7OwotCW04OGstb21yb24qKQotCQliYXNpY19tYWNoaW5lPW04OGstb21yb24KLQkJOzsKLQltYWdudW0gfCBtMzIzMCkKLQkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKLQkJb3M9LXN5c3YKLQkJOzsKLQltZXJsaW4pCi0JCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlawotCQlvcz0tc3lzdgotCQk7OwotCW1pbmd3MzIpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotCQlvcz0tbWluZ3czMgotCQk7OwotCW1pbmlmcmFtZSkKLQkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAotCQk7OwotCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQotCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKLQkJb3M9LW1pbnQKLQkJOzsKLQltaXBzMyotKikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AKLQkJOzsKLQltaXBzMyopCi0JCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgLXVua25vd24KLQkJOzsKLQltb25pdG9yKQotCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCi0JCW9zPS1jb2ZmCi0JCTs7Ci0JbW9ycGhvcykKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KLQkJb3M9LW1vcnBob3MKLQkJOzsKLQltc2RvcykKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0JCW9zPS1tc2RvcwotCQk7OwotCW12cykKLQkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotCQlvcz0tbXZzCi0JCTs7Ci0JbmNyMzAwMCkKLQkJYmFzaWNfbWFjaGluZT1pNDg2LW5jcgotCQlvcz0tc3lzdjQKLQkJOzsKLQluZXRic2QzODYpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0JCW9zPS1uZXRic2QKLQkJOzsKLQluZXR3aW5kZXIpCi0JCWJhc2ljX21hY2hpbmU9YXJtdjRsLXJlYmVsCi0JCW9zPS1saW51eAotCQk7OwotCW5ld3MgfCBuZXdzNzAwIHwgbmV3czgwMCB8IG5ld3M5MDApCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1zb255Ci0JCW9zPS1uZXdzb3MKLQkJOzsKLQluZXdzMTAwMCkKLQkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQotCQlvcz0tbmV3c29zCi0JCTs7Ci0JbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQotCQliYXNpY19tYWNoaW5lPW1pcHMtc29ueQotCQlvcz0tbmV3c29zCi0JCTs7Ci0JbmVjdjcwKQotCQliYXNpY19tYWNoaW5lPXY3MC1uZWMKLQkJb3M9LXN5c3YKLQkJOzsKLQluZXh0IHwgbSotbmV4dCApCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1uZXh0Ci0JCWNhc2UgJG9zIGluCi0JCSAgICAtbmV4dHN0ZXAqICkKLQkJCTs7Ci0JCSAgICAtbnMyKikKLQkJICAgICAgb3M9LW5leHRzdGVwMgotCQkJOzsKLQkJICAgICopCi0JCSAgICAgIG9zPS1uZXh0c3RlcDMKLQkJCTs7Ci0JCWVzYWMKLQkJOzsKLQluaDMwMDApCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLQkJb3M9LWN4dXgKLQkJOzsKLQluaFs0NV0wMDApCi0JCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKLQkJb3M9LWN4dXgKLQkJOzsKLQluaW5keTk2MCkKLQkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0JCW9zPS1uaW5keQotCQk7OwotCW1vbjk2MCkKLQkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0JCW9zPS1tb245NjAKLQkJOzsKLQlub25zdG9wdXgpCi0JCWJhc2ljX21hY2hpbmU9bWlwcy1jb21wYXEKLQkJb3M9LW5vbnN0b3B1eAotCQk7OwotCW5wMSkKLQkJYmFzaWNfbWFjaGluZT1ucDEtZ291bGQKLQkJOzsKLQluc3ItdGFuZGVtKQotCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KLQkJOzsKLQlvcDUwbi0qIHwgb3A2MGMtKikKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQotCQlvcz0tcHJvZWxmCi0JCTs7Ci0Jb3IzMiB8IG9yMzItKikKLQkJYmFzaWNfbWFjaGluZT1vcjMyLXVua25vd24KLQkJb3M9LWNvZmYKLQkJOzsKLQlvczQwMCkKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQotCQlvcz0tb3M0MDAKLQkJOzsKLQlPU0U2ODAwMCB8IG9zZTY4MDAwKQotCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotCQlvcz0tb3NlCi0JCTs7Ci0Jb3M2OGspCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1ub25lCi0JCW9zPS1vczY4awotCQk7OwotCXBhLWhpdGFjaGkpCi0JCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCi0JCW9zPS1oaXV4d2UyCi0JCTs7Ci0JcGFyYWdvbikKLQkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCi0JCW9zPS1vc2YKLQkJOzsKLQlwYmQpCi0JCWJhc2ljX21hY2hpbmU9c3BhcmMtdHRpCi0JCTs7Ci0JcGJiKQotCQliYXNpY19tYWNoaW5lPW02OGstdHRpCi0JCTs7Ci0JcGM1MzIgfCBwYzUzMi0qKQotCQliYXNpY19tYWNoaW5lPW5zMzJrLXBjNTMyCi0JCTs7Ci0JcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQotCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLQkJOzsKLQlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotCQk7OwotCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQotCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLQkJOzsKLQlwZW50aXVtNCkKLQkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCi0JCTs7Ci0JcGVudGl1bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQotCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLQkJOzsKLQlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0zLSopCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBlbnRpdW00LSopCi0JCWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBuKQotCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0JCTs7Ci0JcG93ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCi0JCTs7Ci0JcHBjKQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgotCQk7OwotCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLQkJOzsKLQlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgotCQk7OwotCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCi0JCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0JCTs7Ci0JcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KLQkJOzsKLQlwcGM2NC0qKSBiYXNpY19tYWNoaW5lPXBvd2VycGM2NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotCQk7OwotCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0JCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtdW5rbm93bgotCQk7OwotCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQotCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0JCTs7Ci0JcHMyKQotCQliYXNpY19tYWNoaW5lPWkzODYtaWJtCi0JCTs7Ci0JcHczMikKLQkJYmFzaWNfbWFjaGluZT1pNTg2LXVua25vd24KLQkJb3M9LXB3MzIKLQkJOzsKLQlyb202OGspCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKLQkJb3M9LWNvZmYKLQkJOzsKLQlybVs0Nl0wMCkKLQkJYmFzaWNfbWFjaGluZT1taXBzLXNpZW1lbnMKLQkJOzsKLQlydHBjIHwgcnRwYy0qKQotCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCi0JCTs7Ci0JczM5MCB8IHMzOTAtKikKLQkJYmFzaWNfbWFjaGluZT1zMzkwLWlibQotCQk7OwotCXMzOTB4IHwgczM5MHgtKikKLQkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KLQkJOzsKLQlzYTI5MjAwKQotCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0JCW9zPS11ZGkKLQkJOzsKLQlzYjEpCi0JCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KLQkJOzsKLQlzYjFlbCkKLQkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCi0JCTs7Ci0Jc2VpKQotCQliYXNpY19tYWNoaW5lPW1pcHMtc2VpCi0JCW9zPS1zZWl1eAotCQk7OwotCXNlcXVlbnQpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0JCTs7Ci0Jc2gpCi0JCWJhc2ljX21hY2hpbmU9c2gtaGl0YWNoaQotCQlvcz0taG1zCi0JCTs7Ci0Jc2g2NCkKLQkJYmFzaWNfbWFjaGluZT1zaDY0LXVua25vd24KLQkJOzsKLQlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3JzKQotCQliYXNpY19tYWNoaW5lPXNwYXJjbGl0ZS13cnMKLQkJb3M9LXZ4d29ya3MKLQkJOzsKLQlzcHM3KQotCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAotCQlvcz0tc3lzdjIKLQkJOzsKLQlzcHVyKQotCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotCQk7OwotCXN0MjAwMCkKLQkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQotCQk7OwotCXN0cmF0dXMpCi0JCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0JCW9zPS1zeXN2NAotCQk7OwotCXN1bjIpCi0JCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgotCQk7OwotCXN1bjJvczMpCi0JCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgotCQlvcz0tc3Vub3MzCi0JCTs7Ci0Jc3VuMm9zNCkKLQkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCi0JCW9zPS1zdW5vczQKLQkJOzsKLQlzdW4zb3MzKQotCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0JCW9zPS1zdW5vczMKLQkJOzsKLQlzdW4zb3M0KQotCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0JCW9zPS1zdW5vczQKLQkJOzsKLQlzdW40b3MzKQotCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotCQlvcz0tc3Vub3MzCi0JCTs7Ci0Jc3VuNG9zNCkKLQkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLQkJb3M9LXN1bm9zNAotCQk7OwotCXN1bjRzb2wyKQotCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotCQlvcz0tc29sYXJpczIKLQkJOzsKLQlzdW4zIHwgc3VuMy0qKQotCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0JCTs7Ci0Jc3VuNCkKLQkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLQkJOzsKLQlzdW4zODYgfCBzdW4zODZpIHwgcm9hZHJ1bm5lcikKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgotCQk7OwotCXN2MSkKLQkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQotCQlvcz0tdW5pY29zCi0JCTs7Ci0Jc3ltbWV0cnkpCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0JCW9zPS1keW5peAotCQk7OwotCXQzZSkKLQkJYmFzaWNfbWFjaGluZT1hbHBoYWV2NS1jcmF5Ci0JCW9zPS11bmljb3MKLQkJOzsKLQl0OTApCi0JCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKLQkJb3M9LXVuaWNvcwotCQk7OwotCXRpYzU0eCB8IGM1NHgqKQotCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCi0JCW9zPS1jb2ZmCi0JCTs7Ci0JdGljNTV4IHwgYzU1eCopCi0JCWJhc2ljX21hY2hpbmU9dGljNTV4LXVua25vd24KLQkJb3M9LWNvZmYKLQkJOzsKLQl0aWM2eCB8IGM2eCopCi0JCWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgotCQlvcz0tY29mZgotCQk7OwotCXR4MzkpCi0JCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93bgotCQk7OwotCXR4MzllbCkKLQkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24KLQkJOzsKLQl0b2FkMSkKLQkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLQkJb3M9LXRvcHMyMAotCQk7OwotCXRvd2VyIHwgdG93ZXItMzIpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1uY3IKLQkJOzsKLQl0cGYpCi0JCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0JCW9zPS10cGYKLQkJOzsKLQl1ZGkyOWspCi0JCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLQkJb3M9LXVkaQotCQk7OwotCXVsdHJhMykKLQkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotCQlvcz0tc3ltMQotCQk7OwotCXY4MTAgfCBuZWN2ODEwKQotCQliYXNpY19tYWNoaW5lPXY4MTAtbmVjCi0JCW9zPS1ub25lCi0JCTs7Ci0JdmF4dikKLQkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0JCW9zPS1zeXN2Ci0JCTs7Ci0Jdm1zKQotCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLQkJb3M9LXZtcwotCQk7OwotCXZwcCp8dnh8dngtKikKLQkJYmFzaWNfbWFjaGluZT1mMzAxLWZ1aml0c3UKLQkJOzsKLQl2eHdvcmtzOTYwKQotCQliYXNpY19tYWNoaW5lPWk5NjAtd3JzCi0JCW9zPS12eHdvcmtzCi0JCTs7Ci0Jdnh3b3JrczY4KQotCQliYXNpY19tYWNoaW5lPW02OGstd3JzCi0JCW9zPS12eHdvcmtzCi0JCTs7Ci0Jdnh3b3JrczI5aykKLQkJYmFzaWNfbWFjaGluZT1hMjlrLXdycwotCQlvcz0tdnh3b3JrcwotCQk7OwotCXc2NSopCi0JCWJhc2ljX21hY2hpbmU9dzY1LXdkYwotCQlvcz0tbm9uZQotCQk7OwotCXc4OWstKikKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKLQkJb3M9LXByb2VsZgotCQk7OwotCXhib3gpCi0JCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotCQlvcz0tbWluZ3czMgotCQk7OwotCXhwcyB8IHhwczEwMCkKLQkJYmFzaWNfbWFjaGluZT14cHMxMDAtaG9uZXl3ZWxsCi0JCTs7Ci0JeW1wKQotCQliYXNpY19tYWNoaW5lPXltcC1jcmF5Ci0JCW9zPS11bmljb3MKLQkJOzsKLQl6OGstKi1jb2ZmKQotCQliYXNpY19tYWNoaW5lPXo4ay11bmtub3duCi0JCW9zPS1zaW0KLQkJOzsKLQlub25lKQotCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQotCQlvcz0tbm9uZQotCQk7OwotCi0jIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4gIEl0IGlzIGluCi0jIHNvbWUgY2FzZXMgdGhlIG9ubHkgbWFudWZhY3R1cmVyLCBpbiBvdGhlcnMsIGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCi0Jdzg5aykKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKLQkJOzsKLQlvcDUwbikKLQkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQotCQk7OwotCW9wNjBjKQotCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0JCTs7Ci0Jcm9tcCkKLQkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotCQk7OwotCW1taXgpCi0JCWJhc2ljX21hY2hpbmU9bW1peC1rbnV0aAotCQk7OwotCXJzNjAwMCkKLQkJYmFzaWNfbWFjaGluZT1yczYwMDAtaWJtCi0JCTs7Ci0JdmF4KQotCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLQkJOzsKLQlwZHAxMCkKLQkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3QgYSBzYWZlIGJldAotCQliYXNpY19tYWNoaW5lPXBkcDEwLXVua25vd24KLQkJOzsKLQlwZHAxMSkKLQkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKLQkJOzsKLQl3ZTMyaykKLQkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLQkJOzsKLQlzaDMgfCBzaDQgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCi0JCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgotCQk7OwotCXNoNjQpCi0JCWJhc2ljX21hY2hpbmU9c2g2NC11bmtub3duCi0JCTs7Ci0Jc3BhcmMgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliKQotCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotCQk7OwotCWN5ZHJhKQotCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUKLQkJOzsKLQlvcmlvbikKLQkJYmFzaWNfbWFjaGluZT1vcmlvbi1oaWdobGV2ZWwKLQkJOzsKLQlvcmlvbjEwNSkKLQkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWhpZ2hsZXZlbAotCQk7OwotCW1hYyB8IG1wdyB8IG1hYy1tcHcpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQotCQk7OwotCXBtYWMgfCBwbWFjLW1wdykKLQkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCi0JCTs7Ci0JKi11bmtub3duKQotCQkjIE1ha2Ugc3VyZSB0byBtYXRjaCBhbiBhbHJlYWR5LWNhbm9uaWNhbGl6ZWQgbWFjaGluZSBuYW1lLgotCQk7OwotCSopCi0JCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgotCQlleGl0IDEKLQkJOzsKLWVzYWMKLQotIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0dXJlcnMuCi1jYXNlICRiYXNpY19tYWNoaW5lIGluCi0JKi1kaWdpdGFsKikKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCi0JCTs7Ci0JKi1jb21tb2RvcmUqKQotCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8nYAotCQk7OwotCSopCi0JCTs7Ci1lc2FjCi0KLSMgRGVjb2RlIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgotCi1pZiBbIHgiJG9zIiAhPSB4IiIgXQotdGhlbgotY2FzZSAkb3MgaW4KLSAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBlIGFsaWFzZXMKLSAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KLQkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KLQktc29sYXJpczEgfCAtc29sYXJpczEuKikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9zNHwnYAotCQk7OwotCS1zb2xhcmlzKQotCQlvcz0tc29sYXJpczIKLQkJOzsKLQktc3ZyNCopCi0JCW9zPS1zeXN2NAotCQk7OwotCS11bml4d2FyZSopCi0JCW9zPS1zeXN2NC4ydXcKLQkJOzsKLQktZ251L2xpbnV4KikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AKLQkJOzsKLQkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgotCSMgVGhlIHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3QuCi0JIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOIEEgKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KLQkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCi0JLWdudSogfCAtYnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAotCSAgICAgIHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLXN1bm9zIHwgLXN1bm9zWzM0XSpcCi0JICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1zb2xhcmlzKiB8IC1zeW0qIFwKLQkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKLQkgICAgICB8IC1hb3MqIFwKLQkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAotCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAotCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIHwgLW9wZW5ic2QqIFwKLQkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJlZWJzZCogfCAtZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKLQkgICAgICB8IC1ib3N4KiB8IC1uZXh0c3RlcCogfCAtY3h1eCogfCAtYW91dCogfCAtZWxmKiB8IC1vYWJpKiBcCi0JICAgICAgfCAtcHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRvbWFpbiogfCAtdnN0YSogXAotCSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwgLWF1eCogXAotCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIFwKLQkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCi0JICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC11Y2xpYmMqIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKLQkgICAgICB8IC1pbnRlcml4KiB8IC11d2luKiB8IC1ta3MqIHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5lZCogXAotCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAotCSAgICAgIHwgLXN0b3JtLWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0cyogXAotCSAgICAgIHwgLW9zMiogfCAtdm9zKiB8IC1wYWxtb3MqIHwgLXVjbGludXgqIHwgLW51Y2xldXMqIFwKLQkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKLQkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8IC1zZWkqIHwgLWRyYWdvbmZseSopCi0JIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgotCQk7OwotCS1xbngqKQotCQljYXNlICRiYXNpY19tYWNoaW5lIGluCi0JCSAgICB4ODYtKiB8IGkqODYtKikKLQkJCTs7Ci0JCSAgICAqKQotCQkJb3M9LW50byRvcwotCQkJOzsKLQkJZXNhYwotCQk7OwotCS1udG8tcW54KikKLQkJOzsKLQktbnRvKikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCi0JCTs7Ci0JLXNpbSB8IC1lczE4MDAqIHwgLWhtcyogfCAteHJheSB8IC1vczY4ayogfCAtbm9uZSogfCAtdjg4ciogXAotCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogXAotCSAgICAgIHwgLW1hY29zKiB8IC1tcHcqIHwgLW1hZ2ljKiB8IC1tbWl4d2FyZSogfCAtbW9uOTYwKiB8IC1sbmV3cyopCi0JCTs7Ci0JLW1hYyopCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xtYWN8bWFjb3N8J2AKLQkJOzsKLQktbGludXgtZGlldGxpYmMpCi0JCW9zPS1saW51eC1kaWV0bGliYwotCQk7OwotCS1saW51eCopCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xsaW51eHxsaW51eC1nbnV8J2AKLQkJOzsKLQktc3Vub3M1KikKLQkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9zNXxzb2xhcmlzMnwnYAotCQk7OwotCS1zdW5vczYqKQotCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M2fHNvbGFyaXMzfCdgCi0JCTs7Ci0JLW9wZW5lZCopCi0JCW9zPS1vcGVuZWRpdGlvbgotCQk7OwotICAgICAgICAtb3M0MDAqKQotCQlvcz0tb3M0MDAKLQkJOzsKLQktd2luY2UqKQotCQlvcz0td2luY2UKLQkJOzsKLQktb3Nmcm9zZSopCi0JCW9zPS1vc2Zyb3NlCi0JCTs7Ci0JLW9zZiopCi0JCW9zPS1vc2YKLQkJOzsKLQktdXRlayopCi0JCW9zPS1ic2QKLQkJOzsKLQktZHluaXgqKQotCQlvcz0tYnNkCi0JCTs7Ci0JLWFjaXMqKQotCQlvcz0tYW9zCi0JCTs7Ci0JLWF0aGVvcyopCi0JCW9zPS1hdGhlb3MKLQkJOzsKLQktc3lsbGFibGUqKQotCQlvcz0tc3lsbGFibGUKLQkJOzsKLQktMzg2YnNkKQotCQlvcz0tYnNkCi0JCTs7Ci0JLWN0aXgqIHwgLXV0cyopCi0JCW9zPS1zeXN2Ci0JCTs7Ci0JLW5vdmEqKQotCQlvcz0tcnRtay1ub3ZhCi0JCTs7Ci0JLW5zMiApCi0JCW9zPS1uZXh0c3RlcDIKLQkJOzsKLQktbnNrKikKLQkJb3M9LW5zawotCQk7OwotCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KLQktc2luaXg1LiopCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCi0JCTs7Ci0JLXNpbml4KikKLQkJb3M9LXN5c3Y0Ci0JCTs7Ci0gICAgICAgIC10cGYqKQotCQlvcz0tdHBmCi0JCTs7Ci0JLXRyaXRvbiopCi0JCW9zPS1zeXN2MwotCQk7OwotCS1vc3MqKQotCQlvcz0tc3lzdjMKLQkJOzsKLQktc3ZyNCkKLQkJb3M9LXN5c3Y0Ci0JCTs7Ci0JLXN2cjMpCi0JCW9zPS1zeXN2MwotCQk7OwotCS1zeXN2cjQpCi0JCW9zPS1zeXN2NAotCQk7OwotCSMgVGhpcyBtdXN0IGNvbWUgYWZ0ZXIgLXN5c3ZyNC4KLQktc3lzdiopCi0JCTs7Ci0JLW9zZSopCi0JCW9zPS1vc2UKLQkJOzsKLQktZXMxODAwKikKLQkJb3M9LW9zZQotCQk7OwotCS14ZW5peCkKLQkJb3M9LXhlbml4Ci0JCTs7Ci0JLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKLQkJb3M9LW1pbnQKLQkJOzsKLQktYXJvcyopCi0JCW9zPS1hcm9zCi0JCTs7Ci0JLWthb3MqKQotCQlvcz0ta2FvcwotCQk7OwotCS16dm1vZSkKLQkJb3M9LXp2bW9lCi0JCTs7Ci0JLW5vbmUpCi0JCTs7Ci0JKikKLQkJIyBHZXQgcmlkIG9mIHRoZSBgLScgYXQgdGhlIGJlZ2lubmluZyBvZiAkb3MuCi0JCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCi0JCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29nbml6ZWQgMT4mMgotCQlleGl0IDEKLQkJOzsKLWVzYWMKLWVsc2UKLQotIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJpb3VzIG1hY2hpbmVzLgotIyBUaGUgdmFsdWUgc2hvdWxkIGJlIHdoYXQgdGhlIHZlbmRvciBjdXJyZW50bHkgc2hpcHMgb3V0IHRoZSBkb29yIHdpdGggdGhlaXIKLSMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KLQotIyBOb3RlIHRoYXQgaWYgeW91J3JlIGdvaW5nIHRvIHRyeSB0byBtYXRjaCAiLU1BTlVGQUNUVVJFUiIgaGVyZSAoc2F5LAotIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAotIyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCi0jIHdpbGwgc2lnbmFsIGFuIGVycm9yIHNheWluZyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcKLSMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCi0KLWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KLQkqLWFjb3JuKQotCQlvcz0tcmlzY2l4MS4yCi0JCTs7Ci0JYXJtKi1yZWJlbCkKLQkJb3M9LWxpbnV4Ci0JCTs7Ci0JYXJtKi1zZW1pKQotCQlvcz0tYW91dAotCQk7OwotICAgIGM0eC0qIHwgdGljNHgtKikKLSAgICAgICAgb3M9LWNvZmYKLSAgICAgICAgOzsKLQkjIFRoaXMgbXVzdCBjb21lIGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCi0JcGRwMTAtKikKLQkJb3M9LXRvcHMyMAotCQk7OwotCXBkcDExLSopCi0JCW9zPS1ub25lCi0JCTs7Ci0JKi1kZWMgfCB2YXgtKikKLQkJb3M9LXVsdHJpeDQuMgotCQk7OwotCW02OCotYXBvbGxvKQotCQlvcz0tZG9tYWluCi0JCTs7Ci0JaTM4Ni1zdW4pCi0JCW9zPS1zdW5vczQuMC4yCi0JCTs7Ci0JbTY4MDAwLXN1bikKLQkJb3M9LXN1bm9zMwotCQkjIFRoaXMgYWxzbyBleGlzdHMgaW4gdGhlIGNvbmZpZ3VyZSBwcm9ncmFtLCBidXQgd2FzIG5vdCB0aGUKLQkJIyBkZWZhdWx0LgotCQkjIG9zPS1zdW5vczQKLQkJOzsKLQltNjgqLWNpc2NvKQotCQlvcz0tYW91dAotCQk7OwotCW1pcHMqLWNpc2NvKQotCQlvcz0tZWxmCi0JCTs7Ci0JbWlwcyotKikKLQkJb3M9LWVsZgotCQk7OwotCW9yMzItKikKLQkJb3M9LWNvZmYKLQkJOzsKLQkqLXR0aSkJIyBtdXN0IGJlIGJlZm9yZSBzcGFyYyBlbnRyeSBvciB3ZSBnZXQgdGhlIHdyb25nIG9zLgotCQlvcz0tc3lzdjMKLQkJOzsKLQlzcGFyYy0qIHwgKi1zdW4pCi0JCW9zPS1zdW5vczQuMS4xCi0JCTs7Ci0JKi1iZSkKLQkJb3M9LWJlb3MKLQkJOzsKLQkqLWlibSkKLQkJb3M9LWFpeAotCQk7OwotICAgIAkqLWtudXRoKQotCQlvcz0tbW1peHdhcmUKLQkJOzsKLQkqLXdlYykKLQkJb3M9LXByb2VsZgotCQk7OwotCSotd2luYm9uZCkKLQkJb3M9LXByb2VsZgotCQk7OwotCSotb2tpKQotCQlvcz0tcHJvZWxmCi0JCTs7Ci0JKi1ocCkKLQkJb3M9LWhwdXgKLQkJOzsKLQkqLWhpdGFjaGkpCi0JCW9zPS1oaXV4Ci0JCTs7Ci0JaTg2MC0qIHwgKi1hdHQgfCAqLW5jciB8ICotYWx0b3MgfCAqLW1vdG9yb2xhIHwgKi1jb252ZXJnZW50KQotCQlvcz0tc3lzdgotCQk7OwotCSotY2JtKQotCQlvcz0tYW1pZ2FvcwotCQk7OwotCSotZGcpCi0JCW9zPS1kZ3V4Ci0JCTs7Ci0JKi1kb2xwaGluKQotCQlvcz0tc3lzdjMKLQkJOzsKLQltNjhrLWNjdXIpCi0JCW9zPS1ydHUKLQkJOzsKLQltODhrLW9tcm9uKikKLQkJb3M9LWx1bmEKLQkJOzsKLQkqLW5leHQgKQotCQlvcz0tbmV4dHN0ZXAKLQkJOzsKLQkqLXNlcXVlbnQpCi0JCW9zPS1wdHgKLQkJOzsKLQkqLWNyZHMpCi0JCW9zPS11bm9zCi0JCTs7Ci0JKi1ucykKLQkJb3M9LWdlbml4Ci0JCTs7Ci0JaTM3MC0qKQotCQlvcz0tbXZzCi0JCTs7Ci0JKi1uZXh0KQotCQlvcz0tbmV4dHN0ZXAzCi0JCTs7Ci0JKi1nb3VsZCkKLQkJb3M9LXN5c3YKLQkJOzsKLQkqLWhpZ2hsZXZlbCkKLQkJb3M9LWJzZAotCQk7OwotCSotZW5jb3JlKQotCQlvcz0tYnNkCi0JCTs7Ci0JKi1zZ2kpCi0JCW9zPS1pcml4Ci0JCTs7Ci0JKi1zaWVtZW5zKQotCQlvcz0tc3lzdjQKLQkJOzsKLQkqLW1hc3Njb21wKQotCQlvcz0tcnR1Ci0JCTs7Ci0JZjMwWzAxXS1mdWppdHN1IHwgZjcwMC1mdWppdHN1KQotCQlvcz0tdXhwdgotCQk7OwotCSotcm9tNjhrKQotCQlvcz0tY29mZgotCQk7OwotCSotKmJ1ZykKLQkJb3M9LWNvZmYKLQkJOzsKLQkqLWFwcGxlKQotCQlvcz0tbWFjb3MKLQkJOzsKLQkqLWF0YXJpKikKLQkJb3M9LW1pbnQKLQkJOzsKLQkqKQotCQlvcz0tbm9uZQotCQk7OwotZXNhYwotZmkKLQotIyBIZXJlIHdlIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBrbm93IHRoZSBvcywgYW5kIHRoZSBDUFUgdHlwZSwgYnV0IG5vdCB0aGUKLSMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCi12ZW5kb3I9dW5rbm93bgotY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotCSotdW5rbm93bikKLQkJY2FzZSAkb3MgaW4KLQkJCS1yaXNjaXgqKQotCQkJCXZlbmRvcj1hY29ybgotCQkJCTs7Ci0JCQktc3Vub3MqKQotCQkJCXZlbmRvcj1zdW4KLQkJCQk7OwotCQkJLWFpeCopCi0JCQkJdmVuZG9yPWlibQotCQkJCTs7Ci0JCQktYmVvcyopCi0JCQkJdmVuZG9yPWJlCi0JCQkJOzsKLQkJCS1ocHV4KikKLQkJCQl2ZW5kb3I9aHAKLQkJCQk7OwotCQkJLW1wZWl4KikKLQkJCQl2ZW5kb3I9aHAKLQkJCQk7OwotCQkJLWhpdXgqKQotCQkJCXZlbmRvcj1oaXRhY2hpCi0JCQkJOzsKLQkJCS11bm9zKikKLQkJCQl2ZW5kb3I9Y3JkcwotCQkJCTs7Ci0JCQktZGd1eCopCi0JCQkJdmVuZG9yPWRnCi0JCQkJOzsKLQkJCS1sdW5hKikKLQkJCQl2ZW5kb3I9b21yb24KLQkJCQk7OwotCQkJLWdlbml4KikKLQkJCQl2ZW5kb3I9bnMKLQkJCQk7OwotCQkJLW12cyogfCAtb3BlbmVkKikKLQkJCQl2ZW5kb3I9aWJtCi0JCQkJOzsKLQkJCS1vczQwMCopCi0JCQkJdmVuZG9yPWlibQotCQkJCTs7Ci0JCQktcHR4KikKLQkJCQl2ZW5kb3I9c2VxdWVudAotCQkJCTs7Ci0JCQktdHBmKikKLQkJCQl2ZW5kb3I9aWJtCi0JCQkJOzsKLQkJCS12eHNpbSogfCAtdnh3b3JrcyogfCAtd2luZGlzcyopCi0JCQkJdmVuZG9yPXdycwotCQkJCTs7Ci0JCQktYXV4KikKLQkJCQl2ZW5kb3I9YXBwbGUKLQkJCQk7OwotCQkJLWhtcyopCi0JCQkJdmVuZG9yPWhpdGFjaGkKLQkJCQk7OwotCQkJLW1wdyogfCAtbWFjb3MqKQotCQkJCXZlbmRvcj1hcHBsZQotCQkJCTs7Ci0JCQktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQotCQkJCXZlbmRvcj1hdGFyaQotCQkJCTs7Ci0JCQktdm9zKikKLQkJCQl2ZW5kb3I9c3RyYXR1cwotCQkJCTs7Ci0JCWVzYWMKLQkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKLQkJOzsKLWVzYWMKLQotZWNobyAkYmFzaWNfbWFjaGluZSRvcwotZXhpdCAwCi0KLSMgTG9jYWwgdmFyaWFibGVzOgotIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCi0jIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKLSMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgotIyB0aW1lLXN0YW1wLWVuZDogIiciCi0jIEVuZDoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggN2RjZGZiMC4uMDAwMDAwMAotLS0gYS9jb25maWd1cmUKKysrIC9kZXYvbnVsbApAQCAtMSw5NzMwICswLDAgQEAKLSMhIC9iaW4vc2gKLSMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5IGZvciBzdHJhY2UgNC41LjEyLgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0jIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBCZSBCb3VybmUgY29tcGF0aWJsZQotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGVtdWxhdGUgc2gKLSAgTlVMTENNRD06Ci0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBzZXQgLW8gcG9zaXgKLWZpCi1EVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0Ci1lbHNlCi0gIGFzX3Vuc2V0PWZhbHNlCi1maQotCi0KLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi1QUzE9JyQgJwotUFMyPSc+ICcKLVBTND0nKyAnCi0KLSMgTkxTIG51aXNhbmNlcy4KLWZvciBhc192YXIgaW4gXAotICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotICBMQ19URUxFUEhPTkUgTENfVElNRQotZG8KLSAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLSAgZWxzZQotICAgICRhc191bnNldCAkYXNfdmFyCi0gIGZpCi1kb25lCi0KLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgYXNfZXhwcj1leHByCi1lbHNlCi0gIGFzX2V4cHI9ZmFsc2UKLWZpCi0KLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLWVsc2UKLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLWZpCi0KLQotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYLyIkMCIgfAotICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLQotCi0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLQotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NFUEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLQotCi0gIGFzX2xpbmVub18xPSRMSU5FTk8KLSAgYXNfbGluZW5vXzI9JExJTkVOTwotICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLSAgIyByZWxhdGl2ZSBvciBub3QuCi0gIGNhc2UgJDAgaW4KLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotZG9uZQotCi0gICAgICAgOzsKLSAgZXNhYwotICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0gICAgYXNfbXlzZWxmPSQwCi0gIGZpCi0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICBmaQotICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLSAgJycpCi0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0JIGNhc2UgJGFzX2RpciBpbgotCSAvKikKLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLSAgYXNfbGluZW5vXzE9JExJTkVOTwotICBhc19saW5lbm9fMj0kTElORU5PCi0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0JICAgZmk7OwotCSBlc2FjCi0gICAgICAgZG9uZQotZG9uZQotOzsKLSAgZXNhYwotCi0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLSAgICBzZWQgJwotICAgICAgTgotICAgICAgcywkLC0sCi0gICAgICA6IGxvb3AKLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotICAgICAgdCBsb29wCi0gICAgICBzLC0kLCwKLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi0gICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0gIC4gLi8kYXNfbWUubGluZW5vCi0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotICBleGl0Ci19Ci0KLQotY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotJyBFQ0hPX1Q9JwknIDs7Ci0gICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci1lc2FjCi0KLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX2V4cHI9ZXhwcgotZWxzZQotICBhc19leHByPWZhbHNlCi1maQotCi1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotZWNobyA+Y29uZiQkLmZpbGUKLWlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLSAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCi0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotICAgIGFzX2xuX3M9J2NwIC1wJwotICBlbHNlCi0gICAgYXNfbG5fcz0nbG4gLXMnCi0gIGZpCi1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICBhc19sbl9zPWxuCi1lbHNlCi0gIGFzX2xuX3M9J2NwIC1wJwotZmkKLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0KLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSAgYXNfbWtkaXJfcD06Ci1lbHNlCi0gIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gIGFzX21rZGlyX3A9ZmFsc2UKLWZpCi0KLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi1hc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotCi0KLSMgSUZTCi0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotYXNfbmw9JwotJwotSUZTPSIgCSRhc19ubCIKLQotIyBDRFBBVEguCi0kYXNfdW5zZXQgQ0RQQVRICi0KLQotIyBOYW1lIG9mIHRoZSBob3N0LgotIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKLSMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgotYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCi0KLWV4ZWMgNj4mMQotCi0jCi0jIEluaXRpYWxpemF0aW9ucy4KLSMKLWFjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLWFjX2NvbmZpZ19saWJvYmpfZGlyPS4KLWNyb3NzX2NvbXBpbGluZz1ubwotc3ViZGlycz0KLU1GTEFHUz0KLU1BS0VGTEFHUz0KLVNIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Ci0KLSMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2hlbGwgaGVyZSBkb2N1bWVudC4KLSMgVGhpcyB2YXJpYWJsZSBzZWVtcyBvYnNvbGV0ZS4gIEl0IHNob3VsZCBwcm9iYWJseSBiZSByZW1vdmVkLCBhbmQKLSMgb25seSBhY19tYXhfc2VkX2xpbmVzIHNob3VsZCBiZSB1c2VkLgotOiAke2FjX21heF9oZXJlX2xpbmVzPTM4fQotCi0jIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLVBBQ0tBR0VfTkFNRT0nc3RyYWNlJwotUEFDS0FHRV9UQVJOQU1FPSdzdHJhY2UnCi1QQUNLQUdFX1ZFUlNJT049JzQuNS4xMicKLVBBQ0tBR0VfU1RSSU5HPSdzdHJhY2UgNC41LjEyJwotUEFDS0FHRV9CVUdSRVBPUlQ9JycKLQotYWNfdW5pcXVlX2ZpbGU9InN0cmFjZS5jIgotIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBtb3N0IHRlc3RzLgotYWNfaW5jbHVkZXNfZGVmYXVsdD0iXAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaWYgSEFWRV9TWVNfVFlQRVNfSAotIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNlbmRpZgotI2lmIEhBVkVfU1lTX1NUQVRfSAotIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2VuZGlmCi0jaWYgU1REQ19IRUFERVJTCi0jIGluY2x1ZGUgPHN0ZGxpYi5oPgotIyBpbmNsdWRlIDxzdGRkZWYuaD4KLSNlbHNlCi0jIGlmIEhBVkVfU1RETElCX0gKLSMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotIyBlbmRpZgotI2VuZGlmCi0jaWYgSEFWRV9TVFJJTkdfSAotIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKLSMgIGluY2x1ZGUgPG1lbW9yeS5oPgotIyBlbmRpZgotIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSNlbmRpZgotI2lmIEhBVkVfU1RSSU5HU19ICi0jIGluY2x1ZGUgPHN0cmluZ3MuaD4KLSNlbmRpZgotI2lmIEhBVkVfSU5UVFlQRVNfSAotIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotI2Vsc2UKLSMgaWYgSEFWRV9TVERJTlRfSAotIyAgaW5jbHVkZSA8c3RkaW50Lmg+Ci0jIGVuZGlmCi0jZW5kaWYKLSNpZiBIQVZFX1VOSVNURF9ICi0jIGluY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmIgotCi1hY19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIElOU1RBTExfUFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFBBQ0tBR0UgVkVSU0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8gaW5zdGFsbF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJfcCBBV0sgU0VUX01BS0UgYW1fX2xlYWRpbmdfZG90IEFNVEFSIGFtX190YXIgYW1fX3VudGFyIE1BSU5UQUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJfTU9ERV9GQUxTRSBNQUlOVCBidWlsZCBidWlsZF9jcHUgYnVpbGRfdmVuZG9yIGJ1aWxkX29zIGhvc3QgaG9zdF9jcHUgaG9zdF92ZW5kb3IgaG9zdF9vcyBvcHN5cyBhcmNoIExJTlVYX1RSVUUgTElOVVhfRkFMU0UgSTM4Nl9UUlVFIEkzODZfRkFMU0UgWDg2XzY0X1RSVUUgWDg2XzY0X0ZBTFNFIFNVTk9TNF9UUlVFIFNVTk9TNF9GQUxTRSBTVlI0X1RSVUUgU1ZSNF9GQUxTRSBGUkVFQlNEX1RSVUUgRlJFRUJTRF9GQUxTRSBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIERFUERJUiBhbV9faW5jbHVkZSBhbV9fcXVvdGUgQU1ERVBfVFJVRSBBTURFUF9GQUxTRSBBTURFUEJBQ0tTTEFTSCBDQ0RFUE1PREUgYW1fX2Zhc3RkZXBDQ19UUlVFIGFtX19mYXN0ZGVwQ0NfRkFMU0UgV0FSTkZMQUdTIENQUCBFR1JFUCBQRVJMIExJQk9CSlMgTFRMSUJPQkpTJwotYWNfc3Vic3RfZmlsZXM9JycKLQotIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotYWNfaW5pdF9oZWxwPQotYWNfaW5pdF92ZXJzaW9uPWZhbHNlCi0jIFRoZSB2YXJpYWJsZXMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcyB0aGUgb3B0aW9ucywgd2l0aAotIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgotY2FjaGVfZmlsZT0vZGV2L251bGwKLWV4ZWNfcHJlZml4PU5PTkUKLW5vX2NyZWF0ZT0KLW5vX3JlY3Vyc2lvbj0KLXByZWZpeD1OT05FCi1wcm9ncmFtX3ByZWZpeD1OT05FCi1wcm9ncmFtX3N1ZmZpeD1OT05FCi1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAotc2lsZW50PQotc2l0ZT0KLXNyY2Rpcj0KLXZlcmJvc2U9Ci14X2luY2x1ZGVzPU5PTkUKLXhfbGlicmFyaWVzPU5PTkUKLQotIyBJbnN0YWxsYXRpb24gZGlyZWN0b3J5IG9wdGlvbnMuCi0jIFRoZXNlIGFyZSBsZWZ0IHVuZXhwYW5kZWQgc28gdXNlcnMgY2FuICJtYWtlIGluc3RhbGwgZXhlY19wcmVmaXg9L2ZvbyIKLSMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4Ci0jIGJ5IGRlZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2UuCi0jIFVzZSBicmFjZXMgaW5zdGVhZCBvZiBwYXJlbnMgYmVjYXVzZSBzaCwgcGVybCwgZXRjLiBhbHNvIGFjY2VwdCB0aGVtLgotYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCi1zYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwotbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKLWRhdGFkaXI9JyR7cHJlZml4fS9zaGFyZScKLXN5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCi1zaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKLWxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCi1saWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKLWluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwotb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwotaW5mb2Rpcj0nJHtwcmVmaXh9L2luZm8nCi1tYW5kaXI9JyR7cHJlZml4fS9tYW4nCi0KLWFjX3ByZXY9Ci1mb3IgYWNfb3B0aW9uCi1kbwotICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KLSAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0gICAgZXZhbCAiJGFjX3ByZXY9XCRhY19vcHRpb24iCi0gICAgYWNfcHJldj0KLSAgICBjb250aW51ZQotICBmaQotCi0gIGFjX29wdGFyZz1gZXhwciAieCRhY19vcHRpb24iIDogJ3hbXj1dKj1cKC4qXCknYAotCi0gICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0KLSAgY2FzZSAkYWNfb3B0aW9uIGluCi0KLSAgLWJpbmRpciB8IC0tYmluZGlyIHwgLS1iaW5kaSB8IC0tYmluZCB8IC0tYmluIHwgLS1iaSkKLSAgICBhY19wcmV2PWJpbmRpciA7OwotICAtYmluZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQotICAgIGJpbmRpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKLSAgICBhY19wcmV2PWJ1aWxkX2FsaWFzIDs7Ci0gIC1idWlsZD0qIHwgLS1idWlsZD0qIHwgLS1idWlsPSogfCAtLWJ1aT0qIHwgLS1idT0qKQotICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKLQotICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1maSBcCi0gIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotICAgIGFjX3ByZXY9Y2FjaGVfZmlsZSA7OwotICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKLSAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSAgICBjYWNoZV9maWxlPSRhY19vcHRhcmcgOzsKLQotICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotICAgIGNhY2hlX2ZpbGU9Y29uZmlnLmNhY2hlIDs7Ci0KLSAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQgfCAtLWRhdGEgfCAtLWRhdCB8IC0tZGEpCi0gICAgYWNfcHJldj1kYXRhZGlyIDs7Ci0gIC1kYXRhZGlyPSogfCAtLWRhdGFkaXI9KiB8IC0tZGF0YWRpPSogfCAtLWRhdGFkPSogfCAtLWRhdGE9KiB8IC0tZGF0PSogXAotICB8IC0tZGE9KikKLSAgICBkYXRhZGlyPSRhY19vcHRhcmcgOzsKLQotICAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSopCi0gICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwpJ2AKLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0gICAgZXhwciAieCRhY19mZWF0dXJlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfZmVhdHVyZSIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAgICBhY19mZWF0dXJlPWBlY2hvICRhY19mZWF0dXJlIHwgc2VkICdzLy0vXy9nJ2AKLSAgICBldmFsICJlbmFibGVfJGFjX2ZlYXR1cmU9bm8iIDs7Ci0KLSAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKLSAgICBhY19mZWF0dXJlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGV4cHIgIngkYWNfZmVhdHVyZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2ZlYXR1cmUiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZSB8IHNlZCAncy8tL18vZydgCi0gICAgY2FzZSAkYWNfb3B0aW9uIGluCi0gICAgICAqPSopIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwotICAgICAgKikgYWNfb3B0YXJnPXllcyA7OwotICAgIGVzYWMKLSAgICBldmFsICJlbmFibGVfJGFjX2ZlYXR1cmU9JyRhY19vcHRhcmcnIiA7OwotCi0gIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZpIFwKLSAgfCAtLWV4ZWMtcHJlZiB8IC0tZXhlYy1wcmUgfCAtLWV4ZWMtcHIgfCAtLWV4ZWMtcCB8IC0tZXhlYy0gXAotICB8IC0tZXhlYyB8IC0tZXhlIHwgLS1leCkKLSAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7Ci0gIC1leGVjLXByZWZpeD0qIHwgLS1leGVjX3ByZWZpeD0qIHwgLS1leGVjLXByZWZpeD0qIHwgLS1leGVjLXByZWZpPSogXAotICB8IC0tZXhlYy1wcmVmPSogfCAtLWV4ZWMtcHJlPSogfCAtLWV4ZWMtcHI9KiB8IC0tZXhlYy1wPSogfCAtLWV4ZWMtPSogXAotICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLSAgICBleGVjX3ByZWZpeD0kYWNfb3B0YXJnIDs7Ci0KLSAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLWdhcy4KLSAgICB3aXRoX2dhcz15ZXMgOzsKLQotICAtaGVscCB8IC0taGVscCB8IC0taGVsIHwgLS1oZSB8IC1oKQotICAgIGFjX2luaXRfaGVscD1sb25nIDs7Ci0gIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLSAgICBhY19pbml0X2hlbHA9cmVjdXJzaXZlIDs7Ci0gIC1oZWxwPXMqIHwgLS1oZWxwPXMqIHwgLS1oZWw9cyogfCAtLWhlPXMqIHwgLWhzKikKLSAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLQotICAtaG9zdCB8IC0taG9zdCB8IC0taG9zIHwgLS1obykKLSAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKLSAgLWhvc3Q9KiB8IC0taG9zdD0qIHwgLS1ob3M9KiB8IC0taG89KikKLSAgICBob3N0X2FsaWFzPSRhY19vcHRhcmcgOzsKLQotICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0gIHwgLS1pbmNsdWQgfCAtLWluY2x1IHwgLS1pbmNsIHwgLS1pbmMpCi0gICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7Ci0gIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0gIHwgLS1pbmNsdWQ9KiB8IC0taW5jbHU9KiB8IC0taW5jbD0qIHwgLS1pbmM9KikKLSAgICBpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKLQotICAtaW5mb2RpciB8IC0taW5mb2RpciB8IC0taW5mb2RpIHwgLS1pbmZvZCB8IC0taW5mbyB8IC0taW5mKQotICAgIGFjX3ByZXY9aW5mb2RpciA7OwotICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotICAgIGluZm9kaXI9JGFjX29wdGFyZyA7OwotCi0gIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCi0gICAgYWNfcHJldj1saWJkaXIgOzsKLSAgLWxpYmRpcj0qIHwgLS1saWJkaXI9KiB8IC0tbGliZGk9KiB8IC0tbGliZD0qKQotICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAtLWxpYmV4ZWMgXAotICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSAgICBhY19wcmV2PWxpYmV4ZWNkaXIgOzsKLSAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGk9KiB8IC0tbGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKLSAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0gICAgbGliZXhlY2Rpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaXIgfCAtLWxvY2Fsc3RhdGVkaSB8IC0tbG9jYWxzdGF0ZWQgXAotICB8IC0tbG9jYWxzdGF0ZSB8IC0tbG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCBcCi0gIHwgLS1sb2NhbHMgfCAtLWxvY2FsIHwgLS1sb2NhIHwgLS1sb2MgfCAtLWxvKQotICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OwotICAtbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaT0qIHwgLS1sb2NhbHN0YXRlZD0qIFwKLSAgfCAtLWxvY2Fsc3RhdGU9KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAtLWxvY2Fsc3Q9KiBcCi0gIHwgLS1sb2NhbHM9KiB8IC0tbG9jYWw9KiB8IC0tbG9jYT0qIHwgLS1sb2M9KiB8IC0tbG89KikKLSAgICBsb2NhbHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKLQotICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQotICAgIGFjX3ByZXY9bWFuZGlyIDs7Ci0gIC1tYW5kaXI9KiB8IC0tbWFuZGlyPSogfCAtLW1hbmRpPSogfCAtLW1hbmQ9KiB8IC0tbWFuPSogfCAtLW1hPSogfCAtLW09KikKLSAgICBtYW5kaXI9JGFjX29wdGFyZyA7OwotCi0gIC1uZnAgfCAtLW5mcCB8IC0tbmYpCi0gICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSAgICB3aXRoX2ZwPW5vIDs7Ci0KLSAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSAgfCAtLW5vLWNyIHwgLS1uby1jIHwgLW4pCi0gICAgbm9fY3JlYXRlPXllcyA7OwotCi0gIC1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW8gfCAtLW5vLXJlY3Vyc2kgXAotICB8IC0tbm8tcmVjdXJzIHwgLS1uby1yZWN1ciB8IC0tbm8tcmVjdSB8IC0tbm8tcmVjIHwgLS1uby1yZSB8IC0tbm8tcikKLSAgICBub19yZWN1cnNpb249eWVzIDs7Ci0KLSAgLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaXIgfCAtLW9sZGluY2x1ZGVkaSB8IC0tb2xkaW5jbHVkZWQgXAotICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKLSAgfCAtLW9sZGluIHwgLS1vbGRpIHwgLS1vbGQgfCAtLW9sIHwgLS1vKQotICAgIGFjX3ByZXY9b2xkaW5jbHVkZWRpciA7OwotICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKLSAgfCAtLW9sZGluY2x1ZGU9KiB8IC0tb2xkaW5jbHVkPSogfCAtLW9sZGluY2x1PSogfCAtLW9sZGluY2w9KiB8IC0tb2xkaW5jPSogXAotICB8IC0tb2xkaW49KiB8IC0tb2xkaT0qIHwgLS1vbGQ9KiB8IC0tb2w9KiB8IC0tbz0qKQotICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotCi0gIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCi0gICAgYWNfcHJldj1wcmVmaXggOzsKLSAgLXByZWZpeD0qIHwgLS1wcmVmaXg9KiB8IC0tcHJlZmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0tcD0qKQotICAgIHByZWZpeD0kYWNfb3B0YXJnIDs7Ci0KLSAgLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaSB8IC0tcHJvZ3JhbS1wcmVmIFwKLSAgfCAtLXByb2dyYW0tcHJlIHwgLS1wcm9ncmFtLXByIHwgLS1wcm9ncmFtLXApCi0gICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotICAtcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaT0qIFwKLSAgfCAtLXByb2dyYW0tcHJlZj0qIHwgLS1wcm9ncmFtLXByZT0qIHwgLS1wcm9ncmFtLXByPSogfCAtLXByb2dyYW0tcD0qKQotICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLQotICAtcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpIHwgLS1wcm9ncmFtLXN1ZmYgXAotICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKLSAgICBhY19wcmV2PXByb2dyYW1fc3VmZml4IDs7Ci0gIC1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpeD0qIHwgLS1wcm9ncmFtLXN1ZmZpPSogXAotICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCi0gICAgcHJvZ3JhbV9zdWZmaXg9JGFjX29wdGFyZyA7OwotCi0gIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmEgXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmbyB8IC0tcHJvZ3JhbS10cmFuc2YgXAotICB8IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFuIFwKLSAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotICAgIGFjX3ByZXY9cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA7OwotICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbj0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS09KiBcCi0gIHwgLS1wcm9ncmFtLXRyYW5zZm9ybT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9yPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAotICB8IC0tcHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCi0gIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9ncmFtLXQ9KikKLSAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLQotICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSAgICBzaWxlbnQ9eWVzIDs7Ci0KLSAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCi0gICAgYWNfcHJldj1zYmluZGlyIDs7Ci0gIC1zYmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCi0gIHwgLS1zYmk9KiB8IC0tc2I9KikKLSAgICBzYmluZGlyPSRhY19vcHRhcmcgOzsKLQotICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSAgfCAtLXNoYXJlZHN0YXRlZCB8IC0tc2hhcmVkc3RhdGUgfCAtLXNoYXJlZHN0YXQgfCAtLXNoYXJlZHN0YSBcCi0gIHwgLS1zaGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hhcmVkIHwgLS1zaGFyZSB8IC0tc2hhciBcCi0gIHwgLS1zaGEgfCAtLXNoKQotICAgIGFjX3ByZXY9c2hhcmVkc3RhdGVkaXIgOzsKLSAgLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGk9KiBcCi0gIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCi0gIHwgLS1zaGFyZWRzdD0qIHwgLS1zaGFyZWRzPSogfCAtLXNoYXJlZD0qIHwgLS1zaGFyZT0qIHwgLS1zaGFyPSogXAotICB8IC0tc2hhPSogfCAtLXNoPSopCi0gICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotCi0gIC1zaXRlIHwgLS1zaXRlIHwgLS1zaXQpCi0gICAgYWNfcHJldj1zaXRlIDs7Ci0gIC1zaXRlPSogfCAtLXNpdGU9KiB8IC0tc2l0PSopCi0gICAgc2l0ZT0kYWNfb3B0YXJnIDs7Ci0KLSAgLXNyY2RpciB8IC0tc3JjZGlyIHwgLS1zcmNkaSB8IC0tc3JjZCB8IC0tc3JjIHwgLS1zcikKLSAgICBhY19wcmV2PXNyY2RpciA7OwotICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQotICAgIHNyY2Rpcj0kYWNfb3B0YXJnIDs7Ci0KLSAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAotICB8IC0tc3lzY29uIHwgLS1zeXNjbyB8IC0tc3lzYyB8IC0tc3lzIHwgLS1zeSkKLSAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKLSAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKLSAgfCAtLXN5c2Nvbj0qIHwgLS1zeXNjbz0qIHwgLS1zeXNjPSogfCAtLXN5cz0qIHwgLS1zeT0qKQotICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OwotCi0gIC10YXJnZXQgfCAtLXRhcmdldCB8IC0tdGFyZ2UgfCAtLXRhcmcgfCAtLXRhciB8IC0tdGEgfCAtLXQpCi0gICAgYWNfcHJldj10YXJnZXRfYWxpYXMgOzsKLSAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotICAgIHRhcmdldF9hbGlhcz0kYWNfb3B0YXJnIDs7Ci0KLSAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSAgICB2ZXJib3NlPXllcyA7OwotCi0gIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0gICAgYWNfaW5pdF92ZXJzaW9uPTogOzsKLQotICAtd2l0aC0qIHwgLS13aXRoLSopCi0gICAgYWNfcGFja2FnZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGgtXChbXj1dKlwpJ2AKLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0gICAgZXhwciAieCRhY19wYWNrYWdlIiA6ICIuKlteLV8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfcGFja2FnZSIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAgICBhY19wYWNrYWdlPWBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvLS9fL2cnYAotICAgIGNhc2UgJGFjX29wdGlvbiBpbgotICAgICAgKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKLSAgICAgICopIGFjX29wdGFyZz15ZXMgOzsKLSAgICBlc2FjCi0gICAgZXZhbCAid2l0aF8kYWNfcGFja2FnZT0nJGFjX29wdGFyZyciIDs7Ci0KLSAgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qKQotICAgIGFjX3BhY2thZ2U9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGV4cHIgIngkYWNfcGFja2FnZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3BhY2thZ2UiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZSB8IHNlZCAncy8tL18vZydgCi0gICAgZXZhbCAid2l0aF8kYWNfcGFja2FnZT1ubyIgOzsKLQotICAtLXgpCi0gICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC14LgotICAgIHdpdGhfeD15ZXMgOzsKLQotICAteC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlcyB8IC0teC1pbmNsdWRlIHwgLS14LWluY2x1ZCB8IC0teC1pbmNsdSBcCi0gIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCi0gICAgYWNfcHJldj14X2luY2x1ZGVzIDs7Ci0gIC14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlPSogfCAtLXgtaW5jbHVkPSogfCAtLXgtaW5jbHU9KiBcCi0gIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9KikKLSAgICB4X2luY2x1ZGVzPSRhY19vcHRhcmcgOzsKLQotICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotICB8IC0teC1saWJyYXIgfCAtLXgtbGlicmEgfCAtLXgtbGliciB8IC0teC1saWIgfCAtLXgtbGkgfCAtLXgtbCkKLSAgICBhY19wcmV2PXhfbGlicmFyaWVzIDs7Ci0gIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSAgfCAtLXgtbGlicmFyPSogfCAtLXgtbGlicmE9KiB8IC0teC1saWJyPSogfCAtLXgtbGliPSogfCAtLXgtbGk9KiB8IC0teC1sPSopCi0gICAgeF9saWJyYXJpZXM9JGFjX29wdGFyZyA7OwotCi0gIC0qKSB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICRhY19vcHRpb24KLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICAgIDs7Ci0KLSAgKj0qKQotICAgIGFjX2VudnZhcj1gZXhwciAieCRhY19vcHRpb24iIDogJ3hcKFtePV0qXCk9J2AKLSAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0gICAgZXhwciAieCRhY19lbnZ2YXIiIDogIi4qW15fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYAotICAgIGV2YWwgIiRhY19lbnZ2YXI9JyRhY19vcHRhcmcnIgotICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0KLSAgKikKLSAgICAjIEZJWE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0gICAgZWNobyAiJGFzX21lOiBXQVJOSU5HOiB5b3Ugc2hvdWxkIHVzZSAtLWJ1aWxkLCAtLWhvc3QsIC0tdGFyZ2V0IiA+JjIKLSAgICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSAgICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogaW52YWxpZCBob3N0IHR5cGU6ICRhY19vcHRpb24iID4mMgotICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9ufSAke2hvc3RfYWxpYXM9JGFjX29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KLSAgICA7OwotCi0gIGVzYWMKLWRvbmUKLQotaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCi0gIGFjX29wdGlvbj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AKLSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi0jIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBwYXRocy4KLWZvciBhY192YXIgaW4gZXhlY19wcmVmaXggcHJlZml4Ci1kbwotICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKLSAgY2FzZSAkYWNfdmFsIGluCi0gICAgW1xcLyRdKiB8ID86W1xcL10qIHwgTk9ORSB8ICcnICkgOzsKLSAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0gIGVzYWMKLWRvbmUKLQotIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgcGF0aHMuCi1mb3IgYWNfdmFyIGluIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIFwKLQkgICAgICBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIKLWRvCi0gIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotICBjYXNlICRhY192YWwgaW4KLSAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotICAgICopICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKLSAgZXNhYwotZG9uZQotCi0jIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCi0jIHVzZWQgdG8gaG9sZCB0aGUgYXJndW1lbnQgb2YgLS1ob3N0IGV0Yy4KLSMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLWJ1aWxkPSRidWlsZF9hbGlhcwotaG9zdD0kaG9zdF9hbGlhcwotdGFyZ2V0PSR0YXJnZXRfYWxpYXMKLQotIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgotaWYgdGVzdCAieCRob3N0X2FsaWFzIiAhPSB4OyB0aGVuCi0gIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsgdGhlbgotICAgIGNyb3NzX2NvbXBpbGluZz1tYXliZQotICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KLSAgICBJZiBhIGNyb3NzIGNvbXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdpbGwgYmUgdXNlZC4iID4mMgotICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVuCi0gICAgY3Jvc3NfY29tcGlsaW5nPXllcwotICBmaQotZmkKLQotYWNfdG9vbF9wcmVmaXg9Ci10ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9JGhvc3RfYWxpYXMtCi0KLXRlc3QgIiRzaWxlbnQiID0geWVzICYmIGV4ZWMgNj4vZGV2L251bGwKLQotCi0jIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCi1pZiB0ZXN0IC16ICIkc3JjZGlyIjsgdGhlbgotICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcwotICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gaXRzIHBhcmVudC4KLSAgYWNfY29uZmRpcj1gKGRpcm5hbWUgIiQwIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJDAiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJDAiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJDAiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkMCIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIHNyY2Rpcj0kYWNfY29uZmRpcgotICBpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KLSAgICBzcmNkaXI9Li4KLSAgZmkKLWVsc2UKLSAgYWNfc3JjZGlyX2RlZmF1bHRlZD1ubwotZmkKLWlmIHRlc3QgISAtciAkc3JjZGlyLyRhY191bmlxdWVfZmlsZTsgdGhlbgotICBpZiB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIgPSB5ZXM7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJGFjX2NvbmZkaXIgb3IgLi4iID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gIGVsc2UKLSAgICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIgPiYyCi0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSAgZmkKLWZpCi0oY2QgJHNyY2RpciAmJiB0ZXN0IC1yIC4vJGFjX3VuaXF1ZV9maWxlKSAyPi9kZXYvbnVsbCB8fAotICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IHNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1zcmNkaXI9YGVjaG8gIiRzcmNkaXIiIHwgc2VkICdzJVwoW15cXC9dXClbXFwvXSokJVwxJSdgCi1hY19lbnZfYnVpbGRfYWxpYXNfc2V0PSR7YnVpbGRfYWxpYXMrc2V0fQotYWNfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPSRidWlsZF9hbGlhcwotYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD0ke2J1aWxkX2FsaWFzK3NldH0KLWFjX2N2X2Vudl9idWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKLWFjX2Vudl9ob3N0X2FsaWFzX3NldD0ke2hvc3RfYWxpYXMrc2V0fQotYWNfZW52X2hvc3RfYWxpYXNfdmFsdWU9JGhvc3RfYWxpYXMKLWFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD0ke2hvc3RfYWxpYXMrc2V0fQotYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9JGhvc3RfYWxpYXMKLWFjX2Vudl90YXJnZXRfYWxpYXNfc2V0PSR7dGFyZ2V0X2FsaWFzK3NldH0KLWFjX2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlhcwotYWNfY3ZfZW52X3RhcmdldF9hbGlhc19zZXQ9JHt0YXJnZXRfYWxpYXMrc2V0fQotYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0kdGFyZ2V0X2FsaWFzCi1hY19lbnZfQ0Nfc2V0PSR7Q0Mrc2V0fQotYWNfZW52X0NDX3ZhbHVlPSRDQwotYWNfY3ZfZW52X0NDX3NldD0ke0NDK3NldH0KLWFjX2N2X2Vudl9DQ192YWx1ZT0kQ0MKLWFjX2Vudl9DRkxBR1Nfc2V0PSR7Q0ZMQUdTK3NldH0KLWFjX2Vudl9DRkxBR1NfdmFsdWU9JENGTEFHUwotYWNfY3ZfZW52X0NGTEFHU19zZXQ9JHtDRkxBR1Mrc2V0fQotYWNfY3ZfZW52X0NGTEFHU192YWx1ZT0kQ0ZMQUdTCi1hY19lbnZfTERGTEFHU19zZXQ9JHtMREZMQUdTK3NldH0KLWFjX2Vudl9MREZMQUdTX3ZhbHVlPSRMREZMQUdTCi1hY19jdl9lbnZfTERGTEFHU19zZXQ9JHtMREZMQUdTK3NldH0KLWFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPSRMREZMQUdTCi1hY19lbnZfQ1BQRkxBR1Nfc2V0PSR7Q1BQRkxBR1Mrc2V0fQotYWNfZW52X0NQUEZMQUdTX3ZhbHVlPSRDUFBGTEFHUwotYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0ke0NQUEZMQUdTK3NldH0KLWFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0kQ1BQRkxBR1MKLWFjX2Vudl9DUFBfc2V0PSR7Q1BQK3NldH0KLWFjX2Vudl9DUFBfdmFsdWU9JENQUAotYWNfY3ZfZW52X0NQUF9zZXQ9JHtDUFArc2V0fQotYWNfY3ZfZW52X0NQUF92YWx1ZT0kQ1BQCi0KLSMKLSMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KLSMKLWlmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCi0gICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgotICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCi0gIGNhdCA8PF9BQ0VPRgotXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgc3RyYWNlIDQuNS4xMiB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCi0KLVVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgotCi1UbyBhc3NpZ24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCBDQywgQ0ZMQUdTLi4uKSwgc3BlY2lmeSB0aGVtIGFzCi1WQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgotCi1EZWZhdWx0cyBmb3IgdGhlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCBpbiBicmFja2V0cy4KLQotQ29uZmlndXJhdGlvbjoKLSAgLWgsIC0taGVscCAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKLSAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQotICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKLSAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcwotICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRdCi0gIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCi0gIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0cHV0IGZpbGVzCi0gICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQotCi1fQUNFT0YKLQotICBjYXQgPDxfQUNFT0YKLUluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLSAgLS1wcmVmaXg9UFJFRklYICAgICAgICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCi0JCQkgIFskYWNfZGVmYXVsdF9wcmVmaXhdCi0gIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCi0JCQkgIFtQUkVGSVhdCi0KLUJ5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgotXGAkYWNfZGVmYXVsdF9wcmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZb3UgY2FuIHNwZWNpZnkKLWFuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZpeCcsCi1mb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgotCi1Gb3IgYmV0dGVyIGNvbnRyb2wsIHVzZSB0aGUgb3B0aW9ucyBiZWxvdy4KLQotRmluZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLSAgLS1iaW5kaXI9RElSICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KLSAgLS1zYmluZGlyPURJUiAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KLSAgLS1saWJleGVjZGlyPURJUiAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIFtFUFJFRklYL2xpYmV4ZWNdCi0gIC0tZGF0YWRpcj1ESVIgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvc2hhcmVdCi0gIC0tc3lzY29uZmRpcj1ESVIgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNdCi0gIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL2NvbV0KLSAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92YXJdCi0gIC0tbGliZGlyPURJUiAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KLSAgLS1pbmNsdWRlZGlyPURJUiAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCi0gIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KLSAgLS1pbmZvZGlyPURJUiAgICAgICAgICBpbmZvIGRvY3VtZW50YXRpb24gW1BSRUZJWC9pbmZvXQotICAtLW1hbmRpcj1ESVIgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtQUkVGSVgvbWFuXQotX0FDRU9GCi0KLSAgY2F0IDw8XF9BQ0VPRgotCi1Qcm9ncmFtIG5hbWVzOgotICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCAgICAgICAgICAgIHByZXBlbmQgUFJFRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0gIC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotICAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotCi1TeXN0ZW0gdHlwZXM6Ci0gIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCi0gIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQgcHJvZ3JhbXMgdG8gcnVuIG9uIEhPU1QgW0JVSUxEXQotX0FDRU9GCi1maQotCi1pZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgotICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIHN0cmFjZSA0LjUuMTI6Ijs7Ci0gICBlc2FjCi0gIGNhdCA8PFxfQUNFT0YKLQotT3B0aW9uYWwgRmVhdHVyZXM6Ci0gIC0tZGlzYWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1ubykKLSAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQotICAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1bAotCQkJICAoYW5kIHNvbWV0aW1lcyBjb25mdXNpbmcpIHRvIHRoZSBjYXN1YWwgaW5zdGFsbGVyCi0gIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKLSAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMKLQotU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0gIENDICAgICAgICAgIEMgY29tcGlsZXIgY29tbWFuZAotICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0gIExERkxBR1MgICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQotICAgICAgICAgICAgICBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGxpYiBkaXI+Ci0gIENQUEZMQUdTICAgIEMvQysrIHByZXByb2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYgeW91IGhhdmUKLSAgICAgICAgICAgICAgaGVhZGVycyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+Ci0gIENQUCAgICAgICAgIEMgcHJlcHJvY2Vzc29yCi0KLVVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi1pdCB0byBmaW5kIGxpYnJhcmllcyBhbmQgcHJvZ3JhbXMgd2l0aCBub25zdGFuZGFyZCBuYW1lcy9sb2NhdGlvbnMuCi0KLV9BQ0VPRgotZmkKLQotaWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgotICAjIElmIHRoZXJlIGFyZSBzdWJkaXJzLCByZXBvcnQgdGhlaXIgc3BlY2lmaWMgLS1oZWxwLgotICBhY19wb3BkaXI9YHB3ZGAKLSAgZm9yIGFjX2RpciBpbiA6ICRhY19zdWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19kaXIiID0geDogJiYgY29udGludWUKLSAgICB0ZXN0IC1kICRhY19kaXIgfHwgY29udGludWUKLSAgICBhY19idWlsZGRpcj0uCi0KLWlmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KLSAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAotICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCi1lbHNlCi0gIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KLWZpCi0KLWNhc2UgJHNyY2RpciBpbgotICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0gICAgYWNfc3JjZGlyPS4KLSAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgotICAgICAgIGFjX3RvcF9zcmNkaXI9LgotICAgIGVsc2UKLSAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCi0gICAgZmkgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0gICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7Ci0gICopICMgUmVsYXRpdmUgcGF0aC4KLSAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKLWVzYWMKLQotIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCi0jIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgotY2FzZSBgcHdkYCBpbgotLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0qKQotICBjYXNlICIkYWNfZGlyIiBpbgotICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OwotICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0qKQotICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KLSAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OwotICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfc3JjZGlyIGluCi0gIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OwotKikKLSAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgotICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0gICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OwotICBlc2FjOzsKLWVzYWMKLQotICAgIGNkICRhY19kaXIKLSAgICAjIENoZWNrIGZvciBndWVzdGVkIGNvbmZpZ3VyZTsgb3RoZXJ3aXNlIGdldCBDeWdudXMgc3R5bGUgY29uZmlndXJlLgotICAgIGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251OyB0aGVuCi0gICAgICBlY2hvCi0gICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251ICAtLWhlbHA9cmVjdXJzaXZlCi0gICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlOyB0aGVuCi0gICAgICBlY2hvCi0gICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUgIC0taGVscD1yZWN1cnNpdmUKLSAgICBlbGlmIHRlc3QgLWYgJGFjX3NyY2Rpci9jb25maWd1cmUuYWMgfHwKLQkgICB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmluOyB0aGVuCi0gICAgICBlY2hvCi0gICAgICAkYWNfY29uZmlndXJlIC0taGVscAotICAgIGVsc2UKLSAgICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogbm8gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBpcyBpbiAkYWNfZGlyIiA+JjIKLSAgICBmaQotICAgIGNkICRhY19wb3BkaXIKLSAgZG9uZQotZmkKLQotdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAwCi1pZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0gIGNhdCA8PFxfQUNFT0YKLXN0cmFjZSBjb25maWd1cmUgNC41LjEyCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkKLQotQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLWdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLV9BQ0VPRgotICBleGl0IDAKLWZpCi1leGVjIDU+Y29uZmlnLmxvZwotY2F0ID4mNSA8PF9BQ0VPRgotVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKLXJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCi0KLUl0IHdhcyBjcmVhdGVkIGJ5IHN0cmFjZSAkYXNfbWUgNC41LjEyLCB3aGljaCB3YXMKLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwotCi0gICQgJDAgJEAKLQotX0FDRU9GCi17Ci1jYXQgPDxfQVNVTkFNRQotIyMgLS0tLS0tLS0tICMjCi0jIyBQbGF0Zm9ybS4gIyMKLSMjIC0tLS0tLS0tLSAjIwotCi1ob3N0bmFtZSA9IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi11bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLXVuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0KLS91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgpIDI+L2Rldi9udWxsICAgICB8fCBlY2hvIHVua25vd25gCi0KLS9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGwgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKLWhvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbCAgICAgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS9iaW4vbWFjaGluZSAgICAgICAgICAgPSBgKC9iaW4vbWFjaGluZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLS9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLQotX0FTVU5BTUUKLQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBlY2hvICJQQVRIOiAkYXNfZGlyIgotZG9uZQotCi19ID4mNQotCi1jYXQgPiY1IDw8X0FDRU9GCi0KLQotIyMgLS0tLS0tLS0tLS0gIyMKLSMjIENvcmUgdGVzdHMuICMjCi0jIyAtLS0tLS0tLS0tLSAjIwotCi1fQUNFT0YKLQotCi0jIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgotIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCi0jIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KLSMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KLSMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgotYWNfY29uZmlndXJlX2FyZ3M9Ci1hY19jb25maWd1cmVfYXJnczA9Ci1hY19jb25maWd1cmVfYXJnczE9Ci1hY19zZXA9Ci1hY19tdXN0X2tlZXBfbmV4dD1mYWxzZQotZm9yIGFjX3Bhc3MgaW4gMSAyCi1kbwotICBmb3IgYWNfYXJnCi0gIGRvCi0gICAgY2FzZSAkYWNfYXJnIGluCi0gICAgLW5vLWNyZWF0ZSB8IC0tbm8tYyogfCAtbiB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250aW51ZSA7OwotICAgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0gICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0gICAgICBjb250aW51ZSA7OwotICAgICoiICIqfCoiCSIqfCpbXFtcXVx+XCNcJFxeXCZcKlwoXClce1x9XFxcfFw7XDxcPlw/XCJcJ10qKQotICAgICAgYWNfYXJnPWBlY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotICAgIGVzYWMKLSAgICBjYXNlICRhY19wYXNzIGluCi0gICAgMSkgYWNfY29uZmlndXJlX2FyZ3MwPSIkYWNfY29uZmlndXJlX2FyZ3MwICckYWNfYXJnJyIgOzsKLSAgICAyKQotICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmlndXJlX2FyZ3MxICckYWNfYXJnJyIKLSAgICAgIGlmIHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0gdHJ1ZTsgdGhlbgotCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNlICMgR290IHZhbHVlLCBiYWNrIHRvIG5vcm1hbC4KLSAgICAgIGVsc2UKLQljYXNlICRhY19hcmcgaW4KLQkgICo9KiB8IC0tY29uZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSogXAotCSAgfCAtZW5hYmxlLSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAotCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2lsZW50IHwgLS1zaWwqIHwgLXYgfCAtdmVyYiogXAotCSAgfCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0LSogfCAtLXgpCi0JICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgotCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAiKiApIGNvbnRpbnVlIDs7Ci0JICAgIGVzYWMKLQkgICAgOzsKLQkgIC0qICkgYWNfbXVzdF9rZWVwX25leHQ9dHJ1ZSA7OwotCWVzYWMKLSAgICAgIGZpCi0gICAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzJGFjX3NlcCckYWNfYXJnJyIKLSAgICAgICMgR2V0IHJpZCBvZiB0aGUgbGVhZGluZyBzcGFjZS4KLSAgICAgIGFjX3NlcD0iICIKLSAgICAgIDs7Ci0gICAgZXNhYwotICBkb25lCi1kb25lCi0kYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0KLSRhc191bnNldCBhY19jb25maWd1cmVfYXJnczEgfHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczErc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MxPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQotCi0jIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVwIHRlbXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCi0jIGNvbmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1b3RlcyBpbiB0aGVyZQotIyB3b3VsZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCi0jIFdBUk5JTkc6IEJlIHN1cmUgbm90IHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRoZXJlLCBhcyBzb21lIHNoZWxscywKLSMgc3VjaCBhcyBvdXIgRFUgNS4wIGZyaWVuZCwgd2lsbCB0aGVuIGBjbG9zZScgdGhlIHRyYXAuCi10cmFwICdleGl0X3N0YXR1cz0kPwotICAjIFNhdmUgaW50byBjb25maWcubG9nIHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZy4KLSAgewotICAgIGVjaG8KLQotICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIENhY2hlIHZhcmlhYmxlcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgIGVjaG8KLSAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotewotICAoc2V0KSAyPiYxIHwKLSAgICBjYXNlIGAoYWNfc3BhY2U9JyInIicgJyInIic7IHNldCB8IGdyZXAgYWNfc3BhY2UpIDI+JjFgIGluCi0gICAgKmFjX3NwYWNlPVwgKikKLSAgICAgIHNlZCAtbiBcCi0JInMvJyInIicvJyInIidcXFxcJyInIicnIiciJy9nOwotCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nIiciJ1xcMiciJyInL3AiCi0gICAgICA7OwotICAgICopCi0gICAgICBzZWQgLW4gXAotCSJzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPVxcMi9wIgotICAgICAgOzsKLSAgICBlc2FjOwotfQotICAgIGVjaG8KLQotICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBPdXRwdXQgdmFyaWFibGVzLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgIGVjaG8KLSAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF92YXJzCi0gICAgZG8KLSAgICAgIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAotICAgICAgZWNobyAiJGFjX3Zhcj0nIiciJyRhY192YWwnIiciJyIKLSAgICBkb25lIHwgc29ydAotICAgIGVjaG8KLQotICAgIGlmIHRlc3QgLW4gIiRhY19zdWJzdF9maWxlcyI7IHRoZW4KLSAgICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0gIyMKLSMjIE91dHB1dCBmaWxlcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgICAgZWNobwotICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKLSAgICAgIGRvCi0JZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCi0JZWNobyAiJGFjX3Zhcj0nIiciJyRhY192YWwnIiciJyIKLSAgICAgIGRvbmUgfCBzb3J0Ci0gICAgICBlY2hvCi0gICAgZmkKLQotICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgotICAgICAgY2F0IDw8XF9BU0JPWAotIyMgLS0tLS0tLS0tLS0gIyMKLSMjIGNvbmZkZWZzLmguICMjCi0jIyAtLS0tLS0tLS0tLSAjIwotX0FTQk9YCi0gICAgICBlY2hvCi0gICAgICBzZWQgIi9eJC9kIiBjb25mZGVmcy5oIHwgc29ydAotICAgICAgZWNobwotICAgIGZpCi0gICAgdGVzdCAiJGFjX3NpZ25hbCIgIT0gMCAmJgotICAgICAgZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCi0gICAgZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKLSAgfSA+JjUKLSAgcm0gLWYgY29yZSAqLmNvcmUgJiYKLSAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mZGVmcyogY29uZiQkKiAkYWNfY2xlYW5fZmlsZXMgJiYKLSAgICBleGl0ICRleGl0X3N0YXR1cwotICAgICAnIDAKLWZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBkbwotICB0cmFwICdhY19zaWduYWw9JyRhY19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19zaWduYWwKLWRvbmUKLWFjX3NpZ25hbD0wCi0KLSMgY29uZmRlZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBleGNlZWQuCi1ybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZzLmgKLSMgQUlYIGNwcCBsb3NlcyBvbiBhbiBlbXB0eSBmaWxlLCBzbyBtYWtlIHN1cmUgaXQgY29udGFpbnMgYXQgbGVhc3QgYSBuZXdsaW5lLgotZWNobyA+Y29uZmRlZnMuaAotCi0jIFByZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCi1fQUNFT0YKLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKLV9BQ0VPRgotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgotX0FDRU9GCi0KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgotX0FDRU9GCi0KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tBR0VfQlVHUkVQT1JUIgotX0FDRU9GCi0KLQotIyBMZXQgdGhlIHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0ZXJuYXRlIGNhY2hlIGZpbGUgaWYgaXQgd2FudHMgdG8uCi0jIFByZWZlciBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21hdGljYWxseSBzZWxlY3RlZCBvbmVzLgotaWYgdGVzdCAteiAiJENPTkZJR19TSVRFIjsgdGhlbgotICBpZiB0ZXN0ICJ4JHByZWZpeCIgIT0geE5PTkU7IHRoZW4KLSAgICBDT05GSUdfU0lURT0iJHByZWZpeC9zaGFyZS9jb25maWcuc2l0ZSAkcHJlZml4L2V0Yy9jb25maWcuc2l0ZSIKLSAgZWxzZQotICAgIENPTkZJR19TSVRFPSIkYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUgJGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZSIKLSAgZmkKLWZpCi1mb3IgYWNfc2l0ZV9maWxlIGluICRDT05GSUdfU0lURTsgZG8KLSAgaWYgdGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNQotZWNobyAiJGFzX21lOiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNjt9Ci0gICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1Ci0gICAgLiAiJGFjX3NpdGVfZmlsZSIKLSAgZmkKLWRvbmUKLQotaWYgdGVzdCAtciAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0gICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rldi9udWxsIChzcGVjaWFsCi0gICMgZmlsZXMgYWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LgotICBpZiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSAgICBjYXNlICRjYWNoZV9maWxlIGluCi0gICAgICBbXFwvXSogfCA/OltcXC9dKiApIC4gJGNhY2hlX2ZpbGU7OwotICAgICAgKikgICAgICAgICAgICAgICAgICAgICAgLiAuLyRjYWNoZV9maWxlOzsKLSAgICBlc2FjCi0gIGZpCi1lbHNlCi0gIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9Ci0gID4kY2FjaGVfZmlsZQotZmkKLQotIyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQotIyB2YWx1ZS4KLWFjX2NhY2hlX2NvcnJ1cHRlZD1mYWxzZQotZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8Ci0JICAgICAgIHNlZCAtbiAncy9eYWNfZW52X1woW2EtekEtWl8wLTldKlwpX3NldD0uKi9cMS9wJ2A7IGRvCi0gIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0Ci0gIGV2YWwgYWNfbmV3X3NldD1cJGFjX2Vudl8ke2FjX3Zhcn1fc2V0Ci0gIGV2YWwgYWNfb2xkX3ZhbD0iXCRhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlIgotICBldmFsIGFjX25ld192YWw9IlwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZSIKLSAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgotICAgIHNldCwpCi0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0gICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OwotICAgICxzZXQpCi0gICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KLSAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0gICAgLCk7OwotICAgICopCi0gICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCi0JeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLQl7IGVjaG8gIiRhc19tZTokTElORU5POiAgIGZvcm1lciB2YWx1ZTogICRhY19vbGRfdmFsIiA+JjUKLWVjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiYyO30KLQl7IGVjaG8gIiRhc19tZTokTElORU5POiAgIGN1cnJlbnQgdmFsdWU6ICRhY19uZXdfdmFsIiA+JjUKLWVjaG8gIiRhc19tZTogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiYyO30KLQlhY19jYWNoZV9jb3JydXB0ZWQ9OgotICAgICAgZmk7OwotICBlc2FjCi0gICMgUGFzcyBwcmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KLSAgaWYgdGVzdCAiJGFjX25ld19zZXQiID0gc2V0OyB0aGVuCi0gICAgY2FzZSAkYWNfbmV3X3ZhbCBpbgotICAgICoiICIqfCoiCSIqfCpbXFtcXVx+XCNcJFxeXCZcKlwoXClce1x9XFxcfFw7XDxcPlw/XCJcJ10qKQotICAgICAgYWNfYXJnPSRhY192YXI9YGVjaG8gIiRhY19uZXdfdmFsIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdfdmFsIDs7Ci0gICAgZXNhYwotICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2FyZ3MgIiBpbgotICAgICAgKiIgJyRhY19hcmcnICIqKSA7OyAjIEF2b2lkIGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVuc3VyZXMgYWNjdXJhY3kuCi0gICAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIgOzsKLSAgICBlc2FjCi0gIGZpCi1kb25lCi1pZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCi0gIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjI7fQotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi0KLWFjX2V4dD1jCi1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotICAgICAgICAgIGFjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgY29uZmlnLmgiCi0KLWFtX19hcGlfdmVyc2lvbj0iMS45IgotYWNfYXV4X2Rpcj0KLWZvciBhY19kaXIgaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi47IGRvCi0gIGlmIHRlc3QgLWYgJGFjX2Rpci9pbnN0YWxsLXNoOyB0aGVuCi0gICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC1zaCAtYyIKLSAgICBicmVhawotICBlbGlmIHRlc3QgLWYgJGFjX2Rpci9pbnN0YWxsLnNoOyB0aGVuCi0gICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC5zaCAtYyIKLSAgICBicmVhawotICBlbGlmIHRlc3QgLWYgJGFjX2Rpci9zaHRvb2w7IHRoZW4KLSAgICBhY19hdXhfZGlyPSRhY19kaXIKLSAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKLSAgICBicmVhawotICBmaQotZG9uZQotaWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiAkc3JjZGlyICRzcmNkaXIvLi4gJHNyY2Rpci8uLi8uLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1hY19jb25maWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiCi1hY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIKLWFjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgIyBUaGlzIHNob3VsZCBiZSBDeWdudXMgY29uZmlndXJlLgotCi0jIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0jIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFsbAotIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCi0jIElSSVggL3NiaW4vaW5zdGFsbAotIyBBSVggL2Jpbi9pbnN0YWxsCi0jIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKLSMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCi0jIEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwotIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1ha2UgZnJvbSAuL2luc3RhbGwuc2guCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi1jYXNlICRhc19kaXIvIGluCi0gIC4vIHwgLi8vIHwgL2NDLyogfCBcCi0gIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAotICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNUQUxMXFwvKiB8IFwKLSAgL3Vzci91Y2IvKiApIDs7Ci0gICopCi0gICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KLSAgICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZmIGFzIHJvb3QKLSAgICAjIGJ5IGRlZmF1bHQuCi0gICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbwotICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0JaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLQkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0JICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGluZyBjb252ZW50aW9uLgotCSAgICA6Ci0JICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0JICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1c2UuCi0JICAgIDoKLQkgIGVsc2UKLQkgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgotCSAgICBicmVhayAzCi0JICBmaQotCWZpCi0gICAgICBkb25lCi0gICAgZG9uZQotICAgIDs7Ci1lc2FjCi1kb25lCi0KLQotZmkKLSAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgICBJTlNUQUxMPSRhY19jdl9wYXRoX2luc3RhbGwKLSAgZWxzZQotICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIFdlIGRvbid0IGNhY2hlIGEKLSAgICAjIHBhdGggZm9yIElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKLSAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHBhdGggaXMgcmVsYXRpdmUuCi0gICAgSU5TVEFMTD0kYWNfaW5zdGFsbF9zaAotICBmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRJTlNUQUxMIiA+JjYKLQotIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KLXRlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKLQotdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKLQotdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiAkRUNIT19DIiA+JjYKLSMgSnVzdCBpbiBjYXNlCi1zbGVlcCAxCi1lY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKLSMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotIyBzeW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwotIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKLSMgZGlyZWN0b3J5KS4KLWlmICgKLSAgIHNldCBYIGBscyAtTHQgJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCi0gICBpZiB0ZXN0ICIkKiIgPSAiWCI7IHRoZW4KLSAgICAgICMgLUwgZGlkbid0IHdvcmsuCi0gICAgICBzZXQgWCBgbHMgLXQgJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZWAKLSAgIGZpCi0gICBybSAtZiBjb25mdGVzdC5maWxlCi0gICBpZiB0ZXN0ICIkKiIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAotICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0KLSAgICAgICMgSWYgbmVpdGhlciBtYXRjaGVkLCB0aGVuIHdlIGhhdmUgYSBicm9rZW4gbHMuICBUaGlzIGNhbiBoYXBwZW4KLSAgICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKLSAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKLSAgICAgICMgaGFwcGVuZWQuICBTdWNoIGEgc3lzdGVtIGNvdWxkIG5vdCBiZSBjb25zaWRlcmVkICJzYW5lIi4KLSAgICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KLWFsaWFzIGluIHlvdXIgZW52aXJvbm1lbnQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICAgZmkKLQotICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQotICAgKQotdGhlbgotICAgIyBPay4KLSAgIDoKLWVsc2UKLSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogbmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCi1DaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci1lY2hvICIke0VDSE9fVH15ZXMiID4mNgotdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05FICYmCi0gIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMsXiwkcHJvZ3JhbV9wcmVmaXgsOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotIyBVc2UgYSBkb3VibGUgJCBzbyBtYWtlIGlnbm9yZXMgaXQuCi10ZXN0ICIkcHJvZ3JhbV9zdWZmaXgiICE9IE5PTkUgJiYKLSAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyxcJCwkcHJvZ3JhbV9zdWZmaXgsOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotIyBEb3VibGUgYW55IFwgb3IgJC4gIGVjaG8gbWlnaHQgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotIyBCeSBkZWZhdWx0IHdhcyBgcyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KLWNhdCA8PFxfQUNFT0YgPmNvbmZ0ZXN0LnNlZAotcy9bXFwkXS8mJi9nO3MvO3MseCx4LCQvLwotX0FDRU9GCi1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lPWBlY2hvICRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIHwgc2VkIC1mIGNvbmZ0ZXN0LnNlZGAKLXJtIGNvbmZ0ZXN0LnNlZAotCi0jIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi1hbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi0KLXRlc3QgeCIke01JU1NJTkcrc2V0fSIgPSB4c2V0IHx8IE1JU1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgotIyBVc2UgZXZhbCB0byBleHBhbmQgJFNIRUxMCi1pZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgotICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotZWxzZQotICBhbV9taXNzaW5nX3J1bj0KLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjI7fQotZmkKLQotaWYgbWtkaXIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgotICAjIFdlIHVzZWQgdG8ga2VlcGluZyB0aGUgYC4nIGFzIGZpcnN0IGFyZ3VtZW50LCBpbiBvcmRlciB0bwotICAjIGFsbG93ICQobWtkaXJfcCkgdG8gYmUgdXNlZCB3aXRob3V0IGFyZ3VtZW50LiAgQXMgaW4KLSAgIyAgICQobWtkaXJfcCkgJChzb21lZGlyKQotICAjIHdoZXJlICQoc29tZWRpcikgaXMgY29uZGl0aW9uYWxseSBkZWZpbmVkLiAgSG93ZXZlciB0aGlzIGlzIHdyb25nCi0gICMgZm9yIHR3byByZWFzb25zOgotICAjICAxLiBpZiB0aGUgcGFja2FnZSBpcyBpbnN0YWxsZWQgYnkgYSB1c2VyIHdobyBjYW5ub3Qgd3JpdGUgYC4nCi0gICMgICAgIG1ha2UgaW5zdGFsbCB3aWxsIGZhaWwsCi0gICMgIDIuIHRoZSBhYm92ZSBjb21tZW50IHNob3VsZCBtb3N0IGNlcnRhaW5seSByZWFkCi0gICMgICAgICQobWtkaXJfcCkgJChERVNURElSKSQoc29tZWRpcikKLSAgIyAgICAgc28gaXQgZG9lcyBub3Qgd29yayB3aGVuICQoc29tZWRpcikgaXMgdW5kZWZpbmVkIGFuZAotICAjICAgICAkKERFU1RESVIpIGlzIG5vdC4KLSAgIyAgVG8gc3VwcG9ydCB0aGUgbGF0dGVyIGNhc2UsIHdlIGhhdmUgdG8gd3JpdGUKLSAgIyAgICAgdGVzdCAteiAiJChzb21lZGlyKSIgfHwgJChta2Rpcl9wKSAkKERFU1RESVIpJChzb21lZGlyKSwKLSAgIyAgc28gdGhlIGAuJyB0cmljayBpcyBwb2ludGxlc3MuCi0gIG1rZGlyX3A9J21rZGlyIC1wIC0tJwotZWxzZQotICAjIE9uIE5leHRTdGVwIGFuZCBPcGVuU3RlcCwgdGhlIGBta2RpcicgY29tbWFuZCBkb2VzIG5vdAotICAjIHJlY29nbml6ZSBhbnkgb3B0aW9uLiAgSXQgd2lsbCBpbnRlcnByZXQgYWxsIG9wdGlvbnMgYXMKLSAgIyBkaXJlY3RvcmllcyB0byBjcmVhdGUsIGFuZCB0aGVuIGFib3J0IGJlY2F1c2UgYC4nIGFscmVhZHkKLSAgIyBleGlzdHMuCi0gIGZvciBkIGluIC4vLXAgLi8tLXZlcnNpb247Ci0gIGRvCi0gICAgdGVzdCAtZCAkZCAmJiBybWRpciAkZAotICBkb25lCi0gICMgJChta2luc3RhbGxkaXJzKSBpcyBkZWZpbmVkIGJ5IEF1dG9tYWtlIGlmIG1raW5zdGFsbGRpcnMgZXhpc3RzLgotICBpZiB0ZXN0IC1mICIkYWNfYXV4X2Rpci9ta2luc3RhbGxkaXJzIjsgdGhlbgotICAgIG1rZGlyX3A9JyQobWtpbnN0YWxsZGlycyknCi0gIGVsc2UKLSAgICBta2Rpcl9wPSckKGluc3RhbGxfc2gpIC1kJwotICBmaQotZmkKLQotZm9yIGFjX3Byb2cgaW4gZ2F3ayBtYXdrIG5hd2sgYXdrCi1kbwotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19BV0s9IiRBV0siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1BV0s9JGFjX2N2X3Byb2dfQVdLCi1pZiB0ZXN0IC1uICIkQVdLIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQVdLIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRBV0siID4mNgotZWxzZQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci1maQotCi0gIHRlc3QgLW4gIiRBV0siICYmIGJyZWFrCi1kb25lCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAkRUNIT19DIiA+JjYKLXNldCBkdW1teSAke01BS0UtbWFrZX07IGFjX21ha2U9YGVjaG8gIiQyIiB8IHNlZCAneSw6Li8rLSxfX19wXywnYAotaWYgZXZhbCAidGVzdCBcIlwke2FjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCtzZXR9XCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKLWFsbDoKLQlAZWNobyAnYWNfbWFrZXRlbXA9IiQoTUFLRSkiJwotX0FDRU9GCi0jIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KLWV2YWwgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsIHwgZ3JlcCB0ZW1wPWAKLWlmIHRlc3QgLW4gIiRhY19tYWtldGVtcCI7IHRoZW4KLSAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzCi1lbHNlCi0gIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vCi1maQotcm0gLWYgY29uZnRlc3QubWFrZQotZmkKLWlmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X3Byb2dfbWFrZV8nJHthY19tYWtlfV9zZXRgXCIgPSB5ZXMiOyB0aGVuCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci1lY2hvICIke0VDSE9fVH15ZXMiID4mNgotICBTRVRfTUFLRT0KLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCi1maQotCi1ybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAotaWYgdGVzdCAtZCAudHN0OyB0aGVuCi0gIGFtX19sZWFkaW5nX2RvdD0uCi1lbHNlCi0gIGFtX19sZWFkaW5nX2RvdD1fCi1maQotcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAotCi0jIHRlc3QgdG8gc2VlIGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKLWlmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCIgJiYKLSAgIHRlc3QgLWYgJHNyY2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IHNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi0jIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKLWlmIHRlc3QgLXogIiRDWUdQQVRIX1ciOyB0aGVuCi0gIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKLSAgZWxzZQotICAgIENZR1BBVEhfVz1lY2hvCi0gIGZpCi1maQotCi0KLSMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KLSBQQUNLQUdFPSdzdHJhY2UnCi0gVkVSU0lPTj0nNC41LjEyJwotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgUEFDS0FHRSAiJFBBQ0tBR0UiCi1fQUNFT0YKLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIFZFUlNJT04gIiRWRVJTSU9OIgotX0FDRU9GCi0KLSMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KLQotQUNMT0NBTD0ke0FDTE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQotCi0KLUFVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQotCi0KLUFVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259In0KLQotCi1BVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNzaW5nX3J1bn1hdXRvaGVhZGVyIn0KLQotCi1NQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21pc3NpbmdfcnVufW1ha2VpbmZvIn0KLQotaW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIiRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQotCi0jIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKLSMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKLSMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKLSMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCi1pZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgotICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1zdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0gIGFjX2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1TVFJJUD0kYWNfY3ZfcHJvZ19TVFJJUAotaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQotZWNobyAiJHtFQ0hPX1R9JFNUUklQIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotZmkKLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgotICBhY19jdF9TVFJJUD0kU1RSSVAKLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSJzdHJpcCIKLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0gICAgYnJlYWsgMgotICBmaQotZG9uZQotZG9uZQotCi0gIHRlc3QgLXogIiRhY19jdl9wcm9nX2FjX2N0X1NUUklQIiAmJiBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSI6IgotZmkKLWZpCi1hY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJUAotaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N0X1NUUklQIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotICBTVFJJUD0kYWNfY3RfU1RSSVAKLWVsc2UKLSAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgotZmkKLQotZmkKLUlOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCR7U0hFTEx9IFwkKGluc3RhbGxfc2gpIC1jIC1zIgotCi0jIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgotIyBzb21lIHBsYXRmb3Jtcy4KLSMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLQotQU1UQVI9JHtBTVRBUi0iJHthbV9taXNzaW5nX3J1bn10YXIifQotCi1hbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKLQotCi0KLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcy4uLiAkRUNIT19DIiA+JjYKLSAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlIG9yIC0tZGlzYWJsZS1tYWludGFpbmVyLW1vZGUgd2FzIGdpdmVuLgotaWYgdGVzdCAiJHtlbmFibGVfbWFpbnRhaW5lcl9tb2RlK3NldH0iID0gc2V0OyB0aGVuCi0gIGVuYWJsZXZhbD0iJGVuYWJsZV9tYWludGFpbmVyX21vZGUiCi0gIFVTRV9NQUlOVEFJTkVSX01PREU9JGVuYWJsZXZhbAotZWxzZQotICBVU0VfTUFJTlRBSU5FUl9NT0RFPW5vCi1maTsKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFVTRV9NQUlOVEFJTkVSX01PREUiID4mNQotZWNobyAiJHtFQ0hPX1R9JFVTRV9NQUlOVEFJTkVSX01PREUiID4mNgotCi0KLWlmIHRlc3QgJFVTRV9NQUlOVEFJTkVSX01PREUgPSB5ZXM7IHRoZW4KLSAgTUFJTlRBSU5FUl9NT0RFX1RSVUU9Ci0gIE1BSU5UQUlORVJfTU9ERV9GQUxTRT0nIycKLWVsc2UKLSAgTUFJTlRBSU5FUl9NT0RFX1RSVUU9JyMnCi0gIE1BSU5UQUlORVJfTU9ERV9GQUxTRT0KLWZpCi0KLSAgTUFJTlQ9JE1BSU5UQUlORVJfTU9ERV9UUlVFCi0KLQotIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgotJGFjX2NvbmZpZ19zdWIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biAkYWNfY29uZmlnX3N1YiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRhY19jb25maWdfc3ViIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jdl9idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLXRlc3QgLXogIiRhY19jdl9idWlsZF9hbGlhcyIgJiYKLSAgYWNfY3ZfYnVpbGRfYWxpYXM9YCRhY19jb25maWdfZ3Vlc3NgCi10ZXN0IC16ICIkYWNfY3ZfYnVpbGRfYWxpYXMiICYmCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWFjX2N2X2J1aWxkPWAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfYnVpbGRfYWxpYXNgIHx8Ci0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9idWlsZCIgPiY2Ci1idWlsZD0kYWNfY3ZfYnVpbGQKLWJ1aWxkX2NwdT1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAotYnVpbGRfdmVuZG9yPWBlY2hvICRhY19jdl9idWlsZCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi1idWlsZF9vcz1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZS4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jdl9ob3N0X2FsaWFzPSRob3N0X2FsaWFzCi10ZXN0IC16ICIkYWNfY3ZfaG9zdF9hbGlhcyIgJiYKLSAgYWNfY3ZfaG9zdF9hbGlhcz0kYWNfY3ZfYnVpbGRfYWxpYXMKLWFjX2N2X2hvc3Q9YCRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzYCB8fAotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfaG9zdF9hbGlhcyBmYWlsZWQiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXMgZmFpbGVkIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0KLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaG9zdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaG9zdCIgPiY2Ci1ob3N0PSRhY19jdl9ob3N0Ci1ob3N0X2NwdT1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi1ob3N0X3ZlbmRvcj1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wyLydgCi1ob3N0X29zPWBlY2hvICRhY19jdl9ob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKLQotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW0iID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW0uLi4gJEVDSE9fQyIgPiY2Ci1jYXNlICIkaG9zdF9vcyIgaW4KLWxpbnV4KikKLQlvcHN5cz1saW51eAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBMSU5VWCAxCi1fQUNFT0YKLQotCTs7Ci1zdW5vczQqKQotCW9wc3lzPXN1bm9zNAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTVU5PUzQgMQotX0FDRU9GCi0KLQk7Owotc29sYXJpczIqIHwgc3lzdls0NV0qIHwgaXJpeFs1Nl0qKQotCW9wc3lzPXN2cjQKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgU1ZSNCAxCi1fQUNFT0YKLQotCWNhc2UgIiRob3N0X29zIiBpbgotCXN5c3Y0LjJ1dyopCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFVOSVhXQVJFIDIKLV9BQ0VPRgotCi0JCTs7Ci0Jc3lzdjUqKQotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBVTklYV0FSRSA3Ci1fQUNFT0YKLQotCQk7OwotCWVzYWMKLQk7OwotZnJlZWJzZCopCi0Jb3BzeXM9ZnJlZWJzZAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBGUkVFQlNEIDEKLV9BQ0VPRgotCi0JOzsKLSopCi0JZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogTk8hIiA+JjUKLWVjaG8gIiR7RUNIT19UfU5PISIgPiY2Ci0JeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogb3BlcmF0aW5nIHN5c3RlbSAkaG9zdF9vcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZSIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBvcGVyYXRpbmcgc3lzdGVtICRob3N0X29zIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3RyYWNlIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JOzsKLWVzYWMKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRvcHN5cyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kb3BzeXMiID4mNgotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmUiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4uLiAkRUNIT19DIiA+JjYKLWNhc2UgIiRob3N0X2NwdSIgaW4KLWlbMzQ1Nl04NnxwZW50aXVtKQotCWFyY2g9aTM4NgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBJMzg2IDEKLV9BQ0VPRgotCi0JOzsKLWlhNjQpCi0JYXJjaD1pYTY0Ci0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIElBNjQgMQotX0FDRU9GCi0KLQk7OwotbTY4aykKLQlhcmNoPW02OGsKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgTTY4SyAxCi1fQUNFT0YKLQotCTs7Ci1zcGFyYzY0KikKLQlhcmNoPXNwYXJjNjQKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgU1BBUkM2NCAxCi1fQUNFT0YKLQotCTs7Ci1zcGFyYyopCi0JYXJjaD1zcGFyYwotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTUEFSQyAxCi1fQUNFT0YKLQotCTs7Ci1taXBzKikKLQlhcmNoPW1pcHMKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgTUlQUyAxCi1fQUNFT0YKLQotCTs7Ci1hbHBoYSopCi0JYXJjaD1hbHBoYQotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBBTFBIQSAxCi1fQUNFT0YKLQotCTs7Ci1wb3dlcnBjKikKLQlhcmNoPXBvd2VycGMKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgUE9XRVJQQyAxCi1fQUNFT0YKLQotCTs7Ci1hcm0qKQotCWFyY2g9YXJtCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIEFSTSAxCi1fQUNFT0YKLQotCTs7Ci1zMzkwKQotCWFyY2g9czM5MAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTMzkwIDEKLV9BQ0VPRgotCi0JOzsKLXMzOTB4KQotCWFyY2g9czM5MHgKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgUzM5MFggMQotX0FDRU9GCi0KLQk7OwotaHBwYSp8cGFyaXNjKikKLQlhcmNoPWhwcGEKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgSFBQQSAxCi1fQUNFT0YKLQotCTs7Ci1zaCkKLQlhcmNoPXNoCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNIIDEKLV9BQ0VPRgotCi0JOzsKLXNoNjQpCi0JYXJjaD1zaDY0Ci0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNINjQgMQotX0FDRU9GCi0KLQk7OwoteDg2PzY0KikKLQlhcmNoPXg4Nl82NAotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBYODZfNjQgMQotX0FDRU9GCi0KLQk7OwotKikKLQllY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBOTyEiID4mNQotZWNobyAiJHtFQ0hPX1R9Tk8hIiA+JjYKLQl7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBhcmNoaXRlY3R1cmUgJGhvc3RfY3B1IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3RyYWNlIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGFyY2hpdGVjdHVyZSAkaG9zdF9jcHUgaXMgbm90IHN1cHBvcnRlZCBieSBzdHJhY2UiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLQk7OwotZXNhYwotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFyY2giID4mNQotZWNobyAiJHtFQ0hPX1R9JGFyY2giID4mNgotCi0KLQotCi0KLQotaWYgdGVzdCB4JG9wc3lzID0geGxpbnV4OyB0aGVuCi0gIExJTlVYX1RSVUU9Ci0gIExJTlVYX0ZBTFNFPScjJwotZWxzZQotICBMSU5VWF9UUlVFPScjJwotICBMSU5VWF9GQUxTRT0KLWZpCi0KLQotCi1pZiB0ZXN0IHgkYXJjaCA9IHhpMzg2OyB0aGVuCi0gIEkzODZfVFJVRT0KLSAgSTM4Nl9GQUxTRT0nIycKLWVsc2UKLSAgSTM4Nl9UUlVFPScjJwotICBJMzg2X0ZBTFNFPQotZmkKLQotCi0KLWlmIHRlc3QgeCRhcmNoID0geHg4Nl82NDsgdGhlbgotICBYODZfNjRfVFJVRT0KLSAgWDg2XzY0X0ZBTFNFPScjJwotZWxzZQotICBYODZfNjRfVFJVRT0nIycKLSAgWDg2XzY0X0ZBTFNFPQotZmkKLQotCi0KLWlmIHRlc3QgeCRvcHN5cyA9IHhzdW5vczQ7IHRoZW4KLSAgU1VOT1M0X1RSVUU9Ci0gIFNVTk9TNF9GQUxTRT0nIycKLWVsc2UKLSAgU1VOT1M0X1RSVUU9JyMnCi0gIFNVTk9TNF9GQUxTRT0KLWZpCi0KLQotCi1pZiB0ZXN0IHgkb3BzeXMgPSB4c3ZyNDsgdGhlbgotICBTVlI0X1RSVUU9Ci0gIFNWUjRfRkFMU0U9JyMnCi1lbHNlCi0gIFNWUjRfVFJVRT0nIycKLSAgU1ZSNF9GQUxTRT0KLWZpCi0KLQotCi1pZiB0ZXN0IHgkb3BzeXMgPSB4ZnJlZWJzZDsgdGhlbgotICBGUkVFQlNEX1RSVUU9Ci0gIEZSRUVCU0RfRkFMU0U9JyMnCi1lbHNlCi0gIEZSRUVCU0RfVFJVRT0nIycKLSAgRlJFRUJTRF9GQUxTRT0KLWZpCi0KLQotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Z2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLWZpCi1maQotQ0M9JGFjX2N2X3Byb2dfQ0MKLWlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRDQyIgPiY2Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLWZpCi0KLWZpCi1pZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19DQyI7IHRoZW4KLSAgYWNfY3RfQ0M9JENDCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBnY2M7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJnY2MiCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1hY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotICBDQz0kYWNfY3RfQ0MKLWVsc2UKLSAgQ0M9IiRhY19jdl9wcm9nX0NDIgotZmkKLQotaWYgdGVzdCAteiAiJENDIjsgdGhlbgotICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Y2MiCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1DQz0kYWNfY3ZfcHJvZ19DQwotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotZmkKLWlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgotICBhY19jdF9DQz0kQ0MKLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KLSAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJjYyIKLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0gICAgYnJlYWsgMgotICBmaQotZG9uZQotZG9uZQotCi1maQotZmkKLWFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCi1pZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgotZWxzZQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci1maQotCi0gIENDPSRhY19jdF9DQwotZWxzZQotICBDQz0iJGFjX2N2X3Byb2dfQ0MiCi1maQotCi1maQotaWYgdGVzdCAteiAiJENDIjsgdGhlbgotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBjYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi0gIGFjX3Byb2dfcmVqZWN0ZWQ9bm8KLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0gICAgaWYgdGVzdCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0gICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKLSAgICAgICBjb250aW51ZQotICAgICBmaQotICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLWlmIHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSAgIyBXZSBmb3VuZCBhIGJvZ29uIGluIHRoZSBwYXRoLCBzbyBtYWtlIHN1cmUgd2UgbmV2ZXIgdXNlIGl0LgotICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MKLSAgc2hpZnQKLSAgaWYgdGVzdCAkIyAhPSAwOyB0aGVuCi0gICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBib2d1cyBvbmUuCi0gICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgotICAgICMgZmlyc3QgaWYgd2Ugc2V0IENDIHRvIGp1c3QgdGhlIGJhc2VuYW1lOyB1c2UgdGhlIGZ1bGwgZmlsZSBuYW1lLgotICAgIHNoaWZ0Ci0gICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCi0gIGZpCi1maQotZmkKLWZpCi1DQz0kYWNfY3ZfcHJvZ19DQwotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotZmkKLWlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotICBmb3IgYWNfcHJvZyBpbiBjbAotICBkbwotICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLWFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0gICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotICAgIGJyZWFrIDIKLSAgZmkKLWRvbmUKLWRvbmUKLQotZmkKLWZpCi1DQz0kYWNfY3ZfcHJvZ19DQwotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotICAgIHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsKLSAgZG9uZQotZmkKLWlmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSAgYWNfY3RfQ0M9JENDCi0gIGZvciBhY19wcm9nIGluIGNsCi1kbwotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0gIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi1hc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgotICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLWZpCi1maQotYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKLWlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdF9DQyIgPiY2Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLWZpCi0KLSAgdGVzdCAtbiAiJGFjX2N0X0NDIiAmJiBicmVhawotZG9uZQotCi0gIENDPSRhY19jdF9DQwotZmkKLQotZmkKLQotCi10ZXN0IC16ICIkQ0MiICYmIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgQyBjb21waWxlciBmb3VuZCBpbiBcJFBBVEgKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgQyBjb21waWxlciBmb3VuZCBpbiBcJFBBVEgKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0KLSMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLWVjaG8gIiRhc19tZTokTElORU5POiIgXAotICAgICAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1Ci1hY19jb21waWxlcj1gc2V0IFggJGFjX2NvbXBpbGU7IGVjaG8gJDJgCi17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZXIgLS12ZXJzaW9uIDwvZGV2L251bGwgPiY1KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9Ci17IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfQoteyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLVYgPC9kZXYvbnVsbCA+JjVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZXIgLVYgPC9kZXYvbnVsbCA+JjUpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLWFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi1hY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEuZXhlIGIub3V0IgotIyBUcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgotIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2UgYnJva2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgotIyBvZiBleGVleHQuCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICRFQ0hPX0MiID4mNgotYWNfbGlua19kZWZhdWx0PWBlY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua19kZWZhdWx0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmtfZGVmYXVsdCkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotICAjIEZpbmQgdGhlIG91dHB1dCwgc3RhcnRpbmcgZnJvbSB0aGUgbW9zdCBsaWtlbHkuICBUaGlzIHNjaGVtZSBpcwotIyBub3Qgcm9idXN0IHRvIGp1bmsgaW4gYC4nLCBoZW5jZSBnbyB0byB3aWxkY2FyZHMgKGEuKikgb25seSBhcyBhIGxhc3QKLSMgcmVzb3J0LgotCi0jIEJlIGNhcmVmdWwgdG8gaW5pdGlhbGl6ZSB0aGlzIHZhcmlhYmxlLCBzaW5jZSBpdCB1c2VkIHRvIGJlIGNhY2hlZC4KLSMgT3RoZXJ3aXNlIGFuIG9sZCBjYWNoZSB2YWx1ZSBvZiBgbm8nIGxlZCB0byBgRVhFRVhUID0gbm8nIGluIGEgTWFrZWZpbGUuCi1hY19jdl9leGVleHQ9Ci0jIGIub3V0IGlzIGNyZWF0ZWQgYnkgaTk2MCBjb21waWxlcnMuCi1mb3IgYWNfZmlsZSBpbiBhX291dC5leGUgYS5leGUgY29uZnRlc3QuZXhlIGEub3V0IGNvbmZ0ZXN0IGEuKiBjb25mdGVzdC4qIGIub3V0Ci1kbwotICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKLSAgY2FzZSAkYWNfZmlsZSBpbgotICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5vIHwgKi5vYmogKQotCTs7Ci0gICAgY29uZnRlc3QuJGFjX2V4dCApCi0JIyBUaGlzIGlzIHRoZSBzb3VyY2UgZmlsZS4KLQk7OwotICAgIFthYl0ub3V0ICkKLQkjIFdlIGZvdW5kIHRoZSBkZWZhdWx0IGV4ZWN1dGFibGUsIGJ1dCBleGVleHQ9JycgaXMgbW9zdAotCSMgY2VydGFpbmx5IHJpZ2h0LgotCWJyZWFrOzsKLSAgICAqLiogKQotCWFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotCSMgRklYTUU6IEkgYmVsaWV2ZSB3ZSBleHBvcnQgYWNfY3ZfZXhlZXh0IGZvciBMaWJ0b29sLAotCSMgYnV0IGl0IHdvdWxkIGJlIGNvb2wgdG8gZmluZCBvdXQgaWYgaXQncyB0cnVlLiAgRG9lcyBhbnlib2R5Ci0JIyBtYWludGFpbiBMaWJ0b29sPyAtLWFraW0uCi0JZXhwb3J0IGFjX2N2X2V4ZWV4dAotCWJyZWFrOzsKLSAgICAqICkKLQlicmVhazs7Ci0gIGVzYWMKLWRvbmUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQoteyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCA3Nyk7IGV4aXQgNzc7IH07IH0KLWZpCi0KLWFjX2V4ZWV4dD0kYWNfY3ZfZXhlZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfZmlsZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfZmlsZSIgPiY2Ci0KLSMgQ2hlY2sgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgotIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uICRFQ0hPX0MiID4mNgotIyBGSVhNRTogVGhlc2UgY3Jvc3MgY29tcGlsZXIgaGFja3Mgc2hvdWxkIGJlIHJlbW92ZWQgZm9yIEF1dG9jb25mIDMuMAotIyBJZiBub3QgY3Jvc3MgY29tcGlsaW5nLCBjaGVjayB0aGF0IHdlIGNhbiBydW4gYSBzaW1wbGUgcHJvZ3JhbS4KLWlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgotICBpZiB7IGFjX3RyeT0nLi8kYWNfZmlsZScKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICAgIGNyb3NzX2NvbXBpbGluZz1ubwotICBlbHNlCi0gICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBtYXliZTsgdGhlbgotCWNyb3NzX2NvbXBpbGluZz15ZXMKLSAgICBlbHNlCi0JeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biBDIGNvbXBpbGVkIHByb2dyYW1zLgotSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCi1JZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgZmkKLSAgZmkKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKLQotcm0gLWYgYS5vdXQgYS5leGUgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGIub3V0Ci1hY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNfc2F2ZQotIyBDaGVjayB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCi0jIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uICRFQ0hPX0MiID4mNgotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kY3Jvc3NfY29tcGlsaW5nIiA+JjYKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICRFQ0hPX0MiID4mNgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0gICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQotIyBjYXRjaCBgY29uZnRlc3QuZXhlJy4gIEZvciBpbnN0YW5jZSB3aXRoIEN5Z3dpbiwgYGxzIGNvbmZ0ZXN0JyB3aWxsCi0jIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVyIHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAotIyBgcm0nLgotZm9yIGFjX2ZpbGUgaW4gY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGNvbmZ0ZXN0Lio7IGRvCi0gIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotICBjYXNlICRhY19maWxlIGluCi0gICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm8gfCAqLm9iaiApIDs7Ci0gICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0JICBleHBvcnQgYWNfY3ZfZXhlZXh0Ci0JICBicmVhazs7Ci0gICAgKiApIGJyZWFrOzsKLSAgZXNhYwotZG9uZQotZWxzZQotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLQotcm0gLWYgY29uZnRlc3QkYWNfY3ZfZXhlZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZXhlZXh0IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9leGVleHQiID4mNgotCi1ybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci1FWEVFWFQ9JGFjX2N2X2V4ZWV4dAotYWNfZXhlZXh0PSRFWEVFWFQKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9vYmpleHQrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0Lm8gY29uZnRlc3Qub2JqCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSAgZm9yIGFjX2ZpbGUgaW4gYChscyBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iajsgbHMgY29uZnRlc3QuKikgMj4vZGV2L251bGxgOyBkbwotICBjYXNlICRhY19maWxlIGluCi0gICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgKSA7OwotICAgICopIGFjX2N2X29iamV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJy4qXC5cKC4qXCknYAotICAgICAgIGJyZWFrOzsKLSAgZXNhYwotZG9uZQotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi17IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi1ybSAtZiBjb25mdGVzdC4kYWNfY3Zfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9vYmpleHQiID4mNgotT0JKRVhUPSRhY19jdl9vYmpleHQKLWFjX29iamV4dD0kT0JKRVhUCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotaW50Ci1tYWluICgpCi17Ci0jaWZuZGVmIF9fR05VQ19fCi0gICAgICAgY2hva2UgbWUKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY29tcGlsZXJfZ251PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jb21waWxlcl9nbnU9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1hY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0KLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjYKLUdDQz1gdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzICYmIGVjaG8geWVzYAotYWNfdGVzdF9DRkxBR1M9JHtDRkxBR1Mrc2V0fQotYWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotQ0ZMQUdTPSItZyIKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19nK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotCi1pbnQKLW1haW4gKCkKLXsKLQotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3Byb2dfY2NfZz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfcHJvZ19jY19nPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2NfZyIgPiY2Ci1pZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0gIENGTEFHUz0kYWNfc2F2ZV9DRkxBR1MKLWVsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCi0gIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0gICAgQ0ZMQUdTPSItZyAtTzIiCi0gIGVsc2UKLSAgICBDRkxBR1M9Ii1nIgotICBmaQotZWxzZQotICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotICAgIENGTEFHUz0iLU8yIgotICBlbHNlCi0gICAgQ0ZMQUdTPQotICBmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IEFOU0kgQy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGFjX2N2X3Byb2dfY2Nfc3RkYz1ubwotYWNfc2F2ZV9DQz0kQ0MKLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgc3RvbGVuIGZyb20gUkNTIDUuNydzIHNyYy9jb25mLnNoLiAgKi8KLXN0cnVjdCBidWYgeyBpbnQgeDsgfTsKLUZJTEUgKiAoKnJjc29wZW4pIChzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7Ci1zdGF0aWMgY2hhciAqZSAocCwgaSkKLSAgICAgY2hhciAqKnA7Ci0gICAgIGludCBpOwotewotICByZXR1cm4gcFtpXTsKLX0KLXN0YXRpYyBjaGFyICpmIChjaGFyICogKCpnKSAoY2hhciAqKiwgaW50KSwgY2hhciAqKnAsIC4uLikKLXsKLSAgY2hhciAqczsKLSAgdmFfbGlzdCB2OwotICB2YV9zdGFydCAodixwKTsKLSAgcyA9IGcgKHAsIHZhX2FyZyAodixpbnQpKTsKLSAgdmFfZW5kICh2KTsKLSAgcmV0dXJuIHM7Ci19Ci0KLS8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCi0gICBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBzdHVmZiwgYnV0IG5vdCAnXHhISCcgaGV4IGNoYXJhY3RlciBjb25zdGFudHMuCi0gICBUaGVzZSBkb24ndCBwcm92b2tlIGFuIGVycm9yIHVuZm9ydHVuYXRlbHksIGluc3RlYWQgYXJlIHNpbGVudGx5IHRyZWF0ZWQKLSAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZDEgaXMgYWRkZWQgdG8gZ2V0Ci0gICBwcm9wZXIgQU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCi0gICBhcnJheSBzaXplIGF0IGxlYXN0LiAgSXQncyBuZWNlc3NhcnkgdG8gd3JpdGUgJ1x4MDAnPT0wIHRvIGdldCBzb21ldGhpbmcKLSAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAtc3RkMS4gICovCi1pbnQgb3NmNF9jY19hcnJheSBbJ1x4MDAnID09IDAgPyAxIDogLTFdOwotCi1pbnQgdGVzdCAoaW50IGksIGRvdWJsZSB4KTsKLXN0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9Owotc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307Ci1pbnQgcGFpcm5hbWVzIChpbnQsIGNoYXIgKiosIEZJTEUgKigqKShzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCksIGludCwgaW50KTsKLWludCBhcmdjOwotY2hhciAqKmFyZ3Y7Ci1pbnQKLW1haW4gKCkKLXsKLXJldHVybiBmIChlLCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiAoZSwgYXJndiwgMSkgIT0gYXJndlsxXTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotIyBEb24ndCB0cnkgZ2NjIC1hbnNpOyB0aGF0IHR1cm5zIG9mZiB1c2VmdWwgZXh0ZW5zaW9ucyBhbmQKLSMgYnJlYWtzIHNvbWUgc3lzdGVtcycgaGVhZGVyIGZpbGVzLgotIyBBSVgJCQktcWxhbmdsdmw9YW5zaQotIyBVbHRyaXggYW5kIE9TRi8xCS1zdGQxCi0jIEhQLVVYIDEwLjIwIGFuZCBsYXRlcgktQWUKLSMgSFAtVVggb2xkZXIgdmVyc2lvbnMJLUFhIC1EX0hQVVhfU09VUkNFCi0jIFNWUjQJCQktWGMgLURfX0VYVEVOU0lPTlNfXwotZm9yIGFjX2FyZyBpbiAiIiAtcWxhbmdsdmw9YW5zaSAtc3RkMSAtQWUgIi1BYSAtRF9IUFVYX1NPVVJDRSIgIi1YYyAtRF9fRVhURU5TSU9OU19fIgotZG8KLSAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCi0gIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfcHJvZ19jY19zdGRjPSRhY19hcmcKLWJyZWFrCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAotZG9uZQotcm0gLWYgY29uZnRlc3QuJGFjX2V4dCBjb25mdGVzdC4kYWNfb2JqZXh0Ci1DQz0kYWNfc2F2ZV9DQwotCi1maQotCi1jYXNlICJ4JGFjX2N2X3Byb2dfY2Nfc3RkYyIgaW4KLSAgeHx4bm8pCi0gICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm9uZSBuZWVkZWQiID4mNQotZWNobyAiJHtFQ0hPX1R9bm9uZSBuZWVkZWQiID4mNiA7OwotICAqKQotICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2Nfc3RkYyIgPiY2Ci0gICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19zdGRjIiA7OwotZXNhYwotCi0jIFNvbWUgcGVvcGxlIHVzZSBhIEMrKyBjb21waWxlciB0byBjb21waWxlIEMuICBTaW5jZSB3ZSB1c2UgYGV4aXQnLAotIyBpbiBDKysgd2UgbmVlZCB0byBkZWNsYXJlIGl0LiAgSW4gY2FzZSBzb21lb25lIHVzZXMgdGhlIHNhbWUgY29tcGlsZXIKLSMgZm9yIGJvdGggY29tcGlsaW5nIEMgYW5kIEMrKyB3ZSBuZWVkIHRvIGhhdmUgdGhlIEMrKyBjb21waWxlciBkZWNpZGUKLSMgdGhlIGRlY2xhcmF0aW9uIG9mIGV4aXQsIHNpbmNlIGl0J3MgdGhlIG1vc3QgZGVtYW5kaW5nIGVudmlyb25tZW50LgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi0gIGNob2tlIG1lCi0jZW5kaWYKLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBmb3IgYWNfZGVjbGFyYXRpb24gaW4gXAotICAgJycgXAotICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKLSAgICdleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpOyB1c2luZyBzdGQ6OmV4aXQ7JyBcCi0gICAnZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCkgdGhyb3cgKCk7JyBcCi0gICAnZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCk7JyBcCi0gICAndm9pZCBleGl0IChpbnQpOycKLWRvCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2RlY2xhcmF0aW9uCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci1pbnQKLW1haW4gKCkKLXsKLWV4aXQgKDQyKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWNvbnRpbnVlCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19kZWNsYXJhdGlvbgotaW50Ci1tYWluICgpCi17Ci1leGl0ICg0Mik7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYnJlYWsKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWRvbmUKLXJtIC1mIGNvbmZ0ZXN0KgotaWYgdGVzdCAtbiAiJGFjX2RlY2xhcmF0aW9uIjsgdGhlbgotICBlY2hvICcjaWZkZWYgX19jcGx1c3BsdXMnID4+Y29uZmRlZnMuaAotICBlY2hvICRhY19kZWNsYXJhdGlvbiAgICAgID4+Y29uZmRlZnMuaAotICBlY2hvICcjZW5kaWYnICAgICAgICAgICAgID4+Y29uZmRlZnMuaAotZmkKLQotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgotCi0gICAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRlcGZpbGVzIgotCi0KLWFtX21ha2U9JHtNQUtFLW1ha2V9Ci1jYXQgPiBjb25maW5jIDw8ICdFTkQnCi1hbV9fZG9pdDoKLQlAZWNobyBkb25lCi0uUEhPTlk6IGFtX19kb2l0Ci1FTkQKLSMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZS4uLiAkRUNIT19DIiA+JjYKLWFtX19pbmNsdWRlPSIjIgotYW1fX3F1b3RlPQotX2FtX3Jlc3VsdD1ub25lCi0jIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgotZWNobyAiaW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgotIyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JwotIyBtZXNzYWdlcyB3aGljaCBjYW4gb2NjdXIgaWYgYHcnIGVuZHMgdXAgaW4gTUFLRUZMQUdTLgotIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0IGxvb2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAotIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKLSMgY2FzZSBpdCBwcmludHMgaXRzIG5ldyBuYW1lIGluc3RlYWQgb2YgYG1ha2UnLgotaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5J2AiID0gImRvbmUiOyB0aGVuCi0gICBhbV9faW5jbHVkZT1pbmNsdWRlCi0gICBhbV9fcXVvdGU9Ci0gICBfYW1fcmVzdWx0PUdOVQotZmkKLSMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBpbmNsdWRlLgotaWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgotICAgaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIiA9ICJkb25lIjsgdGhlbgotICAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSAgICAgIGFtX19xdW90ZT0iXCIiCi0gICAgICBfYW1fcmVzdWx0PUJTRAotICAgZmkKLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJF9hbV9yZXN1bHQiID4mNQotZWNobyAiJHtFQ0hPX1R9JF9hbV9yZXN1bHQiID4mNgotcm0gLWYgY29uZmluYyBjb25mbWYKLQotIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgb3IgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgd2FzIGdpdmVuLgotaWYgdGVzdCAiJHtlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZytzZXR9IiA9IHNldDsgdGhlbgotICBlbmFibGV2YWw9IiRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIKLQotZmk7Ci1pZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KLSAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIKLSAgQU1ERVBCQUNLU0xBU0g9J1wnCi1maQotCi0KLWlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgotICBBTURFUF9UUlVFPQotICBBTURFUF9GQUxTRT0nIycKLWVsc2UKLSAgQU1ERVBfVFJVRT0nIycKLSAgQU1ERVBfRkFMU0U9Ci1maQotCi0KLQotCi1kZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0gICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKLSAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAotICAjIGluIEQnLgotICBta2RpciBjb25mdGVzdC5kaXIKLSAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSAgY2QgY29uZnRlc3QuZGlyCi0gICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQotICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0gICMgZGlyZWN0b3J5LgotICBta2RpciBzdWIKLQotICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi0gIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0gICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0gIGZpCi0gIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwotICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0gICAgIwotICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0gICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KLSAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KLSAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KLSAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKLSAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0gICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgotICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCi0gICAgZG9uZQotICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKLQotICAgIGNhc2UgJGRlcG1vZGUgaW4KLSAgICBub3NpZGVlZmZlY3QpCi0gICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKLSAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotCWNvbnRpbnVlCi0gICAgICBlbHNlCi0JYnJlYWsKLSAgICAgIGZpCi0gICAgICA7OwotICAgIG5vbmUpIGJyZWFrIDs7Ci0gICAgZXNhYwotICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0gICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCi0gICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0gICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gXAotICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCi0gICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKLSAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKLSAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0gICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKLSAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCi0gICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6Ci0gICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0gICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKLSAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSAgICAgICAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKLSAgICAgICAgYnJlYWsKLSAgICAgIGZpCi0gICAgZmkKLSAgZG9uZQotCi0gIGNkIC4uCi0gIHJtIC1yZiBjb25mdGVzdC5kaXIKLWVsc2UKLSAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotZmkKLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNgotQ0NERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0KLQotCi1pZgotICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotICAmJiB0ZXN0ICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjMzsgdGhlbgotICBhbV9fZmFzdGRlcENDX1RSVUU9Ci0gIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCi1lbHNlCi0gIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKLSAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0KLWZpCi0KLQotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBfR05VX1NPVVJDRSAxCi1fQUNFT0YKLQotCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwcmltYXJ5IGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHByaW1hcnkgaW5jbHVkZSBkaXJlY3RvcnkuLi4gJEVDSE9fQyIgPiY2Ci1pbmNsdWRlZGlyPS91c3IvaW5jbHVkZQotaWYgdGVzdCAtbiAiJEdDQyIKLXRoZW4KLQk+Y29uZnRlc3QuYwotCW5ld19pbmNsdWRlZGlyPWAKLQkJJENDIC12IC1FIGNvbmZ0ZXN0LmMgMj4mMSB8ICRBV0sgJwotCQkJL15FbmQgb2Ygc2VhcmNoIGxpc3QvIHsgcHJpbnQgbGFzdDsgZXhpdCB9Ci0JCQl7IGxhc3QgPSAkMSB9Ci0JCScKLQlgCi0Jcm0gLWYgY29uZnRlc3QuYwotCWlmIHRlc3QgLW4gIiRuZXdfaW5jbHVkZWRpciIgJiYgdGVzdCAtZCAiJG5ld19pbmNsdWRlZGlyIgotCXRoZW4KLQkJaW5jbHVkZWRpcj0kbmV3X2luY2x1ZGVkaXIKLQlmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRpbmNsdWRlZGlyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRpbmNsdWRlZGlyIiA+JjYKLQotCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IiAmJiB0ZXN0ICJ4JGFyY2giID0gInhzcGFyYyIKLXRoZW4KLQllY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHZhbGlkIG1hY2hpbmUgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgdmFsaWQgbWFjaGluZSBpbmNsdWRlIGRpcmVjdG9yeS4uLiAkRUNIT19DIiA+JjYKLQlpZiB0ZXN0IC1kICIkaW5jbHVkZWRpci9zdW40IgotCXRoZW4KLQkJcm0gLWYgbWFjaGluZQotCQlsbiAtcyAkaW5jbHVkZWRpci9zdW40IG1hY2hpbmUKLQkJZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLWVjaG8gIiR7RUNIT19UfXllcyIgPiY2Ci0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgMQotX0FDRU9GCi0KLQllbHNlCi0JCWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLWVjaG8gIiR7RUNIT19UfW5vIiA+JjYKLQlmaQotZmkKLQotCi1pZiB0ZXN0IC16ICIkV0FSTkZMQUdTIgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIElmIHdlJ3JlIHVzaW5nIGdjYyB3ZSB3YW50IHdhcm5pbmcgZmxhZ3MuCi0JCVdBUk5GTEFHUz0tV2FsbAotCWZpCi1maQotCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIFN1bk9TIDQueCBoZWFkZXIgZmlsZXMgZG9uJ3QgZGVjbGFyZSBpbnQgZnVuY3Rpb25zLgotCQlXQVJORkxBR1M9IiRXQVJORkxBR1MgLVduby1pbXBsaWNpdCIKLQlmaQotZmkKLQotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gJEVDSE9fQyIgPiY2Ci0jIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KLSAgQ1BQPQotZmkKLWlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCi0gICAgZG8KLSAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotZG8KLSAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0gICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaWZkZWYgX19TVERDX18KLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0jZWxzZQotIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSNlbmRpZgotCQkgICAgIFN5bnRheCBlcnJvcgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLSAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotY29udGludWUKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotCi0gICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycwotICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotY29udGludWUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotICAjIFBhc3NlcyBib3RoIHRlc3RzLgotYWNfcHJlcHJvY19vaz06Ci1icmVhawotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0KLWRvbmUKLSMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWlmICRhY19wcmVwcm9jX29rOyB0aGVuCi0gIGJyZWFrCi1maQotCi0gICAgZG9uZQotICAgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKLQotZmkKLSAgQ1BQPSRhY19jdl9wcm9nX0NQUAotZWxzZQotICBhY19jdl9wcm9nX0NQUD0kQ1BQCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kQ1BQIiA+JjYKLWFjX3ByZXByb2Nfb2s9ZmFsc2UKLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotZG8KLSAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0gICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaWZkZWYgX19TVERDX18KLSMgaW5jbHVkZSA8bGltaXRzLmg+Ci0jZWxzZQotIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSNlbmRpZgotCQkgICAgIFN5bnRheCBlcnJvcgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLSAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotY29udGludWUKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotCi0gICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycwotICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotY29udGludWUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotICAjIFBhc3NlcyBib3RoIHRlc3RzLgotYWNfcHJlcHJvY19vaz06Ci1icmVhawotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0KLWRvbmUKLSMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWlmICRhY19wcmVwcm9jX29rOyB0aGVuCi0gIDoKLWVsc2UKLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotCi1hY19leHQ9YwotYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLWFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLWFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi1hY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0KLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGVncmVwIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGVncmVwLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX2VncmVwK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIGVjaG8gYSB8IChncmVwIC1FICcoYXxiKScpID4vZGV2L251bGwgMj4mMQotICAgIHRoZW4gYWNfY3ZfcHJvZ19lZ3JlcD0nZ3JlcCAtRScKLSAgICBlbHNlIGFjX2N2X3Byb2dfZWdyZXA9J2VncmVwJwotICAgIGZpCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfZWdyZXAiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfZWdyZXAiID4mNgotIEVHUkVQPSRhY19jdl9wcm9nX2VncmVwCi0KLQotaWYgdGVzdCAkYWNfY3ZfY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgbmVlZHMgLXRyYWRpdGlvbmFsIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgbmVlZHMgLXRyYWRpdGlvbmFsLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX2djY190cmFkaXRpb25hbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICAgIGFjX3BhdHRlcm49IkF1dG9jb25mLioneCciCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHNndHR5Lmg+Ci1BdXRvY29uZiBUSU9DR0VUUAotX0FDRU9GCi1pZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gICRFR1JFUCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKLWVsc2UKLSAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotCi0gIGlmIHRlc3QgJGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsID0gbm87IHRoZW4KLSAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDx0ZXJtaW8uaD4KLUF1dG9jb25mIFRDR0VUQQotX0FDRU9GCi1pZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gICRFR1JFUCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotICBmaQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwiID4mNgotICBpZiB0ZXN0ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCA9IHllczsgdGhlbgotICAgIENDPSIkQ0MgLXRyYWRpdGlvbmFsIgotICBmaQotZmkKLQotIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCi0jIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgotIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKLSMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAotIyBJUklYIC9zYmluL2luc3RhbGwKLSMgQUlYIC9iaW4vaW5zdGFsbAotIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCi0jIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZwotIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCi0jIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCi0jIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKLSMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi1pZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi1mb3IgYXNfZGlyIGluICRQQVRICi1kbwotICBJRlM9JGFzX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0gICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgotY2FzZSAkYXNfZGlyLyBpbgotICAuLyB8IC4vLyB8IC9jQy8qIHwgXAotICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKLSAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCi0gIC91c3IvdWNiLyogKSA7OwotICAqKQotICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCi0gICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290Ci0gICAgIyBieSBkZWZhdWx0LgotICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KLSAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotCWlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCi0JICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotCSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KLQkgICAgOgotCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotCSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotCSAgICA6Ci0JICBlbHNlCi0JICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKLQkgICAgYnJlYWsgMwotCSAgZmkKLQlmaQotICAgICAgZG9uZQotICAgIGRvbmUKLSAgICA7OwotZXNhYwotZG9uZQotCi0KLWZpCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0gICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0gIGVsc2UKLSAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBjYWNoZSBhCi0gICAgIyBwYXRoIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0gICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLgotICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSAgZmkKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kSU5TVEFMTCIgPiY2Ci0KLSMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KLSMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi10ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0KLXRlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCi0KLXRlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYW4gQU5TSSBDLWNvbmZvcm1pbmcgY29uc3QuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2NfY29uc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLWludAotbWFpbiAoKQotewotLyogRklYTUU6IEluY2x1ZGUgdGhlIGNvbW1lbnRzIHN1Z2dlc3RlZCBieSBQYXVsLiAqLwotI2lmbmRlZiBfX2NwbHVzcGx1cwotICAvKiBVbHRyaXggbWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwotICB0eXBlZGVmIGludCBjaGFyc2V0WzJdOwotICBjb25zdCBjaGFyc2V0IHg7Ci0gIC8qIFN1bk9TIDQuMS4xIGNjIHJlamVjdHMgdGhpcy4gICovCi0gIGNoYXIgY29uc3QgKmNvbnN0ICpjY3A7Ci0gIGNoYXIgKipwOwotICAvKiBORUMgU1ZSNC4wLjIgbWlwcyBjYyByZWplY3RzIHRoaXMuICAqLwotICBzdHJ1Y3QgcG9pbnQge2ludCB4LCB5O307Ci0gIHN0YXRpYyBzdHJ1Y3QgcG9pbnQgY29uc3QgemVybyA9IHswLDB9OwotICAvKiBBSVggWEwgQyAxLjAyLjAuMCByZWplY3RzIHRoaXMuCi0gICAgIEl0IGRvZXMgbm90IGxldCB5b3Ugc3VidHJhY3Qgb25lIGNvbnN0IFgqIHBvaW50ZXIgZnJvbSBhbm90aGVyIGluCi0gICAgIGFuIGFybSBvZiBhbiBpZi1leHByZXNzaW9uIHdob3NlIGlmLXBhcnQgaXMgbm90IGEgY29uc3RhbnQKLSAgICAgZXhwcmVzc2lvbiAqLwotICBjb25zdCBjaGFyICpnID0gInN0cmluZyI7Ci0gIGNjcCA9ICZnICsgKGcgPyBnLWcgOiAwKTsKLSAgLyogSFBVWCA3LjAgY2MgcmVqZWN0cyB0aGVzZS4gKi8KLSAgKytjY3A7Ci0gIHAgPSAoY2hhcioqKSBjY3A7Ci0gIGNjcCA9IChjaGFyIGNvbnN0ICpjb25zdCAqKSBwOwotICB7IC8qIFNDTyAzLjJ2NCBjYyByZWplY3RzIHRoaXMuICAqLwotICAgIGNoYXIgKnQ7Ci0gICAgY2hhciBjb25zdCAqcyA9IDAgPyAoY2hhciAqKSAwIDogKGNoYXIgY29uc3QgKikgMDsKLQotICAgICp0KysgPSAwOwotICB9Ci0gIHsgLyogU29tZW9uZSB0aGlua3MgdGhlIFN1biBzdXBwb3NlZGx5LUFOU0kgY29tcGlsZXIgd2lsbCByZWplY3QgdGhpcy4gICovCi0gICAgaW50IHhbXSA9IHsyNSwgMTd9OwotICAgIGNvbnN0IGludCAqZm9vID0gJnhbMF07Ci0gICAgKytmb287Ci0gIH0KLSAgeyAvKiBTdW4gU0MxLjAgQU5TSSBjb21waWxlciByZWplY3RzIHRoaXMgLS0gYnV0IG5vdCB0aGUgYWJvdmUuICovCi0gICAgdHlwZWRlZiBjb25zdCBpbnQgKmlwdHI7Ci0gICAgaXB0ciBwID0gMDsKLSAgICArK3A7Ci0gIH0KLSAgeyAvKiBBSVggWEwgQyAxLjAyLjAuMCByZWplY3RzIHRoaXMgc2F5aW5nCi0gICAgICAgImsuYyIsIGxpbmUgMi4yNzogMTUwNi0wMjUgKFMpIE9wZXJhbmQgbXVzdCBiZSBhIG1vZGlmaWFibGUgbHZhbHVlLiAqLwotICAgIHN0cnVjdCBzIHsgaW50IGo7IGNvbnN0IGludCAqYXBbM107IH07Ci0gICAgc3RydWN0IHMgKmI7IGItPmogPSA1OwotICB9Ci0gIHsgLyogVUxUUklYLTMyIFYzLjEgKFJldiA5KSB2Y2MgcmVqZWN0cyB0aGlzICovCi0gICAgY29uc3QgaW50IGZvbyA9IDEwOwotICB9Ci0jZW5kaWYKLQotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X2NfY29uc3Q9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X2NfY29uc3Q9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29uc3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2NfY29uc3QiID4mNgotaWYgdGVzdCAkYWNfY3ZfY19jb25zdCA9IG5vOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIGNvbnN0Ci1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGZsb2F0Lmg+Ci0KLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotCi1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN0cmluZy5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICA6Ci1lbHNlCi0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0gICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLV9BQ0VPRgotaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICA6Ci1lbHNlCi0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0gICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgOgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQotIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQotI2Vsc2UKLSMgZGVmaW5lIElTTE9XRVIoYykgXAotCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAotCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKLQkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0jZW5kaWYKLQotI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLWludAotbWFpbiAoKQotewotICBpbnQgaTsKLSAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLQl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKLSAgICAgIGV4aXQoMik7Ci0gIGV4aXQgKDApOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgOgotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RkYyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBTVERDX0hFQURFUlMgMQotX0FDRU9GCi0KLWZpCi0KLQotCi0KLQotCi1hY19oZWFkZXJfZGlyZW50PW5vCi1mb3IgYWNfaGRyIGluIGRpcmVudC5oIHN5cy9uZGlyLmggc3lzL2Rpci5oIG5kaXIuaDsgZG8KLSAgYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfZGlyZW50XyRhY19oZHIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGRyIHRoYXQgZGVmaW5lcyBESVIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hkciB0aGF0IGRlZmluZXMgRElSLi4uICRFQ0hPX0MiID4mNgotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDwkYWNfaGRyPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoRElSICopIDApCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQotZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZHIiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWFjX2hlYWRlcl9kaXJlbnQ9JGFjX2hkcjsgYnJlYWsKLWZpCi0KLWRvbmUKLSMgVHdvIHZlcnNpb25zIG9mIG9wZW5kaXIgZXQgYWwuIGFyZSBpbiAtbGRpciBhbmQgLWx4IG9uIFNDTyBYZW5peC4KLWlmIHRlc3QgJGFjX2hlYWRlcl9kaXJlbnQgPSBkaXJlbnQuaDsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9zZWFyY2hfb3BlbmRpcitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlM9JExJQlMKLWFjX2N2X3NlYXJjaF9vcGVuZGlyPW5vCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIgotI2VuZGlmCi0vKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCi0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotY2hhciBvcGVuZGlyICgpOwotaW50Ci1tYWluICgpCi17Ci1vcGVuZGlyICgpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3NlYXJjaF9vcGVuZGlyPSJub25lIHJlcXVpcmVkIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWlmIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgPSBubzsgdGhlbgotICBmb3IgYWNfbGliIGluIGRpcjsgZG8KLSAgICBMSUJTPSItbCRhY19saWIgICRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMiCi0gICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLS8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIKLSNlbmRpZgotLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLWNoYXIgb3BlbmRpciAoKTsKLWludAotbWFpbiAoKQotewotb3BlbmRpciAoKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9zZWFyY2hfb3BlbmRpcj0iLWwkYWNfbGliIgotYnJlYWsKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0gIGRvbmUKLWZpCi1MSUJTPSRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA+JjYKLWlmIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgIT0gbm87IHRoZW4KLSAgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA9ICJub25lIHJlcXVpcmVkIiB8fCBMSUJTPSIkYWNfY3Zfc2VhcmNoX29wZW5kaXIgJExJQlMiCi0KLWZpCi0KLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpci4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3Zfc2VhcmNoX29wZW5kaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTPSRMSUJTCi1hY19jdl9zZWFyY2hfb3BlbmRpcj1ubwotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLS8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIKLSNlbmRpZgotLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgotICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLWNoYXIgb3BlbmRpciAoKTsKLWludAotbWFpbiAoKQotewotb3BlbmRpciAoKTsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9zZWFyY2hfb3BlbmRpcj0ibm9uZSByZXF1aXJlZCIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci1pZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID0gbm87IHRoZW4KLSAgZm9yIGFjX2xpYiBpbiB4OyBkbwotICAgIExJQlM9Ii1sJGFjX2xpYiAgJGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUyIKLSAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIgotI2VuZGlmCi0vKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCi0gICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotY2hhciBvcGVuZGlyICgpOwotaW50Ci1tYWluICgpCi17Ci1vcGVuZGlyICgpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3NlYXJjaF9vcGVuZGlyPSItbCRhY19saWIiCi1icmVhawotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSAgZG9uZQotZmkKLUxJQlM9JGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUwotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zZWFyY2hfb3BlbmRpciIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3Zfc2VhcmNoX29wZW5kaXIiID4mNgotaWYgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiAhPSBubzsgdGhlbgotICB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID0gIm5vbmUgcmVxdWlyZWQiIHx8IExJQlM9IiRhY19jdl9zZWFyY2hfb3BlbmRpciAkTElCUyIKLQotZmkKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9zIGFyZSBicm9rZW4iID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1tb2RlIG1hY3JvcyBhcmUgYnJva2VuLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RhdF9icm9rZW4rc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLQotI2lmIGRlZmluZWQoU19JU0JMSykgJiYgZGVmaW5lZChTX0lGRElSKQotIyBpZiBTX0lTQkxLIChTX0lGRElSKQotWW91IGxvc2UuCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU19JU0JMSykgJiYgZGVmaW5lZChTX0lGQ0hSKQotIyBpZiBTX0lTQkxLIChTX0lGQ0hSKQotWW91IGxvc2UuCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU19JU0xOSykgJiYgZGVmaW5lZChTX0lGUkVHKQotIyBpZiBTX0lTTE5LIChTX0lGUkVHKQotWW91IGxvc2UuCi0jIGVuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoU19JU1NPQ0spICYmIGRlZmluZWQoU19JRlJFRykKLSMgaWYgU19JU1NPQ0sgKFNfSUZSRUcpCi1Zb3UgbG9zZS4KLSMgZW5kaWYKLSNlbmRpZgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJZb3UgbG9zZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbj15ZXMKLWVsc2UKLSAgYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RhdF9icm9rZW4iID4mNgotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIFNUQVRfTUFDUk9TX0JST0tFTiAxCi1fQUNFT0YKLQotZmkKLQotIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KLQotCi0KLQotCi0KLQotCi0KLWZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAotCQkgIGludHR5cGVzLmggc3RkaW50LmggdW5pc3RkLmgKLWRvCi1hc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0KLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1ldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci1pZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi1fQUNFT0YKLQotZmkKLQotZG9uZQotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxrc2l6ZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9ibGtzaXplLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfYmxrc2l6ZSkKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKHNpemVvZiBhY19hZ2dyLnN0X2Jsa3NpemUpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZT15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemU9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemUiID4mNgotaWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemUgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxvY2tzIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2Jsb2Nrcy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfYmxvY2tzKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2Nrcz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9ibG9ja3MpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxvY2tzPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxvY2tzPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxvY2tzID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYWNsY250IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2FjbGNudC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfYWNsY250KQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9hY2xjbnQpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250ID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9BQ0xDTlQgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZmxhZ3MiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZmxhZ3MuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfZmxhZ3MpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZmxhZ3MpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZsYWdzIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncyA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZnN0eXBlIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2ZzdHlwZS4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZStzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfZnN0eXBlKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZT15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9mc3R5cGUpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZnN0eXBlPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZnN0eXBlPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZSIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZSIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZnN0eXBlID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZ2VuIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2dlbi4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfZ2VuKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbj15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci5zdF9nZW4pCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZ2VuPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZ2VuPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbiIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbiIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZ2VuID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9HRU4gMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfbGV2ZWwiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfbGV2ZWwuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfbGV2ZWwpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWw9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfbGV2ZWwpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWw9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2xldmVsIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfTEVWRUwgMQotX0FDRU9GCi0KLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfcmRldiIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9yZGV2Li4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRlditzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKGFjX2FnZ3Iuc3RfcmRldikKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9yZGV2PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOwotaWYgKHNpemVvZiBhY19hZ2dyLnN0X3JkZXYpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldj15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXY9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldiIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXYiID4mNgotaWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXYgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQotX0FDRU9GCi0KLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdGF0NjQgaW4gKGFzbXxzeXMpL3N0YXQuaCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdGF0NjQgaW4gKGFzbXxzeXMpL3N0YXQuaC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdGF0NjQrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaWZkZWYgTElOVVgKLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLWludAotbWFpbiAoKQotewotc3RydWN0IHN0YXQ2NCBzdDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0YXQ2ND15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdGF0NjQ9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdGF0NjQiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc3RhdDY0IiA+JjYKLWlmIHRlc3QgIiRhY19jdl90eXBlX3N0YXQ2NCIgPSB5ZXMKLXRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVEFUNjQgMQotX0FDRU9GCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zaWduYWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaWZkZWYgc2lnbmFsCi0jIHVuZGVmIHNpZ25hbAotI2VuZGlmCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgdm9pZCAoKnNpZ25hbCAoaW50LCB2b2lkICgqKShpbnQpKSkoaW50KTsKLSNlbHNlCi12b2lkICgqc2lnbmFsICgpKSAoKTsKLSNlbmRpZgotCi1pbnQKLW1haW4gKCkKLXsKLWludCBpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3R5cGVfc2lnbmFsPXZvaWQKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zaWduYWw9aW50Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3NpZ25hbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zaWduYWwiID4mNgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIFJFVFNJR1RZUEUgJGFjX2N2X3R5cGVfc2lnbmFsCi1fQUNFT0YKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3VpZF90K3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJ1aWRfdCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFjX2N2X3R5cGVfdWlkX3Q9eWVzCi1lbHNlCi0gIGFjX2N2X3R5cGVfdWlkX3Q9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3VpZF90IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3VpZF90IiA+JjYKLWlmIHRlc3QgJGFjX2N2X3R5cGVfdWlkX3QgPSBubzsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSB1aWRfdCBpbnQKLV9BQ0VPRgotCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIGdpZF90IGludAotX0FDRU9GCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbW9kZV90IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1vZGVfdC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9tb2RlX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci1pZiAoKG1vZGVfdCAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKG1vZGVfdCkpCi0gIHJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3R5cGVfbW9kZV90PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl90eXBlX21vZGVfdD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9tb2RlX3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfbW9kZV90IiA+JjYKLWlmIHRlc3QgJGFjX2N2X3R5cGVfbW9kZV90ID0geWVzOyB0aGVuCi0gIDoKLWVsc2UKLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBtb2RlX3QgaW50Ci1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHR5cGUgb2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0Z3JvdXBzIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgdHlwZSBvZiBhcnJheSBhcmd1bWVudCB0byBnZXRncm91cHMuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfZ2V0Z3JvdXBzK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0gIGFjX2N2X3R5cGVfZ2V0Z3JvdXBzPWNyb3NzCi1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotLyogVGhhbmtzIHRvIE1pa2UgUmVuZGVsbCBmb3IgdGhpcyB0ZXN0LiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNkZWZpbmUgTkdJRCAyNTYKLSN1bmRlZiBNQVgKLSNkZWZpbmUgTUFYKHgsIHkpICgoeCkgPiAoeSkgPyAoeCkgOiAoeSkpCi0KLWludAotbWFpbiAoKQotewotICBnaWRfdCBnaWRzZXRbTkdJRF07Ci0gIGludCBpLCBuOwotICB1bmlvbiB7IGdpZF90IGd2YWw7IGxvbmcgbHZhbDsgfSAgdmFsOwotCi0gIHZhbC5sdmFsID0gLTE7Ci0gIGZvciAoaSA9IDA7IGkgPCBOR0lEOyBpKyspCi0gICAgZ2lkc2V0W2ldID0gdmFsLmd2YWw7Ci0gIG4gPSBnZXRncm91cHMgKHNpemVvZiAoZ2lkc2V0KSAvIE1BWCAoc2l6ZW9mIChpbnQpLCBzaXplb2YgKGdpZF90KSkgLSAxLAotCQkgZ2lkc2V0KTsKLSAgLyogRXhpdCBub24temVybyBpZiBnZXRncm91cHMgc2VlbXMgdG8gcmVxdWlyZSBhbiBhcnJheSBvZiBpbnRzLiAgVGhpcwotICAgICBoYXBwZW5zIHdoZW4gZ2lkX3QgaXMgc2hvcnQgYnV0IGdldGdyb3VwcyBtb2RpZmllcyBhbiBhcnJheSBvZiBpbnRzLiAgKi8KLSAgZXhpdCAoKG4gPiAwICYmIGdpZHNldFtuXSAhPSB2YWwuZ3ZhbCkgPyAxIDogMCk7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX2dldGdyb3Vwcz1naWRfdAotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfdHlwZV9nZXRncm91cHM9aW50Ci1maQotcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1pZiB0ZXN0ICRhY19jdl90eXBlX2dldGdyb3VwcyA9IGNyb3NzOyB0aGVuCi0gICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgJEVHUkVQICJnZXRncm91cHMuKmludC4qZ2lkX3QiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl90eXBlX2dldGdyb3Vwcz1naWRfdAotZWxzZQotICBhY19jdl90eXBlX2dldGdyb3Vwcz1pbnQKLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotZmkKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9nZXRncm91cHMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfZ2V0Z3JvdXBzIiA+JjYKLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBHRVRHUk9VUFNfVCAkYWNfY3ZfdHlwZV9nZXRncm91cHMKLV9BQ0VPRgotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN5cy90eXBlcy5oIGRlZmluZXMgbWFrZWRldiIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgc3lzL3R5cGVzLmggZGVmaW5lcyBtYWtlZGV2Li4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRlditzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLWludAotbWFpbiAoKQotewotcmV0dXJuIG1ha2VkZXYoMCwgMCk7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXY9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaF9tYWtlZGV2PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLQotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldiIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXYiID4mNgotCi1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldiA9IG5vOyB0aGVuCi1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9ta2Rldi5oIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9ta2Rldi5oLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX21rZGV2X2grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX21rZGV2X2giID4mNgotZWxzZQotICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvbWtkZXYuaCB1c2FiaWxpdHkiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvbWtkZXYuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0jaW5jbHVkZSA8c3lzL21rZGV2Lmg+Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19oZWFkZXJfY29tcGlsZXI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgotCi0jIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvbWtkZXYuaCBwcmVzZW5jZSIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9ta2Rldi5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL21rZGV2Lmg+Ci1fQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLSAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKLSAgZWxzZQotICAgIGFjX2NwcF9lcnI9Ci0gIGZpCi1lbHNlCi0gIGFjX2NwcF9lcnI9eWVzCi1maQotaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0gIGFjX2hlYWRlcl9wcmVwcm9jPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotCi0jIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KLSAgeWVzOm5vOiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQotICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotICAgIDs7Ci0gIG5vOnllczoqICkKLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQotICAgICgKLSAgICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgUmVwb3J0IHRoaXMgdG8gdGhlIHN0cmFjZSBsaXN0cy4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAotICAgICkgfAotICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCi0gICAgOzsKLWVzYWMKLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3lzL21rZGV2LmgiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL21rZGV2LmguLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jdl9oZWFkZXJfc3lzX21rZGV2X2g9JGFjX2hlYWRlcl9wcmVwcm9jCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oIiA+JjYKLQotZmkKLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBNQUpPUl9JTl9NS0RFViAxCi1fQUNFT0YKLQotZmkKLQotCi0KLSAgaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oID0gbm87IHRoZW4KLSAgICBpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvc3lzbWFjcm9zLmgiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3N5c21hY3Jvcy5oLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2giID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2giID4mNgotZWxzZQotICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc3lzbWFjcm9zLmggdXNhYmlsaXR5IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3N5c21hY3Jvcy5oIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLSNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19oZWFkZXJfY29tcGlsZXI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgotCi0jIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzeXMvc3lzbWFjcm9zLmggcHJlc2VuY2UiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvc3lzbWFjcm9zLmggcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2Ci1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Ci1fQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLSAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKLSAgZWxzZQotICAgIGFjX2NwcF9lcnI9Ci0gIGZpCi1lbHNlCi0gIGFjX2NwcF9lcnI9eWVzCi1maQotaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gIGFjX2hlYWRlcl9wcmVwcm9jPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0gIGFjX2hlYWRlcl9wcmVwcm9jPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgotCi0jIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KLWNhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KLSAgeWVzOm5vOiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSAgICA7OwotICBubzp5ZXM6KiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9Ci0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KLSAgICAoCi0gICAgICBjYXQgPDxcX0FTQk9YCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFJlcG9ydCB0aGlzIHRvIHRoZSBzdHJhY2UgbGlzdHMuICAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi1fQVNCT1gKLSAgICApIHwKLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotICAgIDs7Ci1lc2FjCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9zeXNtYWNyb3MuaCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvc3lzbWFjcm9zLmguLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2grc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaD0kYWNfaGVhZGVyX3ByZXByb2MKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaCIgPiY2Ci0KLWZpCi1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIE1BSk9SX0lOX1NZU01BQ1JPUyAxCi1fQUNFT0YKLQotZmkKLQotCi0gIGZpCi1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNpZ19hdG9taWNfdCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzaWdfYXRvbWljX3QuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfc2lnX2F0b21pY190K3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHNpZ25hbC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc2lnX2F0b21pY190ICopIDApCi0gIHJldHVybiAwOwotaWYgKHNpemVvZiAoc2lnX2F0b21pY190KSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3Q9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc2lnX2F0b21pY190PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3NpZ19hdG9taWNfdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3QiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3QgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaWdpbmZvX3QiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc2lnaW5mb190Li4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3NpZ2luZm9fdCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzaWduYWwuaD4KLQotaW50Ci1tYWluICgpCi17Ci1pZiAoKHNpZ2luZm9fdCAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHNpZ2luZm9fdCkpCi0gIHJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X3R5cGVfc2lnaW5mb190PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl90eXBlX3NpZ2luZm9fdD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zaWdpbmZvX3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc2lnaW5mb190IiA+JjYKLWlmIHRlc3QgJGFjX2N2X3R5cGVfc2lnaW5mb190ID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQotX0FDRU9GCi0KLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc29ja2FkZHJfaW42LnNpbjZfc2NvcGVfaWQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0KLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBzb2NrYWRkcl9pbjYgYWNfYWdncjsKLWlmIChhY19hZ2dyLnNpbjZfc2NvcGVfaWQpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfaW42IGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3Iuc2luNl9zY29wZV9pZCkKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQ9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQ9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCi1fQUNFT0YKLQotCi1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsb25nIGxvbmcuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfbG9uZ19sb25nK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotJGFjX2luY2x1ZGVzX2RlZmF1bHQKLWludAotbWFpbiAoKQotewotaWYgKChsb25nIGxvbmcgKikgMCkKLSAgcmV0dXJuIDA7Ci1pZiAoc2l6ZW9mIChsb25nIGxvbmcpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX2xvbmdfbG9uZz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9sb25nX2xvbmc9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfbG9uZ19sb25nIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX2xvbmdfbG9uZyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX2xvbmdfbG9uZyA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKLV9BQ0VPRgotCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmciID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmcrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKLWFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9bm8KLQotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotaW50IG1haW4gKCkgewotCXVuaW9uIHsKLQkJbG9uZyBsb25nIGxsOwotCQlsb25nIGwgWzJdOwotCX0gdTsKLQl1LmxsID0gMHgxMjM0NTY3ODsKLQlpZiAodS5sWzBdID09IDB4MTIzNDU2NzgpCi0JCXJldHVybiAwOwotCXJldHVybiAxOwotfQotCi1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZz1ubwotZmkKLXJtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmciID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmciID4mNgotaWYgdGVzdCAiJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmciID0geWVzCi10aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQotX0FDRU9GCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbG9uZyBsb25nIG9mZl90IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBvZmZfdC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKLWFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90PW5vCi0KLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1tYWluICgpIHsKLQlpZiAoc2l6ZW9mIChvZmZfdCkgPT0gc2l6ZW9mIChsb25nIGxvbmcpICYmCi0JICAgIHNpemVvZiAob2ZmX3QpID4gc2l6ZW9mIChsb25nKSkKLQkgICAgcmV0dXJuIDA7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3QiID4mNgotaWYgdGVzdCAiJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90IiA9IHllcwotdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBIQVZFX0xPTkdfTE9OR19PRkZfVCAxCi1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsb25nIGxvbmcgcmxpbV90IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBybGltX3QuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotICAjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQotYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCi0KLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLW1haW4gKCkgewotCWlmIChzaXplb2YgKHJsaW1fdCkgPT0gc2l6ZW9mIChsb25nIGxvbmcpICYmCi0JICAgIHNpemVvZiAocmxpbV90KSA+IHNpemVvZiAobG9uZykpCi0JICAgIHJldHVybiAwOwotCXJldHVybiAxOwotfQotCi1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci1lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0oIGV4aXQgJGFjX3N0YXR1cyApCi1hY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdCIgPiY2Ci1pZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90IiA9IHllcwotdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBIQVZFX0xPTkdfTE9OR19STElNX1QgMQotX0FDRU9GCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IG9wdGhkciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgb3B0aGRyLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3N0cnVjdF9vcHRoZHIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc3RydWN0IG9wdGhkciAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCBvcHRoZHIpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0cnVjdF9vcHRoZHI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc3RydWN0X29wdGhkcj1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0cnVjdF9vcHRoZHIiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfT1BUSERSIDEKLV9BQ0VPRgotCi0KLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHRfb3B0aGRyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCB0X29wdGhkci4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3RpdXNlci5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc3RydWN0IHRfb3B0aGRyICopIDApCi0gIHJldHVybiAwOwotaWYgKHNpemVvZiAoc3RydWN0IHRfb3B0aGRyKSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc3RydWN0X3Rfb3B0aGRyPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3N0cnVjdF90X29wdGhkciIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9UX09QVEhEUiAxCi1fQUNFT0YKLQotCi1maQotCi0KLWlmIHRlc3QgeCRvcHN5cyAhPSB4bGludXg7IHRoZW4KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sbnNsIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWxuc2wuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2xpYl9uc2xfbWFpbitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi1MSUJTPSItbG5zbCAgJExJQlMiCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotCi1pbnQKLW1haW4gKCkKLXsKLW1haW4gKCk7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbGliX25zbF9tYWluPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9saWJfbnNsX21haW49bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0gICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfbnNsX21haW4iID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2xpYl9uc2xfbWFpbiIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9saWJfbnNsX21haW4gPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX0xJQk5TTCAxCi1fQUNFT0YKLQotICBMSUJTPSItbG5zbCAkTElCUyIKLQotZmkKLQotZmkKLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotZm9yIGFjX2Z1bmMgaW4gc2lnYWN0aW9uIHN0cmVycm9yIHN0cnNpZ25hbCBwcmVhZCBzeXNfc2lnbGlzdCBfc3lzX3NpZ2xpc3QgZ2V0ZGVudHMgbWN0bCBwcmN0bCBzZW5kbXNnIGluZXRfbnRvcCBpZl9pbmRleHRvbmFtZQotZG8KLWFzX2FjX3Zhcj1gZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19mdW5jLi4uICRFQ0hPX0MiID4mNgotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY192YXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLS8qIERlZmluZSAkYWNfZnVuYyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzICRhY19mdW5jLgotICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCi0jZGVmaW5lICRhY19mdW5jIGlubm9jdW91c18kYWNfZnVuYwotCi0vKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCi0gICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYyAoKTsgYmVsb3cuCi0gICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCi0KLSNpZmRlZiBfX1NURENfXwotIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSNlbHNlCi0jIGluY2x1ZGUgPGFzc2VydC5oPgotI2VuZGlmCi0KLSN1bmRlZiAkYWNfZnVuYwotCi0vKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiCi17Ci0jZW5kaWYKLS8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKLSAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi1jaGFyICRhY19mdW5jICgpOwotLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCi0gICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi0jaWYgZGVmaW5lZCAoX19zdHViXyRhY19mdW5jKSB8fCBkZWZpbmVkIChfX3N0dWJfX18kYWNfZnVuYykKLWNob2tlIG1lCi0jZWxzZQotY2hhciAoKmYpICgpID0gJGFjX2Z1bmM7Ci0jZW5kaWYKLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLWludAotbWFpbiAoKQotewotcmV0dXJuIGYgIT0gJGFjX2Z1bmM7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgZXZhbCAiJGFzX2FjX3Zhcj15ZXMiCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWV2YWwgIiRhc19hY192YXI9bm8iCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY2Ci1pZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2Z1bmMiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWZpCi1kb25lCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotZm9yIGFjX2hlYWRlciBpbiBzeXMvcmVnLmggc3lzL2ZpbGlvLmggc3lzL2FjbC5oIHN5cy9hc3luY2guaCBzeXMvZG9vci5oIHN0cm9wdHMuaCBzeXMvY29uZi5oIHN5cy9zdHJlYW0uaCBzeXMvdGloZHIuaCBzeXMvdGl1c2VyLmggc3lzL3N5c2NvbmZpZy5oIGlvY3Rscy5oIHN5cy9pb2N0bC5oIHN5cy9wdHJhY2UuaCB0ZXJtaW8uaCBsaW51eC9wdHJhY2UuaCBhc20vcmVnLmggc3lzL3Vpby5oIHN5cy9haW8uaCAgcG9sbC5oIHN5cy9wb2xsLmggc3lzL3Zmcy5oIGFzbS9zeXNtaXBzLmggbGludXgvdXRzbmFtZS5oIHN5cy9uc2NzeXMuaCBtcXVldWUuaCBzeXMvZXBvbGwuaCBsaWJhaW8uaAotZG8KLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgotICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci1lbHNlCi0gICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2Ci1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2hlYWRlcl9jb21waWxlcj1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2Ci0KLSMgSXMgdGhlIGhlYWRlciBwcmVzZW50PwotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZwotICBlbHNlCi0gICAgYWNfY3BwX2Vycj0KLSAgZmkKLWVsc2UKLSAgYWNfY3BwX2Vycj15ZXMKLWZpCi1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLSAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLSAgYWNfaGVhZGVyX3ByZXByb2M9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2Ci0KLSMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPwotY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgotICB5ZXM6bm86ICkKLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSAgICA7OwotICBubzp5ZXM6KiApCi0gICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQotZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQotICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1Ci1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KLSAgICAoCi0gICAgICBjYXQgPDxcX0FTQk9YCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFJlcG9ydCB0aGlzIHRvIHRoZSBzdHJhY2UgbGlzdHMuICAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi1fQVNCT1gKLSAgICApIHwKLSAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgotICAgIDs7Ci1lc2FjCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKLWVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKLQotZmkKLWlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLV9BQ0VPRgotCi1maQotCi1kb25lCi0KLQotCi0KLQotZm9yIGFjX2hlYWRlciBpbiBsaW51eC9pY21wLmggbGludXgvaW42LmggbGludXgvbmV0bGluay5oIGxpbnV4L2lmX3BhY2tldC5oCi1kbwotYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+Ci0KLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1ldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1Ci1lY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2Ci1pZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi1fQUNFT0YKLQotZmkKLQotZG9uZQotCi0KLWZvciBhY19oZWFkZXIgaW4gYXNtL3NpZ2NvbnRleHQuaAotZG8KLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2Ci1pZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHNpZ25hbC5oPgotCi0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQotZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWZpCi0KLWRvbmUKLQotCi0KLWZvciBhY19oZWFkZXIgaW4gbmV0aW5ldC90Y3AuaCBuZXRpbmV0L3VkcC5oCi1kbwotYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotCi0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQotZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotX0FDRU9GCi0KLWZpCi0KLWRvbmUKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE1QIHByb2NmcyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBNUCBwcm9jZnMuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21wX3Byb2NmcytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotCi0jIEd1ZXNzIG9yIHB1bnQuCi1jYXNlICIkaG9zdF9vcyIgaW4KLXN2cjQuMip8c3ZyNSopCi0JYWNfY3ZfbXBfcHJvY2ZzPXllcwotCTs7Ci0qKQotCWFjX2N2X21wX3Byb2Nmcz1ubwotCTs7Ci1lc2FjCi0KLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KLQotbWFpbigpCi17Ci0JaW50IHBpZDsKLQljaGFyIHByb2NbMzJdOwotCUZJTEUgKmN0bDsKLQlGSUxFICpzdGF0dXM7Ci0JaW50IGNtZDsKLQlzdHJ1Y3QgcHN0YXR1cyBwc3RhdHVzOwotCi0JaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKLQkJcGF1c2UoKTsKLQkJZXhpdCgwKTsKLQl9Ci0Jc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvY3RsIiwgcGlkKTsKLQlpZiAoKGN0bCA9IGZvcGVuKHByb2MsICJ3IikpID09IE5VTEwpCi0JCWdvdG8gZmFpbDsKLQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9zdGF0dXMiLCBwaWQpOwotCWlmICgoc3RhdHVzID0gZm9wZW4gKHByb2MsICJyIikpID09IE5VTEwpCi0JCWdvdG8gZmFpbDsKLQljbWQgPSBQQ1NUT1A7Ci0JaWYgKHdyaXRlIChmaWxlbm8gKGN0bCksICZjbWQsIHNpemVvZiBjbWQpIDwgMCkKLQkJZ290byBmYWlsOwotCWlmIChyZWFkIChmaWxlbm8gKHN0YXR1cyksICZwc3RhdHVzLCBzaXplb2YgcHN0YXR1cykgPCAwKQotCQlnb3RvIGZhaWw7Ci0Ja2lsbChwaWQsIFNJR0tJTEwpOwotCWV4aXQoMCk7Ci1mYWlsOgotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDEpOwotfQotCi1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tcF9wcm9jZnM9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci1lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi0oIGV4aXQgJGFjX3N0YXR1cyApCi1hY19jdl9tcF9wcm9jZnM9bm8KLWZpCi1ybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWZpCi0KLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tcF9wcm9jZnMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21wX3Byb2NmcyIgPiY2Ci1pZiB0ZXN0ICIkYWNfY3ZfbXBfcHJvY2ZzIiA9IHllcwotdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotI2RlZmluZSBIQVZFX01QX1BST0NGUyAxCi1fQUNFT0YKLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwb2xsYWJsZSBwcm9jZnMiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgcG9sbGFibGUgcHJvY2ZzLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wb2xsYWJsZV9wcm9jZnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLQotIyBHdWVzcyBvciBwdW50LgotY2FzZSAiJGhvc3Rfb3MiIGluCi1zb2xhcmlzMip8aXJpeDUqfHN2cjQuMnV3KnxzdnI1KikKLQlhY19jdl9wb2xsYWJsZV9wcm9jZnM9eWVzCi0JOzsKLSopCi0JYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCi0JOzsKLWVzYWMKLQotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotI2luY2x1ZGUgPHN5cy9zdHJvcHRzLmg+Ci0jaW5jbHVkZSA8cG9sbC5oPgotCi0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLSNkZWZpbmUgUElPQ1NUT1AJUENTVE9QCi0jZGVmaW5lIFBPTExXQU5UCVBPTExXUk5PUk0KLSNkZWZpbmUgUFJPQwkJIi9wcm9jLyVkL2N0bCIKLSNkZWZpbmUgUFJPQ19NT0RFCSJ3IgotaW50IElPQ1RMIChpbnQgZmQsIGludCBjbWQsIGludCBhcmcpIHsKLQlyZXR1cm4gd3JpdGUgKGZkLCAmY21kLCBzaXplb2YgY21kKTsKLX0KLSNlbHNlCi0jZGVmaW5lIFBPTExXQU5UCVBPTExQUkkKLSNkZWZpbmUJUFJPQwkJIi9wcm9jLyVkIgotI2RlZmluZSBQUk9DX01PREUJInIrIgotI2RlZmluZSBJT0NUTAkJaW9jdGwKLSNlbmRpZgotCi1tYWluKCkKLXsKLQlpbnQgcGlkOwotCWNoYXIgcHJvY1szMl07Ci0JRklMRSAqcGZwOwotCXN0cnVjdCBwb2xsZmQgcGZkOwotCi0JaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKLQkJcGF1c2UoKTsKLQkJZXhpdCgwKTsKLQl9Ci0Jc3ByaW50Zihwcm9jLCBQUk9DLCBwaWQpOwotCWlmICgocGZwID0gZm9wZW4ocHJvYywgUFJPQ19NT0RFKSkgPT0gTlVMTCkKLQkJZ290byBmYWlsOwotCWlmIChJT0NUTChmaWxlbm8ocGZwKSwgUElPQ1NUT1AsIE5VTEwpIDwgMCkKLQkJZ290byBmYWlsOwotCXBmZC5mZCA9IGZpbGVubyhwZnApOwotCXBmZC5ldmVudHMgPSBQT0xMV0FOVDsKLQlpZiAocG9sbCgmcGZkLCAxLCAwKSA8IDApCi0JCWdvdG8gZmFpbDsKLQlpZiAoIShwZmQucmV2ZW50cyAmIFBPTExXQU5UKSkKLQkJZ290byBmYWlsOwotCWtpbGwocGlkLCBTSUdLSUxMKTsKLQlleGl0KDApOwotZmFpbDoKLQlraWxsKHBpZCwgU0lHS0lMTCk7Ci0JZXhpdCgxKTsKLX0KLQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotKCBleGl0ICRhY19zdGF0dXMgKQotYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCi1maQotcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1maQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcG9sbGFibGVfcHJvY2ZzIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9wb2xsYWJsZV9wcm9jZnMiID4mNgotaWYgdGVzdCAiJGFjX2N2X3BvbGxhYmxlX3Byb2NmcyIgPSB5ZXMKLXRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSNkZWZpbmUgSEFWRV9QT0xMQUJMRV9QUk9DRlMgMQotX0FDRU9GCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgbXNnaGRyLm1zZ19jb250cm9sIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBtc2doZHIubXNnX2NvbnRyb2wuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLQotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IG1zZ2hkciBhY19hZ2dyOwotaWYgKGFjX2FnZ3IubXNnX2NvbnRyb2wpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3QgbXNnaGRyIGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3IubXNnX2NvbnRyb2wpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2w9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2wiID4mNgotaWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2wgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQotX0FDRU9GCi0KLQotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBwcl9zeXNjYWxsIGluIHN0cnVjdCBwcnN0YXR1cyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBwcl9zeXNjYWxsIGluIHN0cnVjdCBwcnN0YXR1cy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3Zfc3RydWN0X3ByX3N5c2NhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgotaW50Ci1tYWluICgpCi17Ci0jaWZkZWYgSEFWRV9NUF9QUk9DRlMKLXBzdGF0dXNfdCBzOwotcy5wcl9sd3AucHJfc3lzY2FsbAotI2Vsc2UKLXByc3RhdHVzX3QgczsKLXMucHJfc3lzY2FsbAotI2VuZGlmCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3Zfc3RydWN0X3ByX3N5c2NhbGw9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbCIgPiY2Ci1pZiB0ZXN0ICIkYWNfY3Zfc3RydWN0X3ByX3N5c2NhbGwiID0geWVzCi10aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0jZGVmaW5lIEhBVkVfUFJfU1lTQ0FMTCAxCi1fQUNFT0YKLQotZmkKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBUX2Nvbm5fcmVzLlFVRVVFX3B0ciIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5RVUVVRV9wdHIuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotI2luY2x1ZGUgPHN5cy90aWhkci5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOwotaWYgKGFjX2FnZ3IuUVVFVUVfcHRyKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX1FVRVVFX3B0cj15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotI2luY2x1ZGUgPHN5cy90aWhkci5oPgotCi1pbnQKLW1haW4gKCkKLXsKLXN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOwotaWYgKHNpemVvZiBhY19hZ2dyLlFVRVVFX3B0cikKLXJldHVybiAwOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHIgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUiAxCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KLSNpbmNsdWRlIDxzeXMvdGloZHIuaD4KLQotaW50Ci1tYWluICgpCi17Ci1zdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKLWlmIChhY19hZ2dyLkFDQ0VQVE9SX2lkKQotcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1jYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Ci0jaW5jbHVkZSA8c3lzL3RpaGRyLmg+Ci0KLWludAotbWFpbiAoKQotewotc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Ci1pZiAoc2l6ZW9mIGFjX2FnZ3IuQUNDRVBUT1JfaWQpCi1yZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQ9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkIiA+JjYKLWlmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfQUNDRVBUT1JfSUQgMQotX0FDRU9GCi0KLQotZmkKLQotCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0K3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogY29uZmRlZnMuaC4gICovCi1fQUNFT0YKLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotLyogZW5kIGNvbmZkZWZzLmguICAqLwotI2luY2x1ZGUgPGFzbS9zdGF0Lmg+Ci0KLWludAotbWFpbiAoKQotewotaWYgKChzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgKikgMCkKLSAgcmV0dXJuIDA7Ci1pZiAoc2l6ZW9mIChzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdHJ1Y3RfX19vbGRfa2VybmVsX3N0YXQ9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0IiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKLV9BQ0VPRgotCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0KLWludAotbWFpbiAoKQotewotaWYgKChzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncyAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzKSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX3N0cnVjdF9wdF9hbGxfdXNlcl9yZWdzID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfUFRfQUxMX1VTRVJfUkVHUyAxCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgaWE2NF9mcHJlZyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgaWE2NF9mcHJlZy4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGNvbmZkZWZzLmguICAqLwotX0FDRU9GCi1jYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0KLWludAotbWFpbiAoKQotewotaWYgKChzdHJ1Y3QgaWE2NF9mcHJlZyAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCBpYTY0X2ZwcmVnKSkKLSAgcmV0dXJuIDA7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZyIgPiY2Ci1pZiB0ZXN0ICRhY19jdl90eXBlX3N0cnVjdF9pYTY0X2ZwcmVnID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRyAxCi1fQUNFT0YKLQotCi1maQotCi0KLWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHVzZXJfZGVzYyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgdXNlcl9kZXNjLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8YXNtL2xkdC5oPgotCi1pbnQKLW1haW4gKCkKLXsKLWlmICgoc3RydWN0IHVzZXJfZGVzYyAqKSAwKQotICByZXR1cm4gMDsKLWlmIChzaXplb2YgKHN0cnVjdCB1c2VyX2Rlc2MpKQotICByZXR1cm4gMDsKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLQkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0KLWFjX2N2X3R5cGVfc3RydWN0X3VzZXJfZGVzYz1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2MiID4mNgotaWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDIDEKLV9BQ0VPRgotCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3lzX2Vycmxpc3QgaXMgZGVjbGFyZWQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN5c19lcnJsaXN0IGlzIGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0kYWNfaW5jbHVkZXNfZGVmYXVsdAotaW50Ci1tYWluICgpCi17Ci0jaWZuZGVmIHN5c19lcnJsaXN0Ci0gIGNoYXIgKnAgPSAoY2hhciAqKSBzeXNfZXJybGlzdDsKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0PXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotCi1hY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3Q9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0IiA+JjYKLWlmIHRlc3QgJGFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdCA9IHllczsgdGhlbgotCi1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCi1fQUNFT0YKLQotCi1lbHNlCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDAKLV9BQ0VPRgotCi0KLWZpCi0KLQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN5c19zaWdsaXN0IGlzIGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLWludAotbWFpbiAoKQotewotI2lmbmRlZiBzeXNfc2lnbGlzdAotICBjaGFyICpwID0gKGNoYXIgKikgc3lzX3NpZ2xpc3Q7Ci0jZW5kaWYKLQotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCi0JCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgotCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGFjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfaGF2ZV9kZWNsX3N5c19zaWdsaXN0PW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3QiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3QgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMQotX0FDRU9GCi0KLQotZWxzZQotICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0jZGVmaW5lIEhBVkVfREVDTF9TWVNfU0lHTElTVCAwCi1fQUNFT0YKLQotCi1maQotZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgX3N5c19zaWdsaXN0IGlzIGRlY2xhcmVkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBfc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBjb25mZGVmcy5oLiAgKi8KLV9BQ0VPRgotY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci1jYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLWludAotbWFpbiAoKQotewotI2lmbmRlZiBfc3lzX3NpZ2xpc3QKLSAgY2hhciAqcCA9IChjaGFyICopIF9zeXNfc2lnbGlzdDsKLSNlbmRpZgotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLQkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdD15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLXNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLQotYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdD1ubwotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdCIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9oYXZlX2RlY2xfX3N5c19zaWdsaXN0ID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9ERUNMX19TWVNfU0lHTElTVCAxCi1fQUNFT0YKLQotCi1lbHNlCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgSEFWRV9ERUNMX19TWVNfU0lHTElTVCAwCi1fQUNFT0YKLQotCi1maQotCi0KLQotIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwZXJsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSBwZXJsOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wYXRoX1BFUkwrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2FzZSAkUEVSTCBpbgotICBbXFwvXSogfCA/OltcXC9dKikKLSAgYWNfY3ZfcGF0aF9QRVJMPSIkUEVSTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0gIDs7Ci0gICopCi0gIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLWZvciBhc19kaXIgaW4gJFBBVEgKLWRvCi0gIElGUz0kYXNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0gIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCi0gICAgYWNfY3ZfcGF0aF9QRVJMPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSAgICBicmVhayAyCi0gIGZpCi1kb25lCi1kb25lCi0KLSAgOzsKLWVzYWMKLWZpCi1QRVJMPSRhY19jdl9wYXRoX1BFUkwKLQotaWYgdGVzdCAtbiAiJFBFUkwiOyB0aGVuCi0gIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQRVJMIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRQRVJMIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotCi0gICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIgotCi1jYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKLSMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRoZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQotIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCi0jIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgotIyBJdCBpcyBub3QgdXNlZnVsIG9uIG90aGVyIHN5c3RlbXMuICBJZiBpdCBjb250YWlucyByZXN1bHRzIHlvdSBkb24ndAotIyB3YW50IHRvIGtlZXAsIHlvdSBtYXkgcmVtb3ZlIG9yIGVkaXQgaXQuCi0jCi0jIGNvbmZpZy5zdGF0dXMgb25seSBwYXlzIGF0dGVudGlvbiB0byB0aGUgY2FjaGUgZmlsZSBpZiB5b3UgZ2l2ZSBpdAotIyB0aGUgLS1yZWNoZWNrIG9wdGlvbiB0byByZXJ1biBjb25maWd1cmUuCi0jCi0jIGBhY19jdl9lbnZfZm9vJyB2YXJpYWJsZXMgKHNldCBvciB1bnNldCkgd2lsbCBiZSBvdmVycmlkZGVuIHdoZW4KLSMgbG9hZGluZyB0aGlzIGZpbGUsIG90aGVyICp1bnNldCogYGFjX2N2X2Zvbycgd2lsbCBiZSBhc3NpZ25lZCB0aGUKLSMgZm9sbG93aW5nIHZhbHVlcy4KLQotX0FDRU9GCi0KLSMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0jIGJ1dCB3ZSBrbm93IG9mIG5vIHdvcmthcm91bmQgdGhhdCBpcyBzaW1wbGUsIHBvcnRhYmxlLCBhbmQgZWZmaWNpZW50LgotIyBTbywgZG9uJ3QgcHV0IG5ld2xpbmVzIGluIGNhY2hlIHZhcmlhYmxlcycgdmFsdWVzLgotIyBVbHRyaXggc2ggc2V0IHdyaXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCi0jIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJzLgotewotICAoc2V0KSAyPiYxIHwKLSAgICBjYXNlIGAoYWNfc3BhY2U9JyAnOyBzZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgotICAgICphY19zcGFjZT1cICopCi0gICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCi0gICAgICAjIHN1YnN0aXR1dGlvbiB0dXJucyBcXFxcIGludG8gXFwsIGFuZCBzZWQgdHVybnMgXFwgaW50byBcKS4KLSAgICAgIHNlZCAtbiBcCi0JInMvJy8nXFxcXCcnL2c7Ci0JICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcXDInL3AiCi0gICAgICA7OwotICAgICopCi0gICAgICAjIGBzZXQnIHF1b3RlcyBjb3JyZWN0bHkgYXMgcmVxdWlyZWQgYnkgUE9TSVgsIHNvIGRvIG5vdCBhZGQgcXVvdGVzLgotICAgICAgc2VkIC1uIFwKLQkicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKLSAgICAgIDs7Ci0gICAgZXNhYzsKLX0gfAotICBzZWQgJwotICAgICB0IGNsZWFyCi0gICAgIDogY2xlYXIKLSAgICAgcy9eXChbXj1dKlwpPVwoLipbe31dLipcKSQvdGVzdCAiJHtcMStzZXR9IiA9IHNldCB8fCAmLwotICAgICB0IGVuZAotICAgICAvXmFjX2N2X2Vudi8hcy9eXChbXj1dKlwpPVwoLipcKSQvXDE9JHtcMT1cMn0vCi0gICAgIDogZW5kJyA+PmNvbmZjYWNoZQotaWYgZGlmZiAkY2FjaGVfZmlsZSBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSAgaWYgdGVzdCAtdyAkY2FjaGVfZmlsZTsgdGhlbgotICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmIGVjaG8gInVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgotICAgIGNhdCBjb25mY2FjaGUgPiRjYWNoZV9maWxlCi0gIGVsc2UKLSAgICBlY2hvICJub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIKLSAgZmkKLWZpCi1ybSAtZiBjb25mY2FjaGUKLQotdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSRhY19kZWZhdWx0X3ByZWZpeAotIyBMZXQgbWFrZSBleHBhbmQgZXhlY19wcmVmaXguCi10ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZpeH0nCi0KLSMgVlBBVEggbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNkaXIpLAotIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJAIGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKLSMgdHJhaWxpbmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgbGluZSBpZiBWUEFUSCBiZWNvbWVzIGVtcHR5Ci0jIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCi1pZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgotICBhY192cHN1Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKLXMvOipcJChzcmNkaXIpOiovOi87Ci1zLzoqXCR7c3JjZGlyfToqLzovOwotcy86KkBzcmNkaXJAOiovOi87Ci1zL15cKFtePV0qPVsJIF0qXCk6Ki9cMS87Ci1zLzoqJC8vOwotcy9eW149XSo9WwkgXSokLy87Ci19JwotZmkKLQotREVGUz0tREhBVkVfQ09ORklHX0gKLQotYWNfbGlib2Jqcz0KLWFjX2x0bGlib2Jqcz0KLWZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4OiAmJiBjb250aW51ZQotICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCi0gIGFjX2k9YGVjaG8gIiRhY19pIiB8Ci0JIHNlZCAncy9cJFVcLi8uLztzL1wubyQvLztzL1wub2JqJC8vJ2AKLSAgIyAyLiBBZGQgdGhlbS4KLSAgYWNfbGlib2Jqcz0iJGFjX2xpYm9ianMgJGFjX2lcJFUuJGFjX29iamV4dCIKLSAgYWNfbHRsaWJvYmpzPSIkYWNfbHRsaWJvYmpzICRhY19pIickVS5sbycKLWRvbmUKLUxJQk9CSlM9JGFjX2xpYm9ianMKLQotTFRMSUJPQkpTPSRhY19sdGxpYm9ianMKLQotCi1pZiB0ZXN0IC16ICIke01BSU5UQUlORVJfTU9ERV9UUlVFfSIgJiYgdGVzdCAteiAiJHtNQUlOVEFJTkVSX01PREVfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIk1BSU5UQUlORVJfTU9ERVwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiTUFJTlRBSU5FUl9NT0RFXCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke0xJTlVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke0xJTlVYX0ZBTFNFfSI7IHRoZW4KLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJMSU5VWFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiTElOVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLWlmIHRlc3QgLXogIiR7STM4Nl9UUlVFfSIgJiYgdGVzdCAteiAiJHtJMzg2X0ZBTFNFfSI7IHRoZW4KLSAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJJMzg2XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJJMzg2XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke1g4Nl82NF9UUlVFfSIgJiYgdGVzdCAteiAiJHtYODZfNjRfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlg4Nl82NFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiWDg2XzY0XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke1NVTk9TNF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTVU5PUzRfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNVTk9TNFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU1VOT1M0XCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi1pZiB0ZXN0IC16ICIke1NWUjRfVFJVRX0iICYmIHRlc3QgLXogIiR7U1ZSNF9GQUxTRX0iOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU1ZSNFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU1ZSNFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotaWYgdGVzdCAteiAiJHtGUkVFQlNEX1RSVUV9IiAmJiB0ZXN0IC16ICIke0ZSRUVCU0RfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkZSRUVCU0RcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkZSRUVCU0RcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLWlmIHRlc3QgLXogIiR7QU1ERVBfVFJVRX0iICYmIHRlc3QgLXogIiR7QU1ERVBfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCi1Vc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgotVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci1maQotaWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLVVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotZmkKLQotOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQotYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLWFjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCi17IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1Ci1lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotIyEgJFNIRUxMCi0jIEdlbmVyYXRlZCBieSAkYXNfbWUuCi0jIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KLSMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KLQotZGVidWc9ZmFsc2UKLWFjX2NzX3JlY2hlY2s9ZmFsc2UKLWFjX2NzX3NpbGVudD1mYWxzZQotU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLV9BQ0VPRgotCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBCZSBCb3VybmUgY29tcGF0aWJsZQotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGVtdWxhdGUgc2gKLSAgTlVMTENNRD06Ci0gICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi1lbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBzZXQgLW8gcG9zaXgKLWZpCi1EVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0Ci1lbHNlCi0gIGFzX3Vuc2V0PWZhbHNlCi1maQotCi0KLSMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICi1QUzE9JyQgJwotUFMyPSc+ICcKLVBTND0nKyAnCi0KLSMgTkxTIG51aXNhbmNlcy4KLWZvciBhc192YXIgaW4gXAotICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAotICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAotICBMQ19URUxFUEhPTkUgTENfVElNRQotZG8KLSAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KLSAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKLSAgZWxzZQotICAgICRhc191bnNldCAkYXNfdmFyCi0gIGZpCi1kb25lCi0KLSMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgYXNfZXhwcj1leHByCi1lbHNlCi0gIGFzX2V4cHI9ZmFsc2UKLWZpCi0KLWlmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLWVsc2UKLSAgYXNfYmFzZW5hbWU9ZmFsc2UKLWZpCi0KLQotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8Ci0kYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYLyIkMCIgfAotICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLQotCi0jIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCi0jIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi1hc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLWFzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi1hc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCi1hc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLQotIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCi0gIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKLSAgY2htb2QgK3ggY29uZiQkLnNoCi0gIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIGVsc2UKLSAgICBQQVRIX1NFUEFSQVRPUj06Ci0gIGZpCi0gIHJtIC1mIGNvbmYkJC5zaAotZmkKLQotCi0gIGFzX2xpbmVub18xPSRMSU5FTk8KLSAgYXNfbGluZW5vXzI9JExJTkVOTwotICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCi0gIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKLSAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKLSAgIyByZWxhdGl2ZSBvciBub3QuCi0gIGNhc2UgJDAgaW4KLSAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0gICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawotZG9uZQotCi0gICAgICAgOzsKLSAgZXNhYwotICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCi0gICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0gICAgYXNfbXlzZWxmPSQwCi0gIGZpCi0gIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICBmaQotICBjYXNlICRDT05GSUdfU0hFTEwgaW4KLSAgJycpCi0gICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotZG8KLSAgSUZTPSRhc19zYXZlX0lGUwotICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0JIGNhc2UgJGFzX2RpciBpbgotCSAvKikKLQkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKLSAgYXNfbGluZW5vXzE9JExJTkVOTwotICBhc19saW5lbm9fMj0kTElORU5PCi0gIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKLSAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCi0gIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgotCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KLQkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQotCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKLQkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKLQkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9Ci0JICAgZmk7OwotCSBlc2FjCi0gICAgICAgZG9uZQotZG9uZQotOzsKLSAgZXNhYwotCi0gICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KLSAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQotICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCi0gICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCi0gICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZwotICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgotICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKLSAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQotICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKLSAgICBzZWQgJwotICAgICAgTgotICAgICAgcywkLC0sCi0gICAgICA6IGxvb3AKLSAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAotICAgICAgdCBsb29wCi0gICAgICBzLC0kLCwKLSAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKLSAgICAnID4kYXNfbWUubGluZW5vICYmCi0gIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKLSAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCi0gICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCi0gICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCi0gIC4gLi8kYXNfbWUubGluZW5vCi0gICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgotICBleGl0Ci19Ci0KLQotY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KLSAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JwotJyBFQ0hPX1Q9JwknIDs7Ci0gICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKLSAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Ci1lc2FjCi0KLWlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX2V4cHI9ZXhwcgotZWxzZQotICBhc19leHByPWZhbHNlCi1maQotCi1ybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQotZWNobyA+Y29uZiQkLmZpbGUKLWlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYwotICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KLSAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCi0gICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcwotICAgIGFzX2xuX3M9J2NwIC1wJwotICBlbHNlCi0gICAgYXNfbG5fcz0nbG4gLXMnCi0gIGZpCi1lbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgotICBhc19sbl9zPWxuCi1lbHNlCi0gIGFzX2xuX3M9J2NwIC1wJwotZmkKLXJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0KLWlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSAgYXNfbWtkaXJfcD06Ci1lbHNlCi0gIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gIGFzX21rZGlyX3A9ZmFsc2UKLWZpCi0KLWFzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi1hc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotCi0KLSMgSUZTCi0jIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgotYXNfbmw9JwotJwotSUZTPSIgCSRhc19ubCIKLQotIyBDRFBBVEguCi0kYXNfdW5zZXQgQ0RQQVRICi0KLWV4ZWMgNj4mMQotCi0jIE9wZW4gdGhlIGxvZyByZWFsIHNvb24sIHRvIGtlZXAgXCRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwotIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCi0jIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9nZ2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KLWV4ZWMgNT4+Y29uZmlnLmxvZwotewotICBlY2hvCi0gIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0jIyBSdW5uaW5nICRhc19tZS4gIyMKLV9BU0JPWAotfSA+JjUKLWNhdCA+JjUgPDxfQ1NFT0YKLQotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBzdHJhY2UgJGFzX21lIDQuNS4xMiwgd2hpY2ggd2FzCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKLQotICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCi0gIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwotICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCi0gIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKLSAgJCAkMCAkQAotCi1fQ1NFT0YKLWVjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1Ci1lY2hvID4mNQotX0FDRU9GCi0KLSMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KLWlmIHRlc3QgLW4gIiRhY19jb25maWdfZmlsZXMiOyB0aGVuCi0gIGVjaG8gImNvbmZpZ19maWxlcz1cIiRhY19jb25maWdfZmlsZXNcIiIgPj4kQ09ORklHX1NUQVRVUwotZmkKLQotaWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19oZWFkZXJzIjsgdGhlbgotICBlY2hvICJjb25maWdfaGVhZGVycz1cIiRhY19jb25maWdfaGVhZGVyc1wiIiA+PiRDT05GSUdfU1RBVFVTCi1maQotCi1pZiB0ZXN0IC1uICIkYWNfY29uZmlnX2xpbmtzIjsgdGhlbgotICBlY2hvICJjb25maWdfbGlua3M9XCIkYWNfY29uZmlnX2xpbmtzXCIiID4+JENPTkZJR19TVEFUVVMKLWZpCi0KLWlmIHRlc3QgLW4gIiRhY19jb25maWdfY29tbWFuZHMiOyB0aGVuCi0gIGVjaG8gImNvbmZpZ19jb21tYW5kcz1cIiRhY19jb25maWdfY29tbWFuZHNcIiIgPj4kQ09ORklHX1NUQVRVUwotZmkKLQotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0KLWFjX2NzX3VzYWdlPSJcCi1cYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKLWN1cnJlbnQgY29uZmlndXJhdGlvbi4KLQotVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KLQotICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0gIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwotICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwotICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0JCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLQkJICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKLQotQ29uZmlndXJhdGlvbiBmaWxlczoKLSRjb25maWdfZmlsZXMKLQotQ29uZmlndXJhdGlvbiBoZWFkZXJzOgotJGNvbmZpZ19oZWFkZXJzCi0KLUNvbmZpZ3VyYXRpb24gY29tbWFuZHM6Ci0kY29uZmlnX2NvbW1hbmRzCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgotX0FDRU9GCi0KLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi1hY19jc192ZXJzaW9uPSJcXAotc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyCi1jb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCi0gIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgotCi1Db3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi1UaGlzIGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLWdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCi1zcmNkaXI9JHNyY2RpcgotSU5TVEFMTD0iJElOU1RBTEwiCi1fQUNFT0YKLQotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0jIElmIG5vIGZpbGUgYXJlIHNwZWNpZmllZCBieSB0aGUgdXNlciwgdGhlbiB3ZSBuZWVkIHRvIHByb3ZpZGUgZGVmYXVsdAotIyB2YWx1ZS4gIEJ5IHdlIG5lZWQgdG8ga25vdyBpZiBmaWxlcyB3ZXJlIHNwZWNpZmllZCBieSB0aGUgdXNlci4KLWFjX25lZWRfZGVmYXVsdHM9Ogotd2hpbGUgdGVzdCAkIyAhPSAwCi1kbwotICBjYXNlICQxIGluCi0gIC0tKj0qKQotICAgIGFjX29wdGlvbj1gZXhwciAieCQxIiA6ICd4XChbXj1dKlwpPSdgCi0gICAgYWNfb3B0YXJnPWBleHByICJ4JDEiIDogJ3hbXj1dKj1cKC4qXCknYAotICAgIGFjX3NoaWZ0PToKLSAgICA7OwotICAtKikKLSAgICBhY19vcHRpb249JDEKLSAgICBhY19vcHRhcmc9JDIKLSAgICBhY19zaGlmdD1zaGlmdAotICAgIDs7Ci0gICopICMgVGhpcyBpcyBub3QgYW4gb3B0aW9uLCBzbyB0aGUgdXNlciBoYXMgcHJvYmFibHkgZ2l2ZW4gZXhwbGljaXQKLSAgICAgIyBhcmd1bWVudHMuCi0gICAgIGFjX29wdGlvbj0kMQotICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKLSAgZXNhYwotCi0gIGNhc2UgJGFjX29wdGlvbiBpbgotICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgotX0FDRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLSAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0gICAgYWNfY3NfcmVjaGVjaz06IDs7Ci0gIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCi0gICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKLSAgLS1oZSB8IC0taCkKLSAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCi1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKLSAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKLSAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCi0gICAgZGVidWc9OiA7OwotICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotICAgICRhY19zaGlmdAotICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0gICAgJGFjX3NoaWZ0Ci0gICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgotICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCi0gICAgYWNfY3Nfc2lsZW50PTogOzsKLQotICAjIFRoaXMgaXMgYW4gZXJyb3IuCi0gIC0qKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKLVRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0KLSAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIgOzsKLQotICBlc2FjCi0gIHNoaWZ0Ci1kb25lCi0KLWFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQotCi1pZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0gIGV4ZWMgNj4vZGV2L251bGwKLSAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKLWZpCi0KLV9BQ0VPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKLWlmIFwkYWNfY3NfcmVjaGVjazsgdGhlbgotICBlY2hvICJydW5uaW5nICRTSEVMTCAkMCAiICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzICIgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24iID4mNgotICBleGVjICRTSEVMTCAkMCAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgotZmkKLQotX0FDRU9GCi0KLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0jCi0jIElOSVQtQ09NTUFORFMgc2VjdGlvbi4KLSMKLQotQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgotCi1fQUNFT0YKLQotCi0KLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgotZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCi1kbwotICBjYXNlICIkYWNfY29uZmlnX3RhcmdldCIgaW4KLSAgIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCi0gICJNYWtlZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgTWFrZWZpbGUiIDs7Ci0gICJkZXBmaWxlcyIgKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0gICJjb25maWcuaCIgKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIGNvbmZpZy5oIiA7OwotICAqKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0gIGVzYWMKLWRvbmUKLQotIyBJZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAotIyB0aGVuIHRoZSBlbnZ2YXIgaW50ZXJmYWNlIGlzIHVzZWQuICBTZXQgb25seSB0aG9zZSB0aGF0IGFyZSBub3QuCi0jIFdlIHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5Ci0jIGJpemFycmUgYnVnIG9uIFN1bk9TIDQuMS4zLgotaWYgJGFjX25lZWRfZGVmYXVsdHM7IHRoZW4KLSAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVBREVSUz0kY29uZmlnX2hlYWRlcnMKLSAgdGVzdCAiJHtDT05GSUdfQ09NTUFORFMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0NPTU1BTkRTPSRjb25maWdfY29tbWFuZHMKLWZpCi0KLSMgSGF2ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIGNvbnZlbmllbmNlLiAgTWFrZSBpdCBpbiB0aGUgYnVpbGQgdHJlZQotIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gdG8gcHV0IGl0IGhlcmUsIGFuZCBpbiBhZGRpdGlvbiwKLSMgY3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVtcy4KLSMgQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSwgYW5kIGhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0kZGVidWcgfHwKLXsKLSAgdHJhcCAnZXhpdF9zdGF0dXM9JD87IHJtIC1yZiAkdG1wICYmIGV4aXQgJGV4aXRfc3RhdHVzJyAwCi0gIHRyYXAgJ3sgKGV4aXQgMSk7IGV4aXQgMTsgfScgMSAyIDEzIDE1Ci19Ci0KLSMgQ3JlYXRlIGEgKHNlY3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVzLgotCi17Ci0gIHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgLXEgIi4vY29uZnN0YXRYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKLSAgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIKLX0gIHx8Ci17Ci0gIHRtcD0uL2NvbmZzdGF0JCQtJFJBTkRPTQotICAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApCi19IHx8Ci17Ci0gICBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIC4iID4mMgotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci19Ci0KLV9BQ0VPRgotCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgotCi0jCi0jIENPTkZJR19GSUxFUyBzZWN0aW9uLgotIwotCi0jIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KLSMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAotaWYgdGVzdCAtbiAiXCRDT05GSUdfRklMRVMiOyB0aGVuCi0gICMgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIGEgc2VkIHN1YnN0IGluIGNvbmZpZy5zdGF0dXMuCi0gIHNlZCAncy8sQC9AQC87IHMvQCwvQEAvOyBzLyw7dCB0XCQvQDt0IHQvOyAvQDt0IHRcJC9zL1tcXFxcJixdL1xcXFwmL2c7Ci0gICBzL0BALyxALzsgcy9AQC9ALC87IHMvQDt0IHRcJC8sO3QgdC8nID5cJHRtcC9zdWJzLnNlZCA8PFxcQ0VPRgotcyxAU0hFTExALCRTSEVMTCw7dCB0Ci1zLEBQQVRIX1NFUEFSQVRPUkAsJFBBVEhfU0VQQVJBVE9SLDt0IHQKLXMsQFBBQ0tBR0VfTkFNRUAsJFBBQ0tBR0VfTkFNRSw7dCB0Ci1zLEBQQUNLQUdFX1RBUk5BTUVALCRQQUNLQUdFX1RBUk5BTUUsO3QgdAotcyxAUEFDS0FHRV9WRVJTSU9OQCwkUEFDS0FHRV9WRVJTSU9OLDt0IHQKLXMsQFBBQ0tBR0VfU1RSSU5HQCwkUEFDS0FHRV9TVFJJTkcsO3QgdAotcyxAUEFDS0FHRV9CVUdSRVBPUlRALCRQQUNLQUdFX0JVR1JFUE9SVCw7dCB0Ci1zLEBleGVjX3ByZWZpeEAsJGV4ZWNfcHJlZml4LDt0IHQKLXMsQHByZWZpeEAsJHByZWZpeCw7dCB0Ci1zLEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQCwkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSw7dCB0Ci1zLEBiaW5kaXJALCRiaW5kaXIsO3QgdAotcyxAc2JpbmRpckAsJHNiaW5kaXIsO3QgdAotcyxAbGliZXhlY2RpckAsJGxpYmV4ZWNkaXIsO3QgdAotcyxAZGF0YWRpckAsJGRhdGFkaXIsO3QgdAotcyxAc3lzY29uZmRpckAsJHN5c2NvbmZkaXIsO3QgdAotcyxAc2hhcmVkc3RhdGVkaXJALCRzaGFyZWRzdGF0ZWRpciw7dCB0Ci1zLEBsb2NhbHN0YXRlZGlyQCwkbG9jYWxzdGF0ZWRpciw7dCB0Ci1zLEBsaWJkaXJALCRsaWJkaXIsO3QgdAotcyxAaW5jbHVkZWRpckAsJGluY2x1ZGVkaXIsO3QgdAotcyxAb2xkaW5jbHVkZWRpckAsJG9sZGluY2x1ZGVkaXIsO3QgdAotcyxAaW5mb2RpckAsJGluZm9kaXIsO3QgdAotcyxAbWFuZGlyQCwkbWFuZGlyLDt0IHQKLXMsQGJ1aWxkX2FsaWFzQCwkYnVpbGRfYWxpYXMsO3QgdAotcyxAaG9zdF9hbGlhc0AsJGhvc3RfYWxpYXMsO3QgdAotcyxAdGFyZ2V0X2FsaWFzQCwkdGFyZ2V0X2FsaWFzLDt0IHQKLXMsQERFRlNALCRERUZTLDt0IHQKLXMsQEVDSE9fQ0AsJEVDSE9fQyw7dCB0Ci1zLEBFQ0hPX05ALCRFQ0hPX04sO3QgdAotcyxARUNIT19UQCwkRUNIT19ULDt0IHQKLXMsQExJQlNALCRMSUJTLDt0IHQKLXMsQElOU1RBTExfUFJPR1JBTUAsJElOU1RBTExfUFJPR1JBTSw7dCB0Ci1zLEBJTlNUQUxMX1NDUklQVEAsJElOU1RBTExfU0NSSVBULDt0IHQKLXMsQElOU1RBTExfREFUQUAsJElOU1RBTExfREFUQSw7dCB0Ci1zLEBDWUdQQVRIX1dALCRDWUdQQVRIX1csO3QgdAotcyxAUEFDS0FHRUAsJFBBQ0tBR0UsO3QgdAotcyxAVkVSU0lPTkAsJFZFUlNJT04sO3QgdAotcyxAQUNMT0NBTEAsJEFDTE9DQUwsO3QgdAotcyxAQVVUT0NPTkZALCRBVVRPQ09ORiw7dCB0Ci1zLEBBVVRPTUFLRUAsJEFVVE9NQUtFLDt0IHQKLXMsQEFVVE9IRUFERVJALCRBVVRPSEVBREVSLDt0IHQKLXMsQE1BS0VJTkZPQCwkTUFLRUlORk8sO3QgdAotcyxAaW5zdGFsbF9zaEAsJGluc3RhbGxfc2gsO3QgdAotcyxAU1RSSVBALCRTVFJJUCw7dCB0Ci1zLEBhY19jdF9TVFJJUEAsJGFjX2N0X1NUUklQLDt0IHQKLXMsQElOU1RBTExfU1RSSVBfUFJPR1JBTUAsJElOU1RBTExfU1RSSVBfUFJPR1JBTSw7dCB0Ci1zLEBta2Rpcl9wQCwkbWtkaXJfcCw7dCB0Ci1zLEBBV0tALCRBV0ssO3QgdAotcyxAU0VUX01BS0VALCRTRVRfTUFLRSw7dCB0Ci1zLEBhbV9fbGVhZGluZ19kb3RALCRhbV9fbGVhZGluZ19kb3QsO3QgdAotcyxAQU1UQVJALCRBTVRBUiw7dCB0Ci1zLEBhbV9fdGFyQCwkYW1fX3Rhciw7dCB0Ci1zLEBhbV9fdW50YXJALCRhbV9fdW50YXIsO3QgdAotcyxATUFJTlRBSU5FUl9NT0RFX1RSVUVALCRNQUlOVEFJTkVSX01PREVfVFJVRSw7dCB0Ci1zLEBNQUlOVEFJTkVSX01PREVfRkFMU0VALCRNQUlOVEFJTkVSX01PREVfRkFMU0UsO3QgdAotcyxATUFJTlRALCRNQUlOVCw7dCB0Ci1zLEBidWlsZEAsJGJ1aWxkLDt0IHQKLXMsQGJ1aWxkX2NwdUAsJGJ1aWxkX2NwdSw7dCB0Ci1zLEBidWlsZF92ZW5kb3JALCRidWlsZF92ZW5kb3IsO3QgdAotcyxAYnVpbGRfb3NALCRidWlsZF9vcyw7dCB0Ci1zLEBob3N0QCwkaG9zdCw7dCB0Ci1zLEBob3N0X2NwdUAsJGhvc3RfY3B1LDt0IHQKLXMsQGhvc3RfdmVuZG9yQCwkaG9zdF92ZW5kb3IsO3QgdAotcyxAaG9zdF9vc0AsJGhvc3Rfb3MsO3QgdAotcyxAb3BzeXNALCRvcHN5cyw7dCB0Ci1zLEBhcmNoQCwkYXJjaCw7dCB0Ci1zLEBMSU5VWF9UUlVFQCwkTElOVVhfVFJVRSw7dCB0Ci1zLEBMSU5VWF9GQUxTRUAsJExJTlVYX0ZBTFNFLDt0IHQKLXMsQEkzODZfVFJVRUAsJEkzODZfVFJVRSw7dCB0Ci1zLEBJMzg2X0ZBTFNFQCwkSTM4Nl9GQUxTRSw7dCB0Ci1zLEBYODZfNjRfVFJVRUAsJFg4Nl82NF9UUlVFLDt0IHQKLXMsQFg4Nl82NF9GQUxTRUAsJFg4Nl82NF9GQUxTRSw7dCB0Ci1zLEBTVU5PUzRfVFJVRUAsJFNVTk9TNF9UUlVFLDt0IHQKLXMsQFNVTk9TNF9GQUxTRUAsJFNVTk9TNF9GQUxTRSw7dCB0Ci1zLEBTVlI0X1RSVUVALCRTVlI0X1RSVUUsO3QgdAotcyxAU1ZSNF9GQUxTRUAsJFNWUjRfRkFMU0UsO3QgdAotcyxARlJFRUJTRF9UUlVFQCwkRlJFRUJTRF9UUlVFLDt0IHQKLXMsQEZSRUVCU0RfRkFMU0VALCRGUkVFQlNEX0ZBTFNFLDt0IHQKLXMsQENDQCwkQ0MsO3QgdAotcyxAQ0ZMQUdTQCwkQ0ZMQUdTLDt0IHQKLXMsQExERkxBR1NALCRMREZMQUdTLDt0IHQKLXMsQENQUEZMQUdTQCwkQ1BQRkxBR1MsO3QgdAotcyxAYWNfY3RfQ0NALCRhY19jdF9DQyw7dCB0Ci1zLEBFWEVFWFRALCRFWEVFWFQsO3QgdAotcyxAT0JKRVhUQCwkT0JKRVhULDt0IHQKLXMsQERFUERJUkAsJERFUERJUiw7dCB0Ci1zLEBhbV9faW5jbHVkZUAsJGFtX19pbmNsdWRlLDt0IHQKLXMsQGFtX19xdW90ZUAsJGFtX19xdW90ZSw7dCB0Ci1zLEBBTURFUF9UUlVFQCwkQU1ERVBfVFJVRSw7dCB0Ci1zLEBBTURFUF9GQUxTRUAsJEFNREVQX0ZBTFNFLDt0IHQKLXMsQEFNREVQQkFDS1NMQVNIQCwkQU1ERVBCQUNLU0xBU0gsO3QgdAotcyxAQ0NERVBNT0RFQCwkQ0NERVBNT0RFLDt0IHQKLXMsQGFtX19mYXN0ZGVwQ0NfVFJVRUAsJGFtX19mYXN0ZGVwQ0NfVFJVRSw7dCB0Ci1zLEBhbV9fZmFzdGRlcENDX0ZBTFNFQCwkYW1fX2Zhc3RkZXBDQ19GQUxTRSw7dCB0Ci1zLEBXQVJORkxBR1NALCRXQVJORkxBR1MsO3QgdAotcyxAQ1BQQCwkQ1BQLDt0IHQKLXMsQEVHUkVQQCwkRUdSRVAsO3QgdAotcyxAUEVSTEAsJFBFUkwsO3QgdAotcyxATElCT0JKU0AsJExJQk9CSlMsO3QgdAotcyxATFRMSUJPQkpTQCwkTFRMSUJPQkpTLDt0IHQKLUNFT0YKLQotX0FDRU9GCi0KLSAgY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0gICMgU3BsaXQgdGhlIHN1YnN0aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCi0gICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgotICBhY19tYXhfc2VkX2xpbmVzPTQ4Ci0gIGFjX3NlZF9mcmFnPTEgIyBOdW1iZXIgb2YgY3VycmVudCBmaWxlLgotICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfZW5kPSRhY19tYXhfc2VkX2xpbmVzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLSAgYWNfbW9yZV9saW5lcz06Ci0gIGFjX3NlZF9jbWRzPQotICB3aGlsZSAkYWNfbW9yZV9saW5lczsgZG8KLSAgICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KLSAgICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZwotICAgIGVsc2UKLSAgICAgIHNlZCAiJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKLSAgICBmaQotICAgIGlmIHRlc3QgISAtcyAkdG1wL3N1YnMuZnJhZzsgdGhlbgotICAgICAgYWNfbW9yZV9saW5lcz1mYWxzZQotICAgIGVsc2UKLSAgICAgICMgVGhlIHB1cnBvc2Ugb2YgdGhlIGxhYmVsIGFuZCBvZiB0aGUgYnJhbmNoaW5nIGNvbmRpdGlvbiBpcyB0bwotICAgICAgIyBzcGVlZCB1cCB0aGUgc2VkIHByb2Nlc3NpbmcgKGlmIHRoZXJlIGFyZSBubyBgQCcgYXQgYWxsLCB0aGVyZQotICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkgb2YgdGhlIHN1YnN0aXR1dGlvbnMpLgotICAgICAgIyBUaGVzZSBhcmUgdGhlIHR3byBleHRyYSBzZWQgY29tbWFuZHMgbWVudGlvbmVkIGFib3ZlLgotICAgICAgKGVjaG8gJzp0Ci0gIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYmIGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkCi0gICAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0JYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKLSAgICAgIGVsc2UKLQlhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwgc2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgotICAgICAgZmkKLSAgICAgIGFjX3NlZF9mcmFnPWBleHByICRhY19zZWRfZnJhZyArIDFgCi0gICAgICBhY19iZWc9JGFjX2VuZAotICAgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9saW5lc2AKLSAgICBmaQotICBkb25lCi0gIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSAgICBhY19zZWRfY21kcz1jYXQKLSAgZmkKLWZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLQotX0FDRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLWZvciBhY19maWxlIGluIDogJENPTkZJR19GSUxFUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCi0gICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KLSAgY2FzZSAkYWNfZmlsZSBpbgotICAtIHwgKjotIHwgKjotOiogKSAjIGlucHV0IGZyb20gc3RkaW4KLQljYXQgPiR0bXAvc3RkaW4KLQlhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAotCWFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7Ci0gICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKiApICAgYWNfZmlsZV9pbj0kYWNfZmlsZS5pbiA7OwotICBlc2FjCi0KLSAgIyBDb21wdXRlIEBzcmNkaXJALCBAdG9wX3NyY2RpckAsIGFuZCBASU5TVEFMTEAgZm9yIHN1YmRpcmVjdG9yaWVzLgotICBhY19kaXI9YChkaXJuYW1lICIkYWNfZmlsZSIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgiJGFjX2ZpbGUiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICB7IGlmICRhc19ta2Rpcl9wOyB0aGVuCi0gICAgbWtkaXIgLXAgIiRhY19kaXIiCi0gIGVsc2UKLSAgICBhc19kaXI9IiRhY19kaXIiCi0gICAgYXNfZGlycz0KLSAgICB3aGlsZSB0ZXN0ICEgLWQgIiRhc19kaXIiOyBkbwotICAgICAgYXNfZGlycz0iJGFzX2RpciAkYXNfZGlycyIKLSAgICAgIGFzX2Rpcj1gKGRpcm5hbWUgIiRhc19kaXIiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgiJGFzX2RpciIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gICAgZG9uZQotICAgIHRlc3QgISAtbiAiJGFzX2RpcnMiIHx8IG1rZGlyICRhc19kaXJzCi0gIGZpIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9Ci0KLSAgYWNfYnVpbGRkaXI9LgotCi1pZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCi0gIGFjX2Rpcl9zdWZmaXg9L2BlY2hvICIkYWNfZGlyIiB8IHNlZCAncyxeXC5bXFwvXSwsJ2AKLSAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KLSAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAotZWxzZQotICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9Ci1maQotCi1jYXNlICRzcmNkaXIgaW4KLSAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgotICAgIGFjX3NyY2Rpcj0uCi0gICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KLSAgICAgICBhY190b3Bfc3JjZGlyPS4KLSAgICBlbHNlCi0gICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAotICAgIGZpIDs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgcGF0aC4KLSAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotICAqKSAjIFJlbGF0aXZlIHBhdGguCi0gICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Ci1lc2FjCi0KLSMgRG8gbm90IHVzZSBgY2QgZm9vICYmIHB3ZGAgdG8gY29tcHV0ZSBhYnNvbHV0ZSBwYXRocywgYmVjYXVzZQotIyB0aGUgZGlyZWN0b3JpZXMgbWF5IG5vdCBleGlzdC4KLWNhc2UgYHB3ZGAgaW4KLS4pIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OwotKikKLSAgY2FzZSAiJGFjX2RpciIgaW4KLSAgLikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKLSAgKikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgLyIkYWNfZGlyIjs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OwotKikKLSAgY2FzZSAke2FjX3RvcF9idWlsZGRpcn0uIGluCi0gIC4pIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSAgKikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyLyR7YWNfdG9wX2J1aWxkZGlyfS47OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKLSopCi0gIGNhc2UgJGFjX3NyY2RpciBpbgotICAuKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7Ci0gICopIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfc3JjZGlyOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKLSopCi0gIGNhc2UgJGFjX3RvcF9zcmNkaXIgaW4KLSAgLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OwotICAqKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY190b3Bfc3JjZGlyOzsKLSAgZXNhYzs7Ci1lc2FjCi0KLQotICBjYXNlICRJTlNUQUxMIGluCi0gIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RBTEwgOzsKLSAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkZGlyJElOU1RBTEwgOzsKLSAgZXNhYwotCi0gIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1Ci1lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQotICAgIHJtIC1mICIkYWNfZmlsZSIKLSAgZmkKLSAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKLSAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgotICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLwotICBpZiB0ZXN0IHgiJGFjX2ZpbGUiID0geC07IHRoZW4KLSAgICBjb25maWd1cmVfaW5wdXQ9Ci0gIGVsc2UKLSAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgIgotICBmaQotICBjb25maWd1cmVfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dCJHZW5lcmF0ZWQgZnJvbSBgZWNobyAkYWNfZmlsZV9pbiB8Ci0JCQkJICAgICBzZWQgJ3MsLiovLCwnYCBieSBjb25maWd1cmUuIgotCi0gICMgRmlyc3QgbG9vayBmb3IgdGhlIGlucHV0IGZpbGVzIGluIHRoZSBidWlsZCB0cmVlLCBvdGhlcndpc2UgaW4gdGhlCi0gICMgc3JjIHRyZWUuCi0gIGFjX2ZpbGVfaW5wdXRzPWBJRlM9OgotICAgIGZvciBmIGluICRhY19maWxlX2luOyBkbwotICAgICAgY2FzZSAkZiBpbgotICAgICAgLSkgZWNobyAkdG1wL3N0ZGluIDs7Ci0gICAgICBbXFwvJF0qKQotCSAjIEFic29sdXRlIChjYW4ndCBiZSBET1Mtc3R5bGUsIGFzIElGUz06KQotCSB0ZXN0IC1mICIkZiIgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLQkgZWNobyAiJGYiOzsKLSAgICAgICopICMgUmVsYXRpdmUKLQkgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCi0JICAgIyBCdWlsZCB0cmVlCi0JICAgZWNobyAiJGYiCi0JIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KLQkgICAjIFNvdXJjZSB0cmVlCi0JICAgZWNobyAiJHNyY2Rpci8kZiIKLQkgZWxzZQotCSAgICMgL2Rldi9udWxsIHRyZWUKLQkgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSBmaTs7Ci0gICAgICBlc2FjCi0gICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci1fQUNFT0YKLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCi0gIHNlZCAiJGFjX3Zwc3ViCi0kZXh0cmFzdWIKLV9BQ0VPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi06dAotL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYgotcyxAY29uZmlndXJlX2lucHV0QCwkY29uZmlndXJlX2lucHV0LDt0IHQKLXMsQHNyY2RpckAsJGFjX3NyY2Rpciw7dCB0Ci1zLEBhYnNfc3JjZGlyQCwkYWNfYWJzX3NyY2Rpciw7dCB0Ci1zLEB0b3Bfc3JjZGlyQCwkYWNfdG9wX3NyY2Rpciw7dCB0Ci1zLEBhYnNfdG9wX3NyY2RpckAsJGFjX2Fic190b3Bfc3JjZGlyLDt0IHQKLXMsQGJ1aWxkZGlyQCwkYWNfYnVpbGRkaXIsO3QgdAotcyxAYWJzX2J1aWxkZGlyQCwkYWNfYWJzX2J1aWxkZGlyLDt0IHQKLXMsQHRvcF9idWlsZGRpckAsJGFjX3RvcF9idWlsZGRpciw7dCB0Ci1zLEBhYnNfdG9wX2J1aWxkZGlyQCwkYWNfYWJzX3RvcF9idWlsZGRpciw7dCB0Ci1zLEBJTlNUQUxMQCwkYWNfSU5TVEFMTCw7dCB0Ci0iICRhY19maWxlX2lucHV0cyB8IChldmFsICIkYWNfc2VkX2NtZHMiKSA+JHRtcC9vdXQKLSAgcm0gLWYgJHRtcC9zdGRpbgotICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0gICAgbXYgJHRtcC9vdXQgJGFjX2ZpbGUKLSAgZWxzZQotICAgIGNhdCAkdG1wL291dAotICAgIHJtIC1mICR0bXAvb3V0Ci0gIGZpCi0KLWRvbmUKLV9BQ0VPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0KLSMKLSMgQ09ORklHX0hFQURFUiBzZWN0aW9uLgotIwotCi0jIFRoZXNlIHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBhcyAiQSBOQU1FIEIgTkFNRSBDIFZBTFVFIEQiLCB3aGVyZQotIyBOQU1FIGlzIHRoZSBjcHAgbWFjcm8gYmVpbmcgZGVmaW5lZCBhbmQgVkFMVUUgaXMgdGhlIHZhbHVlIGl0IGlzIGJlaW5nIGdpdmVuLgotIwotIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVmaW5lIE5BTUUgVkFMVUUiIGxpbmVzLgotYWNfZEE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qZGVmaW5lWwkgXVsJIF0qXCknCi1hY19kQj0nWwkgXS4qJCxcMSNcMicKLWFjX2RDPScgJwotYWNfZEQ9Jyw7dCcKLSMgYWNfdSB0dXJucyAiI3VuZGVmIE5BTUUiIHdpdGhvdXQgdHJhaWxpbmcgYmxhbmtzIGludG8gIiNkZWZpbmUgTkFNRSBWQUxVRSIuCi1hY191QT0ncyxeXChbCSBdKlwpI1woWwkgXSpcKXVuZGVmXChbCSBdWwkgXSpcKScKLWFjX3VCPSckLFwxI1wyZGVmaW5lXDMnCi1hY191Qz0nICcKLWFjX3VEPScsO3QnCi0KLWZvciBhY19maWxlIGluIDogJENPTkZJR19IRUFERVJTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKLSAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgotICBjYXNlICRhY19maWxlIGluCi0gIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotCWNhdCA+JHRtcC9zdGRpbgotCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0JYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKLSAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLQlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwotICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7Ci0gIGVzYWMKLQotICB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtICYmIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKLWVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9Ci0KLSAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKLSAgIyBzcmMgdHJlZS4KLSAgYWNfZmlsZV9pbnB1dHM9YElGUz06Ci0gICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCi0gICAgICBjYXNlICRmIGluCi0gICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKLSAgICAgIFtcXC8kXSopCi0JICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCi0JIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotCSAjIERvIHF1b3RlICRmLCB0byBwcmV2ZW50IERPUyBwYXRocyBmcm9tIGJlaW5nIElGUydkLgotCSBlY2hvICIkZiI7OwotICAgICAgKikgIyBSZWxhdGl2ZQotCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KLQkgICAjIEJ1aWxkIHRyZWUKLQkgICBlY2hvICIkZiIKLQkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotCSAgICMgU291cmNlIHRyZWUKLQkgICBlY2hvICIkc3JjZGlyLyRmIgotCSBlbHNlCi0JICAgIyAvZGV2L251bGwgdHJlZQotCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQotICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0JIGZpOzsKLSAgICAgIGVzYWMKLSAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLSAgIyBSZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlcy4KLSAgc2VkICdzL1sJIF0qJC8vJyAkYWNfZmlsZV9pbnB1dHMgPiR0bXAvaW4KLQotX0FDRU9GCi0KLSMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byB0d28gc2VkIHNjcmlwdHMsIGBjb25mdGVzdC5kZWZpbmVzJyBhbmQKLSMgYGNvbmZ0ZXN0LnVuZGVmcycsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bwotIyBjb25maWcuaC5pbiB0byBwcm9kdWNlIGNvbmZpZy5oLiAgVGhlIGZpcnN0IGhhbmRsZXMgYCNkZWZpbmUnCi0jIHRlbXBsYXRlcywgYW5kIHRoZSBzZWNvbmQgYCN1bmRlZicgdGVtcGxhdGVzLgotIyBBbmQgZmlyc3Q6IFByb3RlY3QgYWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCBpbgotIyBjb25maWcuc3RhdHVzLiAgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIGluIGFuIHVucXVvdGVkIGhlcmUgZG9jdW1lbnQKLSMgaW4gY29uZmlnLnN0YXR1cy4KLXJtIC1mIGNvbmZ0ZXN0LmRlZmluZXMgY29uZnRlc3QudW5kZWZzCi0jIFVzaW5nIGEgaGVyZSBkb2N1bWVudCBpbnN0ZWFkIG9mIGEgc3RyaW5nIHJlZHVjZXMgdGhlIHF1b3RpbmcgbmlnaHRtYXJlLgotIyBQdXR0aW5nIGNvbW1lbnRzIGluIHNlZCBzY3JpcHRzIGlzIG5vdCBwb3J0YWJsZS4KLSMKLSMgYGVuZCcgaXMgdXNlZCB0byBhdm9pZCB0aGF0IHRoZSBzZWNvbmQgbWFpbiBzZWQgY29tbWFuZCAobWVhbnQgZm9yCi0jIDAtYXJ5IENQUCBtYWNyb3MpIGFwcGxpZXMgdG8gbi1hcnkgbWFjcm8gZGVmaW5pdGlvbnMuCi0jIFNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiBmb3IgYGNsZWFyJy4KLWNhdCA+Y29uZmRlZjJzZWQuc2VkIDw8XF9BQ0VPRgotcy9bXFwmLF0vXFwmL2cKLXMsW1xcJGBdLFxcJixnCi10IGNsZWFyCi06IGNsZWFyCi1zLF5bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKlwoW14JIChdW14JIChdKlwpXCgoW14pXSopXClbCSBdKlwoLipcKSQsJHthY19kQX1cMSR7YWNfZEJ9XDFcMiR7YWNfZEN9XDMke2FjX2REfSxncAotdCBlbmQKLXMsXlsJIF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qXChbXgkgXVteCSBdKlwpWwkgXSpcKC4qXCkkLCR7YWNfZEF9XDEke2FjX2RCfVwxJHthY19kQ31cMiR7YWNfZER9LGdwCi06IGVuZAotX0FDRU9GCi0jIElmIHNvbWUgbWFjcm9zIHdlcmUgY2FsbGVkIHNldmVyYWwgdGltZXMgdGhlcmUgbWlnaHQgYmUgc2V2ZXJhbCB0aW1lcwotIyB0aGUgc2FtZSAjZGVmaW5lcywgd2hpY2ggaXMgdXNlbGVzcy4gIE5ldmVydGhlbGVzcywgd2UgbWF5IG5vdCB3YW50IHRvCi0jIHNvcnQgdGhlbSwgc2luY2Ugd2Ugd2FudCB0aGUgKmxhc3QqIEFDLURFRklORSB0byBiZSBob25vcmVkLgotdW5pcSBjb25mZGVmcy5oIHwgc2VkIC1uIC1mIGNvbmZkZWYyc2VkLnNlZCA+Y29uZnRlc3QuZGVmaW5lcwotc2VkICdzL2FjX2QvYWNfdS9nJyBjb25mdGVzdC5kZWZpbmVzID5jb25mdGVzdC51bmRlZnMKLXJtIC1mIGNvbmZkZWYyc2VkLnNlZAotCi0jIFRoaXMgc2VkIGNvbW1hbmQgcmVwbGFjZXMgI3VuZGVmIHdpdGggY29tbWVudHMuICBUaGlzIGlzIG5lY2Vzc2FyeSwgZm9yCi0jIGV4YW1wbGUsIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCi0jIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KLWNhdCA+PmNvbmZ0ZXN0LnVuZGVmcyA8PFxfQUNFT0YKLXMsXlsJIF0qI1sJIF0qdW5kZWZbCSBdWwkgXSpbYS16QS1aX11bYS16QS1aXzAtOV0qLC8qICYgKi8sCi1fQUNFT0YKLQotIyBCcmVhayB1cCBjb25mdGVzdC5kZWZpbmVzIGJlY2F1c2Ugc29tZSBzaGVsbHMgaGF2ZSBhIGxpbWl0IG9uIHRoZSBzaXplCi0jIG9mIGhlcmUgZG9jdW1lbnRzLCBhbmQgb2xkIHNlZHMgaGF2ZSBzbWFsbCBsaW1pdHMgdG9vICgxMDAgY21kcykuCi1lY2hvICcgICMgSGFuZGxlIGFsbCB0aGUgI2RlZmluZSB0ZW1wbGF0ZXMgb25seSBpZiBuZWNlc3NhcnkuJyA+PiRDT05GSUdfU1RBVFVTCi1lY2hvICcgIGlmIGdyZXAgIl5bCSBdKiNbCSBdKmRlZmluZSIgJHRtcC9pbiA+L2Rldi9udWxsOyB0aGVuJyA+PiRDT05GSUdfU1RBVFVTCi1lY2hvICcgICMgSWYgdGhlcmUgYXJlIG5vIGRlZmluZXMsIHdlIG1heSBoYXZlIGFuIGVtcHR5IGlmL2ZpJyA+PiRDT05GSUdfU1RBVFVTCi1lY2hvICcgIDonID4+JENPTkZJR19TVEFUVVMKLXJtIC1mIGNvbmZ0ZXN0LnRhaWwKLXdoaWxlIGdyZXAgLiBjb25mdGVzdC5kZWZpbmVzID4vZGV2L251bGwKLWRvCi0gICMgV3JpdGUgYSBsaW1pdGVkLXNpemUgaGVyZSBkb2N1bWVudCB0byAkdG1wL2RlZmluZXMuc2VkLgotICBlY2hvICcgIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YnID4+JENPTkZJR19TVEFUVVMKLSAgIyBTcGVlZCB1cDogZG9uJ3QgY29uc2lkZXIgdGhlIG5vbiBgI2RlZmluZScgbGluZXMuCi0gIGVjaG8gJy9eWwkgXSojWwkgXSpkZWZpbmUvIWInID4+JENPTkZJR19TVEFUVVMKLSAgIyBXb3JrIGFyb3VuZCB0aGUgZm9yZ2V0LXRvLXJlc2V0LXRoZS1mbGFnIGJ1Zy4KLSAgZWNobyAndCBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgZWNobyAnOiBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgc2VkICR7YWNfbWF4X2hlcmVfbGluZXN9cSBjb25mdGVzdC5kZWZpbmVzID4+JENPTkZJR19TVEFUVVMKLSAgZWNobyAnQ0VPRgotICBzZWQgLWYgJHRtcC9kZWZpbmVzLnNlZCAkdG1wL2luID4kdG1wL291dAotICBybSAtZiAkdG1wL2luCi0gIG12ICR0bXAvb3V0ICR0bXAvaW4KLScgPj4kQ09ORklHX1NUQVRVUwotICBzZWQgMSwke2FjX21heF9oZXJlX2xpbmVzfWQgY29uZnRlc3QuZGVmaW5lcyA+Y29uZnRlc3QudGFpbAotICBybSAtZiBjb25mdGVzdC5kZWZpbmVzCi0gIG12IGNvbmZ0ZXN0LnRhaWwgY29uZnRlc3QuZGVmaW5lcwotZG9uZQotcm0gLWYgY29uZnRlc3QuZGVmaW5lcwotZWNobyAnICBmaSAjIGdyZXAnID4+JENPTkZJR19TVEFUVVMKLWVjaG8gPj4kQ09ORklHX1NUQVRVUwotCi0jIEJyZWFrIHVwIGNvbmZ0ZXN0LnVuZGVmcyBiZWNhdXNlIHNvbWUgc2hlbGxzIGhhdmUgYSBsaW1pdCBvbiB0aGUgc2l6ZQotIyBvZiBoZXJlIGRvY3VtZW50cywgYW5kIG9sZCBzZWRzIGhhdmUgc21hbGwgbGltaXRzIHRvbyAoMTAwIGNtZHMpLgotZWNobyAnICAjIEhhbmRsZSBhbGwgdGhlICN1bmRlZiB0ZW1wbGF0ZXMnID4+JENPTkZJR19TVEFUVVMKLXJtIC1mIGNvbmZ0ZXN0LnRhaWwKLXdoaWxlIGdyZXAgLiBjb25mdGVzdC51bmRlZnMgPi9kZXYvbnVsbAotZG8KLSAgIyBXcml0ZSBhIGxpbWl0ZWQtc2l6ZSBoZXJlIGRvY3VtZW50IHRvICR0bXAvdW5kZWZzLnNlZC4KLSAgZWNobyAnICBjYXQgPiR0bXAvdW5kZWZzLnNlZCA8PENFT0YnID4+JENPTkZJR19TVEFUVVMKLSAgIyBTcGVlZCB1cDogZG9uJ3QgY29uc2lkZXIgdGhlIG5vbiBgI3VuZGVmJwotICBlY2hvICcvXlsJIF0qI1sJIF0qdW5kZWYvIWInID4+JENPTkZJR19TVEFUVVMKLSAgIyBXb3JrIGFyb3VuZCB0aGUgZm9yZ2V0LXRvLXJlc2V0LXRoZS1mbGFnIGJ1Zy4KLSAgZWNobyAndCBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgZWNobyAnOiBjbHInID4+JENPTkZJR19TVEFUVVMKLSAgc2VkICR7YWNfbWF4X2hlcmVfbGluZXN9cSBjb25mdGVzdC51bmRlZnMgPj4kQ09ORklHX1NUQVRVUwotICBlY2hvICdDRU9GCi0gIHNlZCAtZiAkdG1wL3VuZGVmcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKLSAgcm0gLWYgJHRtcC9pbgotICBtdiAkdG1wL291dCAkdG1wL2luCi0nID4+JENPTkZJR19TVEFUVVMKLSAgc2VkIDEsJHthY19tYXhfaGVyZV9saW5lc31kIGNvbmZ0ZXN0LnVuZGVmcyA+Y29uZnRlc3QudGFpbAotICBybSAtZiBjb25mdGVzdC51bmRlZnMKLSAgbXYgY29uZnRlc3QudGFpbCBjb25mdGVzdC51bmRlZnMKLWRvbmUKLXJtIC1mIGNvbmZ0ZXN0LnVuZGVmcwotCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLSAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKLSAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgotICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLwotICBpZiB0ZXN0IHgiJGFjX2ZpbGUiID0geC07IHRoZW4KLSAgICBlY2hvICIvKiBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCi0gIGVsc2UKLSAgICBlY2hvICIvKiAkYWNfZmlsZS4gIEdlbmVyYXRlZCBieSBjb25maWd1cmUuICAqLyIgPiR0bXAvY29uZmlnLmgKLSAgZmkKLSAgY2F0ICR0bXAvaW4gPj4kdG1wL2NvbmZpZy5oCi0gIHJtIC1mICR0bXAvaW4KLSAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgotICAgIGlmIGRpZmYgJGFjX2ZpbGUgJHRtcC9jb25maWcuaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci1lY2hvICIkYXNfbWU6ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY2O30KLSAgICBlbHNlCi0gICAgICBhY19kaXI9YChkaXJuYW1lICIkYWNfZmlsZSIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKLQkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8Ci1lY2hvIFgiJGFjX2ZpbGUiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICIkYWNfZGlyIgotICBlbHNlCi0gICAgYXNfZGlyPSIkYWNfZGlyIgotICAgIGFzX2RpcnM9Ci0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLSAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCi0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhc19kaXIiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgIGRvbmUKLSAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwotICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotCi0gICAgICBybSAtZiAkYWNfZmlsZQotICAgICAgbXYgJHRtcC9jb25maWcuaCAkYWNfZmlsZQotICAgIGZpCi0gIGVsc2UKLSAgICBjYXQgJHRtcC9jb25maWcuaAotICAgIHJtIC1mICR0bXAvY29uZmlnLmgKLSAgZmkKLSMgQ29tcHV0ZSAkYWNfZmlsZSdzIGluZGV4IGluICRjb25maWdfaGVhZGVycy4KLV9hbV9zdGFtcF9jb3VudD0xCi1mb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KLSAgY2FzZSAkX2FtX2hlYWRlciBpbgotICAgICRhY19maWxlIHwgJGFjX2ZpbGU6KiApCi0gICAgICBicmVhayA7OwotICAgICogKQotICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotICBlc2FjCi1kb25lCi1lY2hvICJ0aW1lc3RhbXAgZm9yICRhY19maWxlIiA+YChkaXJuYW1lICRhY19maWxlKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCRhY19maWxlIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgkYWNfZmlsZSA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYJGFjX2ZpbGUgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCRhY19maWxlIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCRhY19maWxlIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotZG9uZQotX0FDRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKLQotIwotIyBDT05GSUdfQ09NTUFORFMgc2VjdGlvbi4KLSMKLWZvciBhY19maWxlIGluIDogJENPTkZJR19DT01NQU5EUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCi0gIGFjX2Rlc3Q9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgCi0gIGFjX3NvdXJjZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLSAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2Rlc3QiKSAyPi9kZXYvbnVsbCB8fAotJGFzX2V4cHIgWCIkYWNfZGVzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKSQnIFx8IFwKLQkgWCIkYWNfZGVzdCIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhY19kZXN0IiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICIkYWNfZGlyIgotICBlbHNlCi0gICAgYXNfZGlyPSIkYWNfZGlyIgotICAgIGFzX2RpcnM9Ci0gICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KLSAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCi0gICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRhc19kaXIiIHwKLSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIHMvLiovLi87IHEnYAotICAgIGRvbmUKLSAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycwotICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KLSAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotCi0gIGFjX2J1aWxkZGlyPS4KLQotaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCi0gICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0gIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKLWVsc2UKLSAgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQotZmkKLQotY2FzZSAkc3JjZGlyIGluCi0gIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLSAgICBhY19zcmNkaXI9LgotICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCi0gICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0gICAgZWxzZQotICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRpciB8IHNlZCAncywvJCwsJ2AKLSAgICBmaSA7OwotICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCi0gICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKLSAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4Ci0gICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OwotZXNhYwotCi0jIERvIG5vdCB1c2UgYGNkIGZvbyAmJiBwd2RgIHRvIGNvbXB1dGUgYWJzb2x1dGUgcGF0aHMsIGJlY2F1c2UKLSMgdGhlIGRpcmVjdG9yaWVzIG1heSBub3QgZXhpc3QuCi1jYXNlIGBwd2RgIGluCi0uKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKLSopCi0gIGNhc2UgIiRhY19kaXIiIGluCi0gIC4pIGFjX2Fic19idWlsZGRpcj1gcHdkYDs7Ci0gIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7Ci0gICopIGFjX2Fic19idWlsZGRpcj1gcHdkYC8iJGFjX2RpciI7OwotICBlc2FjOzsKLWVzYWMKLWNhc2UgJGFjX2Fic19idWlsZGRpciBpbgotLikgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSopCi0gIGNhc2UgJHthY190b3BfYnVpbGRkaXJ9LiBpbgotICAuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7Ci0gICopIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpci8ke2FjX3RvcF9idWlsZGRpcn0uOzsKLSAgZXNhYzs7Ci1lc2FjCi1jYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KLS4pIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY19zcmNkaXIgaW4KLSAgLikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OwotICAqKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCi0uKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7Ci0qKQotICBjYXNlICRhY190b3Bfc3JjZGlyIGluCi0gIC4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OwotICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKLSAgKikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfdG9wX3NyY2Rpcjs7Ci0gIGVzYWM7OwotZXNhYwotCi0KLSAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjUKLWVjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjY7fQotICBjYXNlICRhY19kZXN0IGluCi0gICAgZGVwZmlsZXMgKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KLSAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KLSAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KLSAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKLSAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCi0gIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgZGlycGFydD1gKGRpcm5hbWUgIiRtZiIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLQkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCBcCi0JIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAotZWNobyBYIiRtZiIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gIGVsc2UKLSAgICBjb250aW51ZQotICBmaQotICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCi0gIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0gIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0gIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAotICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKLSAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKLSAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0gICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQotICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQotICAjIGV4cGFuc2lvbi4KLSAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCi0gICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0gICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCi0gICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0gICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0gICAgZmRpcj1gKGRpcm5hbWUgIiRmaWxlIikgMj4vZGV2L251bGwgfHwKLSRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0JIFgiJGZpbGUiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkZmlsZSIgfAotICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KLSAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KLSAgCSAgcy8uKi8uLzsgcSdgCi0gICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgotICAgIG1rZGlyIC1wICRkaXJwYXJ0LyRmZGlyCi0gIGVsc2UKLSAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXIKLSAgICBhc19kaXJzPQotICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCi0gICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgotICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8Ci0kYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0JIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKLQkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAotCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKLWVjaG8gWCIkYXNfZGlyIiB8Ci0gICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9Ci0gIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQotICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQotICAJICBzLy4qLy4vOyBxJ2AKLSAgICBkb25lCi0gICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKLSAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLQotICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCi0gICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCi0gIGRvbmUKLWRvbmUKLSA7OwotICBlc2FjCi1kb25lCi1fQUNFT0YKLQotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCi0KLXsgKGV4aXQgMCk7IGV4aXQgMDsgfQotX0FDRU9GCi1jaG1vZCAreCAkQ09ORklHX1NUQVRVUwotYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKLQotCi0jIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCi0jIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KLSMgVW5mb3J0dW5hdGVseSwgb24gRE9TIHRoaXMgZmFpbHMsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdCBvcGVuCi0jIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24ndCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKLSMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQuICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCi0jIGVmZmVjdGl2ZWx5IGNsb3NpbmcgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kCi0jIGFwcGVuZGVkIHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwgd2UKLSMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCi1pZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KLSAgYWNfY3Nfc3VjY2Vzcz06Ci0gIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KLSAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKLSAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKLSAgZXhlYyA1Pi9kZXYvbnVsbAotICAkU0hFTEwgJENPTkZJR19TVEFUVVMgJGFjX2NvbmZpZ19zdGF0dXNfYXJncyB8fCBhY19jc19zdWNjZXNzPWZhbHNlCi0gIGV4ZWMgNT4+Y29uZmlnLmxvZwotICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAotICAjIHdvdWxkIG1ha2UgY29uZmlndXJlIGZhaWwgaWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KLSAgJGFjX2NzX3N1Y2Nlc3MgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci1maQotCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiODRmNzUuLjAwMDAwMDAKLS0tIGEvY29uZmlndXJlLmFjCisrKyAvZGV2L251bGwKQEAgLTEsMjI1ICswLDAgQEAKLWRubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIGNyZWF0ZSBjb25maWd1cmUuICBVc2UgYXV0b3JlY29uZi4KLUFDX1BSRVJFUSgyLjU3KQotQUNfSU5JVChbc3RyYWNlXSxbNC41LjEyXSkKLUFDX0NPTkZJR19TUkNESVIoW3N0cmFjZS5jXSkKLUFNX0NPTkZJR19IRUFERVIoW2NvbmZpZy5oXSkKLUFNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ24gY2hlY2stbmV3cyBkaXN0LWJ6aXAyXSkKLUFNX01BSU5UQUlORVJfTU9ERQotQUNfQ0FOT05JQ0FMX0hPU1QKLQotQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW1dKQotY2FzZSAiJGhvc3Rfb3MiIGluCi1saW51eCopCi0Jb3BzeXM9bGludXgKLQlBQ19ERUZJTkUoW0xJTlVYXSwgMSwgW0RlZmluZSBmb3IgdGhlIExpbnV4IG9wZXJhdGluZyBzeXN0ZW0uXSkKLQk7Owotc3Vub3M0KikKLQlvcHN5cz1zdW5vczQKLQlBQ19ERUZJTkUoW1NVTk9TNF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS5dKQotCTs7Ci1zb2xhcmlzMiogfCBzeXN2W1s0NV1dKiB8IGlyaXhbWzU2XV0qKQotCW9wc3lzPXN2cjQKLQlBQ19ERUZJTkUoW1NWUjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZwotc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlIFNvbGFyaXMgMi54IG9yIElyaXggNS54Ll0pCi0JY2FzZSAiJGhvc3Rfb3MiIGluCi0Jc3lzdjQuMnV3KikKLQkJQUNfREVGSU5FKFVOSVhXQVJFLCAyLCBbRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLl0pCi0JCTs7Ci0Jc3lzdjUqKQotCQlBQ19ERUZJTkUoVU5JWFdBUkUsIDcsIFtEZWZpbmUgZm9yIFVuaXhXYXJlIHN5c3RlbXMuXSkKLQkJOzsKLQllc2FjCi0JOzsKLWZyZWVic2QqKQotCW9wc3lzPWZyZWVic2QKLQlBQ19ERUZJTkUoW0ZSRUVCU0RdLCAxLCBbRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLl0pCi0JOzsKLSopCi0JQUNfTVNHX1JFU1VMVChbTk8hXSkKLQlBQ19NU0dfRVJST1IoW29wZXJhdGluZyBzeXN0ZW0gJGhvc3Rfb3MgaXMgbm90IHN1cHBvcnRlZCBieSBzdHJhY2VdKQotCTs7Ci1lc2FjCi1BQ19NU0dfUkVTVUxUKCRvcHN5cykKLQotQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3VwcG9ydGVkIGFyY2hpdGVjdHVyZV0pCi1jYXNlICIkaG9zdF9jcHUiIGluCi1pW1szNDU2XV04NnxwZW50aXVtKQotCWFyY2g9aTM4NgotCUFDX0RFRklORShbSTM4Nl0sIDEsIFtEZWZpbmUgZm9yIHRoZSBpMzg2IGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1pYTY0KQotCWFyY2g9aWE2NAotCUFDX0RFRklORShbSUE2NF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBJQTY0IGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1tNjhrKQotCWFyY2g9bTY4awotCUFDX0RFRklORShbTTY4S10sIDEsIFtEZWZpbmUgZm9yIHRoZSBtNjhrIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1zcGFyYzY0KikKLQlhcmNoPXNwYXJjNjQKLQlBQ19ERUZJTkUoW1NQQVJDNjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgU1BBUkM2NCBhcmNoaXRlY3R1cmUuXSkKLQk7Owotc3BhcmMqKQotCWFyY2g9c3BhcmMKLQlBQ19ERUZJTkUoW1NQQVJDXSwgMSwgW0RlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1taXBzKikKLQlhcmNoPW1pcHMKLQlBQ19ERUZJTkUoW01JUFNdLCAxLCBbRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuXSkKLQk7OwotYWxwaGEqKQotCWFyY2g9YWxwaGEKLQlBQ19ERUZJTkUoW0FMUEhBXSwgMSwgW0RlZmluZSBmb3IgdGhlIEFscGhhIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1wb3dlcnBjKikKLQlhcmNoPXBvd2VycGMKLQlBQ19ERUZJTkUoW1BPV0VSUENdLCAxLCBbRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuXSkKLQk7OwotYXJtKikKLQlhcmNoPWFybQotCUFDX0RFRklORShbQVJNXSwgMSwgW0RlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuXSkKLQk7OwotczM5MCkKLQlhcmNoPXMzOTAKLQlBQ19ERUZJTkUoW1MzOTBdLCAxLCBbRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuXSkKLQk7OwotczM5MHgpCi0JYXJjaD1zMzkweAotCUFDX0RFRklORShbUzM5MFhdLCAxLCBbRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLl0pCi0JOzsKLWhwcGEqfHBhcmlzYyopCi0JYXJjaD1ocHBhCi0JQUNfREVGSU5FKFtIUFBBXSwgMSwgW0RlZmluZSBmb3IgdGhlIEhQUEEgYXJjaGl0ZWN0dXJlLl0pCi0JOzsKLXNoKQotCWFyY2g9c2gKLQlBQ19ERUZJTkUoW1NIXSwgMSwgW0RlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS5dKQotCTs7Ci1zaDY0KQotCWFyY2g9c2g2NAotCUFDX0RFRklORShbU0g2NF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS5dKQotCTs7Ci14ODY/NjQqKQotCWFyY2g9eDg2XzY0Ci0JQUNfREVGSU5FKFtYODZfNjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgQU1EIHg4Ni02NCBhcmNoaXRlY3R1cmUuXSkKLQk7OwotKikKLQlBQ19NU0dfUkVTVUxUKFtOTyFdKQotCUFDX01TR19FUlJPUihbYXJjaGl0ZWN0dXJlICRob3N0X2NwdSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZV0pCi0JOzsKLWVzYWMKLUFDX01TR19SRVNVTFQoJGFyY2gpCi0KLUFDX1NVQlNUKG9wc3lzKQotQUNfU1VCU1QoYXJjaCkKLQotQU1fQ09ORElUSU9OQUwoW0xJTlVYXSwgW3Rlc3QgeCRvcHN5cyA9IHhsaW51eF0pCi1BTV9DT05ESVRJT05BTChbSTM4Nl0sIFt0ZXN0IHgkYXJjaCA9IHhpMzg2XSkKLUFNX0NPTkRJVElPTkFMKFtYODZfNjRdLCBbdGVzdCB4JGFyY2ggPSB4eDg2XzY0XSkKLUFNX0NPTkRJVElPTkFMKFtTVU5PUzRdLCBbdGVzdCB4JG9wc3lzID0geHN1bm9zNF0pCi1BTV9DT05ESVRJT05BTChbU1ZSNF0sIFt0ZXN0IHgkb3BzeXMgPSB4c3ZyNF0pCi1BTV9DT05ESVRJT05BTChbRlJFRUJTRF0sIFt0ZXN0IHgkb3BzeXMgPSB4ZnJlZWJzZF0pCi0KLUFDX1BST0dfQ0MKLUFDX0dOVV9TT1VSQ0UKLQotQUNfSU5DTFVERURJUgotCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IiAmJiB0ZXN0ICJ4JGFyY2giID0gInhzcGFyYyIKLXRoZW4KLQlBQ19NU0dfQ0hFQ0tJTkcoZm9yIHZhbGlkIG1hY2hpbmUgaW5jbHVkZSBkaXJlY3RvcnkpCi0JaWYgdGVzdCAtZCAiJGluY2x1ZGVkaXIvc3VuNCIKLQl0aGVuCi0JCXJtIC1mIG1hY2hpbmUKLQkJbG4gLXMgJGluY2x1ZGVkaXIvc3VuNCBtYWNoaW5lCi0JCUFDX01TR19SRVNVTFQoeWVzKQotCQlBQ19ERUZJTkUoU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSwgMSwgWwotRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uCi1vZiBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLgotT25seSB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNAotaW4gdGhlIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS5dKQotCWVsc2UKLQkJQUNfTVNHX1JFU1VMVChubykKLQlmaQotZmkKLQotQUNfV0FSTkZMQUdTCi1pZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IgotdGhlbgotCWlmIHRlc3QgLW4gIiRHQ0MiCi0JdGhlbgotCQkjIFN1bk9TIDQueCBoZWFkZXIgZmlsZXMgZG9uJ3QgZGVjbGFyZSBpbnQgZnVuY3Rpb25zLgotCQlXQVJORkxBR1M9IiRXQVJORkxBR1MgLVduby1pbXBsaWNpdCIKLQlmaQotZmkKLQotQUNfUFJPR19DUFAKLUFDX1BST0dfR0NDX1RSQURJVElPTkFMCi1BQ19QUk9HX0lOU1RBTEwKLUFDX0NfQ09OU1QKLUFDX0hFQURFUl9TVERDCi1BQ19IRUFERVJfRElSRU5UCi1BQ19IRUFERVJfU1RBVAotQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0IHN0YXQuc3RfYmxrc2l6ZSwKLQkJICBzdHJ1Y3Qgc3RhdC5zdF9ibG9ja3MsCi0JCSAgc3RydWN0IHN0YXQuc3RfYWNsY250LAotCQkgIHN0cnVjdCBzdGF0LnN0X2ZsYWdzLAotCQkgIHN0cnVjdCBzdGF0LnN0X2ZzdHlwZSwKLQkJICBzdHJ1Y3Qgc3RhdC5zdF9nZW4sCi0JCSAgc3RydWN0IHN0YXQuc3RfbGV2ZWwsCi0JCSAgc3RydWN0IHN0YXQuc3RfcmRldl0pCi1BQ19TVEFUNjQKLQotQUNfVFlQRV9TSUdOQUwKLUFDX1RZUEVfVUlEX1QKLUFDX1RZUEVfTU9ERV9UCi1BQ19UWVBFX0dFVEdST1VQUwotQUNfSEVBREVSX01BSk9SCi1BQ19DSEVDS19UWVBFUyhbc2lnX2F0b21pY190LCBzaWdpbmZvX3RdLCwsIFsjaW5jbHVkZSA8c2lnbmFsLmg+XSkKLUFDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZF0sLCwKLVsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPG5ldGluZXQvaW4uaD5dKQotQUNfQ0hFQ0tfVFlQRVMoW2xvbmcgbG9uZ10pCi1BQ19MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORwotQUNfT0ZGX1RfSVNfTE9OR19MT05HCi1BQ19STElNX1RfSVNfTE9OR19MT05HCi1BQ19DSEVDS19UWVBFUyhbc3RydWN0IG9wdGhkcl0sLCwgWyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+XSkKLUFDX0NIRUNLX1RZUEVTKFtzdHJ1Y3QgdF9vcHRoZHJdLCwsIFsjaW5jbHVkZSA8c3lzL3RpdXNlci5oPl0pCi0KLWlmIHRlc3QgeCRvcHN5cyAhPSB4bGludXg7IHRoZW4KLUFDX0NIRUNLX0xJQihuc2wsIG1haW4pCi1maQotCi1BQ19DSEVDS19GVU5DUyhzaWdhY3Rpb24gc3RyZXJyb3Igc3Ryc2lnbmFsIHByZWFkIHN5c19zaWdsaXN0IF9zeXNfc2lnbGlzdCBnZXRkZW50cyBtY3RsIHByY3RsIHNlbmRtc2cgaW5ldF9udG9wIGlmX2luZGV4dG9uYW1lKQotQUNfQ0hFQ0tfSEVBREVSUyhbc3lzL3JlZy5oIHN5cy9maWxpby5oIHN5cy9hY2wuaCBzeXMvYXN5bmNoLmggc3lzL2Rvb3IuaCBzdHJvcHRzLmggc3lzL2NvbmYuaCBzeXMvc3RyZWFtLmggc3lzL3RpaGRyLmggc3lzL3RpdXNlci5oIHN5cy9zeXNjb25maWcuaCBpb2N0bHMuaCBzeXMvaW9jdGwuaCBzeXMvcHRyYWNlLmggdGVybWlvLmggbGludXgvcHRyYWNlLmggYXNtL3JlZy5oIHN5cy91aW8uaCBzeXMvYWlvLmggIHBvbGwuaCBzeXMvcG9sbC5oIHN5cy92ZnMuaCBhc20vc3lzbWlwcy5oIGxpbnV4L3V0c25hbWUuaCBzeXMvbnNjc3lzLmggbXF1ZXVlLmggc3lzL2Vwb2xsLmggbGliYWlvLmhdLCBbXSwgW10pCi1BQ19DSEVDS19IRUFERVJTKFtsaW51eC9pY21wLmggbGludXgvaW42LmggbGludXgvbmV0bGluay5oIGxpbnV4L2lmX3BhY2tldC5oXSwKLSAgICAgICAgICAgICAgICAgW10sIFtdLCBbI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPl0pCi1BQ19DSEVDS19IRUFERVJTKFthc20vc2lnY29udGV4dC5oXSwgW10sIFtdLCBbI2luY2x1ZGUgPHNpZ25hbC5oPl0pCi1BQ19DSEVDS19IRUFERVJTKFtuZXRpbmV0L3RjcC5oIG5ldGluZXQvdWRwLmhdLCwsIFsjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPl0pCi0KLUFDX01QX1BST0NGUwotQUNfUE9MTEFCTEVfUFJPQ0ZTCi0KLUFDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBtc2doZHIubXNnX2NvbnRyb2xdLCwsIFsjaW5jbHVkZSA8c3lzL3NvY2tldC5oPl0pCi1BQ19TVFJVQ1RfUFJfU1lTQ0FMTAotCi1BQ19DSEVDS19NRU1CRVJTKFtzdHJ1Y3QgVF9jb25uX3Jlcy5RVUVVRV9wdHIsCi0gICAgICAgICAgICAgICAgICBzdHJ1Y3QgVF9jb25uX3Jlcy5BQ0NFUFRPUl9pZF0sLCwKLVsjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgotI2luY2x1ZGUgPHN5cy90aWhkci5oPl0pCi0KLUFDX0NIRUNLX1RZUEVTKFtzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXRdLCwsIFsjaW5jbHVkZSA8YXNtL3N0YXQuaD5dKQotCi1BQ19DSEVDS19UWVBFUyhbc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MsIHN0cnVjdCBpYTY0X2ZwcmVnXSwsLAotCSAgICAgICBbI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD5dKQotCi1BQ19DSEVDS19UWVBFUyhbc3RydWN0IHVzZXJfZGVzY10sLCwgWyNpbmNsdWRlIDxhc20vbGR0Lmg+XSkKLQotQUNfQ0hFQ0tfREVDTFMoW3N5c19lcnJsaXN0XSkKLUFDX0NIRUNLX0RFQ0xTKFtzeXNfc2lnbGlzdCwgX3N5c19zaWdsaXN0XSwsLCBbI2luY2x1ZGUgPHNpZ25hbC5oPl0pCi0KLUFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSkKLQotQUNfQ09ORklHX0ZJTEVTKFtNYWtlZmlsZV0pCi1BQ19PVVRQVVQKZGlmZiAtLWdpdCBhL2NvdW50LmMgYi9jb3VudC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZjc4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9jb3VudC5jCkBAIC0wLDAgKzEsMjUzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTk5IElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILCBJQk0gQ29ycG9yYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgTGludXggZm9yIHMzOTAgcG9ydCBieSBELkouIEJhcnJvdworICogICAgICAgICAgICAgICAgICAgIDxiYXJyb3dfZGpAbWFpbC55YWhvby5jb20sZGpiYXJyb3dAZGUuaWJtLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDYgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZCQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCitzdHJ1Y3QgY2FsbF9jb3VudHMgeworCXN0cnVjdCB0aW1ldmFsIHRpbWU7CisJaW50IGNhbGxzLCBlcnJvcnM7Cit9OworCitzdGF0aWMgc3RydWN0IGNhbGxfY291bnRzICpjb3VudHZbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVNdOworI2RlZmluZSBjb3VudHMgKGNvdW50dltjdXJyZW50X3BlcnNvbmFsaXR5XSkKKworc3RhdGljIHN0cnVjdCB0aW1ldmFsIHNob3J0ZXN0ID0geyAxMDAwMDAwLCAwIH07CisKK2ludAorY291bnRfc3lzY2FsbChzdHJ1Y3QgdGNiICp0Y3AsIHN0cnVjdCB0aW1ldmFsICp0dikKK3sKKwlpZiAodGNwLT5zY25vIDwgMCB8fCB0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzKQorCQlyZXR1cm4gMDsKKworCWlmICghY291bnRzKQorCXsKKwkJY291bnRzID0gY2FsbG9jKG5zeXNjYWxscywgc2l6ZW9mKCpjb3VudHMpKTsKKwkJaWYgKCFjb3VudHMpCisJCXsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJzdHJhY2U6IG91dCBvZiBtZW1vcnkgZm9yIGNhbGwgY291bnRzXG4iKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9CisKKwljb3VudHNbdGNwLT5zY25vXS5jYWxscysrOworCWlmICh0Y3AtPnVfZXJyb3IpCisJCWNvdW50c1t0Y3AtPnNjbm9dLmVycm9ycysrOworCisJdHZfc3ViKHR2LCB0diwgJnRjcC0+ZXRpbWUpOworI2lmZGVmIExJTlVYCisJaWYgKHR2X2NtcCh0diwgJnRjcC0+ZHRpbWUpID4gMCkKKwl7CisJCXN0YXRpYyBzdHJ1Y3QgdGltZXZhbCBvbmVfdGljazsKKworCQlpZiAob25lX3RpY2sudHZfdXNlYyA9PSAwKQorCQl7CisJCQkvKiBJbml0aWFsaXplIGl0LiAgKi8KKwkJCXN0cnVjdCBpdGltZXJ2YWwgaXQ7CisKKwkJCW1lbXNldCgmaXQsIDAsIHNpemVvZiBpdCk7CisJCQlpdC5pdF9pbnRlcnZhbC50dl91c2VjID0gMTsKKwkJCXNldGl0aW1lcihJVElNRVJfUkVBTCwgJml0LCBOVUxMKTsKKwkJCWdldGl0aW1lcihJVElNRVJfUkVBTCwgJml0KTsKKwkJCW9uZV90aWNrID0gaXQuaXRfaW50ZXJ2YWw7CisJCX0KKworCQlpZiAodHZfbnooJnRjcC0+ZHRpbWUpKQorCQkJKnR2ID0gdGNwLT5kdGltZTsKKwkJZWxzZSBpZiAodHZfY21wKHR2LCAmb25lX3RpY2spID4gMCkKKwkJeworCQkJaWYgKHR2X2NtcCgmc2hvcnRlc3QsICZvbmVfdGljaykgPCAwKQorCQkJCSp0diA9IHNob3J0ZXN0OworCQkJZWxzZQorCQkJCSp0diA9IG9uZV90aWNrOworCQl9CisJfQorI2VuZGlmIC8qIExJTlVYICovCisJaWYgKHR2X2NtcCh0diwgJnNob3J0ZXN0KSA8IDApCisJCXNob3J0ZXN0ID0gKnR2OworCXR2X2FkZCgmY291bnRzW3RjcC0+c2Nub10udGltZSwgJmNvdW50c1t0Y3AtPnNjbm9dLnRpbWUsIHR2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0aW1lX2NtcCh2b2lkICphLCB2b2lkICpiKQoreworCXJldHVybiAtdHZfY21wKCZjb3VudHNbKigoaW50ICopIGEpXS50aW1lLAorCQkgICAgICAgJmNvdW50c1sqKChpbnQgKikgYildLnRpbWUpOworfQorCitzdGF0aWMgaW50CitzeXNjYWxsX2NtcCh2b2lkICphLCB2b2lkICpiKQoreworCXJldHVybiBzdHJjbXAoc3lzZW50WyooKGludCAqKSBhKV0uc3lzX25hbWUsCisJCSAgICAgIHN5c2VudFsqKChpbnQgKikgYildLnN5c19uYW1lKTsKK30KKworc3RhdGljIGludAorY291bnRfY21wKHZvaWQgKmEsIHZvaWQgKmIpCit7CisJaW50ICAgICBtID0gY291bnRzWyooKGludCAqKSBhKV0uY2FsbHM7CisJaW50ICAgICBuID0gY291bnRzWyooKGludCAqKSBiKV0uY2FsbHM7CisKKwlyZXR1cm4gKG0gPCBuKSA/IDEgOiAobSA+IG4pID8gLTEgOiAwOworfQorCitzdGF0aWMgaW50ICgqc29ydGZ1bikoKTsKK3N0YXRpYyBzdHJ1Y3QgdGltZXZhbCBvdmVyaGVhZCA9IHsgLTEsIC0xIH07CisKK3ZvaWQKK3NldF9zb3J0YnkoY29uc3QgY2hhciAqc29ydGJ5KQoreworCWlmIChzdHJjbXAoc29ydGJ5LCAidGltZSIpID09IDApCisJCXNvcnRmdW4gPSB0aW1lX2NtcDsKKwllbHNlIGlmIChzdHJjbXAoc29ydGJ5LCAiY2FsbHMiKSA9PSAwKQorCQlzb3J0ZnVuID0gY291bnRfY21wOworCWVsc2UgaWYgKHN0cmNtcChzb3J0YnksICJuYW1lIikgPT0gMCkKKwkJc29ydGZ1biA9IHN5c2NhbGxfY21wOworCWVsc2UgaWYgKHN0cmNtcChzb3J0YnksICJub3RoaW5nIikgPT0gMCkKKwkJc29ydGZ1biA9IE5VTEw7CisJZWxzZQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIHNvcnRieTogYCVzJ1xuIiwgc29ydGJ5KTsKKwkJZXhpdCgxKTsKKwl9Cit9CisKK3ZvaWQgc2V0X292ZXJoZWFkKGludCBuKQoreworCW92ZXJoZWFkLnR2X3NlYyA9IG4gLyAxMDAwMDAwOworCW92ZXJoZWFkLnR2X3VzZWMgPSBuICUgMTAwMDAwMDsKK30KKworc3RhdGljIHZvaWQKK2NhbGxfc3VtbWFyeV9wZXJzKEZJTEUgKm91dGYpCit7CisJaW50ICAgICBpLCBqOworCWludCAgICAgY2FsbF9jdW0sIGVycm9yX2N1bTsKKwlzdHJ1Y3QgdGltZXZhbCB0dl9jdW0sIGR0djsKKwlkb3VibGUgIHBlcmNlbnQ7CisJY29uc3QgY2hhciAqZGFzaGVzID0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iOworCWNoYXIgICAgZXJyb3Jfc3RyWzE2XTsKKwlpbnQgICAgKnNvcnRlZF9jb3VudCA9IGNhbGxvYyhzaXplb2YoaW50KSwgbnN5c2NhbGxzKTsKKworCWlmICghc29ydGVkX2NvdW50KQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJzdHJhY2U6IG91dCBvZiBtZW1vcnkgZm9yIGNhbGwgc3VtbWFyeVxuIik7CisJCXJldHVybjsKKwl9CisKKwljYWxsX2N1bSA9IGVycm9yX2N1bSA9IHR2X2N1bS50dl9zZWMgPSB0dl9jdW0udHZfdXNlYyA9IDA7CisJaWYgKG92ZXJoZWFkLnR2X3NlYyA9PSAtMSkKKwl7CisJCXR2X211bCgmb3ZlcmhlYWQsICZzaG9ydGVzdCwgOCk7CisJCXR2X2Rpdigmb3ZlcmhlYWQsICZvdmVyaGVhZCwgMTApOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyBpKyspCisJeworCQlzb3J0ZWRfY291bnRbaV0gPSBpOworCQlpZiAoY291bnRzID09IE5VTEwgfHwgY291bnRzW2ldLmNhbGxzID09IDApCisJCQljb250aW51ZTsKKwkJdHZfbXVsKCZkdHYsICZvdmVyaGVhZCwgY291bnRzW2ldLmNhbGxzKTsKKwkJdHZfc3ViKCZjb3VudHNbaV0udGltZSwgJmNvdW50c1tpXS50aW1lLCAmZHR2KTsKKwkJY2FsbF9jdW0gKz0gY291bnRzW2ldLmNhbGxzOworCQllcnJvcl9jdW0gKz0gY291bnRzW2ldLmVycm9yczsKKwkJdHZfYWRkKCZ0dl9jdW0sICZ0dl9jdW0sICZjb3VudHNbaV0udGltZSk7CisJfQorCWlmIChjb3VudHMgJiYgc29ydGZ1bikKKwkJcXNvcnQoKHZvaWQgKikgc29ydGVkX2NvdW50LCBuc3lzY2FsbHMsIHNpemVvZihpbnQpLCBzb3J0ZnVuKTsKKwlmcHJpbnRmKG91dGYsICIlNi42cyAlMTEuMTFzICUxMS4xMXMgJTkuOXMgJTkuOXMgJXNcbiIsCisJCSIlIHRpbWUiLCAic2Vjb25kcyIsICJ1c2Vjcy9jYWxsIiwKKwkJImNhbGxzIiwgImVycm9ycyIsICJzeXNjYWxsIik7CisJZnByaW50ZihvdXRmLCAiJTYuNnMgJTExLjExcyAlMTEuMTFzICU5LjlzICU5LjlzICUtMTYuMTZzXG4iLAorCQlkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzKTsKKwlpZiAoY291bnRzKQorCXsKKwkJZm9yIChpID0gMDsgaSA8IG5zeXNjYWxsczsgaSsrKQorCQl7CisJCQlqID0gc29ydGVkX2NvdW50W2ldOworCQkJaWYgKGNvdW50c1tqXS5jYWxscyA9PSAwKQorCQkJCWNvbnRpbnVlOworCQkJdHZfZGl2KCZkdHYsICZjb3VudHNbal0udGltZSwgY291bnRzW2pdLmNhbGxzKTsKKwkJCWlmIChjb3VudHNbal0uZXJyb3JzKQorCQkJCXNwcmludGYoZXJyb3Jfc3RyLCAiJWQiLCBjb3VudHNbal0uZXJyb3JzKTsKKwkJCWVsc2UKKwkJCQllcnJvcl9zdHJbMF0gPSAnXDAnOworCQkJcGVyY2VudCA9ICgxMDAuMCAqIHR2X2Zsb2F0KCZjb3VudHNbal0udGltZSkKKwkJCQkgICAvIHR2X2Zsb2F0KCZ0dl9jdW0pKTsKKwkJCWZwcmludGYob3V0ZiwgIiU2LjJmICUxMS42ZiAlMTFsZCAlOWQgJTkuOXMgJXNcbiIsCisJCQkJcGVyY2VudCwgdHZfZmxvYXQoJmNvdW50c1tqXS50aW1lKSwKKwkJCQkobG9uZykgMTAwMDAwMCAqIGR0di50dl9zZWMgKyBkdHYudHZfdXNlYywKKwkJCQljb3VudHNbal0uY2FsbHMsCisJCQkJZXJyb3Jfc3RyLCBzeXNlbnRbal0uc3lzX25hbWUpOworCQl9CisJfQorCWZyZWUoc29ydGVkX2NvdW50KTsKKworCWZwcmludGYob3V0ZiwgIiU2LjZzICUxMS4xMXMgJTExLjExcyAlOS45cyAlOS45cyAlLTE2LjE2c1xuIiwKKwkJZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcyk7CisJaWYgKGVycm9yX2N1bSkKKwkJc3ByaW50ZihlcnJvcl9zdHIsICIlZCIsIGVycm9yX2N1bSk7CisJZWxzZQorCQllcnJvcl9zdHJbMF0gPSAnXDAnOworCWZwcmludGYob3V0ZiwgIiU2LjZzICUxMS42ZiAlMTEuMTFzICU5ZCAlOS45cyAlc1xuIiwKKwkJIjEwMC4wMCIsIHR2X2Zsb2F0KCZ0dl9jdW0pLCAiIiwKKwkJY2FsbF9jdW0sIGVycm9yX3N0ciwgInRvdGFsIik7Cit9CisKK3ZvaWQKK2NhbGxfc3VtbWFyeShGSUxFICpvdXRmKQoreworCWludCAgICAgaSwgb2xkX3BlcnMgPSBjdXJyZW50X3BlcnNvbmFsaXR5OworCisJZm9yIChpID0gMDsgaSA8IFNVUFBPUlRFRF9QRVJTT05BTElUSUVTOyArK2kpCisJeworCQlpZiAoIWNvdW50dltpXSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChjdXJyZW50X3BlcnNvbmFsaXR5ICE9IGkpCisJCQlzZXRfcGVyc29uYWxpdHkoaSk7CisJCWlmIChpKQorCQkJZnByaW50ZihvdXRmLAorCQkJCSJTeXN0ZW0gY2FsbCB1c2FnZSBzdW1tYXJ5IGZvciAldSBiaXQgbW9kZTpcbiIsCisJCQkJcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gKiA4KTsKKwkJY2FsbF9zdW1tYXJ5X3BlcnMob3V0Zik7CisJfQorCisJaWYgKG9sZF9wZXJzICE9IGN1cnJlbnRfcGVyc29uYWxpdHkpCisJCXNldF9wZXJzb25hbGl0eShvbGRfcGVycyk7Cit9CmRpZmYgLS1naXQgYS9kZWZzLmggYi9kZWZzLmgKaW5kZXggMmU3NWZlZC4uOGJlNjY4YSAxMDA2NDQKLS0tIGEvZGVmcy5oCisrKyBiL2RlZnMuaApAQCAtMjYsMTMgKzI2LDE3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBkZWZzLmgsdiAxLjU5IDIwMDUvMDYvMDggMjA6NDU6Mjggcm9sYW5kIEV4cCAkCisgKgkkSWQkCiAgKi8KIAogI2lmZGVmIEhBVkVfQ09ORklHX0gKICNpbmNsdWRlICJjb25maWcuaCIKICNlbmRpZgogCisjaWZkZWYgTUlQUworI2luY2x1ZGUgPHNnaWRlZnMuaD4KKyNlbmRpZgorCiAjaWZkZWYgbGludXgKICNpbmNsdWRlIDxmZWF0dXJlcy5oPgogI2VuZGlmCkBAIC00Nyw3ICs1MSw3IEBACiAvKiBjb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KICNpZm5kZWYgTUFYX1FVQUxTCiAjaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChNSVBTKQotI2RlZmluZSBNQVhfUVVBTFMJNTAwMAkvKiBtYXhpbXVtIG51bWJlciBvZiBzeXNjYWxscywgc2lnbmFscywgZXRjLiAqLworI2RlZmluZSBNQVhfUVVBTFMJNzAwMAkvKiBtYXhpbXVtIG51bWJlciBvZiBzeXNjYWxscywgc2lnbmFscywgZXRjLiAqLwogI2Vsc2UKICNkZWZpbmUgTUFYX1FVQUxTCTIwNDgJLyogbWF4aW11bSBudW1iZXIgb2Ygc3lzY2FsbHMsIHNpZ25hbHMsIGV0Yy4gKi8KICNlbmRpZgpAQCAtNjAsNyArNjQsMTEgQEAKICNkZWZpbmUgREVGQVVMVF9BQ09MVU1OCTQwCS8qIGRlZmF1bHQgYWxpZ25tZW50IGNvbHVtbiBmb3IgcmVzdWx0cyAqLwogI2VuZGlmCiAjaWZuZGVmIE1BWF9BUkdTCi0jZGVmaW5lIE1BWF9BUkdTCTMyCS8qIG1heGltdW0gbnVtYmVyIG9mIGFyZ3MgdG8gYSBzeXNjYWxsICovCisjIGlmZGVmIEhQUEEKKyMgIGRlZmluZSBNQVhfQVJHUwk2CS8qIG1heGltdW0gbnVtYmVyIG9mIGFyZ3MgdG8gYSBzeXNjYWxsICovCisjIGVsc2UKKyMgIGRlZmluZSBNQVhfQVJHUwkzMgkvKiBtYXhpbXVtIG51bWJlciBvZiBhcmdzIHRvIGEgc3lzY2FsbCAqLworIyBlbmRpZgogI2VuZGlmCiAjaWZuZGVmIERFRkFVTFRfU09SVEJZCiAjZGVmaW5lIERFRkFVTFRfU09SVEJZICJ0aW1lIgkvKiBkZWZhdWx0IHNvcnRpbmcgbWV0aG9kIGZvciBjYWxsIHByb2ZpbGluZyAqLwpAQCAtNzYsNiArODQsMTAgQEAKICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAKKyNpZmRlZiBIQVZFX1NUREJPT0xfSAorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNlbmRpZgorCiAjaWZkZWYgU1REQ19IRUFERVJTCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAjZW5kaWYgLyogU1REQ19IRUFERVJTICovCkBAIC04OCwxMiArMTAwLDI2IEBACiAjICBpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCiAjICAgICBkZWZpbmUgTElOVVhTUEFSQwogIyAgZW5kaWYKLSMgIGlmIGRlZmluZWQoQUxQSEEpCi0jICAgICBkZWZpbmUgTElOVVhfNjRCSVQKLSMgIGVuZGlmCiAjICBpZiBkZWZpbmVkKFg4Nl82NCkKICMgICAgIGRlZmluZSBMSU5VWF9YODZfNjQKICMgIGVuZGlmCisjICBpZiBkZWZpbmVkKE1JUFMpICYmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJMzIKKyMgICAgIGRlZmluZSBMSU5VWF9NSVBTTzMyCisjICBlbmRpZgorIyAgaWYgZGVmaW5lZChNSVBTKSAmJiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX05BQkkzMgorIyAgICAgZGVmaW5lIExJTlVYX01JUFNOMzIKKyMgICAgIGRlZmluZSBMSU5VWF9NSVBTNjQKKyMgIGVuZGlmCisjICBpZiBkZWZpbmVkKE1JUFMpICYmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJNjQKKyMgICAgIGRlZmluZSBMSU5VWF9NSVBTTjY0CisjICAgICBkZWZpbmUgTElOVVhfTUlQUzY0CisjICBlbmRpZgorIyAgaWYgZGVmaW5lZChBUk0pCisjICAgICBkZWZpbmUgTElOVVhfQVJNCisjICBlbmRpZgorIyAgaWYgZGVmaW5lZChBVlIzMikKKyMgICAgIGRlZmluZSBMSU5VWF9BVlIzMgorIyAgZW5kaWYKICNlbmRpZgogCiAjaWYgZGVmaW5lZChTVlI0KSB8fCBkZWZpbmVkKEZSRUVCU0QpCkBAIC0xMjAsNyArMTQ2LDcgQEAKICNpbmNsdWRlIDxzeXMvcGlvY3RsLmg+CiAjZW5kaWYgLyogRlJFRUJTRCAqLwogI2Vsc2UgLyogIVVTRV9QUk9DRlMgKi8KLSNpZiAoZGVmaW5lZChMSU5VWFNQQVJDKSB8fCBkZWZpbmVkIChMSU5VWF9YODZfNjQpKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyNpZiAoZGVmaW5lZChMSU5VWFNQQVJDKSB8fCBkZWZpbmVkKExJTlVYX1g4Nl82NCkgfHwgZGVmaW5lZChMSU5VWF9BUk0pIHx8IGRlZmluZWQoTElOVVhfQVZSMzIpKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CiAjZWxzZQogLyogV29yayBhcm91bmQgYXdrd2FyZCBwcm90b3R5cGUgaW4gcHRyYWNlLmguICovCkBAIC0xMzIsMTUgKzE1OCwxMSBAQAogI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KICN1bmRlZiBfX0tFUk5FTF9fCiAjZW5kaWYKLSNpZmRlZiBfX1NURENfXwogI2lmZGVmIExJTlVYCiBleHRlcm4gbG9uZyBwdHJhY2UoaW50LCBpbnQsIGNoYXIgKiwgbG9uZyk7CiAjZWxzZSAvKiAhTElOVVggKi8KIGV4dGVybiBpbnQgcHRyYWNlKGludCwgaW50LCBjaGFyICosIGludCwgLi4uKTsKICNlbmRpZiAvKiAhTElOVVggKi8KLSNlbHNlIC8qICFfX1NURENfXyAqLwotZXh0ZXJuIGludCBwdHJhY2UoKTsKLSNlbmRpZiAvKiAhX19TVERDX18gKi8KICNlbmRpZiAvKiAhTElOVVhTUEFSQyAqLwogI2VuZGlmIC8qICFTVlI0ICovCiAKQEAgLTE5MiwxMiArMjE0LDIwIEBACiAjZGVmaW5lIERFRkFVTFRfUEVSU09OQUxJVFkgMAogCiAjaWZkZWYgTElOVVhTUEFSQwotI2luY2x1ZGUgPGxpbnV4L2Eub3V0Lmg+Ci0jaW5jbHVkZSA8YXNtL3Bzci5oPgorLyogSW5kZXhlcyBpbnRvIHRoZSBwdF9yZWdzLnVfcmVnW10gYXJyYXkgLS0gVVJFR19YWCBmcm9tIGtlcm5lbCBhcmUgYWxsIG9mZgorICogYnkgMSBhbmQgdXNlIEl4IGluc3RlYWQgb2YgT3guICBUaGVzZSB3b3JrIGZvciBib3RoIDMyIGFuZCA2NCBiaXQgTGludXguICovCisjZGVmaW5lIFVfUkVHX0cxIDAKKyNkZWZpbmUgVV9SRUdfTzAgNworI2RlZmluZSBVX1JFR19PMSA4CisjZGVmaW5lIFBFUlNPTkFMSVRZMF9XT1JEU0laRSA0CisjZGVmaW5lIFBFUlNPTkFMSVRZMV9XT1JEU0laRSA0CiAjdW5kZWYgIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTCiAjaWYgZGVmaW5lZChTUEFSQzY0KQorI2luY2x1ZGUgPGFzbS9wc3Jjb21wYXQuaD4KICNkZWZpbmUgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgMworI2RlZmluZSBQRVJTT05BTElUWTJfV09SRFNJWkUgOAogI2Vsc2UKKyNpbmNsdWRlIDxhc20vcHNyLmg+CiAjZGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIDIKICNlbmRpZiAvKiBTUEFSQzY0ICovCiAjZW5kaWYgLyogTElOVVhTUEFSQyAqLwpAQCAtMjA1LDYgKzIzNSwyMiBAQAogI2lmZGVmIFg4Nl82NAogI3VuZGVmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTCiAjZGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIDIKKyNkZWZpbmUgUEVSU09OQUxJVFkwX1dPUkRTSVpFIDgKKyNkZWZpbmUgUEVSU09OQUxJVFkxX1dPUkRTSVpFIDQKKyNlbmRpZgorCisjaWZkZWYgQVJNCisjdW5kZWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMKKyNkZWZpbmUgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgMgorI2RlZmluZSBQRVJTT05BTElUWTBfV09SRFNJWkUgNAorI2RlZmluZSBQRVJTT05BTElUWTFfV09SRFNJWkUgNAorI2VuZGlmCisKKyNpZmRlZiBQT1dFUlBDNjQKKyN1bmRlZiBTVVBQT1JURURfUEVSU09OQUxJVElFUworI2RlZmluZSBTVVBQT1JURURfUEVSU09OQUxJVElFUyAyCisjZGVmaW5lIFBFUlNPTkFMSVRZMF9XT1JEU0laRSA4CisjZGVmaW5lIFBFUlNPTkFMSVRZMV9XT1JEU0laRSA0CiAjZW5kaWYKIAogI2lmZGVmIFNWUjQKQEAgLTI2Miw2ICszMDgsMzcgQEAKICNkZWZpbmUgUFJfRkFVTFRFRCAgICAgIFNfQ09SRQogI2VuZGlmCiAKKyNpZmRlZiBMSU5VWAorIyBpZiAhSEFWRV9ERUNMX1BUUkFDRV9TRVRPUFRJT05TCisjICBkZWZpbmUgUFRSQUNFX1NFVE9QVElPTlMJMHg0MjAwCisjIGVuZGlmCisjIGlmICFIQVZFX0RFQ0xfUFRSQUNFX0dFVEVWRU5UTVNHCisjICBkZWZpbmUgUFRSQUNFX0dFVEVWRU5UTVNHCTB4NDIwMQorIyBlbmRpZgorIyBpZiAhSEFWRV9ERUNMX1BUUkFDRV9HRVRTSUdJTkZPCisjICBkZWZpbmUgUFRSQUNFX0dFVFNJR0lORk8JMHg0MjAyCisjIGVuZGlmCisjIGlmICFIQVZFX0RFQ0xfUFRSQUNFX09fVFJBQ0VGT1JLCisjICBkZWZpbmUgUFRSQUNFX09fVFJBQ0VGT1JLCTB4MDAwMDAwMDIKKyMgZW5kaWYKKyMgaWYgIUhBVkVfREVDTF9QVFJBQ0VfT19UUkFDRVZGT1JLCisjICBkZWZpbmUgUFRSQUNFX09fVFJBQ0VWRk9SSwkweDAwMDAwMDA0CisjIGVuZGlmCisjIGlmICFIQVZFX0RFQ0xfUFRSQUNFX09fVFJBQ0VDTE9ORQorIyAgZGVmaW5lIFBUUkFDRV9PX1RSQUNFQ0xPTkUJMHgwMDAwMDAwOAorIyBlbmRpZgorCisjIGlmICFIQVZFX0RFQ0xfUFRSQUNFX0VWRU5UX0ZPUksKKyMgIGRlZmluZSBQVFJBQ0VfRVZFTlRfRk9SSwkxCisjIGVuZGlmCisjIGlmICFIQVZFX0RFQ0xfUFRSQUNFX0VWRU5UX1ZGT1JLCisjICBkZWZpbmUgUFRSQUNFX0VWRU5UX1ZGT1JLCTIKKyMgZW5kaWYKKyMgaWYgIUhBVkVfREVDTF9QVFJBQ0VfRVZFTlRfQ0xPTkUKKyMgIGRlZmluZSBQVFJBQ0VfRVZFTlRfQ0xPTkUJMworIyBlbmRpZgorI2VuZGlmIC8qIExJTlVYICovCisKIC8qIFRyYWNlIENvbnRyb2wgQmxvY2sgKi8KIHN0cnVjdCB0Y2IgewogCXNob3J0IGZsYWdzOwkJLyogU2VlIGJlbG93IGZvciBUQ0JfIHZhbHVlcyAqLwpAQCAtMjY5LDEyICszNDYsMTYgQEAKIAlsb25nIHNjbm87CQkvKiBTeXN0ZW0gY2FsbCBudW1iZXIgKi8KIAlpbnQgdV9uYXJnczsJCS8qIFN5c3RlbSBjYWxsIGFyZ3VtZW50cyAqLwogCWxvbmcgdV9hcmdbTUFYX0FSR1NdOwkvKiBTeXN0ZW0gY2FsbCBhcmd1bWVudHMgKi8KKyNpZiBkZWZpbmVkIChMSU5VWF9NSVBTTjMyKQorCWxvbmcgbG9uZyBleHRfYXJnW01BWF9BUkdTXTsJLyogU3lzdGVtIGNhbGwgYXJndW1lbnRzICovCisjZW5kaWYKIAlpbnQgdV9lcnJvcjsJCS8qIEVycm9yIGNvZGUgKi8KIAlsb25nIHVfcnZhbDsJCS8qIChmaXJzdCkgcmV0dXJuIHZhbHVlICovCiAjaWZkZWYgSEFWRV9MT05HX0xPTkcKIAlsb25nIGxvbmcgdV9scnZhbDsJLyogbG9uZyBsb25nIHJldHVybiB2YWx1ZSAqLwogI2VuZGlmCiAJRklMRSAqb3V0ZjsJCS8qIE91dHB1dCBmaWxlIGZvciB0aGlzIHByb2Nlc3MgKi8KKwlpbnQgY3VyY29sOwkJLyogT3V0cHV0IGNvbHVtbiBmb3IgdGhpcyBwcm9jZXNzICovCiAJY29uc3QgY2hhciAqYXV4c3RyOwkvKiBBdXhpbGlhcnkgaW5mbyBmcm9tIHN5c2NhbGwgKHNlZSBSVkFMX1NUUikgKi8KIAlzdHJ1Y3QgdGltZXZhbCBzdGltZTsJLyogU3lzdGVtIHRpbWUgdXNhZ2UgYXMgb2YgbGFzdCBwcm9jZXNzIHdhaXQgKi8KIAlzdHJ1Y3QgdGltZXZhbCBkdGltZTsJLyogRGVsdGEgZm9yIHN5c3RlbSB0aW1lIHVzYWdlICovCkBAIC0yODYsNyArMzY3LDYgQEAKIAlpbnQgbnpvbWJpZXM7CQkvKiAjIG9mIGZvcm1lcmx5IHRyYWNlZCBjaGlsZHJlbiBub3cgZGVhZCAqLwogI2lmZGVmIExJTlVYCiAJaW50IG5jbG9uZV90aHJlYWRzOwkvKiAjIG9mIG5jaGlsZHJlbiB3aXRoIENMT05FX1RIUkVBRCAqLwotCWludCBuY2xvbmVfZGV0YWNoZWQ7CS8qICMgb2YgbmNoaWxkcmVuIHdpdGggQ0xPTkVfREVUQUNIRUQgKi8KIAlpbnQgbmNsb25lX3dhaXRpbmc7CS8qIGNsb25lIHRocmVhZHMgaW4gd2FpdDQgKFRDQl9TVVNQRU5ERUQpICovCiAjZW5kaWYKIAkJCQkvKiAoMXN0IGFyZyBvZiB3YWl0NCgpKSAqLwpAQCAtMzAyLDYgKzM4Miw3IEBACiAJcHJzdGF0dXNfdCBzdGF0dXM7CS8qIHByb2NmcyBzdGF0dXMgc3RydWN0dXJlICovCiAjZW5kaWYKICNlbmRpZgorCWludCBwdHJhY2VfZXJybm87CiAjaWZkZWYgRlJFRUJTRAogCXN0cnVjdCBwcm9jZnNfc3RhdHVzIHN0YXR1czsKIAlpbnQgcGZkX3JlZzsKQEAgLTMxNSwxNyArMzk2LDIyIEBACiAjZGVmaW5lIFRDQl9JTlNZU0NBTEwJMDAwMDQJLyogQSBzeXN0ZW0gY2FsbCBpcyBpbiBwcm9ncmVzcyAqLwogI2RlZmluZSBUQ0JfQVRUQUNIRUQJMDAwMTAJLyogUHJvY2VzcyBpcyBub3Qgb3VyIG93biBjaGlsZCAqLwogI2RlZmluZSBUQ0JfRVhJVElORwkwMDAyMAkvKiBBcyBmYXIgYXMgd2Uga25vdywgdGhpcyBwcm9jZXNzIGlzIGV4aXRpbmcgKi8KLSNkZWZpbmUgVENCX1NVU1BFTkRFRAkwMDA0MAkvKiBQcm9jZXNzIGhhcyBkb25lIGEgd2FpdCg0KSwgdGhhdCBjYW4KLQkJCQkgICBub3QgYmUgYWxsb3dlZCB0byBjb21wbGV0ZSBqdXN0IG5vdyAqLworI2RlZmluZSBUQ0JfU1VTUEVOREVECTAwMDQwCS8qIFByb2Nlc3MgY2FuIG5vdCBiZSBhbGxvd2VkIHRvIHJlc3VtZSBqdXN0IG5vdyAqLwogI2RlZmluZSBUQ0JfQlBUU0VUCTAwMTAwCS8qICJCcmVha3BvaW50IiBzZXQgYWZ0ZXIgZm9yaygyKSAqLwogI2RlZmluZSBUQ0JfU0lHVFJBUFBFRAkwMDIwMAkvKiBQcm9jZXNzIHdhbnRlZCB0byBibG9jayBTSUdUUkFQICovCiAjZGVmaW5lIFRDQl9GT0xMT1dGT1JLCTAwNDAwCS8qIFByb2Nlc3Mgc2hvdWxkIGhhdmUgZm9ya3MgZm9sbG93ZWQgKi8KICNkZWZpbmUgVENCX1JFUFJJTlQJMDEwMDAJLyogV2Ugc2hvdWxkIHJlcHJpbnQgdGhpcyBzeXNjYWxsIG9uIGV4aXQgKi8KICNpZmRlZiBMSU5VWAotIyBpZiBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpIHx8IGRlZmluZWQoUE9XRVJQQykgfHwgZGVmaW5lZChJQTY0KSB8fCBkZWZpbmVkKEhQUEEpIHx8IGRlZmluZWQoU0gpIHx8IGRlZmluZWQoU0g2NCkgfHwgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKSB8fCBkZWZpbmVkKEFSTSkKKy8qIHg4NiBkb2VzIG5vdCBuZWVkIFRDQl9XQUlURVhFQ1ZFLgorICogSXQgY2FuIGRldGVjdCBleGVjdmUncyBTSUdUUkFQIGJ5IGxvb2tpbmcgYXQgZWF4L3JheC4KKyAqIFNlZSAic3RyYXkgc3lzY2FsbCBleGl0OiBlYXggPSAiIG1lc3NhZ2UgaW4gc3lzY2FsbF9maXh1cCgpLgorICovCisjIGlmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoQVZSMzIpIHx8IGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkgXAorICB8fCBkZWZpbmVkKFBPV0VSUEMpIHx8IGRlZmluZWQoSUE2NCkgfHwgZGVmaW5lZChIUFBBKSBcCisgIHx8IGRlZmluZWQoU0gpIHx8IGRlZmluZWQoU0g2NCkgfHwgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKSBcCisgIHx8IGRlZmluZWQoQVJNKSB8fCBkZWZpbmVkKE1JUFMpIHx8IGRlZmluZWQoQkZJTikgfHwgZGVmaW5lZChUSUxFKQogIyAgZGVmaW5lIFRDQl9XQUlURVhFQ1ZFIDAyMDAwCS8qIGlnbm9yZSBTSUdUUkFQIGFmdGVyIGV4Y2V2ZSAqLwogIyBlbmRpZgotIyBkZWZpbmUgVENCX0NMT05FX0RFVEFDSEVEIDA0MDAwIC8qIENMT05FX0RFVEFDSEVEIHNldCBpbiBjcmVhdGluZyBzeXNjYWxsICovCiAjIGRlZmluZSBUQ0JfQ0xPTkVfVEhSRUFEICAwMTAwMDAgLyogQ0xPTkVfVEhSRUFEIHNldCBpbiBjcmVhdGluZyBzeXNjYWxsICovCiAjIGRlZmluZSBUQ0JfR1JPVVBfRVhJVElORyAwMjAwMDAgLyogVENCX0VYSVRJTkcgd2FzIGV4aXRfZ3JvdXAsIG5vdCBfZXhpdCAqLwogIyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgpAQCAtMzM1LDYgKzQyMSw4IEBACiAjICAgZGVmaW5lIF9fTlJfZXhpdF9ncm91cCA0MDUKICMgIGVsaWYgZGVmaW5lZCBJMzg2CiAjICAgZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAyNTIKKyMgIGVsaWYgZGVmaW5lZCBYODZfNjQKKyMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDIzMQogIyAgZWxpZiBkZWZpbmVkIElBNjQKICMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDEyMzYKICMgIGVsaWYgZGVmaW5lZCBQT1dFUlBDCkBAIC0zNDMsNiArNDMxLDggQEAKICMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDI0OAogIyAgZWxpZiBkZWZpbmVkIFNQQVJDIHx8IGRlZmluZWQgU1BBUkM2NAogIyAgIGRlZmluZSBfX05SX2V4aXRfZ3JvdXAgMTg4CisjICBlbGlmIGRlZmluZWQgTTY4SworIyAgIGRlZmluZSBfX05SX2V4aXRfZ3JvdXAgMjQ3CiAjICBlbmRpZiAvKiBBTFBIQSBldCBhbCAqLwogIyBlbmRpZgkvKiAhX19OUl9leGl0X2dyb3VwICovCiAjZW5kaWYgLyogTElOVVggKi8KQEAgLTM2NSw5ICs0NTUsMTQgQEAKIAogc3RydWN0IHhsYXQgewogCWludCB2YWw7Ci0JY2hhciAqc3RyOworCWNvbnN0IGNoYXIgKnN0cjsKIH07CiAKK2V4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBvcGVuX21vZGVfZmxhZ3NbXTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBhZGRyZmFtc1tdOworZXh0ZXJuIGNvbnN0IHN0cnVjdCB4bGF0IHN0cnVjdF91c2VyX29mZnNldHNbXTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBvcGVuX2FjY2Vzc19tb2Rlc1tdOworCiAvKiBGb3JtYXQgb2Ygc3lzY2FsbCByZXR1cm4gdmFsdWVzICovCiAjZGVmaW5lIFJWQUxfREVDSU1BTAkwMDAJLyogZGVjaW1hbCBmb3JtYXQgKi8KICNkZWZpbmUgUlZBTF9IRVgJMDAxCS8qIGhleCBmb3JtYXQgKi8KQEAgLTM5NSwxMzEgKzQ5MCwxNTQgQEAKICNkZWZpbmUgVFJBQ0VfTkVUV09SSwkwMDQJLyogVHJhY2UgbmV0d29yay1yZWxhdGVkIHN5c2NhbGxzLiAqLwogI2RlZmluZSBUUkFDRV9QUk9DRVNTCTAxMAkvKiBUcmFjZSBwcm9jZXNzLXJlbGF0ZWQgc3lzY2FsbHMuICovCiAjZGVmaW5lIFRSQUNFX1NJR05BTAkwMjAJLyogVHJhY2Ugc2lnbmFsLXJlbGF0ZWQgc3lzY2FsbHMuICovCisjZGVmaW5lIFRSQUNFX0RFU0MJMDQwCS8qIFRyYWNlIGZpbGUgZGVzY3JpcHRvci1yZWxhdGVkIHN5c2NhbGxzLiAqLworI2RlZmluZSBTWVNDQUxMX05FVkVSX0ZBSUxTCTAxMDAJLyogU3lzY2FsbCBpcyBhbHdheXMgc3VjY2Vzc2Z1bC4gKi8KKwordHlwZWRlZiBlbnVtIHsKKwlDRkxBR19OT05FID0gMCwKKwlDRkxBR19PTkxZX1NUQVRTLAorCUNGTEFHX0JPVEgKK30gY2ZsYWdfdDsKIAogZXh0ZXJuIHN0cnVjdCB0Y2IgKip0Y2J0YWI7Ci1leHRlcm4gaW50IHF1YWxfZmxhZ3NbXTsKLWV4dGVybiBpbnQgZGVidWcsIGZvbGxvd2ZvcmssIGZvbGxvd3Zmb3JrOwotZXh0ZXJuIGludCByZmxhZywgdGZsYWcsIGR0aW1lLCBjZmxhZywgeGZsYWcsIHFmbGFnOworZXh0ZXJuIGludCAqcXVhbF9mbGFnczsKK2V4dGVybiBpbnQgZGVidWcsIGZvbGxvd2Zvcms7CitleHRlcm4gdW5zaWduZWQgaW50IHB0cmFjZV9zZXRvcHRpb25zOworZXh0ZXJuIGludCBkdGltZSwgeGZsYWcsIHFmbGFnOworZXh0ZXJuIGNmbGFnX3QgY2ZsYWc7CiBleHRlcm4gaW50IGFjb2x1bW47Ci1leHRlcm4gY2hhciAqb3V0Zm5hbWU7CiBleHRlcm4gdW5zaWduZWQgaW50IG5wcm9jcywgdGNidGFic2l6ZTsKIGV4dGVybiBpbnQgbWF4X3N0cmxlbjsKIGV4dGVybiBzdHJ1Y3QgdGNiICp0Y3BfbGFzdDsKIAotI2lmZGVmIF9fU1REQ19fCi0jZGVmaW5lIFAoYXJncykgYXJncwotI2Vsc2UKLSNkZWZpbmUgUChhcmdzKSAoKQotI2VuZGlmCitlbnVtIGJpdG5lc3NfdCB7IEJJVE5FU1NfQ1VSUkVOVCA9IDAsIEJJVE5FU1NfMzIgfTsKIAotZXh0ZXJuIGludCBzZXRfcGVyc29uYWxpdHkgUCgoaW50IHBlcnNvbmFsaXR5KSk7Ci1leHRlcm4gY2hhciAqeGxvb2t1cCBQKChjb25zdCBzdHJ1Y3QgeGxhdCAqLCBpbnQpKTsKLWV4dGVybiBzdHJ1Y3QgdGNiICphbGxvY3RjYiBQKChpbnQpKTsKLWV4dGVybiBzdHJ1Y3QgdGNiICpwaWQydGNiIFAoKGludCkpOwotZXh0ZXJuIHZvaWQgZHJvcHRjYiBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgZXhwYW5kX3RjYnRhYiBQKCh2b2lkKSk7CitleHRlcm4gaW50IHNldF9wZXJzb25hbGl0eShpbnQgcGVyc29uYWxpdHkpOworZXh0ZXJuIGNvbnN0IGNoYXIgKnhsb29rdXAoY29uc3Qgc3RydWN0IHhsYXQgKiwgaW50KTsKK2V4dGVybiBzdHJ1Y3QgdGNiICphbGxvY190Y2IoaW50LCBpbnQpOworZXh0ZXJuIHN0cnVjdCB0Y2IgKnBpZDJ0Y2IoaW50KTsKK2V4dGVybiB2b2lkIGRyb3B0Y2Ioc3RydWN0IHRjYiAqKTsKK2V4dGVybiB2b2lkIGV4cGFuZF90Y2J0YWIodm9pZCk7CiAKLWV4dGVybiB2b2lkIHNldF9zb3J0YnkgUCgoY2hhciAqKSk7Ci1leHRlcm4gdm9pZCBzZXRfb3ZlcmhlYWQgUCgoaW50KSk7Ci1leHRlcm4gdm9pZCBxdWFsaWZ5IFAoKGNoYXIgKikpOwotZXh0ZXJuIHZvaWQgbmV3b3V0ZiBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgZ2V0X3Njbm8gUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gbG9uZyBrbm93bl9zY25vIFAoKHN0cnVjdCB0Y2IgKikpOwotZXh0ZXJuIGludCB0cmFjZV9zeXNjYWxsIFAoKHN0cnVjdCB0Y2IgKikpOwotZXh0ZXJuIHZvaWQgcHJpbnR4dmFsIFAoKGNvbnN0IHN0cnVjdCB4bGF0ICosIGludCwgY29uc3QgY2hhciAqKSk7Ci1leHRlcm4gaW50IHByaW50YXJncyBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgYWRkZmxhZ3MgUCgoY29uc3Qgc3RydWN0IHhsYXQgKiwgaW50KSk7Ci1leHRlcm4gaW50IHByaW50ZmxhZ3MgUCgoY29uc3Qgc3RydWN0IHhsYXQgKiwgaW50LCBjb25zdCBjaGFyICopKTsKLWV4dGVybiBpbnQgdW1vdmVuIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50LCBjaGFyICopKTsKLWV4dGVybiBpbnQgdW1vdmVzdHIgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQsIGNoYXIgKikpOwotZXh0ZXJuIGludCB1cGVlayBQKChpbnQsIGxvbmcsIGxvbmcgKikpOwotZXh0ZXJuIHZvaWQgZHVtcGlvdiBQKChzdHJ1Y3QgdGNiICosIGludCwgbG9uZykpOwotZXh0ZXJuIHZvaWQgZHVtcHN0ciBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOwotZXh0ZXJuIHZvaWQgcHJpbnRzdHIgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQpKTsKLWV4dGVybiB2b2lkIHByaW50bnVtIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgY2hhciAqKSk7Ci1leHRlcm4gdm9pZCBwcmludHBhdGggUCgoc3RydWN0IHRjYiAqLCBsb25nKSk7Ci1leHRlcm4gdm9pZCBwcmludHBhdGhuIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50KSk7Ci1leHRlcm4gdm9pZCBwcmludHR2IFAoKHN0cnVjdCB0Y2IgKiwgbG9uZykpOworI2RlZmluZSBhbGxvY3RjYihwaWQpCWFsbG9jX3RjYigocGlkKSwgMSkKKworZXh0ZXJuIHZvaWQgc2V0X3NvcnRieShjb25zdCBjaGFyICopOworZXh0ZXJuIHZvaWQgc2V0X292ZXJoZWFkKGludCk7CitleHRlcm4gdm9pZCBxdWFsaWZ5KGNvbnN0IGNoYXIgKik7CitleHRlcm4gaW50IGdldF9zY25vKHN0cnVjdCB0Y2IgKik7CitleHRlcm4gbG9uZyBrbm93bl9zY25vKHN0cnVjdCB0Y2IgKik7CitleHRlcm4gbG9uZyBkb19wdHJhY2UoaW50IHJlcXVlc3QsIHN0cnVjdCB0Y2IgKnRjcCwgdm9pZCAqYWRkciwgdm9pZCAqZGF0YSk7CitleHRlcm4gaW50IHB0cmFjZV9yZXN0YXJ0KGludCByZXF1ZXN0LCBzdHJ1Y3QgdGNiICp0Y3AsIGludCBzaWcpOworZXh0ZXJuIGludCBmb3JjZV9yZXN1bHQoc3RydWN0IHRjYiAqLCBpbnQsIGxvbmcpOworZXh0ZXJuIGludCB0cmFjZV9zeXNjYWxsKHN0cnVjdCB0Y2IgKik7CitleHRlcm4gaW50IGNvdW50X3N5c2NhbGwoc3RydWN0IHRjYiAqLCBzdHJ1Y3QgdGltZXZhbCAqKTsKK2V4dGVybiB2b2lkIHByaW50eHZhbChjb25zdCBzdHJ1Y3QgeGxhdCAqLCBpbnQsIGNvbnN0IGNoYXIgKik7CitleHRlcm4gaW50IHByaW50YXJncyhzdHJ1Y3QgdGNiICopOworZXh0ZXJuIGludCBhZGRmbGFncyhjb25zdCBzdHJ1Y3QgeGxhdCAqLCBpbnQpOworZXh0ZXJuIGludCBwcmludGZsYWdzKGNvbnN0IHN0cnVjdCB4bGF0ICosIGludCwgY29uc3QgY2hhciAqKTsKK2V4dGVybiBjb25zdCBjaGFyICpzcHJpbnRmbGFncyhjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB4bGF0ICosIGludCk7CitleHRlcm4gaW50IHVtb3ZlbihzdHJ1Y3QgdGNiICosIGxvbmcsIGludCwgY2hhciAqKTsKK2V4dGVybiBpbnQgdW1vdmVzdHIoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQsIGNoYXIgKik7CitleHRlcm4gaW50IHVwZWVrKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZyAqKTsKK2V4dGVybiB2b2lkIGR1bXBpb3Yoc3RydWN0IHRjYiAqLCBpbnQsIGxvbmcpOworZXh0ZXJuIHZvaWQgZHVtcHN0cihzdHJ1Y3QgdGNiICosIGxvbmcsIGludCk7CitleHRlcm4gdm9pZCBwcmludHN0cihzdHJ1Y3QgdGNiICosIGxvbmcsIGludCk7CitleHRlcm4gdm9pZCBwcmludG51bShzdHJ1Y3QgdGNiICosIGxvbmcsIGNvbnN0IGNoYXIgKik7CitleHRlcm4gdm9pZCBwcmludG51bV9pbnQoc3RydWN0IHRjYiAqLCBsb25nLCBjb25zdCBjaGFyICopOworZXh0ZXJuIHZvaWQgcHJpbnRwYXRoKHN0cnVjdCB0Y2IgKiwgbG9uZyk7CitleHRlcm4gdm9pZCBwcmludHBhdGhuKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50KTsKK2V4dGVybiB2b2lkIHByaW50dHZfYml0bmVzcyhzdHJ1Y3QgdGNiICosIGxvbmcsIGVudW0gYml0bmVzc190LCBpbnQpOworZXh0ZXJuIHZvaWQgc3ByaW50dHYoc3RydWN0IHRjYiAqLCBsb25nLCBlbnVtIGJpdG5lc3NfdCwgY2hhciAqKTsKK2V4dGVybiB2b2lkIHByaW50X3RpbWVzcGVjKHN0cnVjdCB0Y2IgKiwgbG9uZyk7CitleHRlcm4gdm9pZCBzcHJpbnRfdGltZXNwZWMoY2hhciAqLCBzdHJ1Y3QgdGNiICosIGxvbmcpOwogI2lmZGVmIEhBVkVfU0lHSU5GT19UCi1leHRlcm4gdm9pZCBwcmludHNpZ2luZm8gUCgoc2lnaW5mb190ICosIGludCkpOworZXh0ZXJuIHZvaWQgcHJpbnRzaWdpbmZvKHNpZ2luZm9fdCAqLCBpbnQpOwogI2VuZGlmCi1leHRlcm4gdm9pZCBwcmludHNvY2sgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQpKTsKLWV4dGVybiB2b2lkIHByaW50X3NvY2tfb3B0bWdtdCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOwotZXh0ZXJuIHZvaWQgcHJpbnRydXNhZ2UgUCgoc3RydWN0IHRjYiAqLCBsb25nKSk7Ci1leHRlcm4gdm9pZCBwcmludHVpZCBQKChjb25zdCBjaGFyICosIHVuc2lnbmVkIGxvbmcpKTsKLWV4dGVybiBpbnQgY2xlYXJicHQgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gaW50IHNldGJwdCBQKChzdHJ1Y3QgdGNiICopKTsKLWV4dGVybiBpbnQgc2lnaXNoYW5kbGVkIFAoKHN0cnVjdCB0Y2IgKiwgaW50KSk7Ci1leHRlcm4gdm9pZCBwcmludGNhbGwgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gY29uc3QgY2hhciAqc2lnbmFtZSBQKChpbnQpKTsKLWV4dGVybiB2b2lkIHByaW50c2lnbmFsIFAoKGludCkpOwotZXh0ZXJuIHZvaWQgcHJpbnRsZWFkZXIgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gdm9pZCBwcmludHRyYWlsZXIgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gdm9pZCB0YWJ0byBQKChpbnQpKTsKLWV4dGVybiB2b2lkIGNhbGxfc3VtbWFyeSBQKChGSUxFICopKTsKLWV4dGVybiB2b2lkIHByaW50dHYzMiBQKChzdHJ1Y3QgdGNiKiwgbG9uZykpOwotZXh0ZXJuIHZvaWQgdHByaW50X2lvdiBQKChzdHJ1Y3QgdGNiICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpKTsKK2V4dGVybiB2b2lkIHByaW50ZmQoc3RydWN0IHRjYiAqLCBpbnQpOworZXh0ZXJuIHZvaWQgcHJpbnRzb2NrKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50KTsKK2V4dGVybiB2b2lkIHByaW50X3NvY2tfb3B0bWdtdChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCk7CitleHRlcm4gdm9pZCBwcmludHJ1c2FnZShzdHJ1Y3QgdGNiICosIGxvbmcpOworZXh0ZXJuIHZvaWQgcHJpbnR1aWQoY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nKTsKK2V4dGVybiBpbnQgY2xlYXJicHQoc3RydWN0IHRjYiAqKTsKK2V4dGVybiBpbnQgc2V0YnB0KHN0cnVjdCB0Y2IgKik7CitleHRlcm4gaW50IHNpZ2lzaGFuZGxlZChzdHJ1Y3QgdGNiICosIGludCk7CitleHRlcm4gdm9pZCBwcmludGNhbGwoc3RydWN0IHRjYiAqKTsKK2V4dGVybiBjb25zdCBjaGFyICpzaWduYW1lKGludCk7CitleHRlcm4gdm9pZCBwcmludF9zaWdzZXQoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQpOworZXh0ZXJuIHZvaWQgcHJpbnRzaWduYWwoaW50KTsKK2V4dGVybiB2b2lkIHByaW50bGVhZGVyKHN0cnVjdCB0Y2IgKik7CitleHRlcm4gdm9pZCBwcmludHRyYWlsZXIodm9pZCk7CitleHRlcm4gdm9pZCB0YWJ0byhpbnQpOworZXh0ZXJuIHZvaWQgY2FsbF9zdW1tYXJ5KEZJTEUgKik7CitleHRlcm4gdm9pZCB0cHJpbnRfaW92KHN0cnVjdCB0Y2IgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CitleHRlcm4gdm9pZCB0cHJpbnRfb3Blbl9tb2Rlcyhtb2RlX3QpOworZXh0ZXJuIGNvbnN0IGNoYXIgKnNwcmludF9vcGVuX21vZGVzKG1vZGVfdCk7CitleHRlcm4gaW50IGlzX3Jlc3RhcnRfZXJyb3Ioc3RydWN0IHRjYiAqKTsKIAorZXh0ZXJuIGludCBjaGFuZ2Vfc3lzY2FsbChzdHJ1Y3QgdGNiICosIGludCk7CitleHRlcm4gaW50IGludGVybmFsX2Zvcmsoc3RydWN0IHRjYiAqKTsKK2V4dGVybiBpbnQgaW50ZXJuYWxfZXhlYyhzdHJ1Y3QgdGNiICopOworZXh0ZXJuIGludCBpbnRlcm5hbF93YWl0KHN0cnVjdCB0Y2IgKiwgaW50KTsKK2V4dGVybiBpbnQgaW50ZXJuYWxfZXhpdChzdHJ1Y3QgdGNiICopOwogI2lmZGVmIExJTlVYCi1leHRlcm4gaW50IGludGVybmFsX2Nsb25lIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBoYW5kbGVfbmV3X2NoaWxkKHN0cnVjdCB0Y2IgKiwgaW50LCBpbnQpOwogI2VuZGlmCi1leHRlcm4gaW50IGludGVybmFsX2ZvcmsgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gaW50IGludGVybmFsX2V4ZWMgUCgoc3RydWN0IHRjYiAqKSk7Ci1leHRlcm4gaW50IGludGVybmFsX3dhaXQgUCgoc3RydWN0IHRjYiAqLCBpbnQpKTsKLWV4dGVybiBpbnQgaW50ZXJuYWxfZXhpdCBQKChzdHJ1Y3QgdGNiICopKTsKIAotZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb2N0bGVudCAqaW9jdGxfbG9va3VwIFAoKGxvbmcpKTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsX25leHRfbWF0Y2ggUCgoY29uc3Qgc3RydWN0IGlvY3RsZW50ICopKTsKLWV4dGVybiBpbnQgaW9jdGxfZGVjb2RlIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOwotZXh0ZXJuIGludCB0ZXJtX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOwotZXh0ZXJuIGludCBzb2NrX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOwotZXh0ZXJuIGludCBwcm9jX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgaW50LCBpbnQpKTsKLWV4dGVybiBpbnQgc3RyZWFtX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgaW50LCBpbnQpKTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsX2xvb2t1cChsb25nKTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsX25leHRfbWF0Y2goY29uc3Qgc3RydWN0IGlvY3RsZW50ICopOworZXh0ZXJuIGludCBpb2N0bF9kZWNvZGUoc3RydWN0IHRjYiAqLCBsb25nLCBsb25nKTsKK2V4dGVybiBpbnQgdGVybV9pb2N0bChzdHJ1Y3QgdGNiICosIGxvbmcsIGxvbmcpOworZXh0ZXJuIGludCBzb2NrX2lvY3RsKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZyk7CitleHRlcm4gaW50IHByb2NfaW9jdGwoc3RydWN0IHRjYiAqLCBpbnQsIGludCk7CitleHRlcm4gaW50IHN0cmVhbV9pb2N0bChzdHJ1Y3QgdGNiICosIGludCwgaW50KTsKICNpZmRlZiBMSU5VWAotZXh0ZXJuIGludCBydGNfaW9jdGwgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBsb25nKSk7CitleHRlcm4gaW50IHJ0Y19pb2N0bChzdHJ1Y3QgdGNiICosIGxvbmcsIGxvbmcpOworZXh0ZXJuIGludCBzY3NpX2lvY3RsKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZyk7CitleHRlcm4gaW50IGJsb2NrX2lvY3RsKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZyk7CiAjZW5kaWYKIAotZXh0ZXJuIHZvaWQgdHZfdHYgUCgoc3RydWN0IHRpbWV2YWwgKiwgaW50LCBpbnQpKTsKLWV4dGVybiBpbnQgdHZfbnogUCgoc3RydWN0IHRpbWV2YWwgKikpOwotZXh0ZXJuIGludCB0dl9jbXAgUCgoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKikpOwotZXh0ZXJuIGRvdWJsZSB0dl9mbG9hdCBQKChzdHJ1Y3QgdGltZXZhbCAqKSk7Ci1leHRlcm4gdm9pZCB0dl9hZGQgUCgoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKikpOwotZXh0ZXJuIHZvaWQgdHZfc3ViIFAoKHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICopKTsKLWV4dGVybiB2b2lkIHR2X211bCBQKChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqLCBpbnQpKTsKLWV4dGVybiB2b2lkIHR2X2RpdiBQKChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqLCBpbnQpKTsKK2V4dGVybiBpbnQgdHZfbnooc3RydWN0IHRpbWV2YWwgKik7CitleHRlcm4gaW50IHR2X2NtcChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqKTsKK2V4dGVybiBkb3VibGUgdHZfZmxvYXQoc3RydWN0IHRpbWV2YWwgKik7CitleHRlcm4gdm9pZCB0dl9hZGQoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKik7CitleHRlcm4gdm9pZCB0dl9zdWIoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKik7CitleHRlcm4gdm9pZCB0dl9tdWwoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgaW50KTsKK2V4dGVybiB2b2lkIHR2X2RpdihzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqLCBpbnQpOwogCiAjaWZkZWYgU1VOT1M0Ci1leHRlcm4gaW50IGZpeHZmb3JrIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBmaXh2Zm9yayhzdHJ1Y3QgdGNiICopOwogI2VuZGlmCi0jaWYgIShkZWZpbmVkKExJTlVYKSAmJiAhZGVmaW5lZChTUEFSQykgJiYgIWRlZmluZWQoU1BBUkM2NCkgJiYgIWRlZmluZWQoSUE2NCkpCi1leHRlcm4gbG9uZyBnZXRydmFsMiBQKChzdHJ1Y3QgdGNiICopKTsKKyNpZiAhKGRlZmluZWQoTElOVVgpICYmICFkZWZpbmVkKFNQQVJDKSAmJiAhZGVmaW5lZChTUEFSQzY0KSAmJiAhZGVmaW5lZChJQTY0KSBcCisJJiYgIWRlZmluZWQoU0gpKQorZXh0ZXJuIGxvbmcgZ2V0cnZhbDIoc3RydWN0IHRjYiAqKTsKICNlbmRpZgogI2lmZGVmIFVTRV9QUk9DRlMKLWV4dGVybiBpbnQgcHJvY19vcGVuIFAoKHN0cnVjdCB0Y2IgKnRjcCwgaW50IGF0dGFjaGluZykpOworZXh0ZXJuIGludCBwcm9jX29wZW4oc3RydWN0IHRjYiAqdGNwLCBpbnQgYXR0YWNoaW5nKTsKICNlbmRpZgogCiAjZGVmaW5lIHVtb3ZlKHBpZCwgYWRkciwgb2JqcCkJXAogCXVtb3ZlbigocGlkKSwgKGFkZHIpLCBzaXplb2YgKihvYmpwKSwgKGNoYXIgKikgKG9ianApKQogCi0jaWZkZWYgX19TVERDX18KLSNpZmRlZiBfX0dOVUNfXworI2RlZmluZSBwcmludHR2KHRjcCwgYWRkcikJXAorCXByaW50dHZfYml0bmVzcygodGNwKSwgKGFkZHIpLCBCSVRORVNTX0NVUlJFTlQsIDApCisjZGVmaW5lIHByaW50dHZfc3BlY2lhbCh0Y3AsIGFkZHIpCVwKKwlwcmludHR2X2JpdG5lc3MoKHRjcCksIChhZGRyKSwgQklUTkVTU19DVVJSRU5ULCAxKQorCiBleHRlcm4gdm9pZCB0cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKLSNlbHNlCi1leHRlcm4gdm9pZCB0cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKyNpZmRlZiBfX0dOVUNfXworCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKQogI2VuZGlmCi0jZWxzZQotZXh0ZXJuIHZvaWQgdHByaW50ZigpOwotI2VuZGlmCisJOwogCiAjaWZuZGVmIEhBVkVfU1RSRVJST1IKLWNvbnN0IGNoYXIgKnN0cmVycm9yIFAoKGludCkpOworY29uc3QgY2hhciAqc3RyZXJyb3IoaW50KTsKICNlbmRpZgogI2lmbmRlZiBIQVZFX1NUUlNJR05BTAotY29uc3QgY2hhciAqc3Ryc2lnbmFsIFAoKGludCkpOworY29uc3QgY2hhciAqc3Ryc2lnbmFsKGludCk7CiAjZW5kaWYKIAogZXh0ZXJuIGludCBjdXJyZW50X3BlcnNvbmFsaXR5OworZXh0ZXJuIGNvbnN0IGludCBwZXJzb25hbGl0eV93b3Jkc2l6ZVtdOwogCiBzdHJ1Y3Qgc3lzZW50IHsKIAlpbnQJbmFyZ3M7CkBAIC01NjYsMjAgKzY4NCw2IEBACiBleHRlcm4gY29uc3QgaW50IG5zaWduYWxzMjsKICNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCiAKLSNpZiBkZWZpbmVkKEZSRUVCU0QpIHx8IChkZWZpbmVkKExJTlVYKSBcCi0JCQkgJiYgZGVmaW5lZChQT1dFUlBDKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSkgXAotICB8fCAoZGVmaW5lZCAoTElOVVgpICYmIGRlZmluZWQgKE1JUFMpICYmICFkZWZpbmVkKF9fbWlwczY0KSkKLS8qIEFSUkdIISAgb2ZmX3QgYXJncyBhcmUgYWxpZ25lZCBvbiA2NCBiaXQgYm91bmRhcmllcyEgKi8KLSNkZWZpbmUgQUxJR042NCh0Y3AsYXJnKQkJCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JaWYgKGFyZyAlIDIpCQkJCQkJCVwKLQkgICAgbWVtbW92ZSAoJnRjcC0+dV9hcmdbYXJnXSwgJnRjcC0+dV9hcmdbYXJnICsgMV0sCQlcCi0JCSAgICAgKHRjcC0+dV9uYXJncyAtIGFyZyAtIDEpICogc2l6ZW9mIHRjcC0+dV9hcmdbMF0pOwlcCi19IHdoaWxlICgwKQotI2Vsc2UKLSNkZWZpbmUgQUxJR042NCh0Y3AsYXJnKSBkbyB7IH0gd2hpbGUgKDApCi0jZW5kaWYKLQogI2lmIEhBVkVfTE9OR19MT05HCiAKIC8qIF9sIHJlZmVycyB0byB0aGUgbG93ZXIgbnVtYmVyZWQgdV9hcmcsCkBAIC01OTMsNiArNjk3LDggQEAKICNkZWZpbmUgTE9OR19MT05HKF9sLF9oKSBcCiAgICAgKChsb25nIGxvbmcpKCh1bnNpZ25lZCBsb25nIGxvbmcpKHVuc2lnbmVkKShfaCkgfCAoKHVuc2lnbmVkIGxvbmcgbG9uZykoX2wpPDwzMikpKQogI2VuZGlmCisKK2V4dGVybiBpbnQgcHJpbnRsbHZhbChzdHJ1Y3QgdGNiICosIGNvbnN0IGNoYXIgKiwgaW50KTsKICNlbmRpZgogCiAjaWZkZWYgSUE2NApkaWZmIC0tZ2l0IGEvZGVwY29tcCBiL2RlcGNvbXAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDllNTUyMmQuLjAwMDAwMDAKLS0tIGEvZGVwY29tcAorKysgL2Rldi9udWxsCkBAIC0xLDUyMCArMCwwIEBACi0jISAvYmluL3NoCi0jIGRlcGNvbXAgLSBjb21waWxlIGEgcHJvZ3JhbSBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcyBhcyBzaWRlLWVmZmVjdHMKLQotc2NyaXB0dmVyc2lvbj0yMDAzLTExLTA4LjIzCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotCi0jIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0jIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0jIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSMgYW55IGxhdGVyIHZlcnNpb24uCi0KLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0jIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0jIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKLSMgMDIxMTEtMTMwNywgVVNBLgotCi0jIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0jIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0jIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLQotIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4uCi0KLWNhc2UgJDEgaW4KLSAgJycpCi0gICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKLSAgICAgZXhpdCAxOwotICAgICA7OwotICAtaCB8IC0taCopCi0gICAgY2F0IDw8XEVPRgotVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJHU10KLQotUnVuIFBST0dSQU1TIEFSR1MgdG8gY29tcGlsZSBhIGZpbGUsIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzCi1hcyBzaWRlLWVmZmVjdHMuCi0KLUVudmlyb25tZW50IHZhcmlhYmxlczoKLSAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2RlLgotICBzb3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFNUyBBUkdTJy4KLSAgb2JqZWN0ICAgICAgT2JqZWN0IGZpbGUgb3V0cHV0IGJ5IGBQUk9HUkFNUyBBUkdTJy4KLSAgZGVwZmlsZSAgICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KLSAgdG1wZGVwZmlsZSAgVGVtcG9yYXJ5IGZpbGUgdG8gdXNlIHdoZW4gb3V0cHV0aW5nIGRlcGVuZGVuY2llcy4KLSAgbGlidG9vbCAgICAgV2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9ubykuCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uCi1FT0YKLSAgICBleGl0IDAKLSAgICA7OwotICAtdiB8IC0tdiopCi0gICAgZWNobyAiZGVwY29tcCAkc2NyaXB0dmVyc2lvbiIKLSAgICBleGl0IDAKLSAgICA7OwotZXNhYwotCi1pZiB0ZXN0IC16ICIkZGVwbW9kZSIgfHwgdGVzdCAteiAiJHNvdXJjZSIgfHwgdGVzdCAteiAiJG9iamVjdCI7IHRoZW4KLSAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCi0gIGV4aXQgMQotZmkKLSMgYGxpYnRvb2wnIGNhbiBhbHNvIGJlIHNldCB0byBgeWVzJyBvciBgbm8nLgotCi1pZiB0ZXN0IC16ICIkZGVwZmlsZSI7IHRoZW4KLSAgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzLF4uKi8sLCcgLWUgJ3MsXC5cKFteLl0qXCkkLC5QXDEsJ2AKLSAgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3MsLy4qJCwvLCdgCi0gICBpZiB0ZXN0ICIkZGlyIiA9ICIkb2JqZWN0IjsgdGhlbgotICAgICAgZGlyPQotICAgZmkKLSAgICMgRklYTUU6IHNob3VsZCBiZSBfZGVwcyBvbiBET1MuCi0gICBkZXBmaWxlPSIkZGlyLmRlcHMvJGJhc2UiCi1maQotCi10bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQotCi1ybSAtZiAiJHRtcGRlcGZpbGUiCi0KLSMgU29tZSBtb2RlcyB3b3JrIGp1c3QgbGlrZSBvdGhlciBtb2RlcywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQotIyBwYXJhbWV0ZXJpemUgaGVyZSwgYnV0IHN0aWxsIGxpc3QgdGhlIG1vZGVzIGluIHRoZSBiaWcgY2FzZSBiZWxvdywKLSMgdG8gbWFrZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKLSMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9ubHkgY29udGFpbiBvbmUgY2FzZSBzdGF0ZW1lbnQuCi1pZiB0ZXN0ICIkZGVwbW9kZSIgPSBocDsgdGhlbgotICAjIEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4KLSAgZ2NjZmxhZz0tTQotICBkZXBtb2RlPWdjYwotZmkKLQotaWYgdGVzdCAiJGRlcG1vZGUiID0gZGFzaFhtc3Rkb3V0OyB0aGVuCi0gICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCi0gICBkYXNobWZsYWc9LXhNCi0gICBkZXBtb2RlPWRhc2htc3Rkb3V0Ci1maQotCi1jYXNlICIkZGVwbW9kZSIgaW4KLWdjYzMpCi0jIyBnY2MgMyBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgdHJhY2tpbmcgdGhhdCBkb2VzIGV4YWN0bHkgd2hhdAotIyMgd2Ugd2FudC4gIFlheSEgIE5vdGU6IGZvciBzb21lIHJlYXNvbiBsaWJ0b29sIDEuNCBkb2Vzbid0IGxpa2UKLSMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KLSAgIiRAIiAtTVQgIiRvYmplY3QiIC1NRCAtTVAgLU1GICIkdG1wZGVwZmlsZSIKLSAgc3RhdD0kPwotICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSAgZWxzZQotICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgICBleGl0ICRzdGF0Ci0gIGZpCi0gIG12ICIkdG1wZGVwZmlsZSIgIiRkZXBmaWxlIgotICA7OwotCi1nY2MpCi0jIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncwotIyMgd2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRob2Q6Ci0jIyAtIERvbid0IHdhbnQgdG8gdXNlIC1NRCBiZWNhdXNlIHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAotIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgotIyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55d2F5IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKLSMjIC0gVGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbWFrZXMgZ2NjIGFjdCBsaWtlCi0jIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KLSMjIC0gVXNpbmcgLU0gZGlyZWN0bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKLSMjICAgdGhhbiByZW5hbWluZykuCi0gIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgotICAgIGdjY2ZsYWc9LU1ELAotICBmaQotICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKLSAgc3RhdD0kPwotICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSAgZWxzZQotICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgICBleGl0ICRzdGF0Ci0gIGZpCi0gIHJtIC1mICIkZGVwZmlsZSIKLSAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKLSAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egotIyMgVGhlIHNlY29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBkcml2ZSBsZXR0ZXJzLgotICBzZWQgLWUgJ3MvXlteOl0qOiAvIC8nIFwKLSAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSMjIFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBmaWxlJyBwcm9ibGVtLgotIyMgVGhlIHByb2JsZW0gaXMgdGhhdCB3aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5QIGZpbGUKLSMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcwotIyMgdHlwaWNhbGx5IG5vIHdheSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKLSMjIGR1bW15IGRlcGVuZGVuY2llcyBmb3IgZWFjaCBoZWFkZXIgZmlsZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KLSMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgotICB0ciAnICcgJwotJyA8ICIkdG1wZGVwZmlsZSIgfAotIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5Ci0jIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21ldGhpbmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMKLSMjIHdlbGwuCi0jIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICA7OwotCi1ocCkKLSAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5Ci0gICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKLSAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KLSAgZXhpdCAxCi0gIDs7Ci0KLXNnaSkKLSAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0gICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKLSAgZWxzZQotICAgICIkQCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKLSAgZmkKLSAgc3RhdD0kPwotICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSAgZWxzZQotICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgICBleGl0ICRzdGF0Ci0gIGZpCi0gIHJtIC1mICIkZGVwZmlsZSIKLQotICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKLSAgICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotCi0gICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQotICAgICMgY2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29uJ3QgaGFuZGxlCi0gICAgIyBsaW5lcyB3aXRoIG1vcmUgdGhhbiBhIGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCi0gICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKLSAgICAjIHRoZSBJUklYIGNjIGFkZHMgY29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2YgdGhlCi0gICAgIyBkZXBlbmRlbmN5IGxpbmUuCi0gICAgdHIgJyAnICcKLScgPCAiJHRtcGRlcGZpbGUiIFwKLSAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCi0gICAgdHIgJwotJyAnICcgPj4gJGRlcGZpbGUKLSAgICBlY2hvID4+ICRkZXBmaWxlCi0KLSAgICAjIFRoZSBzZWNvbmQgcGFzcyBnZW5lcmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KLSAgICB0ciAnICcgJwotJyA8ICIkdG1wZGVwZmlsZSIgXAotICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKLSAgID4+ICRkZXBmaWxlCi0gIGVsc2UKLSAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAotICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQotICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCi0gICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSAgZmkKLSAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICA7OwotCi1haXgpCi0gICMgVGhlIEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMKLSAgIyBpbiBhIC51IGZpbGUuICBJbiBvbGRlciB2ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUKLSAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQotICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgotICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNlcy4KLSAgc3RyaXBwZWQ9YGVjaG8gIiRvYmplY3QiIHwgc2VkICdzL1woLipcKVwuLiokL1wxLydgCi0gIHRtcGRlcGZpbGU9IiRzdHJpcHBlZC51IgotICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSAgICAiJEAiIC1XYywtTQotICBlbHNlCi0gICAgIiRAIiAtTQotICBmaQotICBzdGF0PSQ/Ci0KLSAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuIDoKLSAgZWxzZQotICAgIHN0cmlwcGVkPWBlY2hvICIkc3RyaXBwZWQiIHwgc2VkICdzLF4uKi8sLCdgCi0gICAgdG1wZGVwZmlsZT0iJHN0cmlwcGVkLnUiCi0gIGZpCi0KLSAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0gIGVsc2UKLSAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gICAgZXhpdCAkc3RhdAotICBmaQotCi0gIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotICAgIG91dG5hbWU9IiRzdHJpcHBlZC5vIgotICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgotICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCi0gICAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgotICAgIHNlZCAtZSAicyxeJG91dG5hbWU6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSAgICBzZWQgLWUgInMsXiRvdXRuYW1lOiBcKC4qXCkkLFwxOiwiIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0gIGVsc2UKLSAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAotICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQotICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCi0gICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSAgZmkKLSAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICA7OwotCi1pY2MpCi0gICMgSW50ZWwncyBDIGNvbXBpbGVyIHVuZGVyc3RhbmRzIGAtTUQgLU1GIGZpbGUnLiAgSG93ZXZlciBvbgotICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIvZm9vLmMKLSAgIyBJQ0MgNy4wIHdpbGwgZmlsbCBmb28uZCB3aXRoIHNvbWV0aGluZyBsaWtlCi0gICMgICAgZm9vLm86IHN1Yi9mb28uYwotICAjICAgIGZvby5vOiBzdWIvZm9vLmgKLSAgIyB3aGljaCBpcyB3cm9uZy4gIFdlIHdhbnQ6Ci0gICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmMKLSAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAotICAjICAgIHN1Yi9mb28uYzoKLSAgIyAgICBzdWIvZm9vLmg6Ci0gICMgSUNDIDcuMSB3aWxsIG91dHB1dAotICAjICAgIGZvby5vOiBzdWIvZm9vLmMgc3ViL2Zvby5oCi0gICMgYW5kIHdpbGwgd3JhcCBsb25nIGxpbmVzIHVzaW5nIFwgOgotICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKLSAgIyAgICAgc3ViL2Zvby5oIC4uLiBcCi0gICMgICAgIC4uLgotCi0gICIkQCIgLU1EIC1NRiAiJHRtcGRlcGZpbGUiCi0gIHN0YXQ9JD8KLSAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0gIGVsc2UKLSAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gICAgZXhpdCAkc3RhdAotICBmaQotICBybSAtZiAiJGRlcGZpbGUiCi0gICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAotICAjIG9yIGBmb28ubzogZGVwMS5oIGRlcDIuaCBcJywgb3IgYCBkZXAzLmggZGVwNC5oIFwnLgotICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bwotICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCi0gIHNlZCAicyxeW146XSo6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSAgIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgotICAjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0gIHNlZCAncyxeW146XSo6IFwoLipcKSQsXDEsO3MvXlxcJC8vOy9eJC9kOy86JC9kJyA8ICIkdG1wZGVwZmlsZSIgfAotICAgIHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gIDs7Ci0KLXRydTY0KQotICAgIyBUaGUgVHJ1NjQgY29tcGlsZXIgdXNlcyAtTUQgdG8gZ2VuZXJhdGUgZGVwZW5kZW5jaWVzIGFzIGEgc2lkZQotICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgotICAgIyBBdCBsZWFzdCBvbiBBbHBoYS9SZWRoYXQgNi4xLCBDb21wYXEgQ0NDIFY2LjItNTA0IHNlZW1zIHRvIHB1dAotICAgIyBkZXBlbmRlbmNpZXMgaW4gYGZvby5kJyBpbnN0ZWFkLCBzbyB3ZSBjaGVjayBmb3IgdGhhdCB0b28uCi0gICAjIFN1YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCi0gICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAotICAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9Ci0gICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCi0KLSAgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotICAgICAgdG1wZGVwZmlsZTE9IiRkaXIubGlicy8kYmFzZS5sby5kIgotICAgICAgdG1wZGVwZmlsZTI9IiRkaXIubGlicy8kYmFzZS5kIgotICAgICAgIiRAIiAtV2MsLU1ECi0gICBlbHNlCi0gICAgICB0bXBkZXBmaWxlMT0iJGRpciRiYXNlLm8uZCIKLSAgICAgIHRtcGRlcGZpbGUyPSIkZGlyJGJhc2UuZCIKLSAgICAgICIkQCIgLU1ECi0gICBmaQotCi0gICBzdGF0PSQ/Ci0gICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSAgIGVsc2UKLSAgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCi0gICAgICBleGl0ICRzdGF0Ci0gICBmaQotCi0gICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZTEiOyB0aGVuCi0gICAgICB0bXBkZXBmaWxlPSIkdG1wZGVwZmlsZTEiCi0gICBlbHNlCi0gICAgICB0bXBkZXBmaWxlPSIkdG1wZGVwZmlsZTIiCi0gICBmaQotICAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCi0gICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotICAgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgotICAgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0gICBlbHNlCi0gICAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotICAgZmkKLSAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgIDs7Ci0KLSNub3NpZGVlZmZlY3QpCi0gICMgVGhpcyBjb21tZW50IGFib3ZlIGlzIHVzZWQgYnkgYXV0b21ha2UgdG8gdGVsbCBzaWRlLWVmZmVjdAotICAjIGRlcGVuZGVuY3kgdHJhY2tpbmcgbWVjaGFuaXNtcyBmcm9tIHNsb3dlciBvbmVzLgotCi1kYXNobXN0ZG91dCkKLSAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0gICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCi0gICIkQCIgfHwgZXhpdCAkPwotCi0gICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCi0gIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotICAgIHdoaWxlIHRlc3QgJDEgIT0gJy0tbW9kZT1jb21waWxlJzsgZG8KLSAgICAgIHNoaWZ0Ci0gICAgZG9uZQotICAgIHNoaWZ0Ci0gIGZpCi0KLSAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgotICBJRlM9IiAiCi0gIGZvciBhcmcKLSAgZG8KLSAgICBjYXNlICRhcmcgaW4KLSAgICAtbykKLSAgICAgIHNoaWZ0Ci0gICAgICA7OwotICAgICRvYmplY3QpCi0gICAgICBzaGlmdAotICAgICAgOzsKLSAgICAqKQotICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciCi0gICAgICBzaGlmdCAjIGZub3JkCi0gICAgICBzaGlmdCAjICRhcmcKLSAgICAgIDs7Ci0gICAgZXNhYwotICBkb25lCi0KLSAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCi0gICMgUmVxdWlyZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKLSAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBUaGlzIGlzIHRvIGNvcGUgd2l0aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgotICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgotICAiJEAiICRkYXNobWZsYWcgfAotICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1bXjpdKlw6WyAgICBdKjonIiRvYmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgotICBybSAtZiAiJGRlcGZpbGUiCi0gIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0gIHRyICcgJyAnCi0nIDwgIiR0bXBkZXBmaWxlIiB8IFwKLSMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0jIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgotICBybSAtZiAiJHRtcGRlcGZpbGUiCi0gIDs7Ci0KLWRhc2hYbXN0ZG91dCkKLSAgIyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBlbmQubTQuICBJdCBpcyBuZXZlciBhY3R1YWxseQotICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KLSAgZXhpdCAxCi0gIDs7Ci0KLW1ha2VkZXBlbmQpCi0gICIkQCIgfHwgZXhpdCAkPwotICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCi0gIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotICAgIHdoaWxlIHRlc3QgJDEgIT0gJy0tbW9kZT1jb21waWxlJzsgZG8KLSAgICAgIHNoaWZ0Ci0gICAgZG9uZQotICAgIHNoaWZ0Ci0gIGZpCi0gICMgWCBtYWtlZGVwZW5kCi0gIHNoaWZ0Ci0gIGNsZWFyZWQ9bm8KLSAgZm9yIGFyZyBpbiAiJEAiOyBkbwotICAgIGNhc2UgJGNsZWFyZWQgaW4KLSAgICBubykKLSAgICAgIHNldCAiIjsgc2hpZnQKLSAgICAgIGNsZWFyZWQ9eWVzIDs7Ci0gICAgZXNhYwotICAgIGNhc2UgIiRhcmciIGluCi0gICAgLUQqfC1JKikKLSAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKLSAgICAjIFN0cmlwIGFueSBvcHRpb24gdGhhdCBtYWtlZGVwZW5kIG1heSBub3QgdW5kZXJzdGFuZC4gIFJlbW92ZQotICAgICMgdGhlIG9iamVjdCB0b28sIG90aGVyd2lzZSBtYWtlZGVwZW5kIHdpbGwgcGFyc2UgaXQgYXMgYSBzb3VyY2UgZmlsZS4KLSAgICAtKnwkb2JqZWN0KQotICAgICAgOzsKLSAgICAqKQotICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotICAgIGVzYWMKLSAgZG9uZQotICBvYmpfc3VmZml4PSJgZWNobyAkb2JqZWN0IHwgc2VkICdzL14uKlwuLy4vJ2AiCi0gIHRvdWNoICIkdG1wZGVwZmlsZSIKLSAgJHtNQUtFREVQRU5ELW1ha2VkZXBlbmR9IC1vIiRvYmpfc3VmZml4IiAtZiIkdG1wZGVwZmlsZSIgIiRAIgotICBybSAtZiAiJGRlcGZpbGUiCi0gIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0gIHNlZCAnMSwyZCcgIiR0bXBkZXBmaWxlIiB8IHRyICcgJyAnCi0nIHwgXAotIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCi0gICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0gIHJtIC1mICIkdG1wZGVwZmlsZSIgIiR0bXBkZXBmaWxlIi5iYWsKLSAgOzsKLQotY3BwKQotICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKLSAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KLSAgIiRAIiB8fCBleGl0ICQ/Ci0KLSAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0gICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbwotICAgICAgc2hpZnQKLSAgICBkb25lCi0gICAgc2hpZnQKLSAgZmkKLQotICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0gIElGUz0iICIKLSAgZm9yIGFyZwotICBkbwotICAgIGNhc2UgJGFyZyBpbgotICAgIC1vKQotICAgICAgc2hpZnQKLSAgICAgIDs7Ci0gICAgJG9iamVjdCkKLSAgICAgIHNoaWZ0Ci0gICAgICA7OwotICAgICopCi0gICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSAgICAgIHNoaWZ0ICMgZm5vcmQKLSAgICAgIHNoaWZ0ICMgJGFyZwotICAgICAgOzsKLSAgICBlc2FjCi0gIGRvbmUKLQotICAiJEAiIC1FIHwKLSAgICBzZWQgLW4gJy9eIyBbMC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgfAotICAgIHNlZCAnJCBzOiBcXCQ6OicgPiAiJHRtcGRlcGZpbGUiCi0gIHJtIC1mICIkZGVwZmlsZSIKLSAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKLSAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0gIHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0gIHJtIC1mICIkdG1wZGVwZmlsZSIKLSAgOzsKLQotbXN2aXN1YWxjcHApCi0gICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9mIC1vLAotICAjIGJlY2F1c2Ugd2UgbXVzdCB1c2UgLW8gd2hlbiBydW5uaW5nIGxpYnRvb2wuCi0gICIkQCIgfHwgZXhpdCAkPwotICBJRlM9IiAiCi0gIGZvciBhcmcKLSAgZG8KLSAgICBjYXNlICIkYXJnIiBpbgotICAgICItR20ifCIvR20ifCItR2kifCIvR2kifCItWkkifCIvWkkiKQotCXNldCBmbm9yZCAiJEAiCi0Jc2hpZnQKLQlzaGlmdAotCTs7Ci0gICAgKikKLQlzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLQlzaGlmdAotCXNoaWZ0Ci0JOzsKLSAgICBlc2FjCi0gIGRvbmUKLSAgIiRAIiAtRSB8Ci0gIHNlZCAtbiAnL14jbGluZSBbMC05XVswLTldKiAiXChbXiJdKlwpIi8gczo6ZWNobyAiYGN5Z3BhdGggLXUgXFwiXDFcXCJgIjpwJyB8IHNvcnQgfCB1bmlxID4gIiR0bXBkZXBmaWxlIgotICBybSAtZiAiJGRlcGZpbGUiCi0gIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0gIC4gIiR0bXBkZXBmaWxlIiB8IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRkZXBmaWxlIgotICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCi0gIC4gIiR0bXBkZXBmaWxlIiB8IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVwZmlsZSIKLSAgcm0gLWYgIiR0bXBkZXBmaWxlIgotICA7OwotCi1ub25lKQotICBleGVjICIkQCIKLSAgOzsKLQotKikKLSAgZWNobyAiVW5rbm93biBkZXBtb2RlICRkZXBtb2RlIiAxPiYyCi0gIGV4aXQgMQotICA7OwotZXNhYwotCi1leGl0IDAKLQotIyBMb2NhbCBWYXJpYWJsZXM6Ci0jIG1vZGU6IHNoZWxsLXNjcmlwdAotIyBzaC1pbmRlbnRhdGlvbjogMgotIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCi0jIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0jIHRpbWUtc3RhbXAtZW5kOiAiJCIKLSMgRW5kOgpkaWZmIC0tZ2l0IGEvZGVzYy5jIGIvZGVzYy5jCmluZGV4IGE3NjA3OGUuLjc5MGIxMGIgMTAwNjQ0Ci0tLSBhL2Rlc2MuYworKysgYi9kZXNjLmMKQEAgLTI3LDcgKzI3LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IGRlc2MuYyx2IDEuMjIgMjAwNS8wNi8wMSAxOToyMjowNyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMTQ4LDYgKzE0OCwxOCBAQAogI2lmZGVmIEZfVU5TSEFSRQogCXsgRl9VTlNIQVJFLAkiRl9VTlNIQVJFIgl9LAogI2VuZGlmCisjaWZkZWYgRl9TRVRMRUFTRQorCXsgRl9TRVRMRUFTRSwJIkZfU0VUTEVBU0UiCX0sCisjZW5kaWYKKyNpZmRlZiBGX0dFVExFQVNFCisJeyBGX0dFVExFQVNFLAkiRl9HRVRMRUFTRSIJfSwKKyNlbmRpZgorI2lmZGVmIEZfTk9USUZZCisJeyBGX05PVElGWSwJIkZfTk9USUZZIgl9LAorI2VuZGlmCisjaWZkZWYgRl9EVVBGRF9DTE9FWEVDCisJeyBGX0RVUEZEX0NMT0VYRUMsIkZfRFVQRkRfQ0xPRVhFQyJ9LAorI2VuZGlmCiAJeyAwLAkJTlVMTAkJfSwKIH07CiAKQEAgLTE4Myw2ICsxOTUsMzMgQEAKIAl7IDAsCQlOVUxMCQl9LAogfTsKIAorI2lmZGVmIEZfTk9USUZZCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbm90aWZ5ZmxhZ3NbXSA9IHsKKyNpZmRlZiBETl9BQ0NFU1MKKwl7IEROX0FDQ0VTUywJIkROX0FDQ0VTUyIJfSwKKyNlbmRpZgorI2lmZGVmIEROX01PRElGWQorCXsgRE5fTU9ESUZZLAkiRE5fTU9ESUZZIgl9LAorI2VuZGlmCisjaWZkZWYgRE5fQ1JFQVRFCisJeyBETl9DUkVBVEUsCSJETl9DUkVBVEUiCX0sCisjZW5kaWYKKyNpZmRlZiBETl9ERUxFVEUKKwl7IEROX0RFTEVURSwJIkROX0RFTEVURSIJfSwKKyNlbmRpZgorI2lmZGVmIEROX1JFTkFNRQorCXsgRE5fUkVOQU1FLAkiRE5fUkVOQU1FIgl9LAorI2VuZGlmCisjaWZkZWYgRE5fQVRUUklCCisJeyBETl9BVFRSSUIsCSJETl9BVFRSSUIiCX0sCisjZW5kaWYKKyNpZmRlZiBETl9NVUxUSVNIT1QKKwl7IEROX01VTFRJU0hPVCwJIkROX01VTFRJU0hPVCIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworI2VuZGlmCisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3aGVuY2VbXSA9IHsKIAl7IFNFRUtfU0VULAkiU0VFS19TRVQiCX0sCiAJeyBTRUVLX0NVUiwJIlNFRUtfQ1VSIgl9LApAQCAtMTkzLDE2ICsyMzIsNDMgQEAKICNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKIC8qIGZjbnRsL2xvY2tmICovCiBzdGF0aWMgdm9pZAotcHJpbnRmbG9jayh0Y3AsIGFkZHIsIGdldGxrKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGdldGxrOworcHJpbnRmbG9jayhzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgaW50IGdldGxrKQogewogCXN0cnVjdCBmbG9jayBmbDsKIAotCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZmbCkgPCAwKSB7Ci0JCXRwcmludGYoInsuLi59Iik7Ci0JCXJldHVybjsKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwlpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gIT0gc2l6ZW9mKGZsLmxfc3RhcnQpKSB7CisJCWlmIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0KSB7CisJCQkvKiAzMi1iaXQgeDg2IGFwcCBvbiB4ODZfNjQgYW5kIHNpbWlsYXIgY2FzZXMgKi8KKwkJCXN0cnVjdCB7CisJCQkJc2hvcnQgaW50IGxfdHlwZTsKKwkJCQlzaG9ydCBpbnQgbF93aGVuY2U7CisJCQkJaW50MzJfdCBsX3N0YXJ0OyAvKiBvZmZfdCAqLworCQkJCWludDMyX3QgbF9sZW47IC8qIG9mZl90ICovCisJCQkJaW50MzJfdCBsX3BpZDsgLyogcGlkX3QgKi8KKwkJCX0gZmwzMjsKKwkJCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZmbDMyKSA8IDApIHsKKwkJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQkJCXJldHVybjsKKwkJCX0KKwkJCWZsLmxfdHlwZSA9IGZsMzIubF90eXBlOworCQkJZmwubF93aGVuY2UgPSBmbDMyLmxfd2hlbmNlOworCQkJZmwubF9zdGFydCA9IGZsMzIubF9zdGFydDsKKwkJCWZsLmxfbGVuID0gZmwzMi5sX2xlbjsKKwkJCWZsLmxfcGlkID0gZmwzMi5sX3BpZDsKKwkJfSBlbHNlIHsKKwkJCS8qIGxldCBwZW9wbGUga25vdyB3ZSBoYXZlIGEgcHJvYmxlbSBoZXJlICovCisJCQl0cHJpbnRmKCJ7IDxkZWNvZGUgZXJyb3I6IHVuc3VwcG9ydGVkIHdvcmRzaXplICVkPiB9IiwKKwkJCQlwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSk7CisJCQlyZXR1cm47CisJCX0KKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJmZsKSA8IDApIHsKKwkJCXRwcmludGYoInsuLi59Iik7CisJCQlyZXR1cm47CisJCX0KIAl9CiAJdHByaW50Zigie3R5cGU9Iik7CiAJcHJpbnR4dmFsKGxvY2tmY21kcywgZmwubF90eXBlLCAiRl8/Pz8iKTsKQEAgLTIxOSwxMCArMjg1LDcgQEAKICNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCiAvKiBmY250bC9sb2NrZiAqLwogc3RhdGljIHZvaWQKLXByaW50ZmxvY2s2NCh0Y3AsIGFkZHIsIGdldGxrKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGdldGxrOworcHJpbnRmbG9jazY0KHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCBpbnQgZ2V0bGspCiB7CiAJc3RydWN0IGZsb2NrNjQgZmw7CiAKQEAgLTI0MiwzOCArMzA1LDEyIEBACiB9CiAjZW5kaWYKIAotc3RhdGljIGNoYXIgKgotc3ByaW50ZmxhZ3MoeGxhdCwgZmxhZ3MpCi1jb25zdCBzdHJ1Y3QgeGxhdCAqeGxhdDsKLWludCBmbGFnczsKLXsKLQlzdGF0aWMgY2hhciBvdXRzdHJbMTAyNF07Ci0JY2hhciAqc2VwOwotCi0Jc3RyY3B5KG91dHN0ciwgImZsYWdzICIpOwotCXNlcCA9ICIiOwotCWZvciAoOyB4bGF0LT5zdHI7IHhsYXQrKykgewotCQlpZiAoKGZsYWdzICYgeGxhdC0+dmFsKSA9PSB4bGF0LT52YWwpIHsKLQkJCXNwcmludGYob3V0c3RyICsgc3RybGVuKG91dHN0ciksCi0JCQkJIiVzJXMiLCBzZXAsIHhsYXQtPnN0cik7Ci0JCQlzZXAgPSAifCI7Ci0JCQlmbGFncyAmPSB+eGxhdC0+dmFsOwotCQl9Ci0JfQotCWlmIChmbGFncykKLQkJc3ByaW50ZihvdXRzdHIgKyBzdHJsZW4ob3V0c3RyKSwKLQkJCSIlcyUjeCIsIHNlcCwgZmxhZ3MpOwotCXJldHVybiBvdXRzdHI7Ci19Ci0KIGludAotc3lzX2ZjbnRsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mY250bChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0JZXh0ZXJuIGNvbnN0IHN0cnVjdCB4bGF0IG9wZW5tb2Rlc1tdOwotCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCQlwcmludHh2YWwoZmNudGxjbWRzLCB0Y3AtPnVfYXJnWzFdLCAiRl8/Pz8iKTsKIAkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CiAJCWNhc2UgRl9TRVRGRDoKQEAgLTI4MSwxMSArMzE4LDE0IEBACiAJCQlwcmludGZsYWdzKGZkZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJGRF8/Pz8iKTsKIAkJCWJyZWFrOwogCQljYXNlIEZfU0VUT1dOOiBjYXNlIEZfRFVQRkQ6CisjaWZkZWYgRl9EVVBGRF9DTE9FWEVDCisJCWNhc2UgRl9EVVBGRF9DTE9FWEVDOgorI2VuZGlmCiAJCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbMl0pOwogCQkJYnJlYWs7CiAJCWNhc2UgRl9TRVRGTDoKIAkJCXRwcmludGYoIiwgIik7Ci0JCQlwcmludGZsYWdzKG9wZW5tb2RlcywgdGNwLT51X2FyZ1syXSArIDEsICJPXz8/PyIpOworCQkJdHByaW50X29wZW5fbW9kZXModGNwLT51X2FyZ1syXSk7CiAJCQlicmVhazsKIAkJY2FzZSBGX1NFVExLOiBjYXNlIEZfU0VUTEtXOgogI2lmZGVmIEZfRlJFRVNQCkBAIC0zMDAsMzIgKzM0MCw1NSBAQAogI2VuZGlmCiAJCS8qIExpbnV4IGdsaWJjIGRlZmluZXMgU0VUTEs2NCBhcyBTRVRMSywKIAkJICAgZXZlbiB0aG91Z2ggdGhlIGtlcm5lbCBoYXMgZGlmZmVyZW50IHZhbHVlcyAtIGFzIGRvZXMgU29sYXJpcy4gKi8KLSNpZiBkZWZpbmVkKEZfU0VUTEs2NCkgJiYgRl9TRVRMSzY0KzAhPUZfU0VUTEsKKyNpZiBkZWZpbmVkKEZfU0VUTEs2NCkgJiYgRl9TRVRMSzY0ICsgMCAhPSBGX1NFVExLCiAJCWNhc2UgRl9TRVRMSzY0OgogI2VuZGlmCi0jaWYgZGVmaW5lZChGX1NFVExLVzY0KSAmJiBGX1NFVExLVzY0KzAhPUZfU0VUTEtXCisjaWYgZGVmaW5lZChGX1NFVExLVzY0KSAmJiBGX1NFVExLVzY0ICsgMCAhPSBGX1NFVExLVwogCQljYXNlIEZfU0VUTEtXNjQ6CiAjZW5kaWYKIAkJCXRwcmludGYoIiwgIik7CiAJCQlwcmludGZsb2NrNjQodGNwLCB0Y3AtPnVfYXJnWzJdLCAwKTsKIAkJCWJyZWFrOwogI2VuZGlmCi0gCQl9CisjaWZkZWYgRl9OT1RJRlkKKwkJY2FzZSBGX05PVElGWToKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKG5vdGlmeWZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiRE5fPz8/Iik7CisJCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIEZfU0VUTEVBU0UKKwkJY2FzZSBGX1NFVExFQVNFOgorCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50eHZhbChsb2NrZmNtZHMsIHRjcC0+dV9hcmdbMl0sICJGXz8/PyIpOworCQkJYnJlYWs7CisjZW5kaWYKKwkJfQogCX0KIAllbHNlIHsKIAkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CiAJCWNhc2UgRl9EVVBGRDoKKyNpZmRlZiBGX0RVUEZEX0NMT0VYRUMKKwkJY2FzZSBGX0RVUEZEX0NMT0VYRUM6CisjZW5kaWYKIAkJY2FzZSBGX1NFVEZEOiBjYXNlIEZfU0VURkw6CiAJCWNhc2UgRl9TRVRMSzogY2FzZSBGX1NFVExLVzoKIAkJY2FzZSBGX1NFVE9XTjogY2FzZSBGX0dFVE9XTjoKKyNpZmRlZiBGX05PVElGWQorCQljYXNlIEZfTk9USUZZOgorI2VuZGlmCisjaWZkZWYgRl9TRVRMRUFTRQorCQljYXNlIEZfU0VUTEVBU0U6CisjZW5kaWYKIAkJCWJyZWFrOwogCQljYXNlIEZfR0VURkQ6Ci0JCQlpZiAodGNwLT51X3J2YWwgPT0gMCkKKwkJCWlmIChzeXNlcnJvcih0Y3ApIHx8IHRjcC0+dV9ydmFsID09IDApCiAJCQkJcmV0dXJuIDA7Ci0JCQl0Y3AtPmF1eHN0ciA9IHNwcmludGZsYWdzKGZkZmxhZ3MsIHRjcC0+dV9ydmFsKTsKKwkJCXRjcC0+YXV4c3RyID0gc3ByaW50ZmxhZ3MoImZsYWdzICIsIGZkZmxhZ3MsIHRjcC0+dV9ydmFsKTsKIAkJCXJldHVybiBSVkFMX0hFWHxSVkFMX1NUUjsKIAkJY2FzZSBGX0dFVEZMOgotCQkJdGNwLT5hdXhzdHIgPSBzcHJpbnRmbGFncyhvcGVubW9kZXMsIHRjcC0+dV9ydmFsICsgMSk7CisJCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCQlyZXR1cm4gMDsKKwkJCXRjcC0+YXV4c3RyID0gc3ByaW50X29wZW5fbW9kZXModGNwLT51X3J2YWwpOwogCQkJcmV0dXJuIFJWQUxfSEVYfFJWQUxfU1RSOwogCQljYXNlIEZfR0VUTEs6CiAJCQl0cHJpbnRmKCIsICIpOwpAQCAtMzM5LDcgKzQwMiwxNCBAQAogCQkJcHJpbnRmbG9jazY0KHRjcCwgdGNwLT51X2FyZ1syXSwgMSk7CiAJCQlicmVhazsKICNlbmRpZgotIAkJZGVmYXVsdDoKKyNpZmRlZiBGX0dFVExFQVNFCisJCWNhc2UgRl9HRVRMRUFTRToKKwkJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJCXJldHVybiAwOworCQkJdGNwLT5hdXhzdHIgPSB4bG9va3VwKGxvY2tmY21kcywgdGNwLT51X3J2YWwpOworCQkJcmV0dXJuIFJWQUxfSEVYfFJWQUxfU1RSOworI2VuZGlmCisJCWRlZmF1bHQ6CiAJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKIAkJCWJyZWFrOwogCQl9CkBAIC0zNTAsMTEgKzQyMCwxMSBAQAogI2lmZGVmIExPQ0tfU0gKIAogaW50Ci1zeXNfZmxvY2sodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2Zsb2NrKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CiAJCXByaW50ZmxhZ3MoZmxvY2tjbWRzLCB0Y3AtPnVfYXJnWzFdLCAiTE9DS18/Pz8iKTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0zNjIsNjEgKzQzMiw2OSBAQAogI2VuZGlmIC8qIExPQ0tfU0ggKi8KIAogaW50Ci1zeXNfY2xvc2UodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2Nsb3NlKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfZHVwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19kdXAoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CiAJfQogCXJldHVybiAwOwogfQogCi1pbnQKLXN5c19kdXAyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZ2V0ZHRhYmxlc2l6ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQKLWRlY29kZV9zZWxlY3QodGNwLCBhcmdzLCBiaXRuZXNzKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyAqYXJnczsKLWludCBiaXRuZXNzOworZG9fZHVwMihzdHJ1Y3QgdGNiICp0Y3AsIGludCBmbGFnc19hcmcpCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCWlmIChmbGFnc19hcmcgPj0gMCkgeworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxhZ3Mob3Blbl9tb2RlX2ZsYWdzLCB0Y3AtPnVfYXJnW2ZsYWdzX2FyZ10sICJPXz8/PyIpOworCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19kdXAyKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZG9fZHVwMih0Y3AsIC0xKTsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19kdXAzKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZG9fZHVwMih0Y3AsIDIpOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKEZSRUVCU0QpIHx8IGRlZmluZWQoU1VOT1M0KQoraW50CitzeXNfZ2V0ZHRhYmxlc2l6ZShzdHJ1Y3QgdGNiICp0Y3ApCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogQUxQSEEgfHwgRlJFRUJTRCB8fCBTVU5PUzQgKi8KKworc3RhdGljIGludAorZGVjb2RlX3NlbGVjdChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgKmFyZ3MsIGVudW0gYml0bmVzc190IGJpdG5lc3MpCiB7CiAJaW50IGksIGosIG5mZHM7CiAJdW5zaWduZWQgaW50IGZkc2l6ZSA9ICgoKChhcmdzWzBdICsgNykgLyA4KSArIHNpemVvZihsb25nKSAtIDEpCiAJCQkgICAgICAgJiAtc2l6ZW9mKGxvbmcpKTsKIAlmZF9zZXQgKmZkczsKLQlzdHJ1Y3QgdGltZXZhbCB0djsKLSNpZmRlZiBBTFBIQQotCXN0cnVjdCB0aW1ldmFsMzIgewotCQl1bnNpZ25lZCB0dl9zZWM7Ci0JCXVuc2lnbmVkIHR2X3VzZWM7Ci0JfSAqdHYzMjsKLSNlbmRpZgogCXN0YXRpYyBjaGFyIG91dHN0clsxMDI0XTsKLQljaGFyICpzZXA7CisJY29uc3QgY2hhciAqc2VwOwogCWxvbmcgYXJnOwogCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKQEAgLTQ0MiwzNCArNTIwLDIxIEBACiAJCQl0cHJpbnRmKCIsIFsiKTsKIAkJCWZvciAoaiA9IDAsIHNlcCA9ICIiOyBqIDwgbmZkczsgaisrKSB7CiAJCQkJaWYgKEZEX0lTU0VUKGosIGZkcykpIHsKLQkJCQkJdHByaW50ZigiJXMldSIsIHNlcCwgaik7CisJCQkJCXRwcmludGYoIiVzIiwgc2VwKTsKKwkJCQkJcHJpbnRmZCh0Y3AsIGopOwogCQkJCQlzZXAgPSAiICI7CiAJCQkJfQogCQkJfQogCQkJdHByaW50ZigiXSIpOwogCQl9CiAJCWZyZWUoZmRzKTsKLQkJaWYgKCFhcmdzWzRdKQotCQkJdHByaW50ZigiLCBOVUxMIik7Ci0JCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCi0JCQl0cHJpbnRmKCIsICUjbHgiLCBhcmdzWzRdKTsKLQkJZWxzZSBpZiAodW1vdmUodGNwLCBhcmdzWzRdLCAmdHYpIDwgMCkKLQkJCXRwcmludGYoIiwgey4uLn0iKTsKLQkJZWxzZSB7Ci0jaWZkZWYgQUxQSEEKLQkJCWlmIChiaXRuZXNzKSB7Ci0JCQkJdHYzMj0oc3RydWN0IHRpbWV2YWwzMiopJnR2OwotCQkJCXRwcmludGYoIiwgeyV1LCAldX0iLCB0djMyLT50dl9zZWMsIHR2MzItPnR2X3VzZWMpOwotCQkJfSBlbHNlCi0jZW5kaWYKLQkJCQl0cHJpbnRmKCIsIHslbHUsICVsdX0iLAotCQkJCQkobG9uZykgdHYudHZfc2VjLCAobG9uZykgdHYudHZfdXNlYyk7Ci0JCX0KKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR0dl9iaXRuZXNzKHRjcCwgYXJnc1s0XSwgYml0bmVzcywgMCk7CiAJfQogCWVsc2UKIAl7CiAJCXVuc2lnbmVkIGludCBjdW1sZW4gPSAwOwotCQljaGFyICpzZXAgPSAiIjsKKwkJY29uc3QgY2hhciAqc2VwID0gIiI7CiAKIAkJaWYgKHN5c2Vycm9yKHRjcCkpCiAJCQlyZXR1cm4gMDsKQEAgLTQ4Niw3ICs1NTEsNiBAQAogCQlvdXRzdHJbMF0gPSAnXDAnOwogCQlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAJCQlpbnQgZmlyc3QgPSAxOwotCQkJY2hhciBzdHJbMjBdOwogCiAJCQl0Y3AtPmF1eHN0ciA9IG91dHN0cjsKIAkJCWFyZyA9IGFyZ3NbaSsxXTsKQEAgLTQ5NSw2ICs1NTksOCBAQAogCQkJCWNvbnRpbnVlOwogCQkJZm9yIChqID0gMDsgaiA8IGFyZ3NbMF07IGorKykgewogCQkJCWlmIChGRF9JU1NFVChqLCBmZHMpKSB7CisJCQkJCWNoYXIgc3RyWzExICsgMyAqIHNpemVvZihpbnQpXTsKKwogCQkJCQlpZiAoZmlyc3QpIHsKIAkJCQkJCXNwcmludGYoc3RyLCAiJXMlcyBbJXUiLCBzZXAsCiAJCQkJCQkJaSA9PSAwID8gImluIiA6CkBAIC01MjAsMjIgKzU4NiwxMiBAQAogI2lmZGVmIExJTlVYCiAJCS8qIFRoaXMgY29udGFpbnMgbm8gdXNlZnVsIGluZm9ybWF0aW9uIG9uIFN1bk9TLiAgKi8KIAkJaWYgKGFyZ3NbNF0pIHsKLQkJCWNoYXIgc3RyWzY0XTsKKwkJCWNoYXIgc3RyWzEyOF07CiAKLQkJCWlmICh1bW92ZSh0Y3AsIGFyZ3NbNF0sICZ0dikgPj0gMCkgewotI2lmZGVmIEFMUEhBCi0JCQkJaWYgKGJpdG5lc3MpIHsKLQkJCQkJdHYzMj0oc3RydWN0IHRpbWV2YWwzMiopJnR2OwotCQkJCQlzcHJpbnRmKHN0ciwgIiVzbGVmdCB7JXUsICV1fSIsIHNlcCwKLQkJCQkJCXR2MzItPnR2X3NlYywgdHYzMi0+dHZfdXNlYyk7Ci0JCQkJfSBlbHNlCi0jZW5kaWYKLQkJCQkJc3ByaW50ZihzdHIsICIlc2xlZnQgeyVsdSwgJWx1fSIsIHNlcCwKLQkJCQkJCShsb25nKSB0di50dl9zZWMsIChsb25nKSB0di50dl91c2VjKTsKLQotCQkJCWlmICgoY3VtbGVuICs9IHN0cmxlbihzdHIpKSA8IHNpemVvZihvdXRzdHIpKQotCQkJCQlzdHJjYXQob3V0c3RyLCBzdHIpOwotCQkJfQorCQkJc3ByaW50ZihzdHIsICIlc2xlZnQgIiwgc2VwKTsKKwkJCXNwcmludHR2KHRjcCwgYXJnc1s0XSwgYml0bmVzcywgc3RyICsgc3RybGVuKHN0cikpOworCQkJaWYgKChjdW1sZW4gKz0gc3RybGVuKHN0cikpIDwgc2l6ZW9mKG91dHN0cikpCisJCQkJc3RyY2F0KG91dHN0ciwgc3RyKTsKIAkJfQogI2VuZGlmIC8qIExJTlVYICovCiAJCXJldHVybiBSVkFMX1NUUjsKQEAgLTU0Niw4ICs2MDIsNyBAQAogI2lmZGVmIExJTlVYCiAKIGludAotc3lzX29sZHNlbGVjdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfb2xkc2VsZWN0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlsb25nIGFyZ3NbNV07CiAKQEAgLTU1NSwyMCArNjEwLDE5IEBACiAJCXRwcmludGYoIlsuLi5dIik7CiAJCXJldHVybiAwOwogCX0KLQlyZXR1cm4gZGVjb2RlX3NlbGVjdCh0Y3AsIGFyZ3MsIDApOworCXJldHVybiBkZWNvZGVfc2VsZWN0KHRjcCwgYXJncywgQklUTkVTU19DVVJSRU5UKTsKIH0KIAogI2lmZGVmIEFMUEhBCiBpbnQKLXN5c19vc2Zfc2VsZWN0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19vc2Zfc2VsZWN0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlsb25nICphcmdzID0gdGNwLT51X2FyZzsKLQlyZXR1cm4gZGVjb2RlX3NlbGVjdCh0Y3AsIGFyZ3MsIDEpOworCXJldHVybiBkZWNvZGVfc2VsZWN0KHRjcCwgYXJncywgQklUTkVTU18zMik7CiB9CiAjZW5kaWYKIAotc3RhdGljIHN0cnVjdCB4bGF0IGVwb2xsY3Rsc1tdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGVwb2xsY3Rsc1tdID0gewogI2lmZGVmIEVQT0xMX0NUTF9BREQKIAl7IEVQT0xMX0NUTF9BREQsCSJFUE9MTF9DVExfQUREIgl9LAogI2VuZGlmCkBAIC01ODEsNyArNjM1LDcgQEAKIAl7IDAsCQkJTlVMTAkJfQogfTsKIAotc3RhdGljIHN0cnVjdCB4bGF0IGVwb2xsZXZlbnRzW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgZXBvbGxldmVudHNbXSA9IHsKICNpZmRlZiBFUE9MTElOCiAJeyBFUE9MTElOLAkiRVBPTExJTiIJfSwKICNlbmRpZgpAQCAtNjIyLDE4ICs2NzYsMjQgQEAKIH07CiAKIGludAotc3lzX2Vwb2xsX2NyZWF0ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZXBvbGxfY3JlYXRlKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkKIAkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7CiAJcmV0dXJuIDA7CiB9CiAKK2ludAorc3lzX2Vwb2xsX2NyZWF0ZTEoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludGZsYWdzKG9wZW5fbW9kZV9mbGFncywgdGNwLT51X2FyZ1swXSwgIk9fPz8/Iik7CisJcmV0dXJuIDA7Cit9CisKICNpZmRlZiBIQVZFX1NZU19FUE9MTF9ICiBzdGF0aWMgdm9pZAotcHJpbnRfZXBvbGxfZXZlbnQoZXYpCi1zdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2OworcHJpbnRfZXBvbGxfZXZlbnQoc3RydWN0IGVwb2xsX2V2ZW50ICpldikKIHsKIAl0cHJpbnRmKCJ7Iik7CiAJcHJpbnRmbGFncyhlcG9sbGV2ZW50cywgZXYtPmV2ZW50cywgIkVQT0xMPz8/Iik7CkBAIC02NDUsMTMgKzcwNSwxNSBAQAogI2VuZGlmCiAKIGludAotc3lzX2Vwb2xsX2N0bCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZXBvbGxfY3RsKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotICAgICAgICAgICAgICAgIHByaW50eHZhbChlcG9sbGN0bHMsIHRjcC0+dV9hcmdbMV0sICJFUE9MTF9DVExfPz8/Iik7Ci0JCXRwcmludGYoIiwgJWxkLCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHh2YWwoZXBvbGxjdGxzLCB0Y3AtPnVfYXJnWzFdLCAiRVBPTExfQ1RMXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1syXSk7CisJCXRwcmludGYoIiwgIik7CiAJCWlmICh0Y3AtPnVfYXJnWzNdID09IDApCiAJCQl0cHJpbnRmKCJOVUxMIik7CiAJCWVsc2UgewpAQCAtNjY3LDEzICs3MjksMTMgQEAKIAlyZXR1cm4gMDsKIH0KIAotaW50Ci1zeXNfZXBvbGxfd2FpdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzdGF0aWMgdm9pZAorZXBvbGxfd2FpdF9jb21tb24oc3RydWN0IHRjYiAqdGNwKQogewotCWlmIChlbnRlcmluZyh0Y3ApKQotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCWVsc2UgeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgewogCQlpZiAoc3lzZXJyb3IodGNwKSkKIAkJCXRwcmludGYoIiVseCIsIHRjcC0+dV9hcmdbMV0pOwogCQllbHNlIGlmICh0Y3AtPnVfcnZhbCA9PSAwKQpAQCAtNzA2LDEyICs3NjgsMjggQEAKIAkJfQogCQl0cHJpbnRmKCIsICVsZCwgJWxkIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CiAJfQorfQorCitpbnQKK3N5c19lcG9sbF93YWl0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwllcG9sbF93YWl0X2NvbW1vbih0Y3ApOwogCXJldHVybiAwOwogfQogCiBpbnQKLXN5c19pb19zZXR1cCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZXBvbGxfcHdhaXQoc3RydWN0IHRjYiAqdGNwKQoreworCWVwb2xsX3dhaXRfY29tbW9uKHRjcCk7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQl0cHJpbnRmKCIsICIpOworCQlwcmludF9zaWdzZXQodGNwLCB0Y3AtPnVfYXJnWzRdLCAwKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2lvX3NldHVwKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkKIAkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTczMCw4ICs4MDgsNyBAQAogfQogCiBpbnQKLXN5c19pb19kZXN0cm95KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19pb19kZXN0cm95KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkKIAkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7CkBAIC03MzksOCArODE2LDcgQEAKIH0KIAogaW50Ci1zeXNfaW9fc3VibWl0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19pb19zdWJtaXQoc3RydWN0IHRjYiAqdGNwKQogewogCWxvbmcgbnI7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKQEAgLTc4Miw4ICs4NTgsNyBAQAogfQogCiBpbnQKLXN5c19pb19jYW5jZWwodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2lvX2NhbmNlbChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKICNpZmRlZiBIQVZFX0xJQkFJT19ICkBAIC04MDksNyArODg0LDcgQEAKIAkJCQl0cHJpbnRmKCJ7JXAsICVwLCAlbGQsICVsZH0iLAogCQkJCQlldmVudC5kYXRhLCBldmVudC5vYmosCiAJCQkJCWV2ZW50LnJlcywgZXZlbnQucmVzMik7Ci0JCQllbHNlIAorCQkJZWxzZQogI2VuZGlmCiAJCQkJdHByaW50Zigiey4uLn0iKTsKIAkJfQpAQCAtODE4LDggKzg5Myw3IEBACiB9CiAKIGludAotc3lzX2lvX2dldGV2ZW50cyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfaW9fZ2V0ZXZlbnRzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmKCIlbGQsICVsZCwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdLApAQCAtODUzLDI0ICs5MjcsNjQgQEAKICNlbmRpZgogCQl9CiAKLQkJaWYgKHRjcC0+dV9hcmdbNF0gPT0gMCkKLQkJCXRwcmludGYoIk5VTEwiKTsKLQkJZWxzZSB7Ci0JCQlzdHJ1Y3QgdGltZXNwZWMgdG87Ci0JCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmdG8pID09IDApCi0JCQkJdHByaW50ZigieyVsdSwgJWx1fSIsIHRvLnR2X3NlYywgdG8udHZfbnNlYyk7Ci0JCQllbHNlCi0JCQkJdHByaW50Zigiey4uLn0iKTsKLQkJfQorCQlwcmludF90aW1lc3BlYyh0Y3AsIHRjcC0+dV9hcmdbNF0pOwogCX0KIAlyZXR1cm4gMDsKIH0KICNlbmRpZiAvKiBMSU5VWCAqLwogCiBpbnQKLXN5c19zZWxlY3QodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3NlbGVjdChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0JbG9uZyAqYXJncyA9IHRjcC0+dV9hcmc7Ci0JcmV0dXJuIGRlY29kZV9zZWxlY3QodGNwLCBhcmdzLCAwKTsKKwlyZXR1cm4gZGVjb2RlX3NlbGVjdCh0Y3AsIHRjcC0+dV9hcmcsIEJJVE5FU1NfQ1VSUkVOVCk7CiB9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfcHNlbGVjdDYoc3RydWN0IHRjYiAqdGNwKQoreworCWludCByYyA9IGRlY29kZV9zZWxlY3QodGNwLCB0Y3AtPnVfYXJnLCBCSVRORVNTX0NVUlJFTlQpOworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXN0cnVjdCB7CisJCQl2b2lkICpzczsKKwkJCXVuc2lnbmVkIGxvbmcgbGVuOworCQl9IGRhdGE7CisJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNV0sICZkYXRhKSA8IDApCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzVdKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCIsIHsiKTsKKwkJCWlmIChkYXRhLmxlbiA8IHNpemVvZihsb25nKSkKKwkJCQl0cHJpbnRmKCIlI2x4IiwgKGxvbmcpZGF0YS5zcyk7CisJCQllbHNlCisJCQkJcHJpbnRfc2lnc2V0KHRjcCwgKGxvbmcpZGF0YS5zcywgMCk7CisJCQl0cHJpbnRmKCIsICVsdX0iLCBkYXRhLmxlbik7CisJCX0KKwl9CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50Citkb19ldmVudGZkKHN0cnVjdCB0Y2IgKnRjcCwgaW50IGZsYWdzX2FyZykKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKGZsYWdzX2FyZyA+PSAwKSB7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhvcGVuX21vZGVfZmxhZ3MsIHRjcC0+dV9hcmdbZmxhZ3NfYXJnXSwgIk9fPz8/Iik7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2V2ZW50ZmQoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkb19ldmVudGZkKHRjcCwgLTEpOworfQorCitpbnQKK3N5c19ldmVudGZkMihzdHJ1Y3QgdGNiICp0Y3ApCit7CisJcmV0dXJuIGRvX2V2ZW50ZmQodGNwLCAxKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZXJybm9lbnQuc2ggYi9lcnJub2VudC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE4ZmRhMC4uMDAwMDAwMAotLS0gYS9lcnJub2VudC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMhL2Jpbi9zaAotIyBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0jICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0jIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0jIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jCSRJZDogZXJybm9lbnQuc2gsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjI6MDkgd2ljaGVydCBFeHAgJAotCi1hd2sgJwotL14jZGVmaW5lWyAJXStFW0EtWjAtOV9dK1sgCV0rWzAtOV0rLyB7Ci0JZXJybm9bJDNdID0gJDIKLQlpZiAoJDMgPiBtYXgpCi0JCW1heCA9ICQzCi19Ci1FTkQgewotCWZvciAoaSA9IDA7IGkgPD0gbWF4OyBpKyspIHsKLQkJaWYgKCFlcnJub1tpXSkKLQkJCWVycm5vW2ldID0gIkVSUk5PXyIgaQotCQlwcmludGYgIlx0XCIlc1wiLCAvKiAlZCAqL1xuIiwgZXJybm9baV0sIGkKLQl9Ci19Ci0nICQqCmRpZmYgLS1naXQgYS9maWxlLmMgYi9maWxlLmMKaW5kZXggYjBmOTcxNS4uOTJlZmNmZSAxMDA2NDQKLS0tIGEvZmlsZS5jCisrKyBiL2ZpbGUuYwpAQCAtMSw1ICsxLDQgQEAKIC8qCi0jaWZkZWYgTElOVVgKICAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CiAgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CiAgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KQEAgLTI4LDIwICsyNywzNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogZmlsZS5jLHYgMS43NSAyMDA1LzA2LzA4IDIwOjQ1OjI4IHJvbGFuZCBFeHAgJAorICoJJElkJAogICovCiAKICNpbmNsdWRlICJkZWZzLmgiCiAKICNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpZiBkZWZpbmVkKExJTlVYKQotI2RlZmluZSBkaXJlbnQga2VybmVsX2RpcmVudAotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNkZWZpbmUgZGlyZW50NjQga2VybmVsX2RpcmVudDY0CisKKyNpZmRlZiBMSU5VWAorc3RydWN0IGtlcm5lbF9kaXJlbnQgeworCXVuc2lnbmVkIGxvbmcgICBkX2lubzsKKwl1bnNpZ25lZCBsb25nICAgZF9vZmY7CisJdW5zaWduZWQgc2hvcnQgIGRfcmVjbGVuOworCWNoYXIgICAgICAgICAgICBkX25hbWVbMV07Cit9OworI2Vsc2UKKyMgZGVmaW5lIGtlcm5lbF9kaXJlbnQgZGlyZW50CiAjZW5kaWYKKwogI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwogI2luY2x1ZGUgPGxpbnV4L2ZhZHZpc2UuaD4KIAorLy8gQU5EUk9JRDogRnJvbSBsaW51eC9kaXJlbnQuaAorCitzdHJ1Y3QgZGlyZW50NjQgeworIF9fdTY0IGRfaW5vOworIF9fczY0IGRfb2ZmOworIHVuc2lnbmVkIHNob3J0IGRfcmVjbGVuOworIHVuc2lnbmVkIGNoYXIgZF90eXBlOworIGNoYXIgZF9uYW1lWzI1Nl07Cit9OworCiAvLyBBTkRST0lEOiBGcm9tIGtlcm5lbF9oZWFkZXJzL2FzbS9zdGF0ZnMuaAogCiAvKgpAQCAtNjIsMTggKzc4LDcgQEAKICAgICAgICAgX191MzIgZl9mcnNpemU7CiAgICAgICAgIF9fdTMyIGZfc3BhcmVbNV07CiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsYWxpZ25lZCg0KSkpOwotCi0KLQotCiAjZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9kaXJlbnQuaD4KLSN1bmRlZiBkaXJlbnQKLSN1bmRlZiBkaXJlbnQ2NAotI2Vsc2UKLSNkZWZpbmUga2VybmVsX2RpcmVudCBkaXJlbnQKLSNlbmRpZgogCiAjaWZkZWYgTElOVVgKICMgIGlmZGVmIExJTlVYU1BBUkMKQEAgLTE5OCw2ICsyMDMsMTUgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2VuZGlmCiAKKyNpZiBfTEZTNjRfTEFSR0VGSUxFICYmIChkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKFNWUjQpKQorIyBpZmRlZiBIQVZFX0lOVFRZUEVTX0gKKyMgIGluY2x1ZGUgPGludHR5cGVzLmg+CisjIGVsc2UKKyMgIGRlZmluZSBQUklkNjQgImxsZCIKKyMgIGRlZmluZSBQUkl1NjQgImxsdSIKKyMgZW5kaWYKKyNlbmRpZgorCiAjaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKIC8qCiAgKiBVZ2x5IGhhY2tzIGZvciBzeXN0ZW1zIHRoYXQgaGF2ZSB0eXBlZGVmIGxvbmcgbG9uZyBvZmZfdApAQCAtMjMwLDIxICsyNDQsMjMgQEAKICNpbmNsdWRlIDx1c3RhdC5oPgogI2VuZGlmCiAKLS8qCi0gKiBUaGlzIGlzIGEgcmVhbGx5IGRpcnR5IHRyaWNrIGJ1dCBpdCBzaG91bGQgYWx3YXlzIHdvcmsuICBUcmFkaXRpb25hbAotICogVW5peCBzYXlzIHIvdy9ydyBhcmUgMC8xLzIsIHNvIHdlIG1ha2UgdGhlbSB0cnVlIGZsYWdzIDEvMi8zIGJ5Ci0gKiBhZGRpbmcgMS4gIEp1c3QgcmVtZW1iZXIgdG8gYWRkIDEgdG8gYW55IGFyZyBkZWNvZGVkIHdpdGggb3Blbm1vZGVzLgotICovCi1jb25zdCBzdHJ1Y3QgeGxhdCBvcGVubW9kZXNbXSA9IHsKLQl7IE9fUkRXUisxLAkiT19SRFdSIgl9LAotCXsgT19SRE9OTFkrMSwJIk9fUkRPTkxZIgl9LAotCXsgT19XUk9OTFkrMSwJIk9fV1JPTkxZIgl9LAotCXsgT19OT05CTE9DSywJIk9fTk9OQkxPQ0siCX0sCi0JeyBPX0FQUEVORCwJIk9fQVBQRU5EIgl9LAorY29uc3Qgc3RydWN0IHhsYXQgb3Blbl9hY2Nlc3NfbW9kZXNbXSA9IHsKKwl7IE9fUkRPTkxZLAkiT19SRE9OTFkiCX0sCisJeyBPX1dST05MWSwJIk9fV1JPTkxZIgl9LAorCXsgT19SRFdSLAkiT19SRFdSIgl9LAorI2lmZGVmIE9fQUNDTU9ERQorCXsgT19BQ0NNT0RFLAkiT19BQ0NNT0RFIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2NvbnN0IHN0cnVjdCB4bGF0IG9wZW5fbW9kZV9mbGFnc1tdID0gewogCXsgT19DUkVBVCwJIk9fQ1JFQVQiCX0sCi0JeyBPX1RSVU5DLAkiT19UUlVOQyIJfSwKIAl7IE9fRVhDTCwJIk9fRVhDTCIJfSwKIAl7IE9fTk9DVFRZLAkiT19OT0NUVFkiCX0sCisJeyBPX1RSVU5DLAkiT19UUlVOQyIJfSwKKwl7IE9fQVBQRU5ELAkiT19BUFBFTkQiCX0sCisJeyBPX05PTkJMT0NLLAkiT19OT05CTE9DSyIJfSwKICNpZmRlZiBPX1NZTkMKIAl7IE9fU1lOQywJIk9fU1lOQyIJfSwKICNlbmRpZgpAQCAtMjU3LDcgKzI3Myw3IEBACiAjaWZkZWYgT19SU1lOQwogCXsgT19SU1lOQywJIk9fUlNZTkMiCX0sCiAjZW5kaWYKLSNpZmRlZiBPX05ERUxBWQorI2lmIGRlZmluZWQoT19OREVMQVkpICYmIChPX05ERUxBWSAhPSBPX05PTkJMT0NLKQogCXsgT19OREVMQVksCSJPX05ERUxBWSIJfSwKICNlbmRpZgogI2lmZGVmIE9fUFJJVgpAQCAtMjg4LDYgKzMwNCw5IEBACiAjaWZkZWYgT19OT0FUSU1FCiAJeyBPX05PQVRJTUUsIAkiT19OT0FUSU1FIgl9LAogI2VuZGlmCisjaWZkZWYgT19DTE9FWEVDCisJeyBPX0NMT0VYRUMsCSJPX0NMT0VYRUMiCX0sCisjZW5kaWYKIAogI2lmZGVmIEZOREVMQVkKIAl7IEZOREVMQVksCSJGTkRFTEFZIgl9LApAQCAtMzM3LDIzICszNTYsMTE4IEBACiAJeyAwLAkJTlVMTAkJfSwKIH07CiAKLWludAotc3lzX29wZW4odGNwKQotc3RydWN0IHRjYiAqdGNwOworI2lmZGVmIExJTlVYCisKKyNpZm5kZWYgQVRfRkRDV0QKKyMgZGVmaW5lIEFUX0ZEQ1dEICAgICAgICAgICAgICAgIC0xMDAKKyNlbmRpZgorCisvKiBUaGUgZmQgaXMgYW4gImludCIsIHNvIHdoZW4gZGVjb2RpbmcgeDg2IG9uIHg4Nl82NCwgd2UgbmVlZCB0byBmb3JjZSBzaWduCisgKiBleHRlbnNpb24gdG8gZ2V0IHRoZSByaWdodCB2YWx1ZS4gIFdlIGRvIHRoaXMgYnkgZGVjbGFyaW5nIGZkIGFzIGludCBoZXJlLgorICovCitzdGF0aWMgdm9pZAorcHJpbnRfZGlyZmQoc3RydWN0IHRjYiAqdGNwLCBpbnQgZmQpCit7CisJaWYgKGZkID09IEFUX0ZEQ1dEKQorCQl0cHJpbnRmKCJBVF9GRENXRCwgIik7CisJZWxzZQorCXsKKwkJcHJpbnRmZCh0Y3AsIGZkKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9Cit9CisjZW5kaWYKKworLyoKKyAqIFBpdHkgc3RwY3B5KCkgaXMgbm90IHN0YW5kYXJkaXplZC4uLgorICovCitzdGF0aWMgY2hhciAqCitzdHJfYXBwZW5kKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjKQoreworCXdoaWxlICgoKmRzdCA9ICpzcmMrKykgIT0gJ1wwJykKKwkJZHN0Kys7CisJcmV0dXJuIGRzdDsKK30KKworLyoKKyAqIGxvdyBiaXRzIG9mIHRoZSBvcGVuKDIpIGZsYWdzIGRlZmluZSBhY2Nlc3MgbW9kZSwKKyAqIG90aGVyIGJpdHMgYXJlIHJlYWwgZmxhZ3MuCisgKi8KK2NvbnN0IGNoYXIgKgorc3ByaW50X29wZW5fbW9kZXMobW9kZV90IGZsYWdzKQoreworCXN0YXRpYyBjaGFyIG91dHN0clsxMDI0XTsKKwljaGFyICpwOworCWNoYXIgc2VwID0gMDsKKwljb25zdCBjaGFyICpzdHI7CisJY29uc3Qgc3RydWN0IHhsYXQgKng7CisKKwlwID0gc3RyX2FwcGVuZChvdXRzdHIsICJmbGFncyAiKTsKKwlzdHIgPSB4bG9va3VwKG9wZW5fYWNjZXNzX21vZGVzLCBmbGFncyAmIDMpOworCWlmIChzdHIpIHsKKwkJcCA9IHN0cl9hcHBlbmQocCwgc3RyKTsKKwkJZmxhZ3MgJj0gfjM7CisJCWlmICghZmxhZ3MpCisJCQlyZXR1cm4gb3V0c3RyOworCQlzZXAgPSAnfCc7CisJfQorCisJZm9yICh4ID0gb3Blbl9tb2RlX2ZsYWdzOyB4LT5zdHI7IHgrKykgeworCQlpZiAoKGZsYWdzICYgeC0+dmFsKSA9PSB4LT52YWwpIHsKKwkJCWlmIChzZXApCisJCQkJKnArKyA9IHNlcDsKKwkJCXAgPSBzdHJfYXBwZW5kKHAsIHgtPnN0cik7CisJCQlmbGFncyAmPSB+eC0+dmFsOworCQkJaWYgKCFmbGFncykKKwkJCQlyZXR1cm4gb3V0c3RyOworCQkJc2VwID0gJ3wnOworCQl9CisJfQorCS8qIGZsYWdzIGlzIHN0aWxsIG5vbnplcm8gKi8KKwlpZiAoc2VwKQorCQkqcCsrID0gc2VwOworCXNwcmludGYocCwgIiUjeCIsIGZsYWdzKTsKKwlyZXR1cm4gb3V0c3RyOworfQorCit2b2lkCit0cHJpbnRfb3Blbl9tb2Rlcyhtb2RlX3QgZmxhZ3MpCit7CisJdHByaW50ZigiJXMiLCBzcHJpbnRfb3Blbl9tb2RlcyhmbGFncykgKyBzaXplb2YoImZsYWdzIikpOworfQorCitzdGF0aWMgaW50CitkZWNvZGVfb3BlbihzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0XSk7CiAJCXRwcmludGYoIiwgIik7CiAJCS8qIGZsYWdzICovCi0JCXByaW50ZmxhZ3Mob3Blbm1vZGVzLCB0Y3AtPnVfYXJnWzFdICsgMSwgIk9fPz8/Iik7Ci0JCWlmICh0Y3AtPnVfYXJnWzFdICYgT19DUkVBVCkgeworCQl0cHJpbnRfb3Blbl9tb2Rlcyh0Y3AtPnVfYXJnW29mZnNldCArIDFdKTsKKwkJaWYgKHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV0gJiBPX0NSRUFUKSB7CiAJCQkvKiBtb2RlICovCi0JCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMl0pOwogCQl9CiAJfQogCXJldHVybiAwOwogfQogCitpbnQKK3N5c19vcGVuKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZGVjb2RlX29wZW4odGNwLCAwKTsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19vcGVuYXQoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludF9kaXJmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCXJldHVybiBkZWNvZGVfb3Blbih0Y3AsIDEpOworfQorI2VuZGlmCisKICNpZmRlZiBMSU5VWFNQQVJDCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgb3Blbm1vZGVzc29sW10gPSB7CiAJeyAwLAkJIk9fUkRXUiIJfSwKQEAgLTM3NCw4ICs0ODgsNyBAQAogfTsKIAogaW50Ci1zb2xhcmlzX29wZW4odGNwKQotc3RydWN0IHRjYiAqdGNwOworc29sYXJpc19vcGVuKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTM5Myw4ICs1MDYsNyBAQAogI2VuZGlmCiAKIGludAotc3lzX2NyZWF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19jcmVhdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC00MTcsMjEgKzUyOSwzNSBAQAogCXsgMCwJCU5VTEwJCX0sCiB9OwogCi1pbnQKLXN5c19hY2Nlc3ModGNwKQotc3RydWN0IHRjYiAqdGNwOworc3RhdGljIGludAorZGVjb2RlX2FjY2VzcyhzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0XSk7CiAJCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3MoYWNjZXNzX2ZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiP19PSyIpOworCQlwcmludGZsYWdzKGFjY2Vzc19mbGFncywgdGNwLT51X2FyZ1tvZmZzZXQgKyAxXSwgIj9fT0siKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIGludAotc3lzX3VtYXNrKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19hY2Nlc3Moc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkZWNvZGVfYWNjZXNzKHRjcCwgMCk7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfZmFjY2Vzc2F0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gZGVjb2RlX2FjY2Vzcyh0Y3AsIDEpOworfQorI2VuZGlmCisKK2ludAorc3lzX3VtYXNrKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmKCIlI2xvIiwgdGNwLT51X2FyZ1swXSk7CkBAIC00NDcsMTUgKzU3MywzNiBAQAogfTsKIAogI2lmbmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVAorI2lmIGRlZmluZWQgKExJTlVYX01JUFNOMzIpCiBpbnQKLXN5c19sc2Vlayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfbHNlZWsoc3RydWN0IHRjYiAqdGNwKQoreworCWxvbmcgbG9uZyBvZmZzZXQ7CisJaW50IF93aGVuY2U7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCW9mZnNldCA9IHRjcC0+ZXh0X2FyZ1sxXTsKKwkJX3doZW5jZSA9IHRjcC0+dV9hcmdbMl07CisJCWlmIChfd2hlbmNlID09IFNFRUtfU0VUKQorCQkJdHByaW50ZigiJWxsdSwgIiwgb2Zmc2V0KTsKKwkJZWxzZQorCQkJdHByaW50ZigiJWxsZCwgIiwgb2Zmc2V0KTsKKwkJcHJpbnR4dmFsKHdoZW5jZSwgX3doZW5jZSwgIlNFRUtfPz8/Iik7CisJfQorCXJldHVybiBSVkFMX1VERUNJTUFMOworfQorI2Vsc2UgLyogIUxJTlVYX01JUFNOMzIgKi8KK2ludAorc3lzX2xzZWVrKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlvZmZfdCBvZmZzZXQ7CiAJaW50IF93aGVuY2U7CiAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CiAJCW9mZnNldCA9IHRjcC0+dV9hcmdbMV07CiAJCV93aGVuY2UgPSB0Y3AtPnVfYXJnWzJdOwogCQlpZiAoX3doZW5jZSA9PSBTRUVLX1NFVCkKQEAgLTQ2Niw3MCArNjEzLDY3IEBACiAJfQogCXJldHVybiBSVkFMX1VERUNJTUFMOwogfQorI2VuZGlmIC8qIExJTlVYX01JUFNOMzIgKi8KICNlbmRpZgogCiAjaWZkZWYgTElOVVgKIGludAotc3lzX2xsc2VlayAodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2xsc2VlayhzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkvKgotCSAqIFRoaXMgb25lIGNhbGwgdGFrZXMgZXhwbGljaXRseSB0d28gMzItYml0IGFyZ3VtZW50cyBoaSwgbG8sCi0JICogcmF0aGVyIHRoYW4gb25lIDY0LWJpdCBhcmd1bWVudCBmb3Igd2hpY2ggTE9OR19MT05HIHdvcmtzCi0JICogYXBwcm9wcmlhdGUgZm9yIHRoZSBuYXRpdmUgYnl0ZSBvcmRlci4KLQkgKi8KLQlpZiAodGNwLT51X2FyZ1s0XSA9PSBTRUVLX1NFVCkKLQkgICAgdHByaW50ZigiJWxkLCAlbGx1LCAiLCB0Y3AtPnVfYXJnWzBdLAotCQkgICAgKCgobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1sxXSkgPDwgMzIKLQkJICAgICB8ICh1bnNpZ25lZCBsb25nIGxvbmcpICh1bnNpZ25lZCkgdGNwLT51X2FyZ1syXSkpOwotCWVsc2UKLQkgICAgdHByaW50ZigiJWxkLCAlbGxkLCAiLCB0Y3AtPnVfYXJnWzBdLAotCQkgICAgKCgobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1sxXSkgPDwgMzIKLQkJICAgICB8ICh1bnNpZ25lZCBsb25nIGxvbmcpICh1bnNpZ25lZCkgdGNwLT51X2FyZ1syXSkpOwotICAgIH0KLSAgICBlbHNlIHsKLQlsb25nIGxvbmcgaW50IG9mZjsKLQlpZiAoc3lzZXJyb3IodGNwKSB8fCB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZvZmYpIDwgMCkKLQkgICAgdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1szXSk7Ci0JZWxzZQotCSAgICB0cHJpbnRmKCJbJWxsdV0sICIsIG9mZik7Ci0JcHJpbnR4dmFsKHdoZW5jZSwgdGNwLT51X2FyZ1s0XSwgIlNFRUtfPz8/Iik7Ci0gICAgfQotICAgIHJldHVybiAwOworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJLyoKKwkJICogVGhpcyBvbmUgY2FsbCB0YWtlcyBleHBsaWNpdGx5IHR3byAzMi1iaXQgYXJndW1lbnRzIGhpLCBsbywKKwkJICogcmF0aGVyIHRoYW4gb25lIDY0LWJpdCBhcmd1bWVudCBmb3Igd2hpY2ggTE9OR19MT05HIHdvcmtzCisJCSAqIGFwcHJvcHJpYXRlIGZvciB0aGUgbmF0aXZlIGJ5dGUgb3JkZXIuCisJCSAqLworCQlpZiAodGNwLT51X2FyZ1s0XSA9PSBTRUVLX1NFVCkKKwkJCXRwcmludGYoIiwgJWxsdSwgIiwKKwkJCQkoKGxvbmcgbG9uZyBpbnQpIHRjcC0+dV9hcmdbMV0pIDw8IDMyIHwKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKSAodW5zaWduZWQpIHRjcC0+dV9hcmdbMl0pOworCQllbHNlCisJCQl0cHJpbnRmKCIsICVsbGQsICIsCisJCQkJKChsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdKSA8PCAzMiB8CisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgKHVuc2lnbmVkKSB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJZWxzZSB7CisJCWxvbmcgbG9uZyBpbnQgb2ZmOworCQlpZiAoc3lzZXJyb3IodGNwKSB8fCB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZvZmYpIDwgMCkKKwkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbM10pOworCQllbHNlCisJCQl0cHJpbnRmKCJbJWxsdV0sICIsIG9mZik7CisJCXByaW50eHZhbCh3aGVuY2UsIHRjcC0+dV9hcmdbNF0sICJTRUVLXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfcmVhZGFoZWFkICh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfcmVhZGFoZWFkKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXRwcmludGYoIiVsZCwgJWxsZCwgJWxkIiwgdGNwLT51X2FyZ1swXSwKLSMgaWYgZGVmaW5lZCBJQTY0IHx8IGRlZmluZWQgWDg2XzY0IHx8IGRlZmluZWQgQUxQSEEKLQkJKGxvbmcgbG9uZyBpbnQpIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0KLSMgZWxzZQotCQlMT05HX0xPTkcodGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSksIHRjcC0+dV9hcmdbM10KLSMgZW5kaWYKLQkJKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaW50IGFyZ247CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJYXJnbiA9IHByaW50bGx2YWwodGNwLCAiJWxsZCIsIDEpOworCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbYXJnbl0pOworCX0KKwlyZXR1cm4gMDsKIH0KICNlbmRpZgogCiAjaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVAogaW50Ci1zeXNfbHNlZWs2NCAodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2xzZWVrNjQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCWxvbmcgbG9uZyBvZmZzZXQ7Ci0JCUFMSUdONjQgKHRjcCwgMSk7CS8qIEZyZWVCU0QgYWxpZ25zIG9mZl90IGFyZ3MgKi8KLQkJb2Zmc2V0ID0gTE9OR19MT05HKHRjcC0+dV9hcmcgWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJaW50IGFyZ247CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAkJaWYgKHRjcC0+dV9hcmdbM10gPT0gU0VFS19TRVQpCi0JCQl0cHJpbnRmKCIlbGQsICVsbHUsICIsIHRjcC0+dV9hcmdbMF0sIG9mZnNldCk7CisJCQlhcmduID0gcHJpbnRsbHZhbCh0Y3AsICIlbGx1LCAiLCAxKTsKIAkJZWxzZQotCQkJdHByaW50ZigiJWxkLCAlbGxkLCAiLCB0Y3AtPnVfYXJnWzBdLCBvZmZzZXQpOwotCQlwcmludHh2YWwod2hlbmNlLCB0Y3AtPnVfYXJnWzNdLCAiU0VFS18/Pz8iKTsKKwkJCWFyZ24gPSBwcmludGxsdmFsKHRjcCwgIiVsbGQsICIsIDEpOworCQlwcmludHh2YWwod2hlbmNlLCB0Y3AtPnVfYXJnW2FyZ25dLCAiU0VFS18/Pz8iKTsKIAl9CiAJcmV0dXJuIFJWQUxfTFVERUNJTUFMOwogfQpAQCAtNTM3LDggKzY4MSw3IEBACiAKICNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKIGludAotc3lzX3RydW5jYXRlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c190cnVuY2F0ZShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC01NTAsMTMgKzY5MywxMSBAQAogCiAjaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVAogaW50Ci1zeXNfdHJ1bmNhdGU2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfdHJ1bmNhdGU2NChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJQUxJR042NCAodGNwLCAxKTsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJWxsdSIsIExPTkdfTE9ORyh0Y3AtPnVfYXJnWzFdLHRjcC0+dV9hcmdbMl0pKTsKKwkJcHJpbnRsbHZhbCh0Y3AsICIsICVsbHUiLCAxKTsKIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC01NjQsMTEgKzcwNSwxMSBAQAogCiAjaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCiBpbnQKLXN5c19mdHJ1bmNhdGUodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2Z0cnVuY2F0ZShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAlbHUiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTU3NiwxMyArNzE3LDEyIEBACiAKICNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCiBpbnQKLXN5c19mdHJ1bmNhdGU2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZnRydW5jYXRlNjQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCUFMSUdONjQgKHRjcCwgMSk7Ci0JCXRwcmludGYoIiVsZCwgJWxsdSIsIHRjcC0+dV9hcmdbMF0sCi0JCQlMT05HX0xPTkcodGNwLT51X2FyZ1sxXSAsdGNwLT51X2FyZ1syXSkpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50bGx2YWwodGNwLCAiJWxsdSIsIDEpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTYwMiw4ICs3NDIsNyBAQAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKgotc3ByaW50bW9kZShtb2RlKQotaW50IG1vZGU7CitzcHJpbnRtb2RlKGludCBtb2RlKQogewogCXN0YXRpYyBjaGFyIGJ1Zls2NF07CiAJY29uc3QgY2hhciAqczsKQEAgLTYyNiw2NSArNzY1LDU3IEBACiB9CiAKIHN0YXRpYyBjaGFyICoKLXNwcmludHRpbWUodCkKLXRpbWVfdCB0Oworc3ByaW50dGltZSh0aW1lX3QgdCkKIHsKIAlzdHJ1Y3QgdG0gKnRtcDsKIAlzdGF0aWMgY2hhciBidWZbMzJdOwogCiAJaWYgKHQgPT0gMCkgewotCQlzcHJpbnRmKGJ1ZiwgIjAiKTsKKwkJc3RyY3B5KGJ1ZiwgIjAiKTsKIAkJcmV0dXJuIGJ1ZjsKIAl9Ci0JdG1wID0gbG9jYWx0aW1lKCZ0KTsKLQlzcHJpbnRmKGJ1ZiwgIiUwMmQvJTAyZC8lMDJkLSUwMmQ6JTAyZDolMDJkIiwKLQkJdG1wLT50bV95ZWFyICsgMTkwMCwgdG1wLT50bV9tb24gKyAxLCB0bXAtPnRtX21kYXksCi0JCXRtcC0+dG1faG91ciwgdG1wLT50bV9taW4sIHRtcC0+dG1fc2VjKTsKKwlpZiAoKHRtcCA9IGxvY2FsdGltZSgmdCkpKQorCQlzbnByaW50ZihidWYsIHNpemVvZiBidWYsICIlMDJkLyUwMmQvJTAyZC0lMDJkOiUwMmQ6JTAyZCIsCisJCQl0bXAtPnRtX3llYXIgKyAxOTAwLCB0bXAtPnRtX21vbiArIDEsIHRtcC0+dG1fbWRheSwKKwkJCXRtcC0+dG1faG91ciwgdG1wLT50bV9taW4sIHRtcC0+dG1fc2VjKTsKKwllbHNlCisJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgIiVsdSIsICh1bnNpZ25lZCBsb25nKSB0KTsKKwogCXJldHVybiBidWY7CiB9CiAKICNpZmRlZiBMSU5VWFNQQVJDCiB0eXBlZGVmIHN0cnVjdCB7Ci0gICAgICAgIGludCAgICAgdHZfc2VjOwotICAgICAgICBpbnQgICAgIHR2X25zZWM7CisJaW50ICAgICB0dl9zZWM7CisJaW50ICAgICB0dl9uc2VjOwogfSB0aW1lc3RydWN0X3Q7CiAKIHN0cnVjdCBzb2xzdGF0IHsKLSAgICAgICAgdW5zaWduZWQgICAgICAgIHN0X2RldjsKLSAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3BhZDFbM107ICAgICAvKiBuZXR3b3JrIGlkICovCi0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9pbm87Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9tb2RlOwotICAgICAgICB1bnNpZ25lZCAgICAgICAgc3Rfbmxpbms7Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF91aWQ7Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9naWQ7Ci0gICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9yZGV2OwotICAgICAgICBpbnQgICAgICAgICAgICAgc3RfcGFkMlsyXTsKLSAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3NpemU7Ci0gICAgICAgIGludCAgICAgICAgICAgICBzdF9wYWQzOyAgICAgICAgLyogc3Rfc2l6ZSwgb2ZmX3QgZXhwYW5zaW9uICovCi0gICAgICAgIHRpbWVzdHJ1Y3RfdCAgICBzdF9hdGltZTsKLSAgICAgICAgdGltZXN0cnVjdF90ICAgIHN0X210aW1lOwotICAgICAgICB0aW1lc3RydWN0X3QgICAgc3RfY3RpbWU7Ci0gICAgICAgIGludCAgICAgICAgICAgICBzdF9ibGtzaXplOwotICAgICAgICBpbnQgICAgICAgICAgICAgc3RfYmxvY2tzOwotICAgICAgICBjaGFyICAgICAgICAgICAgc3RfZnN0eXBlWzE2XTsKLSAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3BhZDRbOF07ICAgICAvKiBleHBhbnNpb24gYXJlYSAqLworCXVuc2lnbmVkICAgICAgICBzdF9kZXY7CisJaW50ICAgICAgICAgICAgIHN0X3BhZDFbM107ICAgICAvKiBuZXR3b3JrIGlkICovCisJdW5zaWduZWQgICAgICAgIHN0X2lubzsKKwl1bnNpZ25lZCAgICAgICAgc3RfbW9kZTsKKwl1bnNpZ25lZCAgICAgICAgc3Rfbmxpbms7CisJdW5zaWduZWQgICAgICAgIHN0X3VpZDsKKwl1bnNpZ25lZCAgICAgICAgc3RfZ2lkOworCXVuc2lnbmVkICAgICAgICBzdF9yZGV2OworCWludCAgICAgICAgICAgICBzdF9wYWQyWzJdOworCWludCAgICAgICAgICAgICBzdF9zaXplOworCWludCAgICAgICAgICAgICBzdF9wYWQzOyAgICAgICAgLyogc3Rfc2l6ZSwgb2ZmX3QgZXhwYW5zaW9uICovCisJdGltZXN0cnVjdF90ICAgIHN0X2F0aW1lOworCXRpbWVzdHJ1Y3RfdCAgICBzdF9tdGltZTsKKwl0aW1lc3RydWN0X3QgICAgc3RfY3RpbWU7CisJaW50ICAgICAgICAgICAgIHN0X2Jsa3NpemU7CisJaW50ICAgICAgICAgICAgIHN0X2Jsb2NrczsKKwljaGFyICAgICAgICAgICAgc3RfZnN0eXBlWzE2XTsKKwlpbnQgICAgICAgICAgICAgc3RfcGFkNFs4XTsgICAgIC8qIGV4cGFuc2lvbiBhcmVhICovCiB9OwogCiBzdGF0aWMgdm9pZAotcHJpbnRzdGF0c29sKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50c3RhdHNvbChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKIHsKIAlzdHJ1Y3Qgc29sc3RhdCBzdGF0YnVmOwogCi0JaWYgKCFhZGRyKSB7Ci0JCXRwcmludGYoIk5VTEwiKTsKLQkJcmV0dXJuOwotCX0KLQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKSB7Ci0JCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQkJcmV0dXJuOwotCX0KIAlpZiAodW1vdmUodGNwLCBhZGRyLCAmc3RhdGJ1ZikgPCAwKSB7CiAJCXRwcmludGYoInsuLi59Iik7CiAJCXJldHVybjsKQEAgLTcxNSw5ICs4NDYsOSBAQAogCQlicmVhazsKIAl9CiAJaWYgKCFhYmJyZXYodGNwKSkgewotCQl0cHJpbnRmKCJzdF9hdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLnN0X2F0aW1lKSk7Ci0JCXRwcmludGYoInN0X210aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfbXRpbWUpKTsKLQkJdHByaW50Zigic3RfY3RpbWU9JXN9Iiwgc3ByaW50dGltZShzdGF0YnVmLnN0X2N0aW1lKSk7CisJCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUudHZfc2VjKSk7CisJCXRwcmludGYoInN0X210aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfbXRpbWUudHZfc2VjKSk7CisJCXRwcmludGYoInN0X2N0aW1lPSVzfSIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZS50dl9zZWMpKTsKIAl9CiAJZWxzZQogCQl0cHJpbnRmKCIuLi59Iik7CkBAIC03MjUsMjAgKzg1NiwxMCBAQAogCiAjaWYgZGVmaW5lZCAoU1BBUkM2NCkKIHN0YXRpYyB2b2lkCi1wcmludHN0YXRfc3BhcmM2NCh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7CitwcmludHN0YXRfc3BhcmM2NChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKIHsKIAlzdHJ1Y3Qgc3RhdF9zcGFyYzY0IHN0YXRidWY7CiAKLQlpZiAoIWFkZHIpIHsKLQkJdHByaW50ZigiTlVMTCIpOwotCQlyZXR1cm47Ci0JfQotCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQlyZXR1cm47Ci0JfQogCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKIAkJdHByaW50Zigiey4uLn0iKTsKIAkJcmV0dXJuOwpAQCAtNzgzLDYgKzkwNCw3MSBAQAogI2VuZGlmIC8qIFNQQVJDNjQgKi8KICNlbmRpZiAvKiBMSU5VWFNQQVJDICovCiAKKyNpZiBkZWZpbmVkIExJTlVYICYmIGRlZmluZWQgUE9XRVJQQzY0CitzdHJ1Y3Qgc3RhdF9wb3dlcnBjMzIgeworCXVuc2lnbmVkIGludAlzdF9kZXY7CisJdW5zaWduZWQgaW50CXN0X2lubzsKKwl1bnNpZ25lZCBpbnQJc3RfbW9kZTsKKwl1bnNpZ25lZCBzaG9ydAlzdF9ubGluazsKKwl1bnNpZ25lZCBpbnQJc3RfdWlkOworCXVuc2lnbmVkIGludAlzdF9naWQ7CisJdW5zaWduZWQgaW50CXN0X3JkZXY7CisJdW5zaWduZWQgaW50CXN0X3NpemU7CisJdW5zaWduZWQgaW50CXN0X2Jsa3NpemU7CisJdW5zaWduZWQgaW50CXN0X2Jsb2NrczsKKwl1bnNpZ25lZCBpbnQJc3RfYXRpbWU7CisJdW5zaWduZWQgaW50CXN0X2F0aW1lX25zZWM7CisJdW5zaWduZWQgaW50CXN0X210aW1lOworCXVuc2lnbmVkIGludAlzdF9tdGltZV9uc2VjOworCXVuc2lnbmVkIGludAlzdF9jdGltZTsKKwl1bnNpZ25lZCBpbnQJc3RfY3RpbWVfbnNlYzsKKwl1bnNpZ25lZCBpbnQJX191bnVzZWQ0OworCXVuc2lnbmVkIGludAlfX3VudXNlZDU7Cit9OworCitzdGF0aWMgdm9pZAorcHJpbnRzdGF0X3Bvd2VycGMzMihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKK3sKKwlzdHJ1Y3Qgc3RhdF9wb3dlcnBjMzIgc3RhdGJ1ZjsKKworCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKKwkJdHByaW50Zigiey4uLn0iKTsKKwkJcmV0dXJuOworCX0KKworCWlmICghYWJicmV2KHRjcCkpIHsKKwkJdHByaW50Zigie3N0X2Rldj1tYWtlZGV2KCV1LCAldSksIHN0X2lubz0ldSwgc3RfbW9kZT0lcywgIiwKKwkJCW1ham9yKHN0YXRidWYuc3RfZGV2KSwgbWlub3Ioc3RhdGJ1Zi5zdF9kZXYpLAorCQkJc3RhdGJ1Zi5zdF9pbm8sCisJCQlzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOworCQl0cHJpbnRmKCJzdF9ubGluaz0ldSwgc3RfdWlkPSV1LCBzdF9naWQ9JXUsICIsCisJCQlzdGF0YnVmLnN0X25saW5rLCBzdGF0YnVmLnN0X3VpZCwgc3RhdGJ1Zi5zdF9naWQpOworCQl0cHJpbnRmKCJzdF9ibGtzaXplPSV1LCAiLCBzdGF0YnVmLnN0X2Jsa3NpemUpOworCQl0cHJpbnRmKCJzdF9ibG9ja3M9JXUsICIsIHN0YXRidWYuc3RfYmxvY2tzKTsKKwl9CisJZWxzZQorCQl0cHJpbnRmKCJ7c3RfbW9kZT0lcywgIiwgc3ByaW50bW9kZShzdGF0YnVmLnN0X21vZGUpKTsKKwlzd2l0Y2ggKHN0YXRidWYuc3RfbW9kZSAmIFNfSUZNVCkgeworCWNhc2UgU19JRkNIUjogY2FzZSBTX0lGQkxLOgorCQl0cHJpbnRmKCJzdF9yZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCAiLAorCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYuc3RfcmRldiksCisJCQkodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi5zdF9yZGV2KSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXRwcmludGYoInN0X3NpemU9JXUsICIsIHN0YXRidWYuc3Rfc2l6ZSk7CisJCWJyZWFrOworCX0KKwlpZiAoIWFiYnJldih0Y3ApKSB7CisJCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUpKTsKKwkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9tdGltZSkpOworCQl0cHJpbnRmKCJzdF9jdGltZT0lcyIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOworCQl0cHJpbnRmKCJ9Iik7CisJfQorCWVsc2UKKwkJdHByaW50ZigiLi4ufSIpOworfQorI2VuZGlmIC8qIExJTlVYICYmIFBPV0VSUEM2NCAqLworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgZmlsZWZsYWdzW10gPSB7CiAjaWZkZWYgRlJFRUJTRAogCXsgVUZfTk9EVU1QLAkiVUZfTk9EVU1QIgl9LApAQCAtODA3LDggKzk5Myw3IEBACiAKICNpZmRlZiBGUkVFQlNECiBpbnQKLXN5c19jaGZsYWdzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19jaGZsYWdzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTgxOSw4ICsxMDA0LDcgQEAKIH0KIAogaW50Ci1zeXNfZmNoZmxhZ3ModGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZjaGZsYWdzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwpAQCAtODMyLDQ5ICsxMDE2LDQ3IEBACiAKICNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKIHN0YXRpYyB2b2lkCi1yZWFscHJpbnRzdGF0KHRjcCwgc3RhdGJ1ZikKLXN0cnVjdCB0Y2IgKnRjcDsKLXN0cnVjdCBzdGF0ICpzdGF0YnVmOworcmVhbHByaW50c3RhdChzdHJ1Y3QgdGNiICp0Y3AsIHN0cnVjdCBzdGF0ICpzdGF0YnVmKQogewotICAgIGlmICghYWJicmV2KHRjcCkpIHsKLQkgICAgdHByaW50Zigie3N0X2Rldj1tYWtlZGV2KCVsdSwgJWx1KSwgc3RfaW5vPSVsdSwgc3RfbW9kZT0lcywgIiwKLQkJICAgICh1bnNpZ25lZCBsb25nKSBtYWpvcihzdGF0YnVmLT5zdF9kZXYpLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHN0YXRidWYtPnN0X2RldiksCi0JCSAgICAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfaW5vLAotCQkgICAgc3ByaW50bW9kZShzdGF0YnVmLT5zdF9tb2RlKSk7Ci0JICAgIHRwcmludGYoInN0X25saW5rPSVsdSwgc3RfdWlkPSVsdSwgc3RfZ2lkPSVsdSwgIiwKLQkJICAgICh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLT5zdF9ubGluaywKLQkJICAgICh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLT5zdF91aWQsCi0JCSAgICAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfZ2lkKTsKKwlpZiAoIWFiYnJldih0Y3ApKSB7CisJCXRwcmludGYoIntzdF9kZXY9bWFrZWRldiglbHUsICVsdSksIHN0X2lubz0lbHUsIHN0X21vZGU9JXMsICIsCisJCQkodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3RfZGV2KSwKKwkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLT5zdF9kZXYpLAorCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2lubywKKwkJCXNwcmludG1vZGUoc3RhdGJ1Zi0+c3RfbW9kZSkpOworCQl0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfbmxpbmssCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfdWlkLAorCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2dpZCk7CiAjaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFCi0JICAgIHRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfYmxrc2l6ZSk7Ci0jZW5kaWYgLyogSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFICovCisJCXRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfYmxrc2l6ZSk7CisjZW5kaWYKICNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUwotCSAgICB0cHJpbnRmKCJzdF9ibG9ja3M9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfYmxvY2tzKTsKLSNlbmRpZiAvKiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAqLwotICAgIH0KLSAgICBlbHNlCi0JICAgIHRwcmludGYoIntzdF9tb2RlPSVzLCAiLCBzcHJpbnRtb2RlKHN0YXRidWYtPnN0X21vZGUpKTsKLSAgICBzd2l0Y2ggKHN0YXRidWYtPnN0X21vZGUgJiBTX0lGTVQpIHsKLSAgICBjYXNlIFNfSUZDSFI6IGNhc2UgU19JRkJMSzoKKwkJdHByaW50Zigic3RfYmxvY2tzPSVsdSwgIiwgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2Jsb2Nrcyk7CisjZW5kaWYKKwl9CisJZWxzZQorCQl0cHJpbnRmKCJ7c3RfbW9kZT0lcywgIiwgc3ByaW50bW9kZShzdGF0YnVmLT5zdF9tb2RlKSk7CisJc3dpdGNoIChzdGF0YnVmLT5zdF9tb2RlICYgU19JRk1UKSB7CisJY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6CiAjaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWCi0JICAgIHRwcmludGYoInN0X3JkZXY9bWFrZWRldiglbHUsICVsdSksICIsCi0JCSAgICAodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3RfcmRldiksCi0JCSAgICAodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi0+c3RfcmRldikpOworCQl0cHJpbnRmKCJzdF9yZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCAiLAorCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYtPnN0X3JkZXYpLAorCQkJKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHN0YXRidWYtPnN0X3JkZXYpKTsKICNlbHNlIC8qICFIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgKi8KLQkgICAgdHByaW50Zigic3Rfc2l6ZT1tYWtlZGV2KCVsdSwgJWx1KSwgIiwKLQkJICAgICh1bnNpZ25lZCBsb25nKSBtYWpvcihzdGF0YnVmLT5zdF9zaXplKSwKLQkJICAgICh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLT5zdF9zaXplKSk7CisJCXRwcmludGYoInN0X3NpemU9bWFrZWRldiglbHUsICVsdSksICIsCisJCQkodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3Rfc2l6ZSksCisJCQkodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi0+c3Rfc2l6ZSkpOwogI2VuZGlmIC8qICFIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgKi8KLQkgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLQkgICAgdHByaW50Zigic3Rfc2l6ZT0lbHUsICIsIHN0YXRidWYtPnN0X3NpemUpOwotCSAgICBicmVhazsKLSAgICB9Ci0gICAgaWYgKCFhYmJyZXYodGNwKSkgewotCSAgICB0cHJpbnRmKCJzdF9hdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLT5zdF9hdGltZSkpOwotCSAgICB0cHJpbnRmKCJzdF9tdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLT5zdF9tdGltZSkpOwotCSAgICB0cHJpbnRmKCJzdF9jdGltZT0lcyIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfY3RpbWUpKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJdHByaW50Zigic3Rfc2l6ZT0lbHUsICIsICh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLT5zdF9zaXplKTsKKwkJYnJlYWs7CisJfQorCWlmICghYWJicmV2KHRjcCkpIHsKKwkJdHByaW50Zigic3RfYXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfYXRpbWUpKTsKKwkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfbXRpbWUpKTsKKwkJdHByaW50Zigic3RfY3RpbWU9JXMiLCBzcHJpbnR0aW1lKHN0YXRidWYtPnN0X2N0aW1lKSk7CiAjaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHUwogCQl0cHJpbnRmKCIsIHN0X2ZsYWdzPSIpOwogCQlwcmludGZsYWdzKGZpbGVmbGFncywgc3RhdGJ1Zi0+c3RfZmxhZ3MsICJVRl8/Pz8iKTsKQEAgLTg5MywzMiArMTA3NSwxNyBAQAogCQl0cHJpbnRmKCIsIHN0X2dlbj0ldSIsIHN0YXRidWYtPnN0X2dlbik7CiAjZW5kaWYKIAkJdHByaW50ZigifSIpOwotICAgIH0KLSAgICBlbHNlCi0JICAgIHRwcmludGYoIi4uLn0iKTsKKwl9CisJZWxzZQorCQl0cHJpbnRmKCIuLi59Iik7CiB9CiAKIAogc3RhdGljIHZvaWQKLXByaW50c3RhdCh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7CitwcmludHN0YXQoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIpCiB7CiAJc3RydWN0IHN0YXQgc3RhdGJ1ZjsKIAotI2lmZGVmIExJTlVYU1BBUkMKLSAJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkgewotIAkJcHJpbnRzdGF0c29sKHRjcCwgYWRkcik7Ci0gCQlyZXR1cm47Ci0gCX0KLSNpZmRlZiBTUEFSQzY0Ci0JZWxzZSBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAyKSB7Ci0JCXByaW50c3RhdF9zcGFyYzY0KHRjcCwgYWRkcik7Ci0JCXJldHVybjsKLQl9Ci0jZW5kaWYKLSNlbmRpZiAvKiBMSU5VWFNQQVJDICovCi0KIAlpZiAoIWFkZHIpIHsKIAkJdHByaW50ZigiTlVMTCIpOwogCQlyZXR1cm47CkBAIC05MjcsNiArMTA5NCwyNyBAQAogCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CiAJCXJldHVybjsKIAl9CisKKyNpZmRlZiBMSU5VWFNQQVJDCisJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkgeworCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKyNpZmRlZiBTUEFSQzY0CisJZWxzZSBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAyKSB7CisJCXByaW50c3RhdF9zcGFyYzY0KHRjcCwgYWRkcik7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKyNlbmRpZiAvKiBMSU5VWFNQQVJDICovCisKKyNpZiBkZWZpbmVkIExJTlVYICYmIGRlZmluZWQgUE9XRVJQQzY0CisJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkgeworCQlwcmludHN0YXRfcG93ZXJwYzMyKHRjcCwgYWRkcik7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKwogCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKIAkJdHByaW50Zigiey4uLn0iKTsKIAkJcmV0dXJuOwpAQCAtOTM2LDI2ICsxMTI0LDQ3IEBACiB9CiAjZW5kaWYJLyogIUhBVkVfTE9OR19MT05HX09GRl9UICovCiAKKyNpZiAhZGVmaW5lZCBIQVZFX1NUQVQ2NCAmJiBkZWZpbmVkIExJTlVYICYmIGRlZmluZWQgWDg2XzY0CisvKgorICogTGludXggeDg2XzY0IGhhcyB1bmlmaWVkIGBzdHJ1Y3Qgc3RhdCcgYnV0IGl0cyBpMzg2IGJpYXJjaCBuZWVkcworICogYHN0cnVjdCBzdGF0NjQnLiAgSXRzIDxhc20taTM4Ni9zdGF0Lmg+IGRlZmluaXRpb24gZXhwZWN0cyAzMi1iaXQgYGxvbmcnLgorICogPGxpbnV4L2luY2x1ZGUvYXNtLXg4Nl82NC9pYTMyLmg+IGlzIG5vdCBpbiB0aGUgcHVibGljIGluY2x1ZGVzIHNldC4KKyAqIF9fR05VQ19fIGlzIG5lZWRlZCBmb3IgdGhlIHJlcXVpcmVkIF9fYXR0cmlidXRlX18gYmVsb3cuCisgKi8KK3N0cnVjdCBzdGF0NjQgeworCXVuc2lnbmVkIGxvbmcgbG9uZwlzdF9kZXY7CisJdW5zaWduZWQgY2hhcglfX3BhZDBbNF07CisJdW5zaWduZWQgaW50CV9fc3RfaW5vOworCXVuc2lnbmVkIGludAlzdF9tb2RlOworCXVuc2lnbmVkIGludAlzdF9ubGluazsKKwl1bnNpZ25lZCBpbnQJc3RfdWlkOworCXVuc2lnbmVkIGludAlzdF9naWQ7CisJdW5zaWduZWQgbG9uZyBsb25nCXN0X3JkZXY7CisJdW5zaWduZWQgY2hhcglfX3BhZDNbNF07CisJbG9uZyBsb25nCXN0X3NpemU7CisJdW5zaWduZWQgaW50CXN0X2Jsa3NpemU7CisJdW5zaWduZWQgbG9uZyBsb25nCXN0X2Jsb2NrczsKKwl1bnNpZ25lZCBpbnQJc3RfYXRpbWU7CisJdW5zaWduZWQgaW50CXN0X2F0aW1lX25zZWM7CisJdW5zaWduZWQgaW50CXN0X210aW1lOworCXVuc2lnbmVkIGludAlzdF9tdGltZV9uc2VjOworCXVuc2lnbmVkIGludAlzdF9jdGltZTsKKwl1bnNpZ25lZCBpbnQJc3RfY3RpbWVfbnNlYzsKKwl1bnNpZ25lZCBsb25nIGxvbmcJc3RfaW5vOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKyMgZGVmaW5lIEhBVkVfU1RBVDY0CTEKKyMgZGVmaW5lIFNUQVQ2NF9TSVpFCTk2CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfU1RBVDY0CiBzdGF0aWMgdm9pZAotcHJpbnRzdGF0NjQodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOworcHJpbnRzdGF0NjQoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIpCiB7CiAJc3RydWN0IHN0YXQ2NCBzdGF0YnVmOwogCi0jaWZkZWYgTElOVVhTUEFSQwotIAlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7Ci0gCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKLSAJCXJldHVybjsKLSAJfQotI2lmZGVmIFNQQVJDNjQKLQllbHNlIGlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDIpIHsKLQkJcHJpbnRzdGF0X3NwYXJjNjQodGNwLCBhZGRyKTsKLQkJcmV0dXJuOwotCX0KKyNpZmRlZiBTVEFUNjRfU0laRQorCSh2b2lkKSBzaXplb2YoY2hhcltzaXplb2Ygc3RhdGJ1ZiA9PSBTVEFUNjRfU0laRSA/IDEgOiAtMV0pOwogI2VuZGlmCi0jZW5kaWYgLyogTElOVVhTUEFSQyAqLwogCiAJaWYgKCFhZGRyKSB7CiAJCXRwcmludGYoIk5VTEwiKTsKQEAgLTk2NSw2ICsxMTc0LDI3IEBACiAJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKIAkJcmV0dXJuOwogCX0KKworI2lmZGVmIExJTlVYU1BBUkMKKwlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7CisJCXByaW50c3RhdHNvbCh0Y3AsIGFkZHIpOworCQlyZXR1cm47CisJfQorIyBpZmRlZiBTUEFSQzY0CisJZWxzZSBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAyKSB7CisJCXByaW50c3RhdF9zcGFyYzY0KHRjcCwgYWRkcik7CisJCXJldHVybjsKKwl9CisjIGVuZGlmCisjZW5kaWYgLyogTElOVVhTUEFSQyAqLworCisjaWYgZGVmaW5lZCBMSU5VWCAmJiBkZWZpbmVkIFg4Nl82NAorCWlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDApIHsKKwkJcHJpbnRzdGF0KHRjcCwgYWRkcik7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKwogCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKIAkJdHByaW50Zigiey4uLn0iKTsKIAkJcmV0dXJuOwpAQCAtMTAxMSw3ICsxMjQxLDExIEBACiAjZW5kaWYgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLwogCQlicmVhazsKIAlkZWZhdWx0OgotCQl0cHJpbnRmKCJzdF9zaXplPSVsbHUsICIsIHN0YXRidWYuc3Rfc2l6ZSk7CisjaWZkZWYgSEFWRV9MT05HX0xPTkcKKwkJdHByaW50Zigic3Rfc2l6ZT0lbGx1LCAiLCAodW5zaWduZWQgbG9uZyBsb25nKSBzdGF0YnVmLnN0X3NpemUpOworI2Vsc2UKKwkJdHByaW50Zigic3Rfc2l6ZT0lbHUsICIsICh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X3NpemUpOworI2VuZGlmCiAJCWJyZWFrOwogCX0KIAlpZiAoIWFiYnJldih0Y3ApKSB7CkBAIC0xMDQ0LDQxICsxMjc4LDMwIEBACiAKICNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUKQogc3RhdGljIHZvaWQKLWNvbnZlcnRvbGRzdGF0KG9sZGJ1ZiwgbmV3YnVmKQotY29uc3Qgc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0ICpvbGRidWY7Ci1zdHJ1Y3Qgc3RhdCAqbmV3YnVmOworY29udmVydG9sZHN0YXQoY29uc3Qgc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0ICpvbGRidWYsIHN0cnVjdCBzdGF0ICpuZXdidWYpCiB7Ci0gICAgbmV3YnVmLT5zdF9kZXY9b2xkYnVmLT5zdF9kZXY7Ci0gICAgbmV3YnVmLT5zdF9pbm89b2xkYnVmLT5zdF9pbm87Ci0gICAgbmV3YnVmLT5zdF9tb2RlPW9sZGJ1Zi0+c3RfbW9kZTsKLSAgICBuZXdidWYtPnN0X25saW5rPW9sZGJ1Zi0+c3Rfbmxpbms7Ci0gICAgbmV3YnVmLT5zdF91aWQ9b2xkYnVmLT5zdF91aWQ7Ci0gICAgbmV3YnVmLT5zdF9naWQ9b2xkYnVmLT5zdF9naWQ7Ci0gICAgbmV3YnVmLT5zdF9yZGV2PW9sZGJ1Zi0+c3RfcmRldjsKLSAgICBuZXdidWYtPnN0X3NpemU9b2xkYnVmLT5zdF9zaXplOwotICAgIG5ld2J1Zi0+c3RfYXRpbWU9b2xkYnVmLT5zdF9hdGltZTsKLSAgICBuZXdidWYtPnN0X210aW1lPW9sZGJ1Zi0+c3RfbXRpbWU7Ci0gICAgbmV3YnVmLT5zdF9jdGltZT1vbGRidWYtPnN0X2N0aW1lOwotICAgIG5ld2J1Zi0+c3RfYmxrc2l6ZT0wOwkvKiBub3Qgc3VwcG9ydGVkIGluIG9sZF9zdGF0ICovCi0gICAgbmV3YnVmLT5zdF9ibG9ja3M9MDsJCS8qIG5vdCBzdXBwb3J0ZWQgaW4gb2xkX3N0YXQgKi8KKwluZXdidWYtPnN0X2RldiA9IG9sZGJ1Zi0+c3RfZGV2OworCW5ld2J1Zi0+c3RfaW5vID0gb2xkYnVmLT5zdF9pbm87CisJbmV3YnVmLT5zdF9tb2RlID0gb2xkYnVmLT5zdF9tb2RlOworCW5ld2J1Zi0+c3RfbmxpbmsgPSBvbGRidWYtPnN0X25saW5rOworCW5ld2J1Zi0+c3RfdWlkID0gb2xkYnVmLT5zdF91aWQ7CisJbmV3YnVmLT5zdF9naWQgPSBvbGRidWYtPnN0X2dpZDsKKwluZXdidWYtPnN0X3JkZXYgPSBvbGRidWYtPnN0X3JkZXY7CisJbmV3YnVmLT5zdF9zaXplID0gb2xkYnVmLT5zdF9zaXplOworCW5ld2J1Zi0+c3RfYXRpbWUgPSBvbGRidWYtPnN0X2F0aW1lOworCW5ld2J1Zi0+c3RfbXRpbWUgPSBvbGRidWYtPnN0X210aW1lOworCW5ld2J1Zi0+c3RfY3RpbWUgPSBvbGRidWYtPnN0X2N0aW1lOworCW5ld2J1Zi0+c3RfYmxrc2l6ZSA9IDA7IC8qIG5vdCBzdXBwb3J0ZWQgaW4gb2xkX3N0YXQgKi8KKwluZXdidWYtPnN0X2Jsb2NrcyA9IDA7IC8qIG5vdCBzdXBwb3J0ZWQgaW4gb2xkX3N0YXQgKi8KIH0KIAogCiBzdGF0aWMgdm9pZAotcHJpbnRvbGRzdGF0KHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50b2xkc3RhdChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKIHsKIAlzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgc3RhdGJ1ZjsKIAlzdHJ1Y3Qgc3RhdCBuZXdzdGF0YnVmOwogCi0jaWZkZWYgTElOVVhTUEFSQwotIAlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7Ci0gCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKLSAJCXJldHVybjsKLSAJfQotI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KLQogCWlmICghYWRkcikgewogCQl0cHJpbnRmKCJOVUxMIik7CiAJCXJldHVybjsKQEAgLTEwODcsNiArMTMxMCwxNCBAQAogCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CiAJCXJldHVybjsKIAl9CisKKyNpZmRlZiBMSU5VWFNQQVJDCisJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkgeworCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKyNlbmRpZiAvKiBMSU5VWFNQQVJDICovCisKIAlpZiAodW1vdmUodGNwLCBhZGRyLCAmc3RhdGJ1ZikgPCAwKSB7CiAJCXRwcmludGYoInsuLi59Iik7CiAJCXJldHVybjsKQEAgLTEwOTksOCArMTMzMCw3IEBACiAKICNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKIGludAotc3lzX3N0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3N0YXQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMTExMyw4ICsxMzQzLDcgQEAKICNlbmRpZgogCiBpbnQKLXN5c19zdGF0NjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3N0YXQ2NChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAjaWZkZWYgSEFWRV9TVEFUNjQKIAlpZiAoZW50ZXJpbmcodGNwKSkgewpAQCAtMTEyOSwxMCArMTM1OCw0NCBAQAogI2VuZGlmCiB9CiAKKyNpZmRlZiBMSU5VWAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZzdGF0YXRmbGFnc1tdID0geworI2lmbmRlZiBBVF9TWU1MSU5LX05PRk9MTE9XCisjIGRlZmluZSBBVF9TWU1MSU5LX05PRk9MTE9XICAgICAweDEwMAorI2VuZGlmCisJeyBBVF9TWU1MSU5LX05PRk9MTE9XLAkiQVRfU1lNTElOS19OT0ZPTExPVyIJfSwKKwl7IDAsCQkJTlVMTAkJCX0sCit9OworI2RlZmluZSB1dGltZW5zYXRmbGFncyBmc3RhdGF0ZmxhZ3MKKworaW50CitzeXNfbmV3ZnN0YXRhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKyNpZmRlZiBQT1dFUlBDNjQKKwkJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMCkKKwkJCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlCisJCQlwcmludHN0YXQ2NCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworI2VsaWYgZGVmaW5lZCBIQVZFX1NUQVQ2NAorCQlwcmludHN0YXQ2NCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworI2Vsc2UKKwkJcHJpbnRzdGF0KHRjcCwgdGNwLT51X2FyZ1syXSk7CisjZW5kaWYKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhmc3RhdGF0ZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJBVF8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQpCiBpbnQKLXN5c19vbGRzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19vbGRzdGF0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTExNDYsMTIgKzE0MDksMTIgQEAKIAogI2lmbmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVAogaW50Ci1zeXNfZnN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZzdGF0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQllbHNlIHsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKIAkJcHJpbnRzdGF0KHRjcCwgdGNwLT51X2FyZ1sxXSk7CiAJfQogCXJldHVybiAwOwpAQCAtMTE1OSwxMyArMTQyMiwxMyBAQAogI2VuZGlmCiAKIGludAotc3lzX2ZzdGF0NjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZzdGF0NjQoc3RydWN0IHRjYiAqdGNwKQogewogI2lmZGVmIEhBVkVfU1RBVDY0Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JZWxzZSB7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CiAJCXByaW50c3RhdDY0KHRjcCwgdGNwLT51X2FyZ1sxXSk7CiAJfQogCXJldHVybiAwOwpAQCAtMTE3NiwxMiArMTQzOSwxMiBAQAogCiAjaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCkKIGludAotc3lzX29sZGZzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19vbGRmc3RhdChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0JaWYgKGVudGVyaW5nKHRjcCkpCi0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JZWxzZSB7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CiAJCXByaW50b2xkc3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOwogCX0KIAlyZXR1cm4gMDsKQEAgLTExOTAsOCArMTQ1Myw3IEBACiAKICNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKIGludAotc3lzX2xzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19sc3RhdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC0xMjA0LDggKzE0NjYsNyBAQAogI2VuZGlmCiAKIGludAotc3lzX2xzdGF0NjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2xzdGF0NjQoc3RydWN0IHRjYiAqdGNwKQogewogI2lmZGVmIEhBVkVfU1RBVDY0CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKQEAgLTEyMjIsOCArMTQ4Myw3IEBACiAKICNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUKQogaW50Ci1zeXNfb2xkbHN0YXQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX29sZGxzdGF0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTEyMzksOCArMTQ5OSw3IEBACiAjaWYgZGVmaW5lZChTVlI0KSB8fCBkZWZpbmVkKExJTlVYU1BBUkMpCiAKIGludAotc3lzX3hzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c194c3RhdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTEyNTgsOCArMTUxNyw3IEBACiB9CiAKIGludAotc3lzX2Z4c3RhdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZnhzdGF0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkKIAkJdHByaW50ZigiJWxkLCAlbGQsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwpAQCAtMTI3NSw4ICsxNTMzLDcgQEAKIH0KIAogaW50Ci1zeXNfbHhzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19seHN0YXQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CkBAIC0xMjk0LDggKzE1NTEsNyBAQAogfQogCiBpbnQKLXN5c194bWtub2QodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3hta25vZChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaW50IG1vZGUgPSB0Y3AtPnVfYXJnWzJdOwogCkBAIC0xMzQ5LDggKzE2MDUsNyBAQAogfTsKIAogaW50Ci1zeXNfYWNsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19hY2woc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMTM3MSw4ICsxNjI2LDcgQEAKIAogCiBpbnQKLXN5c19mYWNsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mYWNsKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMTQwNiw4ICsxNjYwLDcgQEAKIAogCiBpbnQKLXN5c19hY2xpcGModGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2FjbGlwYyhzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnR4dmFsKGFjbGlwYywgdGNwLT51X2FyZ1swXSwgIj8/P0lQQz8/PyIpOwpAQCAtMTQyNiw4ICsxNjc5LDYgQEAKIAlyZXR1cm4gMDsKIH0KIAotCi0KICNlbmRpZiAvKiBIQVZFX1NZU19BQ0xfSCAqLwogCiAjZW5kaWYgLyogU1ZSNCB8fCBMSU5VWFNQQVJDICovCkBAIC0xNDcyLDggKzE3MjMsNyBAQAogI2lmbmRlZiBTVlI0CiAKIHN0YXRpYyBjb25zdCBjaGFyICoKLXNwcmludGZzdHlwZShtYWdpYykKLWludCBtYWdpYzsKK3NwcmludGZzdHlwZShpbnQgbWFnaWMpCiB7CiAJc3RhdGljIGNoYXIgYnVmWzMyXTsKICNpZmRlZiBMSU5VWApAQCAtMTQ5MCw5ICsxNzQwLDcgQEAKIH0KIAogc3RhdGljIHZvaWQKLXByaW50c3RhdGZzKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50c3RhdGZzKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyKQogewogCXN0cnVjdCBzdGF0ZnMgc3RhdGJ1ZjsKIApAQCAtMTUzNSw4ICsxNzgzLDcgQEAKIH0KIAogaW50Ci1zeXNfc3RhdGZzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zdGF0ZnMoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMTU0OCwyMiArMTc5NSwyMCBAQAogfQogCiBpbnQKLXN5c19mc3RhdGZzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mc3RhdGZzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CiAJfSBlbHNlIHsKIAkJcHJpbnRzdGF0ZnModGNwLCB0Y3AtPnVfYXJnWzFdKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLSNpZmRlZiBMSU5VWCAKKyNpZiBkZWZpbmVkIExJTlVYICYmIGRlZmluZWQgSEFWRV9TVEFURlM2NAogc3RhdGljIHZvaWQKLXByaW50c3RhdGZzNjQodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOworcHJpbnRzdGF0ZnM2NChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKIHsKIAlzdHJ1Y3Qgc3RhdGZzNjQgc3RhdGJ1ZjsKIApAQCAtMTU5Myw4ICsxODM4LDcgQEAKIH0KIAogaW50Ci1zeXNfc3RhdGZzNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3N0YXRmczY0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTE2MDksMTEgKzE4NTMsMTEgQEAKIH0KIAogaW50Ci1zeXNfZnN0YXRmczY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mc3RhdGZzNjQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSwgJWx1LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1sxXSk7CiAJfSBlbHNlIHsKIAkJaWYgKHRjcC0+dV9hcmdbMV0gPT0gc2l6ZW9mIChzdHJ1Y3Qgc3RhdGZzNjQpKQogCQkJcHJpbnRzdGF0ZnM2NCh0Y3AsIHRjcC0+dV9hcmdbMl0pOwpAQCAtMTYyNyw4ICsxODcxLDcgQEAKICNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKF9fYWxwaGEpCiAKIGludAotb3NmX3N0YXRmcyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Citvc2Zfc3RhdGZzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTE2NDEsOCArMTg4NCw3IEBACiB9CiAKIGludAotb3NmX2ZzdGF0ZnModGNwKQotc3RydWN0IHRjYiAqdGNwOworb3NmX2ZzdGF0ZnMoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CkBAIC0xNjU3LDEwICsxODk5LDggQEAKICNlbmRpZiAvKiAhU1ZSNCAqLwogCiAjaWZkZWYgU1VOT1M0Ci0KIGludAotc3lzX3VzdGF0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c191c3RhdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJc3RydWN0IHVzdGF0IHN0YXRidWY7CiAKQEAgLTE2ODcsMTIgKzE5MjcsMTAgQEAKIAl9CiAJcmV0dXJuIDA7CiB9Ci0KICNlbmRpZiAvKiBTVU5PUzQgKi8KIAogaW50Ci1zeXNfcGl2b3Ryb290KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19waXZvdHJvb3Qoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMTcwNSw4ICsxOTQzLDQyIEBACiAKIC8qIGRpcmVjdG9yeSAqLwogaW50Ci1zeXNfY2hkaXIodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2NoZGlyKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2RlY29kZV9ta2RpcihzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXRdKTsKKwkJdHByaW50ZigiLCAlI2xvIiwgdGNwLT51X2FyZ1tvZmZzZXQgKyAxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19ta2RpcihzdHJ1Y3QgdGNiICp0Y3ApCit7CisJcmV0dXJuIGRlY29kZV9ta2Rpcih0Y3AsIDApOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX21rZGlyYXQoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludF9kaXJmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCXJldHVybiBkZWNvZGVfbWtkaXIodGNwLCAxKTsKK30KKyNlbmRpZgorCitpbnQKK3N5c19ybWRpcihzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC0xNzE1LDE5ICsxOTg3LDE2IEBACiB9CiAKIGludAotc3lzX21rZGlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mY2hkaXIoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfcm1kaXIodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2Nocm9vdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC0xNzM1LDM5ICsyMDA0LDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKKyNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChTVlI0KQogaW50Ci1zeXNfZmNoZGlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mY2hyb290KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCX0KIAlyZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBTVU5PUzQgfHwgU1ZSNCAqLwogCiBpbnQKLXN5c19jaHJvb3QodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1zeXNfZmNocm9vdCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQKLXN5c19saW5rKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19saW5rKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTE3NzcsOSArMjAyNiwyNSBAQAogCXJldHVybiAwOwogfQogCisjaWZkZWYgTElOVVgKIGludAotc3lzX3VubGluayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfbGlua2F0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludF9kaXJmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1szXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzRdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CitzeXNfdW5saW5rKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTE3ODcsOSArMjA1MiwzMCBAQAogCXJldHVybiAwOwogfQogCisjaWZkZWYgTElOVVgKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB1bmxpbmthdGZsYWdzW10gPSB7CisjaWZuZGVmIEFUX1JFTU9WRURJUgorIyBkZWZpbmUgQVRfUkVNT1ZFRElSICAgICAgICAgICAgMHgyMDAKKyNlbmRpZgorCXsgQVRfUkVNT1ZFRElSLAkiQVRfUkVNT1ZFRElSIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCiBpbnQKLXN5c19zeW1saW5rKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c191bmxpbmthdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3ModW5saW5rYXRmbGFncywgdGNwLT51X2FyZ1syXSwgIkFUXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK3N5c19zeW1saW5rKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTE3OTksMjYgKzIwODUsNTQgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIExJTlVYCiBpbnQKLXN5c19yZWFkbGluayh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfc3ltbGlua2F0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKIAkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2RlY29kZV9yZWFkbGluayhzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXRdKTsKKwkJdHByaW50ZigiLCAiKTsKIAl9IGVsc2UgewogCQlpZiAoc3lzZXJyb3IodGNwKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnW29mZnNldCArIDFdKTsKIAkJZWxzZQotCQkJcHJpbnRwYXRobih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCXByaW50cGF0aG4odGNwLCB0Y3AtPnVfYXJnW29mZnNldCArIDFdLCB0Y3AtPnVfcnZhbCk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1tvZmZzZXQgKyAyXSk7CiAJfQogCXJldHVybiAwOwogfQogCiBpbnQKLXN5c19yZW5hbWUodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3JlYWRsaW5rKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZGVjb2RlX3JlYWRsaW5rKHRjcCwgMCk7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfcmVhZGxpbmthdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50X2RpcmZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJcmV0dXJuIGRlY29kZV9yZWFkbGluayh0Y3AsIDEpOworfQorI2VuZGlmCisKK2ludAorc3lzX3JlbmFtZShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC0xODI4LDkgKzIxNDIsMjMgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIExJTlVYCiBpbnQKLXN5c19jaG93bih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfcmVuYW1lYXQoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50X2RpcmZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludF9kaXJmZCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzNdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CitzeXNfY2hvd24oc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMTg0MCw3MCArMjE2OCwxMzkgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIExJTlVYCiBpbnQKLXN5c19mY2hvd24odGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZjaG93bmF0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMl0pOworCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhmc3RhdGF0ZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJBVF8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CitzeXNfZmNob3duKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CiAJCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMV0pOwogCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzJdKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLWludAotc3lzX2NobW9kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N0YXRpYyBpbnQKK2RlY29kZV9jaG1vZChzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0XSk7CisJCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfY2htb2Qoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkZWNvZGVfY2htb2QodGNwLCAwKTsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19mY2htb2RhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50X2RpcmZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJcmV0dXJuIGRlY29kZV9jaG1vZCh0Y3AsIDEpOworfQorI2VuZGlmCisKK2ludAorc3lzX2ZjaG1vZChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzFdKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLWludAotc3lzX2ZjaG1vZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAlI2xvIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JfQotCXJldHVybiAwOwotfQotCiAjaWZkZWYgQUxQSEEKIGludAotc3lzX29zZl91dGltZXModGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludHR2MzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQotaW50Ci1zeXNfdXRpbWVzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19vc2ZfdXRpbWVzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKIAkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQlwcmludHR2X2JpdG5lc3ModGNwLCB0Y3AtPnVfYXJnWzFdLCBCSVRORVNTXzMyLCAgMCk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2RlY29kZV91dGltZXMoc3RydWN0IHRjYiAqdGNwLCBpbnQgb2Zmc2V0LCBpbnQgc3BlY2lhbCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnW29mZnNldF0pOworCQl0cHJpbnRmKCIsICIpOworCQlpZiAodGNwLT51X2FyZ1tvZmZzZXQgKyAxXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIHsKKwkJCXRwcmludGYoInsiKTsKKwkJCXByaW50dHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV0sCisJCQkJCUJJVE5FU1NfQ1VSUkVOVCwgc3BlY2lhbCk7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnR0dl9iaXRuZXNzKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXQgKyAxXQorCQkJCQkrIHNpemVvZiAoc3RydWN0IHRpbWV2YWwpLAorCQkJCQlCSVRORVNTX0NVUlJFTlQsIHNwZWNpYWwpOworCQkJdHByaW50ZigifSIpOworCQl9CiAJfQogCXJldHVybiAwOwogfQogCiBpbnQKLXN5c191dGltZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfdXRpbWVzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLQlsb25nIHV0WzJdOworCXJldHVybiBkZWNvZGVfdXRpbWVzKHRjcCwgMCwgMCk7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfZnV0aW1lc2F0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gZGVjb2RlX3V0aW1lcyh0Y3AsIDEsIDApOworfQorCitpbnQKK3N5c191dGltZW5zYXQoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50X2RpcmZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCWRlY29kZV91dGltZXModGNwLCAxLCAxKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyh1dGltZW5zYXRmbGFncywgdGNwLT51X2FyZ1szXSwgIkFUXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK3N5c191dGltZShzdHJ1Y3QgdGNiICp0Y3ApCit7CisJdW5pb24geworCQlsb25nIHV0bFsyXTsKKwkJaW50IHV0aVsyXTsKKwl9IHU7CiAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTE5MTIsMzggKzIzMDksNDYgQEAKIAkJCXRwcmludGYoIk5VTEwiKTsKIAkJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKIAkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwgc2l6ZW9mIHV0LAotCQkgICAgKGNoYXIgKikgdXQpIDwgMCkKKwkJZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwKKwkJCQkyICogcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0sCisJCQkJKGNoYXIgKikgJnUpIDwgMCkKIAkJCXRwcmludGYoIls/LCA/XSIpOwotCQllbHNlIHsKLQkJCXRwcmludGYoIlslcywiLCBzcHJpbnR0aW1lKHV0WzBdKSk7Ci0JCQl0cHJpbnRmKCIgJXNdIiwgc3ByaW50dGltZSh1dFsxXSkpOworCQllbHNlIGlmIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XQorCQkJID09IHNpemVvZiB1LnV0bFswXSkgeworCQkJdHByaW50ZigiWyVzLCIsIHNwcmludHRpbWUodS51dGxbMF0pKTsKKwkJCXRwcmludGYoIiAlc10iLCBzcHJpbnR0aW1lKHUudXRsWzFdKSk7CiAJCX0KKwkJZWxzZSBpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0KKwkJCSA9PSBzaXplb2YgdS51dGlbMF0pIHsKKwkJCXRwcmludGYoIlslcywiLCBzcHJpbnR0aW1lKHUudXRpWzBdKSk7CisJCQl0cHJpbnRmKCIgJXNdIiwgc3ByaW50dGltZSh1LnV0aVsxXSkpOworCQl9CisJCWVsc2UKKwkJCWFib3J0KCk7CiAJfQogCXJldHVybiAwOwogfQogCi1pbnQKLXN5c19ta25vZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzdGF0aWMgaW50CitkZWNvZGVfbWtub2Qoc3RydWN0IHRjYiAqdGNwLCBpbnQgb2Zmc2V0KQogewotCWludCBtb2RlID0gdGNwLT51X2FyZ1sxXTsKKwlpbnQgbW9kZSA9IHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV07CiAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXRdKTsKIAkJdHByaW50ZigiLCAlcyIsIHNwcmludG1vZGUobW9kZSkpOwogCQlzd2l0Y2ggKG1vZGUgJiBTX0lGTVQpIHsKIAkJY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6CiAjaWZkZWYgTElOVVhTUEFSQwogCQkJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkKIAkJCXRwcmludGYoIiwgbWFrZWRldiglbHUsICVsdSkiLAotCQkJCSh1bnNpZ25lZCBsb25nKSAoKHRjcC0+dV9hcmdbMl0gPj4gMTgpICYgMHgzZmZmKSwKLQkJCQkodW5zaWduZWQgbG9uZykgKHRjcC0+dV9hcmdbMl0gJiAweDNmZmZmKSk7CisJCQkJKHVuc2lnbmVkIGxvbmcpICgodGNwLT51X2FyZ1tvZmZzZXQgKyAyXSA+PiAxOCkgJiAweDNmZmYpLAorCQkJCSh1bnNpZ25lZCBsb25nKSAodGNwLT51X2FyZ1tvZmZzZXQgKyAyXSAmIDB4M2ZmZmYpKTsKIAkJCWVsc2UKICNlbmRpZgogCQkJdHByaW50ZigiLCBtYWtlZGV2KCVsdSwgJWx1KSIsCi0JCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHRjcC0+dV9hcmdbMl0pLAotCQkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcih0Y3AtPnVfYXJnWzJdKSk7CisJCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHRjcC0+dV9hcmdbb2Zmc2V0ICsgMl0pLAorCQkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcih0Y3AtPnVfYXJnW29mZnNldCArIDJdKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpAQCAtMTk1Myw4ICsyMzU4LDI0IEBACiB9CiAKIGludAotc3lzX21rZmlmbyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfbWtub2Qoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkZWNvZGVfbWtub2QodGNwLCAwKTsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19ta25vZGF0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRfZGlyZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gZGVjb2RlX21rbm9kKHRjcCwgMSk7Cit9CisjZW5kaWYKKworI2lmZGVmIEZSRUVCU0QKK2ludAorc3lzX21rZmlmbyhzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CkBAIC0xOTYyLDEzICsyMzgzLDEzIEBACiAJfQogCXJldHVybiAwOwogfQorI2VuZGlmIC8qIEZSRUVCU0QgKi8KIAogaW50Ci1zeXNfZnN5bmModGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZzeW5jKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTE5NzYsOSArMjM5Nyw3IEBACiAjaWZkZWYgTElOVVgKIAogc3RhdGljIHZvaWQKLXByaW50ZGlyKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50ZGlyKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyKQogewogCXN0cnVjdCBkaXJlbnQgZDsKIApAQCAtMTk5NywxMSArMjQxNiwxMSBAQAogfQogCiBpbnQKLXN5c19yZWFkZGlyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19yZWFkZGlyKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CiAJfSBlbHNlIHsKIAkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdGNwLT51X3J2YWwgPT0gMCB8fCAhdmVyYm9zZSh0Y3ApKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwpAQCAtMjAzMywxNCArMjQ1MiwxNCBAQAogI2VuZGlmCiAKIGludAotc3lzX2dldGRlbnRzKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRkZW50cyhzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaW50IGksIGxlbiwgZGVudHMgPSAwOwogCWNoYXIgKmJ1ZjsKIAogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAkJcmV0dXJuIDA7CiAJfQogCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKQEAgLTIwNDgsNyArMjQ2Nyw4IEBACiAJCXJldHVybiAwOwogCX0KIAlsZW4gPSB0Y3AtPnVfcnZhbDsKLQlpZiAoKGJ1ZiA9IG1hbGxvYyhsZW4pKSA9PSBOVUxMKSB7CisJYnVmID0gbGVuID8gbWFsbG9jKGxlbikgOiBOVUxMOworCWlmIChsZW4gJiYgIWJ1ZikgewogCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKIAkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKIAkJcmV0dXJuIDA7CkBAIC0yMTE3LDE0ICsyNTM3LDE0IEBACiAKICNpZiBfTEZTNjRfTEFSR0VGSUxFCiBpbnQKLXN5c19nZXRkZW50czY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRkZW50czY0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpbnQgaSwgbGVuLCBkZW50cyA9IDA7CiAJY2hhciAqYnVmOwogCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCQlyZXR1cm4gMDsKIAl9CiAJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgewpAQCAtMjEzMiw3ICsyNTUyLDggQEAKIAkJcmV0dXJuIDA7CiAJfQogCWxlbiA9IHRjcC0+dV9ydmFsOwotCWlmICgoYnVmID0gbWFsbG9jKGxlbikpID09IE5VTEwpIHsKKwlidWYgPSBsZW4gPyBtYWxsb2MobGVuKSA6IE5VTEw7CisJaWYgKGxlbiAmJiAhYnVmKSB7CiAJCXRwcmludGYoIiUjbHgsICVsdSIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwogCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOwogCQlyZXR1cm4gMDsKQEAgLTIxNDgsNyArMjU2OSw3IEBACiAJCXN0cnVjdCBkaXJlbnQ2NCAqZCA9IChzdHJ1Y3QgZGlyZW50NjQgKikgJmJ1ZltpXTsKICNpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKFNWUjQpCiAJCWlmICghYWJicmV2KHRjcCkpIHsKLQkJCXRwcmludGYoIiVze2RfaW5vPSVsbHUsIGRfb2ZmPSVsbHUsICIsCisJCQl0cHJpbnRmKCIlc3tkX2lubz0lIiBQUkl1NjQgIiwgZF9vZmY9JSIgUFJJZDY0ICIsICIsCiAJCQkJaSA/ICIgIiA6ICIiLAogCQkJCWQtPmRfaW5vLAogCQkJCWQtPmRfb2ZmKTsKQEAgLTIxNzAsNiArMjU5MSwxMCBAQAogCQkJCWQtPmRfbmFtbGVuLCBkLT5kX25hbWxlbiwgZC0+ZF9uYW1lKTsKIAkJfQogI2VuZGlmIC8qIFNVTk9TNCAqLworCQlpZiAoIWQtPmRfcmVjbGVuKSB7CisJCQl0cHJpbnRmKCIvKiBkX3JlY2xlbiA9PSAwLCBwcm9ibGVtIGhlcmUgKi8iKTsKKwkJCWJyZWFrOworCQl9CiAJCWkgKz0gZC0+ZF9yZWNsZW47CiAJCWRlbnRzKys7CiAJfQpAQCAtMjE4NSwxNSArMjYxMCwxNSBAQAogCiAjaWZkZWYgRlJFRUJTRAogaW50Ci1zeXNfZ2V0ZGlyZW50cmllcyh0Y3ApCi1zdHJ1Y3QgdGNiICogdGNwOworc3lzX2dldGRpcmVudHJpZXMoc3RydWN0IHRjYiAqdGNwKQogewogCWludCBpLCBsZW4sIGRlbnRzID0gMDsKIAlsb25nIGJhc2VwOwogCWNoYXIgKmJ1ZjsKIAogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAkJcmV0dXJuIDA7CiAJfQogCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKQEAgLTIyMjIsNiArMjY0NywxMCBAQAogCQkJdHByaW50ZigiLCBkX25hbWxlbj0ldSwgZF9uYW1lPVwiJS4qc1wifSIsCiAJCQkJZC0+ZF9uYW1sZW4sIGQtPmRfbmFtbGVuLCBkLT5kX25hbWUpOwogCQl9CisJCWlmICghZC0+ZF9yZWNsZW4pIHsKKwkJCXRwcmludGYoIi8qIGRfcmVjbGVuID09IDAsIHByb2JsZW0gaGVyZSAqLyIpOworCQkJYnJlYWs7CisJCX0KIAkJaSArPSBkLT5kX3JlY2xlbjsKIAkJZGVudHMrKzsKIAl9CkBAIC0yMjQxLDQxICsyNjcwLDM4IEBACiAKICNpZmRlZiBMSU5VWAogaW50Ci1zeXNfZ2V0Y3dkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRjd2Qoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChleGl0aW5nKHRjcCkpIHsKLQlpZiAoc3lzZXJyb3IodGNwKSkKLQkgICAgdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCWVsc2UKLQkgICAgcHJpbnRwYXRobih0Y3AsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9ydmFsIC0gMSk7Ci0JdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJZWxzZQorCQkJcHJpbnRwYXRobih0Y3AsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9ydmFsIC0gMSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOwogfQogI2VuZGlmIC8qIExJTlVYICovCiAKICNpZmRlZiBGUkVFQlNECiBpbnQKLXN5c19fX2dldGN3ZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfX19nZXRjd2Qoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChleGl0aW5nKHRjcCkpIHsKLQlpZiAoc3lzZXJyb3IodGNwKSkKLQkgICAgdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotCWVsc2UKLQkgICAgcHJpbnRwYXRobih0Y3AsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7Ci0gICAgfQotICAgIHJldHVybiAwOworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJCWVsc2UKKwkJCXByaW50cGF0aG4odGNwLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7CiB9CiAjZW5kaWYKIAogI2lmZGVmIEhBVkVfU1lTX0FTWU5DSF9ICiAKIGludAotc3lzX2Fpb3JlYWQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2Fpb3JlYWQoc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBhaW9fcmVzdWx0X3QgcmVzOwogCkBAIC0yMjk5LDggKzI3MjUsNyBAQAogfQogCiBpbnQKLXN5c19haW93cml0ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfYWlvd3JpdGUoc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBhaW9fcmVzdWx0X3QgcmVzOwogCkBAIC0yMzI0LDggKzI3NDksNyBAQAogfQogCiBpbnQKLXN5c19haW93YWl0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19haW93YWl0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkKIAkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMF0pOwpAQCAtMjMzMyw4ICsyNzU3LDcgQEAKIH0KIAogaW50Ci1zeXNfYWlvY2FuY2VsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19haW9jYW5jZWwoc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBhaW9fcmVzdWx0X3QgcmVzOwogCkBAIC0yMzYyLDE1MiArMjc4NSwxNDggQEAKIH07CiAKIHN0YXRpYyB2b2lkCi1wcmludF94YXR0cl92YWwodGNwLCBmYWlsZWQsIGFyZywgaW5zaXplLCBzaXplKQotc3RydWN0IHRjYiAqdGNwOwotaW50IGZhaWxlZDsKLXVuc2lnbmVkIGxvbmcgYXJnOwotdW5zaWduZWQgbG9uZyBpbnNpemUsIHNpemU7CitwcmludF94YXR0cl92YWwoc3RydWN0IHRjYiAqdGNwLCBpbnQgZmFpbGVkLAorCQl1bnNpZ25lZCBsb25nIGFyZywKKwkJdW5zaWduZWQgbG9uZyBpbnNpemUsCisJCXVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKLSAgICBpZiAoIWZhaWxlZCkgewotCXVuc2lnbmVkIGxvbmcgY2FwYWNpdHkgPSA0ICogc2l6ZSArIDE7Ci0JdW5zaWduZWQgY2hhciAqYnVmID0gKGNhcGFjaXR5IDwgc2l6ZSkgPyBOVUxMIDogbWFsbG9jKGNhcGFjaXR5KTsKLQlpZiAoYnVmID09IE5VTEwgfHwgLyogcHJvYmFibHkgYSBib2d1cyBzaXplIGFyZ3VtZW50ICovCi0JICAgIHVtb3Zlbih0Y3AsIGFyZywgc2l6ZSwgKGNoYXIgKikgJmJ1ZlszICogc2l6ZV0pIDwgMCkgewotCSAgICBmYWlsZWQgPSAxOwotCX0KLQllbHNlIHsKLQkgICAgdW5zaWduZWQgY2hhciAqb3V0ID0gYnVmOwotCSAgICB1bnNpZ25lZCBjaGFyICppbiA9ICZidWZbMyAqIHNpemVdOwotCSAgICBzaXplX3QgaTsKLQkgICAgZm9yIChpID0gMDsgaSA8IHNpemU7ICsraSkKLQkJaWYgKGlzcHJpbnQoaW5baV0pKQotCQkgICAgKm91dCsrID0gaW5baV07Ci0JCWVsc2UgewotI2RlZmluZSB0b2hleChuKSAiMDEyMzQ1Njc4OWFiY2RlZiJbbl0KLQkJICAgICpvdXQrKyA9ICdcXCc7Ci0JCSAgICAqb3V0KysgPSAneCc7Ci0JCSAgICAqb3V0KysgPSB0b2hleChpbltpXSAvIDE2KTsKLQkJICAgICpvdXQrKyA9IHRvaGV4KGluW2ldICUgMTYpOworCWlmICghZmFpbGVkKSB7CisJCXVuc2lnbmVkIGxvbmcgY2FwYWNpdHkgPSA0ICogc2l6ZSArIDE7CisJCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IChjYXBhY2l0eSA8IHNpemUpID8gTlVMTCA6IG1hbGxvYyhjYXBhY2l0eSk7CisJCWlmIChidWYgPT0gTlVMTCB8fCAvKiBwcm9iYWJseSBhIGJvZ3VzIHNpemUgYXJndW1lbnQgKi8KKwkJCXVtb3Zlbih0Y3AsIGFyZywgc2l6ZSwgKGNoYXIgKikgJmJ1ZlszICogc2l6ZV0pIDwgMCkgeworCQkJZmFpbGVkID0gMTsKIAkJfQotCSAgICAvKiBEb24ndCBwcmludCB0ZXJtaW5hdGluZyBOVUwgaWYgdGhlcmUgaXMgb25lLiAgKi8KLQkgICAgaWYgKGluW2kgLSAxXSA9PSAnXDAnKQotCQlvdXQgLT0gNDsKLQkgICAgKm91dCA9ICdcMCc7Ci0JICAgIHRwcmludGYoIiwgXCIlc1wiLCAlbGQiLCBidWYsIGluc2l6ZSk7CisJCWVsc2UgeworCQkJdW5zaWduZWQgY2hhciAqb3V0ID0gYnVmOworCQkJdW5zaWduZWQgY2hhciAqaW4gPSAmYnVmWzMgKiBzaXplXTsKKwkJCXNpemVfdCBpOworCQkJZm9yIChpID0gMDsgaSA8IHNpemU7ICsraSkgeworCQkJCWlmIChpc3ByaW50KGluW2ldKSkKKwkJCQkJKm91dCsrID0gaW5baV07CisJCQkJZWxzZSB7CisjZGVmaW5lIHRvaGV4KG4pICIwMTIzNDU2Nzg5YWJjZGVmIltuXQorCQkJCQkqb3V0KysgPSAnXFwnOworCQkJCQkqb3V0KysgPSAneCc7CisJCQkJCSpvdXQrKyA9IHRvaGV4KGluW2ldIC8gMTYpOworCQkJCQkqb3V0KysgPSB0b2hleChpbltpXSAlIDE2KTsKKwkJCQl9CisJCQl9CisJCQkvKiBEb24ndCBwcmludCB0ZXJtaW5hdGluZyBOVUwgaWYgdGhlcmUgaXMgb25lLiAgKi8KKwkJCWlmIChpID4gMCAmJiBpbltpIC0gMV0gPT0gJ1wwJykKKwkJCQlvdXQgLT0gNDsKKwkJCSpvdXQgPSAnXDAnOworCQkJdHByaW50ZigiLCBcIiVzXCIsICVsZCIsIGJ1ZiwgaW5zaXplKTsKKwkJfQorCQlmcmVlKGJ1Zik7CiAJfQotCWZyZWUoYnVmKTsKLSAgICB9Ci0gICAgaWYgKGZhaWxlZCkKLQl0cHJpbnRmKCIsIDB4JWx4LCAlbGQiLCBhcmcsIGluc2l6ZSk7CisJaWYgKGZhaWxlZCkKKwkJdHByaW50ZigiLCAweCVseCwgJWxkIiwgYXJnLCBpbnNpemUpOwogfQogCiBpbnQKLXN5c19zZXR4YXR0cih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfc2V0eGF0dHIoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLQlwcmludF94YXR0cl92YWwodGNwLCAwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzNdKTsKLQl0cHJpbnRmKCIsICIpOwotCXByaW50ZmxhZ3MoeGF0dHJmbGFncywgdGNwLT51X2FyZ1s0XSwgIlhBVFRSXz8/PyIpOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7CisJCXByaW50X3hhdHRyX3ZhbCh0Y3AsIDAsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbM10pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZsYWdzKHhhdHRyZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJYQVRUUl8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIGludAotc3lzX2ZzZXR4YXR0cih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZnNldHhhdHRyKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7Ci0JcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7Ci0JcHJpbnRfeGF0dHJfdmFsKHRjcCwgMCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1szXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludGZsYWdzKHhhdHRyZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJYQVRUUl8/Pz8iKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKwkJcHJpbnRfeGF0dHJfdmFsKHRjcCwgMCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1szXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MoeGF0dHJmbGFncywgdGNwLT51X2FyZ1s0XSwgIlhBVFRSXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfZ2V0eGF0dHIodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2dldHhhdHRyKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotCXRwcmludGYoIiwgIik7Ci0JcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7Ci0gICAgfSBlbHNlIHsKLQlwcmludF94YXR0cl92YWwodGNwLCBzeXNlcnJvcih0Y3ApLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLAotCQkJdGNwLT51X3J2YWwpOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7CisJfSBlbHNlIHsKKwkJcHJpbnRfeGF0dHJfdmFsKHRjcCwgc3lzZXJyb3IodGNwKSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwKKwkJCQl0Y3AtPnVfcnZhbCk7CisJfQorCXJldHVybiAwOwogfQogCiBpbnQKLXN5c19mZ2V0eGF0dHIodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZnZXR4YXR0cihzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOwotICAgIH0gZWxzZSB7Ci0JcHJpbnRfeGF0dHJfdmFsKHRjcCwgc3lzZXJyb3IodGNwKSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwKLQkJCXRjcC0+dV9ydmFsKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKwl9IGVsc2UgeworCQlwcmludF94YXR0cl92YWwodGNwLCBzeXNlcnJvcih0Y3ApLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdLAorCQkJCXRjcC0+dV9ydmFsKTsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIGludAotc3lzX2xpc3R4YXR0cih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfbGlzdHhhdHRyKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwotICAgIH0gZWxzZSB7Ci0JLyogWFhYIFByaW50IHZhbHVlIGluIGZvcm1hdCAqLwotCXRwcmludGYoIiwgJXAsICVsdSIsICh2b2lkICopIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwl9IGVsc2UgeworCQkvKiBYWFggUHJpbnQgdmFsdWUgaW4gZm9ybWF0ICovCisJCXRwcmludGYoIiwgJXAsICVsdSIsICh2b2lkICopIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfZmxpc3R4YXR0cih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZmxpc3R4YXR0cihzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKLSAgICB9IGVsc2UgewotCS8qIFhYWCBQcmludCB2YWx1ZSBpbiBmb3JtYXQgKi8KLQl0cHJpbnRmKCIsICVwLCAlbHUiLCAodm9pZCAqKSB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCS8qIFhYWCBQcmludCB2YWx1ZSBpbiBmb3JtYXQgKi8KKwkJdHByaW50ZigiLCAlcCwgJWx1IiwgKHZvaWQgKikgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOwogfQogCiBpbnQKLXN5c19yZW1vdmV4YXR0cih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfcmVtb3ZleGF0dHIoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfZnJlbW92ZXhhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19mcmVtb3ZleGF0dHIoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKLQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKwl9CisJcmV0dXJuIDA7CiB9CiAKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGFkdmlzZVtdID0gewogICB7IFBPU0lYX0ZBRFZfTk9STUFMLAkJIlBPU0lYX0ZBRFZfTk9STUFMIgl9LAogICB7IFBPU0lYX0ZBRFZfUkFORE9NLAkJIlBPU0lYX0ZBRFZfUkFORE9NIgl9LApAQCAtMjUyMSw0MiArMjk0MCwxMTYgQEAKIAogI2lmZGVmIExJTlVYCiBpbnQKLXN5c19mYWR2aXNlNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZhZHZpc2U2NChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICVsbGQsICVsZCwgIiwKLQkJdGNwLT51X2FyZ1swXSwKLSMgaWYgZGVmaW5lZCBJQTY0IHx8IGRlZmluZWQgWDg2XzY0IHx8IGRlZmluZWQgQUxQSEEKLQkJKGxvbmcgbG9uZyBpbnQpIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCXByaW50eHZhbChhZHZpc2UsIHRjcC0+dV9hcmdbM10sICJQT1NJWF9GQURWXz8/PyIpOwotI2Vsc2UKLQkJTE9OR19MT05HKHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pLCB0Y3AtPnVfYXJnWzNdKTsKLQlwcmludHh2YWwoYWR2aXNlLCB0Y3AtPnVfYXJnWzRdLCAiUE9TSVhfRkFEVl8/Pz8iKTsKLSNlbmRpZgotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpbnQgYXJnbjsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlhcmduID0gcHJpbnRsbHZhbCh0Y3AsICIlbGxkIiwgMSk7CisJCXRwcmludGYoIiwgJWxkLCAiLCB0Y3AtPnVfYXJnW2FyZ24rK10pOworCQlwcmludHh2YWwoYWR2aXNlLCB0Y3AtPnVfYXJnW2FyZ25dLCAiUE9TSVhfRkFEVl8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7CiB9CiAjZW5kaWYKIAogCiBpbnQKLXN5c19mYWR2aXNlNjRfNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2ZhZHZpc2U2NF82NChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICVsbGQsICVsbGQsICIsCi0JCXRjcC0+dV9hcmdbMF0sCi0jIGlmIGRlZmluZWQgSUE2NCB8fCBkZWZpbmVkIFg4Nl82NCB8fCBkZWZpbmVkIEFMUEhBCi0JCShsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdLCAobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1syXSk7Ci0JcHJpbnR4dmFsKGFkdmlzZSwgdGNwLT51X2FyZ1szXSwgIlBPU0lYX0ZBRFZfPz8/Iik7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaW50IGFyZ247CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKyNpZiBkZWZpbmVkIEFSTSB8fCBkZWZpbmVkIFBPV0VSUEMKKwkJYXJnbiA9IHByaW50bGx2YWwodGNwLCAiJWxsZCwgIiwgMik7CiAjZWxzZQotCQlMT05HX0xPTkcodGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSksCi0JCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7Ci0JcHJpbnR4dmFsKGFkdmlzZSwgdGNwLT51X2FyZ1s1XSwgIlBPU0lYX0ZBRFZfPz8/Iik7CisJCWFyZ24gPSBwcmludGxsdmFsKHRjcCwgIiVsbGQsICIsIDEpOwogI2VuZGlmCi0gICAgfQotICAgIHJldHVybiAwOworCQlhcmduID0gcHJpbnRsbHZhbCh0Y3AsICIlbGxkLCAiLCBhcmduKTsKKyNpZiBkZWZpbmVkIEFSTSB8fCBkZWZpbmVkIFBPV0VSUEMKKwkJcHJpbnR4dmFsKGFkdmlzZSwgdGNwLT51X2FyZ1sxXSwgIlBPU0lYX0ZBRFZfPz8/Iik7CisjZWxzZQorCQlwcmludHh2YWwoYWR2aXNlLCB0Y3AtPnVfYXJnW2FyZ25dLCAiUE9TSVhfRkFEVl8/Pz8iKTsKKyNlbmRpZgorCX0KKwlyZXR1cm4gMDsKIH0KIAotLy8jZW5kaWYgLypIQVZFX0FORFJPSURfT1MgKi8KKyNpZmRlZiBMSU5VWAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGlub3RpZnlfbW9kZXNbXSA9IHsKKwl7IDB4MDAwMDAwMDEsCSJJTl9BQ0NFU1MiCX0sCisJeyAweDAwMDAwMDAyLAkiSU5fTU9ESUZZIgl9LAorCXsgMHgwMDAwMDAwNCwJIklOX0FUVFJJQiIJfSwKKwl7IDB4MDAwMDAwMDgsCSJJTl9DTE9TRV9XUklURSJ9LAorCXsgMHgwMDAwMDAxMCwJIklOX0NMT1NFX05PV1JJVEUifSwKKwl7IDB4MDAwMDAwMjAsCSJJTl9PUEVOIgl9LAorCXsgMHgwMDAwMDA0MCwJIklOX01PVkVEX0ZST00iCX0sCisJeyAweDAwMDAwMDgwLAkiSU5fTU9WRURfVE8iCX0sCisJeyAweDAwMDAwMTAwLAkiSU5fQ1JFQVRFIgl9LAorCXsgMHgwMDAwMDIwMCwJIklOX0RFTEVURSIJfSwKKwl7IDB4MDAwMDA0MDAsCSJJTl9ERUxFVEVfU0VMRiJ9LAorCXsgMHgwMDAwMDgwMCwJIklOX01PVkVfU0VMRiIJfSwKKwl7IDB4MDAwMDIwMDAsCSJJTl9VTk1PVU5UIgl9LAorCXsgMHgwMDAwNDAwMCwJIklOX1FfT1ZFUkZMT1ciCX0sCisJeyAweDAwMDA4MDAwLAkiSU5fSUdOT1JFRCIJfSwKKwl7IDB4MDEwMDAwMDAsCSJJTl9PTkxZRElSIgl9LAorCXsgMHgwMjAwMDAwMCwJIklOX0RPTlRfRk9MTE9XIn0sCisJeyAweDIwMDAwMDAwLAkiSU5fTUFTS19BREQiCX0sCisJeyAweDQwMDAwMDAwLAkiSU5fSVNESVIiCX0sCisJeyAweDgwMDAwMDAwLAkiSU5fT05FU0hPVCIJfSwKKwl7IDAsCQlOVUxMCQl9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaW5vdGlmeV9pbml0X2ZsYWdzW10gPSB7CisJeyAweDAwMDAwODAwLAkiSU5fTk9OQkxPQ0siCX0sCisJeyAweDAwMDgwMDAwLAkiSU5fQ0xPRVhFQyIgCX0sCisJeyAwLAkJTlVMTCAJCX0KK307CisKK2ludAorc3lzX2lub3RpZnlfYWRkX3dhdGNoKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZsYWdzKGlub3RpZnlfbW9kZXMsIHRjcC0+dV9hcmdbMl0sICJJTl8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2lub3RpZnlfcm1fd2F0Y2goc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2lub3RpZnlfaW5pdDEoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludGZsYWdzKGlub3RpZnlfaW5pdF9mbGFncywgdGNwLT51X2FyZ1swXSwgIklOXz8/PyIpOworCXJldHVybiAwOworfQorCitpbnQKK3N5c19mYWxsb2NhdGUoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWludCBhcmduOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CQkvKiBmZCAqLworCQl0cHJpbnRmKCIsICIpOworCQl0cHJpbnRmKCIlI2xvLCAiLCB0Y3AtPnVfYXJnWzFdKTsJLyogbW9kZSAqLworCQlhcmduID0gcHJpbnRsbHZhbCh0Y3AsICIlbGx1LCAiLCAyKTsJLyogb2Zmc2V0ICovCisJCXByaW50bGx2YWwodGNwLCAiJWxsdSIsIGFyZ24pOwkJLyogbGVuICovCisJfQorCXJldHVybiAwOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbXBvcnQtQW5kcm9pZC5zaCBiL2ltcG9ydC1BbmRyb2lkLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmViNTAxZGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtQW5kcm9pZC5zaApAQCAtMCwwICsxLDYzIEBACisjIS9iaW4vYmFzaAorIworIyBBc3Npc3RzIHdpdGggaW1wb3J0aW5nIGEgbmV3IHZlcnNpb24gb2YgU3RyYWNlIGZvciBBbmRyb2lkLgorIyBSZW1vdmVzIHNvdXJjZSBmaWxlcyBmcm9tIHRoZSBTdHJhY2Ugb3JpZ2luYWwgZGlzdHJpYnV0aW9uIHRoYXQgYXJlIG5vdAorIyBuZWVkZWQgb24gQW5kcm9pZC4KKyMKKyMgUnVuIHRoaXMgc2NyaXB0IGFmdGVyIGV4dHJhY3RpbmcgYW4gU3RyYWNlIGRpc3RyaWJ1dGlvbiBpbnRvIGV4dGVybmFsL3N0cmFjZS4KKyMKKworVU5ORUVERURfU09VUkNFUz0iXAorICBNYWtlZmlsZS5hbSBcCisgIE1ha2VmaWxlLmluIFwKKyAgUkVBRE1FLWZyZWVic2QgXAorICBSRUFETUUtc3Vub3M0IFwKKyAgUkVBRE1FLXN2cjQgXAorICBhY2luY2x1ZGUubTQgXAorICBhY2xvY2FsLm00IFwKKyAgY29uZmlnLmd1ZXNzIFwKKyAgY29uZmlnLmguaW4gXAorICBjb25maWcubG9nIFwKKyAgY29uZmlnLnN0YXR1cyBcCisgIGNvbmZpZy5zdWIgXAorICBjb25maWd1cmUgXAorICBjb25maWd1cmUuYWMgXAorICBkZWJpYW4gXAorICBkZXBjb21wIFwKKyAgZXJybm9lbnQuc2ggXAorICBmcmVlYnNkIFwKKyAgaW5zdGFsbC1zaCBcCisgIGxpbnV4L2FscGhhIFwKKyAgbGludXgvYXJtL2lvY3RsZW50LmguaW4gXAorICBsaW51eC9hdnIzMiBcCisgIGxpbnV4L2JmaW4gXAorICBsaW51eC9ocHBhIFwKKyAgbGludXgvaTM4Ni9pb2N0bGVudC5oLmluIFwKKyAgbGludXgvaWE2NCBcCisgIGxpbnV4L2lvY3RsZW50LmguaW4gXAorICBsaW51eC9tNjhrIFwKKyAgbGludXgvbWljcm9ibGF6ZSBcCisgIGxpbnV4L21pcHMvaW9jdGxlbnQuaC5pbiBcCisgIGxpbnV4L3Bvd2VycGMgXAorICBsaW51eC9zMzkwIFwKKyAgbGludXgvczM5MHggXAorICBsaW51eC9zaC9pb2N0bGVudC5oLmluIFwKKyAgbGludXgvc2g2NCBcCisgIGxpbnV4L3NwYXJjIFwKKyAgbGludXgvc3BhcmM2NCBcCisgIGxpbnV4L3RpbGUgXAorICBsaW51eC94ODZfNjQgXAorICBtNCBcCisgIG1pc3NpbmcgXAorICBta2luc3RhbGxkaXJzIFwKKyAgc2lnbmFsZW50LnNoIFwKKyAgc3Vub3M0IFwKKyAgc3ZyNCBcCisgIHN5c2NhbGxlbnQuc2ggXAorICB0ZXN0IFwKKyAgdGVzdHMgXAorICB4bGF0ZS5lbCBcCisiCisKK3JtIC1ydmYgJFVOTkVFREVEX1NPVVJDRVMKKwpkaWZmIC0tZ2l0IGEvaW5zdGFsbC1zaCBiL2luc3RhbGwtc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDM2Zjk2ZjMuLjAwMDAwMDAKLS0tIGEvaW5zdGFsbC1zaAorKysgL2Rldi9udWxsCkBAIC0xLDI3NiArMCwwIEBACi0jIS9iaW4vc2gKLSMKLSMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCi0jIFRoaXMgY29tZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKS4KLSMKLSMgQ29weXJpZ2h0IDE5OTEgYnkgdGhlIE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kKLSMKLSMgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgZGlzdHJpYnV0ZSwgYW5kIHNlbGwgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCi0jIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0Ci0jIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZCB0aGF0IGJvdGggdGhhdAotIyBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nCi0jIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIE0uSS5ULiBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvcgotIyBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMsCi0jIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gIE0uSS5ULiBtYWtlcyBubyByZXByZXNlbnRhdGlvbnMgYWJvdXQgdGhlCi0jIHN1aXRhYmlsaXR5IG9mIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLiAgSXQgaXMgcHJvdmlkZWQgImFzIGlzIgotIyB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KLSMKLSMgQ2FsbGluZyB0aGlzIHNjcmlwdCBpbnN0YWxsLXNoIGlzIHByZWZlcnJlZCBvdmVyIGluc3RhbGwuc2gsIHRvIHByZXZlbnQKLSMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20gaXQKLSMgd2hlbiB0aGVyZSBpcyBubyBNYWtlZmlsZS4KLSMKLSMgVGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgotIyBmcm9tIHNjcmF0Y2guICBJdCBjYW4gb25seSBpbnN0YWxsIG9uZSBmaWxlIGF0IGEgdGltZSwgYSByZXN0cmljdGlvbgotIyBzaGFyZWQgd2l0aCBtYW55IE9TJ3MgaW5zdGFsbCBwcm9ncmFtcy4KLQotCi0jIHNldCBET0lUUFJPRyB0byBlY2hvIHRvIHRlc3QgdGhpcyBzY3JpcHQKLQotIyBEb24ndCB1c2UgOi0gc2luY2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBkb24ndCBsaWtlIGl0LgotZG9pdD0iJHtET0lUUFJPRy19IgotCi0KLSMgcHV0IGluIGFic29sdXRlIHBhdGhzIGlmIHlvdSBkb24ndCBoYXZlIHRoZW0gaW4geW91ciBwYXRoOyBvciB1c2UgZW52LiB2YXJzLgotCi1tdnByb2c9IiR7TVZQUk9HLW12fSIKLWNwcHJvZz0iJHtDUFBST0ctY3B9IgotY2htb2Rwcm9nPSIke0NITU9EUFJPRy1jaG1vZH0iCi1jaG93bnByb2c9IiR7Q0hPV05QUk9HLWNob3dufSIKLWNoZ3JwcHJvZz0iJHtDSEdSUFBST0ctY2hncnB9Igotc3RyaXBwcm9nPSIke1NUUklQUFJPRy1zdHJpcH0iCi1ybXByb2c9IiR7Uk1QUk9HLXJtfSIKLW1rZGlycHJvZz0iJHtNS0RJUlBST0ctbWtkaXJ9IgotCi10cmFuc2Zvcm1iYXNlbmFtZT0iIgotdHJhbnNmb3JtX2FyZz0iIgotaW5zdGNtZD0iJG12cHJvZyIKLWNobW9kY21kPSIkY2htb2Rwcm9nIDA3NTUiCi1jaG93bmNtZD0iIgotY2hncnBjbWQ9IiIKLXN0cmlwY21kPSIiCi1ybWNtZD0iJHJtcHJvZyAtZiIKLW12Y21kPSIkbXZwcm9nIgotc3JjPSIiCi1kc3Q9IiIKLWRpcl9hcmc9IiIKLQotd2hpbGUgWyB4IiQxIiAhPSB4IF07IGRvCi0gICAgY2FzZSAkMSBpbgotCS1jKSBpbnN0Y21kPSRjcHByb2cKLQkgICAgc2hpZnQKLQkgICAgY29udGludWU7OwotCi0JLWQpIGRpcl9hcmc9dHJ1ZQotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0KLQktbSkgY2htb2RjbWQ9IiRjaG1vZHByb2cgJDIiCi0JICAgIHNoaWZ0Ci0JICAgIHNoaWZ0Ci0JICAgIGNvbnRpbnVlOzsKLQotCS1vKSBjaG93bmNtZD0iJGNob3ducHJvZyAkMiIKLQkgICAgc2hpZnQKLQkgICAgc2hpZnQKLQkgICAgY29udGludWU7OwotCi0JLWcpIGNoZ3JwY21kPSIkY2hncnBwcm9nICQyIgotCSAgICBzaGlmdAotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0KLQktcykgc3RyaXBjbWQ9JHN0cmlwcHJvZwotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0KLQktdD0qKSB0cmFuc2Zvcm1hcmc9YGVjaG8gJDEgfCBzZWQgJ3MvLXQ9Ly8nYAotCSAgICBzaGlmdAotCSAgICBjb250aW51ZTs7Ci0KLQktYj0qKSB0cmFuc2Zvcm1iYXNlbmFtZT1gZWNobyAkMSB8IHNlZCAncy8tYj0vLydgCi0JICAgIHNoaWZ0Ci0JICAgIGNvbnRpbnVlOzsKLQotCSopICBpZiBbIHgiJHNyYyIgPSB4IF0KLQkgICAgdGhlbgotCQlzcmM9JDEKLQkgICAgZWxzZQotCQkjIHRoaXMgY29sb24gaXMgdG8gd29yayBhcm91bmQgYSAzODZCU0QgL2Jpbi9zaCBidWcKLQkJOgotCQlkc3Q9JDEKLQkgICAgZmkKLQkgICAgc2hpZnQKLQkgICAgY29udGludWU7OwotICAgIGVzYWMKLWRvbmUKLQotaWYgWyB4IiRzcmMiID0geCBdCi10aGVuCi0JZWNobyAiJDA6IG5vIGlucHV0IGZpbGUgc3BlY2lmaWVkIiA+JjIKLQlleGl0IDEKLWVsc2UKLQk6Ci1maQotCi1pZiBbIHgiJGRpcl9hcmciICE9IHggXTsgdGhlbgotCWRzdD0kc3JjCi0Jc3JjPSIiCi0KLQlpZiBbIC1kICIkZHN0IiBdOyB0aGVuCi0JCWluc3RjbWQ9OgotCQljaG1vZGNtZD0iIgotCWVsc2UKLQkJaW5zdGNtZD0kbWtkaXJwcm9nCi0JZmkKLWVsc2UKLQotIyBXYWl0aW5nIGZvciB0aGlzIHRvIGJlIGRldGVjdGVkIGJ5IHRoZSAiJGluc3RjbWQgJHNyYyAkZHN0dG1wIiBjb21tYW5kCi0jIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCi0jIGlmICRzcmMgKGFuZCB0aHVzICRkc3R0bXApIGNvbnRhaW5zICcqJy4KLQotCWlmIFsgLWYgIiRzcmMiIF0gfHwgWyAtZCAiJHNyYyIgXQotCXRoZW4KLQkJOgotCWVsc2UKLQkJZWNobyAiJDA6ICRzcmMgZG9lcyBub3QgZXhpc3QiID4mMgotCQlleGl0IDEKLQlmaQotCi0JaWYgWyB4IiRkc3QiID0geCBdCi0JdGhlbgotCQllY2hvICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkIiA+JjIKLQkJZXhpdCAxCi0JZWxzZQotCQk6Ci0JZmkKLQotIyBJZiBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeSwgYXBwZW5kIHRoZSBpbnB1dCBmaWxlbmFtZTsgaWYgeW91ciBzeXN0ZW0KLSMgZG9lcyBub3QgbGlrZSBkb3VibGUgc2xhc2hlcyBpbiBmaWxlbmFtZXMsIHlvdSBtYXkgbmVlZCB0byBhZGQgc29tZSBsb2dpYwotCi0JaWYgWyAtZCAiJGRzdCIgXQotCXRoZW4KLQkJZHN0PSRkc3QvYGJhc2VuYW1lICIkc3JjImAKLQllbHNlCi0JCToKLQlmaQotZmkKLQotIyMgdGhpcyBzZWQgY29tbWFuZCBlbXVsYXRlcyB0aGUgZGlybmFtZSBjb21tYW5kCi1kc3RkaXI9YGVjaG8gIiRkc3QiIHwgc2VkIC1lICdzLFteL10qJCwsO3MsLyQsLDtzLF4kLC4sJ2AKLQotIyBNYWtlIHN1cmUgdGhhdCB0aGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGV4aXN0cy4KLSMgIHRoaXMgcGFydCBpcyB0YWtlbiBmcm9tIE5vYWggRnJpZWRtYW4ncyBta2luc3RhbGxkaXJzIHNjcmlwdAotCi0jIFNraXAgbG90cyBvZiBzdGF0IGNhbGxzIGluIHRoZSB1c3VhbCBjYXNlLgotaWYgWyAhIC1kICIkZHN0ZGlyIiBdOyB0aGVuCi1kZWZhdWx0SUZTPScKLQknCi1JRlM9IiR7SUZTLSRkZWZhdWx0SUZTfSIKLQotb0lGUz0kSUZTCi0jIFNvbWUgc2gncyBjYW4ndCBoYW5kbGUgSUZTPS8gZm9yIHNvbWUgcmVhc29uLgotSUZTPSclJwotc2V0IC0gYGVjaG8gIiRkc3RkaXIiIHwgc2VkIC1lICdzQC9AJUBnJyAtZSAnc0BeJUAvQCdgCi1JRlM9JG9JRlMKLQotcGF0aGNvbXA9JycKLQotd2hpbGUgWyAkIyAtbmUgMCBdIDsgZG8KLQlwYXRoY29tcD0kcGF0aGNvbXAkMQotCXNoaWZ0Ci0KLQlpZiBbICEgLWQgIiRwYXRoY29tcCIgXSA7Ci0gICAgICAgIHRoZW4KLQkJJG1rZGlycHJvZyAiJHBhdGhjb21wIgotCWVsc2UKLQkJOgotCWZpCi0KLQlwYXRoY29tcD0kcGF0aGNvbXAvCi1kb25lCi1maQotCi1pZiBbIHgiJGRpcl9hcmciICE9IHggXQotdGhlbgotCSRkb2l0ICRpbnN0Y21kICIkZHN0IiAmJgotCi0JaWYgWyB4IiRjaG93bmNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRjaG93bmNtZCAiJGRzdCI7IGVsc2UgOiA7IGZpICYmCi0JaWYgWyB4IiRjaGdycGNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRjaGdycGNtZCAiJGRzdCI7IGVsc2UgOiA7IGZpICYmCi0JaWYgWyB4IiRzdHJpcGNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRzdHJpcGNtZCAiJGRzdCI7IGVsc2UgOiA7IGZpICYmCi0JaWYgWyB4IiRjaG1vZGNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRjaG1vZGNtZCAiJGRzdCI7IGVsc2UgOiA7IGZpCi1lbHNlCi0KLSMgSWYgd2UncmUgZ29pbmcgdG8gcmVuYW1lIHRoZSBmaW5hbCBleGVjdXRhYmxlLCBkZXRlcm1pbmUgdGhlIG5hbWUgbm93LgotCi0JaWYgWyB4IiR0cmFuc2Zvcm1hcmciID0geCBdCi0JdGhlbgotCQlkc3RmaWxlPWBiYXNlbmFtZSAiJGRzdCJgCi0JZWxzZQotCQlkc3RmaWxlPWBiYXNlbmFtZSAiJGRzdCIgJHRyYW5zZm9ybWJhc2VuYW1lIHwKLQkJCXNlZCAkdHJhbnNmb3JtYXJnYCR0cmFuc2Zvcm1iYXNlbmFtZQotCWZpCi0KLSMgZG9uJ3QgYWxsb3cgdGhlIHNlZCBjb21tYW5kIHRvIGNvbXBsZXRlbHkgZWxpbWluYXRlIHRoZSBmaWxlbmFtZQotCi0JaWYgWyB4IiRkc3RmaWxlIiA9IHggXQotCXRoZW4KLQkJZHN0ZmlsZT1gYmFzZW5hbWUgIiRkc3QiYAotCWVsc2UKLQkJOgotCWZpCi0KLSMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3RvcnkuCi0KLQlkc3R0bXA9JGRzdGRpci8jaW5zdC4kJCMKLQlybXRtcD0kZHN0ZGlyLyNybS4kJCMKLQotIyBUcmFwIHRvIGNsZWFuIHVwIHRlbXAgZmlsZXMgYXQgZXhpdC4KLQotCXRyYXAgJ3N0YXR1cz0kPzsgcm0gLWYgIiRkc3R0bXAiICIkcm10bXAiICYmIGV4aXQgJHN0YXR1cycgMAotCXRyYXAgJyhleGl0ICQ/KTsgZXhpdCcgMSAyIDEzIDE1Ci0KLSMgTW92ZSBvciBjb3B5IHRoZSBmaWxlIG5hbWUgdG8gdGhlIHRlbXAgbmFtZQotCi0JJGRvaXQgJGluc3RjbWQgIiRzcmMiICIkZHN0dG1wIiAmJgotCi0jIGFuZCBzZXQgYW55IG9wdGlvbnM7IGRvIGNobW9kIGxhc3QgdG8gcHJlc2VydmUgc2V0dWlkIGJpdHMKLQotIyBJZiBhbnkgb2YgdGhlc2UgZmFpbCwgd2UgYWJvcnQgdGhlIHdob2xlIHRoaW5nLiAgSWYgd2Ugd2FudCB0bwotIyBpZ25vcmUgZXJyb3JzIGZyb20gYW55IG9mIHRoZXNlLCBqdXN0IG1ha2Ugc3VyZSBub3QgdG8gaWdub3JlCi0jIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGluc3RjbWQgJHNyYyAkZHN0dG1wIiBjb21tYW5kLgotCi0JaWYgWyB4IiRjaG93bmNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IGVsc2UgOjtmaSAmJgotCWlmIFsgeCIkY2hncnBjbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkY2hncnBjbWQgIiRkc3R0bXAiOyBlbHNlIDo7ZmkgJiYKLQlpZiBbIHgiJHN0cmlwY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJHN0cmlwY21kICIkZHN0dG1wIjsgZWxzZSA6O2ZpICYmCi0JaWYgWyB4IiRjaG1vZGNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRjaG1vZGNtZCAiJGRzdHRtcCI7IGVsc2UgOjtmaSAmJgotCi0jIE5vdyByZW1vdmUgb3IgbW92ZSBhc2lkZSBhbnkgb2xkIGZpbGUgYXQgZGVzdGluYXRpb24gbG9jYXRpb24uICBXZSB0cnkgdGhpcwotIyB0d28gd2F5cyBzaW5jZSBybSBjYW4ndCB1bmxpbmsgaXRzZWxmIG9uIHNvbWUgc3lzdGVtcyBhbmQgdGhlIGRlc3RpbmF0aW9uCi0jIGZpbGUgbWlnaHQgYmUgYnVzeSBmb3Igb3RoZXIgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAKLSMgbWlnaHQgZmFpbCBidXQgdGhlIG5ldyBmaWxlIHNob3VsZCBzdGlsbCBpbnN0YWxsIHN1Y2Nlc3NmdWxseS4KLQotewotCWlmIFsgLWYgIiRkc3RkaXIvJGRzdGZpbGUiIF0KLQl0aGVuCi0JCSRkb2l0ICRybWNtZCAtZiAiJGRzdGRpci8kZHN0ZmlsZSIgMj4vZGV2L251bGwgfHwKLQkJJGRvaXQgJG12Y21kIC1mICIkZHN0ZGlyLyRkc3RmaWxlIiAiJHJtdG1wIiAyPi9kZXYvbnVsbCB8fAotCQl7Ci0JCSAgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3RkaXIvJGRzdGZpbGUiID4mMgotCQkgIChleGl0IDEpOyBleGl0Ci0JCX0KLQllbHNlCi0JCToKLQlmaQotfSAmJgotCi0jIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0KLQkkZG9pdCAkbXZjbWQgIiRkc3R0bXAiICIkZHN0ZGlyLyRkc3RmaWxlIgotCi1maSAmJgotCi0jIFRoZSBmaW5hbCBsaXR0bGUgdHJpY2sgdG8gImNvcnJlY3RseSIgcGFzcyB0aGUgZXhpdCBzdGF0dXMgdG8gdGhlIGV4aXQgdHJhcC4KLQotewotCShleGl0IDApOyBleGl0Ci19CmRpZmYgLS1naXQgYS9pby5jIGIvaW8uYwppbmRleCBkYjg2ZjU5Li4zZjg3NTdjIDEwMDY0NAotLS0gYS9pby5jCisrKyBiL2lvLmMKQEAgLTI3LDcgKzI3LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IGlvLmMsdiAxLjIwIDIwMDUvMDYvMDEgMTk6MjI6MDggcm9sYW5kIEV4cCAkCisgKgkkSWQkCiAgKi8KIAogI2luY2x1ZGUgImRlZnMuaCIKQEAgLTQ3LDExICs0NywxMSBAQAogI2VuZGlmCiAKIGludAotc3lzX3JlYWQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3JlYWQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAl9IGVsc2UgewogCQlpZiAoc3lzZXJyb3IodGNwKSkKIAkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKQEAgLTYzLDExICs2MywxMSBAQAogfQogCiBpbnQKLXN5c193cml0ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfd3JpdGUoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKIAkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKIAl9CkBAIC04MSw3ICs4MSwyNiBAQAogdW5zaWduZWQgbG9uZyBsZW47CiB1bnNpZ25lZCBsb25nIGFkZHI7CiB7CisjaWYgZGVmaW5lZChMSU5VWCkgJiYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCisJdW5pb24geworCQlzdHJ1Y3QgeyB1X2ludDMyX3QgYmFzZTsgdV9pbnQzMl90IGxlbjsgfSBpb3YzMjsKKwkJc3RydWN0IHsgdV9pbnQ2NF90IGJhc2U7IHVfaW50NjRfdCBsZW47IH0gaW92NjQ7CisJfSBpb3Y7CisjZGVmaW5lIHNpemVvZl9pb3YgXAorICAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCBcCisgICA/IHNpemVvZihpb3YuaW92MzIpIDogc2l6ZW9mKGlvdi5pb3Y2NCkpCisjZGVmaW5lIGlvdl9pb3ZfYmFzZSBcCisgIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0IFwKKyAgID8gKHVfaW50NjRfdCkgaW92LmlvdjMyLmJhc2UgOiBpb3YuaW92NjQuYmFzZSkKKyNkZWZpbmUgaW92X2lvdl9sZW4gXAorICAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCBcCisgICA/ICh1X2ludDY0X3QpIGlvdi5pb3YzMi5sZW4gOiBpb3YuaW92NjQubGVuKQorI2Vsc2UKIAlzdHJ1Y3QgaW92ZWMgaW92OworI2RlZmluZSBzaXplb2ZfaW92IHNpemVvZihpb3YpCisjZGVmaW5lIGlvdl9pb3ZfYmFzZSBpb3YuaW92X2Jhc2UKKyNkZWZpbmUgaW92X2lvdl9sZW4gaW92Lmlvdl9sZW4KKyNlbmRpZgogCXVuc2lnbmVkIGxvbmcgc2l6ZSwgY3VyLCBlbmQsIGFiYnJldl9lbmQ7CiAJaW50IGZhaWxlZCA9IDA7CiAKQEAgLTg5LDQ3ICsxMDgsNTAgQEAKIAkJdHByaW50ZigiW10iKTsKIAkJcmV0dXJuOwogCX0KLQlzaXplID0gbGVuICogc2l6ZW9mKGlvdik7CisJc2l6ZSA9IGxlbiAqIHNpemVvZl9pb3Y7CiAJZW5kID0gYWRkciArIHNpemU7Ci0JaWYgKCF2ZXJib3NlKHRjcCkgfHwgc2l6ZSAvIHNpemVvZihpb3YpICE9IGxlbiB8fCBlbmQgPCBhZGRyKSB7CisJaWYgKCF2ZXJib3NlKHRjcCkgfHwgc2l6ZSAvIHNpemVvZl9pb3YgIT0gbGVuIHx8IGVuZCA8IGFkZHIpIHsKIAkJdHByaW50ZigiJSNseCIsIGFkZHIpOwogCQlyZXR1cm47CiAJfQogCWlmIChhYmJyZXYodGNwKSkgewotCQlhYmJyZXZfZW5kID0gYWRkciArIG1heF9zdHJsZW4gKiBzaXplb2YoaW92KTsKKwkJYWJicmV2X2VuZCA9IGFkZHIgKyBtYXhfc3RybGVuICogc2l6ZW9mX2lvdjsKIAkJaWYgKGFiYnJldl9lbmQgPCBhZGRyKQogCQkJYWJicmV2X2VuZCA9IGVuZDsKIAl9IGVsc2UgewogCQlhYmJyZXZfZW5kID0gZW5kOwogCX0KIAl0cHJpbnRmKCJbIik7Ci0JZm9yIChjdXIgPSBhZGRyOyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YoaW92KSkgeworCWZvciAoY3VyID0gYWRkcjsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mX2lvdikgewogCQlpZiAoY3VyID4gYWRkcikKIAkJCXRwcmludGYoIiwgIik7CiAJCWlmIChjdXIgPj0gYWJicmV2X2VuZCkgewogCQkJdHByaW50ZigiLi4uIik7CiAJCQlicmVhazsKIAkJfQotCQlpZiAodW1vdmVuKHRjcCwgY3VyLCBzaXplb2YgaW92LCAoY2hhciAqKSAmaW92KSA8IDApIHsKKwkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mX2lvdiwgKGNoYXIgKikgJmlvdikgPCAwKSB7CiAJCQl0cHJpbnRmKCI/Iik7CiAJCQlmYWlsZWQgPSAxOwogCQkJYnJlYWs7CiAJCX0KIAkJdHByaW50ZigieyIpOwotCQlwcmludHN0cih0Y3AsIChsb25nKSBpb3YuaW92X2Jhc2UsIGlvdi5pb3ZfbGVuKTsKLQkJdHByaW50ZigiLCAlbHV9IiwgKHVuc2lnbmVkIGxvbmcpaW92Lmlvdl9sZW4pOworCQlwcmludHN0cih0Y3AsIChsb25nKSBpb3ZfaW92X2Jhc2UsIGlvdl9pb3ZfbGVuKTsKKwkJdHByaW50ZigiLCAlbHV9IiwgKHVuc2lnbmVkIGxvbmcpaW92X2lvdl9sZW4pOwogCX0KIAl0cHJpbnRmKCJdIik7CiAJaWYgKGZhaWxlZCkKIAkJdHByaW50ZigiICUjbHgiLCBhZGRyKTsKKyN1bmRlZiBzaXplb2ZfaW92CisjdW5kZWYgaW92X2lvdl9iYXNlCisjdW5kZWYgaW92X2lvdl9sZW4KIH0KIAogaW50Ci1zeXNfcmVhZHYodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3JlYWR2KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CiAJfSBlbHNlIHsKIAkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKIAkJCXRwcmludGYoIiUjbHgsICVsdSIsCkBAIC0xNDMsMTEgKzE2NSwxMSBAQAogfQogCiBpbnQKLXN5c193cml0ZXYodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3dyaXRldihzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCQl0cHJpbnRfaW92KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7CiAJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7CiAJfQpAQCAtMTU4LDExICsxODAsMTEgQEAKICNpZiBkZWZpbmVkKFNWUjQpCiAKIGludAotc3lzX3ByZWFkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19wcmVhZChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCX0gZWxzZSB7CiAJCWlmIChzeXNlcnJvcih0Y3ApKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwpAQCAtMTgwLDExICsyMDIsMTEgQEAKIH0KIAogaW50Ci1zeXNfcHdyaXRlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19wd3JpdGUoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKICNpZiBVTklYV0FSRQogCQkvKiBvZmZfdCBpcyBzaWduZWQgaW50ICovCkBAIC0yMDMsMTEgKzIyNSwxMyBAQAogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KIAogaW50Ci1zeXNfc2VuZGZpbGUodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3NlbmRmaWxlKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCwgJWxsdSwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSwKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgJWxsdSwgJWx1IiwKIAkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKSwKIAkJCXRjcC0+dV9hcmdbNF0pOwogCX0gZWxzZSB7CkBAIC0yNTQsNDUgKzI3OCw0NSBAQAogI2VuZGlmCiAKIGludAotc3lzX3ByZWFkKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19wcmVhZChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCX0gZWxzZSB7CiAJCWlmIChzeXNlcnJvcih0Y3ApKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwogCQllbHNlCiAJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJQUxJR042NCAodGNwLCBQUkVBRF9PRkZTRVRfQVJHKTsgLyogUG93ZXJQQyBhbGlnbm1lbnQgcmVzdHJpY3Rpb24gKi8KLQkJdHByaW50ZigiLCAlbHUsICVsbHUiLCB0Y3AtPnVfYXJnWzJdLAotCQkJKih1bnNpZ25lZCBsb25nIGxvbmcgKikmdGNwLT51X2FyZ1tQUkVBRF9PRkZTRVRfQVJHXSk7CisJCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnRsbHZhbCh0Y3AsICIlbGx1IiwgUFJFQURfT0ZGU0VUX0FSRyk7CiAJfQogCXJldHVybiAwOwogfQogCiBpbnQKLXN5c19wd3JpdGUodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3B3cml0ZShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOwotCQlBTElHTjY0ICh0Y3AsIFBSRUFEX09GRlNFVF9BUkcpOyAvKiBQb3dlclBDIGFsaWdubWVudCByZXN0cmljdGlvbiAqLwotCQl0cHJpbnRmKCIsICVsdSwgJWxsdSIsIHRjcC0+dV9hcmdbMl0sCi0JCQkqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSZ0Y3AtPnVfYXJnW1BSRUFEX09GRlNFVF9BUkddKTsKKwkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMl0pOworCQlwcmludGxsdmFsKHRjcCwgIiVsbHUiLCBQUkVBRF9PRkZTRVRfQVJHKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIGludAotc3lzX3NlbmRmaWxlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zZW5kZmlsZShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJb2ZmX3Qgb2Zmc2V0OwogCi0JCXRwcmludGYoIiVsZCwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CiAJCWlmICghdGNwLT51X2FyZ1syXSkKIAkJCXRwcmludGYoIk5VTEwiKTsKIAkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmb2Zmc2V0KSA8IDApCkBAIC0zMDUsMTMgKzMyOSwxNSBAQAogfQogCiBpbnQKLXN5c19zZW5kZmlsZTY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zZW5kZmlsZTY0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlsb2ZmX3Qgb2Zmc2V0OwogCi0JCXRwcmludGYoIiVsZCwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CiAJCWlmICghdGNwLT51X2FyZ1syXSkKIAkJCXRwcmludGYoIk5VTEwiKTsKIAkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmb2Zmc2V0KSA8IDApCkBAIC0zMjcsNDYgKzM1Myw0NCBAQAogCiAjaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVAogaW50Ci1zeXNfcHJlYWQ2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfcHJlYWQ2NChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRmZCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOwogCX0gZWxzZSB7Ci0JCUFMSUdONjQgKHRjcCwgMyk7CiAJCWlmIChzeXNlcnJvcih0Y3ApKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOwogCQllbHNlCiAJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKLQkJdHByaW50ZigiLCAlbHUsICUjbGx4IiwgdGNwLT51X2FyZ1syXSwKLQkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7CisJCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnRsbHZhbCh0Y3AsICIlI2xseCIsIDMpOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfcHdyaXRlNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3B3cml0ZTY0KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQlBTElHTjY0ICh0Y3AsIDMpOwotCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CiAJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIiwgJWx1LCAlI2xseCIsIHRjcC0+dV9hcmdbMl0sCi0JCQlMT05HX0xPTkcodGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSkpOworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7CisJCXByaW50bGx2YWwodGNwLCAiJSNsbHgiLCAzKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAjZW5kaWYKIAogaW50Ci1zeXNfaW9jdGwodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2lvY3RsKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAljb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvcDsKIAogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmQodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKIAkJaW9wID0gaW9jdGxfbG9va3VwKHRjcC0+dV9hcmdbMV0pOwogCQlpZiAoaW9wKSB7CiAJCQl0cHJpbnRmKCIlcyIsIGlvcC0+c3ltYm9sKTsKZGlmZiAtLWdpdCBhL2lvY3RsLmMgYi9pb2N0bC5jCmluZGV4IDQ1NDAyNjAuLjMzNDRmYjcgMTAwNjQ0Ci0tLSBhL2lvY3RsLmMKKysrIGIvaW9jdGwuYwpAQCAtMjcsNyArMjcsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogaW9jdGwuYyx2IDEuMTQgMjAwNS8wMi8wMiAyMDozMjoxMyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMTUyLDYgKzE1MiwxMyBAQAogI2lmZGVmIExJTlVYCiAJY2FzZSAncCc6CiAJCXJldHVybiBydGNfaW9jdGwodGNwLCBjb2RlLCBhcmcpOworCWNhc2UgMHgwMzoKKwljYXNlIDB4MTI6CisJCXJldHVybiBibG9ja19pb2N0bCh0Y3AsIGNvZGUsIGFyZyk7CisjaWZuZGVmIEhBVkVfQU5EUk9JRF9PUworCWNhc2UgMHgyMjoKKwkJcmV0dXJuIHNjc2lfaW9jdGwodGNwLCBjb2RlLCBhcmcpOworI2VuZGlmCiAjZW5kaWYKIAlkZWZhdWx0OgogCQlicmVhazsKZGlmZiAtLWdpdCBhL2lvY3Rsc29ydC5jIGIvaW9jdGxzb3J0LmMKaW5kZXggMTczMmZiYy4uNzg4MWE5MSAxMDA2NDQKLS0tIGEvaW9jdGxzb3J0LmMKKysrIGIvaW9jdGxzb3J0LmMKQEAgLTI1LDcgKzI1LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IGlvY3Rsc29ydC5jLHYgMS4yIDIwMDEvMDMvMTcgMTc6MjY6MzQgd2ljaGVydCBFeHAgJAorICoJJElkJAogICovCiAKIApAQCAtMzYsOCArMzYsOCBAQAogI2VuZGlmCiAKIHN0cnVjdCBpb2N0bGVudCB7Ci0JY2hhciAqZG90aDsKLQljaGFyICpzeW1ib2w7CisJY29uc3QgY2hhciAqZG90aDsKKwljb25zdCBjaGFyICpzeW1ib2w7CiAJdW5zaWduZWQgbG9uZyBjb2RlOwogfTsKIApAQCAtNTYsOSArNTYsNyBAQAogfQogCiBpbnQKLW1haW4oYXJnYywgYXJndikKLWludCBhcmdjOwotY2hhciAqYXJndltdOworbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQogewogCWludCBpOwogCmRpZmYgLS1naXQgYS9pcGMuYyBiL2lwYy5jCmluZGV4IGRjYTM5MTQuLjQ5OTU5NDYgMTAwNjQ0Ci0tLSBhL2lwYy5jCisrKyBiL2lwYy5jCkBAIC0yNyw3ICsyNyw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBpcGMuYyx2IDEuMTAgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtNDAsOSArNDAsMTUgQEAKIAogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8c3lzL2lwYy5oPgorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2luY2x1ZGUgPGxpbnV4L3NlbS5oPgorI2luY2x1ZGUgPGxpbnV4L21zZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NobS5oPgorI2Vsc2UKICNpbmNsdWRlIDxzeXMvc2VtLmg+CiAjaW5jbHVkZSA8c3lzL21zZy5oPgogI2luY2x1ZGUgPHN5cy9zaG0uaD4KKyNlbmRpZgogCiAjaWZuZGVmIE1TR19TVEFUCiAjZGVmaW5lIE1TR19TVEFUIDExCkBAIC02Nyw3ICs3Myw2IEBACiAjIGRlZmluZSBJUENfNjQgMHgxMDAKICNlbmRpZgogCi1leHRlcm4gY29uc3Qgc3RydWN0IHhsYXQgb3Blbm1vZGVzW107CiBleHRlcm4gdm9pZCBwcmludHNpZ2V2ZW50KHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhcmcpOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXNnY3RsX2ZsYWdzW10gPSB7CkBAIC0xNTMsMTIgKzE1OCwxOCBAQAogCXsgMCwJCU5VTEwJCX0sCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2Vtb3BfZmxhZ3NbXSA9IHsKKwl7IFNFTV9VTkRPLAkiU0VNX1VORE8iCX0sCisJeyBJUENfTk9XQUlULAkiSVBDX05PV0FJVCIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKwogaW50IHN5c19tc2dnZXQodGNwKQogc3RydWN0IHRjYiAqdGNwOwogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCWlmICh0Y3AtPnVfYXJnWzBdKQotCQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7CisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CiAJCWVsc2UKIAkJCXRwcmludGYoIklQQ19QUklWQVRFIik7CiAJCXRwcmludGYoIiwgIik7CkBAIC0xNzcsMTEyICsxODgsMTc5IEBACiAjIGRlZmluZSBQUklOVENUTCBwcmludHh2YWwKICNlbmRpZgogCitzdGF0aWMgaW50CitpbmRpcmVjdF9pcGNjYWxsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyNpZmRlZiBMSU5VWAorI2lmZGVmIFg4Nl82NAorCXJldHVybiBjdXJyZW50X3BlcnNvbmFsaXR5ID4gMDsKKyNlbmRpZgorI2lmIGRlZmluZWQgSUE2NAorCXJldHVybiB0Y3AtPnNjbm8gPCAxMDI0OyAvKiBpYTMyIGVtdWxhdGlvbiBzeXNjYWxscyBhcmUgbG93ICovCisjZW5kaWYKKyNpZiAhZGVmaW5lZCBNSVBTICYmICFkZWZpbmVkIEhQUEEKKwlyZXR1cm4gMTsKKyNlbmRpZgorI2VuZGlmCS8qIExJTlVYICovCisJcmV0dXJuIDA7Cit9CisKIGludCBzeXNfbXNnY3RsKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOwogCQlQUklOVENUTChtc2djdGxfZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJNU0dfPz8/Iik7Ci0jaWZkZWYgTElOVVgKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0jZW5kaWYgLyogIUxJTlVYICovCisJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbaW5kaXJlY3RfaXBjY2FsbCh0Y3ApID8gMyA6IDJdKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNfbXNnc25kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N0YXRpYyB2b2lkCit0cHJpbnRfbXNnc25kKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGNvdW50LAorCSAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7CiAJbG9uZyBtdHlwZTsKIAorCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZtdHlwZSkgPCAwKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwl9IGVsc2UgeworCQl0cHJpbnRmKCJ7JWx1LCAiLCBtdHlwZSk7CisJCXByaW50c3RyKHRjcCwgYWRkciArIHNpemVvZihtdHlwZSksIGNvdW50KTsKKwkJdHByaW50ZigifSIpOworCX0KKwl0cHJpbnRmKCIsICVsdSwgIiwgY291bnQpOworCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCBmbGFncywgIk1TR18/Pz8iKTsKK30KKworaW50IHN5c19tc2dzbmQoc3RydWN0IHRjYiAqdGNwKQorewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOwotI2lmZGVmIExJTlVYCi0JCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJm10eXBlKTsKLQkJdHByaW50ZigiLCB7JWx1LCAiLCBtdHlwZSk7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1szXSArIHNpemVvZihsb25nKSwKLQkJCXRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCJ9LCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU0dfPz8/Iik7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmbXR5cGUpOwotCQl0cHJpbnRmKCIsIHslbHUsICIsIG10eXBlKTsKLQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdICsgc2l6ZW9mKGxvbmcpLAotCQkJdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIn0sICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKLSNlbmRpZiAvKiAhTElOVVggKi8KKwkJdHByaW50ZigiJWQsICIsIChpbnQpIHRjcC0+dV9hcmdbMF0pOworCQlpZiAoaW5kaXJlY3RfaXBjY2FsbCh0Y3ApKSB7CisJCQl0cHJpbnRfbXNnc25kKHRjcCwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1sxXSwKKwkJCQkgICAgICB0Y3AtPnVfYXJnWzJdKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludF9tc2dzbmQodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdLAorCQkJCSAgICAgIHRjcC0+dV9hcmdbM10pOworCQl9CiAJfQogCXJldHVybiAwOwogfQogCi1pbnQgc3lzX21zZ3Jjdih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzdGF0aWMgdm9pZAordHByaW50X21zZ3JjdihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBjb3VudCwgbG9uZyBtc2d0eXApCiB7CiAJbG9uZyBtdHlwZTsKLSNpZmRlZiBMSU5VWAotCXN0cnVjdCBpcGNfd3JhcHBlciB7Ci0JCXN0cnVjdCBtc2didWYgKm1zZ3A7Ci0JCWxvbmcgbXNndHlwOwotCX0gdG1wOwotI2VuZGlmCiAKKwlpZiAoc3lzZXJyb3IodGNwKSB8fCB1bW92ZSh0Y3AsIGFkZHIsICZtdHlwZSkgPCAwKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwl9IGVsc2UgeworCQl0cHJpbnRmKCJ7JWx1LCAiLCBtdHlwZSk7CisJCXByaW50c3RyKHRjcCwgYWRkciArIHNpemVvZihtdHlwZSksIGNvdW50KTsKKwkJdHByaW50ZigifSIpOworCX0KKwl0cHJpbnRmKCIsICVsdSwgJWxkLCAiLCBjb3VudCwgbXNndHlwKTsKK30KIAotCWlmIChleGl0aW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0jaWZkZWYgTElOVVgKLQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmdG1wKTsKLQkJdW1vdmUodGNwLCAobG9uZykgdG1wLm1zZ3AsICZtdHlwZSk7Ci0JCXRwcmludGYoIiwgeyVsdSwgIiwgbXR5cGUpOwotCQlwcmludHN0cih0Y3AsIChsb25nKSAodG1wLm1zZ3ApICsgc2l6ZW9mKGxvbmcpLAotCQkJdGNwLT51X2FyZ1sxXSk7Ci0JCXRwcmludGYoIn0sICVsdSIsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICVsZCIsIHRtcC5tc2d0eXApOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1syXSwgIk1TR18/Pz8iKTsKLSNlbHNlIC8qICFMSU5VWCAqLwotCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZtdHlwZSk7Ci0JCXRwcmludGYoIiwgeyVsdSwgIiwgbXR5cGUpOwotCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0gKyBzaXplb2YobG9uZyksCi0JCQl0Y3AtPnVfYXJnWzJdKTsKLQkJdHByaW50ZigifSwgJWx1IiwgdGNwLT51X2FyZ1syXSk7Ci0JCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1szXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiTVNHXz8/PyIpOwotI2VuZGlmIC8qICFMSU5VWCAqLworaW50IHN5c19tc2dyY3Yoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVkLCAiLCAoaW50KSB0Y3AtPnVfYXJnWzBdKTsKKwl9IGVsc2UgeworCQlpZiAoaW5kaXJlY3RfaXBjY2FsbCh0Y3ApKSB7CisJCQlzdHJ1Y3QgaXBjX3dyYXBwZXIgeworCQkJCXN0cnVjdCBtc2didWYgKm1zZ3A7CisJCQkJbG9uZyBtc2d0eXA7CisJCQl9IHRtcDsKKworCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJnRtcCkgPCAwKSB7CisJCQkJdHByaW50ZigiJSNseCwgJWx1LCAiLAorCQkJCQl0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCX0gZWxzZSB7CisJCQkJdHByaW50X21zZ3Jjdih0Y3AsIChsb25nKSB0bXAubXNncCwKKwkJCQkJdGNwLT51X2FyZ1sxXSwgdG1wLm1zZ3R5cCk7CisJCQl9CisJCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1syXSwgIk1TR18/Pz8iKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludF9tc2dyY3YodGNwLCB0Y3AtPnVfYXJnWzFdLAorCQkJCXRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOworCQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJNU0dfPz8/Iik7CisJCX0KIAl9CiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNfc2Vtb3AodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3RhdGljIHZvaWQKK3RwcmludF9zZW1idWYoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgY291bnQpCit7CisJdW5zaWduZWQgbG9uZyBpLCBtYXhfY291bnQ7CisKKwlpZiAoYWJicmV2KHRjcCkpCisJCW1heF9jb3VudCA9IChtYXhfc3RybGVuIDwgY291bnQpID8gbWF4X3N0cmxlbiA6IGNvdW50OworCWVsc2UKKwkJbWF4X2NvdW50ID0gY291bnQ7CisKKwlpZiAoIW1heF9jb3VudCkgeworCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCBhZGRyLCBjb3VudCk7CisJCXJldHVybjsKKwl9CisKKwlmb3IoaSA9IDA7IGkgPCBtYXhfY291bnQ7ICsraSkgeworCQlzdHJ1Y3Qgc2VtYnVmIHNiOworCQlpZiAoaSkKKwkJCXRwcmludGYoIiwgIik7CisJCWlmICh1bW92ZSh0Y3AsIGFkZHIgKyBpICogc2l6ZW9mKHN0cnVjdCBzZW1idWYpLCAmc2IpIDwgMCkgeworCQkJaWYgKGkpIHsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSIpOworCQkJCWJyZWFrOworCQkJfSBlbHNlIHsKKwkJCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCBhZGRyLCBjb3VudCk7CisJCQkJcmV0dXJuOworCQkJfQorCQl9IGVsc2UgeworCQkJaWYgKCFpKQorCQkJCXRwcmludGYoInsiKTsKKwkJCXRwcmludGYoInsldSwgJWQsICIsIHNiLnNlbV9udW0sIHNiLnNlbV9vcCk7CisJCQlwcmludGZsYWdzKHNlbW9wX2ZsYWdzLCBzYi5zZW1fZmxnLCAiU0VNXz8/PyIpOworCQkJdHByaW50ZigifSIpOworCQl9CisJfQorCisJaWYgKGkgPCBtYXhfY291bnQgfHwgbWF4X2NvdW50IDwgY291bnQpCisJCXRwcmludGYoIiwgLi4uIik7CisKKwl0cHJpbnRmKCJ9LCAlbHUiLCBjb3VudCk7Cit9CisKK2ludCBzeXNfc2Vtb3Aoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOwotI2lmZGVmIExJTlVYCi0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbM10pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOwotI2Vsc2UgLyogIUxJTlVYICovCi0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOwotI2VuZGlmIC8qICFMSU5VWCAqLworCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCQlpZiAoaW5kaXJlY3RfaXBjY2FsbCh0Y3ApKSB7CisJCQl0cHJpbnRfc2VtYnVmKHRjcCwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1sxXSk7CisJCX0gZWxzZSB7CisJCQl0cHJpbnRfc2VtYnVmKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCX0KIAl9CiAJcmV0dXJuIDA7CiB9CiAKICNpZmRlZiBMSU5VWAotaW50IHN5c19zZW10aW1lZG9wKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2ludCBzeXNfc2VtdGltZWRvcChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbM10pOwotCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1sxXSk7Ci0JCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzVdKTsKKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKGluZGlyZWN0X2lwY2NhbGwodGNwKSkgeworCQkJdHByaW50X3NlbWJ1Zih0Y3AsIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbMV0pOworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzVdKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludF9zZW1idWYodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1szXSk7CisJCX0KIAl9CiAJcmV0dXJuIDA7CiB9CkBAIC0yOTMsNyArMzcxLDcgQEAKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlpZiAodGNwLT51X2FyZ1swXSkKLQkJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOworCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwogCQllbHNlCiAJCQl0cHJpbnRmKCJJUENfUFJJVkFURSIpOwogCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOwpAQCAtMzIyLDcgKzQwMCw3IEBACiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJaWYgKHRjcC0+dV9hcmdbMF0pCi0JCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKIAkJZWxzZQogCQkJdHByaW50ZigiSVBDX1BSSVZBVEUiKTsKIAkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKQEAgLTM0MCwxMSArNDE4LDExIEBACiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKIAkJUFJJTlRDVEwoc2htY3RsX2ZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiU0hNXz8/PyIpOwotI2lmZGVmIExJTlVYCi0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbM10pOwotI2Vsc2UgLyogIUxJTlVYICovCi0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotI2VuZGlmIC8qICFMSU5VWCAqLworCQlpZiAoaW5kaXJlY3RfaXBjY2FsbCh0Y3ApKSB7CisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQl9CiAJfQogCXJldHVybiAwOwogfQpAQCAtMzU4LDE4ICs0MzYsMTkgQEAKIAogCWlmIChleGl0aW5nKHRjcCkpIHsKIAkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7Ci0jaWZkZWYgTElOVVgKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50ZmxhZ3Moc2htX2ZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiU0hNXz8/PyIpOwotI2Vsc2UgLyogIUxJTlVYICovCi0JCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludGZsYWdzKHNobV9mbGFncywgdGNwLT51X2FyZ1syXSwgIlNITV8/Pz8iKTsKLSNlbmRpZiAvKiAhTElOVVggKi8KKwkJaWYgKGluZGlyZWN0X2lwY2NhbGwodGNwKSkgeworCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhzaG1fZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJTSE1fPz8/Iik7CisJCX0gZWxzZSB7CisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKHNobV9mbGFncywgdGNwLT51X2FyZ1syXSwgIlNITV8/Pz8iKTsKKwkJfQogCQlpZiAoc3lzZXJyb3IodGNwKSkKIAkJCXJldHVybiAwOwotI2lmZGVmIExJTlVYCisvKiBIUFBBIGRvZXMgbm90IHVzZSBhbiBJUEMgbXVsdGlwbGV4ZXIgb24gTGludXguICAqLworI2lmIGRlZmluZWQoTElOVVgpICYmICFkZWZpbmVkKEhQUEEpCiAJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZyYWRkcikgPCAwKQogCQkJcmV0dXJuIFJWQUxfTk9ORTsKIAkJdGNwLT51X3J2YWwgPSByYWRkcjsKQEAgLTM4MiwyNiArNDYxLDI3IEBACiBpbnQgc3lzX3NobWR0KHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKLQlpZiAoZW50ZXJpbmcodGNwKSkKLSNpZmRlZiBMSU5VWAotCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7Ci0jZWxzZSAvKiAhTElOVVggKi8KLQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwotI2VuZGlmIC8qICFMSU5VWCAqLworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWlmIChpbmRpcmVjdF9pcGNjYWxsKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJfQorCX0KIAlyZXR1cm4gMDsKIH0KIAogI2VuZGlmIC8qIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKEZSRUVCU0QpICovCiAKICNpZmRlZiBMSU5VWAotaW50IHN5c19tcV9vcGVuKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2ludAorc3lzX21xX29wZW4oc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCQl0cHJpbnRmKCIsICIpOwogCQkvKiBmbGFncyAqLwotCQlwcmludGZsYWdzKG9wZW5tb2RlcywgdGNwLT51X2FyZ1sxXSArIDEsICJPXz8/PyIpOworCQl0cHJpbnRfb3Blbl9tb2Rlcyh0Y3AtPnVfYXJnWzFdKTsKIAkJaWYgKHRjcC0+dV9hcmdbMV0gJiBPX0NSRUFUKSB7CiAjIGlmbmRlZiBIQVZFX01RVUVVRV9ICiAJCQl0cHJpbnRmKCIsICVseCIsIHRjcC0+dV9hcmdbMl0pOwpAQCAtNDIwLDggKzUwMCw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNfbXFfdGltZWRzZW5kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2ludAorc3lzX21xX3RpbWVkc2VuZChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTQzMiw4ICs1MTIsOCBAQAogCXJldHVybiAwOwogfQogCi1pbnQgc3lzX21xX3RpbWVkcmVjZWl2ZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitpbnQKK3N5c19tcV90aW1lZHJlY2VpdmUoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKQogCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwpAQCAtNDQ1LDggKzUyNSw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNfbXFfbm90aWZ5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2ludAorc3lzX21xX25vdGlmeShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTQ1NSw5ICs1MzUsOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBwcmludG1xYXR0cih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7CitzdGF0aWMgdm9pZAorcHJpbnRtcWF0dHIoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIpCiB7CiAJaWYgKGFkZHIgPT0gMCkKIAkJdHByaW50ZigiTlVMTCIpOwpAQCAtNDcxLDE1ICs1NTAsMTUgQEAKIAkJCXJldHVybjsKIAkJfQogCQl0cHJpbnRmKCJ7bXFfZmxhZ3M9Iik7Ci0JCXByaW50ZmxhZ3Mob3Blbm1vZGVzLCBhdHRyLm1xX2ZsYWdzICsgMSwgIk9fPz8/Iik7CisJCXRwcmludF9vcGVuX21vZGVzKGF0dHIubXFfZmxhZ3MpOwogCQl0cHJpbnRmKCIsIG1xX21heG1zZz0lbGQsIG1xX21zZ3NpemU9JWxkLCBtcV9jdXJtc2c9JWxkfSIsCiAJCQlhdHRyLm1xX21heG1zZywgYXR0ci5tcV9tc2dzaXplLCBhdHRyLm1xX2N1cm1zZ3MpOwogIyBlbmRpZgogCX0KIH0KIAotaW50IHN5c19tcV9nZXRzZXRhdHRyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2ludAorc3lzX21xX2dldHNldGF0dHIoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgveDg2XzY0L2Vycm5vZW50MS5oIGIvbGludXgvYXJtL2Vycm5vZW50MS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzdHJhY2UvbGludXgveDg2XzY0L2Vycm5vZW50MS5oCnJlbmFtZSB0byBsaW51eC9hcm0vZXJybm9lbnQxLmgKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC94ODZfNjQvaW9jdGxlbnQxLmggYi9saW51eC9hcm0vaW9jdGxlbnQxLmgKc2ltaWxhcml0eSBpbmRleCA2MyUKcmVuYW1lIGZyb20gc3RyYWNlL2xpbnV4L3g4Nl82NC9pb2N0bGVudDEuaApyZW5hbWUgdG8gbGludXgvYXJtL2lvY3RsZW50MS5oCmluZGV4IGE0NGIwYWUuLjFmOTJmZWIgMTAwNjQ0Ci0tLSBhL3N0cmFjZS9saW51eC94ODZfNjQvaW9jdGxlbnQxLmgKKysrIGIvbGludXgvYXJtL2lvY3RsZW50MS5oCkBAIC0xLDIgKzEsMiBAQAogLyogT3VyIHNlY29uZCBzZXQgY29tZXMgZnJvbSB0aGUgaTM4NiBmaWxlcy4gICovCi0jaW5jbHVkZSAiLi4vaW9jdGxlbnQuaCIKKyNpbmNsdWRlICJsaW51eC9pb2N0bGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmggYi9saW51eC9hcm0vc2lnbmFsZW50MS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzdHJhY2UvbGludXgveDg2XzY0L3NpZ25hbGVudDEuaApyZW5hbWUgdG8gbGludXgvYXJtL3NpZ25hbGVudDEuaApkaWZmIC0tZ2l0IGEvbGludXgvYXJtL3N5c2NhbGxlbnQuaCBiL2xpbnV4L2FybS9zeXNjYWxsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjkxNGNhMAotLS0gL2Rldi9udWxsCisrKyBiL2xpbnV4L2FybS9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSw0ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQkCisgKi8KKworCXsgMCwJMCwJc3lzX3Jlc3RhcnRfc3lzY2FsbCwJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiAwICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCX0sIC8qIDEgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLworCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KKwl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDQgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLworCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLworCXsgMywJVFAsCXN5c193YWl0cGlkLAkJIndhaXRwaWQiCX0sIC8qIDcgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KKwl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogMTEgKi8KKwl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLworCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KKwl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE2ICovCisJeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiAxNyAqLworCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDE4ICovCisJeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLworCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCisJeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KKwl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLworCXsgMCwJTkYsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLworCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KKwl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KKwl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogMjggKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLworCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCisJeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KKwl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLworCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLworCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCisJeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiAzNSAqLworCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KKwl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLworCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLworCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLworCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCisJeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KKwl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDggKi8KKwl7IDAsCU5GLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLworCXsgMCwJTkYsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCisJeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCisJeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLworCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCisJeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KKwl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KKwl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCisJeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KKwl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KKwl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCisJeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCisJeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KKwl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLworCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCisJeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJIm9sZF9nZXRybGltaXQiCX0sIC8qIDc2ICovCisJeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KKwl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0Igl9LCAvKiA4MiAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCisJeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA4NCAqLworCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KKwl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLworCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogODkgKi8KKwl7IDYsCVRELAlzeXNfb2xkX21tYXAsCQkib2xkX21tYXAiCX0sIC8qIDkwICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogOTEgKi8KKwl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDkyICovCisJeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KKwl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5NCAqLworCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk1ICovCisJeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogOTYgKi8KKwl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA5NyAqLworCXsgNCwJMCwJc3lzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDk4ICovCisJeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDk5ICovCisJeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KKwl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KKwl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiCX0sIC8qIDEwMiAqLworCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLworCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLworCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KKwl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLworCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KKwl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KKwl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLworCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c2NhbGwiCX0sIC8qIDExMyAqLworCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sIC8qIDExNCAqLworCXsgMSwJVEYsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCisJeyA2LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDExNyAqLworCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDEyMCAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLworCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgLyogMTIzICovCisJeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sIC8qIDEyNCAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiAxMjUgKi8KKwl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogMTI2ICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDEyNyAqLworCXsgMywJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDEyOCAqLworCXsgMiwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiAxMjkgKi8KKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTMwICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDEzMSAqLworCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogMTMyICovCisJeyAxLAkwLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCisJeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KKwl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDEzNSAqLworCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLworCXsgMSwJTkYsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCisJeyAxLAlORiwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMzkgKi8KKwl7IDUsCTAsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJfSwgLyogMTQwICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDE0MSAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sIC8qIDE0MiAqLworCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJfSwgLyogMTQzICovCisJeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxNDQgKi8KKwl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDE0NSAqLworCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCX0sIC8qIDE0NiAqLworCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDE0NyAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDE0OCAqLworCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgl9LCAvKiAxNDkgKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sIC8qIDE1MCAqLworCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgLyogMTUxICovCisJeyAyLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCX0sIC8qIDE1MiAqLworCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgLyogMTUzICovCisJeyAwLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiAxNTQgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIn0sIC8qIDE1NSAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciJ9LCAvKiAxNTYgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogMTU3ICovCisJeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCJ9LCAvKiAxNTggKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sIC8qIDE1OSAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogMTYwICovCisJeyAyLAkwLAlzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwgLyogMTYxICovCisJeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogMTYyICovCisJeyA1LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJfSwgLyogMTYzICovCisJeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJfSwgLyogMTY0ICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogMTY1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkidm04NiIJCX0sIC8qIDE2NiAqLworCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTY3ICovCisJeyAzLAkwLAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogMTY4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogMTY5ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMTcwICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMTcxICovCisJeyA1LAkwLAlzeXNfcHJjdGwsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KKwl7IDEsCVRTLAlwcmludGFyZ3MsCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgLyogMTc0ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KKworCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDE4MCAqLworCXsgNSwJVEYsCXN5c19wd3JpdGUsCQkicHdyaXRlIgl9LCAvKiAxODEgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiAxODIgKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCisJeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCisJeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODggKi8KKwl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4OSAqLworCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDE5MCAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDE5MSAqLworCXsgNiwJVEQsCXN5c19tbWFwLAkJIm1tYXAyIgkJfSwgLyogMTkyICovCisJeyAzLAlURiwJc3lzX3RydW5jYXRlNjQsCQkidHJ1bmNhdGU2NCIJfSwgLyogMTkzICovCisJeyAzLAlURiwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCX0sIC8qIDE5NCAqLworCXsgMiwJVEYsCXN5c19zdGF0NjQsCQkic3RhdDY0Igl9LCAvKiAxOTUgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJCSJsc3RhdDY0Igl9LCAvKiAxOTYgKi8KKwl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0Igl9LCAvKiAxOTcgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duMzIiCX0sIC8qIDE5OCAqLworCXsgMCwJTkYsCXN5c19nZXR1aWQsCQkiZ2V0dWlkMzIiCX0sIC8qIDE5OSAqLworCisJeyAwLAlORiwJc3lzX2dldGdpZCwJCSJnZXRnaWQzMiIJfSwgLyogMjAwICovCisJeyAwLAlORiwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZDMyIgl9LCAvKiAyMDEgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0ZXVpZCwJCSJnZXRlZ2lkMzIiCX0sIC8qIDIwMiAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkMzIiCX0sIC8qIDIwMyAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkMzIiCX0sIC8qIDIwNCAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwczMyLAkiZ2V0Z3JvdXBzMzIiCX0sIC8qIDIwNSAqLworCXsgMiwJMCwJc3lzX3NldGdyb3VwczMyLAkic2V0Z3JvdXBzMzIiCX0sIC8qIDIwNiAqLworCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24zMiIJfSwgLyogMjA3ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KKwl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkMzIiCX0sIC8qIDIwOSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQzMiIJfSwgLyogMjEwICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZDMyIgl9LCAvKiAyMTEgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24zMiIJfSwgLyogMjEyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZDMyIgl9LCAvKiAyMTMgKi8KKwl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkMzIiCX0sIC8qIDIxNCAqLworCXsgMSwJTkYsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZDMyIgl9LCAvKiAyMTUgKi8KKwl7IDEsCU5GLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQzMiIJfSwgLyogMjE2ICovCisJeyAzLCAgICAwLCAgICAgIHN5c19nZXRkZW50czY0LCAgICAgICAgICJnZXRkZW50czY0IiAgICB9LCAvKiAyMTcgKi8KKwl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxOCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm1pbmNvcmUiCX0sIC8qIDIxOSAqLworCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgLyogMjIwICovCisJeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMyIJfSwgLyogMjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgl9LCAvKiAyMjQgKi8KKwl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAyMjUgKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDIyNiAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDIyNyAqLworCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDIyOCAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMjI5ICovCisJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogMjMwICovCisJeyA0LAlURCwJc3lzX2ZnZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDIzMSAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiAyMzIgKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDIzMyAqLworCXsgMywJVEQsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzNCAqLworCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzUgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNiAqLworCXsgMiwJVEQsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDIzNyAqLworCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogMjM4ICovCisJeyA0LAlURHxUTiwJc3lzX3NlbmRmaWxlNjQsCQkic2VuZGZpbGU2NCIJfSwgLyogMjM5ICovCisJeyA2LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyNDAgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI0MSAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjQyICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiaW9fc2V0dXAiCX0sIC8qIDI0MyAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDI0NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMjQ1ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDYgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJpb19jYW5jZWwiCX0sIC8qIDI0NyAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCX0sIC8qIDI0OCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIn0sIC8qIDI0OSAqLworCXsgMSwJVEQsCXByaW50YXJncywJCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDI1MCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImVwb2xsX2N0bCIJfSwgLyogMjUxICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiZXBvbGxfd2FpdCIJfSwgLyogMjUyICovCisJeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMifSwgLyogMjUzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NCIJfSwgLyogMjU0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NSIJfSwgLyogMjU1ICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIn0sIC8qIDI1NiAqLworCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjU3ICovCisJeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDI1OCAqLworCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyNTkgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyNjAgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDI2MSAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyNjIgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjYzICovCisJeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyNjQgKi8KKwl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjY1ICovCisJeyAzLAlURiwJc3lzX3N0YXRmczY0LAkJInN0YXRmczY0Igl9LCAvKiAyNjYgKi8KKwl7IDMsCTAsCXN5c19mc3RhdGZzNjQsCQkiZnN0YXRmczY0Igl9LCAvKiAyNjcgKi8KKwl7IDMsCVRTLAlzeXNfdGdraWxsLAkJInRna2lsbCIJfSwgLyogMjY4ICovCisJeyAyLAlURiwJc3lzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDI2OSAqLworCXsgNiwJVEQsCXN5c19mYWR2aXNlNjRfNjQsCSJmYWR2aXNlNjRfNjQiCX0sIC8qIDI3MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ19pb2Jhc2UiCX0sIC8qIDI3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ19yZWFkIgl9LCAvKiAyNzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfd3JpdGUiCX0sIC8qIDI3MyAqLworCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogMjc0ICovCisJeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMjc1ICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiAyNzYgKi8KKwl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUiIH0sIC8qIDI3NyAqLworCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDI3OCAqLworCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgl9LCAvKiAyNzkgKi8KKwl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIJfSwgLyogMjgwICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDI4MSAqLworCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAyODIgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAyODMgKi8KKwl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMjg0ICovCisJeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDI4NSAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAyODYgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMjg3ICovCisJeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMjg4ICovCisJeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDI4OSAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAyOTAgKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMjkxICovCisJeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAyOTIgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDI5MyAqLworCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDI5NCAqLworCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDI5NSAqLworCXsgMywJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDI5NiAqLworCXsgMywJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDI5NyAqLworCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDI5OCAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAyOTkgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMzAwICovCisJeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMwMSAqLworCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMDIgKi8KKwl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMzAzICovCisJeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMwNCAqLworCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMwNSAqLworCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDMwNiAqLworCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAzMDcgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzA4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWRkX2tleSIJfSwgLyogMzA5ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicmVxdWVzdF9rZXkiCX0sIC8qIDMxMCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJfSwgLyogMzExICovCisJeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMzEyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMzEzICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX3NldCIJfSwgLyogMzE0ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX2dldCIJfSwgLyogMzE1ICovCisJeyAwLAlURCwJcHJpbnRhcmdzLAkJImlub3RpZnlfaW5pdCIJfSwgLyogMzE2ICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDMxNyAqLworCXsgMiwJVEQsCXN5c19pbm90aWZ5X3JtX3dhdGNoLAkiaW5vdGlmeV9ybV93YXRjaCIgfSwgLyogMzE4ICovCisJeyA2LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQl9LCAvKiAzMTkgKi8KKwl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJfSwgLyogMzIwICovCisJeyA1LAkwLAlzeXNfZ2V0X21lbXBvbGljeSwJImdldF9tZW1wb2xpY3kiCX0sIC8qIDMyMSAqLworCXsgNCwJVER8VEYsCXN5c19vcGVuYXQsCQkib3BlbmF0Igl9LCAvKiAzMjIgKi8KKwl7IDMsCVREfFRGLAlzeXNfbWtkaXJhdCwJCSJta2RpcmF0Igl9LCAvKiAzMjMgKi8KKwl7IDQsCVREfFRGLAlzeXNfbWtub2RhdCwJCSJta25vZGF0Igl9LCAvKiAzMjQgKi8KKwl7IDUsCVREfFRGLAlzeXNfZmNob3duYXQsCQkiZmNob3duYXQiCX0sIC8qIDMyNSAqLworCXsgMywJVER8VEYsCXN5c19mdXRpbWVzYXQsCQkiZnV0aW1lc2F0Igl9LCAvKiAzMjYgKi8KKwl7IDQsCVREfFRGLAlzeXNfbmV3ZnN0YXRhdCwJCSJuZXdmc3RhdGF0Igl9LCAvKiAzMjcgKi8KKwl7IDMsCVREfFRGLAlzeXNfdW5saW5rYXQsCQkidW5saW5rYXQiCX0sIC8qIDMyOCAqLworCXsgNCwJVER8VEYsCXN5c19yZW5hbWVhdCwJCSJyZW5hbWVhdCIJfSwgLyogMzI5ICovCisJeyA1LAlURHxURiwJc3lzX2xpbmthdCwJCSJsaW5rYXQiCX0sIC8qIDMzMCAqLworCXsgMywJVER8VEYsCXN5c19zeW1saW5rYXQsCQkic3ltbGlua2F0Igl9LCAvKiAzMzEgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVhZGxpbmthdCwJCSJyZWFkbGlua2F0Igl9LCAvKiAzMzIgKi8KKwl7IDMsCVREfFRGLAlzeXNfZmNobW9kYXQsCQkiZmNobW9kYXQiCX0sIC8qIDMzMyAqLworCXsgMywJVER8VEYsCXN5c19mYWNjZXNzYXQsCQkiZmFjY2Vzc2F0Igl9LCAvKiAzMzQgKi8KKwl7IDYsCVRELAlzeXNfcHNlbGVjdDYsCQkicHNlbGVjdDYiCX0sIC8qIDMzNSAqLworCXsgNSwJVEQsCXN5c19wcG9sbCwJCSJwcG9sbCIJCX0sIC8qIDMzNiAqLworCXsgMSwJVFAsCXN5c191bnNoYXJlLAkJInVuc2hhcmUiCX0sIC8qIDMzNyAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldF9yb2J1c3RfbGlzdCIgfSwgLyogMzM4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0X3JvYnVzdF9saXN0IiB9LCAvKiAzMzkgKi8KKwl7IDYsCVRELAlwcmludGFyZ3MsCQkic3BsaWNlIgl9LCAvKiAzNDAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQxIgl9LCAvKiAzNDEgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidGVlIgkJfSwgLyogMzQyICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInZtc3BsaWNlIgl9LCAvKiAzNDMgKi8KKwl7IDYsCTAsCXN5c19tb3ZlX3BhZ2VzLAkJIm1vdmVfcGFnZXMiCX0sIC8qIDM0NCAqLworCXsgMywJMCwJc3lzX2dldGNwdSwJCSJnZXRjcHUiCX0sIC8qIDM0NSAqLworCXsgNSwJVEQsCXN5c19lcG9sbF9wd2FpdCwJImVwb2xsX3B3YWl0Igl9LCAvKiAzNDYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJrZXhlY19sb2FkIgl9LCAvKiAzNDcgKi8KKwl7IDQsCVREfFRGLAlzeXNfdXRpbWVuc2F0LAkJInV0aW1lbnNhdCIJfSwgLyogMzQ4ICovCisJeyAzLAlURHxUUywJc3lzX3NpZ25hbGZkLAkJInNpZ25hbGZkIgl9LCAvKiAzNDkgKi8KKwl7IDQsCVRELAlzeXNfdGltZXJmZCwJCSJ0aW1lcmZkIgl9LCAvKiAzNTAgKi8KKwl7IDEsCVRELAlzeXNfZXZlbnRmZCwJCSJldmVudGZkIgl9LCAvKiAzNTEgKi8KKwl7IDYsCVRELAlzeXNfZmFsbG9jYXRlLAkJImZhbGxvY2F0ZSIJfSwgLyogMzUyICovCisJeyA0LAlURCwJc3lzX3RpbWVyZmRfc2V0dGltZSwJInRpbWVyZmRfc2V0dGltZSJ9LCAvKiAzNTMgKi8KKwl7IDIsCVRELAlzeXNfdGltZXJmZF9nZXR0aW1lLAkidGltZXJmZF9nZXR0aW1lIn0sIC8qIDM1NCAqLworCXsgNCwJVER8VFMsCXN5c19zaWduYWxmZDQsCQkic2lnbmFsZmQ0Igl9LCAvKiAzNTUgKi8KKwl7IDIsCVRELAlzeXNfZXZlbnRmZDIsCQkiZXZlbnRmZDIiCX0sIC8qIDM1NiAqLworCXsgMSwJVEQsCXN5c19lcG9sbF9jcmVhdGUxLAkiZXBvbGxfY3JlYXRlMSIJfSwgLyogMzU3ICovCisJeyAzLAlURCwJc3lzX2R1cDMsCQkiZHVwMyIJCX0sIC8qIDM1OCAqLworCXsgMiwJVEQsCXN5c19waXBlMiwJCSJwaXBlMiIJCX0sIC8qIDM1OSAqLworCXsgMSwJVEQsCXN5c19pbm90aWZ5X2luaXQxLAkiaW5vdGlmeV9pbml0MSIJfSwgLyogMzYwICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJInByZWFkdiIJfSwgLyogMzYxICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJInB3cml0ZXYiCX0sIC8qIDM2MiAqLworCXsgNCwJVFB8VFMsCXByaW50YXJncywJCSJydF90Z3NpZ3F1ZXVlaW5mbyJ9LCAvKiAzNjMgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicGVyZl9ldmVudF9vcGVuIn0sIC8qIDM2NCAqLworCXsgNSwJVE4sCXN5c19yZWN2bW1zZywJCSJyZWN2bW1zZyIJfSwgLyogMzY1ICovCisJeyA0LAlUTiwJc3lzX2FjY2VwdDQsCQkiYWNjZXB0NCIJfSwgLyogMzY2ICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJImZhbm90aWZ5X2luaXQiCX0sIC8qIDM2NyAqLworCXsgNSwJVER8VEYsCXByaW50YXJncywJCSJmYW5vdGlmeV9tYXJrIgl9LCAvKiAzNjggKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJwcmxpbWl0NjQiCX0sIC8qIDM2OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAiCX0sIC8qIDM3MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzEiCX0sIC8qIDM3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIiCX0sIC8qIDM3MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMiCX0sIC8qIDM3MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQiCX0sIC8qIDM3NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUiCX0sIC8qIDM3NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYiCX0sIC8qIDM3NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzciCX0sIC8qIDM3NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgiCX0sIC8qIDM3OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkiCX0sIC8qIDM3OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCX0sIC8qIDM4MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEiCX0sIC8qIDM4MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIiCX0sIC8qIDM4MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMiCX0sIC8qIDM4MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQiCX0sIC8qIDM4NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUiCX0sIC8qIDM4NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYiCX0sIC8qIDM4NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODciCX0sIC8qIDM4NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgiCX0sIC8qIDM4OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkiCX0sIC8qIDM4OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qIDM5MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qIDM5MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIiCX0sIC8qIDM5MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qIDM5MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qIDM5NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUiCX0sIC8qIDM5NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qIDM5NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qIDM5NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgiCX0sIC8qIDM5OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qIDM5OSAqLworCisjaWZuZGVmIF9fQVJNX0VBQklfXworI2lmIFNZU19zb2NrZXRfc3ViY2FsbCAhPSA0MDAKKyAjZXJyb3IgZml4IG1lCisjZW5kaWYKKwl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiA0MDAgKi8KKwl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogNDAxICovCisJeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDQwMiAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDQwMyAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiA0MDQgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogNDA1ICovCisJeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDQwNiAqLworCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiA0MDcgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiA0MDggKi8KKwl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogNDA5ICovCisJeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDQxMCAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiA0MTEgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDQxMiAqLworCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogNDEzICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogNDE0ICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogNDE1ICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogNDE2ICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogNDE3ICovCisJeyA0LAlUTiwJc3lzX2FjY2VwdDQsCQkiYWNjZXB0NCIJfSwgLyogNDE4ICovCisJeyA1LAlUTiwJc3lzX3JlY3ZtbXNnLAkJInJlY3ZtbXNnIgl9LCAvKiA0MTkgKi8KKworI2lmIFNZU19pcGNfc3ViY2FsbCAhPSA0MjAKKyAjZXJyb3IgZml4IG1lCisjZW5kaWYKKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDIwICovCisJeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJfSwgLyogNDIxICovCisJeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDQyMiAqLworCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiA0MjMgKi8KKwl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgl9LCAvKiA0MjQgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI1ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyNiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjcgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI4ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyOSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzAgKi8KKwl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogNDMxICovCisJeyA0LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDQzMiAqLworCXsgNCwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiA0MzMgKi8KKwl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogNDM0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzOCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzkgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDQwICovCisJeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgLyogNDQxICovCisJeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogNDQyICovCisJeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDQ0MyAqLworCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiA0NDQgKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGludXgvYXJtL3N5c2NhbGxlbnQxLmggYi9saW51eC9hcm0vc3lzY2FsbGVudDEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTc4ZTlmCi0tLSAvZGV2L251bGwKKysrIGIvbGludXgvYXJtL3N5c2NhbGxlbnQxLmgKQEAgLTAsMCArMSw3IEBACisvKiBBUk0gc3BlY2lmaWMgc3lzY2FsbHMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMCIJCQl9LCAvKiAwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYnJlYWtwb2ludCIJCX0sIC8qIDEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJjYWNoZWZsdXNoIgkJfSwgLyogMiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInVzcjI2IgkJCX0sIC8qIDMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJ1c3IzMiIJCQl9LCAvKiA0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkic2V0X3RscyIJCX0sIC8qIDUgKi8KZGlmZiAtLWdpdCBhL2xpbnV4L2R1bW15LmggYi9saW51eC9kdW1teS5oCmluZGV4IDUxNzhmYWQuLjNiOGJmZjAgMTAwNjQ0Ci0tLSBhL2xpbnV4L2R1bW15LmgKKysrIGIvbGludXgvZHVtbXkuaApAQCAtMjUsNyArMjUsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogZHVtbXkuaCx2IDEuMTcgMjAwNC8wNC8xNiAyMTo0ODo0NCByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAvKiBzdGlsbCB1bmZpbmlzaGVkICovCkBAIC00MSw5ICs0MSwxMSBAQAogLyogbWFjaGluZS1zcGVjaWZpYyAqLwogI2lmbmRlZiBJMzg2CiAjZGVmaW5lCXN5c19tb2RpZnlfbGR0CQlwcmludGFyZ3MKKyNpZm5kZWYgTTY4SwogI2RlZmluZSBzeXNfZ2V0X3RocmVhZF9hcmVhCXByaW50YXJncwogI2RlZmluZSBzeXNfc2V0X3RocmVhZF9hcmVhCXByaW50YXJncwogI2VuZGlmCisjZW5kaWYKIAogI2RlZmluZSBzeXNfc2NoZWRfeWllbGQJCXByaW50YXJncwogI2RlZmluZSBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgpAQCAtNTQsMTEgKzU2LDEyIEBACiAjZGVmaW5lCXN5c191bW91bnQJCXN5c19jaGRpcgogI2RlZmluZQlzeXNfc3dhcG9uCQlzeXNfY2hkaXIKICNkZWZpbmUJc3lzX3N3YXBvZmYJCXN5c19jaGRpcgotI2RlZmluZQlzeXNfZGVsZXRlX21vZHVsZQlzeXNfY2hkaXIKKyNkZWZpbmUJc3lzX2RlbGV0ZV9tb2R1bGUJc3lzX29wZW4KICNkZWZpbmUJc3lzX2ZjaGRpcgkJc3lzX2Nsb3NlCi0jZGVmaW5lCXN5c19zZXRmc3VpZAkJc3lzX3NldHVpZAotI2RlZmluZQlzeXNfc2V0ZnNnaWQJCXN5c19zZXRnaWQKLSNkZWZpbmUgc3lzX25hbm9zbGVlcAkJc3lzX2FkanRpbWUKKyNkZWZpbmUJc3lzX2dldGdpZAkJc3lzX2dldHVpZAorI2RlZmluZQlzeXNfZ2V0ZWdpZAkJc3lzX2dldHVpZAorI2RlZmluZQlzeXNfZ2V0ZXVpZAkJc3lzX2dldHVpZAorI2RlZmluZQlzeXNfc2V0ZnNnaWQJCXN5c19zZXRmc3VpZAogI2RlZmluZQlzeXNfYWNjdAkJc3lzX2NoZGlyCiAjZGVmaW5lIHN5c19mZGF0YXN5bmMJCXN5c19jbG9zZQogI2RlZmluZSBzeXNfbWxvY2sJCXN5c19tdW5tYXAKQEAgLTY5LDEyICs3Miw4IEBACiAvKiBwcmludGFyZ3MgZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8KICNkZWZpbmUJc3lzX3NldHVwCQlwcmludGFyZ3MKICNkZWZpbmUJc3lzX2dldHBpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXR1aWQJCXByaW50YXJncwogI2RlZmluZQlzeXNfcGF1c2UJCXByaW50YXJncwogI2RlZmluZQlzeXNfc3luYwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0ZXVpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRlZ2lkCQlwcmludGFyZ3MKICNkZWZpbmUJc3lzX2dldHBwaWQJCXByaW50YXJncwogI2RlZmluZQlzeXNfZ2V0cGdycAkJcHJpbnRhcmdzCiAjZGVmaW5lCXN5c19zZXRzaWQJCXByaW50YXJncwpAQCAtMjI0LDI1ICsyMjMsMyBAQAogI2RlZmluZSBzeXNfbWxvY2thbGwJCXByaW50YXJncwogI2RlZmluZQlzeXNfcmVib290CQlwcmludGFyZ3MKICNlbmRpZgotCi0KLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLQotI2RlZmluZSBzeXNfbXFfb3BlbiBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21xX3RpbWVkc2VuZCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21xX3RpbWVkcmVjZWl2ZSBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21xX25vdGlmeSBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21xX2dldHNldGF0dHIgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZW1vcCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NlbWdldCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NlbWN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NlbXRpbWVkb3AgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tc2dzbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tc2dyY3YgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tc2dnZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tc2djdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaG1hdCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NobWR0IHByaW50YXJncwotI2RlZmluZSBzeXNfc2htZ2V0IHByaW50YXJncwotI2RlZmluZSBzeXNfc2htY3RsIHByaW50YXJncwotI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC9lcnJub2VudC5oIGIvbGludXgvZXJybm9lbnQuaAppbmRleCA2OGIyYWRjLi5jNTJkMWQwIDEwMDY0NAotLS0gYS9saW51eC9lcnJub2VudC5oCisrKyBiL2xpbnV4L2Vycm5vZW50LmgKQEAgLTU2LDcgKzU2LDExIEBACiAJIkVOT0FOTyIsIC8qIDU1ICovCiAJIkVCQURSUUMiLCAvKiA1NiAqLwogCSJFQkFEU0xUIiwgLyogNTcgKi8KKyNpZmRlZiBQT1dFUlBDCisJIkVERUFETE9DSyIsIC8qIDU4ICovCisjZWxzZQogCSJFUlJOT181OCIsIC8qIDU4ICovCisjZW5kaWYKIAkiRUJGT05UIiwgLyogNTkgKi8KIAkiRU5PU1RSIiwgLyogNjAgKi8KIAkiRU5PREFUQSIsIC8qIDYxICovCkBAIC0xMjMsMTQgKzEyNywxNCBAQAogCSJFRFFVT1QiLCAvKiAxMjIgKi8KIAkiRU5PTUVESVVNIiwgLyogMTIzICovCiAJIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCi0JIkVSUk5PXzEyNSIsIC8qIDEyNSAqLwotCSJFUlJOT18xMjYiLCAvKiAxMjYgKi8KLQkiRVJSTk9fMTI3IiwgLyogMTI3ICovCi0JIkVSUk5PXzEyOCIsIC8qIDEyOCAqLwotCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KLQkiRVJSTk9fMTMwIiwgLyogMTMwICovCi0JIkVSUk5PXzEzMSIsIC8qIDEzMSAqLwotCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KKwkiRUNBTkNFTEVEIiwgLyogMTI1ICovCisJIkVOT0tFWSIsIC8qIDEyNiAqLworCSJFS0VZRVhQSVJFRCIsIC8qIDEyNyAqLworCSJFS0VZUkVWT0tFRCIsIC8qIDEyOCAqLworCSJFS0VZUkVKRUNURUQiLCAvKiAxMjkgKi8KKwkiRU9XTkVSREVBRCIsIC8qIDEzMCAqLworCSJFTk9UUkVDT1ZFUkFCTEUiLCAvKiAxMzEgKi8KKwkiRVJGS0lMTCIsIC8qIDEzMiAqLwogCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KIAkiRVJSTk9fMTM0IiwgLyogMTM0ICovCiAJIkVSUk5PXzEzNSIsIC8qIDEzNSAqLwpAQCAtNTE0LDcgKzUxOCw3IEBACiAJIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCiAJIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCiAJIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCi0JIkVSUk5PXzUxNiIsIC8qIDUxNiAqLworCSJFUkVTVEFSVF9SRVNUQVJUQkxPQ0siLCAvKiA1MTYgKi8KIAkiRVJSTk9fNTE3IiwgLyogNTE3ICovCiAJIkVSUk5PXzUxOCIsIC8qIDUxOCAqLwogCSJFUlJOT181MTkiLCAvKiA1MTkgKi8KQEAgLTUyNywzICs1MzEsNSBAQAogCSJFU0VSVkVSRkFVTFQiLCAvKiA1MjYgKi8KIAkiRUJBRFRZUEUiLCAvKiA1MjcgKi8KIAkiRUpVS0VCT1giLCAvKiA1MjggKi8KKwkiRUlPQ0JRVUVVRUQiLCAvKiA1MjkgKi8KKwkiRUlPQ0JSRVRSWSIsIC8qIDUzMCAqLwpkaWZmIC0tZ2l0IGEvbGludXgvaTM4Ni9zeXNjYWxsZW50LmggYi9saW51eC9pMzg2L3N5c2NhbGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTJkNDY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGludXgvaTM4Ni9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSw0ODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQkCisgKi8KKworCXsgMCwJMCwJc3lzX3Jlc3RhcnRfc3lzY2FsbCwJInJlc3RhcnRfc3lzY2FsbCIgfSwgLyogMCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJIl9leGl0IiwgU1lTX2V4aXQgfSwgLyogMSAqLworCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiLCBTWVNfZm9yayB9LCAvKiAyICovCisJeyAzLAlURCwJc3lzX3JlYWQsCQkicmVhZCIsIFNZU19yZWFkIH0sIC8qIDMgKi8KKwl7IDMsCVRELAlzeXNfd3JpdGUsCQkid3JpdGUiLCBTWVNfd3JpdGUgfSwgLyogNCAqLworCXsgMywJVER8VEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCisJeyAxLAlURCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLworCXsgMywJVFAsCXN5c193YWl0cGlkLAkJIndhaXRwaWQiLCBTWVNfd2FpdDQgfSwgLyogNyAqLworCXsgMiwJVER8VEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDggKi8KKwl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLworCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIiwgU1lTX2V4ZWN2ZSB9LCAvKiAxMSAqLworCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCisJeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KKwl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiAxNCAqLworCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTYgKi8KKwl7IDAsCTAsCXN5c19icmVhaywJCSJicmVhayIJCX0sIC8qIDE3ICovCisJeyAyLAlURiwJc3lzX29sZHN0YXQsCQkib2xkc3RhdCIJfSwgLyogMTggKi8KKwl7IDMsCVRELAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLworCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCisJeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KKwl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLworCXsgMCwJTkYsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLworCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KKwl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KKwl7IDIsCVRELAlzeXNfb2xkZnN0YXQsCQkib2xkZnN0YXQiCX0sIC8qIDI4ICovCisJeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLworCXsgMiwJMCwJc3lzX3N0dHksCQkic3R0eSIJCX0sIC8qIDMxICovCisJeyAyLAkwLAlzeXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KKwl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KKwl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLworCXsgMCwJMCwJc3lzX2Z0aW1lLAkJImZ0aW1lIgkJfSwgLyogMzUgKi8KKwl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLworCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLworCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiAzOCAqLworCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCX0sIC8qIDM5ICovCisJeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDAgKi8KKwl7IDEsCVRELAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCisJeyAxLAlURCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLworCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCisJeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KKwl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDggKi8KKwl7IDAsCU5GLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLworCXsgMCwJTkYsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCisJeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCisJeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLworCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCisJeyAzLAlURCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KKwl7IDMsCVRELAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA1NSAqLworCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA1NiAqLworCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KKwl7IDIsCTAsCXN5c191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA1OCAqLworCXsgMSwJMCwJc3lzX29sZG9sZHVuYW1lLAkib2xkb2xkdW5hbWUiCX0sIC8qIDU5ICovCisJeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KKwl7IDIsCVRELAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCisJeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KKwl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLworCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCisJeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJIm9sZF9nZXRybGltaXQiCX0sIC8qIDc2ICovCisJeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KKwl7IDEsCVRELAlzeXNfb2xkc2VsZWN0LAkJIm9sZHNlbGVjdCIJfSwgLyogODIgKi8KKwl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA4MyAqLworCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJfSwgLyogODQgKi8KKwl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCisJeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCisJeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCisJeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KKwl7IDMsCVRELAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLworCXsgNiwJVEQsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIJfSwgLyogOTAgKi8KKwl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KKwl7IDIsCVRELAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KKwl7IDIsCVRELAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KKwl7IDMsCVRELAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KKwl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCisJeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KKwl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KKwl7IDIsCVRELAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KKwl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KKwl7IDIsCVRELAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIiwgU1lTX3NvY2tldGNhbGwgfSwgLyogMTAyICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTAzICovCisJeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgLyogMTA0ICovCisJeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogMTA1ICovCisJeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEwNiAqLworCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEwNyAqLworCXsgMiwJVEQsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLworCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KKwl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KKwl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLworCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLworCXsgMSwJMCwJc3lzX3ZtODZvbGQsCQkidm04Nm9sZCIJfSwgLyogMTEzICovCisJeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IiwgU1lTX3dhaXQ0IH0sIC8qIDExNCAqLworCXsgMSwJVEYsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCisJeyA2LAkwLAlzeXNfaXBjLAkJImlwYyIsIFNZU19pcGMgfSwgLyogMTE3ICovCisJeyAxLAlURCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIsIFNZU19jbG9uZSB9LCAvKiAxMjAgKi8KKwl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTIxICovCisJeyAxLAkwLAlzeXNfdW5hbWUsCQkidW5hbWUiCQl9LCAvKiAxMjIgKi8KKwl7IDMsCTAsCXN5c19tb2RpZnlfbGR0LAkJIm1vZGlmeV9sZHQiCX0sIC8qIDEyMyAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KKwl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCisJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLworCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KKwl7IDMsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KKwl7IDIsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCisJeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLworCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLworCXsgMSwJVEQsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMzMgKi8KKwl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCX0sIC8qIDEzNCAqLworCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIiwgU1lTX3N5c2ZzIH0sIC8qIDEzNSAqLworCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLworCXsgMSwJTkYsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCisJeyAxLAlORiwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMzkgKi8KKwl7IDUsCVRELAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLworCXsgMywJVEQsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCisJeyA1LAlURCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sIC8qIDE0MiAqLworCXsgMiwJVEQsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLworCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCisJeyAzLAlURCwJc3lzX3JlYWR2LAkJInJlYWR2IiwgU1lTX3JlYWR2IH0sIC8qIDE0NSAqLworCXsgMywJVEQsCXN5c193cml0ZXYsCQkid3JpdGV2IiwgU1lTX3dyaXRldiB9LCAvKiAxNDYgKi8KKwl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KKwl7IDEsCVRELAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLworCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KKwl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KKwl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KKwl7IDUsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJ2bTg2IgkJfSwgLyogMTY2ICovCisJeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAvKiAxNjcgKi8KKwl7IDMsCVRELAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogMTY4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogMTY5ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMTcwICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMTcxICovCisJeyA1LAkwLAlzeXNfcHJjdGwsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KKwl7IDEsCVRTLAlwcmludGFyZ3MsCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgLyogMTc0ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KKworCXsgNSwJVEQsCXN5c19wcmVhZCwJCSJwcmVhZDY0IiwgU1lTX3JlYWQgfSwgLyogMTgwICovCisJeyA1LAlURCwJc3lzX3B3cml0ZSwJCSJwd3JpdGU2NCIsIFNZU193cml0ZSB9LCAvKiAxODEgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiAxODIgKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCisJeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCisJeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODggKi8KKwl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4OSAqLworCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIsIFNZU192Zm9yayB9LCAvKiAxOTAgKi8KKwl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAvKiAxOTEgKi8KKwl7IDYsCVRELAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLworCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLworCXsgMywJVEQsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCisJeyAyLAlURCwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93bjMyIgl9LCAvKiAxOTggKi8KKwl7IDAsCU5GLAlzeXNfZ2V0dWlkLAkJImdldHVpZDMyIgl9LCAvKiAxOTkgKi8KKworCXsgMCwJTkYsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkMzIiCX0sIC8qIDIwMCAqLworCXsgMCwJTkYsCXN5c19nZXRldWlkLAkJImdldGV1aWQzMiIJfSwgLyogMjAxICovCisJeyAwLAlORiwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZDMyIgl9LCAvKiAyMDIgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZDMyIgl9LCAvKiAyMDMgKi8KKwl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZDMyIgl9LCAvKiAyMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRncm91cHMzMiwJImdldGdyb3VwczMyIgl9LCAvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMzMiwJInNldGdyb3VwczMyIgl9LCAvKiAyMDYgKi8KKwl7IDMsCVRELAlzeXNfZmNob3duLAkJImZjaG93bjMyIgl9LCAvKiAyMDcgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkMzIiCX0sIC8qIDIwOCAqLworCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQzMiIJfSwgLyogMjA5ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZDMyIgl9LCAvKiAyMTAgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkMzIiCX0sIC8qIDIxMSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93bjMyIgl9LCAvKiAyMTIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkMzIiCX0sIC8qIDIxMyAqLworCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQzMiIJfSwgLyogMjE0ICovCisJeyAxLAlORiwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkMzIiCX0sIC8qIDIxNSAqLworCXsgMSwJTkYsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZDMyIgl9LCAvKiAyMTYgKi8KKwl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxNyAqLworCXsgMywJMCwJc3lzX21pbmNvcmUsCQkibWluY29yZSIJfSwgLyogMjE4ICovCisJeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KKwl7IDMsCVRELAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0Igl9LCAvKiAyMjAgKi8KKwl7IDMsCVRELAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCisvKlRPRE8qL3sgNSwJMCwJcHJpbnRhcmdzLAkJInNlY3VyaXR5Igl9LCAvKiAyMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDIyNCAqLworCXsgNCwJVEQsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAyMjUgKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDIyNiAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDIyNyAqLworCXsgNSwJVEQsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiAyMjggKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDIyOSAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDIzMCAqLworCXsgNCwJVEQsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAyMzEgKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMjMyICovCisJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAyMzMgKi8KKwl7IDMsCVRELAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAyMzQgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJfSwgLyogMjM1ICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiAyMzYgKi8KKwl7IDIsCVRELAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiAyMzcgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDIzOCAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDIzOSAqLworCXsgNiwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJfSwgLyogMjQwICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAyNDEgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDI0MiAqLworCXsgMSwJMCwJc3lzX3NldF90aHJlYWRfYXJlYSwJInNldF90aHJlYWRfYXJlYSIgfSwgLyogMjQzICovCisJeyAxLAkwLAlzeXNfZ2V0X3RocmVhZF9hcmVhLAkiZ2V0X3RocmVhZF9hcmVhIiB9LCAvKiAyNDQgKi8KKwl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogMjQ1ICovCisJeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAyNDYgKi8KKwl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCSJpb19nZXRldmVudHMiCX0sIC8qIDI0NyAqLworCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDI0OCAqLworCXsgMywJMCwJc3lzX2lvX2NhbmNlbCwJCSJpb19jYW5jZWwiCX0sIC8qIDI0OSAqLworCXsgNSwJVEQsCXN5c19mYWR2aXNlNjQsCQkiZmFkdmlzZTY0Igl9LCAvKiAyNTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAyNTEgKi8KKwl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIiwgX19OUl9leGl0X2dyb3VwIH0sIC8qIDI1MiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIn0sIC8qIDI1MyAqLworCXsgMSwJVEQsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDI1NCAqLworCXsgNCwJVEQsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiAyNTUgKi8KKwl7IDQsCVRELAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0Igl9LCAvKiAyNTYgKi8KKwl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLAkicmVtYXBfZmlsZV9wYWdlcyJ9LCAvKiAyNTcgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMjU4ICovCisJeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAyNTkgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMjYwICovCisJeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDI2MSAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDI2MiAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMjYzICovCisJeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDI2NCAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAyNjUgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDI2NiAqLworCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAyNjcgKi8KKwl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCQkic3RhdGZzNjQiCX0sIC8qIDI2OCAqLworCXsgMywJVEQsCXN5c19mc3RhdGZzNjQsCQkiZnN0YXRmczY0Igl9LCAvKiAyNjkgKi8KKwl7IDMsCVRTLAlzeXNfdGdraWxsLAkJInRna2lsbCIJfSwgLyogMjcwICovCisJeyAyLAlURiwJc3lzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDI3MSAqLworCXsgNiwJVEQsCXN5c19mYWR2aXNlNjRfNjQsCSJmYWR2aXNlNjRfNjQiCX0sIC8qIDI3MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZzZXJ2ZXIiCX0sIC8qIDI3MyAqLworCXsgNiwJMCwJc3lzX21iaW5kLAkJIm1iaW5kIgkJfSwgLyogMjc0ICovCisJeyA1LAkwLAlzeXNfZ2V0X21lbXBvbGljeSwJImdldF9tZW1wb2xpY3kiCX0sIC8qIDI3NSAqLworCXsgMywJMCwJc3lzX3NldF9tZW1wb2xpY3ksCSJzZXRfbWVtcG9saWN5Igl9LCAvKiAyNzYgKi8KKwl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDI3NyAqLworCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDI3OCAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMjc5ICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIiB9LCAvKiAyODAgKi8KKwl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiAyODEgKi8KKwl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMjgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V4ZWNfbG9hZCIJfSwgLyogMjgzICovCisJeyA1LAlUUCwJc3lzX3dhaXRpZCwJCSJ3YWl0aWQiLCBTWVNfd2FpdGlkIH0sIC8qIDI4NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qIDI4NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFkZF9rZXkiCX0sIC8qIDI4NiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJInJlcXVlc3Rfa2V5Igl9LCAvKiAyODcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJrZXljdGwiCX0sIC8qIDI4OCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19zZXQiCX0sIC8qIDI4OSAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19nZXQiCX0sIC8qIDI5MCAqLworCXsgMCwJVEQsCXByaW50YXJncywJCSJpbm90aWZ5X2luaXQiCX0sIC8qIDI5MSAqLworCXsgMywJVEQsCXN5c19pbm90aWZ5X2FkZF93YXRjaCwJImlub3RpZnlfYWRkX3dhdGNoIiB9LCAvKiAyOTIgKi8KKwl7IDIsCVRELAlzeXNfaW5vdGlmeV9ybV93YXRjaCwJImlub3RpZnlfcm1fd2F0Y2giIH0sIC8qIDI5MyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm1pZ3JhdGVfcGFnZXMiCX0sIC8qIDI5NCAqLworCXsgNCwJVER8VEYsCXN5c19vcGVuYXQsCQkib3BlbmF0Igl9LCAvKiAyOTUgKi8KKwl7IDMsCVREfFRGLAlzeXNfbWtkaXJhdCwJCSJta2RpcmF0Igl9LCAvKiAyOTYgKi8KKwl7IDQsCVREfFRGLAlzeXNfbWtub2RhdCwJCSJta25vZGF0Igl9LCAvKiAyOTcgKi8KKwl7IDUsCVREfFRGLAlzeXNfZmNob3duYXQsCQkiZmNob3duYXQiCX0sIC8qIDI5OCAqLworCXsgMywJVER8VEYsCXN5c19mdXRpbWVzYXQsCQkiZnV0aW1lc2F0Igl9LCAvKiAyOTkgKi8KKwl7IDQsCVREfFRGLAlzeXNfbmV3ZnN0YXRhdCwJCSJmc3RhdGF0NjQiCX0sIC8qIDMwMCAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJfSwgLyogMzAxICovCisJeyA0LAlURHxURiwJc3lzX3JlbmFtZWF0LAkJInJlbmFtZWF0Igl9LCAvKiAzMDIgKi8KKwl7IDUsCVREfFRGLAlzeXNfbGlua2F0LAkJImxpbmthdCIJfSwgLyogMzAzICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCX0sIC8qIDMwNCAqLworCXsgNCwJVER8VEYsCXN5c19yZWFkbGlua2F0LAkJInJlYWRsaW5rYXQiCX0sIC8qIDMwNSAqLworCXsgMywJVER8VEYsCXN5c19mY2htb2RhdCwJCSJmY2htb2RhdCIJfSwgLyogMzA2ICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCX0sIC8qIDMwNyAqLworCXsgNiwJVEQsCXN5c19wc2VsZWN0NiwJCSJwc2VsZWN0NiIJfSwgLyogMzA4ICovCisJeyA1LAlURCwJc3lzX3Bwb2xsLAkJInBwb2xsIgkJfSwgLyogMzA5ICovCisJeyAxLAlUUCwJc3lzX3Vuc2hhcmUsCQkidW5zaGFyZSIJfSwgLyogMzEwICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0X3JvYnVzdF9saXN0IiB9LCAvKiAzMTEgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRfcm9idXN0X2xpc3QiIH0sIC8qIDMxMiAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJzcGxpY2UiCX0sIC8qIDMxMyAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJzeW5jX2ZpbGVfcmFuZ2UiIH0sIC8qIDMxNCAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ0ZWUiCQl9LCAvKiAzMTUgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidm1zcGxpY2UiCX0sIC8qIDMxNiAqLworCXsgNiwJMCwJc3lzX21vdmVfcGFnZXMsCQkibW92ZV9wYWdlcyIJfSwgLyogMzE3ICovCisJeyAzLAkwLAlzeXNfZ2V0Y3B1LAkJImdldGNwdSIJfSwgLyogMzE4ICovCisJeyA1LAlURCwJc3lzX2Vwb2xsX3B3YWl0LAkiZXBvbGxfcHdhaXQiCX0sIC8qIDMxOSAqLworCXsgNCwJVER8VEYsCXN5c191dGltZW5zYXQsCQkidXRpbWVuc2F0Igl9LCAvKiAzMjAgKi8KKwl7IDMsCVREfFRTLAlzeXNfc2lnbmFsZmQsCQkic2lnbmFsZmQiCX0sIC8qIDMyMSAqLworCXsgMiwJVEQsCXN5c190aW1lcmZkX2NyZWF0ZSwJInRpbWVyZmRfY3JlYXRlIn0sIC8qIDMyMiAqLworCXsgMSwJVEQsCXN5c19ldmVudGZkLAkJImV2ZW50ZmQiCX0sIC8qIDMyMyAqLworCXsgNiwJVEQsCXN5c19mYWxsb2NhdGUsCQkiZmFsbG9jYXRlIgl9LCAvKiAzMjQgKi8KKwl7IDQsCVRELAlzeXNfdGltZXJmZF9zZXR0aW1lLAkidGltZXJmZF9zZXR0aW1lIn0sIC8qIDMyNSAqLworCXsgMiwJVEQsCXN5c190aW1lcmZkX2dldHRpbWUsCSJ0aW1lcmZkX2dldHRpbWUifSwgLyogMzI2ICovCisJeyA0LAlURHxUUywJc3lzX3NpZ25hbGZkNCwJCSJzaWduYWxmZDQiCX0sIC8qIDMyNyAqLworCXsgMiwJVEQsCXN5c19ldmVudGZkMiwJCSJldmVudGZkMiIJfSwgLyogMzI4ICovCisJeyAxLAlURCwJc3lzX2Vwb2xsX2NyZWF0ZTEsCSJlcG9sbF9jcmVhdGUxIgl9LCAvKiAzMjkgKi8KKwl7IDMsCVRELAlzeXNfZHVwMywJCSJkdXAzIgkJfSwgLyogMzMwICovCisJeyAyLAlURCwJc3lzX3BpcGUyLAkJInBpcGUyIgkJfSwgLyogMzMxICovCisJeyAxLAlURCwJc3lzX2lub3RpZnlfaW5pdDEsCSJpbm90aWZ5X2luaXQxIgl9LCAvKiAzMzIgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicHJlYWR2Igl9LCAvKiAzMzMgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicHdyaXRldiIJfSwgLyogMzM0ICovCisJeyA0LAlUUHxUUywJcHJpbnRhcmdzLAkJInJ0X3Rnc2lncXVldWVpbmZvIn0sIC8qIDMzNSAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJwZXJmX2V2ZW50X29wZW4ifSwgLyogMzM2ICovCisJeyA1LAlUTiwJc3lzX3JlY3ZtbXNnLAkJInJlY3ZtbXNnIgl9LCAvKiAzMzcgKi8KKwl7IDIsCVRELAlwcmludGFyZ3MsCQkiZmFub3RpZnlfaW5pdCIJfSwgLyogMzM4ICovCisJeyA1LAlURHxURiwJcHJpbnRhcmdzLAkJImZhbm90aWZ5X21hcmsiCX0sIC8qIDMzOSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJInBybGltaXQ2NCIJfSwgLyogMzQwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MSIJfSwgLyogMzQxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MiIJfSwgLyogMzQyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MyIJfSwgLyogMzQzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NCIJfSwgLyogMzQ0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NSIJfSwgLyogMzQ1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NiIJfSwgLyogMzQ2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NyIJfSwgLyogMzQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OCIJfSwgLyogMzQ4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OSIJfSwgLyogMzQ5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MCIJfSwgLyogMzUwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MSIJfSwgLyogMzUxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MiIJfSwgLyogMzUyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MyIJfSwgLyogMzUzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NCIJfSwgLyogMzU0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NSIJfSwgLyogMzU1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NiIJfSwgLyogMzU2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NyIJfSwgLyogMzU3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OCIJfSwgLyogMzU4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OSIJfSwgLyogMzU5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MCIJfSwgLyogMzYwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MSIJfSwgLyogMzYxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MiIJfSwgLyogMzYyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MyIJfSwgLyogMzYzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NCIJfSwgLyogMzY0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NSIJfSwgLyogMzY1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NiIJfSwgLyogMzY2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NyIJfSwgLyogMzY3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OCIJfSwgLyogMzY4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OSIJfSwgLyogMzY5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MCIJfSwgLyogMzcwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MSIJfSwgLyogMzcxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MiIJfSwgLyogMzcyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MyIJfSwgLyogMzczICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NCIJfSwgLyogMzc0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NSIJfSwgLyogMzc1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NiIJfSwgLyogMzc2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NyIJfSwgLyogMzc3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OCIJfSwgLyogMzc4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OSIJfSwgLyogMzc5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MCIJfSwgLyogMzgwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MSIJfSwgLyogMzgxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MiIJfSwgLyogMzgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MyIJfSwgLyogMzgzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NCIJfSwgLyogMzg0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NSIJfSwgLyogMzg1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NiIJfSwgLyogMzg2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NyIJfSwgLyogMzg3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OCIJfSwgLyogMzg4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OSIJfSwgLyogMzg5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MCIJfSwgLyogMzkwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MSIJfSwgLyogMzkxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MiIJfSwgLyogMzkyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MyIJfSwgLyogMzkzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NCIJfSwgLyogMzk0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NSIJfSwgLyogMzk1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NiIJfSwgLyogMzk2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NyIJfSwgLyogMzk3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OCIJfSwgLyogMzk4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OSIJfSwgLyogMzk5ICovCisKKyNpZiBTWVNfc29ja2V0X3N1YmNhbGwgIT0gNDAwCisgI2Vycm9yIGZpeCBtZQorI2VuZGlmCisJeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogNDAwICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDQwMSAqLworCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiA0MDIgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiA0MDMgKi8KKwl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogNDA0ICovCisJeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDQwNSAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiA0MDYgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogNDA3ICovCisJeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogNDA4ICovCisJeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIsIFNZU19zdWJfc2VuZCB9LCAvKiA0MDkgKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IiwgU1lTX3N1Yl9yZWN2IH0sIC8qIDQxMCAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIiwgU1lTX3N1Yl9zZW5kdG8gfSwgLyogNDExICovCisJeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIiwgU1lTX3N1Yl9yZWN2ZnJvbSB9LCAvKiA0MTIgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDQxMyAqLworCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDQxNCAqLworCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDQxNSAqLworCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDQxNiAqLworCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDQxNyAqLworCXsgNCwJVE4sCXN5c19hY2NlcHQ0LAkJImFjY2VwdDQiCX0sIC8qIDQxOCAqLworCXsgNSwJVE4sCXN5c19yZWN2bW1zZywJCSJyZWN2bW1zZyIJfSwgLyogNDE5ICovCisKKyNpZiBTWVNfaXBjX3N1YmNhbGwgIT0gNDIwCisgI2Vycm9yIGZpeCBtZQorI2VuZGlmCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyMCAqLworCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDQyMSAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiA0MjIgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogNDIzICovCisJeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogNDI0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyOCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjkgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDMwICovCisJeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDQzMSAqLworCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiA0MzIgKi8KKwl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogNDMzICovCisJeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDQzNCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzUgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM2ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzNyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzggKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM5ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQ0MCAqLworCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDQ0MSAqLworCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDQ0MiAqLworCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiA0NDMgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogNDQ0ICovCmRpZmYgLS1naXQgYS9saW51eC9pb2N0bGVudC5zaCBiL2xpbnV4L2lvY3RsZW50LnNoCmluZGV4IDhmM2Q3NGIuLjY1YjAwNWQgMTAwNjQ0Ci0tLSBhL2xpbnV4L2lvY3RsZW50LnNoCisrKyBiL2xpbnV4L2lvY3RsZW50LnNoCkBAIC0yNSw3ICsyNSw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogIwotIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xMiAyMDA0LzEwLzA2IDIyOjMxOjM4IHJvbGFuZCBFeHAgJAorIwkkSWQkCiAjCiAKICMgVmFsaWRhdGUgYXJnIGNvdW50LgpAQCAtNTEsMzkgKzUxLDEwOSBAQAogCiAJIyBCdWlsZCB0aGUgbGlzdCBvZiBhbGwgaW9jdGxzCiAJcmVnZXhwPSdeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCtbQS1aXVtBLVowLTlfXSpbWzpzcGFjZTpdXVwrMHgnIiR0eXBlIicuLlw+JwotCShjZCAiJGRpciIgOyBncmVwICIkcmVnZXhwIiAiJEAiIC9kZXYvbnVsbCAyPi9kZXYvbnVsbCApIHwKKwkoY2QgIiRkaXIiICYmIGdyZXAgIiRyZWdleHAiICIkQCIgL2Rldi9udWxsIDI+L2Rldi9udWxsKSB8CiAJCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKIHMvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpcKDB4JyIkdHlwZSInLi5cKS4qLwl7ICJcMSIsCSJcMiIsCVwzCX0sL3AnIFwKIAkJPj4gaW9jdGxzLmgKIH0KIAotOiA+IGlvY3Rscy5oCisKKz4gaW9jdGxzLmgKKworbG9va3VwX2lvY3RscyAwMyBsaW51eC9oZHJlZy5oCiBsb29rdXBfaW9jdGxzIDIyIHNjc2kvc2cuaAogbG9va3VwX2lvY3RscyA0NiBsaW51eC9mYi5oCiBsb29rdXBfaW9jdGxzIDRCIGxpbnV4L2tkLmgKK2xvb2t1cF9pb2N0bHMgNEMgbGludXgvbG9vcC5oCiBsb29rdXBfaW9jdGxzIDUzIGxpbnV4L2Nkcm9tLmggc2NzaS9zY3NpLmggc2NzaS9zY3NpX2lvY3RsLmgKLWxvb2t1cF9pb2N0bHMgNTQgJGFzbS9pb2N0bHMuaAorbG9va3VwX2lvY3RscyA1NCAkYXNtL2lvY3Rscy5oIGFzbS1nZW5lcmljL2lvY3Rscy5oCiBsb29rdXBfaW9jdGxzIDU2IGxpbnV4L3Z0LmgKIGxvb2t1cF9pb2N0bHMgJzdbMTJdJyBsaW51eC92aWRlb3RleHQuaAotbG9va3VwX2lvY3RscyA4OSAkYXNtL3NvY2tpb3MuaCBsaW51eC9zb2NraW9zLmgKK2xvb2t1cF9pb2N0bHMgODkgJGFzbS9zb2NraW9zLmggYXNtLWdlbmVyaWMvc29ja2lvcy5oIGxpbnV4L3NvY2tpb3MuaAogbG9va3VwX2lvY3RscyA4QiBsaW51eC93aXJlbGVzcy5oCiAKLWZpbGVzPSJsaW51eC8qICRhc20vKiBzY3NpLyogc291bmQvKiIKK2lmIFsgLWUgJGRpci9LYnVpbGQgXTsgdGhlbgorCSMga2VybmVsIGhhcyBleHBvcnRlZCB1c2VyIHNwYWNlIGhlYWRlcnMsIHNvIHF1ZXJ5IG9ubHkgdGhlbQorCWZpbGVzPSQoCisJCWNkICRkaXIgfHwgZXhpdAorCQlmaW5kIC4gLW1pbmRlcHRoIDIgLW5hbWUgS2J1aWxkIHwgXAorCQkJc2VkIC1lICdzOl5cLi86OicgLWUgJ3M6L0tidWlsZDovKjonIHwgXAorCQkJZ3JlcCAtdiAnXmFzbS0nCisJCWVjaG8gIiRhc20vKiBhc20tZ2VuZXJpYy8qIgorCSkKKwkjIHNwZWNpYWwgY2FzZTogc29tZSBoZWFkZXJzIGFyZW4ndCBleHBvcnRlZCBkaXJlY3RseQorCWZpbGVzPSIke2ZpbGVzfSBtZWRpYS8qIG5ldC9ibHVldG9vdGgvKiBwY21jaWEvKiIKK2Vsc2UKKwkjIG9sZGVyIGtlcm5lbCBzbyBqdXN0IGFzc3VtZSBzb21lIGhlYWRlcnMKKwlmaWxlcz0ibGludXgvKiAkYXNtLyogYXNtLWdlbmVyaWMvKiBzY3NpLyogc291bmQvKiIKK2ZpCiAKICMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscworIyBFeGFtcGxlIG91dHB1dDoKKyMgeyAiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTQgIH0sCisjIHsgImFzbS9tY2UuaCIsCSJNQ0VfR0VUQ0xFQVJfRkxBR1MiLAlfSU9DKF9JT0NfTk9ORSwnTScsMywwKSB9LAogcmVnZXhwPSdeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCtbQS1aXVtBLVowLTlfXSpbWzpzcGFjZTpdXVwrX1NcP1woSU9cfElPV1x8SU9SXHxJT1dSXClcPicKLShjZCAkZGlyIDsgZ3JlcCAkcmVnZXhwICRmaWxlcyAyPi9kZXYvbnVsbCApIHwgXAotCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKLXMvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpfU1w/SS4qKFwoW15bLF0qXClbWzpzcGFjZTpdXSosW1s6c3BhY2U6XV0qXChbXiwpXSpcKS4qLwl7ICJcMSIsCSJcMiIsCV9JT0MoX0lPQ19OT05FLFwzLFw0LDApCX0sL3AnIFwKKyhjZCAkZGlyICYmIGdyZXAgJHJlZ2V4cCAkZmlsZXMgMj4vZGV2L251bGwpIHwgXAorCXNlZCAtbiBcCisJLWUgInMsJGFzbS8sYXNtLyxnIiBcCisJLWUgJ3MvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpfU1w/SS4qKFwoW15bLF0qXClbWzpzcGFjZTpdXSosW1s6c3BhY2U6XV0qXChbXiwpXSpcKS4qLwl7ICJcMSIsCSJcMiIsCV9JT0MoX0lPQ19OT05FLFwzLFw0LDApCX0sL3AnIFwKIAk+PiBpb2N0bHMuaAogCi0jIFNvbWUgdXNlIGEgc3BlY2lhbCBiYXNlIHRvIG9mZnNldCB0aGVpciBpb2N0bHMgb24uIEV4dHJhY3QgdGhhdCBhcyB3ZWxsLgotOiA+IGlvY3RsZGVmcy5oCisjIFNvcnQgYW5kIGRyb3AgZHVwcz8KKyMgc29ydCAtdSA8aW9jdGxzLmggPmlvY3RsczEuaCAmJiBtdiBpb2N0bHMxLmggaW9jdGxzLmgKIAotYmFzZXM9JChzZWQgLW5lICdzLy4qX0lPQ19OT05FLiosW1s6c3BhY2U6XV0qXChbQS1aXVtBLVowLTlfXVwrXClbWzpzcGFjZTpdKyxdLiovXDEvcCcgaW9jdGxzLmggfCB1bmlxIHwgc29ydCkKLWZvciBiYXNlIGluICRiYXNlcyA7IGRvCisKKz4gaW9jdGxkZWZzLmgKKworIyBDb2xsZWN0IHBvdGVudGlhbCBpb2N0bCBuYW1lcy4gKCdiYXNlcycgaXMgYSBiYWQgbmFtZS4gU2lnaCkKKyMgU29tZSB1c2UgYSBzcGVjaWFsIGJhc2UgdG8gb2Zmc2V0IHRoZWlyIGlvY3RscyBvbi4gRXh0cmFjdCB0aGF0IGFzIHdlbGwuCisjIFNvbWUgdXNlIDIgZGVmaW5lczogX0lPQyhfSU9DX05PTkUsRE1fSU9DVEwsRE1fTElTVF9ERVZJQ0VTX0NNRCwuLi4uKQorYmFzZXM9JChzZWQgLW4gXAorICAgICAgIC1lICdzLy4qX0lPQ19OT05FLiosW1s6c3BhY2U6XV0qXChbQS1aXVtBLVowLTlfXVwrXClbWzpzcGFjZTpdXSosW1s6c3BhY2U6XV0qXChbQS1aXVtBLVowLTlfXVwrXClbWzpzcGFjZTpdKyxdLiovXDFcblwyL3AnIFwKKyAgICAgICAtZSAncy8uKl9JT0NfTk9ORS4qLFtbOnNwYWNlOl1dKlwoW0EtWl1bQS1aMC05X11cK1wpW1s6c3BhY2U6XSssXS4qL1wxL3AnIFwKKyAgICAgICBpb2N0bHMuaCB8IHNvcnQgLXUpCisKK2ZvciBiYXNlIGluICRiYXNlczsgZG8KIAllY2hvICJMb29raW5nIGZvciAkYmFzZSIKIAlyZWdleHA9Il5bWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV1cKyRiYXNlIgotCShjZCAkZGlyIDsgZ3JlcCAtaCAkcmVnZXhwIDI+L2Rldi9udWxsICRmaWxlcyApIHwgXAotCQlncmVwIC12ICdcPF9JTycgPj4gaW9jdGxkZWZzLmgKKwlsaW5lPSQoIChjZCAkZGlyICYmIGdyZXAgLWggJHJlZ2V4cCAyPi9kZXYvbnVsbCAkZmlsZXMpIHwgZ3JlcCAtdiAnXDxfSU8nKQorCWlmIFsgeCIkbGluZSIgIT0geCBdOyB0aGVuCisJCWVjaG8gIiRiYXNlIGlzIGEgI2RlZmluZSIgIyAiKCRsaW5lKSIKKwkJZWNobyAiJGxpbmUiID4+IGlvY3RsZGVmcy5oCisJZmkKKworCWlmICEgZ3JlcCAiXDwkYmFzZVw+IiBpb2N0bGRlZnMuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisJCSMgTm90IGFsbCBpb2N0bCdzIGFyZSBkZWZpbmVzIC4uLiBzb21lIChsaWtlIHRoZSBETV8qIHN0dWZmKQorCQkjIGFyZSBlbnVtcywgc28gd2UgaGF2ZSB0byBleHRyYWN0IHRoYXQgY3JhcCBvdXJzZWxmCisJCSgKKwkJY2QgJGRpciB8fCBleGl0CisJCSMgLVA6IGluaGliaXQgZ2VuZXJhdGlvbiBvZiBsaW5lbWFya2VycworCQkke0NQUDotY3BwfSAtUCAkKGdyZXAgLWwgJGJhc2UgJGZpbGVzIDI+L2Rldi9udWxsKSB8IHNlZCAnL14kL2QnIHwgXAorCQlhd2sgLXYgYmFzZT0iJGJhc2UiICd7CisJCQlpZiAoJDEgPT0gImVudW0iKSB7CisJCQkJdmFsID0gMAorCQkJCXdoaWxlICgkTkYgIT0gIn07IikgeworCQkJCQlpZiAoIWdldGxpbmUpCisJCQkJCQlleGl0CisJCQkJCWdzdWIoLywvLCAiIikKKwkJCQkJaWYgKCQwIH4gLz0vKQorCQkJCQkJdmFsID0gJE5GCisJCQkJCWlmICgkMSA9PSBiYXNlKSB7CisJCQkJCQlwcmludCAiI2RlZmluZSAiIGJhc2UgIiAoIiB2YWwgIikiCisJCQkJCQlleGl0CisJCQkJCX0KKwkJCQkJdmFsKysKKwkJCQl9CisJCQl9CisJCX0nCisJCSkgPj4gaW9jdGxkZWZzLmgKKwkJaWYgISBncmVwICJcPCRiYXNlXD4iIGlvY3RsZGVmcy5oID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KKwkJCWVjaG8gIkNhbid0IGZpbmQgdGhlIGRlZmluaXRpb24gZm9yICRiYXNlIgorCQllbHNlCisJCQllY2hvICIkYmFzZSBpcyBhbiBlbnVtIgorCQlmaQorCWZpCiBkb25lCisKKyMgU29ydCBhbmQgZHJvcCBkdXBzPworIyBzb3J0IC11IDxpb2N0bGRlZnMuaCA+aW9jdGxkZWZzMS5oICYmIG12IGlvY3RsZGVmczEuaCBpb2N0bGRlZnMuaApkaWZmIC0tZ2l0IGEvbGludXgvaW9jdGxzb3J0LmMgYi9saW51eC9pb2N0bHNvcnQuYwppbmRleCBmNTQ0ZDg0Li42ZWU2YzA3IDEwMDY0NAotLS0gYS9saW51eC9pb2N0bHNvcnQuYworKysgYi9saW51eC9pb2N0bHNvcnQuYwpAQCAtMzUsMTcgKzM1LDE3IEBACiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKIAlpbnQgaTsKIAotI2lmZGVmIFBPV0VSUEMJCQkvKiB1bnNwZWFrYWJsZSBrbHVkZ2UgKi8KKwkvKiBpb2N0bF9sb29rdXAoKSBvbmx5IGxvb2tzIGF0IHRoZSBOUiBhbmQgVFlQRSBiaXRzIGF0bS4gKi8KIAlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQotCQlpb2N0bHNbaV0uY29kZSAmPSB+X0lPQ19ESVJNQVNLOwotI2VuZGlmCisJCWlvY3Rsc1tpXS5jb2RlICY9IChfSU9DX05STUFTSyA8PCBfSU9DX05SU0hJRlQpIHwKKwkJCQkgIChfSU9DX1RZUEVNQVNLIDw8IF9JT0NfVFlQRVNISUZUKTsKIAogCXFzb3J0KGlvY3RscywgbmlvY3Rscywgc2l6ZW9mKGlvY3Rsc1swXSksIGNvbXBhcmUpOwogCXB1dHMgKCJcdC8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8iKTsKIAlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQogCQlpZiAoaSA9PSAwIHx8IGlvY3Rsc1tpXS5jb2RlICE9IGlvY3Rsc1tpLTFdLmNvZGUgfHwKIAkJICAgIHN0cmNtcCAoaW9jdGxzW2ldLm5hbWUsIGlvY3Rsc1tpLTFdLm5hbWUpKQotCQkJcHJpbnRmKCJcdHtcIiVzXCIsXHRcIiVzXCIsXHQlI2x4fSxcbiIsCisJCQlwcmludGYoIlx0e1wiJXNcIixcdFwiJXNcIixcdCUjMDZseH0sXG4iLAogCQkJCWlvY3Rsc1tpXS5oZWFkZXIsIGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaV0uY29kZSk7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9taXBzL2Vycm5vZW50LmggYi9saW51eC9taXBzL2Vycm5vZW50LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHN0cmFjZS9saW51eC9taXBzL2Vycm5vZW50LmgKcmVuYW1lIHRvIGxpbnV4L21pcHMvZXJybm9lbnQuaApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuc2ggYi9saW51eC9taXBzL2lvY3RsZW50LnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuc2gKcmVuYW1lIHRvIGxpbnV4L21pcHMvaW9jdGxlbnQuc2gKaW5kZXggYjc5ZDJjNy4uZGQ1ZmQ5ZAotLS0gYS9zdHJhY2UvbGludXgvbWlwcy9pb2N0bGVudC5zaAorKysgYi9saW51eC9taXBzL2lvY3RsZW50LnNoCkBAIC0yNyw3ICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogIwotIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xIDE5OTkvMTEvMDEgMDA6NDY6NDkgd2ljaGVydCBFeHAgJAorIwkkSWQkCiAKICMgRmlsZXMgdG8gZmluZC4KIGZpbGVfZmluZD0nYXNtLyouaCBsaW51eC8qLmggc2NzaS8qLmgnCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvbWlwcy9zaWduYWxlbnQuaCBiL2xpbnV4L21pcHMvc2lnbmFsZW50LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHN0cmFjZS9saW51eC9taXBzL3NpZ25hbGVudC5oCnJlbmFtZSB0byBsaW51eC9taXBzL3NpZ25hbGVudC5oCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvbWlwcy9zeXNjYWxsZW50LmggYi9saW51eC9taXBzL3N5c2NhbGxlbnQuaApzaW1pbGFyaXR5IGluZGV4IDYwJQpyZW5hbWUgZnJvbSBzdHJhY2UvbGludXgvbWlwcy9zeXNjYWxsZW50LmgKcmVuYW1lIHRvIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oCmluZGV4IGE5ZWRjNjIuLjkxM2QzZDkgMTAwNjQ0Ci0tLSBhL3N0cmFjZS9saW51eC9taXBzL3N5c2NhbGxlbnQuaAorKysgYi9saW51eC9taXBzL3N5c2NhbGxlbnQuaApAQCAtMSwzICsxLDUgQEAKKyNpbmNsdWRlICJkdW1teS5oIgorCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zeXNjYWxsIgl9LCAvKiAgMDAwICovCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9leGl0Igl9LCAvKiAgMDAxICovCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9mb3JrIgl9LCAvKiAgMDAyICovCkBAIC0zOTk4LDE1ICs0MDAwLDE3IEBACiAJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTciCX0sIC8qIDM5OTcgKi8KIAl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5OCIJfSwgLyogMzk5OCAqLwogCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTk5Igl9LCAvKiAzOTk5ICovIC8qIGVuZCBvZiBQT1NJWCAqLworI2lmICFkZWZpbmVkIChMSU5VWF9NSVBTTjMyKSAmJiAhZGVmaW5lZCAoTElOVVhfTUlQU042NCkKKwkvKiBGb3IgYW4gTzMyIHN0cmFjZSwgZGVjb2RlIHRoZSBvMzIgc3lzY2FsbHMuICAqLwogCXsgOCwJMCwJcHJpbnRhcmdzLAkJInN5c2NhbGwiCX0sIC8qIDQwMDAgKi8gLyogc3RhcnQgb2YgTGludXggbzMyICovCiAJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCX0sIC8qIDQwMDEgKi8KIAl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogNDAwMiAqLwotCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiA0MDAzICovCi0JeyAzLAlURiwJc3lzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogNDAwNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA0MDA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA0MDA2ICovCisJeyAzLAlURCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDQwMDMgKi8KKwl7IDMsCVRELAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0MDA0ICovCisJeyAzLAlURHxURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDQwMDUgKi8KKwl7IDEsCVRELAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA0MDA2ICovCiAJeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIJfSwgLyogNDAwNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDQwMDggKi8KKwl7IDIsCVREfFRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA0MDA4ICovCiAJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDQwMDkgKi8KIAl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogNDAxMCAqLwogCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiA0MDExICovCkBAIC00MDE3LDEyICs0MDIxLDEyIEBACiAJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogNDAxNiAqLwogCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJfSwgLyogNDAxNyAqLwogCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDQwMTggKi8KLQl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDQwMTkgKi8KKwl7IDMsCVRELAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiA0MDE5ICovCiAJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogNDAyMCAqLwogCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDQwMjEgKi8KIAl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogNDAyMiAqLwogCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDQwMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiA0MDI0ICovCisJeyAwLAlORiwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDQwMjQgKi8KIAl7IDEsCTAsCXN5c19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDQwMjUgKi8KIAl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiA0MDI2ICovCiAJeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiA0MDI3ICovCkBAIC00MDM5LDIxICs0MDQzLDIxIEBACiAJeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDQwMzggKi8KIAl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiA0MDM5ICovCiAJeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDA0MiAqLworCXsgMSwJVEQsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNDA0MSAqLworCXsgMSwJVEQsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MDQyICovCiAJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MDQzICovCiAJeyAwLAkwLAlzeXNfcHJvZiwJCSJwcm9mIgkJfSwgLyogNDA0NCAqLwogCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0MDQ1ICovCiAJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDA0NiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQwNDcgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDA0NyAqLwogCXsgMSwJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0MDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0MDQ5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiA0MDUwICovCisJeyAwLAlORiwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDA0OSAqLworCXsgMCwJTkYsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDQwNTAgKi8KIAl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNDA1MSAqLwogCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNDA1MiAqLwogCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDQwNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDQwNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bCIJCX0sIC8qIDQwNTUgKi8KKwl7IDMsCVRELAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA0MDU0ICovCisJeyAzLAlURCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNDA1NSAqLwogCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA0MDU2ICovCiAJeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiA0MDU3ICovCiAJeyAwLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNDA1OCAqLwpAQCAtNDA2MSw3ICs0MDY1LDcgQEAKIAl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDQwNjAgKi8KIAl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNDA2MSAqLwogCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNDA2MiAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDQwNjMgKi8KKwl7IDIsCVRELAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNDA2MyAqLwogCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNDA2NCAqLwogCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNDA2NSAqLwogCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDQwNjYgKi8KQEAgLTQwODcsMzYgKzQwOTEsMzYgQEAKIAl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogNDA4NiAqLwogCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgl9LCAvKiA0MDg3ICovCiAJeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogNDA4OCAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogNDA4OSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkib2xkX21tYXAiCX0sIC8qIDQwOTAgKi8KKwl7IDMsCVRELAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA0MDg5ICovCisJeyA2LAlURCwJc3lzX21tYXAsCQkib2xkX21tYXAiCX0sIC8qIDQwOTAgKi8KIAl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA0MDkxICovCiAJeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA0MDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogNDA5MyAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDQwOTQgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA0MDk1ICovCisJeyAyLAlURCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDQwOTMgKi8KKwl7IDIsCVRELAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogNDA5NCAqLworCXsgMywJVEQsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA0MDk1ICovCiAJeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogNDA5NiAqLwogCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDQwOTcgKi8KIAl7IDAsCTAsCXN5c19wcm9maWwsCQkicHJvZmlsIgl9LCAvKiA0MDk4ICovCiAJeyAzLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDQwOTkgKi8KLQl7IDMsCVRGLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiA0MTAwICovCisJeyAzLAlURCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogNDEwMCAqLwogCXsgMCwJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDQxMDEgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiCX0sIC8qIDQxMDIgKi8KKwl7IDIsCVRELAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiA0MTAyICovCiAJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogNDEwMyAqLwogCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDQxMDQgKi8KIAl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiA0MTA1ICovCiAJeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDQxMDYgKi8KIAl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiA0MTA3ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogNDEwOCAqLworCXsgMiwJVEQsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDQxMDggKi8KIAl7IDEsCTAsCXN5c19vbGR1bmFtZSwJCSJvbGR1bmFtZSIJfSwgLyogNDEwOSAqLwogCXsgMCwJMCwJc3lzX2lvcGwsCQkiaW9wbCIJCX0sIC8qIDQxMTAgKi8KIAl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDQxMTEgKi8KIAl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQl9LCAvKiA0MTEyICovCiAJeyA1LAkwLAlzeXNfdm04Nm9sZCwJCSJ2bTg2IgkJfSwgLyogNDExMyAqLwogCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sIC8qIDQxMTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDQxMTUgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgl9LCAvKiA0MTE1ICovCiAJeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiA0MTE2ICovCiAJeyA2LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDQxMTcgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sIC8qIDQxMTggKi8KKwl7IDEsCVRELAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiA0MTE4ICovCiAJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDQxMTkgKi8KIAl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQl9LCAvKiA0MTIwICovCiAJeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDQxMjEgKi8KQEAgLTQxMjcsNyArNDEzMSw3IEBACiAJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDQxMjYgKi8KIAl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogNDEyNyAqLwogCXsgMywJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDQxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogNDEyOSAqLworCXsgMiwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiA0MTI5ICovCiAJeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDQxMzAgKi8KIAl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgLyogNDEzMSAqLwogCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogNDEzMiAqLwpAQCAtNDEzNiwyMSArNDE0MCwyMSBAQAogCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogNDEzNSAqLwogCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDQxMzYgKi8KIAl7IDAsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiA0MTM3ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDQxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogNDEzOSAqLworCXsgMSwJTkYsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogNDEzOCAqLworCXsgMSwJTkYsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogNDEzOSAqLwogCXsgNSwJVEYsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJfSwgLyogNDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiA0MTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJIl9uZXdzZWxlY3QiCX0sIC8qIDQxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDQxNDMgKi8KKwl7IDMsCVRELAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDQxNDEgKi8KKwl7IDUsCVRELAlzeXNfc2VsZWN0LAkJIl9uZXdzZWxlY3QiCX0sIC8qIDQxNDIgKi8KKwl7IDIsCVRELAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiA0MTQzICovCiAJeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiA0MTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiA0MTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogNDE0NiAqLworCXsgMywJVEQsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDQxNDUgKi8KKwl7IDMsCVRELAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogNDE0NiAqLwogCXsgMywJMCwJcHJpbnRhcmdzLAkJImNhY2hlZmx1c2giCX0sIC8qIDQxNDcgKi8KIAl7IDMsCTAsCXByaW50YXJncywJCSJjYWNoZWN0bCIJfSwgLyogNDE0OCAqLwogCXsgNCwJMCwJc3lzX3N5c21pcHMsCQkic3lzbWlwcyIJfSwgLyogNDE0OSAqLwogCXsgMCwJMCwJc3lzX3NldHVwLAkJInNldHVwIgkJfSwgLyogNDE1MCAqLwogCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDQxNTEgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiA0MTUyICovCisJeyAxLAlURCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDQxNTIgKi8KIAl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogNDE1MyAqLwogCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogNDE1NCAqLwogCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgLyogNDE1NSAqLwpAQCAtNDE2MSwxMSArNDE2NSwxMSBAQAogCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciJ9LCAvKiA0MTYwICovCiAJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDQxNjEgKi8KIAl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIgl9LCAvKiA0MTYyICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCIJCQkJCQkJCX0sIC8qIDQxNjMgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIgkJCQkJCQkJfSwgLyogNDE2NCAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogNDE2MyAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogNDE2NCAqLwogCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDQxNjUgKi8KIAl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiA0MTY2ICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJfSwgLyogNDE2NyAqLworCXsgNSwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDQxNjcgKi8KIAl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogNDE2OCAqLwogCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiA0MTY5ICovCiAJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogNDE3MCAqLwpAQCAtNDE4Niw3ICs0MTkwLDcgQEAKIAl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiA0MTg1ICovCiAJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogNDE4NiAqLwogCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogNDE4NyAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDQxODggKi8KKwl7IDMsCVRELAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogNDE4OCAqLwogCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDQxODkgKi8KIAl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkIgl9LCAvKiA0MTkwICovCiAJeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogNDE5MSAqLwpAQCAtNDE5OCw0NCArNDIwMiw0NCBAQAogCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQifSwvKiA0MTk3ICovCiAJeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywJInJ0X3NpZ3F1ZXVlaW5mbyJ9LC8qIDQxOTggKi8KIAl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwJInJ0X3NpZ3N1c3BlbmQiCX0sIC8qIDQxOTkgKi8KLQl7IDYsCVRGLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiA0MjAwICovCi0JeyA2LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDQyMDEgKi8KKwl7IDYsCVRELAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiA0MjAwICovCisJeyA2LAlURCwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDQyMDEgKi8KIAl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiA0MjAyICovCiAJeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDQyMDMgKi8KIAl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiA0MjA0ICovCiAJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogNDIwNSAqLwogCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YXRjayIJfSwgLyogNDIwNiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogNDIwNyAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogNDIwNyAqLwogCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjA4Igl9LCAvKiA0MjA4ICovCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMDkiCX0sIC8qIDQyMDkgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAiCQl9LCAvKiA0MjEwICovCisJeyA2LAlURCwJc3lzX21tYXAsCQkibW1hcCIJCX0sIC8qIDQyMTAgKi8KIAl7IDQsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiA0MjExICovCi0JeyA0LAlURiwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCX0sIC8qIDQyMTIgKi8KLQl7IDIsCVRGLAlwcmludGFyZ3MsCQkic3RhdDY0Igl9LCAvKiA0MjEzICovCisJeyA0LAlURCwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCX0sIC8qIDQyMTIgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogNDIxMyAqLwogCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCX0sIC8qIDQyMTQgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0Igl9LCAvKiA0MjE1ICovCisJeyAyLAlURCwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogNDIxNSAqLwogCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogNDIxNiAqLwogCXsgMywJMCwJcHJpbnRhcmdzLAkJIm1pbmNvcmUiCX0sIC8qIDQyMTcgKi8KIAl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDQyMTggKi8KIAl7IDMsCVRGLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0Igl9LCAvKiA0MjE5ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogNDIyMCAqLworCXsgMywJVEQsCXN5c19mY250bCwJCSJmY250bDY0Igl9LCAvKiA0MjIwICovCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMjEiCX0sIC8qIDQyMjEgKi8KIAl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDQyMjIgKi8KLQl7IDUsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiA0MjIzICovCisJeyA1LAlURCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDQyMjMgKi8KIAl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDQyMjQgKi8KIAl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgl9LCAvKiA0MjI1ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogNDIyNiAqLworCXsgNSwJVEQsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiA0MjI2ICovCiAJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiA0MjI3ICovCiAJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogNDIyOCAqLwotCXsgNCwJMCwJc3lzX2ZnZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDQyMjkgKi8KKwl7IDQsCVRELAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogNDIyOSAqLwogCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiA0MjMwICovCiAJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiA0MjMxICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiA0MjMyICovCisJeyAzLAlURCwJc3lzX2ZsaXN0eGF0dHIsCQkiZmxpc3R4YXR0ciIJfSwgLyogNDIzMiAqLwogCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiA0MjMzICovCiAJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiA0MjM0ICovCi0JeyAyLAkwLAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiA0MjM1ICovCisJeyAyLAlURCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogNDIzNSAqLwogCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogNDIzNiAqLwotCXsgNSwJVEYsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDQyMzcgKi8KKwl7IDUsCVREfFROLAlzeXNfc2VuZGZpbGU2NCwJCSJzZW5kZmlsZTY0Igl9LCAvKiA0MjM3ICovCiAJeyA2LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiA0MjM4ICovCiAJeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSJ9LCAvKiA0MjM5ICovCiAJeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSJ9LCAvKiA0MjQwICovCkBAIC00MjQ1LDE2ICs0MjQ5LDE2IEBACiAJeyAzLAkwLAlzeXNfaW9fc3VibWl0LAkJImlvX3N1Ym1pdCIJfSwgLyogNDI0NCAqLwogCXsgMywJMCwJc3lzX2lvX2NhbmNlbCwJCSJpb19jYW5jZWwiCX0sIC8qIDQyNDUgKi8KIAl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiA0MjQ2ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogNDI0NyAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogNDI0OCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDQyNDkgKi8KLQl7IDMsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDQyNTAgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSJ9LCAvKiA0MjQ3ICovCisJeyAxLAlURCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogNDI0OCAqLworCXsgNCwJVEQsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiA0MjQ5ICovCisJeyA0LAlURCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogNDI1MCAqLwogCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIn0sIC8qIDQyNTEgKi8KIAl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogNDI1MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiA0MjUzICovCi0JeyA3LAlURiwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJfSwgLyogNDI1NCAqLworCXsgMCwJMCwJc3lzX3Jlc3RhcnRfc3lzY2FsbCwJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiA0MjUzICovCisJeyA2LAlURCwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJfSwgLyogNDI1NCAqLwogCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJCSJzdGF0ZnM2NCIJfSwgLyogNDI1NSAqLwotCXsgMiwJVEYsCXN5c19mc3RhdGZzNjQsCQkiZnN0YXRmczY0Igl9LCAvKiA0MjU2ICovCisJeyAyLAlURCwJc3lzX2ZzdGF0ZnM2NCwJCSJmc3RhdGZzNjQiCX0sIC8qIDQyNTYgKi8KIAl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDQyNTcgKi8KIAl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogNDI1OCAqLwogCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiA0MjU5ICovCkBAIC00MjgxLDU5ICs0Mjg1LDQwMyBAQAogCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFkZF9rZXkiCX0sIC8qIDQyODAgKi8KIAl7IDQsCTAsCXByaW50YXJncywJCSJyZXF1ZXN0X2tleSIJfSwgLyogNDI4MSAqLwogCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJfSwgLyogNDI4MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjgzIgl9LCAvKiA0MjgzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyODQiCX0sIC8qIDQyODQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI4NSIJfSwgLyogNDI4NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjg2Igl9LCAvKiA0Mjg2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyODciCX0sIC8qIDQyODcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI4OCIJfSwgLyogNDI4OCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjg5Igl9LCAvKiA0Mjg5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTAiCX0sIC8qIDQyOTAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI5MSIJfSwgLyogNDI5MSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjkyIgl9LCAvKiA0MjkyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTMiCX0sIC8qIDQyOTMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI5NCIJfSwgLyogNDI5NCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjk1Igl9LCAvKiA0Mjk1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTYiCX0sIC8qIDQyOTYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI5NyIJfSwgLyogNDI5NyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mjk4Igl9LCAvKiA0Mjk4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOTkiCX0sIC8qIDQyOTkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwMCIJfSwgLyogNDMwMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzAxIgl9LCAvKiA0MzAxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDIiCX0sIC8qIDQzMDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwMyIJfSwgLyogNDMwMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzA0Igl9LCAvKiA0MzA0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDUiCX0sIC8qIDQzMDUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwNiIJfSwgLyogNDMwNiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzA3Igl9LCAvKiA0MzA3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDgiCX0sIC8qIDQzMDggKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwOSIJfSwgLyogNDMwOSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzEwIgl9LCAvKiA0MzEwICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTEiCX0sIC8qIDQzMTEgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxMiIJfSwgLyogNDMxMiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzEzIgl9LCAvKiA0MzEzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTQiCX0sIC8qIDQzMTQgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxNSIJfSwgLyogNDMxNSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzE2Igl9LCAvKiA0MzE2ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTciCX0sIC8qIDQzMTcgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxOCIJfSwgLyogNDMxOCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzE5Igl9LCAvKiA0MzE5ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjAiCX0sIC8qIDQzMjAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyMSIJfSwgLyogNDMyMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIyIgl9LCAvKiA0MzIyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjMiCX0sIC8qIDQzMjMgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyNCIJfSwgLyogNDMyNCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzI1Igl9LCAvKiA0MzI1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjYiCX0sIC8qIDQzMjYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyNyIJfSwgLyogNDMyNyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzI4Igl9LCAvKiA0MzI4ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjkiCX0sIC8qIDQzMjkgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzMCIJfSwgLyogNDMzMCAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzMxIgl9LCAvKiA0MzMxICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzIiCX0sIC8qIDQzMzIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzMyIJfSwgLyogNDMzMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzM0Igl9LCAvKiA0MzM0ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzUiCX0sIC8qIDQzMzUgKi8KKwl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDQyODMgKi8KKwl7IDAsCVRELAlwcmludGFyZ3MsCQkiaW5vdGlmeV9pbml0Igl9LCAvKiA0Mjg0ICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDQyODUgKi8KKwl7IDIsCVRELAlzeXNfaW5vdGlmeV9ybV93YXRjaCwJImlub3RpZnlfcm1fd2F0Y2giIH0sIC8qIDQyODYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJtaWdyYXRlX3BhZ2VzIgl9LCAvKiA0Mjg3ICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCX0sIC8qIDQyODggKi8KKwl7IDMsCVREfFRGLAlzeXNfbWtkaXJhdCwJCSJta2RpcmF0Igl9LCAvKiA0Mjg5ICovCisJeyA0LAlURHxURiwJc3lzX21rbm9kYXQsCQkibWtub2RhdCIJfSwgLyogNDI5MCAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJfSwgLyogNDI5MSAqLworCXsgMywJVER8VEYsCXN5c19mdXRpbWVzYXQsCQkiZnV0aW1lc2F0Igl9LCAvKiA0MjkyICovCisJeyA0LAlURHxURiwJc3lzX25ld2ZzdGF0YXQsCQkibmV3ZnN0YXRhdCIJfSwgLyogNDI5MyAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJfSwgLyogNDI5NCAqLworCXsgNCwJVER8VEYsCXN5c19yZW5hbWVhdCwJCSJyZW5hbWVhdCIJfSwgLyogNDI5NSAqLworCXsgNSwJVER8VEYsCXN5c19saW5rYXQsCQkibGlua2F0Igl9LCAvKiA0Mjk2ICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCX0sIC8qIDQyOTcgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVhZGxpbmthdCwJCSJyZWFkbGlua2F0Igl9LCAvKiA0Mjk4ICovCisJeyAzLAlURHxURiwJc3lzX2ZjaG1vZGF0LAkJImZjaG1vZGF0Igl9LCAvKiA0Mjk5ICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCX0sIC8qIDQzMDAgKi8KKwl7IDYsCVRELAlzeXNfcHNlbGVjdDYsCQkicHNlbGVjdDYiCX0sIC8qIDQzMDEgKi8KKwl7IDUsCVRELAlzeXNfcHBvbGwsCQkicHBvbGwiCQl9LCAvKiA0MzAyICovCisJeyAxLAlUUCwJc3lzX3Vuc2hhcmUsCQkidW5zaGFyZSIJfSwgLyogNDMwMyAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJzcGxpY2UiCX0sIC8qIDQzMDQgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkic3luY19maWxlX3JhbmdlIiB9LCAvKiA0MzA1ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInRlZSIJCX0sIC8qIDQzMDYgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidm1zcGxpY2UiCX0sIC8qIDQzMDcgKi8KKwl7IDYsCTAsCXN5c19tb3ZlX3BhZ2VzLAkJIm1vdmVfcGFnZXMiCX0sIC8qIDQzMDggKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJzZXRfcm9idXN0X2xpc3QiIH0sIC8qIDQzMDkgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRfcm9idXN0X2xpc3QiIH0sIC8qIDQzMTAgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJrZXhlY19sb2FkIgl9LCAvKiA0MzExICovCisJeyAzLAkwLAlzeXNfZ2V0Y3B1LAkJImdldGNwdSIJfSwgLyogNDMxMiAqLworCXsgNSwJVEQsCXN5c19lcG9sbF9wd2FpdCwJImVwb2xsX3B3YWl0Igl9LCAvKiA0MzEzICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX3NldCIJfSwgLyogNDMxNCAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19nZXQiCX0sIC8qIDQzMTUgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJ1dGltZW5zYXQiCX0sIC8qIDQzMTYgKi8KKwl7IDMsCVREfFRTLAlzeXNfc2lnbmFsZmQsCQkic2lnbmFsZmQiCX0sIC8qIDQzMTcgKi8KKwl7IDQsCVRELAlzeXNfdGltZXJmZCwJCSJ0aW1lcmZkIgl9LCAvKiA0MzE4ICovCisJeyAxLAlURCwJc3lzX2V2ZW50ZmQsCQkiZXZlbnRmZCIJfSwgLyogNDMxOSAqLworCXsgNiwJVEQsCXN5c19mYWxsb2NhdGUsCQkiZmFsbG9jYXRlIgl9LCAvKiA0MzIwICovCisJeyAyLAlURCwJc3lzX3RpbWVyZmRfY3JlYXRlLAkidGltZXJmZF9jcmVhdGUiIH0sIC8qIDQzMjEgKi8KKwl7IDIsCVRELAlzeXNfdGltZXJmZF9nZXR0aW1lLAkidGltZXJmZF9nZXR0aW1lIiB9LCAvKiA0MzIyICovCisJeyA0LAlURCwJc3lzX3RpbWVyZmRfc2V0dGltZSwJInRpbWVyZmRfc2V0dGltZSIgfSwgLyogNDMyMyAqLworCXsgNCwJVER8VFMsCXN5c19zaWduYWxmZDQsCQkic2lnbmFsZmQ0Igl9LCAvKiA0MzI0ICovCisJeyAyLAlURCwJc3lzX2V2ZW50ZmQyLAkJImV2ZW50ZmQyIgl9LCAvKiA0MzI1ICovCisJeyAxLAlURCwJc3lzX2Vwb2xsX2NyZWF0ZTEsCSJlcG9sbF9jcmVhdGUxIgl9LCAvKiA0MzI2ICovCisJeyAzLAlURCwJc3lzX2R1cDMsCQkiZHVwMyIJCX0sIC8qIDQzMjcgKi8KKwl7IDIsCVRELAlzeXNfcGlwZTIsCQkicGlwZTIiCQl9LCAvKiA0MzI4ICovCisJeyAxLAlURCwJc3lzX2lub3RpZnlfaW5pdDEsCSJpbm90aWZ5X2luaXQxIgl9LCAvKiA0MzI5ICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJInByZWFkdiIJfSwgLyogNDMzMCAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJwd3JpdGV2Igl9LCAvKiA0MzMxICovCisJeyA0LAlUUHxUUywJcHJpbnRhcmdzLAkJInJ0X3Rnc2lncXVldWVpbmZvIiB9LCAvKiA0MzMyICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJInBlcmZfZXZlbnRfb3BlbiIgfSwgLyogNDMzMyAqLworCXsgNCwJVE4sCXN5c19hY2NlcHQ0LAkJImFjY2VwdDQiCX0sIC8qIDQzMzQgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1tc2csCQkicmVjdm1tc2ciCX0sIC8qIDQzMzUgKi8KKwl7IDIsCVRELAlwcmludGFyZ3MsCQkiZmFub3RpZnlfaW5pdCIJfSwgLyogNDMzNiAqLworCXsgNSwJVER8VEYsCXByaW50YXJncywJCSJmYW5vdGlmeV9tYXJrIgl9LCAvKiA0MzM3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicHJsaW1pdDY0Igl9LCAvKiA0MzM4ICovCisjZWxzZQorCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zeXNjYWxsIgl9LCAvKiA0MDAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2V4aXQiCQl9LCAvKiA0MDAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2ZvcmsiCQl9LCAvKiA0MDAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3JlYWQiCQl9LCAvKiA0MDAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3dyaXRlIgkJfSwgLyogNDAwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9vcGVuIgkJfSwgLyogNDAwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9jbG9zZSIJCX0sIC8qIDQwMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfd2FpdHBpZCIJfSwgLyogNDAwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9jcmVhdCIJCX0sIC8qIDQwMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbGluayIJCX0sIC8qIDQwMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfdW5saW5rIgl9LCAvKiA0MDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2V4ZWN2ZSIJfSwgLyogNDAxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9jaGRpciIJCX0sIC8qIDQwMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfdGltZSIJCX0sIC8qIDQwMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbWtub2QiCQl9LCAvKiA0MDE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2NobW9kIgkJfSwgLyogNDAxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9sY2hvd24iCX0sIC8qIDQwMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfYnJlYWsiCQl9LCAvKiA0MDE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX29sZHN0YXQiCX0sIC8qIDQwMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbHNlZWsiCQl9LCAvKiA0MDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldHBpZCIJfSwgLyogNDAyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9tb3VudCIJCX0sIC8qIDQwMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfb2xkdW1vdW50Igl9LCAvKiA0MDIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHVpZCIJfSwgLyogNDAyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXR1aWQiCX0sIC8qIDQwMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc3RpbWUiCQl9LCAvKiA0MDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3B0cmFjZSIJfSwgLyogNDAyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9hbGFybSIJCX0sIC8qIDQwMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfb2xkZnN0YXQiCX0sIC8qIDQwMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcGF1c2UiCQl9LCAvKiA0MDI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3V0aW1lIgkJfSwgLyogNDAzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zdHR5IgkJfSwgLyogNDAzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9ndHR5IgkJfSwgLyogNDAzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9hY2Nlc3MiCX0sIC8qIDQwMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbmljZSIJCX0sIC8qIDQwMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZnRpbWUiCQl9LCAvKiA0MDM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3N5bmMiCQl9LCAvKiA0MDM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2tpbGwiCQl9LCAvKiA0MDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3JlbmFtZSIJfSwgLyogNDAzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9ta2RpciIJCX0sIC8qIDQwMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcm1kaXIiCQl9LCAvKiA0MDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2R1cCIJCX0sIC8qIDQwNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcGlwZSIJCX0sIC8qIDQwNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfdGltZXMiCQl9LCAvKiA0MDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3Byb2YiCQl9LCAvKiA0MDQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2JyayIJCX0sIC8qIDQwNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2V0Z2lkIgl9LCAvKiA0MDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldGdpZCIJfSwgLyogNDA0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zaWduYWwiCX0sIC8qIDQwNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0ZXVpZCIJfSwgLyogNDA0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRlZ2lkIgl9LCAvKiA0MDUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2FjY3QiCQl9LCAvKiA0MDUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3Vtb3VudCIJfSwgLyogNDA1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9sb2NrIgkJfSwgLyogNDA1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9pb2N0bCIJCX0sIC8qIDQwNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZmNudGwiCQl9LCAvKiA0MDU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX21weCIJCX0sIC8qIDQwNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2V0cGdpZCIJfSwgLyogNDA1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl91bGltaXQiCX0sIC8qIDQwNTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfb2xkb2xkdW5hbWUiCX0sIC8qIDQwNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfdW1hc2siCQl9LCAvKiA0MDYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2Nocm9vdCIJfSwgLyogNDA2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl91c3RhdCIJCX0sIC8qIDQwNjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZHVwMiIJCX0sIC8qIDQwNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0cHBpZCIJfSwgLyogNDA2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRwZ3JwIgl9LCAvKiA0MDY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHNpZCIJfSwgLyogNDA2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zaWdhY3Rpb24iCX0sIC8qIDQwNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2lnZ2V0bWFzayIJfSwgLyogNDA2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zaWdzZXRtYXNrIgl9LCAvKiA0MDY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHJldWlkIgl9LCAvKiA0MDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHJlZ2lkIgl9LCAvKiA0MDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NpZ3N1c3BlbmQiCX0sIC8qIDQwNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2lncGVuZGluZyIJfSwgLyogNDA3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZXRob3N0bmFtZSIJfSwgLyogNDA3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZXRybGltaXQiCX0sIC8qIDQwNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0cmxpbWl0Igl9LCAvKiA0MDc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldHJ1c2FnZSIJfSwgLyogNDA3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXR0aW1lb2ZkYXkiCX0sIC8qIDQwNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2V0dGltZW9mZGF5Igl9LCAvKiA0MDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldGdyb3VwcyIJfSwgLyogNDA4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZXRncm91cHMiCX0sIC8qIDQwODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcmVzZXJ2ZWQ4MiIJfSwgLyogNDA4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zeW1saW5rIgl9LCAvKiA0MDgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX29sZGxzdGF0Igl9LCAvKiA0MDg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3JlYWRsaW5rIgl9LCAvKiA0MDg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3VzZWxpYiIJfSwgLyogNDA4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zd2Fwb24iCX0sIC8qIDQwODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcmVib290Igl9LCAvKiA0MDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3JlYWRkaXIiCX0sIC8qIDQwODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfb2xkX21tYXAiCX0sIC8qIDQwOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbXVubWFwIgl9LCAvKiA0MDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3RydW5jYXRlIgl9LCAvKiA0MDkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2Z0cnVuY2F0ZSIJfSwgLyogNDA5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9mY2htb2QiCX0sIC8qIDQwOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZmNob3duIgl9LCAvKiA0MDk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldHByaW9yaXR5Igl9LCAvKiA0MDk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHByaW9yaXR5Igl9LCAvKiA0MDk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3Byb2ZpbCIJfSwgLyogNDA5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zdGF0ZnMiCX0sIC8qIDQwOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZnN0YXRmcyIJfSwgLyogNDEwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9pb3Blcm0iCX0sIC8qIDQxMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc29ja2V0Y2FsbCIJfSwgLyogNDEwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zeXNsb2ciCX0sIC8qIDQxMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2V0aXRpbWVyIgl9LCAvKiA0MTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldGl0aW1lciIJfSwgLyogNDEwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zdGF0IgkJfSwgLyogNDEwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9sc3RhdCIJCX0sIC8qIDQxMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZnN0YXQiCQl9LCAvKiA0MTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX29sZHVuYW1lIgl9LCAvKiA0MTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2lvcGwiCQl9LCAvKiA0MTEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3ZoYW5ndXAiCX0sIC8qIDQxMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfaWRsZSIJCX0sIC8qIDQxMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfdm04NiIJCX0sIC8qIDQxMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfd2FpdDQiCQl9LCAvKiA0MTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3N3YXBvZmYiCX0sIC8qIDQxMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc3lzaW5mbyIJfSwgLyogNDExNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9pcGMiCQl9LCAvKiA0MTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2ZzeW5jIgkJfSwgLyogNDExOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zaWdyZXR1cm4iCX0sIC8qIDQxMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfY2xvbmUiCQl9LCAvKiA0MTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldGRvbWFpbm5hbWUiCX0sIC8qIDQxMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfdW5hbWUiCQl9LCAvKiA0MTIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX21vZGlmeV9sZHQiCX0sIC8qIDQxMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfYWRqdGltZXgiCX0sIC8qIDQxMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbXByb3RlY3QiCX0sIC8qIDQxMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2lncHJvY21hc2siCX0sIC8qIDQxMjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfY3JlYXRlX21vZHVsZSIJfSwgLyogNDEyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9pbml0X21vZHVsZSIJfSwgLyogNDEyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9kZWxldGVfbW9kdWxlIgl9LCAvKiA0MTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldF9rZXJuZWxfc3ltcyJ9LCAvKiA0MTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3F1b3RhY3RsIgl9LCAvKiA0MTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldHBnaWQiCX0sIC8qIDQxMzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZmNoZGlyIgl9LCAvKiA0MTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2JkZmx1c2giCX0sIC8qIDQxMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc3lzZnMiCQl9LCAvKiA0MTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3BlcnNvbmFsaXR5Igl9LCAvKiA0MTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2Fmc19zeXNjYWxsIgl9LCAvKiA0MTM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldGZzdWlkIgl9LCAvKiA0MTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldGZzZ2lkIgl9LCAvKiA0MTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX19sbHNlZWsiCX0sIC8qIDQxNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0ZGVudHMiCX0sIC8qIDQxNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfX25ld3NlbGVjdCIJfSwgLyogNDE0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9mbG9jayIJCX0sIC8qIDQxNDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbXN5bmMiCQl9LCAvKiA0MTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3JlYWR2IgkJfSwgLyogNDE0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl93cml0ZXYiCX0sIC8qIDQxNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfY2FjaGVmbHVzaCIJfSwgLyogNDE0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9jYWNoZWN0bCIJfSwgLyogNDE0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zeXNtaXBzIgl9LCAvKiA0MTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHVwIgkJfSwgLyogNDE1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRzaWQiCX0sIC8qIDQxNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZmRhdGFzeW5jIgl9LCAvKiA0MTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX19zeXNjdGwiCX0sIC8qIDQxNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbWxvY2siCQl9LCAvKiA0MTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX211bmxvY2siCX0sIC8qIDQxNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbWxvY2thbGwiCX0sIC8qIDQxNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbXVubG9ja2FsbCIJfSwgLyogNDE1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zY2hlZF9zZXRwYXJhbSJ9LCAvKiA0MTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NjaGVkX2dldHBhcmFtIn0sIC8qIDQxNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDQxNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDQxNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2NoZWRfeWllbGQiCX0sIC8qIDQxNjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiA0MTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NjaGVkX2dldF9wcmlvcml0eV9taW4ifSwvKiA0MTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiA0MTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX25hbm9zbGVlcCIJfSwgLyogNDE2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9tcmVtYXAiCX0sIC8qIDQxNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfYWNjZXB0Igl9LCAvKiA0MTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2JpbmQiCQl9LCAvKiA0MTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2Nvbm5lY3QiCX0sIC8qIDQxNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0cGVlcm5hbWUiCX0sIC8qIDQxNzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0c29ja25hbWUiCX0sIC8qIDQxNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZ2V0c29ja29wdCIJfSwgLyogNDE3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9saXN0ZW4iCX0sIC8qIDQxNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcmVjdiIJCX0sIC8qIDQxNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcmVjdmZyb20iCX0sIC8qIDQxNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcmVjdm1zZyIJfSwgLyogNDE3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZW5kIgkJfSwgLyogNDE3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZW5kbXNnIgl9LCAvKiA0MTc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NlbmR0byIJfSwgLyogNDE4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZXRzb2Nrb3B0Igl9LCAvKiA0MTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NodXRkb3duIgl9LCAvKiA0MTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NvY2tldCIJfSwgLyogNDE4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zb2NrZXRwYWlyIgl9LCAvKiA0MTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldHJlc3VpZCIJfSwgLyogNDE4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRyZXN1aWQiCX0sIC8qIDQxODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcXVlcnlfbW9kdWxlIgl9LCAvKiA0MTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3BvbGwiCQl9LCAvKiA0MTg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX25mc3NlcnZjdGwiCX0sIC8qIDQxODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2V0cmVzZ2lkIgl9LCAvKiA0MTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2dldHJlc2dpZCIJfSwgLyogNDE5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9wcmN0bCIJCX0sIC8qIDQxOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcnRfc2lncmV0dXJuIgl9LCAvKiA0MTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3J0X3NpZ2FjdGlvbiIJfSwgLyogNDE5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9ydF9zaWdwcm9jbWFzayJ9LCAvKiA0MTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3J0X3NpZ3BlbmRpbmciCX0sIC8qIDQxOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcnRfc2lndGltZWR3YWl0In0sLyogNDE5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9ydF9zaWdxdWV1ZWluZm8ifSwvKiA0MTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3J0X3NpZ3VzcGVuZCIJfSwgLyogNDE5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9wcmVhZCIJCX0sIC8qIDQyMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfcHdyaXRlIgl9LCAvKiA0MjAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2Nob3duIgkJfSwgLyogNDIwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRjd2QiCX0sIC8qIDQyMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfY2FwZ2V0Igl9LCAvKiA0MjA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2NhcHNldCIJfSwgLyogNDIwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zaWdhbHRzdGF0Y2siCX0sIC8qIDQyMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc2VuZGZpbGUiCX0sIC8qIDQyMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIwOCIJfSwgLyogNDIwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjA5Igl9LCAvKiA0MjA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX21tYXAiCQl9LCAvKiA0MjEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX3RydW5jYXRlNjQiCX0sIC8qIDQyMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZnRydW5jYXRlNjQiCX0sIC8qIDQyMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfc3RhdDY0Igl9LCAvKiA0MjEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2xzdGF0NjQiCX0sIC8qIDQyMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfZnN0YXQ2NCIJfSwgLyogNDIxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9waXZvdF9yb290Igl9LCAvKiA0MjE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX21pbmNvcmUiCX0sIC8qIDQyMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfbWFkdmlzZSIJfSwgLyogNDIxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRkZW50czY0Igl9LCAvKiA0MjE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibzMyX2ZjbnRsNjQiCX0sIC8qIDQyMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIyMSIJfSwgLyogNDIyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXR0aWQiCX0sIC8qIDQyMjIgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkibzMyX3JlYWRhaGVhZCIJfSwgLyogNDIyMyAqLworCXsgNSwJVEYsCXByaW50YXJncywJCSJvMzJfc2V0eGF0dHIiCX0sIC8qIDQyMjQgKi8KKwl7IDUsCVRGLAlwcmludGFyZ3MsCQkibzMyX2xzZXR4YXR0ciIJfSwgLyogNDIyNSAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJvMzJfZnNldHhhdHRyIgl9LCAvKiA0MjI2ICovCisJeyA0LAlURiwJcHJpbnRhcmdzLAkJIm8zMl9nZXR4YXR0ciIJfSwgLyogNDIyNyAqLworCXsgNCwJVEYsCXByaW50YXJncywJCSJvMzJfbGdldHhhdHRyIgl9LCAvKiA0MjI4ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJIm8zMl9mZ2V0eGF0dHIiCX0sIC8qIDQyMjkgKi8KKwl7IDMsCVRGLAlwcmludGFyZ3MsCQkibzMyX2xpc3R4YXR0ciIJfSwgLyogNDIzMCAqLworCXsgMywJVEYsCXByaW50YXJncywJCSJvMzJfbGxpc3R4YXR0ciIJfSwgLyogNDIzMSAqLworCXsgMywJVEQsCXByaW50YXJncywJCSJvMzJfZmxpc3R4YXR0ciIJfSwgLyogNDIzMiAqLworCXsgMiwJVEYsCXByaW50YXJncywJCSJvMzJfcmVtb3ZleGF0dHIiCX0sIC8qIDQyMzMgKi8KKwl7IDIsCVRGLAlwcmludGFyZ3MsCQkibzMyX2xyZW1vdmV4YXR0ciIJfSwgLyogNDIzNCAqLworCXsgMiwJVEQsCXByaW50YXJncywJCSJvMzJfZnJlbW92ZXhhdHRyIgl9LCAvKiA0MjM1ICovCisJeyAyLAlUUywJcHJpbnRhcmdzLAkJIm8zMl90a2lsbCIJCX0sIC8qIDQyMzYgKi8KKwl7IDUsCVREfFROLAlwcmludGFyZ3MsCQkibzMyX3NlbmRmaWxlNjQiCX0sIC8qIDQyMzcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJvMzJfZnV0ZXgiCQl9LCAvKiA0MjM4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibzMyX3NjaGVkX3NldGFmZmluaXR5In0sIC8qIDQyMzkgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJvMzJfc2NoZWRfZ2V0YWZmaW5pdHkifSwgLyogNDI0MCAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm8zMl9pb19zZXR1cCIJfSwgLyogNDI0MSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm8zMl9pb19kZXN0cm95Igl9LCAvKiA0MjQyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibzMyX2lvX2dldGV2ZW50cyIJfSwgLyogNDI0MyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm8zMl9pb19zdWJtaXQiCX0sIC8qIDQyNDQgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJvMzJfaW9fY2FuY2VsIgl9LCAvKiA0MjQ1ICovCisJeyAxLAlUUCwJcHJpbnRhcmdzLAkJIm8zMl9leGl0X2dyb3VwIgl9LCAvKiA0MjQ2ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibzMyX2xvb2t1cF9kY29va2llIn0sIC8qIDQyNDcgKi8KKwl7IDEsCVRELAlwcmludGFyZ3MsCQkibzMyX2Vwb2xsX2NyZWF0ZSIJfSwgLyogNDI0OCAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJvMzJfZXBvbGxfY3RsIgl9LCAvKiA0MjQ5ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJIm8zMl9lcG9sbF93YWl0Igl9LCAvKiA0MjUwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibzMyX3JlbWFwX2ZpbGVfcGFnZXMifSwgLyogNDI1MSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZXRfdGlkX2FkZHJlc3MifSwgLyogNDI1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9yZXN0YXJ0X3N5c2NhbGwifSwgLyogNDI1MyAqLworCXsgNywJMCwJcHJpbnRhcmdzLAkJIm8zMl9mYWR2aXNlNjRfNjQiCX0sIC8qIDQyNTQgKi8KKwl7IDMsCVRGLAlwcmludGFyZ3MsCQkibzMyX3N0YXRmczY0Igl9LCAvKiA0MjU1ICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJIm8zMl9mc3RhdGZzNjQiCX0sIC8qIDQyNTYgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJvMzJfdGltZXJfY3JlYXRlIgl9LCAvKiA0MjU3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibzMyX3RpbWVyX3NldHRpbWUiCX0sIC8qIDQyNTggKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvMzJfdGltZXJfZ2V0dGltZSIJfSwgLyogNDI1OSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm8zMl90aW1lcl9nZXRvdmVycnVuIn0sIC8qIDQyNjAgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJvMzJfdGltZXJfZGVsZXRlIgl9LCAvKiA0MjYxICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibzMyX2Nsb2NrX3NldHRpbWUiCX0sIC8qIDQyNjIgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvMzJfY2xvY2tfZ2V0dGltZSIJfSwgLyogNDI2MyAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm8zMl9jbG9ja19nZXRyZXMiCX0sIC8qIDQyNjQgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJvMzJfY2xvY2tfbmFub3NsZWVwIn0sIC8qIDQyNjUgKi8KKwl7IDMsCVRTLAlwcmludGFyZ3MsCQkibzMyX3Rna2lsbCIJfSwgLyogNDI2NiAqLworCXsgMiwJVEYsCXByaW50YXJncywJCSJvMzJfdXRpbWVzIgl9LCAvKiA0MjY3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibzMyX21iaW5kIgkJfSwgLyogNDI2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9TWVNfNDI2OSIJfSwgLyogNDI2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9TWVNfNDI3MCIJfSwgLyogNDI3MCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9tcV9vcGVuIgl9LCAvKiA0MjcxICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkibzMyX21xX3VubGluayIJfSwgLyogNDI3MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm8zMl9tcV90aW1lZHNlbmQiCX0sIC8qIDQyNzMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvMzJfbXFfdGltZWRyZWNlaXZlIn0sIC8qIDQyNzQgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvMzJfbXFfbm90aWZ5Igl9LCAvKiA0Mjc1ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibzMyX21xX2dldHNldGF0dHIiCX0sIC8qIDQyNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJvMzJfU1lTXzQyNzciCX0sIC8qIDQyNzcgKi8KKwl7IDUsCVRQLAlwcmludGFyZ3MsCQkibzMyX3dhaXRpZCIJfSwgLyogNDI3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm8zMl9TWVNfNDI3OSIJfSwgLyogNDI3OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm8zMl9hZGRfa2V5Igl9LCAvKiA0MjgwICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibzMyX3JlcXVlc3Rfa2V5Igl9LCAvKiA0MjgxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibzMyX2tleWN0bCIJfSwgLyogNDI4MiAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm8zMl9zZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDQyODMgKi8KKwl7IDAsCVRELAlwcmludGFyZ3MsCQkibzMyX2lub3RpZnlfaW5pdCIJfSwgLyogNDI4NCAqLworCXsgMywJVEQsCXByaW50YXJncywJCSJvMzJfaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDQyODUgKi8KKwl7IDIsCVRELAlwcmludGFyZ3MsCQkibzMyX2lub3RpZnlfcm1fd2F0Y2giIH0sIC8qIDQyODYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJvMzJfbWlncmF0ZV9wYWdlcyIJfSwgLyogNDI4NyAqLworCXsgNCwJVER8VEYsCXByaW50YXJncywJCSJvMzJfb3BlbmF0Igl9LCAvKiA0Mjg4ICovCisJeyAzLAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl9ta2RpcmF0Igl9LCAvKiA0Mjg5ICovCisJeyA0LAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl9ta25vZGF0Igl9LCAvKiA0MjkwICovCisJeyA1LAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl9mY2hvd25hdCIJfSwgLyogNDI5MSAqLworCXsgMywJVER8VEYsCXByaW50YXJncywJCSJvMzJfZnV0aW1lc2F0Igl9LCAvKiA0MjkyICovCisJeyA0LAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl9uZXdmc3RhdGF0Igl9LCAvKiA0MjkzICovCisJeyAzLAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl91bmxpbmthdCIJfSwgLyogNDI5NCAqLworCXsgNCwJVER8VEYsCXByaW50YXJncywJCSJvMzJfcmVuYW1lYXQiCX0sIC8qIDQyOTUgKi8KKwl7IDUsCVREfFRGLAlwcmludGFyZ3MsCQkibzMyX2xpbmthdCIJfSwgLyogNDI5NiAqLworCXsgMywJVER8VEYsCXByaW50YXJncywJCSJvMzJfc3ltbGlua2F0Igl9LCAvKiA0Mjk3ICovCisJeyA0LAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl9yZWFkbGlua2F0Igl9LCAvKiA0Mjk4ICovCisJeyAzLAlURHxURiwJcHJpbnRhcmdzLAkJIm8zMl9mY2htb2RhdCIJfSwgLyogNDI5OSAqLworCXsgMywJVER8VEYsCXByaW50YXJncywJCSJvMzJfZmFjY2Vzc2F0Igl9LCAvKiA0MzAwICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJIm8zMl9wc2VsZWN0NiIJfSwgLyogNDMwMSAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJvMzJfcHBvbGwiCQl9LCAvKiA0MzAyICovCisJeyAxLAlUUCwJcHJpbnRhcmdzLAkJIm8zMl91bnNoYXJlIgl9LCAvKiA0MzAzICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJIm8zMl9zcGxpY2UiCX0sIC8qIDQzMDQgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkibzMyX3N5bmNfZmlsZV9yYW5nZSIgfSwgLyogNDMwNSAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJvMzJfdGVlIgl9LCAvKiA0MzA2ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJIm8zMl92bXNwbGljZSIJfSwgLyogNDMwNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIm8zMl9tb3ZlX3BhZ2VzIgl9LCAvKiA0MzA4ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibzMyX3NldF9yb2J1c3RfbGlzdCIgfSwgLyogNDMwOSAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRfcm9idXN0X2xpc3QiIH0sIC8qIDQzMTAgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJvMzJfa2V4ZWNfbG9hZCIgfSwgLyogNDMxMSAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm8zMl9nZXRjcHUiCX0sIC8qIDQzMTIgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkibzMyX2Vwb2xsX3B3YWl0Igl9LCAvKiA0MzEzICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibzMyX2lvcHJpb19zZXQiIH0sIC8qIDQzMTQgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvMzJfaW9wcmlvX2dldCIgfSwgLyogNDMxNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm8zMl91dGltZW5zYXQiCX0sIC8qIDQzMTYgKi8KKwl7IDMsCVREfFRTLAlwcmludGFyZ3MsCQkibzMyX3NpZ25hbGZkIgl9LCAvKiA0MzE3ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJIm8zMl90aW1lcmZkIgl9LCAvKiA0MzE4ICovCisJeyAxLAlURCwJcHJpbnRhcmdzLAkJIm8zMl9ldmVudGZkIgl9LCAvKiA0MzE5ICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJIm8zMl9mYWxsb2NhdGUiCX0sIC8qIDQzMjAgKi8KKwl7IDIsCVRELAlwcmludGFyZ3MsCQkibzMyX3RpbWVyZmRfY3JlYXRlIiB9LCAvKiA0MzIxICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJIm8zMl90aW1lcmZkX2dldHRpbWUiIH0sIC8qIDQzMjIgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkibzMyX3RpbWVyZmRfc2V0dGltZSIgfSwgLyogNDMyMyAqLworCXsgNCwJVER8VFMsCXByaW50YXJncywJCSJvMzJfc2lnbmFsZmQ0Igl9LCAvKiA0MzI0ICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJIm8zMl9ldmVudGZkMiIJfSwgLyogNDMyNSAqLworCXsgMSwJVEQsCXByaW50YXJncywJCSJvMzJfZXBvbGxfY3JlYXRlMSIgfSwgLyogNDMyNiAqLworCXsgMywJVEQsCXByaW50YXJncywJCSJvMzJfZHVwMyIJfSwgLyogNDMyNyAqLworCXsgMiwJVEQsCXByaW50YXJncywJCSJvMzJfcGlwZTIiCX0sIC8qIDQzMjggKi8KKwl7IDEsCVRELAlwcmludGFyZ3MsCQkibzMyX2lub3RpZnlfaW5pdDEiIH0sIC8qIDQzMjkgKi8KKwl7IDYsCVRELAlwcmludGFyZ3MsCQkibzMyX3ByZWFkdiIJfSwgLyogNDMzMCAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJvMzJfcHdyaXRldiIJfSwgLyogNDMzMSAqLworCXsgNCwJVFB8VFMsCXByaW50YXJncywJCSJvMzJfcnRfdGdzaWdxdWV1ZWluZm8iIH0sIC8qIDQzMzIgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkibzMyX3BlcmZfZXZlbnRfb3BlbiIgfSwgLyogNDMzMyAqLworCXsgNCwJVE4sCXByaW50YXJncywJCSJvMzJfYWNjZXB0NCIJfSwgLyogNDMzNCAqLworCXsgNSwJVE4sCXByaW50YXJncywJCSJvMzJfcmVjdm1tc2ciCX0sIC8qIDQzMzUgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvMzJfZmFub3RpZnlfaW5pdCIJfSwgLyogNDMzNiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm8zMl9mYW5vdGlmeV9tYXJrIgl9LCAvKiA0MzM3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibzMyX3BybGltaXQ2NCIJfSwgLyogNDMzOCAqLworI2VuZGlmCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzYiCX0sIC8qIDQzMzYgKi8KIAl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzNyIJfSwgLyogNDMzNyAqLwogCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzM4Igl9LCAvKiA0MzM4ICovCkBAIC00OTk4LDMgKzUzNDYsMjYyMCBAQAogCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTk3Igl9LCAvKiA0OTk3ICovCiAJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTgiCX0sIC8qIDQ5OTggKi8KIAl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5OSIJfSwgLyogNDk5OSAqLyAvKiBlbmQgb2YgTGludXggbzMyICovCisjaWYgZGVmaW5lZCAoTElOVVhfTUlQU042NCkKKwkvKiBGb3IgYW4gTjY0IHN0cmFjZSBkZWNvZGUgdGhlIE42NCA2NC1iaXQgc3lzY2FsbHMuICAqLworCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiA1MDAwICovIC8qIHN0YXJ0IG9mIExpbnV4IE42NCAqLworCXsgMywJVEYsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDUwMDEgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNTAwMiAqLworCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNTAwMyAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiA1MDA0ICovCisJeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiA1MDA1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogNTAwNiAqLworCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDUwMDcgKi8KKwl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDUwMDggKi8KKwl7IDYsCVRELAlzeXNfbW1hcCwJCSJtbWFwIgkJfSwgLyogNTAwOSAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiA1MDEwICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogNTAxMSAqLworCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA1MDEyICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIJfSwgLyogNTAxMyAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDUwMTQgKi8KKwl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDUwMTUgKi8KKwl7IDYsCVRGLAlzeXNfcHJlYWQ2NCwJCSJwcmVhZCIJCX0sIC8qIDUwMTYgKi8KKwl7IDYsCVRGLAlzeXNfcHdyaXRlNjQsCQkicHdyaXRlIgl9LCAvKiA1MDE3ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiA1MDE4ICovCisJeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogNTAxOSAqLworCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiA1MDIwICovCisJeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNTAyMSAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJfbmV3c2VsZWN0Igl9LCAvKiA1MDIyICovCisJeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCIJfSwgLyogNTAyMyAqLworCXsgNSwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDUwMjQgKi8KKwl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDUwMjUgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiA1MDI2ICovCisJeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiA1MDI3ICovCisJeyAzLAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDUwMjggKi8KKwl7IDMsCVRJLAlzeXNfc2htYXQsCQkic2htZ2F0Igl9LCAvKiA1MDI5ICovCisJeyAzLAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDUwMzAgKi8KKwl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNTAzMSAqLworCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDUwMzIgKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiA1MDMzICovCisJeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogNTAzNCAqLworCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDUwMzUgKi8KKwl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiA1MDM2ICovCisJeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiA1MDM3ICovCisJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogNTAzOCAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogNTAzOSAqLworCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJfSwgLyogNTA0MCAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDUwNDEgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogNTA0MiAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiA1MDQzICovCisJeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiA1MDQ0ICovCisJeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogNTA0NSAqLworCXsgMywJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDUwNDYgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDUwNDcgKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogNTA0OCAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiA1MDQ5ICovCisJeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDUwNTAgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogNTA1MSAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDUwNTIgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiA1MDUzICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogNTA1NCAqLworCXsgMiwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDUwNTUgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogNTA1NiAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiA1MDU3ICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCX0sIC8qIDUwNTggKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiA1MDU5ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDUwNjAgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDUwNjEgKi8KKwl7IDMsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogNTA2MiAqLworCXsgMywJVEksCXByaW50YXJncywJCSJzZW1vcCIJCX0sIC8qIDUwNjMgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogNTA2NCAqLworCXsgMSwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDUwNjUgKi8KKwl7IDIsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogNTA2NiAqLworCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiA1MDY3ICovCisJeyA1LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDUwNjggKi8KKwl7IDMsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogNTA2OSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTA3MCAqLworCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJfSwgLyogNTA3MSAqLworCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogNTA3MiAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDUwNzMgKi8KKwl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDUwNzQgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA1MDc1ICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDUwNzYgKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogNTA3NyAqLworCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDUwNzggKi8KKwl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogNTA3OSAqLworCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiA1MDgwICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogNTA4MSAqLworCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDUwODIgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA1MDgzICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDUwODQgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogNTA4NSAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDUwODYgKi8KKwl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDUwODcgKi8KKwl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiA1MDg4ICovCisJeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogNTA4OSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDUwOTAgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA1MDkxICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogNTA5MiAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNTA5MyAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNTA5NCAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDUwOTUgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA1MDk2ICovCisJeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiA1MDk3ICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA1MDk4ICovCisJeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogNTA5OSAqLworCXsgMCwJTkYsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiA1MTAwICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogNTEwMSAqLworCXsgMCwJTkYsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA1MTAyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogNTEwMyAqLworCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDUxMDQgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA1MTA1ICovCisJeyAwLAlORiwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNTEwNiAqLworCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTEwNyAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNTEwOCAqLworCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNTEwOSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDUxMTAgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNTExMSAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA1MTEyICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogNTExMyAqLworCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDUxMTQgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiA1MTE1ICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogNTExNiAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDUxMTcgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiA1MTE4ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiA1MTE5ICovCisJeyAxLAlORiwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiA1MTIwICovCisJeyAxLAlORiwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiA1MTIxICovCisJeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogNTEyMiAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDUxMjMgKi8KKwl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiA1MTI0ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiA1MTI1ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LC8qIDUxMjYgKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLAkicnRfc2lncXVldWVpbmZvIn0sLyogNTEyNyAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lndXNwZW5kIgl9LCAvKiA1MTI4ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhdGNrIgl9LCAvKiA1MTI5ICovCisJeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogNTEzMCAqLworCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDUxMzEgKi8KKwl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiA1MTMyICovCisJeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiA1MTMzICovCisJeyAzLAkwLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogNTEzNCAqLworCXsgMywJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogNTEzNSAqLworCXsgNSwJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogNTEzNiAqLworCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDUxMzcgKi8KKwl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA1MTM4ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiA1MTM5ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiA1MTQwICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDUxNDEgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogNTE0MiAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogNTE0MyAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogNTE0NCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDUxNDUgKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sIC8qIDUxNDYgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDUxNDcgKi8KKwl7IDEsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogNTE0OCAqLworCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgLyogNTE0OSAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogNTE1MCAqLworCXsgMiwJMCwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiA1MTUxICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDUxNTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJwcmN0bCIJCX0sIC8qIDUxNTMgKi8KKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogNTE1NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDUxNTUgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNTE1NiAqLworCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDUxNTcgKi8KKwl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTE1OCAqLworCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJfSwgLyogNTE1OSAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDUxNjAgKi8KKwl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDUxNjEgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogNTE2MiAqLworCXsgMSwJVEYsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDUxNjMgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA1MTY0ICovCisJeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNTE2NSAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiA1MTY2ICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDUxNjcgKi8KKwl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiA1MTY4ICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDUxNjkgKi8KKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogNTE3MCAqLworCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogNTE3MSAqLworCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiA1MTcyICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogNTE3MyAqLworCXsgNSwJVE4sCXByaW50YXJncywJCSJnZXRwbXNnIgl9LCAvKiA1MTc0ICovCisJeyA1LAlUTiwJcHJpbnRhcmdzLAkJInB1dHBtc2ciCX0sIC8qIDUxNzUgKi8KKwl7IDAsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiA1MTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicmVzZXJ2ZWQxNzciCX0sIC8qIDUxNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDUxNzggKi8KKwl7IDMsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiA1MTc5ICovCisJeyA1LAkwLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDUxODAgKi8KKwl7IDUsCTAsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDUxODEgKi8KKwl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiA1MTgyICovCisJeyA0LAkwLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDUxODMgKi8KKwl7IDQsCTAsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDUxODQgKi8KKwl7IDQsCVRELAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogNTE4NSAqLworCXsgMywJMCwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDUxODYgKi8KKwl7IDMsCTAsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogNTE4NyAqLworCXsgMywJVEQsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDUxODggKi8KKwl7IDIsCTAsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiA1MTg5ICovCisJeyAyLAkwLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDUxOTAgKi8KKwl7IDIsCVRELAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiA1MTkxICovCisJeyAyLAkwLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDUxOTIgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiA1MTkzICovCisJeyA2LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiA1MTk0ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSJ9LCAvKiA1MTk1ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSJ9LCAvKiA1MTk2ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiY2FjaGVmbHVzaCIJfSwgLyogNTE5NyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImNhY2hlY3RsIgl9LCAvKiA1MTk4ICovCisJeyA0LAkwLAlzeXNfc3lzbWlwcywJCSJzeXNtaXBzIgl9LCAvKiA1MTk5ICovCisJeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDUyMDAgKi8KKwl7IDEsCTAsCXN5c19pb19kZXN0cm95LAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDUyMDEgKi8KKwl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCSJpb19nZXRldmVudHMiCX0sIC8qIDUyMDIgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiA1MjAzICovCisJeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogNTIwNCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCX0sIC8qIDUyMDUgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSIgfSwgLyogNTIwNiAqLworCXsgMSwJVEQsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDUyMDcgKi8KKwl7IDQsCVRELAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogNTIwOCAqLworCXsgNCwJVEQsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDUyMDkgKi8KKwl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLAkicmVtYXBfZmlsZV9wYWdlcyIgfSwgLyogNTIxMCAqLworCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCX0sIC8qIDUyMTEgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MiIH0sIC8qIDUyMTIgKi8KKwl7IDAsCTAsCXN5c19yZXN0YXJ0X3N5c2NhbGwsCSJyZXN0YXJ0X3N5c2NhbGwiIH0sIC8qIDUyMTMgKi8KKwl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgl9LCAvKiA1MjE0ICovCisJeyA0LAlURCwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJfSwgLyogNTIxNSAqLworCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogNTIxNiAqLworCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiA1MjE3ICovCisJeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDUyMTggKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiA1MjE5ICovCisJeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiA1MjIwICovCisJeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDUyMjEgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogNTIyMiAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogNTIyMyAqLworCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiA1MjI0ICovCisJeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDUyMjUgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogNTIyNiAqLworCXsgNiwJMCwJc3lzX21iaW5kLAkJIm1iaW5kIgkJfSwgLyogNTIyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjI4Igl9LCAvKiA1MjI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMjgiCX0sIC8qIDUyMjkgKi8KKwl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDUyMzAgKi8KKwl7IDEsCTAsCXN5c19tcV91bmxpbmssCQkibXFfdW5saW5rIgl9LCAvKiA1MjMxICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiA1MjMyICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIiB9LCAvKiA1MjMzICovCisJeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJfSwgLyogNTIzNCAqLworCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgl9LCAvKiA1MjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMzYiCX0sIC8qIDUyMzYgKi8KKwl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIJfSwgLyogNTIzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjM4Igl9LCAvKiA1MjM4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWRkX2tleSIJfSwgLyogNTIzOSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJInJlcXVlc3Rfa2V5Igl9LCAvKiA1MjMwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V5Y3RsIgl9LCAvKiA1MjQxICovCisJeyAxLAkwLAlzeXNfc2V0X3RocmVhZF9hcmVhLAkic2V0X3RocmVhZF9hcmVhIiB9LCAvKiA1MjQyICovCisJeyAwLAlURCwJcHJpbnRhcmdzLAkJImlub3RpZnlfaW5pdCIJfSwgLyogNTI0MyAqLworCXsgMywJVEQsCXN5c19pbm90aWZ5X2FkZF93YXRjaCwJImlub3RpZnlfYWRkX3dhdGNoIiB9LCAvKiA1MjQ0ICovCisJeyAyLAlURCwJc3lzX2lub3RpZnlfcm1fd2F0Y2gsCSJpbm90aWZ5X3JtX3dhdGNoIiB9LCAvKiA1MjQ1ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibWlncmF0ZV9wYWdlcyIJfSwgLyogNTI0NiAqLworCXsgNCwJVER8VEYsCXN5c19vcGVuYXQsCQkib3BlbmF0Igl9LCAvKiA1MjQ3ICovCisJeyAzLAlURHxURiwJc3lzX21rZGlyYXQsCQkibWtkaXJhdCIJfSwgLyogNTI0OCAqLworCXsgNCwJVER8VEYsCXN5c19ta25vZGF0LAkJIm1rbm9kYXQiCX0sIC8qIDUyNDkgKi8KKwl7IDUsCVREfFRGLAlzeXNfZmNob3duYXQsCQkiZmNob3duYXQiCX0sIC8qIDUyNTAgKi8KKwl7IDMsCVREfFRGLAlzeXNfZnV0aW1lc2F0LAkJImZ1dGltZXNhdCIJfSwgLyogNTI1MSAqLworCXsgNCwJVER8VEYsCXN5c19uZXdmc3RhdGF0LAkJIm5ld2ZzdGF0YXQiCX0sIC8qIDUyNTIgKi8KKwl7IDMsCVREfFRGLAlzeXNfdW5saW5rYXQsCQkidW5saW5rYXQiCX0sIC8qIDUyNTMgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVuYW1lYXQsCQkicmVuYW1lYXQiCX0sIC8qIDUyNTQgKi8KKwl7IDUsCVREfFRGLAlzeXNfbGlua2F0LAkJImxpbmthdCIJfSwgLyogNTI1NSAqLworCXsgMywJVER8VEYsCXN5c19zeW1saW5rYXQsCQkic3ltbGlua2F0Igl9LCAvKiA1MjU2ICovCisJeyA0LAlURHxURiwJc3lzX3JlYWRsaW5rYXQsCQkicmVhZGxpbmthdCIJfSwgLyogNTI1NyAqLworCXsgMywJVER8VEYsCXN5c19mY2htb2RhdCwJCSJmY2htb2RhdCIJfSwgLyogNTI1OCAqLworCXsgMywJVER8VEYsCXN5c19mYWNjZXNzYXQsCQkiZmFjY2Vzc2F0Igl9LCAvKiA1MjU5ICovCisJeyA2LAlURCwJc3lzX3BzZWxlY3Q2LAkJInBzZWxlY3Q2Igl9LCAvKiA1MjYwICovCisJeyA1LAlURCwJc3lzX3Bwb2xsLAkJInBwb2xsIgkJfSwgLyogNTI2MSAqLworCXsgMSwJVFAsCXN5c191bnNoYXJlLAkJInVuc2hhcmUiCX0sIC8qIDUyNjIgKi8KKwl7IDYsCVRELAlwcmludGFyZ3MsCQkic3BsaWNlIgl9LCAvKiA1MjYzICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInN5bmNfZmlsZV9yYW5nZSIgfSwgLyogNTI2NCAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ0ZWUiCQl9LCAvKiA1MjY1ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInZtc3BsaWNlIgl9LCAvKiA1MjY2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkibW92ZV9wYWdlcyIJfSwgLyogNTI2NyAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldF9yb2J1c3RfbGlzdCIgfSwgLyogNTI2OCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldF9yb2J1c3RfbGlzdCIgfSwgLyogNTI2OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleGVjX2xvYWQiCX0sIC8qIDUyNzAgKi8KKwl7IDMsCTAsCXN5c19nZXRjcHUsCQkiZ2V0Y3B1Igl9LCAvKiA1MjcxICovCisJeyA1LAlURCwJc3lzX2Vwb2xsX3B3YWl0LAkiZXBvbGxfcHdhaXQiCX0sIC8qIDUyNzIgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJpb3ByaW9fc2V0Igl9LCAvKiA1MjczICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX2dldCIJfSwgLyogNTI3NCAqLworCXsgNCwJVER8VEYsCXN5c191dGltZW5zYXQsCQkidXRpbWVuc2F0Igl9LCAvKiA1Mjc1ICovCisJeyAzLAlURHxUUywJc3lzX3NpZ25hbGZkLAkJInNpZ25hbGZkIgl9LCAvKiA1Mjc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNzciCX0sIC8qIDUyNzcgKi8KKwl7IDEsCVRELAlzeXNfZXZlbnRmZCwJCSJldmVudGZkIgl9LCAvKiA1Mjc4ICovCisJeyA2LAlURCwJc3lzX2ZhbGxvY2F0ZSwJCSJmYWxsb2NhdGUiCX0sIC8qIDUyNzkgKi8KKwl7IDIsCVRELAlzeXNfdGltZXJmZF9jcmVhdGUsCSJ0aW1lcmZkX2NyZWF0ZSIgfSwgLyogNTI4MCAqLworCXsgMiwJVEQsCXN5c190aW1lcmZkX2dldHRpbWUsCSJ0aW1lcmZkX2dldHRpbWUiIH0sIC8qIDUyODEgKi8KKwl7IDQsCVRELAlzeXNfdGltZXJmZF9zZXR0aW1lLAkidGltZXJmZF9zZXR0aW1lIiB9LCAvKiA1MjgyICovCisJeyA0LAlURHxUUywJc3lzX3NpZ25hbGZkNCwJCSJzaWduYWxmZDQiCX0sIC8qIDUyODMgKi8KKwl7IDIsCVRELAlzeXNfZXZlbnRmZDIsCQkiZXZlbnRmZDIiCX0sIC8qIDUyODQgKi8KKwl7IDEsCVRELAlzeXNfZXBvbGxfY3JlYXRlMSwJImVwb2xsX2NyZWF0ZTEiCX0sIC8qIDUyODUgKi8KKwl7IDMsCVRELAlzeXNfZHVwMywJCSJkdXAzIgkJfSwgLyogNTI4NiAqLworCXsgMiwJVEQsCXN5c19waXBlMiwJCSJwaXBlMiIJCX0sIC8qIDUyODcgKi8KKwl7IDEsCVRELAlzeXNfaW5vdGlmeV9pbml0MSwJImlub3RpZnlfaW5pdDEiCX0sIC8qIDUyODggKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicHJlYWR2Igl9LCAvKiA1Mjg5ICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJInB3cml0ZXYiCX0sIC8qIDUyOTAgKi8KKwl7IDQsCVRQfFRTLAlwcmludGFyZ3MsCQkicnRfdGdzaWdxdWV1ZWluZm8iIH0sIC8qIDUyOTEgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicGVyZl9ldmVudF9vcGVuIiB9LCAvKiA1MjkyICovCisJeyA0LAlUTiwJc3lzX2FjY2VwdDQsCQkiYWNjZXB0NCIJfSwgLyogNTI5MyAqLworCXsgNSwJVE4sCXN5c19yZWN2bW1zZywJCSJyZWN2bW1zZyIJfSwgLyogNTI5NCAqLworCXsgMiwJVEQsCXByaW50YXJncywJCSJmYW5vdGlmeV9pbml0Igl9LCAvKiA1Mjk1ICovCisJeyA1LAlURHxURiwJcHJpbnRhcmdzLAkJImZhbm90aWZ5X21hcmsiCX0sIC8qIDUyOTYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJwcmxpbWl0NjQiCX0sIC8qIDUyOTcgKi8KKyNlbHNlCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlYWQiCQl9LCAvKiA1MDAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3dyaXRlIgkJfSwgLyogNTAwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9vcGVuIgkJfSwgLyogNTAwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jbG9zZSIJCX0sIC8qIDUwMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc3RhdCIJCX0sIC8qIDUwMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZnN0YXQiCQl9LCAvKiA1MDA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2xzdGF0IgkJfSwgLyogNTAwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wb2xsIgkJfSwgLyogNTAwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9sc2VlayIJCX0sIC8qIDUwMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbW1hcCIJCX0sIC8qIDUwMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbXByb3RlY3QiCQl9LCAvKiA1MDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X211bm1hcCIJCX0sIC8qIDUwMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfYnJrIgkJfSwgLyogNTAxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9ydF9zaWdhY3Rpb24iCX0sIC8qIDUwMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcnRfc2lncHJvY21hc2siCX0sIC8qIDUwMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfaW9jdGwiCQl9LCAvKiA1MDE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3ByZWFkIgkJfSwgLyogNTAxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wd3JpdGUiCQl9LCAvKiA1MDE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlYWR2IgkJfSwgLyogNTAxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF93cml0ZXYiCQl9LCAvKiA1MDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2FjY2VzcyIJCX0sIC8qIDUwMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcGlwZSIJCX0sIC8qIDUwMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfX25ld3NlbGVjdCIJfSwgLyogNTAyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zY2hlZF95aWVsZCIJfSwgLyogNTAyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9tcmVtYXAiCQl9LCAvKiA1MDI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21zeW5jIgkJfSwgLyogNTAyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9taW5jb3JlIgkJfSwgLyogNTAyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9tYWR2aXNlIgkJfSwgLyogNTAyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zaG1nZXQiCQl9LCAvKiA1MDI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NobWdhdCIJCX0sIC8qIDUwMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2htY3RsIgkJfSwgLyogNTAzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9kdXAiCQl9LCAvKiA1MDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2R1cDIiCQl9LCAvKiA1MDMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3BhdXNlIgkJfSwgLyogNTAzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9uYW5vc2xlZXAiCQl9LCAvKiA1MDM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldGl0aW1lciIJCX0sIC8qIDUwMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0aXRpbWVyIgkJfSwgLyogNTAzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9hbGFybSIJCX0sIC8qIDUwMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0cGlkIgkJfSwgLyogNTAzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZW5kZmlsZSIJCX0sIC8qIDUwMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc29ja2V0Y2FsbCIJfSwgLyogNTA0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jb25uZWN0IgkJfSwgLyogNTA0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9hY2NlcHQiCQl9LCAvKiA1MDQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NlbmR0byIJCX0sIC8qIDUwNDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcmVjdmZyb20iCQl9LCAvKiA1MDQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NlbmRtc2ciCQl9LCAvKiA1MDQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlY3Ztc2ciCQl9LCAvKiA1MDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NodXRkb3duIgkJfSwgLyogNTA0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9iaW5kIgkJfSwgLyogNTA0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9saXN0ZW4iCQl9LCAvKiA1MDQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldHNvY2tuYW1lIgl9LCAvKiA1MDUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldHBlZXJuYW1lIgl9LCAvKiA1MDUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NvY2tldHBhaXIiCX0sIC8qIDUwNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0c29ja29wdCIJfSwgLyogNTA1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9nZXRzb2Nrb3B0Igl9LCAvKiA1MDU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2Nsb25lIgkJfSwgLyogNTA1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mb3JrIgkJfSwgLyogNTA1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9leGVjdmUiCQl9LCAvKiA1MDU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2V4aXQiCQl9LCAvKiA1MDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3dhaXQ0IgkJfSwgLyogNTA1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9raWxsIgkJfSwgLyogNTA2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF91bmFtZSIJCX0sIC8qIDUwNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2VtZ2V0IgkJfSwgLyogNTA2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZW1vcCIJCX0sIC8qIDUwNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2VtY3RsIgkJfSwgLyogNTA2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zaG1kdCIJCX0sIC8qIDUwNjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbXNnZ2V0IgkJfSwgLyogNTA2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9tc2dzbmQiCQl9LCAvKiA1MDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21zZ3JjdiIJCX0sIC8qIDUwNjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbXNnY3RsIgkJfSwgLyogNTA2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mY250bCIJCX0sIC8qIDUwNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZmxvY2siCQl9LCAvKiA1MDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2ZzeW5jIgkJfSwgLyogNTA3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mZGF0YXN5bmMiCQl9LCAvKiA1MDczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3RydW5jYXRlIgkJfSwgLyogNTA3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mdHJ1bmNhdGUiCQl9LCAvKiA1MDc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldGRlbnRzIgkJfSwgLyogNTA3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9nZXRjd2QiCQl9LCAvKiA1MDc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2NoZGlyIgkJfSwgLyogNTA3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mY2hkaXIiCQl9LCAvKiA1MDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlbmFtZSIJCX0sIC8qIDUwODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbWtkaXIiCQl9LCAvKiA1MDgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JtZGlyIgkJfSwgLyogNTA4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jcmVhdCIJCX0sIC8qIDUwODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbGluayIJCX0sIC8qIDUwODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfdW5saW5rIgkJfSwgLyogNTA4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zeW1saW5rIgkJfSwgLyogNTA4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9yZWFkbGluayIJCX0sIC8qIDUwODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfY2htb2QiCQl9LCAvKiA1MDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2ZjaG1vZCIJCX0sIC8qIDUwODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfY2hvd24iCQl9LCAvKiA1MDkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2ZjaG93biIJCX0sIC8qIDUwOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbGNob3duIgkJfSwgLyogNTA5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF91bWFzayIJCX0sIC8qIDUwOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0dGltZW9mZGF5Igl9LCAvKiA1MDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldHJsaW1pdCIJCX0sIC8qIDUwOTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0cnVzYWdlIgkJfSwgLyogNTA5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zeXNpbmZvIgkJfSwgLyogNTA5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90aW1lcyIJCX0sIC8qIDUwOTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcHRyYWNlIgkJfSwgLyogNTA5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9nZXR1aWQiCQl9LCAvKiA1MTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3N5c2xvZyIJCX0sIC8qIDUxMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0Z2lkIgkJfSwgLyogNTEwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZXR1aWQiCQl9LCAvKiA1MTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldGdpZCIJCX0sIC8qIDUxMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0ZXVpZCIJCX0sIC8qIDUxMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0ZWdpZCIJCX0sIC8qIDUxMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0cGdpZCIJCX0sIC8qIDUxMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0cHBpZCIJCX0sIC8qIDUxMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0cGdycCIJCX0sIC8qIDUxMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0c2lkIgkJfSwgLyogNTExMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZXRyZXVpZCIJCX0sIC8qIDUxMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0cmVnaWQiCQl9LCAvKiA1MTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldGdyb3VwcyIJCX0sIC8qIDUxMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0Z3JvdXBzIgkJfSwgLyogNTExNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZXRyZXN1aWQiCQl9LCAvKiA1MTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldHJlc3VpZCIJCX0sIC8qIDUxMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0cmVzZ2lkIgkJfSwgLyogNTExNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9nZXRyZXNnaWQiCQl9LCAvKiA1MTE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldHBnaWQiCQl9LCAvKiA1MTE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldGZzdWlkIgkJfSwgLyogNTEyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZXRmc2dpZCIJCX0sIC8qIDUxMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0c2lkIgkJfSwgLyogNTEyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jYXBnZXQiCQl9LCAvKiA1MTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2NhcHNldCIJCX0sIC8qIDUxMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcnRfc2lncGVuZGluZyIJfSwgLyogNTEyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9ydF9zaWd0aW1lZHdhaXQiCX0sIC8qIDUxMjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcnRfc2lncXVldWVpbmZvIgl9LCAvKiA1MTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3J0X3NpZ3VzcGVuZCIJfSwgLyogNTEyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zaWdhbHRzdGF0Y2siCX0sIC8qIDUxMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfdXRpbWUiCQl9LCAvKiA1MTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21rbm9kIgkJfSwgLyogNTEzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wZXJzb25hbGl0eSIJfSwgLyogNTEzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF91c3RhdCIJCX0sIC8qIDUxMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc3RhdGZzIgkJfSwgLyogNTEzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mc3RhdGZzIgkJfSwgLyogNTEzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zeXNmcyIJCX0sIC8qIDUxMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0cHJpb3JpdHkiCX0sIC8qIDUxMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0cHJpb3JpdHkiCX0sIC8qIDUxMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfc2V0cGFyYW0iCX0sIC8qIDUxMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfZ2V0cGFyYW0iCX0sIC8qIDUxNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDUxNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDUxNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiA1MTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogNTE0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwgLyogNTE0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9tbG9jayIJCX0sIC8qIDUxNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbXVubG9jayIJCX0sIC8qIDUxNDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbWxvY2thbGwiCQl9LCAvKiA1MTQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X211bmxvY2thbGwiCX0sIC8qIDUxNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfdmhhbmd1cCIJCX0sIC8qIDUxNTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcGl2b3Rfcm9vdCIJfSwgLyogNTE1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9fc3lzY3RsIgkJfSwgLyogNTE1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wcmN0bCIJCX0sIC8qIDUxNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfYWRqdGltZXgiCQl9LCAvKiA1MTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldHJsaW1pdCIJCX0sIC8qIDUxNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfY2hyb290IgkJfSwgLyogNTE1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zeW5jIgkJfSwgLyogNTE1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9hY2N0IgkJfSwgLyogNTE1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zZXR0aW1lb2ZkYXkiCX0sIC8qIDUxNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbW91bnQiCQl9LCAvKiA1MTYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3Vtb3VudCIJCX0sIC8qIDUxNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc3dhcG9uIgkJfSwgLyogNTE2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zd2Fwb2ZmIgkJfSwgLyogNTE2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9yZWJvb3QiCQl9LCAvKiA1MTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldGhvc3RuYW1lIgl9LCAvKiA1MTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldGRvbWFpbm5hbWUiCX0sIC8qIDUxNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfY3JlYXRlX21vZHVsZSIJfSwgLyogNTE2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9pbml0X21vZHVsZSIJfSwgLyogNTE2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9kZWxldGVfbW9kdWxlIgl9LCAvKiA1MTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2dldF9rZXJuZWxfc3ltcyIJfSwgLyogNTE3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9xdWVyeV9tb2R1bGUiCX0sIC8qIDUxNzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcXVvdGFjdGwiCQl9LCAvKiA1MTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X25mc3NlcnZjdGwiCX0sIC8qIDUxNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0cG1zZyIJCX0sIC8qIDUxNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcHV0cG1zZyIJCX0sIC8qIDUxNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfYWZzX3N5c2NhbGwiCX0sIC8qIDUxNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcmVzZXJ2ZWQxNzciCX0sIC8qIDUxNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0dGlkIgkJfSwgLyogNTE3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9yZWFkYWhlYWQiCQl9LCAvKiA1MTc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldHhhdHRyIgkJfSwgLyogNTE4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9sc2V0eGF0dHIiCQl9LCAvKiA1MTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2ZzZXR4YXR0ciIJCX0sIC8qIDUxODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZ2V0eGF0dHIiCQl9LCAvKiA1MTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2xnZXR4YXR0ciIJCX0sIC8qIDUxODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZmdldHhhdHRyIgkJfSwgLyogNTE4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9saXN0eGF0dHIiCQl9LCAvKiA1MTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2xsaXN0eGF0dHIiCX0sIC8qIDUxODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZmxpc3R4YXR0ciIJfSwgLyogNTE4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9yZW1vdmV4YXR0ciIJfSwgLyogNTE4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9scmVtb3ZleGF0dHIiCX0sIC8qIDUxOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZnJlbW92ZXhhdHRyIgl9LCAvKiA1MTkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3RraWxsIgkJfSwgLyogNTE5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90aW1lIgkJfSwgLyogNTE5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mdXRleCIJCX0sIC8qIDUxOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfc2V0YWZmaW5pdHkiCX0sIC8qIDUxOTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2NoZWRfZ2V0YWZmaW5pdHkiCX0sIC8qIDUxOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfY2FjaGVmbHVzaCIJfSwgLyogNTE5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jYWNoZWN0bCIJCX0sIC8qIDUxOTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc3lzbWlwcyIJCX0sIC8qIDUxOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfaW9fc2V0dXAiCQl9LCAvKiA1MjAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2lvX2Rlc3Ryb3kiCX0sIC8qIDUyMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfaW9fZ2V0ZXZlbnRzIgl9LCAvKiA1MjAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2lvX3N1Ym1pdCIJCX0sIC8qIDUyMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfaW9fY2FuY2VsIgkJfSwgLyogNTIwNCAqLworCXsgMSwJVFAsCXByaW50YXJncywJCSJuNjRfZXhpdF9ncm91cCIJfSwgLyogNTIwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9sb29rdXBfZGNvb2tpZSIJfSwgLyogNTIwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9lcG9sbF9jcmVhdGUiCX0sIC8qIDUyMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZXBvbGxfY3RsIgkJfSwgLyogNTIwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9lcG9sbF93YWl0Igl9LCAvKiA1MjA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlbWFwX2ZpbGVfcGFnZXMiCX0sIC8qIDUyMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcnRfc2lncmV0dXJuIgl9LCAvKiA1MjExICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldF90aWRfYWRkcmVzcyIJfSwgLyogNTIxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9yZXN0YXJ0X3N5c2NhbGwiCX0sIC8qIDUyMTMgKi8KKwl7IDUsCVRJLAlwcmludGFyZ3MsCQkibjY0X3NlbXRpbWVkb3AiCX0sIC8qIDUyMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZmFkdmlzZTY0XzY0Igl9LCAvKiA1MjE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3RpbWVyX2NyZWF0ZSIJfSwgLyogNTIxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90aW1lcl9zZXR0aW1lIgl9LCAvKiA1MjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3RpbWVyX2dldHRpbWUiCX0sIC8qIDUyMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfdGltZXJfZ2V0b3ZlcnJ1biIJfSwgLyogNTIxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90aW1lcl9kZWxldGUiCX0sIC8qIDUyMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfY2xvY2tfc2V0dGltZSIJfSwgLyogNTIyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jbG9ja19nZXR0aW1lIgl9LCAvKiA1MjIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2Nsb2NrX2dldHJlcyIJfSwgLyogNTIyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9jbG9ja19uYW5vc2xlZXAiCX0sIC8qIDUyMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfdGdraWxsIgkJfSwgLyogNTIyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF91dGltZXMiCQl9LCAvKiA1MjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21iaW5kIgkJfSwgLyogNTIyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9TWVNfNTIyOCIJCX0sIC8qIDUyMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfU1lTXzUyMjgiCQl9LCAvKiA1MjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21xX29wZW4iCQl9LCAvKiA1MjMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21xX3VubGluayIJCX0sIC8qIDUyMzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbXFfdGltZWRzZW5kIgl9LCAvKiA1MjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21xX3RpbWVkcmVjZWl2ZSIJfSwgLyogNTIzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9tcV9ub3RpZnkiCQl9LCAvKiA1MjM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21xX2dldHNldGF0dHIiCX0sIC8qIDUyMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfU1lTXzUyMzYiCQl9LCAvKiA1MjM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3dhaXRpZCIJCX0sIC8qIDUyMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfU1lTXzUyMzgiCQl9LCAvKiA1MjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2FkZF9rZXkiCQl9LCAvKiA1MjM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlcXVlc3Rfa2V5Igl9LCAvKiA1MjMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2tleWN0bCIJCX0sIC8qIDUyNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfc2V0X3RocmVhZF9hcmVhIgl9LCAvKiA1MjQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2lub3RpZnlfaW5pdCIJfSwgLyogNTI0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9pbm90aWZ5X2FkZF93YXRjaCIgfSwgLyogNTI0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9pbm90aWZ5X3JtX3dhdGNoIgl9LCAvKiA1MjQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X21pZ3JhdGVfcGFnZXMiCX0sIC8qIDUyNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfb3BlbmF0IgkJfSwgLyogNTI0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9ta2RpcmF0IgkJfSwgLyogNTI0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9ta25vZGF0IgkJfSwgLyogNTI0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9mY2hvd25hdCIJCX0sIC8qIDUyNTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZnV0aW1lc2F0IgkJfSwgLyogNTI1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9uZXdmc3RhdGF0Igl9LCAvKiA1MjUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3VubGlua2F0IgkJfSwgLyogNTI1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9yZW5hbWVhdCIJCX0sIC8qIDUyNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfbGlua2F0IgkJfSwgLyogNTI1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zeW1saW5rYXQiCQl9LCAvKiA1MjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3JlYWRsaW5rYXQiCX0sIC8qIDUyNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZmNobW9kYXQiCQl9LCAvKiA1MjU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2ZhY2Nlc3NhdCIJCX0sIC8qIDUyNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcHNlbGVjdDYiCQl9LCAvKiA1MjYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3Bwb2xsIgkJfSwgLyogNTI2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF91bnNoYXJlIgkJfSwgLyogNTI2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9zcGxpY2UiCQl9LCAvKiA1MjYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3N5bmNfZmlsZV9yYW5nZSIJfSwgLyogNTI2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90ZWUiCQl9LCAvKiA1MjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3Ztc3BsaWNlIgkJfSwgLyogNTI2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9tb3ZlX3BhZ2VzIgl9LCAvKiA1MjY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NldF9yb2J1c3RfbGlzdCIJfSwgLyogNTI2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9nZXRfcm9idXN0X2xpc3QiCX0sIC8qIDUyNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfa2V4ZWNfbG9hZCIJfSwgLyogNTI3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9nZXRjcHUiCQl9LCAvKiA1MjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2Vwb2xsX3B3YWl0Igl9LCAvKiA1MjcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2lvcHJpb19zZXQiCX0sIC8qIDUyNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfaW9wcmlvX2dldCIJfSwgLyogNTI3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF91dGltZW5zYXQiCQl9LCAvKiA1Mjc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NpZ25hbGZkIgkJfSwgLyogNTI3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9TWVNfNTI3NyIJCX0sIC8qIDUyNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZXZlbnRmZCIJCX0sIC8qIDUyNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZmFsbG9jYXRlIgkJfSwgLyogNTI3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90aW1lcmZkX2NyZWF0ZSIJfSwgLyogNTI4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF90aW1lcmZkX2dldHRpbWUiCX0sIC8qIDUyODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfdGltZXJmZF9zZXR0aW1lIgl9LCAvKiA1MjgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X3NpZ25hbGZkNCIJCX0sIC8qIDUyODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZXZlbnRmZDIiCQl9LCAvKiA1Mjg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2Vwb2xsX2NyZWF0ZTEiCX0sIC8qIDUyODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfZHVwMyIJCX0sIC8qIDUyODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcGlwZTIiCQl9LCAvKiA1Mjg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjY0X2lub3RpZnlfaW5pdDEiCX0sIC8qIDUyODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcHJlYWR2IgkJfSwgLyogNTI4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wd3JpdGV2IgkJfSwgLyogNTI5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9ydF90Z3NpZ3F1ZXVlaW5mbyIgfSwgLyogNTI5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wZXJmX2V2ZW50X29wZW4iCX0sIC8qIDUyOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfYWNjZXB0NCIJCX0sIC8qIDUyOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuNjRfcmVjdm1tc2ciCQl9LCAvKiA1Mjk0ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibjY0X2Zhbm90aWZ5X2luaXQiCX0sIC8qIDUyOTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJuNjRfZmFub3RpZnlfbWFyayIJfSwgLyogNTI5NiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm42NF9wcmxpbWl0NjQiCQl9LCAvKiA1Mjk3ICovCisjZW5kaWYKKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTI5NSIJfSwgLyogNTI5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mjk2Igl9LCAvKiA1Mjk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyOTciCX0sIC8qIDUyOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTI5OCIJfSwgLyogNTI5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mjk5Igl9LCAvKiA1Mjk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMDAiCX0sIC8qIDUzMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMwMSIJfSwgLyogNTMwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzAyIgl9LCAvKiA1MzAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMDMiCX0sIC8qIDUzMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMwNCIJfSwgLyogNTMwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzA1Igl9LCAvKiA1MzA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMDYiCX0sIC8qIDUzMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMwNyIJfSwgLyogNTMwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzA4Igl9LCAvKiA1MzA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMDkiCX0sIC8qIDUzMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMxMCIJfSwgLyogNTMxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzExIgl9LCAvKiA1MzExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMTIiCX0sIC8qIDUzMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMxMyIJfSwgLyogNTMxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzE0Igl9LCAvKiA1MzE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMTUiCX0sIC8qIDUzMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMxNiIJfSwgLyogNTMxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzE3Igl9LCAvKiA1MzE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMTgiCX0sIC8qIDUzMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMxOSIJfSwgLyogNTMxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzIwIgl9LCAvKiA1MzIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMjEiCX0sIC8qIDUzMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMyMiIJfSwgLyogNTMyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzIzIgl9LCAvKiA1MzIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMjQiCX0sIC8qIDUzMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMyNSIJfSwgLyogNTMyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzI2Igl9LCAvKiA1MzI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMjciCX0sIC8qIDUzMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMyOCIJfSwgLyogNTMyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzI5Igl9LCAvKiA1MzI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMzAiCX0sIC8qIDUzMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMzMSIJfSwgLyogNTMzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzMyIgl9LCAvKiA1MzMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMzMiCX0sIC8qIDUzMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMzNCIJfSwgLyogNTMzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzM1Igl9LCAvKiA1MzM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMzYiCX0sIC8qIDUzMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMzNyIJfSwgLyogNTMzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzM4Igl9LCAvKiA1MzM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMzkiCX0sIC8qIDUzMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM0MCIJfSwgLyogNTM0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzQxIgl9LCAvKiA1MzQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNDIiCX0sIC8qIDUzNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM0MyIJfSwgLyogNTM0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzQ0Igl9LCAvKiA1MzQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNDUiCX0sIC8qIDUzNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM0NiIJfSwgLyogNTM0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzQ3Igl9LCAvKiA1MzQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNDgiCX0sIC8qIDUzNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM0OSIJfSwgLyogNTM0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzUwIgl9LCAvKiA1MzUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNTEiCX0sIC8qIDUzNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM1MiIJfSwgLyogNTM1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzUzIgl9LCAvKiA1MzUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNTQiCX0sIC8qIDUzNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM1NSIJfSwgLyogNTM1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzU2Igl9LCAvKiA1MzU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNTciCX0sIC8qIDUzNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM1OCIJfSwgLyogNTM1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzU5Igl9LCAvKiA1MzU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNjAiCX0sIC8qIDUzNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM2MSIJfSwgLyogNTM2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzYyIgl9LCAvKiA1MzYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNjMiCX0sIC8qIDUzNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM2NCIJfSwgLyogNTM2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzY1Igl9LCAvKiA1MzY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNjYiCX0sIC8qIDUzNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM2NyIJfSwgLyogNTM2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzY4Igl9LCAvKiA1MzY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNjkiCX0sIC8qIDUzNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM3MCIJfSwgLyogNTM3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzcxIgl9LCAvKiA1MzcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNzIiCX0sIC8qIDUzNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM3MyIJfSwgLyogNTM3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mzc0Igl9LCAvKiA1Mzc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNzUiCX0sIC8qIDUzNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM3NiIJfSwgLyogNTM3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mzc3Igl9LCAvKiA1Mzc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNzgiCX0sIC8qIDUzNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM3OSIJfSwgLyogNTM3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzgwIgl9LCAvKiA1MzgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzODEiCX0sIC8qIDUzODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM4MiIJfSwgLyogNTM4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzgzIgl9LCAvKiA1MzgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzODQiCX0sIC8qIDUzODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM4NSIJfSwgLyogNTM4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mzg2Igl9LCAvKiA1Mzg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzODciCX0sIC8qIDUzODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM4OCIJfSwgLyogNTM4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mzg5Igl9LCAvKiA1Mzg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOTAiCX0sIC8qIDUzOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM5MSIJfSwgLyogNTM5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzkyIgl9LCAvKiA1MzkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOTMiCX0sIC8qIDUzOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM5NCIJfSwgLyogNTM5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mzk1Igl9LCAvKiA1Mzk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOTYiCX0sIC8qIDUzOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM5NyIJfSwgLyogNTM5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Mzk4Igl9LCAvKiA1Mzk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOTkiCX0sIC8qIDUzOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQwMCIJfSwgLyogNTQwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDAxIgl9LCAvKiA1NDAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MDIiCX0sIC8qIDU0MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQwMyIJfSwgLyogNTQwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDA0Igl9LCAvKiA1NDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MDUiCX0sIC8qIDU0MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQwNiIJfSwgLyogNTQwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDA3Igl9LCAvKiA1NDA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MDgiCX0sIC8qIDU0MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQwOSIJfSwgLyogNTQwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDEwIgl9LCAvKiA1NDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MTEiCX0sIC8qIDU0MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQxMiIJfSwgLyogNTQxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDEzIgl9LCAvKiA1NDEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MTQiCX0sIC8qIDU0MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQxNSIJfSwgLyogNTQxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDE2Igl9LCAvKiA1NDE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MTciCX0sIC8qIDU0MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQxOCIJfSwgLyogNTQxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDE5Igl9LCAvKiA1NDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MjAiCX0sIC8qIDU0MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQyMSIJfSwgLyogNTQyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDIyIgl9LCAvKiA1NDIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MjMiCX0sIC8qIDU0MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQyNCIJfSwgLyogNTQyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDI1Igl9LCAvKiA1NDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MjYiCX0sIC8qIDU0MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQyNyIJfSwgLyogNTQyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDI4Igl9LCAvKiA1NDI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MjkiCX0sIC8qIDU0MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQzMCIJfSwgLyogNTQzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDMxIgl9LCAvKiA1NDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MzIiCX0sIC8qIDU0MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQzMyIJfSwgLyogNTQzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDM0Igl9LCAvKiA1NDM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MzUiCX0sIC8qIDU0MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQzNiIJfSwgLyogNTQzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDM3Igl9LCAvKiA1NDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MzgiCX0sIC8qIDU0MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQzOSIJfSwgLyogNTQzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQwIgl9LCAvKiA1NDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NDEiCX0sIC8qIDU0NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ0MiIJfSwgLyogNTQ0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQzIgl9LCAvKiA1NDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NDQiCX0sIC8qIDU0NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ0NSIJfSwgLyogNTQ0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQ2Igl9LCAvKiA1NDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NDciCX0sIC8qIDU0NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ0OCIJfSwgLyogNTQ0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQ5Igl9LCAvKiA1NDQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NTAiCX0sIC8qIDU0NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ1MSIJfSwgLyogNTQ1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDUyIgl9LCAvKiA1NDUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NTMiCX0sIC8qIDU0NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ1NCIJfSwgLyogNTQ1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDU1Igl9LCAvKiA1NDU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NTYiCX0sIC8qIDU0NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ1NyIJfSwgLyogNTQ1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDU4Igl9LCAvKiA1NDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NTkiCX0sIC8qIDU0NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ2MCIJfSwgLyogNTQ2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDYxIgl9LCAvKiA1NDYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NjIiCX0sIC8qIDU0NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ2MyIJfSwgLyogNTQ2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDY0Igl9LCAvKiA1NDY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NjUiCX0sIC8qIDU0NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ2NiIJfSwgLyogNTQ2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDY3Igl9LCAvKiA1NDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NjgiCX0sIC8qIDU0NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ2OSIJfSwgLyogNTQ2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDcwIgl9LCAvKiA1NDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NzEiCX0sIC8qIDU0NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ3MiIJfSwgLyogNTQ3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDczIgl9LCAvKiA1NDczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NzQiCX0sIC8qIDU0NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ3NSIJfSwgLyogNTQ3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDc2Igl9LCAvKiA1NDc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NzciCX0sIC8qIDU0NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ3OCIJfSwgLyogNTQ3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDc5Igl9LCAvKiA1NDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0ODAiCX0sIC8qIDU0ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ4MSIJfSwgLyogNTQ4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDgyIgl9LCAvKiA1NDgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0ODMiCX0sIC8qIDU0ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ4NCIJfSwgLyogNTQ4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDg1Igl9LCAvKiA1NDg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0ODYiCX0sIC8qIDU0ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ4NyIJfSwgLyogNTQ4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDg4Igl9LCAvKiA1NDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0ODkiCX0sIC8qIDU0ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ5MCIJfSwgLyogNTQ5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDkxIgl9LCAvKiA1NDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OTIiCX0sIC8qIDU0OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ5MyIJfSwgLyogNTQ5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDk0Igl9LCAvKiA1NDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OTUiCX0sIC8qIDU0OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ5NiIJfSwgLyogNTQ5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDk3Igl9LCAvKiA1NDk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OTgiCX0sIC8qIDU0OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ5OSIJfSwgLyogNTQ5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTAwIgl9LCAvKiA1NTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MDEiCX0sIC8qIDU1MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUwMiIJfSwgLyogNTUwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTAzIgl9LCAvKiA1NTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MDQiCX0sIC8qIDU1MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUwNSIJfSwgLyogNTUwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTA2Igl9LCAvKiA1NTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MDciCX0sIC8qIDU1MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUwOCIJfSwgLyogNTUwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTA5Igl9LCAvKiA1NTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MTAiCX0sIC8qIDU1MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUxMSIJfSwgLyogNTUxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTEyIgl9LCAvKiA1NTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MTMiCX0sIC8qIDU1MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUxNCIJfSwgLyogNTUxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTE1Igl9LCAvKiA1NTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MTYiCX0sIC8qIDU1MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUxNyIJfSwgLyogNTUxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTE4Igl9LCAvKiA1NTE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MTkiCX0sIC8qIDU1MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUyMCIJfSwgLyogNTUyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTIxIgl9LCAvKiA1NTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MjIiCX0sIC8qIDU1MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUyMyIJfSwgLyogNTUyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTI0Igl9LCAvKiA1NTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MjUiCX0sIC8qIDU1MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUyNiIJfSwgLyogNTUyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTI3Igl9LCAvKiA1NTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MjgiCX0sIC8qIDU1MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUyOSIJfSwgLyogNTUyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTMwIgl9LCAvKiA1NTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MzEiCX0sIC8qIDU1MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUzMiIJfSwgLyogNTUzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTMzIgl9LCAvKiA1NTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MzQiCX0sIC8qIDU1MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUzNSIJfSwgLyogNTUzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTM2Igl9LCAvKiA1NTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MzciCX0sIC8qIDU1MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUzOCIJfSwgLyogNTUzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTM5Igl9LCAvKiA1NTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NDAiCX0sIC8qIDU1NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU0MSIJfSwgLyogNTU0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTQyIgl9LCAvKiA1NTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NDMiCX0sIC8qIDU1NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU0NCIJfSwgLyogNTU0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTQ1Igl9LCAvKiA1NTQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NDYiCX0sIC8qIDU1NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU0NyIJfSwgLyogNTU0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTQ4Igl9LCAvKiA1NTQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NDkiCX0sIC8qIDU1NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU1MCIJfSwgLyogNTU1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTUxIgl9LCAvKiA1NTUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NTIiCX0sIC8qIDU1NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU1MyIJfSwgLyogNTU1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTU0Igl9LCAvKiA1NTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NTUiCX0sIC8qIDU1NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU1NiIJfSwgLyogNTU1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTU3Igl9LCAvKiA1NTU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NTgiCX0sIC8qIDU1NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU1OSIJfSwgLyogNTU1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTYwIgl9LCAvKiA1NTYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NjEiCX0sIC8qIDU1NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU2MiIJfSwgLyogNTU2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTYzIgl9LCAvKiA1NTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NjQiCX0sIC8qIDU1NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU2NSIJfSwgLyogNTU2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTY2Igl9LCAvKiA1NTY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NjciCX0sIC8qIDU1NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU2OCIJfSwgLyogNTU2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTY5Igl9LCAvKiA1NTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NzAiCX0sIC8qIDU1NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU3MSIJfSwgLyogNTU3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTcyIgl9LCAvKiA1NTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NzMiCX0sIC8qIDU1NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU3NCIJfSwgLyogNTU3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTc1Igl9LCAvKiA1NTc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NzYiCX0sIC8qIDU1NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU3NyIJfSwgLyogNTU3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTc4Igl9LCAvKiA1NTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NzkiCX0sIC8qIDU1NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU4MCIJfSwgLyogNTU4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTgxIgl9LCAvKiA1NTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1ODIiCX0sIC8qIDU1ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU4MyIJfSwgLyogNTU4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTg0Igl9LCAvKiA1NTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1ODUiCX0sIC8qIDU1ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU4NiIJfSwgLyogNTU4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTg3Igl9LCAvKiA1NTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1ODgiCX0sIC8qIDU1ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU4OSIJfSwgLyogNTU4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTkwIgl9LCAvKiA1NTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1OTEiCX0sIC8qIDU1OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU5MiIJfSwgLyogNTU5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTkzIgl9LCAvKiA1NTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1OTQiCX0sIC8qIDU1OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU5NSIJfSwgLyogNTU5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTk2Igl9LCAvKiA1NTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1OTciCX0sIC8qIDU1OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU5OCIJfSwgLyogNTU5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTk5Igl9LCAvKiA1NTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MDAiCX0sIC8qIDU2MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYwMSIJfSwgLyogNTYwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjAyIgl9LCAvKiA1NjAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MDMiCX0sIC8qIDU2MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYwNCIJfSwgLyogNTYwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjA1Igl9LCAvKiA1NjA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MDYiCX0sIC8qIDU2MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYwNyIJfSwgLyogNTYwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjA4Igl9LCAvKiA1NjA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MDkiCX0sIC8qIDU2MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYxMCIJfSwgLyogNTYxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjExIgl9LCAvKiA1NjExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MTIiCX0sIC8qIDU2MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYxMyIJfSwgLyogNTYxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjE0Igl9LCAvKiA1NjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MTUiCX0sIC8qIDU2MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYxNiIJfSwgLyogNTYxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjE3Igl9LCAvKiA1NjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MTgiCX0sIC8qIDU2MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYxOSIJfSwgLyogNTYxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjIwIgl9LCAvKiA1NjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MjEiCX0sIC8qIDU2MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYyMiIJfSwgLyogNTYyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjIzIgl9LCAvKiA1NjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MjQiCX0sIC8qIDU2MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYyNSIJfSwgLyogNTYyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjI2Igl9LCAvKiA1NjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MjciCX0sIC8qIDU2MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYyOCIJfSwgLyogNTYyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjI5Igl9LCAvKiA1NjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MzAiCX0sIC8qIDU2MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYzMSIJfSwgLyogNTYzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjMyIgl9LCAvKiA1NjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MzMiCX0sIC8qIDU2MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYzNCIJfSwgLyogNTYzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjM1Igl9LCAvKiA1NjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MzYiCX0sIC8qIDU2MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYzNyIJfSwgLyogNTYzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjM4Igl9LCAvKiA1NjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MzkiCX0sIC8qIDU2MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY0MCIJfSwgLyogNTY0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjQxIgl9LCAvKiA1NjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NDIiCX0sIC8qIDU2NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY0MyIJfSwgLyogNTY0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjQ0Igl9LCAvKiA1NjQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NDUiCX0sIC8qIDU2NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY0NiIJfSwgLyogNTY0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjQ3Igl9LCAvKiA1NjQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NDgiCX0sIC8qIDU2NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY0OSIJfSwgLyogNTY0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjUwIgl9LCAvKiA1NjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NTEiCX0sIC8qIDU2NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY1MiIJfSwgLyogNTY1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjUzIgl9LCAvKiA1NjUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NTQiCX0sIC8qIDU2NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY1NSIJfSwgLyogNTY1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjU2Igl9LCAvKiA1NjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NTciCX0sIC8qIDU2NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY1OCIJfSwgLyogNTY1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjU5Igl9LCAvKiA1NjU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NjAiCX0sIC8qIDU2NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY2MSIJfSwgLyogNTY2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjYyIgl9LCAvKiA1NjYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NjMiCX0sIC8qIDU2NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY2NCIJfSwgLyogNTY2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjY1Igl9LCAvKiA1NjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NjYiCX0sIC8qIDU2NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY2NyIJfSwgLyogNTY2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjY4Igl9LCAvKiA1NjY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NjkiCX0sIC8qIDU2NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY3MCIJfSwgLyogNTY3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjcxIgl9LCAvKiA1NjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NzIiCX0sIC8qIDU2NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY3MyIJfSwgLyogNTY3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Njc0Igl9LCAvKiA1Njc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NzUiCX0sIC8qIDU2NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY3NiIJfSwgLyogNTY3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Njc3Igl9LCAvKiA1Njc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NzgiCX0sIC8qIDU2NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY3OSIJfSwgLyogNTY3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjgwIgl9LCAvKiA1NjgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2ODEiCX0sIC8qIDU2ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY4MiIJfSwgLyogNTY4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjgzIgl9LCAvKiA1NjgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2ODQiCX0sIC8qIDU2ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY4NSIJfSwgLyogNTY4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Njg2Igl9LCAvKiA1Njg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2ODciCX0sIC8qIDU2ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY4OCIJfSwgLyogNTY4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Njg5Igl9LCAvKiA1Njg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OTAiCX0sIC8qIDU2OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY5MSIJfSwgLyogNTY5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjkyIgl9LCAvKiA1NjkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OTMiCX0sIC8qIDU2OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY5NCIJfSwgLyogNTY5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Njk1Igl9LCAvKiA1Njk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OTYiCX0sIC8qIDU2OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY5NyIJfSwgLyogNTY5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Njk4Igl9LCAvKiA1Njk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OTkiCX0sIC8qIDU2OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcwMCIJfSwgLyogNTcwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzAxIgl9LCAvKiA1NzAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MDIiCX0sIC8qIDU3MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcwMyIJfSwgLyogNTcwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzA0Igl9LCAvKiA1NzA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MDUiCX0sIC8qIDU3MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcwNiIJfSwgLyogNTcwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzA3Igl9LCAvKiA1NzA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MDgiCX0sIC8qIDU3MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcwOSIJfSwgLyogNTcwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzEwIgl9LCAvKiA1NzEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MTEiCX0sIC8qIDU3MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcxMiIJfSwgLyogNTcxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzEzIgl9LCAvKiA1NzEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MTQiCX0sIC8qIDU3MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcxNSIJfSwgLyogNTcxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzE2Igl9LCAvKiA1NzE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MTciCX0sIC8qIDU3MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcxOCIJfSwgLyogNTcxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzE5Igl9LCAvKiA1NzE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MjAiCX0sIC8qIDU3MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcyMSIJfSwgLyogNTcyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzIyIgl9LCAvKiA1NzIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MjMiCX0sIC8qIDU3MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcyNCIJfSwgLyogNTcyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzI1Igl9LCAvKiA1NzI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MjYiCX0sIC8qIDU3MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcyNyIJfSwgLyogNTcyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzI4Igl9LCAvKiA1NzI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MjkiCX0sIC8qIDU3MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTczMCIJfSwgLyogNTczMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzMxIgl9LCAvKiA1NzMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MzIiCX0sIC8qIDU3MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTczMyIJfSwgLyogNTczMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzM0Igl9LCAvKiA1NzM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MzUiCX0sIC8qIDU3MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTczNiIJfSwgLyogNTczNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzM3Igl9LCAvKiA1NzM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MzgiCX0sIC8qIDU3MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTczOSIJfSwgLyogNTczOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQwIgl9LCAvKiA1NzQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NDEiCX0sIC8qIDU3NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc0MiIJfSwgLyogNTc0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQzIgl9LCAvKiA1NzQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NDQiCX0sIC8qIDU3NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc0NSIJfSwgLyogNTc0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQ2Igl9LCAvKiA1NzQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NDciCX0sIC8qIDU3NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc0OCIJfSwgLyogNTc0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQ5Igl9LCAvKiA1NzQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NTAiCX0sIC8qIDU3NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc1MSIJfSwgLyogNTc1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzUyIgl9LCAvKiA1NzUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NTMiCX0sIC8qIDU3NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc1NCIJfSwgLyogNTc1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzU1Igl9LCAvKiA1NzU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NTYiCX0sIC8qIDU3NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc1NyIJfSwgLyogNTc1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzU4Igl9LCAvKiA1NzU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NTkiCX0sIC8qIDU3NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc2MCIJfSwgLyogNTc2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzYxIgl9LCAvKiA1NzYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NjIiCX0sIC8qIDU3NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc2MyIJfSwgLyogNTc2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzY0Igl9LCAvKiA1NzY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NjUiCX0sIC8qIDU3NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc2NiIJfSwgLyogNTc2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzY3Igl9LCAvKiA1NzY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NjgiCX0sIC8qIDU3NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc2OSIJfSwgLyogNTc2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzcwIgl9LCAvKiA1NzcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NzEiCX0sIC8qIDU3NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc3MiIJfSwgLyogNTc3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzczIgl9LCAvKiA1NzczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NzQiCX0sIC8qIDU3NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc3NSIJfSwgLyogNTc3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Nzc2Igl9LCAvKiA1Nzc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NzciCX0sIC8qIDU3NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc3OCIJfSwgLyogNTc3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Nzc5Igl9LCAvKiA1Nzc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3ODAiCX0sIC8qIDU3ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc4MSIJfSwgLyogNTc4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzgyIgl9LCAvKiA1NzgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3ODMiCX0sIC8qIDU3ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc4NCIJfSwgLyogNTc4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Nzg1Igl9LCAvKiA1Nzg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3ODYiCX0sIC8qIDU3ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc4NyIJfSwgLyogNTc4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Nzg4Igl9LCAvKiA1Nzg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3ODkiCX0sIC8qIDU3ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc5MCIJfSwgLyogNTc5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzkxIgl9LCAvKiA1NzkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OTIiCX0sIC8qIDU3OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc5MyIJfSwgLyogNTc5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Nzk0Igl9LCAvKiA1Nzk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OTUiCX0sIC8qIDU3OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc5NiIJfSwgLyogNTc5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181Nzk3Igl9LCAvKiA1Nzk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OTgiCX0sIC8qIDU3OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc5OSIJfSwgLyogNTc5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODAwIgl9LCAvKiA1ODAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MDEiCX0sIC8qIDU4MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgwMiIJfSwgLyogNTgwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODAzIgl9LCAvKiA1ODAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MDQiCX0sIC8qIDU4MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgwNSIJfSwgLyogNTgwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODA2Igl9LCAvKiA1ODA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MDciCX0sIC8qIDU4MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgwOCIJfSwgLyogNTgwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODA5Igl9LCAvKiA1ODA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MTAiCX0sIC8qIDU4MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgxMSIJfSwgLyogNTgxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODEyIgl9LCAvKiA1ODEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MTMiCX0sIC8qIDU4MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgxNCIJfSwgLyogNTgxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODE1Igl9LCAvKiA1ODE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MTYiCX0sIC8qIDU4MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgxNyIJfSwgLyogNTgxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODE4Igl9LCAvKiA1ODE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MTkiCX0sIC8qIDU4MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgyMCIJfSwgLyogNTgyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODIxIgl9LCAvKiA1ODIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MjIiCX0sIC8qIDU4MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgyMyIJfSwgLyogNTgyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODI0Igl9LCAvKiA1ODI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MjUiCX0sIC8qIDU4MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgyNiIJfSwgLyogNTgyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODI3Igl9LCAvKiA1ODI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MjgiCX0sIC8qIDU4MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgyOSIJfSwgLyogNTgyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODMwIgl9LCAvKiA1ODMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MzEiCX0sIC8qIDU4MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgzMiIJfSwgLyogNTgzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODMzIgl9LCAvKiA1ODMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MzQiCX0sIC8qIDU4MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgzNSIJfSwgLyogNTgzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODM2Igl9LCAvKiA1ODM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MzciCX0sIC8qIDU4MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgzOCIJfSwgLyogNTgzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODM5Igl9LCAvKiA1ODM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NDAiCX0sIC8qIDU4NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg0MSIJfSwgLyogNTg0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODQyIgl9LCAvKiA1ODQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NDMiCX0sIC8qIDU4NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg0NCIJfSwgLyogNTg0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODQ1Igl9LCAvKiA1ODQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NDYiCX0sIC8qIDU4NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg0NyIJfSwgLyogNTg0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODQ4Igl9LCAvKiA1ODQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NDkiCX0sIC8qIDU4NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg1MCIJfSwgLyogNTg1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODUxIgl9LCAvKiA1ODUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NTIiCX0sIC8qIDU4NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg1MyIJfSwgLyogNTg1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODU0Igl9LCAvKiA1ODU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NTUiCX0sIC8qIDU4NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg1NiIJfSwgLyogNTg1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODU3Igl9LCAvKiA1ODU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NTgiCX0sIC8qIDU4NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg1OSIJfSwgLyogNTg1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODYwIgl9LCAvKiA1ODYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NjEiCX0sIC8qIDU4NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg2MiIJfSwgLyogNTg2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODYzIgl9LCAvKiA1ODYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NjQiCX0sIC8qIDU4NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg2NSIJfSwgLyogNTg2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODY2Igl9LCAvKiA1ODY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NjciCX0sIC8qIDU4NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg2OCIJfSwgLyogNTg2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODY5Igl9LCAvKiA1ODY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NzAiCX0sIC8qIDU4NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg3MSIJfSwgLyogNTg3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODcyIgl9LCAvKiA1ODcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NzMiCX0sIC8qIDU4NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg3NCIJfSwgLyogNTg3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODc1Igl9LCAvKiA1ODc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NzYiCX0sIC8qIDU4NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg3NyIJfSwgLyogNTg3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODc4Igl9LCAvKiA1ODc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NzkiCX0sIC8qIDU4NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg4MCIJfSwgLyogNTg4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODgxIgl9LCAvKiA1ODgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4ODIiCX0sIC8qIDU4ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg4MyIJfSwgLyogNTg4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODg0Igl9LCAvKiA1ODg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4ODUiCX0sIC8qIDU4ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg4NiIJfSwgLyogNTg4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODg3Igl9LCAvKiA1ODg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4ODgiCX0sIC8qIDU4ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg4OSIJfSwgLyogNTg4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODkwIgl9LCAvKiA1ODkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4OTEiCX0sIC8qIDU4OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg5MiIJfSwgLyogNTg5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODkzIgl9LCAvKiA1ODkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4OTQiCX0sIC8qIDU4OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg5NSIJfSwgLyogNTg5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODk2Igl9LCAvKiA1ODk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4OTciCX0sIC8qIDU4OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg5OCIJfSwgLyogNTg5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODk5Igl9LCAvKiA1ODk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MDAiCX0sIC8qIDU5MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkwMSIJfSwgLyogNTkwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTAyIgl9LCAvKiA1OTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MDMiCX0sIC8qIDU5MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkwNCIJfSwgLyogNTkwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTA1Igl9LCAvKiA1OTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MDYiCX0sIC8qIDU5MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkwNyIJfSwgLyogNTkwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTA4Igl9LCAvKiA1OTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MDkiCX0sIC8qIDU5MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkxMCIJfSwgLyogNTkxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTExIgl9LCAvKiA1OTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MTIiCX0sIC8qIDU5MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkxMyIJfSwgLyogNTkxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTE0Igl9LCAvKiA1OTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MTUiCX0sIC8qIDU5MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkxNiIJfSwgLyogNTkxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTE3Igl9LCAvKiA1OTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MTgiCX0sIC8qIDU5MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkxOSIJfSwgLyogNTkxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTIwIgl9LCAvKiA1OTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MjEiCX0sIC8qIDU5MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkyMiIJfSwgLyogNTkyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTIzIgl9LCAvKiA1OTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MjQiCX0sIC8qIDU5MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkyNSIJfSwgLyogNTkyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTI2Igl9LCAvKiA1OTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MjciCX0sIC8qIDU5MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkyOCIJfSwgLyogNTkyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTI5Igl9LCAvKiA1OTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MzAiCX0sIC8qIDU5MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkzMSIJfSwgLyogNTkzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTMyIgl9LCAvKiA1OTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MzMiCX0sIC8qIDU5MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkzNCIJfSwgLyogNTkzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTM1Igl9LCAvKiA1OTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MzYiCX0sIC8qIDU5MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkzNyIJfSwgLyogNTkzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTM4Igl9LCAvKiA1OTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MzkiCX0sIC8qIDU5MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk0MCIJfSwgLyogNTk0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTQxIgl9LCAvKiA1OTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NDIiCX0sIC8qIDU5NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk0MyIJfSwgLyogNTk0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTQ0Igl9LCAvKiA1OTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NDUiCX0sIC8qIDU5NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk0NiIJfSwgLyogNTk0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTQ3Igl9LCAvKiA1OTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NDgiCX0sIC8qIDU5NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk0OSIJfSwgLyogNTk0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTUwIgl9LCAvKiA1OTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NTEiCX0sIC8qIDU5NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk1MiIJfSwgLyogNTk1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTUzIgl9LCAvKiA1OTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NTQiCX0sIC8qIDU5NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk1NSIJfSwgLyogNTk1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTU2Igl9LCAvKiA1OTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NTciCX0sIC8qIDU5NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk1OCIJfSwgLyogNTk1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTU5Igl9LCAvKiA1OTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NjAiCX0sIC8qIDU5NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk2MSIJfSwgLyogNTk2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTYyIgl9LCAvKiA1OTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NjMiCX0sIC8qIDU5NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk2NCIJfSwgLyogNTk2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTY1Igl9LCAvKiA1OTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NjYiCX0sIC8qIDU5NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk2NyIJfSwgLyogNTk2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTY4Igl9LCAvKiA1OTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NjkiCX0sIC8qIDU5NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk3MCIJfSwgLyogNTk3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTcxIgl9LCAvKiA1OTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NzIiCX0sIC8qIDU5NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk3MyIJfSwgLyogNTk3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTc0Igl9LCAvKiA1OTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NzUiCX0sIC8qIDU5NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk3NiIJfSwgLyogNTk3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTc3Igl9LCAvKiA1OTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NzgiCX0sIC8qIDU5NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk3OSIJfSwgLyogNTk3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTgwIgl9LCAvKiA1OTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5ODEiCX0sIC8qIDU5ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk4MiIJfSwgLyogNTk4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTgzIgl9LCAvKiA1OTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5ODQiCX0sIC8qIDU5ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk4NSIJfSwgLyogNTk4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTg2Igl9LCAvKiA1OTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5ODciCX0sIC8qIDU5ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk4OCIJfSwgLyogNTk4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTg5Igl9LCAvKiA1OTg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OTAiCX0sIC8qIDU5OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk5MSIJfSwgLyogNTk5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTkyIgl9LCAvKiA1OTkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OTMiCX0sIC8qIDU5OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk5NCIJfSwgLyogNTk5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTk1Igl9LCAvKiA1OTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OTYiCX0sIC8qIDU5OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk5NyIJfSwgLyogNTk5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTk4Igl9LCAvKiA1OTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OTkiCX0sIC8qIDU5OTkgKi8gLyogZW5kIG9mIExpbnV4IE42NCAqLworCisjaWYgZGVmaW5lZCAoTElOVVhfTUlQU04zMikKKwkvKiBGb3IgYW4gTjMyIHN0cmFjZSBkZWNvZGUgdGhlIE4zMiA2NC1iaXQgc3lzY2FsbHMuICAqLworCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiA2MDAwICovIC8qIHN0YXJ0IG9mIExpbnV4IE4zMiAqLworCXsgMywJVEYsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDYwMDEgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNjAwMiAqLworCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNjAwMyAqLworCXsgMiwJVEYsCXN5c19zdGF0NjQsCQkic3RhdCIJCX0sIC8qIDYwMDQgKi8KKwl7IDIsCTAsCXN5c19mc3RhdDY0LAkJImZzdGF0IgkJfSwgLyogNjAwNSAqLworCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0IgkJfSwgLyogNjAwNiAqLworCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDYwMDcgKi8KKwl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDYwMDggKi8KKwl7IDYsCVRELAlzeXNfbW1hcCwJCSJtbWFwIgkJfSwgLyogNjAwOSAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiA2MDEwICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogNjAxMSAqLworCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA2MDEyICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIJfSwgLyogNjAxMyAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDYwMTQgKi8KKwl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDYwMTUgKi8KKwl7IDYsCVRGLAlzeXNfcHJlYWQ2NCwJCSJwcmVhZCIJCX0sIC8qIDYwMTYgKi8KKwl7IDYsCVRGLAlzeXNfcHdyaXRlNjQsCQkicHdyaXRlIgl9LCAvKiA2MDE3ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiA2MDE4ICovCisJeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogNjAxOSAqLworCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiA2MDIwICovCisJeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNjAyMSAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJfbmV3c2VsZWN0Igl9LCAvKiA2MDIyICovCisJeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCIJfSwgLyogNjAyMyAqLworCXsgNSwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDYwMjQgKi8KKwl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDYwMjUgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiA2MDI2ICovCisJeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiA2MDI3ICovCisJeyAzLAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDYwMjggKi8KKwl7IDMsCVRJLAlzeXNfc2htYXQsCQkic2htZ2F0Igl9LCAvKiA2MDI5ICovCisJeyAzLAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDYwMzAgKi8KKwl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNjAzMSAqLworCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDYwMzIgKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiA2MDMzICovCisJeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogNjAzNCAqLworCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDYwMzUgKi8KKwl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiA2MDM2ICovCisJeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiA2MDM3ICovCisJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogNjAzOCAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogNjAzOSAqLworCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJfSwgLyogNjA0MCAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDYwNDEgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogNjA0MiAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiA2MDQzICovCisJeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiA2MDQ0ICovCisJeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogNjA0NSAqLworCXsgMywJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDYwNDYgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDYwNDcgKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogNjA0OCAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiA2MDQ5ICovCisJeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDYwNTAgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogNjA1MSAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDYwNTIgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiA2MDUzICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogNjA1NCAqLworCXsgMiwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDYwNTUgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogNjA1NiAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiA2MDU3ICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCX0sIC8qIDYwNTggKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiA2MDU5ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDYwNjAgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDYwNjEgKi8KKwl7IDMsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogNjA2MiAqLworCXsgMywJVEksCXByaW50YXJncywJCSJzZW1vcCIJCX0sIC8qIDYwNjMgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogNjA2NCAqLworCXsgMSwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDYwNjUgKi8KKwl7IDIsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogNjA2NiAqLworCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiA2MDY3ICovCisJeyA1LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDYwNjggKi8KKwl7IDMsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogNjA2OSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNjA3MCAqLworCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJfSwgLyogNjA3MSAqLworCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogNjA3MiAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDYwNzMgKi8KKwl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDYwNzQgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA2MDc1ICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDYwNzYgKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogNjA3NyAqLworCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDYwNzggKi8KKwl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogNjA3OSAqLworCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiA2MDgwICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogNjA4MSAqLworCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDYwODIgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA2MDgzICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDYwODQgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogNjA4NSAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDYwODYgKi8KKwl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDYwODcgKi8KKwl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiA2MDg4ICovCisJeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogNjA4OSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDYwOTAgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA2MDkxICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogNjA5MiAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjA5MyAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNjA5NCAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDYwOTUgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA2MDk2ICovCisJeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiA2MDk3ICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA2MDk4ICovCisJeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogNjA5OSAqLworCXsgMCwJTkYsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiA2MTAwICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogNjEwMSAqLworCXsgMCwJTkYsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA2MTAyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogNjEwMyAqLworCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDYxMDQgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA2MTA1ICovCisJeyAwLAlORiwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNjEwNiAqLworCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNjEwNyAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjEwOCAqLworCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNjEwOSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDYxMTAgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNjExMSAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA2MTEyICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogNjExMyAqLworCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDYxMTQgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiA2MTE1ICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogNjExNiAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDYxMTcgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiA2MTE4ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiA2MTE5ICovCisJeyAxLAlORiwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiA2MTIwICovCisJeyAxLAlORiwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiA2MTIxICovCisJeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogNjEyMiAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDYxMjMgKi8KKwl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiA2MTI0ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiA2MTI1ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LC8qIDYxMjYgKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLAkicnRfc2lncXVldWVpbmZvIn0sLyogNjEyNyAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lndXNwZW5kIgl9LCAvKiA2MTI4ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhdGNrIgl9LCAvKiA2MTI5ICovCisJeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogNjEzMCAqLworCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDYxMzEgKi8KKwl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiA2MTMyICovCisJeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiA2MTMzICovCisJeyAzLAkwLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogNjEzNCAqLworCXsgMywJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogNjEzNSAqLworCXsgNSwJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogNjEzNiAqLworCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDYxMzcgKi8KKwl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA2MTM4ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiA2MTM5ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiA2MTQwICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDYxNDEgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogNjE0MiAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogNjE0MyAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogNjE0NCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDYxNDUgKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sIC8qIDYxNDYgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDYxNDcgKi8KKwl7IDEsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogNjE0OCAqLworCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgLyogNjE0OSAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogNjE1MCAqLworCXsgMiwJMCwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiA2MTUxICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDYxNTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJwcmN0bCIJCX0sIC8qIDYxNTMgKi8KKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogNjE1NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDYxNTUgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjE1NiAqLworCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDYxNTcgKi8KKwl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNjE1OCAqLworCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJfSwgLyogNjE1OSAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDYxNjAgKi8KKwl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDYxNjEgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogNjE2MiAqLworCXsgMSwJVEYsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDYxNjMgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA2MTY0ICovCisJeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNjE2NSAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiA2MTY2ICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDYxNjcgKi8KKwl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiA2MTY4ICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDYxNjkgKi8KKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogNjE3MCAqLworCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogNjE3MSAqLworCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiA2MTcyICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogNjE3MyAqLworCXsgNSwJVE4sCXByaW50YXJncywJCSJnZXRwbXNnIgl9LCAvKiA2MTc0ICovCisJeyA1LAlUTiwJcHJpbnRhcmdzLAkJInB1dHBtc2ciCX0sIC8qIDYxNzUgKi8KKwl7IDAsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiA2MTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicmVzZXJ2ZWQxNzciCX0sIC8qIDYxNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDYxNzggKi8KKwl7IDMsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiA2MTc5ICovCisJeyA1LAkwLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDYxODAgKi8KKwl7IDUsCTAsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDYxODEgKi8KKwl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiA2MTgyICovCisJeyA0LAkwLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDYxODMgKi8KKwl7IDQsCTAsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDYxODQgKi8KKwl7IDQsCVRELAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogNjE4NSAqLworCXsgMywJMCwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDYxODYgKi8KKwl7IDMsCTAsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogNjE4NyAqLworCXsgMywJVEQsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDYxODggKi8KKwl7IDIsCTAsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiA2MTg5ICovCisJeyAyLAkwLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDYxOTAgKi8KKwl7IDIsCVRELAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiA2MTkxICovCisJeyAyLAkwLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDYxOTIgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiA2MTkzICovCisJeyA2LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiA2MTk0ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSJ9LCAvKiA2MTk1ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSJ9LCAvKiA2MTk2ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiY2FjaGVmbHVzaCIJfSwgLyogNjE5NyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImNhY2hlY3RsIgl9LCAvKiA2MTk4ICovCisJeyA0LAkwLAlzeXNfc3lzbWlwcywJCSJzeXNtaXBzIgl9LCAvKiA2MTk5ICovCisJeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDYyMDAgKi8KKwl7IDEsCTAsCXN5c19pb19kZXN0cm95LAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDYyMDEgKi8KKwl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCSJpb19nZXRldmVudHMiCX0sIC8qIDYyMDIgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiA2MjAzICovCisJeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogNjIwNCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAifSwgLyogNjIwNSAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIgl9LCAvKiA2MjA2ICovCisJeyAxLAlURCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogNjIwNyAqLworCXsgNCwJVEQsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiA2MjA4ICovCisJeyA0LAlURCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogNjIwOSAqLworCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIgl9LCAvKiA2MjEwICovCisJeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogNjIxMSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDYyMTIgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MiIH0sIC8qIDYyMTMgKi8KKwl7IDAsCTAsCXN5c19yZXN0YXJ0X3N5c2NhbGwsCSJyZXN0YXJ0X3N5c2NhbGwiIH0sIC8qIDYyMTQgKi8KKwl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgl9LCAvKiA2MjE1ICovCisJeyA1LAlURCwJc3lzX2ZhZHZpc2U2NCwJCSJmYWR2aXNlNjQiCX0sIC8qIDYyMTYgKi8KKwl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCQkic3RhdGZzNjQiCX0sIC8qIDYyMTcgKi8KKwl7IDMsCVRELAlzeXNfZnN0YXRmczY0LAkJImZzdGF0ZnM2NCIJfSwgLyogNjIxOCAqLworCXsgNCwJVER8VE4sCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDYyMTkgKi8KKwl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDYyMjAgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogNjIyMSAqLworCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiA2MjIyICovCisJeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwJInRpbWVyX2dldG92ZXJydW4iCX0sIC8qIDYyMjMgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDYyMjQgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogNjIyNSAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiA2MjI2ICovCisJeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiA2MjI3ICovCisJeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIiB9LCAvKiA2MjI4ICovCisJeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDYyMjkgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogNjIzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjMxIgl9LCAvKiA2MjMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMzIiCX0sIC8qIDYyMzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjIzMyIJfSwgLyogNjIzMyAqLworCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogNjIzNCAqLworCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDYyMzUgKi8KKwl7IDUsCTAsCXN5c19tcV90aW1lZHNlbmQsCSJtcV90aW1lZHNlbmQiCX0sIC8qIDYyMzYgKi8KKwl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUiIH0sIC8qIDYyMzcgKi8KKwl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiA2MjM4ICovCisJeyAzLAkwLAlzeXNfbXFfZ2V0c2V0YXR0ciwJIm1xX2dldHNldGF0dHIiCX0sIC8qIDYyMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjI0MCIJfSwgLyogNjI0MCAqLworCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiA2MjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNDIiCX0sIC8qIDYyNDIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJhZGRfa2V5Igl9LCAvKiA2MjQzICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicmVxdWVzdF9rZXkiCX0sIC8qIDYyNDQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJrZXljdGwiCX0sIC8qIDYyNDUgKi8KKwl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDYyNDYgKi8KKwl7IDAsCVRELAlwcmludGFyZ3MsCQkiaW5vdGlmeV9pbml0Igl9LCAvKiA2MjQ3ICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDYyNDggKi8KKwl7IDIsCVRELAlzeXNfaW5vdGlmeV9ybV93YXRjaCwJImlub3RpZnlfcm1fd2F0Y2giIH0sIC8qIDYyNDkgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJtaWdyYXRlX3BhZ2VzIgl9LCAvKiA2MjUwICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCX0sIC8qIDYyNTEgKi8KKwl7IDMsCVREfFRGLAlzeXNfbWtkaXJhdCwJCSJta2RpcmF0Igl9LCAvKiA2MjUyICovCisJeyA0LAlURHxURiwJc3lzX21rbm9kYXQsCQkibWtub2RhdCIJfSwgLyogNjI1MyAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJfSwgLyogNjI1NCAqLworCXsgMywJVER8VEYsCXN5c19mdXRpbWVzYXQsCQkiZnV0aW1lc2F0Igl9LCAvKiA2MjU1ICovCisJeyA0LAlURHxURiwJc3lzX25ld2ZzdGF0YXQsCQkibmV3ZnN0YXRhdCIJfSwgLyogNjI1NiAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJfSwgLyogNjI1NyAqLworCXsgNCwJVER8VEYsCXN5c19yZW5hbWVhdCwJCSJyZW5hbWVhdCIJfSwgLyogNjI1OCAqLworCXsgNSwJVER8VEYsCXN5c19saW5rYXQsCQkibGlua2F0Igl9LCAvKiA2MjU5ICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCX0sIC8qIDYyNjAgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVhZGxpbmthdCwJCSJyZWFkbGlua2F0Igl9LCAvKiA2MjYxICovCisJeyAzLAlURHxURiwJc3lzX2ZjaG1vZGF0LAkJImZjaG1vZGF0Igl9LCAvKiA2MjYyICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCX0sIC8qIDYyNjMgKi8KKwl7IDYsCVRELAlzeXNfcHNlbGVjdDYsCQkicHNlbGVjdDYiCX0sIC8qIDYyNjQgKi8KKwl7IDUsCVRELAlzeXNfcHBvbGwsCQkicHBvbGwiCQl9LCAvKiA2MjY1ICovCisJeyAxLAlUUCwJc3lzX3Vuc2hhcmUsCQkidW5zaGFyZSIJfSwgLyogNjI2NiAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJzcGxpY2UiCX0sIC8qIDYyNjcgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkic3luY19maWxlX3JhbmdlIiB9LCAvKiA2MjY4ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInRlZSIJCX0sIC8qIDYyNjkgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidm1zcGxpY2UiCX0sIC8qIDYyNzAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJtb3ZlX3BhZ2VzIgl9LCAvKiA2MjcxICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0X3JvYnVzdF9saXN0IiB9LCAvKiA2MjcyICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0X3JvYnVzdF9saXN0IiB9LCAvKiA2MjczICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V4ZWNfbG9hZCIJfSwgLyogNjI3NCAqLworCXsgMywJMCwJc3lzX2dldGNwdSwJCSJnZXRjcHUiCX0sIC8qIDYyNzUgKi8KKwl7IDUsCVRELAlzeXNfZXBvbGxfcHdhaXQsCSJlcG9sbF9wd2FpdCIJfSwgLyogNjI3NiAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19zZXQiCX0sIC8qIDYyNzcgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJpb3ByaW9fZ2V0Igl9LCAvKiA2Mjc4ICovCisJeyA0LAlURHxURiwJc3lzX3V0aW1lbnNhdCwJCSJ1dGltZW5zYXQiCX0sIC8qIDYyNzkgKi8KKwl7IDMsCVREfFRTLAlzeXNfc2lnbmFsZmQsCQkic2lnbmFsZmQiCX0sIC8qIDYyODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjI4MSIJfSwgLyogNjI4MSAqLworCXsgMSwJVEQsCXN5c19ldmVudGZkLAkJImV2ZW50ZmQiCX0sIC8qIDYyODIgKi8KKwl7IDYsCVRELAlzeXNfZmFsbG9jYXRlLAkJImZhbGxvY2F0ZSIJfSwgLyogNjI4MyAqLworCXsgMiwJVEQsCXN5c190aW1lcmZkX2NyZWF0ZSwJInRpbWVyZmRfY3JlYXRlIiB9LCAvKiA2Mjg0ICovCisJeyAyLAlURCwJc3lzX3RpbWVyZmRfZ2V0dGltZSwJInRpbWVyZmRfZ2V0dGltZSIgfSwgLyogNjI4NSAqLworCXsgNCwJVEQsCXN5c190aW1lcmZkX3NldHRpbWUsCSJ0aW1lcmZkX3NldHRpbWUiIH0sIC8qIDYyODYgKi8KKwl7IDQsCVREfFRTLAlzeXNfc2lnbmFsZmQ0LAkJInNpZ25hbGZkNCIJfSwgLyogNjI4NyAqLworCXsgMiwJVEQsCXN5c19ldmVudGZkMiwJCSJldmVudGZkMiIJfSwgLyogNjI4OCAqLworCXsgMSwJVEQsCXN5c19lcG9sbF9jcmVhdGUxLAkiZXBvbGxfY3JlYXRlMSIJfSwgLyogNjI4OSAqLworCXsgMywJVEQsCXN5c19kdXAzLAkJImR1cDMiCQl9LCAvKiA2MjkwICovCisJeyAyLAlURCwJc3lzX3BpcGUyLAkJInBpcGUyIgkJfSwgLyogNjI5MSAqLworCXsgMSwJVEQsCXN5c19pbm90aWZ5X2luaXQxLAkiaW5vdGlmeV9pbml0MSIJfSwgLyogNjI5MiAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJwcmVhZHYiCX0sIC8qIDYyOTMgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicHdyaXRldiIJfSwgLyogNjI5NCAqLworCXsgNCwJVFB8VFMsCXByaW50YXJncywJCSJydF90Z3NpZ3F1ZXVlaW5mbyIgfSwgLyogNjI5NSAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJwZXJmX2V2ZW50X29wZW4iIH0sIC8qIDYyOTYgKi8KKwl7IDQsCVROLAlzeXNfYWNjZXB0NCwJCSJhY2NlcHQ0Igl9LCAvKiA2Mjk3ICovCisJeyA1LAlUTiwJc3lzX3JlY3ZtbXNnLAkJInJlY3ZtbXNnIgl9LCAvKiA2Mjk4ICovCisJeyAzLAlURCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiA2Mjk5ICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJImZhbm90aWZ5X2luaXQiCX0sIC8qIDYzMDAgKi8KKwl7IDUsCVREfFRGLAlwcmludGFyZ3MsCQkiZmFub3RpZnlfbWFyayIJfSwgLyogNjMwMSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJInBybGltaXQ2NCIJfSwgLyogNjMwMiAqLworCisjZWxzZQorCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9yZWFkIgkJfSwgLyogNjAwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl93cml0ZSIJCX0sIC8qIDYwMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfb3BlbiIJCX0sIC8qIDYwMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfY2xvc2UiCQl9LCAvKiA2MDAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3N0YXQiCQl9LCAvKiA2MDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2ZzdGF0IgkJfSwgLyogNjAwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9sc3RhdCIJCX0sIC8qIDYwMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcG9sbCIJCX0sIC8qIDYwMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbHNlZWsiCQl9LCAvKiA2MDA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21tYXAiCQl9LCAvKiA2MDA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21wcm90ZWN0IgkJfSwgLyogNjAxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9tdW5tYXAiCQl9LCAvKiA2MDExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2JyayIJCX0sIC8qIDYwMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcnRfc2lnYWN0aW9uIgl9LCAvKiA2MDEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3J0X3NpZ3Byb2NtYXNrIgl9LCAvKiA2MDE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2lvY3RsIgkJfSwgLyogNjAxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9wcmVhZCIJCX0sIC8qIDYwMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcHdyaXRlIgkJfSwgLyogNjAxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9yZWFkdiIJCX0sIC8qIDYwMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfd3JpdGV2IgkJfSwgLyogNjAxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9hY2Nlc3MiCQl9LCAvKiA2MDIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3BpcGUiCQl9LCAvKiA2MDIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX19uZXdzZWxlY3QiCX0sIC8qIDYwMjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2NoZWRfeWllbGQiCX0sIC8qIDYwMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbXJlbWFwIgkJfSwgLyogNjAyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9tc3luYyIJCX0sIC8qIDYwMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbWluY29yZSIJCX0sIC8qIDYwMjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbWFkdmlzZSIJCX0sIC8qIDYwMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2htZ2V0IgkJfSwgLyogNjAyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zaG1nYXQiCQl9LCAvKiA2MDI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NobWN0bCIJCX0sIC8qIDYwMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZHVwIgkJfSwgLyogNjAzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9kdXAyIgkJfSwgLyogNjAzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9wYXVzZSIJCX0sIC8qIDYwMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbmFub3NsZWVwIgkJfSwgLyogNjAzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRpdGltZXIiCQl9LCAvKiA2MDM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldGl0aW1lciIJCX0sIC8qIDYwMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfYWxhcm0iCQl9LCAvKiA2MDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHBpZCIJCX0sIC8qIDYwMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2VuZGZpbGUiCQl9LCAvKiA2MDM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NvY2tldGNhbGwiCX0sIC8qIDYwNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfY29ubmVjdCIJCX0sIC8qIDYwNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfYWNjZXB0IgkJfSwgLyogNjA0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZW5kdG8iCQl9LCAvKiA2MDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3JlY3Zmcm9tIgkJfSwgLyogNjA0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZW5kbXNnIgkJfSwgLyogNjA0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9yZWN2bXNnIgkJfSwgLyogNjA0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zaHV0ZG93biIJCX0sIC8qIDYwNDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfYmluZCIJCX0sIC8qIDYwNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbGlzdGVuIgkJfSwgLyogNjA0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRzb2NrbmFtZSIJfSwgLyogNjA1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRwZWVybmFtZSIJfSwgLyogNjA1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zb2NrZXRwYWlyIgl9LCAvKiA2MDUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldHNvY2tvcHQiCX0sIC8qIDYwNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZ2V0c29ja29wdCIJfSwgLyogNjA1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9jbG9uZSIJCX0sIC8qIDYwNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZm9yayIJCX0sIC8qIDYwNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZXhlY3ZlIgkJfSwgLyogNjA1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9leGl0IgkJfSwgLyogNjA1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl93YWl0NCIJCX0sIC8qIDYwNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfa2lsbCIJCX0sIC8qIDYwNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfdW5hbWUiCQl9LCAvKiA2MDYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NlbWdldCIJCX0sIC8qIDYwNjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2Vtb3AiCQl9LCAvKiA2MDYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NlbWN0bCIJCX0sIC8qIDYwNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2htZHQiCQl9LCAvKiA2MDY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21zZ2dldCIJCX0sIC8qIDYwNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbXNnc25kIgkJfSwgLyogNjA2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9tc2dyY3YiCQl9LCAvKiA2MDY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21zZ2N0bCIJCX0sIC8qIDYwNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZmNudGwiCQl9LCAvKiA2MDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2Zsb2NrIgkJfSwgLyogNjA3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9mc3luYyIJCX0sIC8qIDYwNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZmRhdGFzeW5jIgkJfSwgLyogNjA3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl90cnVuY2F0ZSIJCX0sIC8qIDYwNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZnRydW5jYXRlIgkJfSwgLyogNjA3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRkZW50cyIJCX0sIC8qIDYwNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZ2V0Y3dkIgkJfSwgLyogNjA3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9jaGRpciIJCX0sIC8qIDYwNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZmNoZGlyIgkJfSwgLyogNjA3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9yZW5hbWUiCQl9LCAvKiA2MDgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21rZGlyIgkJfSwgLyogNjA4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9ybWRpciIJCX0sIC8qIDYwODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfY3JlYXQiCQl9LCAvKiA2MDgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2xpbmsiCQl9LCAvKiA2MDg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3VubGluayIJCX0sIC8qIDYwODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc3ltbGluayIJCX0sIC8qIDYwODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcmVhZGxpbmsiCQl9LCAvKiA2MDg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2NobW9kIgkJfSwgLyogNjA4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9mY2htb2QiCQl9LCAvKiA2MDg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2Nob3duIgkJfSwgLyogNjA5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9mY2hvd24iCQl9LCAvKiA2MDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2xjaG93biIJCX0sIC8qIDYwOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfdW1hc2siCQl9LCAvKiA2MDkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHRpbWVvZmRheSIJfSwgLyogNjA5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRybGltaXQiCQl9LCAvKiA2MDk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHJ1c2FnZSIJCX0sIC8qIDYwOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc3lzaW5mbyIJCX0sIC8qIDYwOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfdGltZXMiCQl9LCAvKiA2MDk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3B0cmFjZSIJCX0sIC8qIDYwOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZ2V0dWlkIgkJfSwgLyogNjEwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zeXNsb2ciCQl9LCAvKiA2MTAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldGdpZCIJCX0sIC8qIDYxMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2V0dWlkIgkJfSwgLyogNjEwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXRnaWQiCQl9LCAvKiA2MTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldGV1aWQiCQl9LCAvKiA2MTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldGVnaWQiCQl9LCAvKiA2MTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldHBnaWQiCQl9LCAvKiA2MTA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHBwaWQiCQl9LCAvKiA2MTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHBncnAiCQl9LCAvKiA2MTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldHNpZCIJCX0sIC8qIDYxMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2V0cmV1aWQiCQl9LCAvKiA2MTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldHJlZ2lkIgkJfSwgLyogNjExMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRncm91cHMiCQl9LCAvKiA2MTEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldGdyb3VwcyIJCX0sIC8qIDYxMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2V0cmVzdWlkIgkJfSwgLyogNjExNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRyZXN1aWQiCQl9LCAvKiA2MTE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldHJlc2dpZCIJCX0sIC8qIDYxMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZ2V0cmVzZ2lkIgkJfSwgLyogNjExOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRwZ2lkIgkJfSwgLyogNjExOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXRmc3VpZCIJCX0sIC8qIDYxMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2V0ZnNnaWQiCQl9LCAvKiA2MTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHNpZCIJCX0sIC8qIDYxMjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfY2FwZ2V0IgkJfSwgLyogNjEyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9jYXBzZXQiCQl9LCAvKiA2MTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3J0X3NpZ3BlbmRpbmciCX0sIC8qIDYxMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcnRfc2lndGltZWR3YWl0Igl9LCAvKiA2MTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3J0X3NpZ3F1ZXVlaW5mbyIJfSwgLyogNjEyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9ydF9zaWd1c3BlbmQiCX0sIC8qIDYxMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2lnYWx0c3RhdGNrIgl9LCAvKiA2MTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3V0aW1lIgkJfSwgLyogNjEzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9ta25vZCIJCX0sIC8qIDYxMzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcGVyc29uYWxpdHkiCX0sIC8qIDYxMzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfdXN0YXQiCQl9LCAvKiA2MTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3N0YXRmcyIJCX0sIC8qIDYxMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZnN0YXRmcyIJCX0sIC8qIDYxMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc3lzZnMiCQl9LCAvKiA2MTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHByaW9yaXR5Igl9LCAvKiA2MTM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldHByaW9yaXR5Igl9LCAvKiA2MTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX3NldHBhcmFtIgl9LCAvKiA2MTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX2dldHBhcmFtIgl9LCAvKiA2MTQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX3NldHNjaGVkdWxlciJ9LCAvKiA2MTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiA2MTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogNjE0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDYxNDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDYxNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbWxvY2siCQl9LCAvKiA2MTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX211bmxvY2siCQl9LCAvKiA2MTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21sb2NrYWxsIgkJfSwgLyogNjE0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9tdW5sb2NrYWxsIgl9LCAvKiA2MTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3ZoYW5ndXAiCQl9LCAvKiA2MTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3Bpdm90X3Jvb3QiCX0sIC8qIDYxNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfX3N5c2N0bCIJCX0sIC8qIDYxNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcHJjdGwiCQl9LCAvKiA2MTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2FkanRpbWV4IgkJfSwgLyogNjE1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXRybGltaXQiCQl9LCAvKiA2MTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2Nocm9vdCIJCX0sIC8qIDYxNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc3luYyIJCX0sIC8qIDYxNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfYWNjdCIJCX0sIC8qIDYxNTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc2V0dGltZW9mZGF5Igl9LCAvKiA2MTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX21vdW50IgkJfSwgLyogNjE2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl91bW91bnQiCQl9LCAvKiA2MTYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3N3YXBvbiIJCX0sIC8qIDYxNjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfc3dhcG9mZiIJCX0sIC8qIDYxNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcmVib290IgkJfSwgLyogNjE2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXRob3N0bmFtZSIJfSwgLyogNjE2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXRkb21haW5uYW1lIgl9LCAvKiA2MTY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2NyZWF0ZV9tb2R1bGUiCX0sIC8qIDYxNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfaW5pdF9tb2R1bGUiCX0sIC8qIDYxNjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZGVsZXRlX21vZHVsZSIJfSwgLyogNjE2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRfa2VybmVsX3N5bXMiCX0sIC8qIDYxNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcXVlcnlfbW9kdWxlIgl9LCAvKiA2MTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3F1b3RhY3RsIgkJfSwgLyogNjE3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9uZnNzZXJ2Y3RsIgl9LCAvKiA2MTczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHBtc2ciCQl9LCAvKiA2MTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3B1dHBtc2ciCQl9LCAvKiA2MTc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2Fmc19zeXNjYWxsIgl9LCAvKiA2MTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3Jlc2VydmVkMTc3Igl9LCAvKiA2MTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHRpZCIJCX0sIC8qIDYxNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcmVhZGFoZWFkIgkJfSwgLyogNjE3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXR4YXR0ciIJCX0sIC8qIDYxODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbHNldHhhdHRyIgkJfSwgLyogNjE4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9mc2V0eGF0dHIiCQl9LCAvKiA2MTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2dldHhhdHRyIgkJfSwgLyogNjE4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9sZ2V0eGF0dHIiCQl9LCAvKiA2MTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2ZnZXR4YXR0ciIJCX0sIC8qIDYxODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbGlzdHhhdHRyIgkJfSwgLyogNjE4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9sbGlzdHhhdHRyIgl9LCAvKiA2MTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2ZsaXN0eGF0dHIiCX0sIC8qIDYxODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcmVtb3ZleGF0dHIiCX0sIC8qIDYxODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbHJlbW92ZXhhdHRyIgl9LCAvKiA2MTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2ZyZW1vdmV4YXR0ciIJfSwgLyogNjE5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl90a2lsbCIJCX0sIC8qIDYxOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfdGltZSIJCX0sIC8qIDYxOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZnV0ZXgiCQl9LCAvKiA2MTk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX3NldGFmZmluaXR5Igl9LCAvKiA2MTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NjaGVkX2dldGFmZmluaXR5Igl9LCAvKiA2MTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2NhY2hlZmx1c2giCX0sIC8qIDYxOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfY2FjaGVjdGwiCQl9LCAvKiA2MTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3N5c21pcHMiCQl9LCAvKiA2MTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2lvX3NldHVwIgkJfSwgLyogNjIwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9pb19kZXN0cm95Igl9LCAvKiA2MjAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2lvX2dldGV2ZW50cyIJfSwgLyogNjIwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9pb19zdWJtaXQiCQl9LCAvKiA2MjAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2lvX2NhbmNlbCIJCX0sIC8qIDYyMDQgKi8KKwl7IDEsCVRQLAlwcmludGFyZ3MsCQkibjMyX2V4aXRfZ3JvdXAiCX0sIC8qIDYyMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfbG9va3VwX2Rjb29raWUiCX0sIC8qIDYyMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZXBvbGxfY3JlYXRlIgl9LCAvKiA2MjA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX2Vwb2xsX2N0bCIJCX0sIC8qIDYyMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZXBvbGxfd2FpdCIJfSwgLyogNjIwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9yZW1hcF9maWxlX3BhZ2VzIgl9LCAvKiA2MjEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3J0X3NpZ3JldHVybiIJfSwgLyogNjIxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9mY250bDY0IgkJfSwgLyogNjIxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZXRfdGlkX2FkZHJlc3MiCX0sIC8qIDYyMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfcmVzdGFydF9zeXNjYWxsIgl9LCAvKiA2MjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX3NlbXRpbWVkb3AiCX0sIC8qIDYyMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZmFkdmlzZTY0IgkJfSwgLyogNjIxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zdGF0ZnM2NCIJCX0sIC8qIDYyMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfZnN0YXRmczY0IgkJfSwgLyogNjIxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9zZW5kZmlsZTY0Igl9LCAvKiA2MjE5ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibjMyX3RpbWVyX2NyZWF0ZSIJfSwgLyogNjIyMCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm4zMl90aW1lcl9zZXR0aW1lIgl9LCAvKiA2MjIxICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibjMyX3RpbWVyX2dldHRpbWUiCX0sIC8qIDYyMjIgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJuMzJfdGltZXJfZ2V0b3ZlcnJ1biIJfSwgLyogNjIyMyAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm4zMl90aW1lcl9kZWxldGUiCX0sIC8qIDYyMjQgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJuMzJfY2xvY2tfc2V0dGltZSIJfSwgLyogNjIyNSAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm4zMl9jbG9ja19nZXR0aW1lIgl9LCAvKiA2MjI2ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibjMyX2Nsb2NrX2dldHJlcyIJfSwgLyogNjIyNyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9jbG9ja19uYW5vc2xlZXAiCX0sIC8qIDYyMjggKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJuMzJfdGdraWxsIgkJfSwgLyogNjIyOSAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm4zMl91dGltZXMiCQl9LCAvKiA2MjMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX1NZU182MjMxIgkJfSwgLyogNjIzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9TWVNfNjIzMiIJCX0sIC8qIDYyMzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfU1lTXzYyMzMiCQl9LCAvKiA2MjMzICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibjMyX21xX29wZW4iCQl9LCAvKiA2MjM0ICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkibjMyX21xX3VubGluayIJCX0sIC8qIDYyMzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJuMzJfbXFfdGltZWRzZW5kIgl9LCAvKiA2MjM2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibjMyX21xX3RpbWVkcmVjZWl2ZSIJfSwgLyogNjIzNyAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm4zMl9tcV9ub3RpZnkiCQl9LCAvKiA2MjM4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibjMyX21xX2dldHNldGF0dHIiCX0sIC8qIDYyMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJuMzJfU1lTXzYyNDAiCQl9LCAvKiA2MjQwICovCisJeyA1LAlUUCwJcHJpbnRhcmdzLAkJIm4zMl93YWl0aWQiCQl9LCAvKiA2MjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibjMyX1NZU182MjQyIgkJfSwgLyogNjI0MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm4zMl9hZGRfa2V5IgkJfSwgLyogNjI0MyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9yZXF1ZXN0X2tleSIJfSwgLyogNjI0NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm4zMl9rZXljdGwiCQl9LCAvKiA2MjQ1ICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldF90aHJlYWRfYXJlYSIJfSwgLyogNjI0NiAqLworCXsgMCwJVEQsCXByaW50YXJncywJCSJuMzJfaW5vdGlmeV9pbml0Igl9LCAvKiA2MjQ3ICovCisJeyAzLAlURCwJcHJpbnRhcmdzLAkJIm4zMl9pbm90aWZ5X2FkZF93YXRjaCIgfSwgLyogNjI0OCAqLworCXsgMiwJVEQsCXByaW50YXJncywJCSJuMzJfaW5vdGlmeV9ybV93YXRjaCIJfSwgLyogNjI0OSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9taWdyYXRlX3BhZ2VzIgl9LCAvKiA2MjUwICovCisJeyA0LAlURHxURiwJcHJpbnRhcmdzLAkJIm4zMl9vcGVuYXQiCQl9LCAvKiA2MjUxICovCisJeyAzLAlURHxURiwJcHJpbnRhcmdzLAkJIm4zMl9ta2RpcmF0IgkJfSwgLyogNjI1MiAqLworCXsgNCwJVER8VEYsCXByaW50YXJncywJCSJuMzJfbWtub2RhdCIJCX0sIC8qIDYyNTMgKi8KKwl7IDUsCVREfFRGLAlwcmludGFyZ3MsCQkibjMyX2ZjaG93bmF0IgkJfSwgLyogNjI1NCAqLworCXsgMywJVER8VEYsCXByaW50YXJncywJCSJuMzJfZnV0aW1lc2F0IgkJfSwgLyogNjI1NSAqLworCXsgNCwJVER8VEYsCXByaW50YXJncywJCSJuMzJfbmV3ZnN0YXRhdCIJfSwgLyogNjI1NiAqLworCXsgMywJVER8VEYsCXByaW50YXJncywJCSJuMzJfdW5saW5rYXQiCQl9LCAvKiA2MjU3ICovCisJeyA0LAlURHxURiwJcHJpbnRhcmdzLAkJIm4zMl9yZW5hbWVhdCIJCX0sIC8qIDYyNTggKi8KKwl7IDUsCVREfFRGLAlwcmludGFyZ3MsCQkibjMyX2xpbmthdCIJCX0sIC8qIDYyNTkgKi8KKwl7IDMsCVREfFRGLAlwcmludGFyZ3MsCQkibjMyX3N5bWxpbmthdCIJCX0sIC8qIDYyNjAgKi8KKwl7IDQsCVREfFRGLAlwcmludGFyZ3MsCQkibjMyX3JlYWRsaW5rYXQiCX0sIC8qIDYyNjEgKi8KKwl7IDMsCVREfFRGLAlwcmludGFyZ3MsCQkibjMyX2ZjaG1vZGF0IgkJfSwgLyogNjI2MiAqLworCXsgMywJVER8VEYsCXByaW50YXJncywJCSJuMzJfZmFjY2Vzc2F0IgkJfSwgLyogNjI2MyAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJuMzJfcHNlbGVjdDYiCQl9LCAvKiA2MjY0ICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJIm4zMl9wcG9sbCIJCX0sIC8qIDYyNjUgKi8KKwl7IDEsCVRQLAlwcmludGFyZ3MsCQkibjMyX3Vuc2hhcmUiCQl9LCAvKiA2MjY2ICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJIm4zMl9zcGxpY2UiCQl9LCAvKiA2MjY3ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJIm4zMl9zeW5jX2ZpbGVfcmFuZ2UiCX0sIC8qIDYyNjggKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkibjMyX3RlZSIJCX0sIC8qIDYyNjkgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkibjMyX3Ztc3BsaWNlIgkJfSwgLyogNjI3MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIm4zMl9tb3ZlX3BhZ2VzIgl9LCAvKiA2MjcxICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibjMyX3NldF9yb2J1c3RfbGlzdCIJfSwgLyogNjI3MiAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRfcm9idXN0X2xpc3QiCX0sIC8qIDYyNzMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJuMzJfa2V4ZWNfbG9hZCIJfSwgLyogNjI3NCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm4zMl9nZXRjcHUiCQl9LCAvKiA2Mjc1ICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJIm4zMl9lcG9sbF9wd2FpdCIJfSwgLyogNjI3NiAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm4zMl9pb3ByaW9fc2V0Igl9LCAvKiA2Mjc3ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkibjMyX2lvcHJpb19nZXQiCX0sIC8qIDYyNzggKi8KKwl7IDQsCVREfFRGLAlwcmludGFyZ3MsCQkibjMyX3V0aW1lbnNhdCIJCX0sIC8qIDYyNzkgKi8KKwl7IDMsCVREfFRTLAlwcmludGFyZ3MsCQkibjMyX3NpZ25hbGZkIgkJfSwgLyogNjI4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm4zMl9TWVNfNjI4MSIJCX0sIC8qIDYyODEgKi8KKwl7IDEsCVRELAlwcmludGFyZ3MsCQkibjMyX2V2ZW50ZmQiCQl9LCAvKiA2MjgyICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJIm4zMl9mYWxsb2NhdGUiCQl9LCAvKiA2MjgzICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJIm4zMl90aW1lcmZkX2NyZWF0ZSIJfSwgLyogNjI4NCAqLworCXsgMiwJVEQsCXByaW50YXJncywJCSJuMzJfdGltZXJmZF9nZXR0aW1lIgl9LCAvKiA2Mjg1ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJIm4zMl90aW1lcmZkX3NldHRpbWUiCX0sIC8qIDYyODYgKi8KKwl7IDQsCVREfFRTLAlwcmludGFyZ3MsCQkibjMyX3NpZ25hbGZkNCIJCX0sIC8qIDYyODcgKi8KKwl7IDIsCVRELAlwcmludGFyZ3MsCQkibjMyX2V2ZW50ZmQyIgkJfSwgLyogNjI4OCAqLworCXsgMSwJVEQsCXByaW50YXJncywJCSJuMzJfZXBvbGxfY3JlYXRlMSIJfSwgLyogNjI4OSAqLworCXsgMywJVEQsCXByaW50YXJncywJCSJuMzJfZHVwMyIJCX0sIC8qIDYyOTAgKi8KKwl7IDIsCVRELAlwcmludGFyZ3MsCQkibjMyX3BpcGUyIgkJfSwgLyogNjI5MSAqLworCXsgMSwJVEQsCXByaW50YXJncywJCSJuMzJfaW5vdGlmeV9pbml0MSIJfSwgLyogNjI5MiAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJuMzJfcHJlYWR2IgkJfSwgLyogNjI5MyAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJuMzJfcHdyaXRldiIJCX0sIC8qIDYyOTQgKi8KKwl7IDQsCVRQfFRTLAlwcmludGFyZ3MsCQkibjMyX3J0X3Rnc2lncXVldWVpbmZvIiB9LCAvKiA2Mjk1ICovCisJeyA1LAlURCwJcHJpbnRhcmdzLAkJIm4zMl9wZXJmX2V2ZW50X29wZW4iCX0sIC8qIDYyOTYgKi8KKwl7IDQsCVROLAlwcmludGFyZ3MsCQkibjMyX2FjY2VwdDQiCQl9LCAvKiA2Mjk3ICovCisJeyA1LAlUTiwJcHJpbnRhcmdzLAkJIm4zMl9yZWN2bW1zZyIJCX0sIC8qIDYyOTggKi8KKwl7IDMsCVRELAlwcmludGFyZ3MsCQkibjMyX2dldGRlbnRzIgkJfSwgLyogNjI5OSAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm4zMl9mYW5vdGlmeV9pbml0Igl9LCAvKiA2MzAwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibjMyX2Zhbm90aWZ5X21hcmsiCX0sIC8qIDYzMDEgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJuMzJfcHJsaW1pdDY0IgkJfSwgLyogNjMwMiAqLworI2VuZGlmCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMDAiCX0sIC8qIDYzMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMwMSIJfSwgLyogNjMwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzAyIgl9LCAvKiA2MzAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMDMiCX0sIC8qIDYzMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMwNCIJfSwgLyogNjMwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzA1Igl9LCAvKiA2MzA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMDYiCX0sIC8qIDYzMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMwNyIJfSwgLyogNjMwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzA4Igl9LCAvKiA2MzA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMDkiCX0sIC8qIDYzMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMxMCIJfSwgLyogNjMxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzExIgl9LCAvKiA2MzExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMTIiCX0sIC8qIDYzMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMxMyIJfSwgLyogNjMxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzE0Igl9LCAvKiA2MzE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMTUiCX0sIC8qIDYzMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMxNiIJfSwgLyogNjMxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzE3Igl9LCAvKiA2MzE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMTgiCX0sIC8qIDYzMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMxOSIJfSwgLyogNjMxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzIwIgl9LCAvKiA2MzIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMjEiCX0sIC8qIDYzMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMyMiIJfSwgLyogNjMyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzIzIgl9LCAvKiA2MzIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMjQiCX0sIC8qIDYzMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMyNSIJfSwgLyogNjMyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzI2Igl9LCAvKiA2MzI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMjciCX0sIC8qIDYzMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMyOCIJfSwgLyogNjMyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzI5Igl9LCAvKiA2MzI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMzAiCX0sIC8qIDYzMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMzMSIJfSwgLyogNjMzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzMyIgl9LCAvKiA2MzMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMzMiCX0sIC8qIDYzMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMzNCIJfSwgLyogNjMzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzM1Igl9LCAvKiA2MzM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMzYiCX0sIC8qIDYzMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMzNyIJfSwgLyogNjMzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzM4Igl9LCAvKiA2MzM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMzkiCX0sIC8qIDYzMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM0MCIJfSwgLyogNjM0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzQxIgl9LCAvKiA2MzQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNDIiCX0sIC8qIDYzNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM0MyIJfSwgLyogNjM0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzQ0Igl9LCAvKiA2MzQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNDUiCX0sIC8qIDYzNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM0NiIJfSwgLyogNjM0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzQ3Igl9LCAvKiA2MzQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNDgiCX0sIC8qIDYzNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM0OSIJfSwgLyogNjM0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzUwIgl9LCAvKiA2MzUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNTEiCX0sIC8qIDYzNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM1MiIJfSwgLyogNjM1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzUzIgl9LCAvKiA2MzUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNTQiCX0sIC8qIDYzNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM1NSIJfSwgLyogNjM1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzU2Igl9LCAvKiA2MzU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNTciCX0sIC8qIDYzNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM1OCIJfSwgLyogNjM1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzU5Igl9LCAvKiA2MzU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNjAiCX0sIC8qIDYzNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM2MSIJfSwgLyogNjM2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzYyIgl9LCAvKiA2MzYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNjMiCX0sIC8qIDYzNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM2NCIJfSwgLyogNjM2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzY1Igl9LCAvKiA2MzY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNjYiCX0sIC8qIDYzNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM2NyIJfSwgLyogNjM2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzY4Igl9LCAvKiA2MzY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNjkiCX0sIC8qIDYzNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM3MCIJfSwgLyogNjM3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzcxIgl9LCAvKiA2MzcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNzIiCX0sIC8qIDYzNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM3MyIJfSwgLyogNjM3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Mzc0Igl9LCAvKiA2Mzc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNzUiCX0sIC8qIDYzNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM3NiIJfSwgLyogNjM3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Mzc3Igl9LCAvKiA2Mzc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNzgiCX0sIC8qIDYzNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM3OSIJfSwgLyogNjM3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzgwIgl9LCAvKiA2MzgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzODEiCX0sIC8qIDYzODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM4MiIJfSwgLyogNjM4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzgzIgl9LCAvKiA2MzgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzODQiCX0sIC8qIDYzODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM4NSIJfSwgLyogNjM4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Mzg2Igl9LCAvKiA2Mzg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzODciCX0sIC8qIDYzODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM4OCIJfSwgLyogNjM4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Mzg5Igl9LCAvKiA2Mzg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOTAiCX0sIC8qIDYzOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM5MSIJfSwgLyogNjM5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzkyIgl9LCAvKiA2MzkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOTMiCX0sIC8qIDYzOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM5NCIJfSwgLyogNjM5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Mzk1Igl9LCAvKiA2Mzk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOTYiCX0sIC8qIDYzOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM5NyIJfSwgLyogNjM5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Mzk4Igl9LCAvKiA2Mzk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOTkiCX0sIC8qIDYzOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQwMCIJfSwgLyogNjQwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDAxIgl9LCAvKiA2NDAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MDIiCX0sIC8qIDY0MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQwMyIJfSwgLyogNjQwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDA0Igl9LCAvKiA2NDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MDUiCX0sIC8qIDY0MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQwNiIJfSwgLyogNjQwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDA3Igl9LCAvKiA2NDA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MDgiCX0sIC8qIDY0MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQwOSIJfSwgLyogNjQwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDEwIgl9LCAvKiA2NDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MTEiCX0sIC8qIDY0MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQxMiIJfSwgLyogNjQxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDEzIgl9LCAvKiA2NDEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MTQiCX0sIC8qIDY0MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQxNSIJfSwgLyogNjQxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDE2Igl9LCAvKiA2NDE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MTciCX0sIC8qIDY0MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQxOCIJfSwgLyogNjQxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDE5Igl9LCAvKiA2NDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MjAiCX0sIC8qIDY0MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQyMSIJfSwgLyogNjQyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDIyIgl9LCAvKiA2NDIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MjMiCX0sIC8qIDY0MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQyNCIJfSwgLyogNjQyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDI1Igl9LCAvKiA2NDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MjYiCX0sIC8qIDY0MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQyNyIJfSwgLyogNjQyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDI4Igl9LCAvKiA2NDI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MjkiCX0sIC8qIDY0MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQzMCIJfSwgLyogNjQzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDMxIgl9LCAvKiA2NDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MzIiCX0sIC8qIDY0MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQzMyIJfSwgLyogNjQzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDM0Igl9LCAvKiA2NDM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MzUiCX0sIC8qIDY0MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQzNiIJfSwgLyogNjQzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDM3Igl9LCAvKiA2NDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MzgiCX0sIC8qIDY0MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQzOSIJfSwgLyogNjQzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDQwIgl9LCAvKiA2NDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NDEiCX0sIC8qIDY0NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ0MiIJfSwgLyogNjQ0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDQzIgl9LCAvKiA2NDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NDQiCX0sIC8qIDY0NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ0NSIJfSwgLyogNjQ0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDQ2Igl9LCAvKiA2NDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NDciCX0sIC8qIDY0NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ0OCIJfSwgLyogNjQ0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDQ5Igl9LCAvKiA2NDQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NTAiCX0sIC8qIDY0NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ1MSIJfSwgLyogNjQ1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDUyIgl9LCAvKiA2NDUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NTMiCX0sIC8qIDY0NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ1NCIJfSwgLyogNjQ1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDU1Igl9LCAvKiA2NDU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NTYiCX0sIC8qIDY0NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ1NyIJfSwgLyogNjQ1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDU4Igl9LCAvKiA2NDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NTkiCX0sIC8qIDY0NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ2MCIJfSwgLyogNjQ2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDYxIgl9LCAvKiA2NDYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NjIiCX0sIC8qIDY0NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ2MyIJfSwgLyogNjQ2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDY0Igl9LCAvKiA2NDY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NjUiCX0sIC8qIDY0NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ2NiIJfSwgLyogNjQ2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDY3Igl9LCAvKiA2NDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NjgiCX0sIC8qIDY0NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ2OSIJfSwgLyogNjQ2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDcwIgl9LCAvKiA2NDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NzEiCX0sIC8qIDY0NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ3MiIJfSwgLyogNjQ3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDczIgl9LCAvKiA2NDczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NzQiCX0sIC8qIDY0NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ3NSIJfSwgLyogNjQ3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDc2Igl9LCAvKiA2NDc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NzciCX0sIC8qIDY0NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ3OCIJfSwgLyogNjQ3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDc5Igl9LCAvKiA2NDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0ODAiCX0sIC8qIDY0ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ4MSIJfSwgLyogNjQ4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDgyIgl9LCAvKiA2NDgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0ODMiCX0sIC8qIDY0ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ4NCIJfSwgLyogNjQ4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDg1Igl9LCAvKiA2NDg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0ODYiCX0sIC8qIDY0ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ4NyIJfSwgLyogNjQ4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDg4Igl9LCAvKiA2NDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0ODkiCX0sIC8qIDY0ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ5MCIJfSwgLyogNjQ5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDkxIgl9LCAvKiA2NDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0OTIiCX0sIC8qIDY0OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ5MyIJfSwgLyogNjQ5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDk0Igl9LCAvKiA2NDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0OTUiCX0sIC8qIDY0OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ5NiIJfSwgLyogNjQ5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDk3Igl9LCAvKiA2NDk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0OTgiCX0sIC8qIDY0OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ5OSIJfSwgLyogNjQ5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTAwIgl9LCAvKiA2NTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MDEiCX0sIC8qIDY1MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUwMiIJfSwgLyogNjUwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTAzIgl9LCAvKiA2NTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MDQiCX0sIC8qIDY1MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUwNSIJfSwgLyogNjUwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTA2Igl9LCAvKiA2NTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MDciCX0sIC8qIDY1MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUwOCIJfSwgLyogNjUwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTA5Igl9LCAvKiA2NTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MTAiCX0sIC8qIDY1MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUxMSIJfSwgLyogNjUxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTEyIgl9LCAvKiA2NTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MTMiCX0sIC8qIDY1MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUxNCIJfSwgLyogNjUxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTE1Igl9LCAvKiA2NTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MTYiCX0sIC8qIDY1MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUxNyIJfSwgLyogNjUxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTE4Igl9LCAvKiA2NTE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MTkiCX0sIC8qIDY1MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUyMCIJfSwgLyogNjUyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTIxIgl9LCAvKiA2NTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MjIiCX0sIC8qIDY1MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUyMyIJfSwgLyogNjUyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTI0Igl9LCAvKiA2NTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MjUiCX0sIC8qIDY1MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUyNiIJfSwgLyogNjUyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTI3Igl9LCAvKiA2NTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MjgiCX0sIC8qIDY1MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUyOSIJfSwgLyogNjUyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTMwIgl9LCAvKiA2NTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MzEiCX0sIC8qIDY1MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUzMiIJfSwgLyogNjUzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTMzIgl9LCAvKiA2NTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MzQiCX0sIC8qIDY1MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUzNSIJfSwgLyogNjUzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTM2Igl9LCAvKiA2NTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MzciCX0sIC8qIDY1MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUzOCIJfSwgLyogNjUzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTM5Igl9LCAvKiA2NTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NDAiCX0sIC8qIDY1NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU0MSIJfSwgLyogNjU0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTQyIgl9LCAvKiA2NTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NDMiCX0sIC8qIDY1NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU0NCIJfSwgLyogNjU0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTQ1Igl9LCAvKiA2NTQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NDYiCX0sIC8qIDY1NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU0NyIJfSwgLyogNjU0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTQ4Igl9LCAvKiA2NTQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NDkiCX0sIC8qIDY1NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU1MCIJfSwgLyogNjU1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTUxIgl9LCAvKiA2NTUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NTIiCX0sIC8qIDY1NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU1MyIJfSwgLyogNjU1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTU0Igl9LCAvKiA2NTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NTUiCX0sIC8qIDY1NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU1NiIJfSwgLyogNjU1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTU3Igl9LCAvKiA2NTU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NTgiCX0sIC8qIDY1NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU1OSIJfSwgLyogNjU1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTYwIgl9LCAvKiA2NTYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NjEiCX0sIC8qIDY1NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU2MiIJfSwgLyogNjU2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTYzIgl9LCAvKiA2NTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NjQiCX0sIC8qIDY1NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU2NSIJfSwgLyogNjU2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTY2Igl9LCAvKiA2NTY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NjciCX0sIC8qIDY1NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU2OCIJfSwgLyogNjU2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTY5Igl9LCAvKiA2NTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NzAiCX0sIC8qIDY1NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU3MSIJfSwgLyogNjU3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTcyIgl9LCAvKiA2NTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NzMiCX0sIC8qIDY1NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU3NCIJfSwgLyogNjU3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTc1Igl9LCAvKiA2NTc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NzYiCX0sIC8qIDY1NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU3NyIJfSwgLyogNjU3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTc4Igl9LCAvKiA2NTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NzkiCX0sIC8qIDY1NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU4MCIJfSwgLyogNjU4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTgxIgl9LCAvKiA2NTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1ODIiCX0sIC8qIDY1ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU4MyIJfSwgLyogNjU4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTg0Igl9LCAvKiA2NTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1ODUiCX0sIC8qIDY1ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU4NiIJfSwgLyogNjU4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTg3Igl9LCAvKiA2NTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1ODgiCX0sIC8qIDY1ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU4OSIJfSwgLyogNjU4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTkwIgl9LCAvKiA2NTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1OTEiCX0sIC8qIDY1OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU5MiIJfSwgLyogNjU5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTkzIgl9LCAvKiA2NTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1OTQiCX0sIC8qIDY1OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU5NSIJfSwgLyogNjU5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTk2Igl9LCAvKiA2NTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1OTciCX0sIC8qIDY1OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU5OCIJfSwgLyogNjU5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTk5Igl9LCAvKiA2NTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MDAiCX0sIC8qIDY2MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYwMSIJfSwgLyogNjYwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjAyIgl9LCAvKiA2NjAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MDMiCX0sIC8qIDY2MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYwNCIJfSwgLyogNjYwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjA1Igl9LCAvKiA2NjA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MDYiCX0sIC8qIDY2MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYwNyIJfSwgLyogNjYwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjA4Igl9LCAvKiA2NjA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MDkiCX0sIC8qIDY2MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYxMCIJfSwgLyogNjYxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjExIgl9LCAvKiA2NjExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MTIiCX0sIC8qIDY2MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYxMyIJfSwgLyogNjYxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjE0Igl9LCAvKiA2NjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MTUiCX0sIC8qIDY2MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYxNiIJfSwgLyogNjYxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjE3Igl9LCAvKiA2NjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MTgiCX0sIC8qIDY2MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYxOSIJfSwgLyogNjYxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjIwIgl9LCAvKiA2NjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MjEiCX0sIC8qIDY2MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYyMiIJfSwgLyogNjYyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjIzIgl9LCAvKiA2NjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MjQiCX0sIC8qIDY2MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYyNSIJfSwgLyogNjYyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjI2Igl9LCAvKiA2NjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MjciCX0sIC8qIDY2MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYyOCIJfSwgLyogNjYyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjI5Igl9LCAvKiA2NjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MzAiCX0sIC8qIDY2MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYzMSIJfSwgLyogNjYzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjMyIgl9LCAvKiA2NjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MzMiCX0sIC8qIDY2MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYzNCIJfSwgLyogNjYzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjM1Igl9LCAvKiA2NjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MzYiCX0sIC8qIDY2MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYzNyIJfSwgLyogNjYzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjM4Igl9LCAvKiA2NjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MzkiCX0sIC8qIDY2MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY0MCIJfSwgLyogNjY0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjQxIgl9LCAvKiA2NjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NDIiCX0sIC8qIDY2NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY0MyIJfSwgLyogNjY0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjQ0Igl9LCAvKiA2NjQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NDUiCX0sIC8qIDY2NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY0NiIJfSwgLyogNjY0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjQ3Igl9LCAvKiA2NjQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NDgiCX0sIC8qIDY2NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY0OSIJfSwgLyogNjY0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjUwIgl9LCAvKiA2NjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NTEiCX0sIC8qIDY2NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY1MiIJfSwgLyogNjY1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjUzIgl9LCAvKiA2NjUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NTQiCX0sIC8qIDY2NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY1NSIJfSwgLyogNjY1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjU2Igl9LCAvKiA2NjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NTciCX0sIC8qIDY2NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY1OCIJfSwgLyogNjY1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjU5Igl9LCAvKiA2NjU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NjAiCX0sIC8qIDY2NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY2MSIJfSwgLyogNjY2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjYyIgl9LCAvKiA2NjYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NjMiCX0sIC8qIDY2NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY2NCIJfSwgLyogNjY2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjY1Igl9LCAvKiA2NjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NjYiCX0sIC8qIDY2NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY2NyIJfSwgLyogNjY2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjY4Igl9LCAvKiA2NjY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NjkiCX0sIC8qIDY2NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY3MCIJfSwgLyogNjY3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjcxIgl9LCAvKiA2NjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NzIiCX0sIC8qIDY2NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY3MyIJfSwgLyogNjY3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Njc0Igl9LCAvKiA2Njc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NzUiCX0sIC8qIDY2NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY3NiIJfSwgLyogNjY3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Njc3Igl9LCAvKiA2Njc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NzgiCX0sIC8qIDY2NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY3OSIJfSwgLyogNjY3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjgwIgl9LCAvKiA2NjgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2ODEiCX0sIC8qIDY2ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY4MiIJfSwgLyogNjY4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjgzIgl9LCAvKiA2NjgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2ODQiCX0sIC8qIDY2ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY4NSIJfSwgLyogNjY4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Njg2Igl9LCAvKiA2Njg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2ODciCX0sIC8qIDY2ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY4OCIJfSwgLyogNjY4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Njg5Igl9LCAvKiA2Njg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OTAiCX0sIC8qIDY2OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY5MSIJfSwgLyogNjY5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjkyIgl9LCAvKiA2NjkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OTMiCX0sIC8qIDY2OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY5NCIJfSwgLyogNjY5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Njk1Igl9LCAvKiA2Njk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OTYiCX0sIC8qIDY2OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY5NyIJfSwgLyogNjY5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Njk4Igl9LCAvKiA2Njk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OTkiCX0sIC8qIDY2OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcwMCIJfSwgLyogNjcwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzAxIgl9LCAvKiA2NzAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MDIiCX0sIC8qIDY3MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcwMyIJfSwgLyogNjcwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzA0Igl9LCAvKiA2NzA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MDUiCX0sIC8qIDY3MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcwNiIJfSwgLyogNjcwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzA3Igl9LCAvKiA2NzA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MDgiCX0sIC8qIDY3MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcwOSIJfSwgLyogNjcwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzEwIgl9LCAvKiA2NzEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MTEiCX0sIC8qIDY3MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcxMiIJfSwgLyogNjcxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzEzIgl9LCAvKiA2NzEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MTQiCX0sIC8qIDY3MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcxNSIJfSwgLyogNjcxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzE2Igl9LCAvKiA2NzE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MTciCX0sIC8qIDY3MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcxOCIJfSwgLyogNjcxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzE5Igl9LCAvKiA2NzE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MjAiCX0sIC8qIDY3MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcyMSIJfSwgLyogNjcyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzIyIgl9LCAvKiA2NzIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MjMiCX0sIC8qIDY3MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcyNCIJfSwgLyogNjcyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzI1Igl9LCAvKiA2NzI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MjYiCX0sIC8qIDY3MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcyNyIJfSwgLyogNjcyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzI4Igl9LCAvKiA2NzI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MjkiCX0sIC8qIDY3MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjczMCIJfSwgLyogNjczMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzMxIgl9LCAvKiA2NzMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MzIiCX0sIC8qIDY3MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjczMyIJfSwgLyogNjczMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzM0Igl9LCAvKiA2NzM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MzUiCX0sIC8qIDY3MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjczNiIJfSwgLyogNjczNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzM3Igl9LCAvKiA2NzM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MzgiCX0sIC8qIDY3MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjczOSIJfSwgLyogNjczOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzQwIgl9LCAvKiA2NzQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NDEiCX0sIC8qIDY3NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc0MiIJfSwgLyogNjc0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzQzIgl9LCAvKiA2NzQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NDQiCX0sIC8qIDY3NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc0NSIJfSwgLyogNjc0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzQ2Igl9LCAvKiA2NzQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NDciCX0sIC8qIDY3NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc0OCIJfSwgLyogNjc0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzQ5Igl9LCAvKiA2NzQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NTAiCX0sIC8qIDY3NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc1MSIJfSwgLyogNjc1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzUyIgl9LCAvKiA2NzUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NTMiCX0sIC8qIDY3NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc1NCIJfSwgLyogNjc1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzU1Igl9LCAvKiA2NzU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NTYiCX0sIC8qIDY3NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc1NyIJfSwgLyogNjc1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzU4Igl9LCAvKiA2NzU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NTkiCX0sIC8qIDY3NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc2MCIJfSwgLyogNjc2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzYxIgl9LCAvKiA2NzYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NjIiCX0sIC8qIDY3NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc2MyIJfSwgLyogNjc2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzY0Igl9LCAvKiA2NzY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NjUiCX0sIC8qIDY3NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc2NiIJfSwgLyogNjc2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzY3Igl9LCAvKiA2NzY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NjgiCX0sIC8qIDY3NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc2OSIJfSwgLyogNjc2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzcwIgl9LCAvKiA2NzcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NzEiCX0sIC8qIDY3NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc3MiIJfSwgLyogNjc3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzczIgl9LCAvKiA2NzczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NzQiCX0sIC8qIDY3NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc3NSIJfSwgLyogNjc3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Nzc2Igl9LCAvKiA2Nzc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NzciCX0sIC8qIDY3NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc3OCIJfSwgLyogNjc3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Nzc5Igl9LCAvKiA2Nzc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3ODAiCX0sIC8qIDY3ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc4MSIJfSwgLyogNjc4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzgyIgl9LCAvKiA2NzgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3ODMiCX0sIC8qIDY3ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc4NCIJfSwgLyogNjc4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Nzg1Igl9LCAvKiA2Nzg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3ODYiCX0sIC8qIDY3ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc4NyIJfSwgLyogNjc4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Nzg4Igl9LCAvKiA2Nzg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3ODkiCX0sIC8qIDY3ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc5MCIJfSwgLyogNjc5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzkxIgl9LCAvKiA2NzkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3OTIiCX0sIC8qIDY3OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc5MyIJfSwgLyogNjc5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Nzk0Igl9LCAvKiA2Nzk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3OTUiCX0sIC8qIDY3OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc5NiIJfSwgLyogNjc5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182Nzk3Igl9LCAvKiA2Nzk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3OTgiCX0sIC8qIDY3OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc5OSIJfSwgLyogNjc5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODAwIgl9LCAvKiA2ODAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MDEiCX0sIC8qIDY4MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgwMiIJfSwgLyogNjgwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODAzIgl9LCAvKiA2ODAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MDQiCX0sIC8qIDY4MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgwNSIJfSwgLyogNjgwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODA2Igl9LCAvKiA2ODA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MDciCX0sIC8qIDY4MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgwOCIJfSwgLyogNjgwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODA5Igl9LCAvKiA2ODA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MTAiCX0sIC8qIDY4MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgxMSIJfSwgLyogNjgxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODEyIgl9LCAvKiA2ODEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MTMiCX0sIC8qIDY4MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgxNCIJfSwgLyogNjgxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODE1Igl9LCAvKiA2ODE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MTYiCX0sIC8qIDY4MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgxNyIJfSwgLyogNjgxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODE4Igl9LCAvKiA2ODE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MTkiCX0sIC8qIDY4MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgyMCIJfSwgLyogNjgyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODIxIgl9LCAvKiA2ODIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MjIiCX0sIC8qIDY4MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgyMyIJfSwgLyogNjgyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODI0Igl9LCAvKiA2ODI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MjUiCX0sIC8qIDY4MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgyNiIJfSwgLyogNjgyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODI3Igl9LCAvKiA2ODI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MjgiCX0sIC8qIDY4MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgyOSIJfSwgLyogNjgyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODMwIgl9LCAvKiA2ODMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MzEiCX0sIC8qIDY4MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgzMiIJfSwgLyogNjgzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODMzIgl9LCAvKiA2ODMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MzQiCX0sIC8qIDY4MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgzNSIJfSwgLyogNjgzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODM2Igl9LCAvKiA2ODM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MzciCX0sIC8qIDY4MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgzOCIJfSwgLyogNjgzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODM5Igl9LCAvKiA2ODM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NDAiCX0sIC8qIDY4NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg0MSIJfSwgLyogNjg0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODQyIgl9LCAvKiA2ODQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NDMiCX0sIC8qIDY4NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg0NCIJfSwgLyogNjg0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODQ1Igl9LCAvKiA2ODQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NDYiCX0sIC8qIDY4NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg0NyIJfSwgLyogNjg0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODQ4Igl9LCAvKiA2ODQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NDkiCX0sIC8qIDY4NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg1MCIJfSwgLyogNjg1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODUxIgl9LCAvKiA2ODUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NTIiCX0sIC8qIDY4NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg1MyIJfSwgLyogNjg1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODU0Igl9LCAvKiA2ODU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NTUiCX0sIC8qIDY4NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg1NiIJfSwgLyogNjg1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODU3Igl9LCAvKiA2ODU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NTgiCX0sIC8qIDY4NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg1OSIJfSwgLyogNjg1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODYwIgl9LCAvKiA2ODYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NjEiCX0sIC8qIDY4NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg2MiIJfSwgLyogNjg2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODYzIgl9LCAvKiA2ODYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NjQiCX0sIC8qIDY4NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg2NSIJfSwgLyogNjg2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODY2Igl9LCAvKiA2ODY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NjciCX0sIC8qIDY4NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg2OCIJfSwgLyogNjg2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODY5Igl9LCAvKiA2ODY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NzAiCX0sIC8qIDY4NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg3MSIJfSwgLyogNjg3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODcyIgl9LCAvKiA2ODcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NzMiCX0sIC8qIDY4NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg3NCIJfSwgLyogNjg3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODc1Igl9LCAvKiA2ODc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NzYiCX0sIC8qIDY4NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg3NyIJfSwgLyogNjg3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODc4Igl9LCAvKiA2ODc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NzkiCX0sIC8qIDY4NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg4MCIJfSwgLyogNjg4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODgxIgl9LCAvKiA2ODgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4ODIiCX0sIC8qIDY4ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg4MyIJfSwgLyogNjg4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODg0Igl9LCAvKiA2ODg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4ODUiCX0sIC8qIDY4ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg4NiIJfSwgLyogNjg4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODg3Igl9LCAvKiA2ODg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4ODgiCX0sIC8qIDY4ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg4OSIJfSwgLyogNjg4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODkwIgl9LCAvKiA2ODkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4OTEiCX0sIC8qIDY4OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg5MiIJfSwgLyogNjg5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODkzIgl9LCAvKiA2ODkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4OTQiCX0sIC8qIDY4OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg5NSIJfSwgLyogNjg5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODk2Igl9LCAvKiA2ODk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4OTciCX0sIC8qIDY4OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg5OCIJfSwgLyogNjg5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODk5Igl9LCAvKiA2ODk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MDAiCX0sIC8qIDY5MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkwMSIJfSwgLyogNjkwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTAyIgl9LCAvKiA2OTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MDMiCX0sIC8qIDY5MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkwNCIJfSwgLyogNjkwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTA1Igl9LCAvKiA2OTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MDYiCX0sIC8qIDY5MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkwNyIJfSwgLyogNjkwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTA4Igl9LCAvKiA2OTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MDkiCX0sIC8qIDY5MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkxMCIJfSwgLyogNjkxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTExIgl9LCAvKiA2OTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MTIiCX0sIC8qIDY5MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkxMyIJfSwgLyogNjkxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTE0Igl9LCAvKiA2OTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MTUiCX0sIC8qIDY5MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkxNiIJfSwgLyogNjkxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTE3Igl9LCAvKiA2OTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MTgiCX0sIC8qIDY5MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkxOSIJfSwgLyogNjkxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTIwIgl9LCAvKiA2OTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MjEiCX0sIC8qIDY5MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkyMiIJfSwgLyogNjkyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTIzIgl9LCAvKiA2OTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MjQiCX0sIC8qIDY5MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkyNSIJfSwgLyogNjkyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTI2Igl9LCAvKiA2OTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MjciCX0sIC8qIDY5MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkyOCIJfSwgLyogNjkyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTI5Igl9LCAvKiA2OTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MzAiCX0sIC8qIDY5MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkzMSIJfSwgLyogNjkzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTMyIgl9LCAvKiA2OTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MzMiCX0sIC8qIDY5MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkzNCIJfSwgLyogNjkzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTM1Igl9LCAvKiA2OTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MzYiCX0sIC8qIDY5MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkzNyIJfSwgLyogNjkzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTM4Igl9LCAvKiA2OTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MzkiCX0sIC8qIDY5MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk0MCIJfSwgLyogNjk0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTQxIgl9LCAvKiA2OTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NDIiCX0sIC8qIDY5NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk0MyIJfSwgLyogNjk0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTQ0Igl9LCAvKiA2OTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NDUiCX0sIC8qIDY5NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk0NiIJfSwgLyogNjk0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTQ3Igl9LCAvKiA2OTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NDgiCX0sIC8qIDY5NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk0OSIJfSwgLyogNjk0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTUwIgl9LCAvKiA2OTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NTEiCX0sIC8qIDY5NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk1MiIJfSwgLyogNjk1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTUzIgl9LCAvKiA2OTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NTQiCX0sIC8qIDY5NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk1NSIJfSwgLyogNjk1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTU2Igl9LCAvKiA2OTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NTciCX0sIC8qIDY5NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk1OCIJfSwgLyogNjk1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTU5Igl9LCAvKiA2OTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NjAiCX0sIC8qIDY5NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk2MSIJfSwgLyogNjk2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTYyIgl9LCAvKiA2OTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NjMiCX0sIC8qIDY5NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk2NCIJfSwgLyogNjk2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTY1Igl9LCAvKiA2OTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NjYiCX0sIC8qIDY5NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk2NyIJfSwgLyogNjk2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTY4Igl9LCAvKiA2OTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NjkiCX0sIC8qIDY5NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk3MCIJfSwgLyogNjk3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTcxIgl9LCAvKiA2OTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NzIiCX0sIC8qIDY5NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk3MyIJfSwgLyogNjk3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTc0Igl9LCAvKiA2OTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NzUiCX0sIC8qIDY5NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk3NiIJfSwgLyogNjk3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTc3Igl9LCAvKiA2OTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NzgiCX0sIC8qIDY5NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk3OSIJfSwgLyogNjk3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTgwIgl9LCAvKiA2OTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5ODEiCX0sIC8qIDY5ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk4MiIJfSwgLyogNjk4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTgzIgl9LCAvKiA2OTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5ODQiCX0sIC8qIDY5ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk4NSIJfSwgLyogNjk4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTg2Igl9LCAvKiA2OTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5ODciCX0sIC8qIDY5ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk4OCIJfSwgLyogNjk4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTg5Igl9LCAvKiA2OTg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OTAiCX0sIC8qIDY5OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk5MSIJfSwgLyogNjk5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTkyIgl9LCAvKiA2OTkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OTMiCX0sIC8qIDY5OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk5NCIJfSwgLyogNjk5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTk1Igl9LCAvKiA2OTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OTYiCX0sIC8qIDY5OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk5NyIJfSwgLyogNjk5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTk4Igl9LCAvKiA2OTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OTkiCX0sIC8qIDY5OTkgKi8gLyogZW5kIG9mIExpbnV4IE4zMiAqLwpkaWZmIC0tZ2l0IGEvbGludXgvc2gvc3lzY2FsbGVudC5oIGIvbGludXgvc2gvc3lzY2FsbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5MDY4MDAKLS0tIC9kZXYvbnVsbAorKysgYi9saW51eC9zaC9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSw0ODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMjAwMCBQb2NrZXRQZW5ndWlucyBJbmMuICBMaW51eCBmb3IgSGl0YWNoaSBTdXBlckgKKyAqICAgICAgICAgICAgICAgICAgICBwb3J0IGJ5IEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkJAorICovCisKKwl7IDAsCTAsCXN5c19yZXN0YXJ0X3N5c2NhbGwsCSJyZXN0YXJ0X3N5c2NhbGwifSwgLyogMCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJIl9leGl0IgkJfSwgLyogMSAqLworCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQl9LCAvKiAyICovCisJeyAzLAlURCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KKwl7IDMsCVRELAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCisJeyAzLAlURHxURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KKwl7IDEsCVRELAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCisJeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIJfSwgLyogNyAqLworCXsgMiwJVER8VEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDggKi8KKwl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLworCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiAxMSAqLworCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCisJeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KKwl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiAxNCAqLworCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDE2ICovCisJeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiAxNyAqLworCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDE4ICovCisJeyAzLAlURCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KKwl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCisJeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KKwl7IDEsCTAsCXN5c19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDI1ICovCisJeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogMjYgKi8KKwl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCisJeyAyLAlURCwJc3lzX29sZGZzdGF0LAkJIm9sZGZzdGF0Igl9LCAvKiAyOCAqLworCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCisJeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KKwl7IDIsCTAsCXN5c19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLworCXsgMiwJMCwJc3lzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDMyICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCisJeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KKwl7IDAsCTAsCXN5c19mdGltZSwJCSJmdGltZSIJCX0sIC8qIDM1ICovCisJeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KKwl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KKwl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLworCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCisJeyAxLAlURCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLworCXsgMSwJVEQsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLworCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KKwl7IDAsCTAsCXN5c19wcm9mLAkJInByb2YiCQl9LCAvKiA0NCAqLworCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0NSAqLworCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDQ2ICovCisJeyAwLAlORiwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQ3ICovCisJeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCisJeyAwLAlORiwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KKwl7IDAsCU5GLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiA1MCAqLworCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLworCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNTIgKi8KKwl7IDAsCTAsCXN5c19sb2NrLAkJImxvY2siCQl9LCAvKiA1MyAqLworCXsgMywJVEQsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCisJeyAzLAlURCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KKwl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KKwl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCisJeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KKwl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KKwl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCisJeyAyLAlURCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDYzICovCisJeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiA2NCAqLworCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNjUgKi8KKwl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiA2NiAqLworCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgl9LCAvKiA2NyAqLworCXsgMCwJVFMsCXN5c19zaWdnZXRtYXNrLAkJInNpZ2dldG1hc2siCX0sIC8qIDY4ICovCisJeyAxLAlUUywJc3lzX3NpZ3NldG1hc2ssCQkic2lnc2V0bWFzayIJfSwgLyogNjkgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNzAgKi8KKwl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogNzEgKi8KKwl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA3MiAqLworCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDczICovCisJeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNzQgKi8KKwl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA3NSAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDc2ICovCisJeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KKwl7IDEsCVRELAlzeXNfb2xkc2VsZWN0LAkJIm9sZHNlbGVjdCIJfSwgLyogODIgKi8KKwl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA4MyAqLworCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJfSwgLyogODQgKi8KKwl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCisJeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCisJeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCisJeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KKwl7IDMsCVRELAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLworCXsgNiwJVEQsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIgICAJfSwgLyogOTAgKi8KKwl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KKwl7IDIsCVRELAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KKwl7IDIsCVRELAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KKwl7IDMsCVRELAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KKwl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCisJeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KKwl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KKwl7IDIsCVRELAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KKwl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KKwl7IDIsCVRELAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiAxMDIgKi8KKwl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAvKiAxMDMgKi8KKwl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiAxMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMDUgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTA2ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTA3ICovCisJeyAyLAlURCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTA4ICovCisJeyAxLAkwLAlzeXNfb2xkdW5hbWUsCQkib2xkdW5hbWUiCX0sIC8qIDEwOSAqLworCXsgMSwJMCwJc3lzX2lvcGwsCQkiaW9wbCIJCX0sIC8qIDExMCAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCisJeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCisJeyAxLAkwLAlzeXNfdm04Nm9sZCwJCSJ2bTg2b2xkIgl9LCAvKiAxMTMgKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiAxMTQgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgl9LCAvKiAxMTUgKi8KKwl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sIC8qIDExNiAqLworCXsgNSwJMCwJc3lzX2lwYywJCSJpcGMiCQl9LCAvKiAxMTcgKi8KKwl7IDEsCVRELAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMTggKi8KKwl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJfSwgLyogMTE5ICovCisJeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJfSwgLyogMTIwICovCisJeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLworCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCisJeyAzLAkwLAlzeXNfY2FjaGVmbHVzaCwJCSJjYWNoZWZsdXNoIgl9LCAvKiAxMjMgKi8KKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogMTI0ICovCisJeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDEyNSAqLworCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiAxMjYgKi8KKwl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogMTI3ICovCisJeyAzLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJfSwgLyogMTI4ICovCisJeyAyLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDEyOSAqLworCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiAxMzAgKi8KKwl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgLyogMTMxICovCisJeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMzIgKi8KKwl7IDEsCVRELAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCisJeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KKwl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDEzNSAqLworCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLworCXsgMSwJTkYsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCisJeyAxLAlORiwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMzkgKi8KKwl7IDUsCVRELAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLworCXsgMywJVEQsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCisJeyA1LAlURCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sIC8qIDE0MiAqLworCXsgMiwJVEQsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLworCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCisJeyAzLAlURCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTQ1ICovCisJeyAzLAlURCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCX0sIC8qIDE0NiAqLworCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDE0NyAqLworCXsgMSwJVEQsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KKwl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCisJeyAxLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLworCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KKwl7IDEsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLworCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLworCXsgNSwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLworCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLworCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KKwl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLworCXsgMywJVEQsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiAxNjggKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAvKiAxNjkgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkIgl9LCAvKiAxNzAgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiAxNzEgKi8KKwl7IDUsCTAsCXN5c19wcmN0bCwJCSJwcmN0bCIJCX0sIC8qIDE3MiAqLworCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCX0sIC8qIDE3MyAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iICB9LCAvKiAxNzQgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayJ9LCAvKiAxNzUgKi8KKwl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywJInJ0X3NpZ3BlbmRpbmciCX0sIC8qIDE3NiAqLworCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQifSwgLyogMTc3ICovCisJeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywgICAgInJ0X3NpZ3F1ZXVlaW5mbyJ9LCAvKiAxNzggKi8KKwl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwJInJ0X3NpZ3N1c3BlbmQiCX0sIC8qIDE3OSAqLworCisJeyA2LAlURCwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTgwICovCisJeyA2LAlURCwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE4MSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLworCXsgMiwJMCwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLworCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLworCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KKwl7IDQsCVREfFROLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgiCX0sIC8qIDE4OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkiCX0sIC8qIDE4OSAqLworCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDE5MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCisJeyA2LAlURCwJc3lzX21tYXAsCQkibW1hcDIiCQl9LCAvKiAxOTIgKi8KKwl7IDUsCTAsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLworCXsgNSwJVEQsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCisJeyAyLAlURCwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCisvKlRPRE8qL3sgMywJVEYsCXByaW50YXJncywJCSJsY2hvd24zMiIJfSwgLyogMTk4ICovCisvKlRPRE8qL3sgMCwJMCwJcHJpbnRhcmdzLAkJImdldHVpZDMyIgl9LCAvKiAxOTkgKi8KKworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGdpZDMyIgl9LCAvKiAyMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXRldWlkMzIiCX0sIC8qIDIwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGVnaWQzMiIJfSwgLyogMjAyICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0cmV1aWQzMiIJfSwgLyogMjAzICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0cmVnaWQzMiIJfSwgLyogMjA0ICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzMzIsCSJnZXRncm91cHMzMiIJfSwgLyogMjA1ICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzMzIsCSJzZXRncm91cHMzMiIJfSwgLyogMjA2ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZmNob3duMzIiCX0sIC8qIDIwNyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXN1aWQzMiIJfSwgLyogMjA5ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkic2V0cmVzZ2lkMzIiCX0sIC8qIDIxMCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldHNldGdpZDMyIgl9LCAvKiAyMTEgKi8KKwl7IDMsCVRGLAlwcmludGFyZ3MsCQkiY2hvd24zMiIJfSwgLyogMjEyICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0dWlkMzIiCX0sIC8qIDIxMyAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGdpZDMyIgl9LCAvKiAyMTQgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRmc3VpZDMyIgl9LCAvKiAyMTUgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRmc2dpZDMyIgl9LCAvKiAyMTYgKi8KKwl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxNyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm1pbmNvcmUiCX0sIC8qIDIxOCAqLworCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgLyogMjE5ICovCisJeyAzLAlURCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCisJeyAzLAlURCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDIyMSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiCX0sIC8qIDIyMiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMiCX0sIC8qIDIyMyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImdldHRpZCIJfSwgLyogMjI0ICovCisJeyA1LAlURCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDIyNSAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMjI2ICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMjI3ICovCisJeyA1LAlURCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDIyOCAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMjI5ICovCisJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogMjMwICovCisJeyA0LAlURCwJc3lzX2ZnZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDIzMSAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiAyMzIgKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDIzMyAqLworCXsgMywJVEQsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzNCAqLworCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzUgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNiAqLworCXsgMiwJVEQsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDIzNyAqLworCXsgMiwJVEQsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogMjM4ICovCisJeyA1LAlURHxUTiwJc3lzX3NlbmRmaWxlNjQsCQkic2VuZGZpbGU2NCIJfSwgLyogMjM5ICovCisJeyA2LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyNDAgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5In0sIC8qIDI0MSAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkifSwgLyogMjQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MyIJfSwgLyogMjQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NCIJfSwgLyogMjQ0ICovCisJeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI0NSAqLworCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjQ2ICovCisJeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyNDcgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDggKi8KKwl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyNDkgKi8KKwl7IDUsCVRELAlzeXNfZmFkdmlzZTY0LAkJImZhZHZpc2U2NCIJfSwgLyogMjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJfSwgLyogMjUyICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogMjUzICovCisJeyAxLAlURCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogMjU0ICovCisJeyA0LAlURCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDI1NSAqLworCXsgMywJVEQsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDI1NiAqLworCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIn0sIC8qIDI1NyAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyJ9LCAvKiAyNTggKi8KKwl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDI1OSAqLworCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAyNjAgKi8KKwl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJfSwgLyogMjYxICovCisJeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwJInRpbWVyX2dldG92ZXJydW4ifSwgLyogMjYyICovCisJeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAyNjMgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogMjY0ICovCisJeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCX0sIC8qIDI2NSAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMjY2ICovCisJeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIn0sIC8qIDI2NyAqLworCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJCSJzdGF0ZnM2NCIJfSwgLyogMjY4ICovCisJeyAyLAlURCwJc3lzX2ZzdGF0ZnM2NCwJCSJmc3RhdGZzNjQiCX0sIC8qIDI2OSAqLworCXsgMywJVFMsCXN5c190Z2tpbGwsCQkidGdraWxsIgl9LCAvKiAyNzAgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMjcxICovCisJeyA2LAlURCwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJfSwgLyogMjcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJfSwgLyogMjczICovCisJeyA0LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQl9LCAvKiAyNzQgKi8KKwl7IDUsCTAsCXN5c19nZXRfbWVtcG9saWN5LAkiZ2V0X21lbXBvbGljeSIJfSwgLyogMjc1ICovCisJeyAzLAkwLAlzeXNfc2V0X21lbXBvbGljeSwJInNldF9tZW1wb2xpY3kiCX0sIC8qIDI3NiAqLworCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogMjc3ICovCisJeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMjc4ICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiAyNzkgKi8KKwl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUifSwgLyogMjgwICovCisJeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJfSwgLyogMjgxICovCisJeyAzLAkwLAlzeXNfbXFfZ2V0c2V0YXR0ciwJIm1xX2dldHNldGF0dHIiCX0sIC8qIDI4MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleGVjX2xvYWQiCX0sIC8qIDI4MyAqLworCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAyODQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJhZGRfa2V5Igl9LCAvKiAyODUgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJyZXF1ZXN0X2tleSIJfSwgLyogMjg2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V5Y3RsIgl9LCAvKiAyODcgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJpb3ByaW9fc2V0Igl9LCAvKiAyODggKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJpb3ByaW9fZ2V0Igl9LCAvKiAyODkgKi8KKwl7IDAsCVRELAlwcmludGFyZ3MsCQkiaW5vdGlmeV9pbml0Igl9LCAvKiAyOTAgKi8KKwl7IDMsCVRELAlzeXNfaW5vdGlmeV9hZGRfd2F0Y2gsCSJpbm90aWZ5X2FkZF93YXRjaCJ9LCAvKiAyOTEgKi8KKwl7IDIsCVRELAlzeXNfaW5vdGlmeV9ybV93YXRjaCwJImlub3RpZnlfcm1fd2F0Y2gifSwgLyogMjkyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibWlncmF0ZV9wYWdlcyIJfSwgLyogMjk0ICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCX0sIC8qIDI5NSAqLworCXsgMywJVER8VEYsCXN5c19ta2RpcmF0LAkJIm1rZGlyYXQiCX0sIC8qIDI5NiAqLworCXsgNCwJVER8VEYsCXN5c19ta25vZGF0LAkJIm1rbm9kYXQiCX0sIC8qIDI5NyAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJfSwgLyogMjk4ICovCisJeyAzLAlURHxURiwJc3lzX2Z1dGltZXNhdCwJCSJmdXRpbWVzYXQiCX0sIC8qIDI5OSAqLworCXsgNCwJVER8VEYsCXN5c19uZXdmc3RhdGF0LAkJIm5ld2ZzdGF0YXQiCX0sIC8qIDMwMCAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJfSwgLyogMzAxICovCisJeyA0LAlURHxURiwJc3lzX3JlbmFtZWF0LAkJInJlbmFtZWF0Igl9LCAvKiAzMDIgKi8KKwl7IDUsCVREfFRGLAlzeXNfbGlua2F0LAkJImxpbmthdCIJfSwgLyogMzAzICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCX0sIC8qIDMwNCAqLworCXsgNCwJVER8VEYsCXN5c19yZWFkbGlua2F0LAkJInJlYWRsaW5rYXQiCX0sIC8qIDMwNSAqLworCXsgMywJVER8VEYsCXN5c19mY2htb2RhdCwJCSJmY2htb2RhdCIJfSwgLyogMzA2ICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCX0sIC8qIDMwNyAqLworCXsgNiwJVEQsCXN5c19wc2VsZWN0NiwJCSJwc2VsZWN0NiIJfSwgLyogMzA4ICovCisJeyA1LAlURCwJc3lzX3Bwb2xsLAkJInBwb2xsIgkJfSwgLyogMzA5ICovCisJeyAxLAlUUCwJc3lzX3Vuc2hhcmUsCQkidW5zaGFyZSIJfSwgLyogMzEwICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0X3JvYnVzdF9saXN0In0sIC8qIDMxMSAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldF9yb2J1c3RfbGlzdCJ9LCAvKiAzMTIgKi8KKwl7IDYsCVRELAlwcmludGFyZ3MsCQkic3BsaWNlIgl9LCAvKiAzMTMgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkic3luY19maWxlX3JhbmdlIn0sIC8qIDMxNCAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ0ZWUiCQl9LCAvKiAzMTUgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkidm1zcGxpY2UiCX0sIC8qIDMxNiAqLworCXsgNiwJMCwJc3lzX21vdmVfcGFnZXMsCQkibW92ZV9wYWdlcyIJfSwgLyogMzE3ICovCisJeyAzLAkwLAlzeXNfZ2V0Y3B1LAkJImdldGNwdSIJfSwgLyogMzE4ICovCisJeyA1LAlURCwJc3lzX2Vwb2xsX3B3YWl0LAkiZXBvbGxfcHdhaXQiCX0sIC8qIDMxOSAqLworCXsgNCwJVER8VEYsCXN5c191dGltZW5zYXQsCQkidXRpbWVuc2F0Igl9LCAvKiAzMjAgKi8KKwl7IDMsCVREfFRTLAlzeXNfc2lnbmFsZmQsCQkic2lnbmFsZmQiCX0sIC8qIDMyMSAqLworCXsgNCwJVEQsCXN5c190aW1lcmZkLAkJInRpbWVyZmQiCX0sIC8qIDMyMiAqLworCXsgMSwJVEQsCXN5c19ldmVudGZkLAkJImV2ZW50ZmQiCX0sIC8qIDMyMyAqLworCXsgNiwJVEQsCXN5c19mYWxsb2NhdGUsCQkiZmFsbG9jYXRlIgl9LCAvKiAzMjQgKi8KKwl7IDQsCVRELAlzeXNfdGltZXJmZF9zZXR0aW1lLAkidGltZXJmZF9zZXR0aW1lIn0sIC8qIDMyNSAqLworCXsgMiwJVEQsCXN5c190aW1lcmZkX2dldHRpbWUsCSJ0aW1lcmZkX2dldHRpbWUifSwgLyogMzI2ICovCisJeyA0LAlURHxUUywJc3lzX3NpZ25hbGZkNCwJCSJzaWduYWxmZDQiCX0sIC8qIDMyNyAqLworCXsgMiwJVEQsCXN5c19ldmVudGZkMiwJCSJldmVudGZkMiIJfSwgLyogMzI4ICovCisJeyAxLAlURCwJc3lzX2Vwb2xsX2NyZWF0ZTEsCSJlcG9sbF9jcmVhdGUxIgl9LCAvKiAzMjkgKi8KKwl7IDMsCVRELAlzeXNfZHVwMywJCSJkdXAzIgkJfSwgLyogMzMwICovCisJeyAyLAlURCwJc3lzX3BpcGUyLAkJInBpcGUyIgkJfSwgLyogMzMxICovCisJeyAxLAlURCwJc3lzX2lub3RpZnlfaW5pdDEsCSJpbm90aWZ5X2luaXQxIgl9LCAvKiAzMzIgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicHJlYWR2Igl9LCAvKiAzMzMgKi8KKwl7IDUsCVRELAlwcmludGFyZ3MsCQkicHdyaXRldiIJfSwgLyogMzM0ICovCisJeyA0LAlUUHxUUywJcHJpbnRhcmdzLAkJInJ0X3Rnc2lncXVldWVpbmZvIn0sIC8qIDMzNSAqLworCXsgNSwJVEQsCXByaW50YXJncywJCSJwZXJmX2V2ZW50X29wZW4ifSwgLyogMzM2ICovCisJeyAyLAlURCwJcHJpbnRhcmdzLAkJImZhbm90aWZ5X2luaXQiCX0sIC8qIDMzNyAqLworCXsgNSwJVER8VEYsCXByaW50YXJncywJCSJmYW5vdGlmeV9tYXJrIgl9LCAvKiAzMzggKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJwcmxpbWl0NjQiCX0sIC8qIDMzOSAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAzNDAgKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMzQxICovCisJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMzQyICovCisJeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDM0MyAqLworCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAzNDQgKi8KKwl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMzQ1ICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDM0NiAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDM0NyAqLworCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAzNDggKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMzQ5ICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDM1MCAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMzUxICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAzNTIgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAzNTMgKi8KKwl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAzNTQgKi8KKwl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAzNTUgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAzNTYgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1tc2csCQkicmVjdm1tc2ciCX0sIC8qIDM1NyAqLworCXsgNCwJVE4sCXN5c19hY2NlcHQ0LAkJImFjY2VwdDQiCX0sIC8qIDM1OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkiCX0sIC8qIDM1OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAiCX0sIC8qIDM2MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjEiCX0sIC8qIDM2MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjIiCX0sIC8qIDM2MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMiCX0sIC8qIDM2MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qIDM2NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUiCX0sIC8qIDM2NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qIDM2NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qIDM2NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgiCX0sIC8qIDM2OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qIDM2OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAiCX0sIC8qIDM3MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzEiCX0sIC8qIDM3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIiCX0sIC8qIDM3MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMiCX0sIC8qIDM3MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQiCX0sIC8qIDM3NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUiCX0sIC8qIDM3NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYiCX0sIC8qIDM3NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzciCX0sIC8qIDM3NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgiCX0sIC8qIDM3OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkiCX0sIC8qIDM3OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCX0sIC8qIDM4MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEiCX0sIC8qIDM4MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIiCX0sIC8qIDM4MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMiCX0sIC8qIDM4MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQiCX0sIC8qIDM4NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUiCX0sIC8qIDM4NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYiCX0sIC8qIDM4NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODciCX0sIC8qIDM4NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgiCX0sIC8qIDM4OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkiCX0sIC8qIDM4OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qIDM5MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qIDM5MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIiCX0sIC8qIDM5MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qIDM5MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qIDM5NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUiCX0sIC8qIDM5NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qIDM5NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qIDM5NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgiCX0sIC8qIDM5OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qIDM5OSAqLworCisjaWYgU1lTX3NvY2tldF9zdWJjYWxsICE9IDQwMAorICNlcnJvciBmaXggbWUKKyNlbmRpZgorCXsgOCwJMCwJcHJpbnRhcmdzLAkJInNvY2tldF9zdWJjYWxsIn0sIC8qIDQwMCAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiA0MDEgKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogNDAyICovCisJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogNDAzICovCisJeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDQwNCAqLworCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiA0MDUgKi8KKwl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogNDA2ICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDQwNyAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDQwOCAqLworCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiA0MDkgKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogNDEwICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDQxMSAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogNDEyICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiA0MTMgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiA0MTQgKi8KKwl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiA0MTUgKi8KKwl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiA0MTYgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiA0MTcgKi8KKwl7IDQsCVROLAlzeXNfYWNjZXB0NCwJCSJhY2NlcHQ0Igl9LCAvKiA0MTggKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1tc2csCQkicmVjdm1tc2ciCX0sIC8qIDQxOSAqLworCisjaWYgU1lTX2lwY19zdWJjYWxsICE9IDQyMAorICNlcnJvciBmaXggbWUKKyNlbmRpZgorCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyMCAqLworCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDQyMSAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiA0MjIgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogNDIzICovCisJeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogNDI0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyOCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjkgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDMwICovCisJeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDQzMSAqLworCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiA0MzIgKi8KKwl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogNDMzICovCisJeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDQzNCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzUgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM2ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzNyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzggKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM5ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQ0MCAqLworCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDQ0MSAqLworCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDQ0MiAqLworCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiA0NDMgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogNDQ0ICovCmRpZmYgLS1naXQgYS9saW51eC9zeXNjYWxsLmggYi9saW51eC9zeXNjYWxsLmgKaW5kZXggYjBhNTk5My4uZTY1N2YxZSAxMDA2NDQKLS0tIGEvbGludXgvc3lzY2FsbC5oCisrKyBiL2xpbnV4L3N5c2NhbGwuaApAQCAtMjUsMTMgKzI1LDE0IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBzeXNjYWxsLmgsdiAxLjQ1IDIwMDUvMDYvMDcgMjM6MjE6Mjggcm9sYW5kIEV4cCAkCisgKgkkSWQkCiAgKi8KIAogI2luY2x1ZGUgImR1bW15LmgiCiAKIC8qIHByaW1hcnkgc3lzY2FsbHMgKi8KIAoraW50IHN5c19yZXN0YXJ0X3N5c2NhbGwoKTsKIGludCBzeXNfc2V0dXAoKSwgc3lzX2V4aXQoKSwgc3lzX2ZvcmsoKSwgc3lzX3JlYWQoKSwgc3lzX3dyaXRlKCk7CiBpbnQgc3lzX29wZW4oKSwgc3lzX2Nsb3NlKCksIHN5c193YWl0cGlkKCksIHN5c19jcmVhdCgpLCBzeXNfbGluaygpOwogaW50IHN5c191bmxpbmsoKSwgc3lzX2V4ZWN2ZSgpLCBzeXNfY2hkaXIoKSwgc3lzX3RpbWUoKSwgc3lzX21rbm9kKCk7CkBAIC05OCwyMSArOTksNDcgQEAKIGludCBzeXNfbXFfbm90aWZ5KCksIHN5c19tcV9nZXRzZXRhdHRyKCk7CiBpbnQgc3lzX2Vwb2xsX2NyZWF0ZSgpLCBzeXNfZXBvbGxfY3RsKCksIHN5c19lcG9sbF93YWl0KCk7CiBpbnQgc3lzX3dhaXRpZCgpLCBzeXNfZmFkdmlzZTY0KCksIHN5c19mYWR2aXNlNjRfNjQoKTsKLWludCBzeXNfbWJpbmQoKSwgc3lzX2dldF9tZW1wb2xpY3koKSwgc3lzX3NldF9tZW1wb2xpY3koKTsKK2ludCBzeXNfbWJpbmQoKSwgc3lzX2dldF9tZW1wb2xpY3koKSwgc3lzX3NldF9tZW1wb2xpY3koKSwgc3lzX21vdmVfcGFnZXMoKTsKIGludCBzeXNfYXJjaF9wcmN0bCgpOwogaW50IHN5c19pb19zZXR1cCgpLCBzeXNfaW9fc3VibWl0KCksIHN5c19pb19jYW5jZWwoKSwgc3lzX2lvX2dldGV2ZW50cygpLCBzeXNfaW9fZGVzdHJveSgpOworaW50IHN5c191dGltZW5zYXQoKSwgc3lzX2Vwb2xsX3B3YWl0KCksIHN5c19zaWduYWxmZCgpLCBzeXNfdGltZXJmZCgpLCBzeXNfZXZlbnRmZCgpOworaW50IHN5c19nZXRjcHUoKTsKK2ludCBzeXNfZmFsbG9jYXRlKCksIHN5c190aW1lcmZkX2NyZWF0ZSgpLCBzeXNfdGltZXJmZF9zZXR0aW1lKCksIHN5c190aW1lcmZkX2dldHRpbWUoKTsKK2ludCBzeXNfc2lnbmFsZmQ0KCksIHN5c19ldmVudGZkMigpLCBzeXNfZXBvbGxfY3JlYXRlMSgpLCBzeXNfZHVwMygpLCBzeXNfcGlwZTIoKTsKIAogLyogc3lzX3NvY2tldGNhbGwgc3ViY2FsbHMgKi8KIAotaW50IHN5c19zb2NrZXQoKSwgc3lzX2JpbmQoKSwgc3lzX2Nvbm5lY3QoKSwgc3lzX2xpc3RlbigpOworaW50IHN5c19zb2NrZXQoKSwgc3lzX2JpbmQoKSwgc3lzX2Nvbm5lY3QoKSwgc3lzX2xpc3RlbigpLCBzeXNfYWNjZXB0NCgpOwogaW50IHN5c19hY2NlcHQoKSwgc3lzX2dldHNvY2tuYW1lKCksIHN5c19nZXRwZWVybmFtZSgpLCBzeXNfc29ja2V0cGFpcigpOwogaW50IHN5c19zZW5kKCksIHN5c19yZWN2KCksIHN5c19zZW5kdG8oKSwgc3lzX3JlY3Zmcm9tKCk7CiBpbnQgc3lzX3NodXRkb3duKCksIHN5c19zZXRzb2Nrb3B0KCksIHN5c19nZXRzb2Nrb3B0KCk7CitpbnQgc3lzX3JlY3ZtbXNnKCk7CisKKy8qICphdCBzeXNjYWxscyAqLworaW50IHN5c19mY2htb2RhdCgpOworaW50IHN5c19uZXdmc3RhdGF0KCk7CitpbnQgc3lzX3VubGlua2F0KCk7CitpbnQgc3lzX2ZjaG93bmF0KCk7CitpbnQgc3lzX29wZW5hdCgpOworaW50IHN5c19yZW5hbWVhdCgpOworaW50IHN5c19zeW1saW5rYXQoKTsKK2ludCBzeXNfcmVhZGxpbmthdCgpOworaW50IHN5c19saW5rYXQoKTsKK2ludCBzeXNfZmFjY2Vzc2F0KCk7CitpbnQgc3lzX21rZGlyYXQoKTsKK2ludCBzeXNfbWtub2RhdCgpOworaW50IHN5c19mdXRpbWVzYXQoKTsKIAogLyogbmV3IG9uZXMgKi8KIGludCBzeXNfcXVlcnlfbW9kdWxlKCk7CiBpbnQgc3lzX3BvbGwoKTsKIGludCBzeXNfbWluY29yZSgpOworaW50IHN5c19pbm90aWZ5X2FkZF93YXRjaCgpOworaW50IHN5c19pbm90aWZ5X3JtX3dhdGNoKCk7CitpbnQgc3lzX2lub3RpZnlfaW5pdDEoKTsKK2ludCBzeXNfcHNlbGVjdDYoKTsKK2ludCBzeXNfcHBvbGwoKTsKK2ludCBzeXNfdW5zaGFyZSgpOwogCiAvKiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY2FsbHMgKi8KICNpZmRlZiBBTFBIQQpAQCAtMTU1LDcgKzE4Miw4IEBACiAjIGVuZGlmCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEFMUEhBKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChIUFBBKQorI2lmICFkZWZpbmVkKEFMUEhBKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChIUFBBKSAmJiBcCisJIWRlZmluZWQoX19BUk1fRUFCSV9fKQogIyBpZmRlZglJQTY0CiAvKgogICogIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkIGhlYWRlcgpAQCAtMTgyLDcgKzIxMCwxMSBAQAogIyAgdW5kZWYgU1lTX3NlbmRtc2cKICMgIHVuZGVmIFNZU19yZWN2bXNnCiAjIGVuZGlmIC8qIElBNjQgKi8KLSMgIGRlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJMzAwCisjIGlmIGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkKKyMgIGRlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJMzUzCisjIGVsc2UKKyMgIGRlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJNDAwCisjIGVuZGlmCiAjZGVmaW5lIFNZU19zdWJfc29ja2V0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMSkKICNkZWZpbmUgU1lTX3N1Yl9iaW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMikKICNkZWZpbmUgU1lTX3N1Yl9jb25uZWN0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMykKQEAgLTIwMCw4ICsyMzIsMTAgQEAKICNkZWZpbmUgU1lTX3N1Yl9nZXRzb2Nrb3B0CShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNSkKICNkZWZpbmUgU1lTX3N1Yl9zZW5kbXNnCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTYpCiAjZGVmaW5lIFNZU19zdWJfcmVjdm1zZwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE3KQorI2RlZmluZSBTWVNfc3ViX2FjY2VwdDQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxOCkKKyNkZWZpbmUgU1lTX3N1Yl9yZWN2bW1zZwkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTkpCiAKLSNkZWZpbmUgU1lTX3NvY2tldF9uc3ViY2FsbHMJMTgKKyNkZWZpbmUgU1lTX3NvY2tldF9uc3ViY2FsbHMJMjAKICNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgSFBQQSkgKi8KIAogLyogc3lzX2lwYyBzdWJjYWxscyAqLwpAQCAtMjEwLDcgKzI0NCw4IEBACiBpbnQgc3lzX21zZ3NuZCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpOwogaW50IHN5c19zaG1hdCgpLCBzeXNfc2htZHQoKSwgc3lzX3NobWdldCgpLCBzeXNfc2htY3RsKCk7CiAKLSNpZiAhZGVmaW5lZChBTFBIQSkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKEhQUEEpCisjaWYgIWRlZmluZWQoQUxQSEEpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKEhQUEEpICYmIFwKKwkhZGVmaW5lZChfX0FSTV9FQUJJX18pCiAjIGlmZGVmCUlBNjQKICAgIC8qCiAgICAgKiBJQTY0IHN5c2NhbGwgbnVtYmVycyAodGhlIG9ubHkgb25lcyBhdmFpbGFibGUgZnJvbSBzdGFuZGFyZApAQCAtMjQ5LDcgKzI4NCw3IEBACiAjZGVmaW5lIFNZU19zdWJfc2htY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMjQpCiAKICNkZWZpbmUgU1lTX2lwY19uc3ViY2FsbHMJMjUKLSNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgU1BBUkMgfHwgSFBQQSkgKi8KKyNlbmRpZiAvKiAhKEFMUEhBIHx8IE1JUFMgfHwgSFBQQSkgKi8KIAogI2lmIGRlZmluZWQgU1lTX2lwY19zdWJjYWxsICYmICFkZWZpbmVkIFNZU19pcGMKICMgZGVmaW5lIFNZU19pcGMgU1lTX2lwY19zdWJjYWxsCkBAIC0yOTEsNiArMzI2LDQ1IEBACiBpbnQgc3lzX3NldHBncnAoKSwgc3lzX2dldGhvc3RuYW1lKCksIHN5c19nZXRkdGFibGVzaXplKCksIHN5c191dGltZXMoKTsKIGludCBzeXNfY2FwZ2V0KCksIHN5c19jYXBzZXQoKTsKIAotI2lmZGVmIE02OEsKKyNpZiBkZWZpbmVkIE02OEsgfHwgZGVmaW5lZCBTSAogaW50IHN5c19jYWNoZWZsdXNoKCk7CiAjZW5kaWYKKworaW50IHN5c19wcmVhZDY0KCksIHN5c19wd3JpdGU2NCgpOworCisjaWZkZWYgUE9XRVJQQworaW50IHN5c19zdWJwYWdlX3Byb3QoKTsKKyNlbmRpZgorCisjaWZkZWYgQkZJTgoraW50IHN5c19zcmFtX2FsbG9jKCk7CitpbnQgc3lzX2NhY2hlZmx1c2goKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCBTUEFSQyB8fCBkZWZpbmVkIFNQQVJDNjQKKyNpbmNsdWRlICJzcGFyYy9zeXNjYWxsMS5oIgoraW50IHN5c19leGVjdigpOworaW50IHN5c19nZXRwYWdlc2l6ZSgpOworaW50IHN5c19nZXRtc2coKSwgc3lzX3B1dG1zZygpOworCitpbnQJc3lzX3NlbXN5cygpLCBzeXNfc2VtY3RsKCksIHN5c19zZW1nZXQoKTsKKyNkZWZpbmUgU1lTX3NlbXN5c19zdWJjYWxsCTIwMAorI2RlZmluZSBTWVNfc2Vtc3lzX25zdWJjYWxscwkzCisjZGVmaW5lIFNZU19zZW1jdGwJCShTWVNfc2Vtc3lzX3N1YmNhbGwgKyAwKQorI2RlZmluZSBTWVNfc2VtZ2V0CQkoU1lTX3NlbXN5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX3NlbW9wCQkoU1lTX3NlbXN5c19zdWJjYWxsICsgMikKK2ludAlzeXNfbXNnc3lzKCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dzbmQoKTsKKyNkZWZpbmUgU1lTX21zZ3N5c19zdWJjYWxsCTIwMworI2RlZmluZSBTWVNfbXNnc3lzX25zdWJjYWxscwk0CisjZGVmaW5lIFNZU19tc2dnZXQJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAwKQorI2RlZmluZSBTWVNfbXNnY3RsCQkoU1lTX21zZ3N5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX21zZ3JjdgkJKFNZU19tc2dzeXNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNZU19tc2dzbmQJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAzKQoraW50CXN5c19zaG1zeXMoKSwgc3lzX3NobWF0KCksIHN5c19zaG1jdGwoKSwgc3lzX3NobWR0KCksIHN5c19zaG1nZXQoKTsKKyNkZWZpbmUgU1lTX3NobXN5c19zdWJjYWxsCTIwNworI2RlZmluZSBTWVNfc2htc3lzX25zdWJjYWxscwk0CisjZGVmaW5lIFNZU19zaG1hdAkJKFNZU19zaG1zeXNfc3ViY2FsbCArIDApCisjZGVmaW5lIFNZU19zaG1jdGwJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAxKQorI2RlZmluZSBTWVNfc2htZHQJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAyKQorI2RlZmluZSBTWVNfc2htZ2V0CQkoU1lTX3NobXN5c19zdWJjYWxsICsgMykKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGludXgvc3lzY2FsbGVudC5oIGIvbGludXgvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWQ1YjI0Li4wMDAwMDAwCi0tLSBhL2xpbnV4L3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjM0IDIwMDUvMDYvMDcgMjM6MjE6MjQgcm9sYW5kIEV4cCAkCi0gKi8KLQotCXsgMCwJMCwJc3lzX3NldHVwLAkJInNldHVwIgkJfSwgLyogMCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJIl9leGl0IiwgU1lTX2V4aXQgfSwgLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiLCBTWVNfZm9yayB9LCAvKiAyICovCi0JeyAzLAkwLAlzeXNfcmVhZCwJCSJyZWFkIiwgU1lTX3JlYWQgfSwgLyogMyAqLwotCXsgMywJMCwJc3lzX3dyaXRlLAkJIndyaXRlIiwgU1lTX3dyaXRlIH0sIC8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLwotCXsgMywJVFAsCXN5c193YWl0cGlkLAkJIndhaXRwaWQiLCBTWVNfd2FpdDQgfSwgLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDggKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIiwgU1lTX2V4ZWN2ZSB9LCAvKiAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCi0JeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCi0jaWZkZWYgTTY4SwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE2ICovCi0jZWxzZQotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE2ICovCi0jZW5kaWYKLQl7IDAsCTAsCXN5c19icmVhaywJCSJicmVhayIJCX0sIC8qIDE3ICovCi0JeyAyLAlURiwJc3lzX29sZHN0YXQsCQkib2xkc3RhdCIJfSwgLyogMTggKi8KLQl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogMjAgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLwotCXsgMSwJVEYsCXN5c191bW91bnQsCQkib2xkdW1vdW50Igl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDIzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KLQl7IDEsCTAsCXN5c19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDI1ICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCi0JeyAyLAkwLAlzeXNfb2xkZnN0YXQsCQkib2xkZnN0YXQiCX0sIC8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLwotCXsgMiwJMCwJc3lzX3N0dHksCQkic3R0eSIJCX0sIC8qIDMxICovCi0JeyAyLAkwLAlzeXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLwotCXsgMCwJMCwJc3lzX2Z0aW1lLAkJImZ0aW1lIgkJfSwgLyogMzUgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiAzOCAqLwotCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCX0sIC8qIDM5ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDAgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNDEgKi8KLQl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KLQl7IDAsCTAsCXN5c19wcm9mLAkJInByb2YiCQl9LCAvKiA0NCAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0NSAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDQ2ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDQ5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiA1MCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNTIgKi8KLQl7IDAsCTAsCXN5c19sb2NrLAkJImxvY2siCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bCIJCX0sIC8qIDU1ICovCi0JeyAwLAkwLAlzeXNfbXB4LAkJIm1weCIJCX0sIC8qIDU2ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiA1NyAqLwotCXsgMiwJMCwJc3lzX3VsaW1pdCwJCSJ1bGltaXQiCX0sIC8qIDU4ICovCi0JeyAxLAkwLAlzeXNfb2xkb2xkdW5hbWUsCSJvbGRvbGR1bmFtZSIJfSwgLyogNTkgKi8KLQl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiA2MiAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiA2NCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNjUgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiA2NiAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgl9LCAvKiA2NyAqLwotCXsgMCwJVFMsCXN5c19zaWdnZXRtYXNrLAkJInNpZ2dldG1hc2siCX0sIC8qIDY4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3NldG1hc2ssCQkic2lnc2V0bWFzayIJfSwgLyogNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNzAgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogNzEgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNzQgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA3NSAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJvbGRfZ2V0cmxpbWl0Igl9LCAvKiA3NiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiA3OCAqLwotCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJfSwgLyogNzkgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDgxICovCi0JeyAxLAkwLAlzeXNfb2xkc2VsZWN0LAkJIm9sZHNlbGVjdCIJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA4MyAqLwotCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJfSwgLyogODQgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkJInJlYWRkaXIiCX0sIC8qIDg5ICovCi0JeyA2LAkwLAlzeXNfb2xkX21tYXAsCQkib2xkX21tYXAiCX0sIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogOTEgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5NCAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogOTYgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA5NyAqLwotCXsgNCwJMCwJc3lzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDk4ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KLQl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwifSwgLyogMTAyICovCi0jZWxzZQotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIsIFNZU19zb2NrZXRjYWxsIH0sIC8qIDEwMiAqLwotI2VuZGlmCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgLyogMTA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogMTA1ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEwNiAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEwNyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTA4ICovCi0JeyAxLAkwLAlzeXNfb2xkdW5hbWUsCQkib2xkdW5hbWUiCX0sIC8qIDEwOSAqLwotCXsgMSwJMCwJc3lzX2lvcGwsCQkiaW9wbCIJCX0sIC8qIDExMCAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCi0JeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCi0JeyAxLAkwLAlzeXNfdm04Nm9sZCwJCSJ2bTg2b2xkIgl9LCAvKiAxMTMgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiLCBTWVNfd2FpdDQgfSwgLyogMTE0ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgl9LCAvKiAxMTUgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sIC8qIDExNiAqLwotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotCXsgNiwJMCwJc3lzX2lwYywJCSJpcGMifSwgLyogMTE3ICovCi0jZWxzZQotCXsgNiwJMCwJc3lzX2lwYywJCSJpcGMiLCBTWVNfaXBjIH0sIC8qIDExNyAqLwotI2VuZGlmCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMTggKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJfSwgLyogMTE5ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIiwgU1lTX2Nsb25lIH0sIC8qIDEyMCAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLwotI2lmZGVmIE02OEsKLQl7IDQsCTAsCXN5c19jYWNoZWZsdXNoLAkJImNhY2hlZmx1c2giCX0sIC8qIDEyMyAqLwotI2Vsc2UKLQl7IDMsCTAsCXN5c19tb2RpZnlfbGR0LAkJIm1vZGlmeV9sZHQiCX0sIC8qIDEyMyAqLwotI2VuZGlmCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sIC8qIDEyNCAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDEyNyAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiAxMjkgKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTMwICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogMTMyICovCi0JeyAxLAkwLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIsIFNZU19zeXNmcyB9LCAvKiAxMzUgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiAxMzYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQiCX0sIC8qIDEzOSAqLwotCXsgNSwJMCwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgl9LCAvKiAxNDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiAxNDMgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IiwgU1lTX3JlYWR2IH0sIC8qIDE0NSAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiLCBTWVNfd3JpdGV2IH0sIC8qIDE0NiAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDE0NyAqLwotCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDE0OCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgl9LCAvKiAxNDkgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sIC8qIDE1MCAqLwotCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgLyogMTUxICovCi0JeyAyLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCX0sIC8qIDE1MiAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgLyogMTUzICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiAxNTQgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIn0sIC8qIDE1NSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciJ9LCAvKiAxNTYgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogMTU3ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCJ9LCAvKiAxNTggKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sIC8qIDE1OSAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwgLyogMTYwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwgLyogMTYxICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogMTYyICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJfSwgLyogMTYzICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJfSwgLyogMTY0ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogMTY1ICovCi0jaWZkZWYgTTY4SwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjYiCX0sIC8qIDE2NiAqLwotI2Vsc2UKLQl7IDUsCTAsCXByaW50YXJncywJCSJ2bTg2IgkJfSwgLyogMTY2ICovCi0jZW5kaWYKLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sIC8qIDE3NCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCi0KLQl7IDUsCVRGLAlzeXNfcHJlYWQsCQkicHJlYWQ2NCIsIFNZU19yZWFkIH0sIC8qIDE4MCAqLwotCXsgNSwJVEYsCXN5c19wd3JpdGUsCQkicHdyaXRlNjQiLCBTWVNfd3JpdGUgfSwgLyogMTgxICovCi0jaWZkZWYgTTY4SwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE4MiAqLwotI2Vsc2UKLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiAxODIgKi8KLSNlbmRpZgotCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAvKiAxODMgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxODQgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiAxODUgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogMTg2ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiAxODcgKi8KLQl7IDUsCTAsCXN5c19nZXRwbXNnLAkJImdldHBtc2ciCX0sIC8qIDE4OCAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJfSwgLyogMTg5ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkJInZmb3JrIiwgU1lTX3Zmb3JrIH0sIC8qIDE5MCAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDE5MSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcDIiCQl9LCAvKiAxOTIgKi8KLQl7IDMsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiAxOTMgKi8KLQl7IDMsCVRGLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJfSwgLyogMTk0ICovCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJCSJzdGF0NjQiCX0sIC8qIDE5NSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCX0sIC8qIDE5NiAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCX0sIC8qIDE5NyAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24zMiIJfSwgLyogMTk4ICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZDMyIgl9LCAvKiAxOTkgKi8KLQotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQzMiIJfSwgLyogMjAwICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkMzIiCX0sIC8qIDIwMSAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZWdpZDMyIgl9LCAvKiAyMDIgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZDMyIgl9LCAvKiAyMDMgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZDMyIgl9LCAvKiAyMDQgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMzMiwJImdldGdyb3VwczMyIgl9LCAvKiAyMDUgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMzMiwJInNldGdyb3VwczMyIgl9LCAvKiAyMDYgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duMzIiCX0sIC8qIDIwNyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQzMiIJfSwgLyogMjA4ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZDMyIgl9LCAvKiAyMDkgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkMzIiCX0sIC8qIDIxMCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQzMiIJfSwgLyogMjExICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duMzIiCX0sIC8qIDIxMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQzMiIJfSwgLyogMjEzICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZDMyIgl9LCAvKiAyMTQgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZDMyIgl9LCAvKiAyMTUgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZDMyIgl9LCAvKiAyMTYgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxNyAqLwotCXsgMywJMCwJc3lzX21pbmNvcmUsCQkibWluY29yZSIJfSwgLyogMjE4ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KLQl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCX0sIC8qIDIyMCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDIyMSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiCX0sIC8qIDIyMiAqLwotLypUT0RPKi97IDUsCTAsCXByaW50YXJncywJCSJzZWN1cml0eSIJfSwgLyogMjIzICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgl9LCAvKiAyMjQgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAyMjUgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDIyNiAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDIyNyAqLwotCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDIyOCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMjI5ICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogMjMwICovCi0JeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogMjMxICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDIzMiAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogMjMzICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAyMzQgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJfSwgLyogMjM1ICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiAyMzYgKi8KLQl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDIzNyAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogMjM4ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlNjQsCQkic2VuZGZpbGU2NCIJfSwgLyogMjM5ICovCi0JeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyNDAgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI0MSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjQyICovCi0JeyAxLAkwLAlzeXNfc2V0X3RocmVhZF9hcmVhLAkic2V0X3RocmVhZF9hcmVhIiB9LCAvKiAyNDMgKi8KLQl7IDEsCTAsCXN5c19nZXRfdGhyZWFkX2FyZWEsCSJnZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDI0NCAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgl9LCAvKiAyNDUgKi8KLQl7IDEsCTAsCXN5c19pb19kZXN0cm95LAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDI0NiAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJImlvX2dldGV2ZW50cyIJfSwgLyogMjQ3ICovCi0JeyAzLAkwLAlzeXNfaW9fc3VibWl0LAkJImlvX3N1Ym1pdCIJfSwgLyogMjQ4ICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogMjQ5ICovCi0JeyA1LAlURiwJc3lzX2ZhZHZpc2U2NCwJCSJmYWR2aXNlNjQiCX0sIC8qIDI1MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTEiCX0sIC8qIDI1MSAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiLCBfX05SX2V4aXRfZ3JvdXAgfSwgLyogMjUyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogMjUzICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAyNTQgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiAyNTUgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDI1NiAqLwotCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIn0sIC8qIDI1NyAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyJ9LCAvKiAyNTggKi8KLQl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDI1OSAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAyNjAgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJfSwgLyogMjYxICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwJInRpbWVyX2dldG92ZXJydW4ifSwgLyogMjYyICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAyNjMgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogMjY0ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCX0sIC8qIDI2NSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMjY2ICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIn0sIC8qIDI2NyAqLwotCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJCSJzdGF0ZnM2NCIJfSwgLyogMjY4ICovCi0JeyAzLAlURiwJc3lzX2ZzdGF0ZnM2NCwJCSJmc3RhdGZzNjQiCX0sIC8qIDI2OSAqLwotCXsgMywJVFMsCXN5c190Z2tpbGwsCQkidGdraWxsIgl9LCAvKiAyNzAgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMjcxICovCi0JeyA2LAlURiwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJfSwgLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMjczICovCi0JeyA2LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQl9LCAvKiAyNzQgKi8KLQl7IDUsCTAsCXN5c19nZXRfbWVtcG9saWN5LAkiZ2V0X21lbXBvbGljeSIJfSwgLyogMjc1ICovCi0JeyAzLAkwLAlzeXNfc2V0X21lbXBvbGljeSwJInNldF9tZW1wb2xpY3kiCX0sIC8qIDI3NiAqLwotCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogMjc3ICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiAyNzkgKi8KLQl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUiIH0sIC8qIDI4MCAqLwotCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDI4MSAqLwotCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgl9LCAvKiAyODIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJzeXNfa2V4ZWNfbG9hZCIgfSwgLyogMjgzICovCi0JeyA1LAlUUCwJc3lzX3dhaXRpZCwJCSJ3YWl0aWQiLCBTWVNfd2FpdGlkIH0sIC8qIDI4NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCX0sIC8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCX0sIC8qIDI4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCX0sIC8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCX0sIC8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCX0sIC8qIDI5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCX0sIC8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCX0sIC8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCX0sIC8qIDI5MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCX0sIC8qIDI5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCX0sIC8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCX0sIC8qIDI5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCX0sIC8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCX0sIC8qIDI5OSAqLwotCi0jaWYgU1lTX3NvY2tldF9zdWJjYWxsICE9IDMwMAotICNlcnJvciBmaXggbWUKLSNlbmRpZgotCXsgOCwJMCwJcHJpbnRhcmdzLAkJInNvY2tldF9zdWJjYWxsIn0sIC8qIDMwMCAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAzMDEgKi8KLQl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMzAyICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMzAzICovCi0JeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDMwNCAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAzMDUgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMzA2ICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDMwNyAqLwotCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDMwOCAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiLCBTWVNfc3ViX3NlbmQgfSwgLyogMzA5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIsIFNZU19zdWJfcmVjdiB9LCAvKiAzMTAgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIsIFNZU19zdWJfc2VuZHRvIH0sIC8qIDMxMSAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIsIFNZU19zdWJfcmVjdmZyb20gfSwgLyogMzEyICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAzMTMgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAzMTQgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAzMTUgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAzMTYgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAzMTcgKi8KLQotI2lmIFNZU19pcGNfc3ViY2FsbCAhPSAzMTgKLSAjZXJyb3IgZml4IG1lCi0jZW5kaWYKLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzE4ICovCi0JeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJfSwgLyogMzE5ICovCi0JeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDMyMCAqLwotCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAzMjEgKi8KLQl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgl9LCAvKiAzMjIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzIzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjggKi8KLQl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogMzI5ICovCi0JeyA0LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDMzMCAqLwotCXsgNCwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAzMzEgKi8KLQl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMzMyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM4ICovCi0JeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgLyogMzM5ICovCi0JeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMzQwICovCi0JeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDM0MSAqLwotCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAzNDIgKi8KZGlmZiAtLWdpdCBhL21lbS5jIGIvbWVtLmMKaW5kZXggZDdmYzg1Ny4uZDRjMjIzYSAxMDA2NDQKLS0tIGEvbWVtLmMKKysrIGIvbWVtLmMKQEAgLTI5LDcgKzI5LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IG1lbS5jLHYgMS4zNiAyMDA1LzA2LzAxIDE5OjIyOjA3IHJvbGFuZCBFeHAgJAorICoJJElkJAogICovCiAKICNpbmNsdWRlICJkZWZzLmgiCkBAIC03MCw2ICs3MCw3IEBACiAjZW5kaWYKIH0KIAorI2lmIGRlZmluZWQoRlJFRUJTRCkgfHwgZGVmaW5lZChTVU5PUzQpCiBpbnQKIHN5c19zYnJrKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKQEAgLTc5LDYgKzgwLDcgQEAKIAl9CiAJcmV0dXJuIFJWQUxfSEVYOwogfQorI2VuZGlmIC8qIEZSRUVCU0QgfHwgU1VOT1M0ICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtbWFwX3Byb3RbXSA9IHsKIAl7IFBST1RfTk9ORSwJIlBST1RfTk9ORSIsCX0sCkBAIC05NCw2ICs5Niw5IEBACiAjaWZkZWYgUFJPVF9HUk9XU1VQCiAJeyBQUk9UX0dST1dTVVAsICJQUk9UX0dST1dTVVAiCX0sCiAjZW5kaWYKKyNpZmRlZiBQUk9UX1NBTworCXsgUFJPVF9TQU8sCSJQUk9UX1NBTyIJfSwKKyNlbmRpZgogCXsgMCwJCU5VTEwJCX0sCiB9OwogCkBAIC0xMDQsNiArMTA5LDkgQEAKICNpZmRlZiBNQVBfQU5PTllNT1VTCiAJeyBNQVBfQU5PTllNT1VTLCJNQVBfQU5PTllNT1VTIgl9LAogI2VuZGlmCisjaWZkZWYgTUFQXzMyQklUCisJeyBNQVBfMzJCSVQsCSJNQVBfMzJCSVQiCX0sCisjZW5kaWYKICNpZmRlZiBNQVBfUkVOQU1FCiAJeyBNQVBfUkVOQU1FLAkiTUFQX1JFTkFNRSIJfSwKICNlbmRpZgpAQCAtMTgwLDE1ICsxODgsNTIgQEAKICNpZmRlZiBNQVBfTk9DT1JFCiAJeyBNQVBfTk9DT1JFLAkJIk1BUF9OT0NPUkUiCX0sCiAjZW5kaWYKKyNpZmRlZiBUSUxFCisJeyBNQVBfQ0FDSEVfTk9fTE9DQUwsICJNQVBfQ0FDSEVfTk9fTE9DQUwiIH0sCisJeyBNQVBfQ0FDSEVfTk9fTDIsICJNQVBfQ0FDSEVfTk9fTDIiIH0sCisJeyBNQVBfQ0FDSEVfTk9fTDEsICJNQVBfQ0FDSEVfTk9fTDEiIH0sCisjZW5kaWYKIAl7IDAsCQlOVUxMCQl9LAogfTsKIAotI2lmICFIQVZFX0xPTkdfTE9OR19PRkZfVAorI2lmZGVmIFRJTEUKIHN0YXRpYwogaW50Ci1wcmludF9tbWFwKHRjcCx1X2FyZykKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgKnVfYXJnOworYWRkdGlsZWZsYWdzKGZsYWdzKQorbG9uZyBmbGFnczsKK3sKKwlsb25nIGhvbWUgPSBmbGFncyAmIF9NQVBfQ0FDSEVfTUtIT01FKF9NQVBfQ0FDSEVfSE9NRV9NQVNLKTsKKwlmbGFncyAmPSB+X01BUF9DQUNIRV9NS0hPTUUoX01BUF9DQUNIRV9IT01FX01BU0spOworCisJaWYgKGZsYWdzICYgX01BUF9DQUNIRV9JTkNPSEVSRU5UKSB7CisJCWZsYWdzICY9IH5fTUFQX0NBQ0hFX0lOQ09IRVJFTlQ7CisJCWlmIChob21lID09IE1BUF9DQUNIRV9IT01FX05PTkUpIHsKKwkJCXRwcmludGYoInxNQVBfQ0FDSEVfSU5DT0hFUkVOVCIpOworCQkJcmV0dXJuIGZsYWdzOworCQl9CisJCXRwcmludGYoInxfTUFQX0NBQ0hFX0lOQ09IRVJFTlQiKTsKKwl9CisKKwlzd2l0Y2ggKGhvbWUpIHsKKwljYXNlIDA6CWJyZWFrOworCWNhc2UgTUFQX0NBQ0hFX0hPTUVfSEVSRTogdHByaW50ZigifE1BUF9DQUNIRV9IT01FX0hFUkUiKTsgYnJlYWs7CisJY2FzZSBNQVBfQ0FDSEVfSE9NRV9OT05FOiB0cHJpbnRmKCJ8TUFQX0NBQ0hFX0hPTUVfTk9ORSIpOyBicmVhazsKKwljYXNlIE1BUF9DQUNIRV9IT01FX1NJTkdMRTogdHByaW50ZigifE1BUF9DQUNIRV9IT01FX1NJTkdMRSIpOyBicmVhazsKKwljYXNlIE1BUF9DQUNIRV9IT01FX1RBU0s6IHRwcmludGYoInxNQVBfQ0FDSEVfSE9NRV9UQVNLIik7IGJyZWFrOworCWNhc2UgTUFQX0NBQ0hFX0hPTUVfSEFTSDogdHByaW50ZigifE1BUF9DQUNIRV9IT01FX0hBU0giKTsgYnJlYWs7CisJZGVmYXVsdDoKKwkJdHByaW50ZigifE1BUF9DQUNIRV9IT01FKCVkKSIsCisJCQkoaG9tZSA+PiBfTUFQX0NBQ0hFX0hPTUVfU0hJRlQpICk7CisJCWJyZWFrOworCX0KKworCXJldHVybiBmbGFnczsKK30KKyNlbmRpZgorCisjaWYgIUhBVkVfTE9OR19MT05HX09GRl9UCitzdGF0aWMgaW50CitwcmludF9tbWFwKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyAqdV9hcmcsIGxvbmcgbG9uZyBvZmZzZXQpCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJLyogYWRkciAqLwpAQCAtMjA0LDE0ICsyNDksMTkgQEAKIAkJLyogZmxhZ3MgKi8KICNpZmRlZiBNQVBfVFlQRQogCQlwcmludHh2YWwobW1hcF9mbGFncywgdV9hcmdbM10gJiBNQVBfVFlQRSwgIk1BUF8/Pz8iKTsKKyNpZmRlZiBUSUxFCisJCWFkZGZsYWdzKG1tYXBfZmxhZ3MsIGFkZHRpbGVmbGFncyh1X2FyZ1szXSAmIH5NQVBfVFlQRSkpOworI2Vsc2UKIAkJYWRkZmxhZ3MobW1hcF9mbGFncywgdV9hcmdbM10gJiB+TUFQX1RZUEUpOworI2VuZGlmCiAjZWxzZQogCQlwcmludGZsYWdzKG1tYXBfZmxhZ3MsIHVfYXJnWzNdLCAiTUFQXz8/PyIpOwogI2VuZGlmCi0JCS8qIGZkIChpcyBhbHdheXMgaW50LCBub3QgbG9uZykgKi8KLQkJdHByaW50ZigiLCAlZCwgIiwgKGludCl1X2FyZ1s0XSk7CisJCS8qIGZkICovCisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmQodGNwLCB1X2FyZ1s0XSk7CiAJCS8qIG9mZnNldCAqLwotCQl0cHJpbnRmKCIlI2x4IiwgdV9hcmdbNV0pOworCQl0cHJpbnRmKCIsICUjbGx4Iiwgb2Zmc2V0KTsKIAl9CiAJcmV0dXJuIFJWQUxfSEVYOwogfQpAQCAtMjIwLDM2ICsyNzAsNDcgQEAKIGludCBzeXNfb2xkX21tYXAodGNwKQogc3RydWN0IHRjYiAqdGNwOwogewotICAgIGxvbmcgdV9hcmdbNl07CisJbG9uZyB1X2FyZ1s2XTsKIAogI2lmCWRlZmluZWQoSUE2NCkKLSAgICBpbnQgaSwgdjsKLSAgICAvKgotICAgICAqICBJQTY0IHByb2Nlc3NlcyBuZXZlciBjYWxsIHRoaXMgcm91dGluZSwgdGhleSBvbmx5IHVzZSB0aGUKLSAgICAgKiAgbmV3IGBzeXNfbW1hcCcgaW50ZXJmYWNlLiAgVGhpcyBjb2RlIGNvbnZlcnRzIHRoZSBpbnRlZ2VyCi0gICAgICogIGFyZ3VtZW50cyB0aGF0IHRoZSBJQTMyIHByb2Nlc3MgcHVzaGVkIG9udG8gdGhlIHN0YWNrIGludG8KLSAgICAgKiAgbG9uZ3MuCi0gICAgICoKLSAgICAgKiAgTm90ZSB0aGF0IGFkZHJlc3NlcyB3aXRoIGJpdCAzMSBzZXQgd2lsbCBiZSBzaWduIGV4dGVuZGVkLgotICAgICAqICBGb3J0dW5hdGVseSwgdGhvc2UgYWRkcmVzc2VzIGFyZSBub3QgY3VycmVudGx5IGJlaW5nIGdlbmVyYXRlZAotICAgICAqICBmb3IgSUEzMiBwcm9jZXNzZXMgc28gaXQncyBub3QgYSBwcm9ibGVtLgotICAgICAqLwotICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspCi0JaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSArIChpICogc2l6ZW9mKGludCkpLCAmdikgPT0gLTEpCi0JCXJldHVybiAwOwotCWVsc2UKLQkJdV9hcmdbaV0gPSB2OworCWludCBpLCB2OworCS8qCisJICogIElBNjQgcHJvY2Vzc2VzIG5ldmVyIGNhbGwgdGhpcyByb3V0aW5lLCB0aGV5IG9ubHkgdXNlIHRoZQorCSAqICBuZXcgYHN5c19tbWFwJyBpbnRlcmZhY2UuICBUaGlzIGNvZGUgY29udmVydHMgdGhlIGludGVnZXIKKwkgKiAgYXJndW1lbnRzIHRoYXQgdGhlIElBMzIgcHJvY2VzcyBwdXNoZWQgb250byB0aGUgc3RhY2sgaW50bworCSAqICBsb25ncy4KKwkgKgorCSAqICBOb3RlIHRoYXQgYWRkcmVzc2VzIHdpdGggYml0IDMxIHNldCB3aWxsIGJlIHNpZ24gZXh0ZW5kZWQuCisJICogIEZvcnR1bmF0ZWx5LCB0aG9zZSBhZGRyZXNzZXMgYXJlIG5vdCBjdXJyZW50bHkgYmVpbmcgZ2VuZXJhdGVkCisJICogIGZvciBJQTMyIHByb2Nlc3NlcyBzbyBpdCdzIG5vdCBhIHByb2JsZW0uCisJICovCisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSArIChpICogc2l6ZW9mKGludCkpLCAmdikgPT0gLTEpCisJCQlyZXR1cm4gMDsKKwkJZWxzZQorCQkJdV9hcmdbaV0gPSB2OwogI2VsaWYgZGVmaW5lZChTSCkgfHwgZGVmaW5lZChTSDY0KQotICAgIC8qIFNIIGhhcyBhbHdheXMgcGFzc2VkIHRoZSBhcmdzIGluIHJlZ2lzdGVycyAqLwotICAgIGludCBpOwotICAgIGZvciAoaT0wOyBpPDY7IGkrKykKLSAgICAgICAgdV9hcmdbaV0gPSB0Y3AtPnVfYXJnW2ldOworCS8qIFNIIGhhcyBhbHdheXMgcGFzc2VkIHRoZSBhcmdzIGluIHJlZ2lzdGVycyAqLworCWludCBpOworCWZvciAoaT0wOyBpPDY7IGkrKykKKwkJdV9hcmdbaV0gPSB0Y3AtPnVfYXJnW2ldOwogI2Vsc2UKLSAgICBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIHVfYXJnLCAoY2hhciAqKSB1X2FyZykgPT0gLTEpCi0JICAgIHJldHVybiAwOworIyBpZiBkZWZpbmVkKFg4Nl82NCkKKwlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7CisJCWludCBpOworCQlmb3IgKGkgPSAwOyBpIDwgNjsgKytpKSB7CisJCQl1bnNpZ25lZCBpbnQgdmFsOworCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSArIGkgKiA0LCAmdmFsKSA9PSAtMSkKKwkJCQlyZXR1cm4gMDsKKwkJCXVfYXJnW2ldID0gdmFsOworCQl9CisJfQorCWVsc2UKKyMgZW5kaWYKKwlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIHVfYXJnLCAoY2hhciAqKSB1X2FyZykgPT0gLTEpCisJCXJldHVybiAwOwogI2VuZGlmCS8vIGRlZmluZWQoSUE2NCkKLSAgICByZXR1cm4gcHJpbnRfbW1hcCh0Y3AsIHVfYXJnKTsKLQorCXJldHVybiBwcmludF9tbWFwKHRjcCwgdV9hcmcsIHVfYXJnWzVdKTsKIH0KICNlbmRpZgogCkBAIC0yNTcsMjMgKzMxOCwyNyBAQAogc3lzX21tYXAodGNwKQogc3RydWN0IHRjYiAqdGNwOwogeworCWxvbmcgbG9uZyBvZmZzZXQgPSB0Y3AtPnVfYXJnWzVdOworCiAjaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChTSDY0KQotICAgIC8qCi0gICAgICogT2xkIG1tYXAgZGlmZmVycyBmcm9tIG5ldyBtbWFwIGluIHNwZWNpZnlpbmcgdGhlCi0gICAgICogb2Zmc2V0IGluIHVuaXRzIG9mIGJ5dGVzIHJhdGhlciB0aGFuIHBhZ2VzLiAgV2UKLSAgICAgKiBwcmV0ZW5kIGl0J3MgaW4gYnl0ZSB1bml0cyBzbyB0aGUgdXNlciBvbmx5IGV2ZXIKLSAgICAgKiBzZWVzIGJ5dGVzIGluIHRoZSBwcmludG91dC4KLSAgICAgKi8KLSAgICB0Y3AtPnVfYXJnWzVdIDw8PSBQQUdFX1NISUZUOworCS8qCisJICogT2xkIG1tYXAgZGlmZmVycyBmcm9tIG5ldyBtbWFwIGluIHNwZWNpZnlpbmcgdGhlCisJICogb2Zmc2V0IGluIHVuaXRzIG9mIGJ5dGVzIHJhdGhlciB0aGFuIHBhZ2VzLiAgV2UKKwkgKiBwcmV0ZW5kIGl0J3MgaW4gYnl0ZSB1bml0cyBzbyB0aGUgdXNlciBvbmx5IGV2ZXIKKwkgKiBzZWVzIGJ5dGVzIGluIHRoZSBwcmludG91dC4KKwkgKi8KKwlvZmZzZXQgPDw9IFBBR0VfU0hJRlQ7CiAjZW5kaWYKLSAgICByZXR1cm4gcHJpbnRfbW1hcCh0Y3AsIHRjcC0+dV9hcmcpOworI2lmIGRlZmluZWQoTElOVVhfTUlQU04zMikKKwlvZmZzZXQgPSB0Y3AtPmV4dF9hcmdbNV07CisjZW5kaWYKKwlyZXR1cm4gcHJpbnRfbW1hcCh0Y3AsIHRjcC0+dV9hcmcsIG9mZnNldCk7CiB9CiAjZW5kaWYgLyogIUhBVkVfTE9OR19MT05HX09GRl9UICovCiAKICNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCiBpbnQKLXN5c19tbWFwNjQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX21tYXA2NChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAjaWZkZWYgbGludXgKICNpZmRlZiBBTFBIQQpAQCAtMjkzLDcgKzM1OCw2IEBACiAJCQlyZXR1cm4gMDsKICNlbmRpZiAvKiBBTFBIQSAqLwogI2VuZGlmIC8qIGxpbnV4ICovCi0JCUFMSUdONjQgKHRjcCwgNSk7CS8qIEZyZWVCU0Qgd2llcmRpZXMgKi8KIAogCQkvKiBhZGRyICovCiAJCXRwcmludGYoIiUjbHgsICIsIHVfYXJnWzBdKTsKQEAgLTMxMCw5ICszNzQsMTAgQEAKIAkJcHJpbnRmbGFncyhtbWFwX2ZsYWdzLCB1X2FyZ1szXSwgIk1BUF8/Pz8iKTsKICNlbmRpZgogCQkvKiBmZCAqLwotCQl0cHJpbnRmKCIsICVsZCwgIiwgdV9hcmdbNF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1s0XSk7CiAJCS8qIG9mZnNldCAqLwotCQl0cHJpbnRmKCIlI2xseCIsIExPTkdfTE9ORyh1X2FyZ1s1XSwgdV9hcmdbNl0pKTsKKwkJcHJpbnRsbHZhbCh0Y3AsICIsICUjbGx4IiwgNSk7CiAJfQogCXJldHVybiBSVkFMX0hFWDsKIH0KQEAgLTM0NiwyNiArNDExLDMzIEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtcmVtYXBfZmxhZ3NbXSA9IHsKIAl7IE1SRU1BUF9NQVlNT1ZFLAkiTVJFTUFQX01BWU1PVkUiCX0sCisjaWZkZWYgTVJFTUFQX0ZJWEVECisJeyBNUkVNQVBfRklYRUQsCQkiTVJFTUFQX0ZJWEVEIgkJfSwKKyNlbmRpZgogCXsgMCwJCQlOVUxMCQkJfQogfTsKIAogaW50Ci1zeXNfbXJlbWFwKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19tcmVtYXAoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXRwcmludGYoIiUjbHgsICVsdSwgJWx1LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdLAogCQkJdGNwLT51X2FyZ1syXSk7CiAJCXByaW50ZmxhZ3MobXJlbWFwX2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiTVJFTUFQXz8/PyIpOworI2lmZGVmIE1SRU1BUF9GSVhFRAorCQlpZiAoKHRjcC0+dV9hcmdbM10gJiAoTVJFTUFQX01BWU1PVkUgfCBNUkVNQVBfRklYRUQpKSA9PQorCQkgICAgKE1SRU1BUF9NQVlNT1ZFIHwgTVJFTUFQX0ZJWEVEKSkKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNF0pOworI2VuZGlmCiAJfQogCXJldHVybiBSVkFMX0hFWDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1hZHZpc2VfZmxhZ3NbXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtYWR2aXNlX2NtZHNbXSA9IHsKICNpZmRlZiBNQURWX05PUk1BTAogCXsgTUFEVl9OT1JNQUwsCQkiTUFEVl9OT1JNQUwiIH0sCiAjZW5kaWYKLSNpZmRlZiBNQURaVl9SQU5ET00KKyNpZmRlZiBNQURWX1JBTkRPTQogCXsgTUFEVl9SQU5ET00sCQkiTUFEVl9SQU5ET00iIH0sCiAjZW5kaWYKICNpZmRlZiBNQURWX1NFUVVFTlRJQUwKQEAgLTM3NCw3ICs0NDYsNyBAQAogI2lmZGVmIE1BRFZfV0lMTE5FRUQKIAl7IE1BRFZfV0lMTE5FRUQsCSJNQURWX1dJTExORUVEIiB9LAogI2VuZGlmCi0jaWZkZWYgTUFEVl9ET05UTkVECisjaWZkZWYgTUFEVl9ET05UTkVFRAogCXsgTUFEVl9ET05UTkVFRCwJIk1BRFZfRE9OVE5FRUQiIH0sCiAjZW5kaWYKIAl7IDAsCQkJTlVMTCB9LApAQCAtMzg3LDcgKzQ1OSw3IEBACiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdHByaW50ZigiJSNseCwgJWx1LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQkJcHJpbnRmbGFncyhtYWR2aXNlX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiTUFEVl8/Pz8iKTsKKwkJcHJpbnR4dmFsKG1hZHZpc2VfY21kcywgdGNwLT51X2FyZ1syXSwgIk1BRFZfPz8/Iik7CiAJfQogCXJldHVybiAwOwogfQpAQCAtNTI3LDYgKzU5OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKKyNpZiBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKEZSRUVCU0QpIHx8IGRlZmluZWQoSUE2NCkgfHwgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChTUEFSQykgfHwgZGVmaW5lZChTUEFSQzY0KQogaW50CiBzeXNfZ2V0cGFnZXNpemUodGNwKQogc3RydWN0IHRjYiAqdGNwOwpAQCAtNTM1LDExICs2MDgsMTEgQEAKIAkJcmV0dXJuIFJWQUxfSEVYOwogCXJldHVybiAwOwogfQorI2VuZGlmIC8qIEFMUEhBIHx8IEZSRUVCU0QgfHwgSUE2NCB8fCBTVU5PUzQgfHwgU1ZSNCAqLwogCiAjaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChfX2kzODZfXykKIHZvaWQKLXByaW50X2xkdF9lbnRyeSAobGR0X2VudHJ5KQotc3RydWN0IG1vZGlmeV9sZHRfbGR0X3MgKmxkdF9lbnRyeTsKK3ByaW50X2xkdF9lbnRyeShzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcyAqbGR0X2VudHJ5KQogewogCXRwcmludGYoImJhc2VfYWRkcjolIzA4bHgsICIKIAkJImxpbWl0OiVkLCAiCkBAIC01NDksNyArNjIyLDcgQEAKIAkJImxpbWl0X2luX3BhZ2VzOiVkLCAiCiAJCSJzZWdfbm90X3ByZXNlbnQ6JWQsICIKIAkJInVzZWFibGU6JWR9IiwKLQkJbGR0X2VudHJ5LT5iYXNlX2FkZHIsCisJCShsb25nKSBsZHRfZW50cnktPmJhc2VfYWRkciwKIAkJbGR0X2VudHJ5LT5saW1pdCwKIAkJbGR0X2VudHJ5LT5zZWdfMzJiaXQsCiAJCWxkdF9lbnRyeS0+Y29udGVudHMsCkBAIC02MzQsNiArNzA3LDI2IEBACiB9CiAjZW5kaWYgLyogTElOVVggJiYgX19pMzg2X18gKi8KIAorI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoTTY4SykKKworaW50CitzeXNfc2V0X3RocmVhZF9hcmVhKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCXJldHVybiAwOworCit9CisKK2ludAorc3lzX2dldF90aHJlYWRfYXJlYSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIFJWQUxfSEVYOworfQorI2VuZGlmCisKICNpZiBkZWZpbmVkKExJTlVYKQogaW50CiBzeXNfcmVtYXBfZmlsZV9wYWdlcyh0Y3ApCkBAIC02NjMsNiArNzU2LDggQEAKICNkZWZpbmUgTVBPTF9GX0FERFIgICAgICgxPDwxKQogCiAjZGVmaW5lIE1QT0xfTUZfU1RSSUNUICAoMTw8MCkKKyNkZWZpbmUgTVBPTF9NRl9NT1ZFCSgxPDwxKQorI2RlZmluZSBNUE9MX01GX01PVkVfQUxMICgxPDwyKQogCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwb2xpY2llc1tdID0gewpAQCAtNjc1LDYgKzc3MCw4IEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtYmluZGZsYWdzW10gPSB7CiAJeyBNUE9MX01GX1NUUklDVCwJIk1QT0xfTUZfU1RSSUNUIgl9LAorCXsgTVBPTF9NRl9NT1ZFLAkJIk1QT0xfTUZfTU9WRSIJCX0sCisJeyBNUE9MX01GX01PVkVfQUxMLAkiTVBPTF9NRl9NT1ZFX0FMTCIJfSwKIAl7IDAsCQkJTlVMTAkJCX0KIH07CiAKQEAgLTY4NCw2ICs3ODEsMTIgQEAKIAl7IDAsCQkJTlVMTAkJCX0KIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb3ZlX3BhZ2VzX2ZsYWdzW10gPSB7CisJeyBNUE9MX01GX01PVkUsCQkiTVBPTF9NRl9NT1ZFIgkJfSwKKwl7IE1QT0xfTUZfTU9WRV9BTEwsCSJNUE9MX01GX01PVkVfQUxMIgl9LAorCXsgMCwJCQlOVUxMCQkJfQorfTsKKwogCiBzdGF0aWMgdm9pZAogZ2V0X25vZGVzKHRjcCwgcHRyLCBtYXhub2RlcywgZXJyKQpAQCAtNzM3LDcgKzg0MCw3IEBACiBzdHJ1Y3QgdGNiICp0Y3A7CiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWx1LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIlI2x4LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwogCQlwcmludHh2YWwocG9saWNpZXMsIHRjcC0+dV9hcmdbMl0sICJNUE9MXz8/PyIpOwogCQlnZXRfbm9kZXModGNwLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdLCAwKTsKIAkJdHByaW50ZigiLCAiKTsKQEAgLTc3NSw0ICs4NzgsMTI2IEBACiAJfQogCXJldHVybiAwOwogfQorCitpbnQKK3N5c19tb3ZlX3BhZ2VzKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl1bnNpZ25lZCBsb25nIG5wYWdlcyA9IHRjcC0+dV9hcmdbMV07CisJCXRwcmludGYoIiVsZCwgJWx1LCAiLCB0Y3AtPnVfYXJnWzBdLCBucGFnZXMpOworCQlpZiAodGNwLT51X2FyZ1syXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCwgIik7CisJCWVsc2UgeworCQkJaW50IGk7CisJCQlsb25nIHB1c2VyID0gdGNwLT51X2FyZ1syXTsKKwkJCXRwcmludGYoInsiKTsKKwkJCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7ICsraSkgeworCQkJCXZvaWQgKnA7CisJCQkJaWYgKGkgPiAwKQorCQkJCQl0cHJpbnRmKCIsICIpOworCQkJCWlmICh1bW92ZSh0Y3AsIHB1c2VyLCAmcCkgPCAwKSB7CisJCQkJCXRwcmludGYoIj8/PyIpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJdHByaW50ZigiJXAiLCBwKTsKKwkJCQlwdXNlciArPSBzaXplb2YgKHZvaWQgKik7CisJCQl9CisJCQl0cHJpbnRmKCJ9LCAiKTsKKwkJfQorCQlpZiAodGNwLT51X2FyZ1szXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCwgIik7CisJCWVsc2UgeworCQkJaW50IGk7CisJCQlsb25nIG5vZGV1c2VyID0gdGNwLT51X2FyZ1szXTsKKwkJCXRwcmludGYoInsiKTsKKwkJCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7ICsraSkgeworCQkJCWludCBub2RlOworCQkJCWlmIChpID4gMCkKKwkJCQkJdHByaW50ZigiLCAiKTsKKwkJCQlpZiAodW1vdmUodGNwLCBub2RldXNlciwgJm5vZGUpIDwgMCkgeworCQkJCQl0cHJpbnRmKCI/Pz8iKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCXRwcmludGYoIiUjeCIsIG5vZGUpOworCQkJCW5vZGV1c2VyICs9IHNpemVvZiAoaW50KTsKKwkJCX0KKwkJCXRwcmludGYoIn0sICIpOworCQl9CisJfQorCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJdW5zaWduZWQgbG9uZyBucGFnZXMgPSB0Y3AtPnVfYXJnWzFdOworCQlpZiAodGNwLT51X2FyZ1s0XSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCwgIik7CisJCWVsc2UgeworCQkJaW50IGk7CisJCQlsb25nIHN0YXR1c3VzZXIgPSB0Y3AtPnVfYXJnWzRdOworCQkJdHByaW50ZigieyIpOworCQkJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgKytpKSB7CisJCQkJaW50IHN0YXR1czsKKwkJCQlpZiAoaSA+IDApCisJCQkJCXRwcmludGYoIiwgIik7CisJCQkJaWYgKHVtb3ZlKHRjcCwgc3RhdHVzdXNlciwgJnN0YXR1cykgPCAwKSB7CisJCQkJCXRwcmludGYoIj8/PyIpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJdHByaW50ZigiJSN4Iiwgc3RhdHVzKTsKKwkJCQlzdGF0dXN1c2VyICs9IHNpemVvZiAoaW50KTsKKwkJCX0KKwkJCXRwcmludGYoIn0sICIpOworCQl9CisJCXByaW50ZmxhZ3MobW92ZV9wYWdlc19mbGFncywgdGNwLT51X2FyZ1s1XSwgIk1QT0xfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKFBPV0VSUEMpCitpbnQKK3N5c19zdWJwYWdlX3Byb3QodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXVuc2lnbmVkIGxvbmcgY3VyLCBlbmQsIGFiYnJldl9lbmQsIGVudHJpZXM7CisJCXVuc2lnbmVkIGludCBlbnRyeTsKKworCQl0cHJpbnRmKCIlI2x4LCAlI2x4LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZW50cmllcyA9IHRjcC0+dV9hcmdbMV0gPj4gMTY7CisJCWlmICghZW50cmllcyB8fCAhdGNwLT51X2FyZ1syXSkgeworCQkJdHByaW50Zigie30iKTsKKwkJCXJldHVybiAwOworCQl9CisJCWN1ciA9IHRjcC0+dV9hcmdbMl07CisJCWVuZCA9IGN1ciArIChzaXplb2YoaW50KSAqIGVudHJpZXMpOworCQlpZiAoIXZlcmJvc2UodGNwKSB8fCBlbmQgPCB0Y3AtPnVfYXJnWzJdKSB7CisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlpZiAoYWJicmV2KHRjcCkpIHsKKwkJCWFiYnJldl9lbmQgPSBjdXIgKyAoc2l6ZW9mKGludCkgKiBtYXhfc3RybGVuKTsKKwkJCWlmIChhYmJyZXZfZW5kID4gZW5kKQorCQkJCWFiYnJldl9lbmQgPSBlbmQ7CisJCX0KKwkJZWxzZQorCQkJYWJicmV2X2VuZCA9IGVuZDsKKwkJdHByaW50ZigieyIpOworCQlmb3IgKDsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mKGludCkpIHsKKwkJCWlmIChjdXIgPiB0Y3AtPnVfYXJnWzJdKQorCQkJCXRwcmludGYoIiwgIik7CisJCQlpZiAoY3VyID49IGFiYnJldl9lbmQpIHsKKwkJCQl0cHJpbnRmKCIuLi4iKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGN1ciwgJmVudHJ5KSA8IDApIHsKKwkJCQl0cHJpbnRmKCI/Pz8gWyUjbHhdIiwgY3VyKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIlIzA4eCIsIGVudHJ5KTsKKwkJfQorCQl0cHJpbnRmKCJ9Iik7CisJfQorCisJcmV0dXJuIDA7Cit9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL21pc3NpbmcgYi9taXNzaW5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlN2VmODNhLi4wMDAwMDAwCi0tLSBhL21pc3NpbmcKKysrIC9kZXYvbnVsbApAQCAtMSwzNjAgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBDb21tb24gc3R1YiBmb3IgYSBmZXcgbWlzc2luZyBHTlUgcHJvZ3JhbXMgd2hpbGUgaW5zdGFsbGluZy4KLQotc2NyaXB0dmVyc2lvbj0yMDAzLTA5LTAyLjIzCi0KLSMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAzIAotIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KLQotIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0jIGFueSBsYXRlciB2ZXJzaW9uLgotCi0jIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0jIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BCi0jIDAyMTExLTEzMDcsIFVTQS4KLQotIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0jIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0KLWlmIHRlc3QgJCMgLWVxIDA7IHRoZW4KLSAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotICBleGl0IDEKLWZpCi0KLXJ1bj06Ci0KLSMgSW4gdGhlIGNhc2VzIHdoZXJlIHRoaXMgbWF0dGVycywgYG1pc3NpbmcnIGlzIGJlaW5nIHJ1biBpbiB0aGUKLSMgc3JjZGlyIGFscmVhZHkuCi1pZiB0ZXN0IC1mIGNvbmZpZ3VyZS5hYzsgdGhlbgotICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmFjCi1lbHNlCi0gIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuaW4KLWZpCi0KLW1zZz0ibWlzc2luZyBvbiB5b3VyIHN5c3RlbSIKLQotY2FzZSAiJDEiIGluCi0tLXJ1bikKLSAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2NlZWRzLgotICBydW49Ci0gIHNoaWZ0Ci0gICIkQCIgJiYgZXhpdCAwCi0gICMgRXhpdCBjb2RlIDYzIG1lYW5zIHZlcnNpb24gbWlzbWF0Y2guICBUaGlzIG9mdGVuIGhhcHBlbnMKLSAgIyB3aGVuIHRoZSB1c2VyIHRyeSB0byB1c2UgYW4gYW5jaWVudCB2ZXJzaW9uIG9mIGEgdG9vbCBvbgotICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNlIHdlCi0gICMgd2Ugc2hvdWxkIHByb2NlZWQgaGFzIGlmIHRoZSBwcm9ncmFtIGhhZCBiZWVuIGFic2VudCwgb3IKLSAgIyBpZiAtLXJ1biBoYWRuJ3QgYmVlbiBwYXNzZWQuCi0gIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgotICAgIHJ1bj06Ci0gICAgbXNnPSJwcm9iYWJseSB0b28gb2xkIgotICBmaQotICA7OwotZXNhYwotCi0jIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAotIyB0cnkgdG8gZW11bGF0ZSBpdC4KLWNhc2UgIiQxIiBpbgotCi0gIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKLSAgICBlY2hvICJcCi0kMCBbT1BUSU9OXS4uLiBQUk9HUkFNIFtBUkdVTUVOVF0uLi4KLQotSGFuZGxlIFxgUFJPR1JBTSBbQVJHVU1FTlRdLi4uJyBmb3Igd2hlbiBQUk9HUkFNIGlzIG1pc3NpbmcsIG9yIHJldHVybiBhbgotZXJyb3Igc3RhdHVzIGlmIHRoZXJlIGlzIG5vIGtub3duIGhhbmRsaW5nIGZvciBQUk9HUkFNLgotCi1PcHRpb25zOgotICAtaCwgLS1oZWxwICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKLSAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gIC0tcnVuICAgICAgICAgICB0cnkgdG8gcnVuIHRoZSBnaXZlbiBjb21tYW5kLCBhbmQgZW11bGF0ZSBpdCBpZiBpdCBmYWlscwotCi1TdXBwb3J0ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0gIGFjbG9jYWwgICAgICB0b3VjaCBmaWxlIFxgYWNsb2NhbC5tNCcKLSAgYXV0b2NvbmYgICAgIHRvdWNoIGZpbGUgXGBjb25maWd1cmUnCi0gIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCi0gIGF1dG9tYWtlICAgICB0b3VjaCBhbGwgXGBNYWtlZmlsZS5pbicgZmlsZXMKLSAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotICBmbGV4ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuYwotICBoZWxwMm1hbiAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0gIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCi0gIG1ha2VpbmZvICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSAgdGFyICAgICAgICAgIHRyeSB0YXIsIGdudXRhciwgZ3RhciwgdGhlbiB0YXIgd2l0aG91dCBub24tcG9ydGFibGUgZmxhZ3MKLSAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotCi1TZW5kIGJ1ZyByZXBvcnRzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uIgotICAgIDs7Ci0KLSAgLXZ8LS12fC0tdmV8LS12ZXJ8LS12ZXJzfC0tdmVyc2l8LS12ZXJzaW98LS12ZXJzaW9uKQotICAgIGVjaG8gIm1pc3NpbmcgJHNjcmlwdHZlcnNpb24gKEdOVSBBdXRvbWFrZSkiCi0gICAgOzsKLQotICAtKikKLSAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlvbiIKLSAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCi0gICAgZXhpdCAxCi0gICAgOzsKLQotICBhY2xvY2FsKikKLSAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgotICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNpbmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAotICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQotICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIHRvdWNoIGFjbG9jYWwubTQKLSAgICA7OwotCi0gIGF1dG9jb25mKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0gICAgICAgICB5b3UgbW9kaWZpZWQgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSAgICAgICAgIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VCi0gICAgICAgICBhcmNoaXZlIHNpdGUuIgotICAgIHRvdWNoIGNvbmZpZ3VyZQotICAgIDs7Ci0KLSAgYXV0b2hlYWRlcikKLSAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgotICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25maWcuaCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKLSAgICAgICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMuICBHcmFiIHRoZW0KLSAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIGZpbGVzPWBzZWQgLW4gJ3MvXlsgXSpBW0NNXV9DT05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2NvbmZpZ3VyZV9hY31gCi0gICAgdGVzdCAteiAiJGZpbGVzIiAmJiBmaWxlcz0iY29uZmlnLmgiCi0gICAgdG91Y2hfZmlsZXM9Ci0gICAgZm9yIGYgaW4gJGZpbGVzOyBkbwotICAgICAgY2FzZSAiJGYiIGluCi0gICAgICAqOiopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAotCQkJCSAgICAgICBzZWQgLWUgJ3MvXlteOl0qOi8vJyAtZSAncy86LiovLydgOzsKLSAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKLSAgICAgIGVzYWMKLSAgICBkb25lCi0gICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0gICAgOzsKLQotICBhdXRvbWFrZSopCi0gICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KLSAgICAgICBleGl0IDEKLSAgICBmaQotCi0gICAgZWNobyAxPiYyICJcCi1XQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KLSAgICAgICAgIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLgotICAgICAgICAgR3JhYiB0aGVtIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8Ci0JICAgc2VkICdzL1wuYW0kLy5pbi8nIHwKLQkgICB3aGlsZSByZWFkIGY7IGRvIHRvdWNoICIkZiI7IGRvbmUKLSAgICA7OwotCi0gIGF1dG9tNHRlKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBidXQgaXMgJG1zZy4KLSAgICAgICAgIFlvdSBtaWdodCBoYXZlIG1vZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCi0gICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KLSAgICAgICAgIFlvdSBjYW4gZ2V0IFxgJDEnIGFzIHBhcnQgb2YgXGBBdXRvY29uZicgZnJvbSBhbnkgR05VCi0gICAgICAgICBhcmNoaXZlIHNpdGUuIgotCi0gICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLS1vdXRwdXRbID1dKlwoW14gXSpcKS4qL1wxL3AnYAotICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotb1sgXSpcKFteIF0qXCkuKi9cMS9wJ2AKLSAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KLQl0b3VjaCAkZmlsZQotICAgIGVsc2UKLQl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKLQllY2hvICIjISAvYmluL3NoIgotCWVjaG8gIiMgQ3JlYXRlZCBieSBHTlUgQXV0b21ha2UgbWlzc2luZyBhcyBhIHJlcGxhY2VtZW50IG9mIgotCWVjaG8gIiMgICQgJEAiCi0JZWNobyAiZXhpdCAwIgotCWNobW9kICt4ICRmaWxlCi0JZXhpdCAxCi0gICAgZmkKLSAgICA7OwotCi0gIGJpc29ufHlhY2MpCi0gICAgZWNobyAxPiYyICJcCi1XQVJOSU5HOiBcYCQxJyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSAgICAgICAgIFxgQmlzb24nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIHJtIC1mIHkudGFiLmMgeS50YWIuaAotICAgIGlmIFsgJCMgLW5lIDEgXTsgdGhlbgotICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLQljYXNlICIkTEFTVEFSRyIgaW4KLQkqLnkpCi0JICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9jLydgCi0JICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCi0JICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5jCi0JICAgIGZpCi0JICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCi0JICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCi0JICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5oCi0JICAgIGZpCi0JICA7OwotCWVzYWMKLSAgICBmaQotICAgIGlmIFsgISAtZiB5LnRhYi5oIF07IHRoZW4KLQllY2hvID55LnRhYi5oCi0gICAgZmkKLSAgICBpZiBbICEgLWYgeS50YWIuYyBdOyB0aGVuCi0JZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0nID55LnRhYi5jCi0gICAgZmkKLSAgICA7OwotCi0gIGxleHxmbGV4KQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0gICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKLSAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSAgICAgICAgIFxgRmxleCcgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0gICAgcm0gLWYgbGV4Lnl5LmMKLSAgICBpZiBbICQjIC1uZSAxIF07IHRoZW4KLSAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCi0JY2FzZSAiJExBU1RBUkciIGluCi0JKi5sKQotCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8nYAotCSAgICBpZiBbIC1mICIkU1JDRklMRSIgXTsgdGhlbgotCSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4Lnl5LmMKLQkgICAgZmkKLQkgIDs7Ci0JZXNhYwotICAgIGZpCi0gICAgaWYgWyAhIC1mIGxleC55eS5jIF07IHRoZW4KLQllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPmxleC55eS5jCi0gICAgZmkKLSAgICA7OwotCi0gIGhlbHAybWFuKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0JIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlvdSBtYXkgbmVlZCB0aGUKLQkgXGBIZWxwMm1hbicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlCi0JIGVmZmVjdC4gIFlvdSBjYW4gZ2V0IFxgSGVscDJtYW4nIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotCi0gICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLW8gXChbXiBdKlwpLiovXDEvcCdgCi0gICAgaWYgdGVzdCAteiAiJGZpbGUiOyB0aGVuCi0JZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLS1vdXRwdXQ9XChbXiBdKlwpLiovXDEvcCdgCi0gICAgZmkKLSAgICBpZiBbIC1mICIkZmlsZSIgXTsgdGhlbgotCXRvdWNoICRmaWxlCi0gICAgZWxzZQotCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQotCWVjaG8gIi5hYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCi0JZXhpdCAxCi0gICAgZmkKLSAgICA7OwotCi0gIG1ha2VpbmZvKQotICAgIGlmIHRlc3QgLXogIiRydW4iICYmIChtYWtlaW5mbyAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgICAgICAjIFdlIGhhdmUgbWFrZWluZm8sIGJ1dCBpdCBmYWlsZWQuCi0gICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGVjaG8gMT4mMiAiXAotV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0gICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQotICAgICAgICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNwdXJpb3VzCi0gICAgICAgICBjYWxsIG1pZ2h0IGFsc28gYmUgdGhlIGNvbnNlcXVlbmNlIG9mIHVzaW5nIGEgYnVnZ3kgXGBtYWtlJyAoQUlYLAotICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCi0gICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAncy8uKi1vIFwoW14gXSpcKS4qL1wxL3AnYAotICAgIGlmIHRlc3QgLXogIiRmaWxlIjsgdGhlbgotICAgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpcKSAqJC9cMS8nYAotICAgICAgZmlsZT1gc2VkIC1uICcvXkBzZXRmaWxlbmFtZS8geyBzLy4qIFwoW14gXSpcKSAqJC9cMS87IHA7IHE7IH0nICRmaWxlYAotICAgIGZpCi0gICAgdG91Y2ggJGZpbGUKLSAgICA7OwotCi0gIHRhcikKLSAgICBzaGlmdAotICAgIGlmIHRlc3QgLW4gIiRydW4iOyB0aGVuCi0gICAgICBlY2hvIDE+JjIgIkVSUk9SOiBcYHRhcicgcmVxdWlyZXMgLS1ydW4iCi0gICAgICBleGl0IDEKLSAgICBmaQotCi0gICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0gICAgIyBMb29rIGZvciBnbnV0YXIvZ3RhciBiZWZvcmUgaW52b2NhdGlvbiB0byBhdm9pZCB1Z2x5IGVycm9yCi0gICAgIyBtZXNzYWdlcy4KLSAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgotICAgICAgIGdudXRhciAiJEAiICYmIGV4aXQgMAotICAgIGZpCi0gICAgaWYgKGd0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0gICAgICAgZ3RhciAiJEAiICYmIGV4aXQgMAotICAgIGZpCi0gICAgZmlyc3Rhcmc9IiQxIgotICAgIGlmIHNoaWZ0OyB0aGVuCi0JY2FzZSAiJGZpcnN0YXJnIiBpbgotCSpvKikKLQkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9vLy9gCi0JICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotCSAgICA7OwotCWVzYWMKLQljYXNlICIkZmlyc3RhcmciIGluCi0JKmgqKQotCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLQkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCi0JICAgIDs7Ci0JZXNhYwotICAgIGZpCi0KLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IEkgY2FuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLgotICAgICAgICAgWW91IG1heSB3YW50IHRvIGluc3RhbGwgR05VIHRhciBvciBGcmVlIHBheHV0aWxzLCBvciBjaGVjayB0aGUKLSAgICAgICAgIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIgotICAgIGV4aXQgMQotICAgIDs7Ci0KLSAgKikKLSAgICBlY2hvIDE+JjIgIlwKLVdBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCi0gICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQotICAgICAgICAgcHJvcGVyIHRvb2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uICBDaGVjayB0aGUgXGBSRUFETUUnIGZpbGUsCi0gICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCi0gICAgICAgICB0aGlzIHBhY2thZ2UuICBZb3UgbWF5IGFsc28gcGVlayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2FzZQotICAgICAgICAgc29tZSBvdGhlciBwYWNrYWdlIHdvdWxkIGNvbnRhaW4gdGhpcyBtaXNzaW5nIFxgJDEnIHByb2dyYW0uIgotICAgIGV4aXQgMQotICAgIDs7Ci1lc2FjCi0KLWV4aXQgMAotCi0jIExvY2FsIHZhcmlhYmxlczoKLSMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCi0jIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0jIEVuZDoKZGlmZiAtLWdpdCBhL21raW5zdGFsbGRpcnMgYi9ta2luc3RhbGxkaXJzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2ZmJlNWUxLi4wMDAwMDAwCi0tLSBhL21raW5zdGFsbGRpcnMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBta2luc3RhbGxkaXJzIC0tLSBtYWtlIGRpcmVjdG9yeSBoaWVyYXJjaHkKLQotc2NyaXB0dmVyc2lvbj0yMDA0LTAyLTE1LjIwCi0KLSMgT3JpZ2luYWwgYXV0aG9yOiBOb2FoIEZyaWVkbWFuIDxmcmllZG1hbkBwcmVwLmFpLm1pdC5lZHU+Ci0jIENyZWF0ZWQ6IDE5OTMtMDUtMTYKLSMgUHVibGljIGRvbWFpbi4KLSMKLSMgVGhpcyBmaWxlIGlzIG1haW50YWluZWQgaW4gQXV0b21ha2UsIHBsZWFzZSByZXBvcnQKLSMgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+IG9yIHNlbmQgcGF0Y2hlcyB0bwotIyA8YXV0b21ha2UtcGF0Y2hlc0BnbnUub3JnPi4KLQotZXJyc3RhdHVzPTAKLWRpcm1vZGU9IiIKLQotdXNhZ2U9IlwKLVVzYWdlOiBta2luc3RhbGxkaXJzIFstaF0gWy0taGVscF0gWy0tdmVyc2lvbl0gWy1tIE1PREVdIERJUiAuLi4KLQotQ3JlYXRlIGVhY2ggZGlyZWN0b3J5IERJUiAod2l0aCBtb2RlIE1PREUsIGlmIHNwZWNpZmllZCksIGluY2x1ZGluZyBhbGwKLWxlYWRpbmcgZmlsZSBuYW1lIGNvbXBvbmVudHMuCi0KLVJlcG9ydCBidWdzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uIgotCi0jIHByb2Nlc3MgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gIGNhc2UgJDEgaW4KLSAgICAtaCB8IC0taGVscCB8IC0taCopICAgICAgICAgIyAtaCBmb3IgaGVscAotICAgICAgZWNobyAiJHVzYWdlIgotICAgICAgZXhpdCAwCi0gICAgICA7OwotICAgIC1tKSAgICAgICAgICAgICAgICAgICAgICAgICAjIC1tIFBFUk0gYXJnCi0gICAgICBzaGlmdAotICAgICAgdGVzdCAkIyAtZXEgMCAmJiB7IGVjaG8gIiR1c2FnZSIgMT4mMjsgZXhpdCAxOyB9Ci0gICAgICBkaXJtb2RlPSQxCi0gICAgICBzaGlmdAotICAgICAgOzsKLSAgICAtLXZlcnNpb24pCi0gICAgICBlY2hvICIkMCAkc2NyaXB0dmVyc2lvbiIKLSAgICAgIGV4aXQgMAotICAgICAgOzsKLSAgICAtLSkgICAgICAgICAgICAgICAgICAgICAgICAgIyBzdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0gICAgICBzaGlmdAotICAgICAgYnJlYWsKLSAgICAgIDs7Ci0gICAgLSopICAgICAgICAgICAgICAgICAgICAgICAgICMgdW5rbm93biBvcHRpb24KLSAgICAgIGVjaG8gIiR1c2FnZSIgMT4mMgotICAgICAgZXhpdCAxCi0gICAgICA7OwotICAgICopICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZpcnN0IG5vbi1vcHQgYXJnCi0gICAgICBicmVhawotICAgICAgOzsKLSAgZXNhYwotZG9uZQotCi1mb3IgZmlsZQotZG8KLSAgaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCi0gICAgc2hpZnQKLSAgZWxzZQotICAgIGJyZWFrCi0gIGZpCi1kb25lCi0KLWNhc2UgJCMgaW4KLSAgMCkgZXhpdCAwIDs7Ci1lc2FjCi0KLSMgU29sYXJpcyA4J3MgbWtkaXIgLXAgaXNuJ3QgdGhyZWFkLXNhZmUuICBJZiB5b3UgbWtkaXIgLXAgYS9iIGFuZAotIyBta2RpciAtcCBhL2MgYXQgdGhlIHNhbWUgdGltZSwgYm90aCB3aWxsIGRldGVjdCB0aGF0IGEgaXMgbWlzc2luZywKLSMgb25lIHdpbGwgY3JlYXRlIGEsIHRoZW4gdGhlIG90aGVyIHdpbGwgdHJ5IHRvIGNyZWF0ZSBhIGFuZCBkaWUgd2l0aAotIyBhICJGaWxlIGV4aXN0cyIgZXJyb3IuICBUaGlzIGlzIGEgcHJvYmxlbSB3aGVuIGNhbGxpbmcgbWtpbnN0YWxsZGlycwotIyBmcm9tIGEgcGFyYWxsZWwgbWFrZS4gIFdlIHVzZSAtLXZlcnNpb24gaW4gdGhlIHByb2JlIHRvIHJlc3RyaWN0Ci0jIG91cnNlbHZlcyB0byBHTlUgbWtkaXIsIHdoaWNoIGlzIHRocmVhZC1zYWZlLgotY2FzZSAkZGlybW9kZSBpbgotICAnJykKLSAgICBpZiBta2RpciAtcCAtLXZlcnNpb24gLiA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAhIC1kIC4vLS12ZXJzaW9uOyB0aGVuCi0gICAgICBlY2hvICJta2RpciAtcCAtLSAkKiIKLSAgICAgIGV4ZWMgbWtkaXIgLXAgLS0gIiRAIgotICAgIGVsc2UKLSAgICAgICMgT24gTmV4dFN0ZXAgYW5kIE9wZW5TdGVwLCB0aGUgYG1rZGlyJyBjb21tYW5kIGRvZXMgbm90Ci0gICAgICAjIHJlY29nbml6ZSBhbnkgb3B0aW9uLiAgSXQgd2lsbCBpbnRlcnByZXQgYWxsIG9wdGlvbnMgYXMKLSAgICAgICMgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLCBhbmQgdGhlbiBhYm9ydCBiZWNhdXNlIGAuJyBhbHJlYWR5Ci0gICAgICAjIGV4aXN0cy4KLSAgICAgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0gICAgICB0ZXN0IC1kIC4vLS12ZXJzaW9uICYmIHJtZGlyIC4vLS12ZXJzaW9uCi0gICAgZmkKLSAgICA7OwotICAqKQotICAgIGlmIG1rZGlyIC1tICIkZGlybW9kZSIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmCi0gICAgICAgdGVzdCAhIC1kIC4vLS12ZXJzaW9uOyB0aGVuCi0gICAgICBlY2hvICJta2RpciAtbSAkZGlybW9kZSAtcCAtLSAkKiIKLSAgICAgIGV4ZWMgbWtkaXIgLW0gIiRkaXJtb2RlIiAtcCAtLSAiJEAiCi0gICAgZWxzZQotICAgICAgIyBDbGVhbiB1cCBhZnRlciBOZXh0U3RlcCBhbmQgT3BlblN0ZXAgbWtkaXIuCi0gICAgICBmb3IgZCBpbiAuLy1tIC4vLXAgLi8tLXZlcnNpb24gIi4vJGRpcm1vZGUiOwotICAgICAgZG8KLSAgICAgICAgdGVzdCAtZCAkZCAmJiBybWRpciAkZAotICAgICAgZG9uZQotICAgIGZpCi0gICAgOzsKLWVzYWMKLQotZm9yIGZpbGUKLWRvCi0gIHNldCBmbm9yZCBgZWNobyAiOiRmaWxlIiB8IHNlZCAtbmUgJ3MvXjpcLy8jLztzL146Ly87cy9cLy8gL2c7cy9eIy9cLy87cCdgCi0gIHNoaWZ0Ci0KLSAgcGF0aGNvbXA9Ci0gIGZvciBkCi0gIGRvCi0gICAgcGF0aGNvbXA9IiRwYXRoY29tcCRkIgotICAgIGNhc2UgJHBhdGhjb21wIGluCi0gICAgICAtKikgcGF0aGNvbXA9Li8kcGF0aGNvbXAgOzsKLSAgICBlc2FjCi0KLSAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KLSAgICAgIGVjaG8gIm1rZGlyICRwYXRoY29tcCIKLQotICAgICAgbWtkaXIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPwotCi0gICAgICBpZiB0ZXN0ICEgLWQgIiRwYXRoY29tcCI7IHRoZW4KLQllcnJzdGF0dXM9JGxhc3RlcnIKLSAgICAgIGVsc2UKLQlpZiB0ZXN0ICEgLXogIiRkaXJtb2RlIjsgdGhlbgotCSAgZWNobyAiY2htb2QgJGRpcm1vZGUgJHBhdGhjb21wIgotCSAgbGFzdGVycj0iIgotCSAgY2htb2QgIiRkaXJtb2RlIiAiJHBhdGhjb21wIiB8fCBsYXN0ZXJyPSQ/Ci0KLQkgIGlmIHRlc3QgISAteiAiJGxhc3RlcnIiOyB0aGVuCi0JICAgIGVycnN0YXR1cz0kbGFzdGVycgotCSAgZmkKLQlmaQotICAgICAgZmkKLSAgICBmaQotCi0gICAgcGF0aGNvbXA9IiRwYXRoY29tcC8iCi0gIGRvbmUKLWRvbmUKLQotZXhpdCAkZXJyc3RhdHVzCi0KLSMgTG9jYWwgVmFyaWFibGVzOgotIyBtb2RlOiBzaGVsbC1zY3JpcHQKLSMgc2gtaW5kZW50YXRpb246IDIKLSMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCi0jIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0jIEVuZDoKZGlmZiAtLWdpdCBhL25ldC5jIGIvbmV0LmMKaW5kZXggNjQwYzc2Ny4uYTQ2Y2YwNiAxMDA2NDQKLS0tIGEvbmV0LmMKKysrIGIvbmV0LmMKQEAgLTI3LDcgKzI3LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IG5ldC5jLHYgMS40OCAyMDA1LzA2LzAxIDE5OjIyOjA3IHJvbGFuZCBFeHAgJAorICoJJElkJAogICovCiAKICNpbmNsdWRlICJkZWZzLmgiCkBAIC00OSw2ICs0OSw5IEBACiAjaWZkZWYgSEFWRV9ORVRJTkVUX1VEUF9ICiAjaW5jbHVkZSA8bmV0aW5ldC91ZHAuaD4KICNlbmRpZgorI2lmZGVmIEhBVkVfTkVUSU5FVF9TQ1RQX0gKKyNpbmNsdWRlIDxuZXRpbmV0L3NjdHAuaD4KKyNlbmRpZgogI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogI2luY2x1ZGUgPG5ldC9pZi5oPgogI2lmIGRlZmluZWQoTElOVVgpCkBAIC0zMjAsMTcgKzMyMywzMiBAQAogI2lmZGVmIFNPQ0tfUkFXCiAJeyBTT0NLX1JBVywJIlNPQ0tfUkFXIgl9LAogI2VuZGlmCisjaWZkZWYgU09DS19SRE0KKwl7IFNPQ0tfUkRNLAkiU09DS19SRE0iCX0sCisjZW5kaWYKICNpZmRlZiBTT0NLX1NFUVBBQ0tFVAogCXsgU09DS19TRVFQQUNLRVQsIlNPQ0tfU0VRUEFDS0VUIn0sCiAjZW5kaWYKLSNpZmRlZiBTT0NLX1JETQotCXsgU09DS19SRE0sCSJTT0NLX1JETSIJfSwKKyNpZmRlZiBTT0NLX0RDQ1AKKwl7IFNPQ0tfRENDUCwJIlNPQ0tfRENDUCIJfSwKICNlbmRpZgogI2lmZGVmIFNPQ0tfUEFDS0VUCiAJeyBTT0NLX1BBQ0tFVCwJIlNPQ0tfUEFDS0VUIgl9LAogI2VuZGlmCiAJeyAwLAkJTlVMTAkJfSwKIH07CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja190eXBlX2ZsYWdzW10gPSB7CisjaWZkZWYgU09DS19DTE9FWEVDCisJeyBTT0NLX0NMT0VYRUMsCSJTT0NLX0NMT0VYRUMiCX0sCisjZW5kaWYKKyNpZmRlZiBTT0NLX05PTkJMT0NLCisJeyBTT0NLX05PTkJMT0NLLCJTT0NLX05PTkJMT0NLIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisjaWZuZGVmIFNPQ0tfVFlQRV9NQVNLCisjIGRlZmluZSBTT0NLX1RZUEVfTUFTSyAweGYKKyNlbmRpZgogc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNvY2tldGxheWVyc1tdID0gewogI2lmIGRlZmluZWQoU09MX0lQKQogCXsgU09MX0lQLAkiU09MX0lQIgl9LApAQCAtMzUwLDE1ICszNjgsMTggQEAKICNpZiBkZWZpbmVkKFNPTF9JQ01QVjYpCiAJeyBTT0xfSUNNUFY2LAkiU09MX0lDTVBWNiIJfSwKICNlbmRpZgorI2lmIGRlZmluZWQoU09MX1NDVFApCisJeyBTT0xfU0NUUCwJIlNPTF9TQ1RQIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfVURQTElURSkKKwl7IFNPTF9VRFBMSVRFLAkiU09MX1VEUExJVEUiCX0sCisjZW5kaWYKICNpZiBkZWZpbmVkKFNPTF9SQVcpCiAJeyBTT0xfUkFXLAkiU09MX1JBVyIJfSwKICNlbmRpZgogI2lmIGRlZmluZWQoU09MX0lQWCkKIAl7IFNPTF9JUFgsCSJTT0xfSVBYIgl9LAogI2VuZGlmCi0jaWYgZGVmaW5lZChTT0xfSVBYKQotCXsgU09MX0lQWCwJIlNPTF9JUFgiCX0sCi0jZW5kaWYKICNpZiBkZWZpbmVkKFNPTF9BWDI1KQogCXsgU09MX0FYMjUsCSJTT0xfQVgyNSIJfSwKICNlbmRpZgpAQCAtMzg5LDcgKzQxMCw0NCBAQAogI2lmIGRlZmluZWQoU09MX0lSREEpCiAJeyBTT0xfSVJEQSwJIlNPTF9JUkRBIgl9LAogI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfTkVUQkVVSSkKKwl7IFNPTF9ORVRCRVVJLAkiU09MX05FVEJFVUkiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9MTEMpCisJeyBTT0xfTExDLAkiU09MX0xMQyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX0RDQ1ApCisJeyBTT0xfRENDUCwJIlNPTF9EQ0NQIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfTkVUTElOSykKKwl7IFNPTF9ORVRMSU5LLAkiU09MX05FVExJTksiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9USVBDKQorCXsgU09MX1RJUEMsCSJTT0xfVElQQyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX1JYUlBDKQorCXsgU09MX1JYUlBDLAkiU09MX1JYUlBDIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfUFBQT0wyVFApCisJeyBTT0xfUFBQT0wyVFAsCSJTT0xfUFBQT0wyVFAiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9CTFVFVE9PVEgpCisJeyBTT0xfQkxVRVRPT1RILCJTT0xfQkxVRVRPT1RIIiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfUE5QSVBFKQorCXsgU09MX1BOUElQRSwJIlNPTF9QTlBJUEUiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9SRFMpCisJeyBTT0xfUkRTLAkiU09MX1JEUyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX0lVVkMpCisJeyBTT0xfSVVDViwJIlNPTF9JVUNWIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfQ0FJRikKKwl7IFNPTF9DQUlGLAkiU09MX0NBSUYiCX0sCisjZW5kaWYKIAl7IFNPTF9TT0NLRVQsCSJTT0xfU09DS0VUIgl9LAkvKiBOZXZlciB1c2VkISAqLworCS8qIFRoZSBTT0xfKiBhcnJheSBzaG91bGQgcmVtYWluIG5vdCBOVUxMLXRlcm1pbmF0ZWQuICovCiB9OwogLyoqKiBXQVJOSU5HOiBEQU5HRVIgV0lMTCBST0JJTlNPTjogTk9URSAic29ja2V0bGF5ZXJzIiBhcnJheSBhYm92ZQogICAgICBmYWxscyBpbnRvICJwcm90b2NvbHMiIGFycmF5IGJlbG93ISEhISAgIFRoaXMgaXMgaW50ZW5kZWQhISEgKioqLwpAQCAtMzk4LDkgKzQ1NiwxNSBAQAogCXsgSVBQUk9UT19JQ01QLAkiSVBQUk9UT19JQ01QIgl9LAogCXsgSVBQUk9UT19UQ1AsCSJJUFBST1RPX1RDUCIJfSwKIAl7IElQUFJPVE9fVURQLAkiSVBQUk9UT19VRFAiCX0sCisjaWZkZWYgSVBQUk9UT19JR01QCisJeyBJUFBST1RPX0lHTVAsCSJJUFBST1RPX0lHTVAiCX0sCisjZW5kaWYKICNpZmRlZiBJUFBST1RPX0dHUAogCXsgSVBQUk9UT19HR1AsCSJJUFBST1RPX0dHUCIJfSwKICNlbmRpZgorI2lmZGVmIElQUFJPVE9fSVBJUAorCXsgSVBQUk9UT19JUElQLAkiSVBQUk9UT19JUElQIgl9LAorI2VuZGlmCiAjaWZkZWYgSVBQUk9UT19FR1AKIAl7IElQUFJPVE9fRUdQLAkiSVBQUk9UT19FR1AiCX0sCiAjZW5kaWYKQEAgLTQxMCw4NiArNDc0LDEzMSBAQAogI2lmZGVmIElQUFJPVE9fSURQCiAJeyBJUFBST1RPX0lEUCwJIklQUFJPVE9fSURQIgl9LAogI2VuZGlmCisjaWZkZWYgSVBQUk9UT19UUAorCXsgSVBQUk9UT19UUCwJIklQUFJPVE9fVFAiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX0RDQ1AKKwl7IElQUFJPVE9fRENDUCwJIklQUFJPVE9fRENDUCIJfSwKKyNlbmRpZgogI2lmZGVmIElQUFJPVE9fSVBWNgogCXsgSVBQUk9UT19JUFY2LAkiSVBQUk9UT19JUFY2Igl9LAogI2VuZGlmCi0jaWZkZWYgSVBQUk9UT19JQ01QVjYKLQl7IElQUFJPVE9fSUNNUFY2LCJJUFBST1RPX0lDTVBWNiJ9LAorI2lmZGVmIElQUFJPVE9fUk9VVElORworCXsgSVBQUk9UT19ST1VUSU5HLCAiSVBQUk9UT19ST1VUSU5HIiB9LAogI2VuZGlmCi0jaWZkZWYgSVBQUk9UT19JR01QCi0JeyBJUFBST1RPX0lHTVAsCSJJUFBST1RPX0lHTVAiCX0sCisjaWZkZWYgSVBQUk9UT19GUkFHTUVOVAorCXsgSVBQUk9UT19GUkFHTUVOVCwgIklQUFJPVE9fRlJBR01FTlQiIH0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX1JTVlAKKwl7IElQUFJPVE9fUlNWUCwJIklQUFJPVE9fUlNWUCIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fR1JFCisJeyBJUFBST1RPX0dSRSwJIklQUFJPVE9fR1JFIgl9LAorI2VuZGlmCisjaWZkZWYgSVBQUk9UT19FU1AKKwl7IElQUFJPVE9fRVNQLAkiSVBQUk9UT19FU1AiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX0FICisJeyBJUFBST1RPX0FILAkiSVBQUk9UT19BSCIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fSUNNUFY2CisJeyBJUFBST1RPX0lDTVBWNiwgIklQUFJPVE9fSUNNUFY2IiB9LAorI2VuZGlmCisjaWZkZWYgSVBQUk9UT19OT05FCisJeyBJUFBST1RPX05PTkUsCSJJUFBST1RPX05PTkUiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX0RTVE9QVFMKKwl7IElQUFJPVE9fRFNUT1BUUywgIklQUFJPVE9fRFNUT1BUUyIgfSwKICNlbmRpZgogI2lmZGVmIElQUFJPVE9fSEVMTE8KLQl7IElQUFJPVE9fSEVMTE8sIklQUFJPVE9fSEVMTE8iCX0sCisJeyBJUFBST1RPX0hFTExPLCAiSVBQUk9UT19IRUxMTyIgfSwKICNlbmRpZgogI2lmZGVmIElQUFJPVE9fTkQKIAl7IElQUFJPVE9fTkQsCSJJUFBST1RPX05EIgl9LAogI2VuZGlmCisjaWZkZWYgSVBQUk9UT19NVFAKKwl7IElQUFJPVE9fTVRQLAkiSVBQUk9UT19NVFAiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX0VOQ0FQCisJeyBJUFBST1RPX0VOQ0FQLCAiSVBQUk9UT19FTkNBUCIgfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fUElNCisJeyBJUFBST1RPX1BJTSwJIklQUFJPVE9fUElNIgl9LAorI2VuZGlmCisjaWZkZWYgSVBQUk9UT19DT01QCisJeyBJUFBST1RPX0NPTVAsCSJJUFBST1RPX0NPTVAiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX1NDVFAKKwl7IElQUFJPVE9fU0NUUCwJIklQUFJPVE9fU0NUUCIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fVURQTElURQorCXsgSVBQUk9UT19VRFBMSVRFLCAiSVBQUk9UT19VRFBMSVRFIiB9LAorI2VuZGlmCiAjaWZkZWYgSVBQUk9UT19SQVcKIAl7IElQUFJPVE9fUkFXLAkiSVBQUk9UT19SQVciCX0sCiAjZW5kaWYKICNpZmRlZiBJUFBST1RPX01BWAogCXsgSVBQUk9UT19NQVgsCSJJUFBST1RPX01BWCIJfSwKICNlbmRpZgotI2lmZGVmIElQUFJPVE9fSVBJUAotCXsgSVBQUk9UT19JUElQLAkiSVBQUk9UT19JUElQIgl9LAotI2VuZGlmCiAJeyAwLAkJTlVMTAkJfSwKIH07CiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXNnX2ZsYWdzW10gPSB7Ci0JeyBNU0dfT09CLAkiTVNHX09PQiIJfSwKKwl7IE1TR19PT0IsCQkiTVNHX09PQiIJCX0sCiAjaWZkZWYgTVNHX0RPTlRST1VURQotCXsgTVNHX0RPTlRST1VURSwiTVNHX0RPTlRST1VURSIJfSwKKwl7IE1TR19ET05UUk9VVEUsCSJNU0dfRE9OVFJPVVRFIgkJfSwKICNlbmRpZgogI2lmZGVmIE1TR19QRUVLCi0JeyBNU0dfUEVFSywJIk1TR19QRUVLIgl9LAorCXsgTVNHX1BFRUssCQkiTVNHX1BFRUsiCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX0NUUlVOQwotCXsgTVNHX0NUUlVOQywJIk1TR19DVFJVTkMiCX0sCisJeyBNU0dfQ1RSVU5DLAkJIk1TR19DVFJVTkMiCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX1BST1hZCi0JeyBNU0dfUFJPWFksCSJNU0dfUFJPWFkiCX0sCisJeyBNU0dfUFJPWFksCQkiTVNHX1BST1hZIgkJfSwKICNlbmRpZgogI2lmZGVmIE1TR19FT1IKLQl7IE1TR19FT1IsCSJNU0dfRU9SIgl9LAorCXsgTVNHX0VPUiwJCSJNU0dfRU9SIgkJfSwKICNlbmRpZgogI2lmZGVmIE1TR19XQUlUQUxMCi0JeyBNU0dfV0FJVEFMTCwJIk1TR19XQUlUQUxMIgl9LAorCXsgTVNHX1dBSVRBTEwsCQkiTVNHX1dBSVRBTEwiCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX1RSVU5DCi0JeyBNU0dfVFJVTkMsCSJNU0dfVFJVTkMiCX0sCisJeyBNU0dfVFJVTkMsCQkiTVNHX1RSVU5DIgkJfSwKICNlbmRpZgogI2lmZGVmIE1TR19DVFJVTkMKLQl7IE1TR19DVFJVTkMsCSJNU0dfQ1RSVU5DIgl9LAorCXsgTVNHX0NUUlVOQywJCSJNU0dfQ1RSVU5DIgkJfSwKICNlbmRpZgogI2lmZGVmIE1TR19FUlJRVUVVRQotCXsgTVNHX0VSUlFVRVVFLAkiTVNHX0VSUlFVRVVFIgl9LAorCXsgTVNHX0VSUlFVRVVFLAkJIk1TR19FUlJRVUVVRSIJCX0sCiAjZW5kaWYKICNpZmRlZiBNU0dfRE9OVFdBSVQKLQl7IE1TR19ET05UV0FJVCwJIk1TR19ET05UV0FJVCIJfSwKKwl7IE1TR19ET05UV0FJVCwJCSJNU0dfRE9OVFdBSVQiCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX0NPTkZJUk0KLQl7IE1TR19DT05GSVJNLAkiTVNHX0NPTkZJUk0iCX0sCisJeyBNU0dfQ09ORklSTSwJCSJNU0dfQ09ORklSTSIJCX0sCiAjZW5kaWYKICNpZmRlZiBNU0dfUFJPQkUKLQl7IE1TR19QUk9CRSwJIk1TR19QUk9CRSIJfSwKKwl7IE1TR19QUk9CRSwJCSJNU0dfUFJPQkUiCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX0ZJTgotCXsgTVNHX0ZJTiwJIk1TR19GSU4iCX0sCisJeyBNU0dfRklOLAkJIk1TR19GSU4iCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX1NZTgotCXsgTVNHX1NZTiwJIk1TR19TWU4iCX0sCisJeyBNU0dfU1lOLAkJIk1TR19TWU4iCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX1JTVAotCXsgTVNHX1JTVCwJIk1TR19SU1QiCX0sCisJeyBNU0dfUlNULAkJIk1TR19SU1QiCQl9LAogI2VuZGlmCiAjaWZkZWYgTVNHX05PU0lHTkFMCi0JeyBNU0dfTk9TSUdOQUwsCSJNU0dfTk9TSUdOQUwiCX0sCisJeyBNU0dfTk9TSUdOQUwsCQkiTVNHX05PU0lHTkFMIgkJfSwKICNlbmRpZgogI2lmZGVmIE1TR19NT1JFCi0JeyBNU0dfTU9SRSwJIk1TR19NT1JFIgl9LAorCXsgTVNHX01PUkUsCQkiTVNHX01PUkUiCQl9LAogI2VuZGlmCi0JeyAwLAkJTlVMTAkJfSwKKyNpZmRlZiBNU0dfQ01TR19DTE9FWEVDCisJeyBNU0dfQ01TR19DTE9FWEVDLAkiTVNHX0NNU0dfQ0xPRVhFQyIJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2Nrb3B0aW9uc1tdID0gewpAQCAtNjcxLDEwICs3ODAsMTAgQEAKIAl7IElQX1JFQ1ZFUlIsCQkiSVBfUkVDVkVSUiIJCX0sCiAjZW5kaWYKICNpZmRlZiBJUF9SRUNWVFRMCi0JeyBJUF9SRUNWVFRMLAkJIklQX1JFQ1JFQ1ZUVEwiCQl9LAorCXsgSVBfUkVDVlRUTCwJCSJJUF9SRUNWVFRMIgkJfSwKICNlbmRpZgogI2lmZGVmIElQX1JFQ1ZUT1MKLQl7IElQX1JFQ1ZUT1MsCQkiSVBfUkVDUkVDVlRPUyIJCX0sCisJeyBJUF9SRUNWVE9TLAkJIklQX1JFQ1ZUT1MiCQl9LAogI2VuZGlmCiAjaWZkZWYgSVBfTVRVCiAJeyBJUF9NVFUsCQkiSVBfTVRVIgkJfSwKQEAgLTc2OSw2ICs4NzgsMTUgQEAKICNpZmRlZiBJUFY2X0ZMT1dJTkZPX1NFTkQKIAl7IElQVjZfRkxPV0lORk9fU0VORCwJIklQVjZfRkxPV0lORk9fU0VORCIJfSwKICNlbmRpZgorI2lmZGVmIElQVjZfQUREX01FTUJFUlNISVAKKwl7IElQVjZfQUREX01FTUJFUlNISVAsCSJJUFY2X0FERF9NRU1CRVJTSElQIgl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9EUk9QX01FTUJFUlNISVAKKwl7IElQVjZfRFJPUF9NRU1CRVJTSElQLAkiSVBWNl9EUk9QX01FTUJFUlNISVAiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X1JPVVRFUl9BTEVSVAorCXsgSVBWNl9ST1VURVJfQUxFUlQsCSJJUFY2X1JPVVRFUl9BTEVSVCIJfSwKKyNlbmRpZgogCXsgMCwJCQlOVUxMCQkJfSwKIH07CiAjZW5kaWYgLyogU09MX0lQVjYgKi8KQEAgLTc5MSw4ICs5MDksMTIgQEAKIAogI2lmZGVmIFNPTF9QQUNLRVQKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2NrcGFja2V0b3B0aW9uc1tdID0geworI2lmZGVmIFBBQ0tFVF9BRERfTUVNQkVSU0hJUAogCXsgUEFDS0VUX0FERF9NRU1CRVJTSElQLAkiUEFDS0VUX0FERF9NRU1CRVJTSElQIgl9LAorI2VuZGlmCisjaWZkZWYgUEFDS0VUX0RST1BfTUVNQkVSU0hJUAogCXsgUEFDS0VUX0RST1BfTUVNQkVSU0hJUCwJIlBBQ0tFVF9EUk9QX01FTUJFUlNISVAifSwKKyNlbmRpZgogI2lmIGRlZmluZWQoUEFDS0VUX1JFQ1ZfT1VUUFVUKQogCXsgUEFDS0VUX1JFQ1ZfT1VUUFVULAkJIlBBQ0tFVF9SRUNWX09VVFBVVCIJfSwKICNlbmRpZgpAQCAtODAyLDEwICs5MjQsMTYwIEBACiAjaWYgZGVmaW5lZChQQUNLRVRfU1RBVElTVElDUykKIAl7IFBBQ0tFVF9TVEFUSVNUSUNTLAkJIlBBQ0tFVF9TVEFUSVNUSUNTIgl9LAogI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfQ09QWV9USFJFU0gpCisJeyBQQUNLRVRfQ09QWV9USFJFU0gsCQkiUEFDS0VUX0NPUFlfVEhSRVNIIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfQVVYREFUQSkKKwl7IFBBQ0tFVF9BVVhEQVRBLAkJIlBBQ0tFVF9BVVhEQVRBIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfT1JJR0RFVikKKwl7IFBBQ0tFVF9PUklHREVWLAkJIlBBQ0tFVF9PUklHREVWIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfVkVSU0lPTikKKwl7IFBBQ0tFVF9WRVJTSU9OLAkJIlBBQ0tFVF9WRVJTSU9OIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfSERSTEVOKQorCXsgUEFDS0VUX0hEUkxFTiwJCSJQQUNLRVRfSERSTEVOIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfUkVTRVJWRSkKKwl7IFBBQ0tFVF9SRVNFUlZFLAkJIlBBQ0tFVF9SRVNFUlZFIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfVFhfUklORykKKwl7IFBBQ0tFVF9UWF9SSU5HLAkJIlBBQ0tFVF9UWF9SSU5HIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfTE9TUykKKwl7IFBBQ0tFVF9MT1NTLAkJCSJQQUNLRVRfTE9TUyIJfSwKKyNlbmRpZgogCXsgMCwJCQkJTlVMTAkJCX0sCiB9OwogI2VuZGlmIC8qIFNPTF9QQUNLRVQgKi8KIAorI2lmZGVmIFNPTF9TQ1RQCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3NjdHBvcHRpb25zW10gPSB7CisjaWYgZGVmaW5lZChTQ1RQX1JUT0lORk8pCisJeyBTQ1RQX1JUT0lORk8sCQkJIlNDVFBfUlRPSU5GTyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9BU1NPQ0lORk8pCisJeyBTQ1RQX0FTU09DSU5GTywJCSJTQ1RQX0FTU09DSU5GTyJ9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0lOSVRNU0cpCisJeyBTQ1RQX0lOSVRNU0csCQkJIlNDVFBfSU5JVE1TRyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9OT0RFTEFZKQorCXsgU0NUUF9OT0RFTEFZLAkJCSJTQ1RQX05PREVMQVkiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfQVVUT0NMT1NFKQorCXsgU0NUUF9BVVRPQ0xPU0UsCQkiU0NUUF9BVVRPQ0xPU0UifSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9TRVRfUEVFUl9QUklNQVJZX0FERFIpCisJeyBTQ1RQX1NFVF9QRUVSX1BSSU1BUllfQUREUiwJIlNDVFBfU0VUX1BFRVJfUFJJTUFSWV9BRERSIn0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfUFJJTUFSWV9BRERSKQorCXsgU0NUUF9QUklNQVJZX0FERFIsCQkiU0NUUF9QUklNQVJZX0FERFIiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfQURBUFRBVElPTl9MQVlFUikKKwl7IFNDVFBfQURBUFRBVElPTl9MQVlFUiwJIlNDVFBfQURBUFRBVElPTl9MQVlFUiIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9ESVNBQkxFX0ZSQUdNRU5UUykKKwl7IFNDVFBfRElTQUJMRV9GUkFHTUVOVFMsCSJTQ1RQX0RJU0FCTEVfRlJBR01FTlRTIn0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfUEVFUl9BRERSX1BBUkFNUykKKwl7IFNDVFBfUEVFUl9BRERSX1BBUkFNUywJIlNDVFBfUEVFUl9BRERSX1BBUkFNUyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU0pCisJeyBTQ1RQX0RFRkFVTFRfU0VORF9QQVJBTSwJIlNDVFBfREVGQVVMVF9TRU5EX1BBUkFNIn0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfRVZFTlRTKQorCXsgU0NUUF9FVkVOVFMsCQkJIlNDVFBfRVZFTlRTIgkJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9JX1dBTlRfTUFQUEVEX1Y0X0FERFIpCisJeyBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUiwJIlNDVFBfSV9XQU5UX01BUFBFRF9WNF9BRERSIn0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfTUFYU0VHKQorCXsgU0NUUF9NQVhTRUcsCQkJIlNDVFBfTUFYU0VHIgkJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9TVEFUVVMpCisJeyBTQ1RQX1NUQVRVUywJCQkiU0NUUF9TVEFUVVMiCQl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0dFVF9QRUVSX0FERFJfSU5GTykKKwl7IFNDVFBfR0VUX1BFRVJfQUREUl9JTkZPLAkiU0NUUF9HRVRfUEVFUl9BRERSX0lORk8ifSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9ERUxBWUVEX0FDSykKKwl7IFNDVFBfREVMQVlFRF9BQ0ssCQkiU0NUUF9ERUxBWUVEX0FDSyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9DT05URVhUKQorCXsgU0NUUF9DT05URVhULAkJCSJTQ1RQX0NPTlRFWFQiCQl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0ZSQUdNRU5UX0lOVEVSTEVBVkUpCisJeyBTQ1RQX0ZSQUdNRU5UX0lOVEVSTEVBVkUsCSJTQ1RQX0ZSQUdNRU5UX0lOVEVSTEVBVkUifSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9QQVJUSUFMX0RFTElWRVJZX1BPSU5UKQorCXsgU0NUUF9QQVJUSUFMX0RFTElWRVJZX1BPSU5ULAkiU0NUUF9QQVJUSUFMX0RFTElWRVJZX1BPSU5UIn0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfTUFYX0JVUlNUKQorCXsgU0NUUF9NQVhfQlVSU1QsCQkiU0NUUF9NQVhfQlVSU1QiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfQVVUSF9DSFVOSykKKwl7IFNDVFBfQVVUSF9DSFVOSywJCSJTQ1RQX0FVVEhfQ0hVTksiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfSE1BQ19JREVOVCkKKwl7IFNDVFBfSE1BQ19JREVOVCwJCSJTQ1RQX0hNQUNfSURFTlQiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfQVVUSF9LRVkpCisJeyBTQ1RQX0FVVEhfS0VZLAkJIlNDVFBfQVVUSF9LRVkiCQl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0FVVEhfQUNUSVZFX0tFWSkKKwl7IFNDVFBfQVVUSF9BQ1RJVkVfS0VZLAkJIlNDVFBfQVVUSF9BQ1RJVkVfS0VZIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0FVVEhfREVMRVRFX0tFWSkKKwl7IFNDVFBfQVVUSF9ERUxFVEVfS0VZLAkJIlNDVFBfQVVUSF9ERUxFVEVfS0VZIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX1BFRVJfQVVUSF9DSFVOS1MpCisJeyBTQ1RQX1BFRVJfQVVUSF9DSFVOS1MsCSJTQ1RQX1BFRVJfQVVUSF9DSFVOS1MiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfTE9DQUxfQVVUSF9DSFVOS1MpCisJeyBTQ1RQX0xPQ0FMX0FVVEhfQ0hVTktTLAkiU0NUUF9MT0NBTF9BVVRIX0NIVU5LUyJ9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0dFVF9BU1NPQ19OVU1CRVIpCisJeyBTQ1RQX0dFVF9BU1NPQ19OVU1CRVIsCSJTQ1RQX0dFVF9BU1NPQ19OVU1CRVIiCX0sCisjZW5kaWYKKworCS8qIGxpbnV4IHNwZWNpZmljIHRoaW5ncyAqLworI2lmIGRlZmluZWQoU0NUUF9TT0NLT1BUX0JJTkRYX0FERCkKKwl7IFNDVFBfU09DS09QVF9CSU5EWF9BREQsCSJTQ1RQX1NPQ0tPUFRfQklORFhfQUREIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX1NPQ0tPUFRfQklORFhfUkVNKQorCXsgU0NUUF9TT0NLT1BUX0JJTkRYX1JFTSwJIlNDVFBfU09DS09QVF9CSU5EWF9SRU0iCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfU09DS09QVF9QRUVMT0ZGKQorCXsgU0NUUF9TT0NLT1BUX1BFRUxPRkYsCQkiU0NUUF9TT0NLT1BUX1BFRUxPRkYiCQl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0dFVF9QRUVSX0FERFJTX05VTV9PTEQpCisJeyBTQ1RQX0dFVF9QRUVSX0FERFJTX05VTV9PTEQsCSJTQ1RQX0dFVF9QRUVSX0FERFJTX05VTV9PTEQiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfR0VUX1BFRVJfQUREUlNfT0xEKQorCXsgU0NUUF9HRVRfUEVFUl9BRERSU19PTEQsCSJTQ1RQX0dFVF9QRUVSX0FERFJTX09MRCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9HRVRfTE9DQUxfQUREUlNfTlVNX09MRCkKKwl7IFNDVFBfR0VUX0xPQ0FMX0FERFJTX05VTV9PTEQsCSJTQ1RQX0dFVF9MT0NBTF9BRERSU19OVU1fT0xEIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTQ1RQX0dFVF9MT0NBTF9BRERSU19PTEQpCisJeyBTQ1RQX0dFVF9MT0NBTF9BRERSU19PTEQsCSJTQ1RQX0dFVF9MT0NBTF9BRERSU19PTEQiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfU09DS09QVF9DT05ORUNUWF9PTEQpCisJeyBTQ1RQX1NPQ0tPUFRfQ09OTkVDVFhfT0xELAkiU0NUUF9TT0NLT1BUX0NPTk5FQ1RYX09MRCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU0NUUF9HRVRfUEVFUl9BRERSUykKKwl7IFNDVFBfR0VUX1BFRVJfQUREUlMsCQkiU0NUUF9HRVRfUEVFUl9BRERSUyIJCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNDVFBfR0VUX0xPQ0FMX0FERFJTKQorCXsgU0NUUF9HRVRfTE9DQUxfQUREUlMsCQkiU0NUUF9HRVRfTE9DQUxfQUREUlMiCQl9LAorI2VuZGlmCisKKwl7IDAsCU5VTEwJfSwKK307CisjZW5kaWYKKwogI2lmICAhZGVmaW5lZCAoU09MX1RDUCkgJiYgZGVmaW5lZCAoSVBQUk9UT19UQ1ApCiAjZGVmaW5lIFNPTF9UQ1AgSVBQUk9UT19UQ1AKICNlbmRpZgpAQCAtOTI1LDEwICsxMTk3LDcgQEAKIAogCiB2b2lkCi1wcmludHNvY2sodGNwLCBhZGRyLCBhZGRybGVuKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGFkZHJsZW47CitwcmludHNvY2soc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGludCBhZGRybGVuKQogewogCXVuaW9uIHsKIAkJY2hhciBwYWRbMTI4XTsKQEAgLTk1OCwxMyArMTIyNywxNiBAQAogCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CiAJCXJldHVybjsKIAl9Ci0JaWYgKChhZGRybGVuPDIpIHx8IChhZGRybGVuPnNpemVvZihhZGRyYnVmKSkpCi0JCWFkZHJsZW49c2l6ZW9mKGFkZHJidWYpOwogCi0JaWYgKHVtb3Zlbih0Y3AsIGFkZHIsIGFkZHJsZW4sIChjaGFyKikmYWRkcmJ1ZikgPCAwKSB7CisJaWYgKGFkZHJsZW4gPCAyIHx8IGFkZHJsZW4gPiBzaXplb2YoYWRkcmJ1ZikpCisJCWFkZHJsZW4gPSBzaXplb2YoYWRkcmJ1Zik7CisKKwltZW1zZXQoJmFkZHJidWYsIDAsIHNpemVvZihhZGRyYnVmKSk7CisJaWYgKHVtb3Zlbih0Y3AsIGFkZHIsIGFkZHJsZW4sIGFkZHJidWYucGFkKSA8IDApIHsKIAkJdHByaW50Zigiey4uLn0iKTsKIAkJcmV0dXJuOwogCX0KKwlhZGRyYnVmLnBhZFtzaXplb2YoYWRkcmJ1Zi5wYWQpIC0gMV0gPSAnXDAnOwogCiAJdHByaW50Zigie3NhX2ZhbWlseT0iKTsKIAlwcmludHh2YWwoYWRkcmZhbXMsIGFkZHJidWYuc2Euc2FfZmFtaWx5LCAiQUZfPz8/Iik7CkBAIC05NzIsMTIgKzEyNDQsMTQgQEAKIAogCXN3aXRjaCAoYWRkcmJ1Zi5zYS5zYV9mYW1pbHkpIHsKIAljYXNlIEFGX1VOSVg6Ci0JCWlmIChhZGRybGVuPT0yKSB7Ci0JCQl0cHJpbnRmKCI8bmlsPiIpOworCQlpZiAoYWRkcmxlbiA9PSAyKSB7CisJCQl0cHJpbnRmKCJOVUxMIik7CiAJCX0gZWxzZSBpZiAoYWRkcmJ1Zi5zYXUuc3VuX3BhdGhbMF0pIHsKLQkJCXRwcmludGYoInBhdGg9XCIlLS4qc1wiIiwgYWRkcmxlbi0yLCBhZGRyYnVmLnNhdS5zdW5fcGF0aCk7CisJCQl0cHJpbnRmKCJwYXRoPSIpOworCQkJcHJpbnRwYXRobih0Y3AsIGFkZHIgKyAyLCBzdHJsZW4oYWRkcmJ1Zi5zYXUuc3VuX3BhdGgpKTsKIAkJfSBlbHNlIHsKLQkJCXRwcmludGYoInBhdGg9QCUtLipzIiwgYWRkcmxlbi0zLCBhZGRyYnVmLnNhdS5zdW5fcGF0aCsxKTsKKwkJCXRwcmludGYoInBhdGg9QCIpOworCQkJcHJpbnRwYXRobih0Y3AsIGFkZHIgKyAzLCBzdHJsZW4oYWRkcmJ1Zi5zYXUuc3VuX3BhdGggKyAxKSk7CiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBBRl9JTkVUOgpAQCAtMTA3NywxMCArMTM1MSw3IEBACiB9OwogCiBzdGF0aWMgdm9pZAotcHJpbnRjbXNnaGRyKHRjcCwgYWRkciwgbGVuKQotc3RydWN0IHRjYiAqdGNwOwotdW5zaWduZWQgbG9uZyBhZGRyOwotdW5zaWduZWQgbG9uZyBsZW47CitwcmludGNtc2doZHIoc3RydWN0IHRjYiAqdGNwLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuKQogewogCXN0cnVjdCBjbXNnaGRyICpjbXNnID0gbGVuIDwgc2l6ZW9mKHN0cnVjdCBjbXNnaGRyKSA/CiAJCQkgICAgICAgTlVMTCA6IG1hbGxvYyhsZW4pOwpAQCAtMTA5MCw3ICsxMzYxLDcgQEAKIAkJcmV0dXJuOwogCX0KIAotCXRwcmludGYoIiwge2Ntc2dfbGVuPSV6dSwgY21zZ19sZXZlbD0iLCBjbXNnLT5jbXNnX2xlbik7CisJdHByaW50ZigiLCB7Y21zZ19sZW49JXUsIGNtc2dfbGV2ZWw9IiwgKHVuc2lnbmVkKSBjbXNnLT5jbXNnX2xlbik7CiAJcHJpbnR4dmFsKHNvY2tldGxheWVycywgY21zZy0+Y21zZ19sZXZlbCwgIlNPTF8/Pz8iKTsKIAl0cHJpbnRmKCIsIGNtc2dfdHlwZT0iKTsKIApAQCAtMTEzMSw2ICsxNDAyLDMwIEBACiB9CiAKIHN0YXRpYyB2b2lkCitkb19tc2doZHIoc3RydWN0IHRjYiAqdGNwLCBzdHJ1Y3QgbXNnaGRyICptc2cpCit7CisJdHByaW50Zigie21zZ19uYW1lKCVkKT0iLCBtc2ctPm1zZ19uYW1lbGVuKTsKKwlwcmludHNvY2sodGNwLCAobG9uZyltc2ctPm1zZ19uYW1lLCBtc2ctPm1zZ19uYW1lbGVuKTsKKworCXRwcmludGYoIiwgbXNnX2lvdiglbHUpPSIsICh1bnNpZ25lZCBsb25nKW1zZy0+bXNnX2lvdmxlbik7CisJdHByaW50X2lvdih0Y3AsICh1bnNpZ25lZCBsb25nKW1zZy0+bXNnX2lvdmxlbiwKKwkJICAgKHVuc2lnbmVkIGxvbmcpbXNnLT5tc2dfaW92KTsKKworI2lmZGVmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTAorCXRwcmludGYoIiwgbXNnX2NvbnRyb2xsZW49JWx1IiwgKHVuc2lnbmVkIGxvbmcpbXNnLT5tc2dfY29udHJvbGxlbik7CisJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4pCisJCXByaW50Y21zZ2hkcih0Y3AsICh1bnNpZ25lZCBsb25nKSBtc2ctPm1zZ19jb250cm9sLAorCQkJICAgICBtc2ctPm1zZ19jb250cm9sbGVuKTsKKwl0cHJpbnRmKCIsIG1zZ19mbGFncz0iKTsKKwlwcmludGZsYWdzKG1zZ19mbGFncywgbXNnLT5tc2dfZmxhZ3MsICJNU0dfPz8/Iik7CisjZWxzZSAvKiAhSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MICovCisJdHByaW50ZigibXNnX2FjY3JpZ2h0cz0lI2x4LCBtc2dfYWNjcmlnaHRzbGVuPSV1IiwKKwkJKHVuc2lnbmVkIGxvbmcpIG1zZy0+bXNnX2FjY3JpZ2h0cywgbXNnLT5tc2dfYWNjcmlnaHRzbGVuKTsKKyNlbmRpZiAvKiAhSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MICovCisJdHByaW50ZigifSIpOworfQorCitzdGF0aWMgdm9pZAogcHJpbnRtc2doZHIodGNwLCBhZGRyKQogc3RydWN0IHRjYiAqdGNwOwogbG9uZyBhZGRyOwpAQCAtMTE0MSwzNyArMTQzNiw1NyBAQAogCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CiAJCXJldHVybjsKIAl9Ci0JdHByaW50Zigie21zZ19uYW1lKCVkKT0iLCBtc2cubXNnX25hbWVsZW4pOwotCXByaW50c29jayh0Y3AsIChsb25nKW1zZy5tc2dfbmFtZSwgbXNnLm1zZ19uYW1lbGVuKTsKLQotCXRwcmludGYoIiwgbXNnX2lvdiglbHUpPSIsICh1bnNpZ25lZCBsb25nKW1zZy5tc2dfaW92bGVuKTsKLQl0cHJpbnRfaW92KHRjcCwgKHVuc2lnbmVkIGxvbmcpbXNnLm1zZ19pb3ZsZW4sCi0JCSAgICh1bnNpZ25lZCBsb25nKW1zZy5tc2dfaW92KTsKLQotI2lmZGVmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTAotCXRwcmludGYoIiwgbXNnX2NvbnRyb2xsZW49JWx1IiwgKHVuc2lnbmVkIGxvbmcpbXNnLm1zZ19jb250cm9sbGVuKTsKLQlpZiAobXNnLm1zZ19jb250cm9sbGVuKQotCQlwcmludGNtc2doZHIodGNwLCAodW5zaWduZWQgbG9uZykgbXNnLm1zZ19jb250cm9sLAotCQkJICAgICBtc2cubXNnX2NvbnRyb2xsZW4pOwotCXRwcmludGYoIiwgbXNnX2ZsYWdzPSIpOwotCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCBtc2cubXNnX2ZsYWdzLCAiTVNHXz8/PyIpOwotI2Vsc2UgLyogIUhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAqLwotCXRwcmludGYoIm1zZ19hY2NyaWdodHM9JSNseCwgbXNnX2FjY3JpZ2h0c2xlbj0ldSIsCi0JCSh1bnNpZ25lZCBsb25nKSBtc2cubXNnX2FjY3JpZ2h0cywgbXNnLm1zZ19hY2NyaWdodHNsZW4pOwotI2VuZGlmIC8qICFIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgKi8KLQl0cHJpbnRmKCJ9Iik7CisJZG9fbXNnaGRyKHRjcCwgJm1zZyk7CiB9CiAKKyNpZmRlZiBMSU5VWAorc3RhdGljIHZvaWQKK3ByaW50bW1zZ2hkcihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKK3sKKwlzdHJ1Y3QgbW1zZ2hkciB7CisJCXN0cnVjdCBtc2doZHIgbXNnX2hkcjsKKwkJdW5zaWduZWQgbXNnX2xlbjsKKwl9IG1tc2c7CisKKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmbW1zZykgPCAwKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJ7Iik7CisJZG9fbXNnaGRyKHRjcCwgJm1tc2cubXNnX2hkcik7CisJdHByaW50ZigiLCAldX0iLCBtbXNnLm1zZ19sZW4pOworfQorI2VuZGlmCisKICNlbmRpZiAvKiBIQVZFX1NFTkRNU0cgKi8KIAorLyoKKyAqIGxvdyBiaXRzIG9mIHRoZSBzb2NrZXQgdHlwZSBkZWZpbmUgcmVhbCBzb2NrZXQgdHlwZSwKKyAqIG90aGVyIGJpdHMgYXJlIHNvY2tldCB0eXBlIGZsYWdzLgorICovCitzdGF0aWMgdm9pZAordHByaW50X3NvY2tfdHlwZShzdHJ1Y3QgdGNiICp0Y3AsIGludCBmbGFncykKK3sKKwljb25zdCBjaGFyICpzdHIgPSB4bG9va3VwKHNvY2t0eXBlcywgZmxhZ3MgJiBTT0NLX1RZUEVfTUFTSyk7CisKKwlpZiAoc3RyKQorCXsKKwkJdHByaW50ZigiJXMiLCBzdHIpOworCQlmbGFncyAmPSB+U09DS19UWVBFX01BU0s7CisJCWlmICghZmxhZ3MpCisJCQlyZXR1cm47CisJCXRwcmludGYoInwiKTsKKwl9CisJcHJpbnRmbGFncyhzb2NrX3R5cGVfZmxhZ3MsIGZsYWdzLCAiU09DS18/Pz8iKTsKK30KKwogaW50Ci1zeXNfc29ja2V0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zb2NrZXQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50eHZhbChkb21haW5zLCB0Y3AtPnVfYXJnWzBdLCAiUEZfPz8/Iik7CiAJCXRwcmludGYoIiwgIik7Ci0JCXByaW50eHZhbChzb2NrdHlwZXMsIHRjcC0+dV9hcmdbMV0sICJTT0NLXz8/PyIpOworCQl0cHJpbnRfc29ja190eXBlKHRjcCwgdGNwLT51X2FyZ1sxXSk7CiAJCXRwcmludGYoIiwgIik7CiAJCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgewogCQljYXNlIFBGX0lORVQ6CkBAIC0xMTk2LDYgKzE1MTEsNyBAQAogCXJldHVybiAwOwogfQogCisjaWZkZWYgU1ZSNAogaW50CiBzeXNfc29fc29ja2V0KHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKQEAgLTEyMTcsMTEgKzE1MzMsMTIgQEAKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCSAgCS8qIG5vdCBzdXJlIHdoYXQgdGhpcyBhcmcgaXMgKi8KKwkJLyogbm90IHN1cmUgd2hhdCB0aGlzIGFyZyBpcyAqLwogCQl0cHJpbnRmKCIweCVseCIsIHRjcC0+dV9hcmdbMF0pOwogCX0KIAlyZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBTVlI0ICovCiAKIGludAogc3lzX2JpbmQodGNwKQpAQCAtMTI1MiwyNyArMTU2OSw0OSBAQAogCXJldHVybiAwOwogfQogCi1pbnQKLXN5c19hY2NlcHQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3RhdGljIGludAorZG9fYWNjZXB0KHN0cnVjdCB0Y2IgKnRjcCwgaW50IGZsYWdzX2FyZykKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOwotCX0gZWxzZSBpZiAoIXRjcC0+dV9hcmdbMl0pCisJCXJldHVybiAwOworCX0KKwlpZiAoIXRjcC0+dV9hcmdbMl0pCiAJCXRwcmludGYoIiUjbHgsIE5VTEwiLCB0Y3AtPnVfYXJnWzFdKTsKIAllbHNlIHsKLQkJaWYgKHRjcC0+dV9hcmdbMV0gPT0gMCB8fCBzeXNlcnJvcih0Y3ApKSB7CisJCWludCBsZW47CisJCWlmICh0Y3AtPnVfYXJnWzFdID09IDAgfHwgc3lzZXJyb3IodGNwKQorCQkgICAgfHwgdW1vdmUgKHRjcCwgdGNwLT51X2FyZ1syXSwgJmxlbikgPCAwKSB7CiAJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CiAJCX0gZWxzZSB7Ci0JCQlwcmludHNvY2sodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbMV0sIGxlbik7CiAJCX0KIAkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzJdLCAiJWx1Iik7CisJCXByaW50bnVtX2ludCh0Y3AsIHRjcC0+dV9hcmdbMl0sICIldSIpOworCX0KKwlpZiAoZmxhZ3NfYXJnID49IDApIHsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhzb2NrX3R5cGVfZmxhZ3MsIHRjcC0+dV9hcmdbZmxhZ3NfYXJnXSwKKwkJCSAgICJTT0NLXz8/PyIpOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogaW50CitzeXNfYWNjZXB0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZG9fYWNjZXB0KHRjcCwgLTEpOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX2FjY2VwdDQoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkb19hY2NlcHQodGNwLCAzKTsKK30KKyNlbmRpZgorCitpbnQKIHN5c19zZW5kKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKQEAgLTE0MDYsMjUgKzE3NDUsNzEgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIExJTlVYCitpbnQKK3N5c19yZWN2bW1zZyhzdHJ1Y3QgdGNiICp0Y3ApCit7CisJc3RhdGljIGNoYXIgc3RyWzEyOF07CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlpZiAodmVyYm9zZSh0Y3ApKSB7CisJCQlzcHJpbnRfdGltZXNwZWMoc3RyLCB0Y3AsIHRjcC0+dV9hcmdbNF0pOworCQkJdGNwLT5hdXhzdHIgPSBzdHJkdXAoc3RyKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludGYoIiUjbHgsICVsZCwgIiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludF90aW1lc3BlYyh0Y3AsIHRjcC0+dV9hcmdbNF0pOworCQl9CisJCXJldHVybiAwOworCX0gZWxzZSB7CisJCWlmICh2ZXJib3NlKHRjcCkpIHsKKwkJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCWVsc2UKKwkJCQlwcmludG1tc2doZHIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXRwcmludGYoIiwgJWxkLCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCS8qIGZsYWdzICovCisJCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKKwkJCS8qIHRpbWVvdXQgb24gZW50cmFuY2UgKi8KKwkJCXRwcmludGYoIiwgJXMiLCB0Y3AtPmF1eHN0ciA/IHRjcC0+YXV4c3RyIDogInsuLi59Iik7CisJCQlmcmVlKCh2b2lkICopIHRjcC0+YXV4c3RyKTsKKwkJCXRjcC0+YXV4c3RyID0gTlVMTDsKKwkJfQorCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXJldHVybiAwOworCQlpZiAodGNwLT51X3J2YWwgPT0gMCkgeworCQkJdGNwLT5hdXhzdHIgPSAiVGltZW91dCI7CisJCQlyZXR1cm4gUlZBTF9TVFI7CisJCX0KKwkJaWYgKCF2ZXJib3NlKHRjcCkpCisJCQlyZXR1cm4gMDsKKwkJLyogdGltZW91dCBvbiBleGl0ICovCisJCXN0cmNweShzdHIsICJsZWZ0ICIpOworCQlzcHJpbnRfdGltZXNwZWMoc3RyICsgc3RybGVuKHN0ciksIHRjcCwgdGNwLT51X2FyZ1s0XSk7CisJCXRjcC0+YXV4c3RyID0gc3RyOworCQlyZXR1cm4gUlZBTF9TVFI7CisJfQorfQorI2VuZGlmCisKICNlbmRpZiAvKiBIQVZFX1NFTkRNU0cgKi8KIAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNodXRkb3duX21vZGVzW10gPSB7CisgICAgICAgeyAwLAkiU0hVVF9SRCIJfSwKKyAgICAgICB7IDEsCSJTSFVUX1dSIgl9LAorICAgICAgIHsgMiwJIlNIVVRfUkRXUiIJfSwKKyAgICAgICB7IDAsCU5VTEwJCX0KK307CisKIGludAogc3lzX3NodXRkb3duKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewotCQl0cHJpbnRmKCIlbGQsICVsZCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOwotCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKLQkJY2FzZSAwOgotCQkJdHByaW50ZigiJXMiLCAiIC8qIHJlY2VpdmUgKi8iKTsKLQkJCWJyZWFrOwotCQljYXNlIDE6Ci0JCQl0cHJpbnRmKCIlcyIsICIgLyogc2VuZCAqLyIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgMjoKLQkJCXRwcmludGYoIiVzIiwgIiAvKiBzZW5kIGFuZCByZWNlaXZlICovIik7Ci0JCQlicmVhazsKLQkJfQorCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHh2YWwoc2h1dGRvd25fbW9kZXMsIHRjcC0+dV9hcmdbMV0sICJTSFVUXz8/PyIpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTE0NDMsMzQgKzE4MjgsNTAgQEAKIAlyZXR1cm4gc3lzX2FjY2VwdCh0Y3ApOwogfQogCi1pbnQKLXN5c19waXBlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N0YXRpYyBpbnQKK2RvX3BpcGUoc3RydWN0IHRjYiAqdGNwLCBpbnQgZmxhZ3NfYXJnKQogewotCi0jaWYgZGVmaW5lZChMSU5VWCkgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKFNIKSAmJiAhZGVmaW5lZChJQTY0KQotCWludCBmZHNbMl07Ci0KIAlpZiAoZXhpdGluZyh0Y3ApKSB7CiAJCWlmIChzeXNlcnJvcih0Y3ApKSB7CiAJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIGZkcywgKGNoYXIgKikgZmRzKSA8IDApCi0JCQl0cHJpbnRmKCJbLi4uXSIpOwotCQllbHNlCi0JCQl0cHJpbnRmKCJbJXUsICV1XSIsIGZkc1swXSwgZmRzWzFdKTsKLQl9CisJCX0gZWxzZSB7CisjaWYgZGVmaW5lZChMSU5VWCkgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKFNIKSAmJiAhZGVmaW5lZChJQTY0KQorCQkJaW50IGZkc1syXTsKKworCQkJaWYgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMF0sIHNpemVvZiBmZHMsIChjaGFyICopIGZkcykgPCAwKQorCQkJCXRwcmludGYoIlsuLi5dIik7CisJCQllbHNlCisJCQkJdHByaW50ZigiWyV1LCAldV0iLCBmZHNbMF0sIGZkc1sxXSk7CiAjZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpIHx8IGRlZmluZWQoU0gpIHx8IGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKSB8fCBkZWZpbmVkKElBNjQpCi0JaWYgKGV4aXRpbmcodGNwKSkKLQkJdHByaW50ZigiWyVsdSwgJWx1XSIsIHRjcC0+dV9ydmFsLCBnZXRydmFsMih0Y3ApKTsKKwkJCXRwcmludGYoIlslbHUsICVsdV0iLCB0Y3AtPnVfcnZhbCwgZ2V0cnZhbDIodGNwKSk7CisjZWxzZQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOwogI2VuZGlmCisJCX0KKwkJaWYgKGZsYWdzX2FyZyA+PSAwKSB7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhvcGVuX21vZGVfZmxhZ3MsIHRjcC0+dV9hcmdbZmxhZ3NfYXJnXSwgIk9fPz8/Iik7CisJCX0KKwl9CiAJcmV0dXJuIDA7CiB9CiAKIGludAotc3lzX3NvY2tldHBhaXIodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3BpcGUoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkb19waXBlKHRjcCwgLTEpOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX3BpcGUyKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZG9fcGlwZSh0Y3AsIDEpOworfQorI2VuZGlmCisKK2ludAorc3lzX3NvY2tldHBhaXIoc3RydWN0IHRjYiAqdGNwKQogewogI2lmZGVmIExJTlVYCiAJaW50IGZkc1syXTsKQEAgLTE0NzksNyArMTg4MCw3IEBACiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnR4dmFsKGRvbWFpbnMsIHRjcC0+dV9hcmdbMF0sICJQRl8/Pz8iKTsKIAkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR4dmFsKHNvY2t0eXBlcywgdGNwLT51X2FyZ1sxXSwgIlNPQ0tfPz8/Iik7CisJCXRwcmludF9zb2NrX3R5cGUodGNwLCB0Y3AtPnVfYXJnWzFdKTsKIAkJdHByaW50ZigiLCAiKTsKIAkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7CiAJCWNhc2UgUEZfSU5FVDoKQEAgLTE1MTYsOCArMTkxNyw3IEBACiB9CiAKIGludAotc3lzX2dldHNvY2tvcHQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2dldHNvY2tvcHQoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CkBAIC0xNTUyLDYgKzE5NTIsMTEgQEAKIAkJCXByaW50eHZhbChzb2NrdGNwb3B0aW9ucywgdGNwLT51X2FyZ1syXSwgIlRDUF8/Pz8iKTsKIAkJCWJyZWFrOwogI2VuZGlmCisjaWZkZWYgU09MX1NDVFAKKwkJY2FzZSBTT0xfU0NUUDoKKwkJCXByaW50eHZhbChzb2Nrc2N0cG9wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJTQ1RQXz8/PyIpOworCQkJYnJlYWs7CisjZW5kaWYKIAogCQkvKiBTT0xfQVgyNSBTT0xfUk9TRSBTT0xfQVRBTEsgU09MX05FVFJPTSBTT0xfVURQIFNPTF9ERUNORVQgU09MX1gyNQogCQkgKiBldGMuIHN0aWxsIG5lZWQgd29yayAqLwpAQCAtMTU1OSwxMCArMTk2NCwxMSBAQAogCQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1syXSk7CiAJCQlicmVhazsKIAkJfQorCQl0cHJpbnRmICgiLCAiKTsKIAl9IGVsc2UgewogCQlpbnQgbGVuOwogCQlpZiAoc3lzZXJyb3IodGNwKSB8fCB1bW92ZSAodGNwLCB0Y3AtPnVfYXJnWzRdLCAmbGVuKSA8IDApIHsKLQkJCXRwcmludGYoIiwgJSNseCwgJSNseCIsCisJCQl0cHJpbnRmKCIlI2x4LCAlI2x4IiwKIAkJCQl0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC0xNTcyLDEzICsxOTc4LDEzIEBACiAJCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMl0pIHsKICNpZmRlZiBTT19MSU5HRVIKIAkJCWNhc2UgU09fTElOR0VSOgotCQkJICAgICAgICBpZiAobGVuID09IHNpemVvZiAoc3RydWN0IGxpbmdlcikpIHsKKwkJCQlpZiAobGVuID09IHNpemVvZiAoc3RydWN0IGxpbmdlcikpIHsKIAkJCQkJc3RydWN0IGxpbmdlciBsaW5nZXI7CiAJCQkJCWlmICh1bW92ZSAodGNwLAogCQkJCQkJICAgdGNwLT51X2FyZ1szXSwKIAkJCQkJCSAgICZsaW5nZXIpIDwgMCkKIAkJCQkJCWJyZWFrOwotCQkJCQl0cHJpbnRmKCIsIHtvbm9mZj0lZCwgbGluZ2VyPSVkfSwgIgorCQkJCQl0cHJpbnRmKCJ7b25vZmY9JWQsIGxpbmdlcj0lZH0sICIKIAkJCQkJCSJbJWRdIiwKIAkJCQkJCWxpbmdlci5sX29ub2ZmLAogCQkJCQkJbGluZ2VyLmxfbGluZ2VyLApAQCAtMTU4NywxMyArMTk5Myw1MSBAQAogCQkJCX0KIAkJCQlicmVhazsKICNlbmRpZgorI2lmZGVmIFNPX1BFRVJDUkVECisJCQljYXNlIFNPX1BFRVJDUkVEOgorCQkJCWlmIChsZW4gPT0gc2l6ZW9mIChzdHJ1Y3QgdWNyZWQpKSB7CisJCQkJCXN0cnVjdCB1Y3JlZCB1YzsKKwkJCQkJaWYgKHVtb3ZlICh0Y3AsCisJCQkJCQkgICB0Y3AtPnVfYXJnWzNdLAorCQkJCQkJICAgJnVjKSA8IDApCisJCQkJCQlicmVhazsKKwkJCQkJdHByaW50Zigie3BpZD0lbGQsIHVpZD0lbGQsIGdpZD0lbGR9LCAiCisJCQkJCQkiWyVkXSIsCisJCQkJCQkobG9uZyl1Yy5waWQsCisJCQkJCQkobG9uZyl1Yy51aWQsCisJCQkJCQkobG9uZyl1Yy5naWQsCisJCQkJCQlsZW4pOworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisJCQkJYnJlYWs7CisjZW5kaWYKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFNPTF9QQUNLRVQ6CisJCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMl0pIHsKKyNpZmRlZiBQQUNLRVRfU1RBVElTVElDUworCQkJY2FzZSBQQUNLRVRfU1RBVElTVElDUzoKKwkJCQlpZiAobGVuID09IHNpemVvZihzdHJ1Y3QgdHBhY2tldF9zdGF0cykpIHsKKwkJCQkJc3RydWN0IHRwYWNrZXRfc3RhdHMgc3RhdHM7CisJCQkJCWlmICh1bW92ZSAodGNwLAorCQkJCQkJICAgdGNwLT51X2FyZ1szXSwKKwkJCQkJCSAgICZzdGF0cykgPCAwKQorCQkJCQkJYnJlYWs7CisJCQkJCXRwcmludGYoIntwYWNrZXRzPSV1LCBkcm9wcz0ldX0sICIKKwkJCQkJCSJbJWRdIiwKKwkJCQkJCXN0YXRzLnRwX3BhY2tldHMsCisJCQkJCQlzdGF0cy50cF9kcm9wcywKKwkJCQkJCWxlbik7CisJCQkJCXJldHVybiAwOworCQkJCX0KKwkJCQlicmVhazsKKyNlbmRpZgogCQkJfQogCQkJYnJlYWs7CiAJCX0KIAotCQl0cHJpbnRmICgiLCAiKTsKIAkJaWYgKGxlbiA9PSBzaXplb2YgKGludCkpIHsKLQkJCXByaW50bnVtKHRjcCwgdGNwLT51X2FyZ1szXSwgIiVsZCIpOworCQkJcHJpbnRudW1faW50KHRjcCwgdGNwLT51X2FyZ1szXSwgIiVkIik7CiAJCX0KIAkJZWxzZSB7CiAJCQlwcmludHN0ciAodGNwLCB0Y3AtPnVfYXJnWzNdLCBsZW4pOwpAQCAtMTY3Nyw2ICsyMTIxLDI4IEBACiAJICAgIGNhc2UgU09MX1BBQ0tFVDoKIAkJcHJpbnR4dmFsKHNvY2twYWNrZXRvcHRpb25zLCBuYW1lLCAiUEFDS0VUXz8/PyIpOwogCQkvKiBUT0RPOiBkZWNvZGUgcGFja2F0ZV9tcmVxIGZvciBQQUNLRVRfKl9NRU1CRVJTSElQICovCisJCXN3aXRjaCAobmFtZSkgeworI2lmZGVmIFBBQ0tFVF9SWF9SSU5HCisJCSAgICBjYXNlIFBBQ0tFVF9SWF9SSU5HOgorI2VuZGlmCisjaWZkZWYgUEFDS0VUX1RYX1JJTkcKKwkJICAgIGNhc2UgUEFDS0VUX1RYX1JJTkc6CisjZW5kaWYKKyNpZiBkZWZpbmVkKFBBQ0tFVF9SWF9SSU5HKSB8fCBkZWZpbmVkKFBBQ0tFVF9UWF9SSU5HKQorCQkJaWYgKGxlbiA9PSBzaXplb2Yoc3RydWN0IHRwYWNrZXRfcmVxKSkgeworCQkJCXN0cnVjdCB0cGFja2V0X3JlcSByZXE7CisJCQkJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnJlcSkgPCAwKQorCQkJCQlicmVhazsKKwkJCQl0cHJpbnRmKCIsIHtibG9ja19zaXplPSV1LCBibG9ja19ucj0ldSwgZnJhbWVfc2l6ZT0ldSwgZnJhbWVfbnI9JXV9IiwKKwkJCQkJcmVxLnRwX2Jsb2NrX3NpemUsCisJCQkJCXJlcS50cF9ibG9ja19uciwKKwkJCQkJcmVxLnRwX2ZyYW1lX3NpemUsCisJCQkJCXJlcS50cF9mcmFtZV9ucik7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCQlicmVhazsKKyNlbmRpZiAvKiBQQUNLRVRfUlhfUklORyB8fCBQQUNLRVRfVFhfUklORyAqLworCQl9CiAJCWJyZWFrOwogI2VuZGlmCiAjaWZkZWYgU09MX1RDUApAQCAtMTY4NCw2ICsyMTUwLDExIEBACiAJCXByaW50eHZhbChzb2NrdGNwb3B0aW9ucywgbmFtZSwgIlRDUF8/Pz8iKTsKIAkJYnJlYWs7CiAjZW5kaWYKKyNpZmRlZiBTT0xfU0NUUAorCSAgIGNhc2UgU09MX1NDVFA6CisJCXByaW50eHZhbChzb2Nrc2N0cG9wdGlvbnMsIG5hbWUsICJTQ1RQXz8/PyIpOworCQlicmVhazsKKyNlbmRpZgogI2lmZGVmIFNPTF9SQVcKIAkgICAgY2FzZSBTT0xfUkFXOgogCQlwcmludHh2YWwoc29ja3Jhd29wdGlvbnMsIG5hbWUsICJSQVdfPz8/Iik7CkBAIC0xNzEwLDcgKzIxODEsNyBAQAogCXRwcmludGYgKCIsICIpOwogCiAJaWYgKGxlbiA9PSBzaXplb2YgKGludCkpIHsKLQkJcHJpbnRudW0odGNwLCBhZGRyLCAiJWxkIik7CisJCXByaW50bnVtX2ludCAodGNwLCBhZGRyLCAiJWQiKTsKIAl9CiAJZWxzZSB7CiAJCXByaW50c3RyICh0Y3AsIGFkZHIsIGxlbik7CkBAIC0xODkwLDE3ICsyMzYxLDYgQEAKIAogfQogCi0jaWYgMAotCi1pbnQKLXN5c194c2V0c29ja2FkZHIodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfc2V0c29ja2FkZHIpOwotfQotCi0jZW5kaWYKLQogaW50CiBzeXNfeGdldHNvY2tvcHQodGNwKQogc3RydWN0IHRjYiAqdGNwOwpAQCAtMTkyMiw0ICsyMzgyLDQgQEAKIAlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX3NodXRkb3duKTsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogVU5JWFdBUkUgKi8KZGlmZiAtLWdpdCBhL3Byb2MuYyBiL3Byb2MuYwppbmRleCBmN2M1NjM2Li4wNGVmOGZiIDEwMDY0NAotLS0gYS9wcm9jLmMKKysrIGIvcHJvYy5jCkBAIC0yNCw3ICsyNCw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBwcm9jLmMsdiAxLjcgMjAwNS8wNi8wMSAxOTowMjozNiByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMjQyLDcgKzI0Miw3IEBACiAJCXByaW50ZmxhZ3MocHJvY19zdGF0dXNfZmxhZ3MsIGFyZywgIlBGXz8/PyIpOwogCQlyZXR1cm4gMTsKIAljYXNlIFBJT0NHRkw6Ci0JICAgICAgICBpZiAoc3lzZXJyb3IodGNwKSkKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCiAJCQl0cHJpbnRmKCIsICUjeCIsIGFyZyk7CiAJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCiAJCQl0cHJpbnRmKCIsIHsuLi59Iik7CmRpZmYgLS1naXQgYS9wcm9jZXNzLmMgYi9wcm9jZXNzLmMKaW5kZXggZjYyZjk4ZC4uMWZmZTY0OSAxMDA2NDQKLS0tIGEvcHJvY2Vzcy5jCisrKyBiL3Byb2Nlc3MuYwpAQCAtMzQsNyArMzQsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogcHJvY2Vzcy5jLHYgMS45NyAyMDA1LzA2LzA4IDIwOjQ1OjI4IHJvbGFuZCBFeHAgJAorICoJJElkJAogICovCiAKICNpbmNsdWRlICJkZWZzLmgiCkBAIC02MCwyNSArNjAsNiBAQAogI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KICNlbmRpZgogCi0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0vKiBmb3Igc3RydWN0IHNjaGVkX3BhcmFtICovCi0jZGVmaW5lIHNjaGVkX3ByaW9yaXR5ICBfX3NjaGVkX3ByaW9yaXR5Ci0jZW5kaWYKLQotI2lmIEhBVkVfQVNNX1JFR19ICi0jaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0jICBkZWZpbmUgZnBxIGtlcm5lbF9mcHEKLSMgIGRlZmluZSBmcSBrZXJuZWxfZnEKLSMgIGRlZmluZSBmcHUga2VybmVsX2ZwdQotI2VuZGlmIC8qIFNQQVJDIHx8IFNQQVJDNjQgKi8KLSNpbmNsdWRlIDxhc20vcmVnLmg+Ci0jaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0jICB1bmRlZiBmcHEKLSMgIHVuZGVmIGZxCi0jICB1bmRlZiBmcHUKLSNlbmRpZiAvKiBTUEFSQyB8fCBTUEFSQzY0ICovCi0jZW5kaWYgLyogSEFWRV9BU01fUkVHX0ggKi8KLQogI2lmZGVmIEhBVkVfU1lTX1JFR19ICiAjIGluY2x1ZGUgPHN5cy9yZWcuaD4KICNpZm5kZWYgUFRSQUNFX1BFRUtVU1IKQEAgLTExMSw5ICs5Miw5IEBACiAjZW5kaWYgLyogTElOVVggJiYgU1BBUkM2NCAqLwogCiAjaWZkZWYgSEFWRV9MSU5VWF9GVVRFWF9ICi0jaW5jbHVkZSA8bGludXgvZnV0ZXguaD4KKyMgaW5jbHVkZSA8bGludXgvZnV0ZXguaD4KICNlbmRpZgotI2lmIGRlZmluZWQgTElOVVgKKyNpZmRlZiBMSU5VWAogIyBpZm5kZWYgRlVURVhfV0FJVAogIyAgZGVmaW5lIEZVVEVYX1dBSVQgMAogIyBlbmRpZgpAQCAtMTI2LDcgKzEwNyw3IEBACiAjIGlmbmRlZiBGVVRFWF9SRVFVRVVFCiAjICBkZWZpbmUgRlVURVhfUkVRVUVVRSAzCiAjIGVuZGlmCi0jZW5kaWYKKyNlbmRpZiAvKiBMSU5VWCAqLwogCiAjaWZkZWYgTElOVVgKICNpbmNsdWRlIDxzY2hlZC5oPgpAQCAtMTM3LDIxICsxMTgsMTggQEAKICNkZWZpbmUgR0VUR1JPVVBTMzJfVCBfX2tlcm5lbF9naWQzMl90CiAjZW5kaWYgLyogTElOVVggKi8KIAorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2RlZmluZSBfX3NjaGVkX3ByaW9yaXR5IHNjaGVkX3ByaW9yaXR5CisjZW5kaWYKKwogI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSUE2NCkKICMgaW5jbHVkZSA8YXNtL3B0cmFjZV9vZmZzZXRzLmg+CiAjIGluY2x1ZGUgPGFzbS9yc2UuaD4KICNlbmRpZgogCiAjaWZkZWYgSEFWRV9QUkNUTAotI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotI2VuZGlmCisjIGluY2x1ZGUgPHN5cy9wcmN0bC5oPgogCi0jaWZuZGVmIFdDT1JFRFVNUAotI2RlZmluZSBXQ09SRURVTVAoc3RhdHVzKSAoKHN0YXR1cykgJiAwMjAwKQotI2VuZGlmCi0KLS8qIFdUQTogdGhpcyB3YXMgYCYmICFkZWZpbmVkKExJTlVYU1BBUkMpJywgdGhpcyBzZWVtcyB1bm5lZWRlZCB0aG91Z2g/ICovCi0jaWYgZGVmaW5lZChIQVZFX1BSQ1RMKQogc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHByY3RsX29wdGlvbnNbXSA9IHsKICNpZmRlZiBQUl9NQVhQUk9DUwogCXsgUFJfTUFYUFJPQ1MsCQkiUFJfTUFYUFJPQ1MiCQl9LApAQCAtMTk1LDkgKzE3Myw2IEBACiAjaWZkZWYgUFJfR0VUTlNIQVJFCiAJeyBQUl9HRVROU0hBUkUsCQkiUFJfR0VUTlNIQVJFIgkJfSwKICNlbmRpZgotI2lmIGRlZmluZWQoUFJfU0VUX1BERUFUSFNJRykKLQl7IFBSX1NFVF9QREVBVEhTSUcsCSJQUl9TRVRfUERFQVRIU0lHIgl9LAotI2VuZGlmCiAjaWZkZWYgUFJfQ09SRVBJRAogCXsgUFJfQ09SRVBJRCwJCSJQUl9DT1JFUElEIgkJfSwKICNlbmRpZgpAQCAtMjEzLDYgKzE4OCwxMiBAQAogI2lmZGVmIFBSX0dFVF9QREVBVEhTSUcKIAl7IFBSX0dFVF9QREVBVEhTSUcsCSJQUl9HRVRfUERFQVRIU0lHIgl9LAogI2VuZGlmCisjaWZkZWYgUFJfR0VUX0RVTVBBQkxFCisJeyBQUl9HRVRfRFVNUEFCTEUsCSJQUl9HRVRfRFVNUEFCTEUiCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9TRVRfRFVNUEFCTEUKKwl7IFBSX1NFVF9EVU1QQUJMRSwJIlBSX1NFVF9EVU1QQUJMRSIJfSwKKyNlbmRpZgogI2lmZGVmIFBSX0dFVF9VTkFMSUdOCiAJeyBQUl9HRVRfVU5BTElHTiwJIlBSX0dFVF9VTkFMSUdOIgl9LAogI2VuZGlmCkBAIC0yMjAsMTAgKzIwMSw1OCBAQAogCXsgUFJfU0VUX1VOQUxJR04sCSJQUl9TRVRfVU5BTElHTiIJfSwKICNlbmRpZgogI2lmZGVmIFBSX0dFVF9LRUVQQ0FQUwotCXsgUFJfR0VUX0tFRVBDQVBTLAkiUFJfR0VUX0tFRVBfQ0FQUyIJfSwKKwl7IFBSX0dFVF9LRUVQQ0FQUywJIlBSX0dFVF9LRUVQQ0FQUyIJfSwKICNlbmRpZgogI2lmZGVmIFBSX1NFVF9LRUVQQ0FQUwotCXsgUFJfU0VUX0tFRVBDQVBTLAkiUFJfU0VUX0tFRVBfQ0FQUyIJfSwKKwl7IFBSX1NFVF9LRUVQQ0FQUywJIlBSX1NFVF9LRUVQQ0FQUyIJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0dFVF9GUEVNVQorCXsgUFJfR0VUX0ZQRU1VLAkJIlBSX0dFVF9GUEVNVSIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9TRVRfRlBFTVUKKwl7IFBSX1NFVF9GUEVNVSwJCSJQUl9TRVRfRlBFTVUiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfR0VUX0ZQRVhDCisJeyBQUl9HRVRfRlBFWEMsCQkiUFJfR0VUX0ZQRVhDIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBSX1NFVF9GUEVYQworCXsgUFJfU0VUX0ZQRVhDLAkJIlBSX1NFVF9GUEVYQyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9HRVRfVElNSU5HCisJeyBQUl9HRVRfVElNSU5HLAkiUFJfR0VUX1RJTUlORyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9TRVRfVElNSU5HCisJeyBQUl9TRVRfVElNSU5HLAkiUFJfU0VUX1RJTUlORyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9TRVRfTkFNRQorCXsgUFJfU0VUX05BTUUsCQkiUFJfU0VUX05BTUUiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfR0VUX05BTUUKKwl7IFBSX0dFVF9OQU1FLAkJIlBSX0dFVF9OQU1FIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0dFVF9FTkRJQU4KKwl7IFBSX0dFVF9FTkRJQU4sCSJQUl9HRVRfRU5ESUFOIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBSX1NFVF9FTkRJQU4KKwl7IFBSX1NFVF9FTkRJQU4sCSJQUl9TRVRfRU5ESUFOIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0dFVF9TRUNDT01QCisJeyBQUl9HRVRfU0VDQ09NUCwJIlBSX0dFVF9TRUNDT01QIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfU0VUX1NFQ0NPTVAKKwl7IFBSX1NFVF9TRUNDT01QLAkiUFJfU0VUX1NFQ0NPTVAiCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9HRVRfVFNDCisJeyBQUl9HRVRfVFNDLAkJIlBSX0dFVF9UU0MiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfU0VUX1RTQworCXsgUFJfU0VUX1RTQywJCSJQUl9TRVRfVFNDIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0dFVF9TRUNVUkVCSVRTCisJeyBQUl9HRVRfU0VDVVJFQklUUywJIlBSX0dFVF9TRUNVUkVCSVRTIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfU0VUX1NFQ1VSRUJJVFMKKwl7IFBSX1NFVF9TRUNVUkVCSVRTLAkiUFJfU0VUX1NFQ1VSRUJJVFMiCX0sCiAjZW5kaWYKIAl7IDAsCQkJTlVMTAkJCX0sCiB9OwpAQCAtMjY0LDEwICsyOTMsMjQgQEAKIAkJY2FzZSBQUl9HRVROU0hBUkU6CiAJCQlicmVhazsKICNlbmRpZgotI2lmZGVmIFBSX1NFVF9ERUFUSFNJRworI2lmZGVmIFBSX1NFVF9QREVBVEhTSUcKKwkJY2FzZSBQUl9TRVRfUERFQVRIU0lHOgorCQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgUFJfR0VUX1BERUFUSFNJRwogCQljYXNlIFBSX0dFVF9QREVBVEhTSUc6CiAJCQlicmVhazsKICNlbmRpZgorI2lmZGVmIFBSX1NFVF9EVU1QQUJMRQorCQljYXNlIFBSX1NFVF9EVU1QQUJMRToKKwkJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFBSX0dFVF9EVU1QQUJMRQorCQljYXNlIFBSX0dFVF9EVU1QQUJMRToKKwkJCWJyZWFrOworI2VuZGlmCiAjaWZkZWYgUFJfU0VUX1VOQUxJR04KIAkJY2FzZSBQUl9TRVRfVU5BTElHTjoKIAkJCXRwcmludGYoIiwgJXMiLCB1bmFsaWduY3RsX3N0cmluZyh0Y3AtPnVfYXJnWzFdKSk7CkBAIC0yNzgsNiArMzIxLDE1IEBACiAJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKIAkJCWJyZWFrOwogI2VuZGlmCisjaWZkZWYgUFJfU0VUX0tFRVBDQVBTCisJCWNhc2UgUFJfU0VUX0tFRVBDQVBTOgorCQkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgUFJfR0VUX0tFRVBDQVBTCisJCWNhc2UgUFJfR0VUX0tFRVBDQVBTOgorCQkJYnJlYWs7CisjZW5kaWYKIAkJZGVmYXVsdDoKIAkJCWZvciAoaSA9IDE7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKIAkJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnW2ldKTsKQEAgLTI4NywyMyArMzM5LDI2IEBACiAJCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgewogI2lmZGVmIFBSX0dFVF9QREVBVEhTSUcKIAkJY2FzZSBQUl9HRVRfUERFQVRIU0lHOgotCQkJZm9yIChpPTE7IGk8dGNwLT51X25hcmdzOyBpKyspCi0JCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1tpXSk7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmaSkgPCAwKQorCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgeyV1fSIsIGkpOwogCQkJYnJlYWs7CiAjZW5kaWYKLSNpZmRlZiBQUl9TRVRfVU5BTElHTgotCQljYXNlIFBSX1NFVF9VTkFMSUdOOgotCQkJYnJlYWs7CisjaWZkZWYgUFJfR0VUX0RVTVBBQkxFCisJCWNhc2UgUFJfR0VUX0RVTVBBQkxFOgorCQkJcmV0dXJuIFJWQUxfVURFQ0lNQUw7CiAjZW5kaWYKICNpZmRlZiBQUl9HRVRfVU5BTElHTgogCQljYXNlIFBSX0dFVF9VTkFMSUdOOgotCQl7Ci0JCQlpbnQgY3RsOwotCi0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZjdGwpOwotCQkJdGNwLT5hdXhzdHIgPSB1bmFsaWduY3RsX3N0cmluZyhjdGwpOworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmaSkgPCAwKQorCQkJCWJyZWFrOworCQkJdGNwLT5hdXhzdHIgPSB1bmFsaWduY3RsX3N0cmluZyhpKTsKIAkJCXJldHVybiBSVkFMX1NUUjsKLQkJfQorI2VuZGlmCisjaWZkZWYgUFJfR0VUX0tFRVBDQVBTCisJCWNhc2UgUFJfR0VUX0tFRVBDQVBTOgorCQkJcmV0dXJuIFJWQUxfVURFQ0lNQUw7CiAjZW5kaWYKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpAQCAtMzExLDkgKzM2Niw5IEBACiAJfQogCXJldHVybiAwOwogfQotCiAjZW5kaWYgLyogSEFWRV9QUkNUTCAqLwogCisjaWYgZGVmaW5lZChGUkVFQlNEKSB8fCBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChTVlI0KQogaW50CiBzeXNfZ2V0aG9zdGlkKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKQEAgLTMyMiw2ICszNzcsNyBAQAogCQlyZXR1cm4gUlZBTF9IRVg7CiAJcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogRlJFRUJTRCB8fCBTVU5PUzQgfHwgU1ZSNCAqLwogCiBpbnQKIHN5c19zZXRob3N0bmFtZSh0Y3ApCkBAIC0zMzQsNiArMzkwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoRlJFRUJTRCkgfHwgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoU1ZSNCkKIGludAogc3lzX2dldGhvc3RuYW1lKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKQEAgLTM0Nyw2ICs0MDQsNyBAQAogCX0KIAlyZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBBTFBIQSB8fCBGUkVFQlNEIHx8IFNVTk9TNCB8fCBTVlI0ICovCiAKIGludAogc3lzX3NldGRvbWFpbm5hbWUodGNwKQpAQCAtMzg4LDIzICs0NDYsMTYgQEAKIAl0cHJpbnRmKCIlbGQpICIsIHRjcC0+dV9hcmdbMF0pOwogCXRhYnRvKGFjb2x1bW4pOwogCXRwcmludGYoIj0gPyIpOwotCXByaW50dHJhaWxlcih0Y3ApOworCXByaW50dHJhaWxlcigpOwogCXJldHVybiAwOwogfQogCiBpbnQKLWludGVybmFsX2V4aXQodGNwKQotc3RydWN0IHRjYiAqdGNwOworaW50ZXJuYWxfZXhpdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdGNwLT5mbGFncyB8PSBUQ0JfRVhJVElORzsKICNpZmRlZiBfX05SX2V4aXRfZ3JvdXAKLSMgaWZkZWYgSUE2NAotCQlpZiAoaWEzMikgewotCQkJaWYgKHRjcC0+c2NubyA9PSAyNTIpCi0JCQkJdGNwLT5mbGFncyB8PSBUQ0JfR1JPVVBfRVhJVElORzsKLQkJfSBlbHNlCi0jIGVuZGlmCiAJCWlmIChrbm93bl9zY25vKHRjcCkgPT0gX19OUl9leGl0X2dyb3VwKQogCQkJdGNwLT5mbGFncyB8PSBUQ0JfR1JPVVBfRVhJVElORzsKICNlbmRpZgpAQCAtNDE1LDI3ICs0NjYsMjEgQEAKIC8qIFRDUCBpcyBjcmVhdGluZyBhIGNoaWxkIHdlIHdhbnQgdG8gZm9sbG93LgogICAgSWYgdGhlcmUgd2lsbCBiZSBzcGFjZSBpbiB0Y2J0YWIgZm9yIGl0LCBzZXQgVENCX0ZPTExPV0ZPUksgYW5kIHJldHVybiAwLgogICAgSWYgbm90LCBjbGVhciBUQ0JfRk9MTE9XRk9SSywgcHJpbnQgYW4gZXJyb3IsIGFuZCByZXR1cm4gMS4gICovCi1zdGF0aWMgaW50CitzdGF0aWMgdm9pZAogZm9ya190Y2Ioc3RydWN0IHRjYiAqdGNwKQogewotCWlmIChucHJvY3MgPT0gdGNidGFic2l6ZSkgewotCQlpZiAoZXhwYW5kX3RjYnRhYigpKSB7Ci0JCQl0Y3AtPmZsYWdzICY9IH5UQ0JfRk9MTE9XRk9SSzsKLQkJCWZwcmludGYoc3RkZXJyLCAic3lzX2Zvcms6IHRjYiB0YWJsZSBmdWxsXG4iKTsKLQkJfQotCX0KKwlpZiAobnByb2NzID09IHRjYnRhYnNpemUpCisJCWV4cGFuZF90Y2J0YWIoKTsKIAogCXRjcC0+ZmxhZ3MgfD0gVENCX0ZPTExPV0ZPUks7Ci0JcmV0dXJuIDA7CiB9CiAKICNpZmRlZiBVU0VfUFJPQ0ZTCiAKIGludAotc3lzX2ZvcmsodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2Zvcmsoc3RydWN0IHRjYiAqdGNwKQogewotCWlmIChleGl0aW5nKHRjcCkpIHsKKwlpZiAoZXhpdGluZyh0Y3ApICYmICFzeXNlcnJvcih0Y3ApKSB7CiAJCWlmIChnZXRydmFsMih0Y3ApKSB7CiAJCQl0Y3AtPmF1eHN0ciA9ICJjaGlsZCBwcm9jZXNzIjsKIAkJCXJldHVybiBSVkFMX1VERUNJTUFMIHwgUlZBTF9TVFI7CkBAIC00NTMsNyArNDk4LDcgQEAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0cHJpbnRmICgiJWxkIiwgdGNwLT51X2FyZ1swXSk7CiAJfQotCWVsc2UgeworCWVsc2UgaWYgKCFzeXNlcnJvcih0Y3ApKSB7CiAJCWlmIChnZXRydmFsMih0Y3ApKSB7CiAJCQl0Y3AtPmF1eHN0ciA9ICJjaGlsZCBwcm9jZXNzIjsKIAkJCXJldHVybiBSVkFMX1VERUNJTUFMIHwgUlZBTF9TVFI7CkBAIC00NzksMTYgKzUyNCwxMiBAQAogCQkJcmV0dXJuIDA7CiAJCWlmICghZm9sbG93Zm9yaykKIAkJCXJldHVybiAwOwotCQlpZiAoZm9ya190Y2IodGNwKSkKLQkJCXJldHVybiAwOworCQlmb3JrX3RjYih0Y3ApOwogCQlpZiAoc3lzZXJyb3IodGNwKSkKIAkJCXJldHVybiAwOwotCQlpZiAoKHRjcGNoaWxkID0gYWxsb2N0Y2IodGNwLT51X3J2YWwpKSA9PSBOVUxMKSB7Ci0JCQlmcHJpbnRmKHN0ZGVyciwgInN5c19mb3JrOiB0Y2IgdGFibGUgZnVsbFxuIik7Ci0JCQlyZXR1cm4gMDsKLQkJfQorCQl0Y3BjaGlsZCA9IGFsbG9jdGNiKHRjcC0+dV9ydmFsKTsKIAkJaWYgKHByb2Nfb3Blbih0Y3BjaGlsZCwgMikgPCAwKQotCQkgIAlkcm9wdGNiKHRjcGNoaWxkKTsKKwkJCWRyb3B0Y2IodGNwY2hpbGQpOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTUxNSw5ICs1NTYsMTUgQEAKICNkZWZpbmUgQ0xPTkVfU0VUVExTCTB4MDAwODAwMDAJLyogY3JlYXRlIGEgbmV3IFRMUyBmb3IgdGhlIGNoaWxkICovCiAjZGVmaW5lIENMT05FX1BBUkVOVF9TRVRUSUQJMHgwMDEwMDAwMAkvKiBzZXQgdGhlIFRJRCBpbiB0aGUgcGFyZW50ICovCiAjZGVmaW5lIENMT05FX0NISUxEX0NMRUFSVElECTB4MDAyMDAwMDAJLyogY2xlYXIgdGhlIFRJRCBpbiB0aGUgY2hpbGQgKi8KLSNkZWZpbmUgQ0xPTkVfREVUQUNIRUQJCTB4MDA0MDAwMDAJLyogcGFyZW50IHdhbnRzIG5vIGNoaWxkLWV4aXQgc2lnbmFsICovCiAjZGVmaW5lIENMT05FX1VOVFJBQ0VECQkweDAwODAwMDAwCS8qIHNldCBpZiB0aGUgdHJhY2luZyBwcm9jZXNzIGNhbid0IGZvcmNlIENMT05FX1BUUkFDRSBvbiB0aGlzIGNsb25lICovCiAjZGVmaW5lIENMT05FX0NISUxEX1NFVFRJRAkweDAxMDAwMDAwCS8qIHNldCB0aGUgVElEIGluIHRoZSBjaGlsZCAqLworI2RlZmluZSBDTE9ORV9TVE9QUEVECQkweDAyMDAwMDAwCS8qIFN0YXJ0IGluIHN0b3BwZWQgc3RhdGUgKi8KKyNkZWZpbmUgQ0xPTkVfTkVXVVRTCQkweDA0MDAwMDAwCS8qIE5ldyB1dHNuYW1lIGdyb3VwPyAqLworI2RlZmluZSBDTE9ORV9ORVdJUEMJCTB4MDgwMDAwMDAJLyogTmV3IGlwY3MgKi8KKyNkZWZpbmUgQ0xPTkVfTkVXVVNFUgkJMHgxMDAwMDAwMAkvKiBOZXcgdXNlciBuYW1lc3BhY2UgKi8KKyNkZWZpbmUgQ0xPTkVfTkVXUElECQkweDIwMDAwMDAwCS8qIE5ldyBwaWQgbmFtZXNwYWNlICovCisjZGVmaW5lIENMT05FX05FV05FVAkJMHg0MDAwMDAwMAkvKiBOZXcgbmV0d29yayBuYW1lc3BhY2UgKi8KKyNkZWZpbmUgQ0xPTkVfSU8JCTB4ODAwMDAwMDAJLyogQ2xvbmUgaW8gY29udGV4dCAqLwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgY2xvbmVfZmxhZ3NbXSA9IHsKICAgICB7IENMT05FX1ZNLAkJIkNMT05FX1ZNIgl9LApAQCAtNTM0LDkgKzU4MSwxNSBAQAogICAgIHsgQ0xPTkVfU0VUVExTLAkiQ0xPTkVfU0VUVExTIiB9LAogICAgIHsgQ0xPTkVfUEFSRU5UX1NFVFRJRCwiQ0xPTkVfUEFSRU5UX1NFVFRJRCIgfSwKICAgICB7IENMT05FX0NISUxEX0NMRUFSVElELCJDTE9ORV9DSElMRF9DTEVBUlRJRCIgfSwKLSAgICB7IENMT05FX0RFVEFDSEVELAkiQ0xPTkVfREVUQUNIRUQiIH0sCiAgICAgeyBDTE9ORV9VTlRSQUNFRCwJIkNMT05FX1VOVFJBQ0VEIiB9LAogICAgIHsgQ0xPTkVfQ0hJTERfU0VUVElELCJDTE9ORV9DSElMRF9TRVRUSUQiIH0sCisgICAgeyBDTE9ORV9TVE9QUEVELAkiQ0xPTkVfU1RPUFBFRCIgfSwKKyAgICB7IENMT05FX05FV1VUUywJIkNMT05FX05FV1VUUyIgfSwKKyAgICB7IENMT05FX05FV0lQQywJIkNMT05FX05FV0lQQyIgfSwKKyAgICB7IENMT05FX05FV1VTRVIsCSJDTE9ORV9ORVdVU0VSIiB9LAorICAgIHsgQ0xPTkVfTkVXUElELAkiQ0xPTkVfTkVXUElEIiB9LAorICAgIHsgQ0xPTkVfTkVXTkVULAkiQ0xPTkVfTkVXTkVUIiB9LAorICAgIHsgQ0xPTkVfSU8sCQkiQ0xPTkVfSU8iIH0sCiAgICAgeyAwLAkJTlVMTAkJfSwKIH07CiAKQEAgLTU1NSw3ICs2MDgsNyBAQAogIyAgZGVmaW5lIEFSR19QVElECShrbm93bl9zY25vKHRjcCkgPT0gU1lTX2Nsb25lMiA/IDMgOiAyKQogIyAgZGVmaW5lIEFSR19DVElECShrbm93bl9zY25vKHRjcCkgPT0gU1lTX2Nsb25lMiA/IDQgOiAzKQogIyAgZGVmaW5lIEFSR19UTFMJKGtub3duX3Njbm8odGNwKSA9PSBTWVNfY2xvbmUyID8gNSA6IDQpCi0jIGVsaWYgZGVmaW5lZCBTMzkwIHx8IGRlZmluZWQgUzM5MFgKKyMgZWxpZiBkZWZpbmVkIFMzOTAgfHwgZGVmaW5lZCBTMzkwWCB8fCBkZWZpbmVkIENSSVNWMTAgfHwgZGVmaW5lZCBDUklTVjMyCiAjICBkZWZpbmUgQVJHX1NUQUNLCTAKICMgIGRlZmluZSBBUkdfRkxBR1MJMQogIyAgZGVmaW5lIEFSR19QVElECTIKQEAgLTU4MCw2ICs2MzMsNyBAQAogc3RydWN0IHRjYiAqdGNwOwogewogCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJY29uc3QgY2hhciAqc2VwID0gInwiOwogCQl1bnNpZ25lZCBsb25nIGZsYWdzID0gdGNwLT51X2FyZ1tBUkdfRkxBR1NdOwogCQl0cHJpbnRmKCJjaGlsZF9zdGFjaz0lI2x4LCAiLCB0Y3AtPnVfYXJnW0FSR19TVEFDS10pOwogIyBpZmRlZiBBUkdfU1RBQ0tTSVpFCkBAIC01ODgsOSArNjQyLDEwIEBACiAJCQkJdGNwLT51X2FyZ1tBUkdfU1RBQ0tTSVpFXSk7CiAjIGVuZGlmCiAJCXRwcmludGYoImZsYWdzPSIpOwotCQlwcmludGZsYWdzKGNsb25lX2ZsYWdzLCBmbGFncyAmfiBDU0lHTkFMLCBOVUxMKTsKKwkJaWYgKCFwcmludGZsYWdzKGNsb25lX2ZsYWdzLCBmbGFncyAmfiBDU0lHTkFMLCBOVUxMKSkKKwkJCXNlcCA9ICIiOwogCQlpZiAoKGZsYWdzICYgQ1NJR05BTCkgIT0gMCkKLQkJCXRwcmludGYoInwlcyIsIHNpZ25hbWUoZmxhZ3MgJiBDU0lHTkFMKSk7CisJCQl0cHJpbnRmKCIlcyVzIiwgc2VwLCBzaWduYW1lKGZsYWdzICYgQ1NJR05BTCkpOwogCQlpZiAoKGZsYWdzICYgKENMT05FX1BBUkVOVF9TRVRUSUR8Q0xPTkVfQ0hJTERfU0VUVElECiAJCQkgICAgICB8Q0xPTkVfQ0hJTERfQ0xFQVJUSUR8Q0xPTkVfU0VUVExTKSkgPT0gMCkKIAkJCXJldHVybiAwOwpAQCAtNjE2LDcgKzY3MSwxNSBAQAogCX0KIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgorCitpbnQKK3N5c191bnNoYXJlKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRmbGFncyhjbG9uZV9mbGFncywgdGNwLT51X2FyZ1swXSwgIkNMT05FXz8/PyIpOworCXJldHVybiAwOworfQorI2VuZGlmIC8qIExJTlVYICovCiAKIGludAogc3lzX2ZvcmsodGNwKQpAQCAtNjI4LDExICs2OTEsOSBAQAogfQogCiBpbnQKLWNoYW5nZV9zeXNjYWxsKHRjcCwgbmV3KQotc3RydWN0IHRjYiAqdGNwOwotaW50IG5ldzsKK2NoYW5nZV9zeXNjYWxsKHN0cnVjdCB0Y2IgKnRjcCwgaW50IG5ldykKIHsKLSNpZiBkZWZpbmVkKExJTlVYKQorI2lmZGVmIExJTlVYCiAjaWYgZGVmaW5lZChJMzg2KQogCS8qIEF0dGVtcHQgdG8gbWFrZSB2Zm9yayBpbnRvIGZvcmssIHdoaWNoIHdlIGNhbiBmb2xsb3cuICovCiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKE9SSUdfRUFYICogNCksIG5ldykgPCAwKQpAQCAtNjQ3LDM4ICs3MDgsNDkgQEAKIAlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsCiAJCSAgIChjaGFyKikoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX1IwKSwgbmV3KSA8IDApCiAJCXJldHVybiAtMTsKLSAgICAgICByZXR1cm4gMDsKKwlyZXR1cm4gMDsKICNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKIAkvKiBzMzkwIGxpbnV4IGFmdGVyIDIuNC43IGhhcyBhIGhvb2sgaW4gZW50cnkuUyB0byBhbGxvdyB0aGlzICovCiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX0dQUjIpLCBuZXcpPDApCi0JICAgICAgICByZXR1cm4gLTE7CisJCXJldHVybiAtMTsKIAlyZXR1cm4gMDsKICNlbGlmIGRlZmluZWQoTTY4SykKIAlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCpQVF9PUklHX0QwKSwgbmV3KTwwKQotCSAgICAJcmV0dXJuIC0xOworCQlyZXR1cm4gLTE7CiAJcmV0dXJuIDA7CiAjZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCi0Jc3RydWN0IHJlZ3MgcmVnczsKKwlzdHJ1Y3QgcHRfcmVncyByZWdzOwogCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciopJnJlZ3MsIDApPDApCiAJCXJldHVybiAtMTsKLQlyZWdzLnJfZzE9bmV3OworCXJlZ3MudV9yZWdzW1VfUkVHX0cxXSA9IG5ldzsKIAlpZiAocHRyYWNlKFBUUkFDRV9TRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIqKSZyZWdzLCAwKTwwKQotCSAgICAJcmV0dXJuIC0xOworCQlyZXR1cm4gLTE7CiAJcmV0dXJuIDA7CiAjZWxpZiBkZWZpbmVkKE1JUFMpCiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19WMCksIG5ldyk8MCkKLQkgICAgCXJldHVybiAtMTsKKwkJcmV0dXJuIC0xOwogCXJldHVybiAwOwogI2VsaWYgZGVmaW5lZChBTFBIQSkKIAlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX0EzKSwgbmV3KTwwKQotCSAgICAJcmV0dXJuIC0xOworCQlyZXR1cm4gLTE7CisJcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKEFWUjMyKQorCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfUjgpLCBuZXcpIDwgMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChCRklOKQorCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfUDApLCBuZXcpPDApCisJCXJldHVybiAtMTsKIAlyZXR1cm4gMDsKICNlbGlmIGRlZmluZWQoSUE2NCkKIAlpZiAoaWEzMikgewogCQlzd2l0Y2ggKG5ldykgewotCQkgICAgICBjYXNlIDI6IGJyZWFrOwkvKiB4ODYgU1lTX2ZvcmsgKi8KLQkJICAgICAgY2FzZSBTWVNfY2xvbmU6CW5ldyA9IDEyMDsgYnJlYWs7Ci0JCSAgICAgIGRlZmF1bHQ6CisJCWNhc2UgMjoKKwkJCWJyZWFrOwkvKiB4ODYgU1lTX2ZvcmsgKi8KKwkJY2FzZSBTWVNfY2xvbmU6CisJCQluZXcgPSAxMjA7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKIAkJCWZwcmludGYoc3RkZXJyLCAiJXM6IHVuZXhwZWN0ZWQgc3lzY2FsbCAlZFxuIiwKIAkJCQlfX0ZVTkNUSU9OX18sIG5ldyk7CiAJCQlyZXR1cm4gLTE7CkBAIC02OTAsMjkgKzc2Miw0MyBAQAogCXJldHVybiAwOwogI2VsaWYgZGVmaW5lZChIUFBBKQogCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9HUjIwKSwgbmV3KTwwKQotCSAgICAJcmV0dXJuIC0xOworCQlyZXR1cm4gLTE7CiAJcmV0dXJuIDA7CiAjZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg0KihSRUdfUkVHMCszKSksIG5ldyk8MCkKLSAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICByZXR1cm4gMDsKKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCooUkVHX1JFRzArMykpLCBuZXcpPDApCisJCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKICNlbGlmIGRlZmluZWQoU0g2NCkKLSAgICAgICAvKiBUb3AgaGFsZiBvZiByZWcgZW5jb2RlcyB0aGUgbm8uIG9mIGFyZ3MgbiBhcyAweDFuLgotICAgICAgICAgIEFzc3VtZSAwIGFyZ3MgYXMga2VybmVsIG5ldmVyIGFjdHVhbGx5IGNoZWNrcy4uLiAqLwotICAgICAgIGlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfU1lTQ0FMTCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwIHwgbmV3KSA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICByZXR1cm4gMDsKKwkvKiBUb3AgaGFsZiBvZiByZWcgZW5jb2RlcyB0aGUgbm8uIG9mIGFyZ3MgbiBhcyAweDFuLgorCSAgIEFzc3VtZSAwIGFyZ3MgYXMga2VybmVsIG5ldmVyIGFjdHVhbGx5IGNoZWNrcy4uLiAqLworCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfU1lTQ0FMTCksCisJCQkJMHgxMDAwMDAgfCBuZXcpIDwgMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChDUklTVjEwKSB8fCBkZWZpbmVkKENSSVNWMzIpCisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqUFRfUjkpLCBuZXcpIDwgMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOwogI2VsaWYgZGVmaW5lZChBUk0pCi0gICAgICAgLyogU29tZSBrZXJuZWxzIHN1cHBvcnQgdGhpcywgc29tZSAocHJlLTIuNi4xNiBvciBzbykgZG9uJ3QuICAqLworCS8qIFNvbWUga2VybmVscyBzdXBwb3J0IHRoaXMsIHNvbWUgKHByZS0yLjYuMTYgb3Igc28pIGRvbid0LiAgKi8KICMgaWZuZGVmIFBUUkFDRV9TRVRfU1lTQ0FMTAogIyAgZGVmaW5lIFBUUkFDRV9TRVRfU1lTQ0FMTCAyMwogIyBlbmRpZgogCi0gICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX1NFVF9TWVNDQUxMLCB0Y3AtPnBpZCwgMCwgbmV3KSAhPSAwKQorCWlmIChwdHJhY2UgKFBUUkFDRV9TRVRfU1lTQ0FMTCwgdGNwLT5waWQsIDAsIG5ldyAmIDB4ZmZmZikgIT0gMCkKIAkJcmV0dXJuIC0xOwogCi0gICAgICAgcmV0dXJuIDA7CisJcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKFRJTEUpCisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLAorCQkgICAoY2hhciopUFRSRUdTX09GRlNFVF9SRUcoMCksCisJCSAgIG5ldykgIT0gMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChNSUNST0JMQVpFKQorCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9HUFIoMCkpLCBuZXcpPDApCisJCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKICNlbHNlCiAjd2FybmluZyBEbyBub3Qga25vdyBob3cgdG8gaGFuZGxlIGNoYW5nZV9zeXNjYWxsIGZvciB0aGlzIGFyY2hpdGVjdHVyZQogI2VuZGlmIC8qIGFyY2hpdGVjdHVyZSAqLwpAQCAtNzIwLDEwNiArODA2LDE1MiBAQAogCXJldHVybiAtMTsKIH0KIAotI2lmIDAKKyNpZmRlZiBMSU5VWAogaW50Ci1zZXRhcmcodGNwLCBhcmdudW0pCi0Jc3RydWN0IHRjYiAqdGNwOwotCWludCBhcmdudW07Ci17Ci0jaWYgZGVmaW5lZCAoSUE2NCkKLQl7Ci0JCXVuc2lnbmVkIGxvbmcgKmJzcCwgKmFwOwotCi0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQVJfQlNQLCAobG9uZyAqKSAmYnNwKSAsIDApCi0JCQlyZXR1cm4gLTE7Ci0KLQkJYXAgPSBpYTY0X3JzZV9za2lwX3JlZ3MoYnNwLCBhcmdudW0pOwotCQllcnJubyA9IDA7Ci0JCXB0cmFjZShQVFJBQ0VfUE9LRURBVEEsIHRjcC0+cGlkLCAoY2hhciAqKSBhcCwgdGNwLT51X2FyZ1thcmdudW1dKTsKLQkJaWYgKGVycm5vKQotCQkJcmV0dXJuIC0xOwotCi0JfQotI2VsaWYgZGVmaW5lZChJMzg2KQotCXsKLQkJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCphcmdudW0pLCB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0JfQotI2VsaWYgZGVmaW5lZChYODZfNjQpCi0JewotCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg4Kihsb25nKWFyZ251bSksIHRjcC0+dV9hcmdbYXJnbnVtXSk7Ci0JCWlmIChlcnJubykKLQkJCXJldHVybiAtMTsKLQl9Ci0jZWxpZiBkZWZpbmVkKFBPV0VSUEMpCi0jaWZuZGVmIFBUX09SSUdfUjMKLSNkZWZpbmUgUFRfT1JJR19SMyAzNAotI2VuZGlmCi0JewotCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwKLQkJICAgICAgIChjaGFyKikoKGFyZ251bT09MCA/IFBUX09SSUdfUjMgOiBhcmdudW0rUFRfUjMpKnNpemVvZih1bnNpZ25lZCBsb25nKSksCi0JCSAgICAgICB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0JfQotI2VsaWYgZGVmaW5lZChNSVBTKQotCXsKLQkJZXJybm8gPSAwOwotCQlpZiAoYXJnbnVtIDwgNCkKLQkJCXB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLAotCQkJICAgICAgIChjaGFyKikoUkVHX0EwICsgYXJnbnVtKSwgdGNwLT51X2FyZ1thcmdudW1dKTsKLQkJZWxzZSB7Ci0JCQl1bnNpZ25lZCBsb25nICpzcDsKLQotCQkJaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfU1AsIChsb25nICopICZzcCkgLCAwKQotCQkJCXJldHVybiAtMTsKLQotCQkJcHRyYWNlKFBUUkFDRV9QT0tFREFUQSwgdGNwLT5waWQsCi0JCQkgICAgICAgKGNoYXIqKShzcCArIGFyZ251bSAtIDQpLCB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQl9Ci0JCWlmIChlcnJubykKLQkJCXJldHVybiAtMTsKLQl9Ci0jZWxpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCi0gICAgICAgIHsKLQkJaWYoYXJnbnVtIDw9IDUpCi0JCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwKLQkJCSAgICAgICAoY2hhciAqKSAoYXJnbnVtPT0wID8gUFRfT1JJR0dQUjIgOgotCQkJICAgICAgIFBUX0dQUjIgKyBhcmdudW0qc2l6ZW9mKGxvbmcpKSwKLQkJCSAgICAgICB0Y3AtPnVfYXJnW2FyZ251bV0pOwotCQllbHNlCi0JCQlyZXR1cm4gLUUyQklHOwotCQlpZiAoZXJybm8pCi0JCQlyZXR1cm4gLTE7Ci0gICAgICAgIH0KLSNlbHNlCi0jIHdhcm5pbmcgU29ycnksIHNldGFyZ3Mgbm90IGltcGxlbWVudGVkIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4KLSNlbmRpZgotCXJldHVybiAwOwotfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkIFNZU19jbG9uZSB8fCBkZWZpbmVkIFNZU19jbG9uZTIgfHwgZGVmaW5lZCBfX05SX2Nsb25lCi1pbnQKLWludGVybmFsX2Nsb25lKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2hhbmRsZV9uZXdfY2hpbGQoc3RydWN0IHRjYiAqdGNwLCBpbnQgcGlkLCBpbnQgYnB0KQogewogCXN0cnVjdCB0Y2IgKnRjcGNoaWxkOwotCWludCBwaWQ7CisKKyNpZmRlZiBDTE9ORV9QVFJBQ0UJCS8qIFNlZSBuZXcgc2V0YnB0IGNvZGUuICAqLworCXRjcGNoaWxkID0gcGlkMnRjYihwaWQpOworCWlmICh0Y3BjaGlsZCAhPSBOVUxMKSB7CisJCS8qIFRoZSBjaGlsZCBhbHJlYWR5IHJlcG9ydGVkIGl0cyBzdGFydHVwIHRyYXAKKwkJICAgYmVmb3JlIHRoZSBwYXJlbnQgcmVwb3J0ZWQgaXRzIHN5c2NhbGwgcmV0dXJuLiAgKi8KKwkJaWYgKCh0Y3BjaGlsZC0+ZmxhZ3MKKwkJICAgICAmIChUQ0JfU1RBUlRVUHxUQ0JfQVRUQUNIRUR8VENCX1NVU1BFTkRFRCkpCisJCSAgICAhPSAoVENCX1NUQVJUVVB8VENCX0FUVEFDSEVEfFRDQl9TVVNQRU5ERUQpKQorCQkJZnByaW50ZihzdGRlcnIsICJcCitbcHJlYXR0YWNoZWQgY2hpbGQgJWQgb2YgJWQgaW4gd2VpcmQgc3RhdGUhXVxuIiwKKwkJCQlwaWQsIHRjcC0+cGlkKTsKKwl9CisJZWxzZQorI2VuZGlmIC8qIENMT05FX1BUUkFDRSAqLworCXsKKwkJZm9ya190Y2IodGNwKTsKKwkJdGNwY2hpbGQgPSBhbGxvY3RjYihwaWQpOworCX0KKworI2lmbmRlZiBDTE9ORV9QVFJBQ0UKKwkvKiBBdHRhY2ggdG8gdGhlIG5ldyBjaGlsZCAqLworCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKKwkJaWYgKGJwdCkKKwkJCWNsZWFyYnB0KHRjcCk7CisJCXBlcnJvcigiUFRSQUNFX0FUVEFDSCIpOworCQlmcHJpbnRmKHN0ZGVyciwgIlRvbyBsYXRlP1xuIik7CisJCWRyb3B0Y2IodGNwY2hpbGQpOworCQlyZXR1cm4gMDsKKwl9CisjZW5kaWYgLyogIUNMT05FX1BUUkFDRSAqLworCisJaWYgKGJwdCkKKwkJY2xlYXJicHQodGNwKTsKKworCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQVRUQUNIRUQ7CisJLyogQ2hpbGQgaGFzIEJQVCB0b28sIG11c3QgYmUgcmVtb3ZlZCBvbiBmaXJzdCBvY2Nhc2lvbi4gICovCisJaWYgKGJwdCkgeworCQl0Y3BjaGlsZC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKKwkJdGNwY2hpbGQtPmJhZGRyID0gdGNwLT5iYWRkcjsKKwkJbWVtY3B5KHRjcGNoaWxkLT5pbnN0LCB0Y3AtPmluc3QsCisJCQlzaXplb2YgdGNwY2hpbGQtPmluc3QpOworCX0KKwl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOworCXRjcC0+bmNoaWxkcmVuKys7CisJaWYgKHRjcGNoaWxkLT5mbGFncyAmIFRDQl9TVVNQRU5ERUQpIHsKKwkJLyogVGhlIGNoaWxkIHdhcyBib3JuIHN1c3BlbmRlZCwgZHVlIHRvIG91ciBoYXZpbmcKKwkJICAgZm9yY2VkIENMT05FX1BUUkFDRS4gICovCisJCWlmIChicHQpCisJCQljbGVhcmJwdCh0Y3BjaGlsZCk7CisKKwkJdGNwY2hpbGQtPmZsYWdzICY9IH4oVENCX1NVU1BFTkRFRHxUQ0JfU1RBUlRVUCk7CisJCWlmIChwdHJhY2VfcmVzdGFydChQVFJBQ0VfU1lTQ0FMTCwgdGNwY2hpbGQsIDApIDwgMCkKKwkJCXJldHVybiAtMTsKKworCQlpZiAoIXFmbGFnKQorCQkJZnByaW50ZihzdGRlcnIsICJcCitQcm9jZXNzICV1IHJlc3VtZWQgKHBhcmVudCAlZCByZWFkeSlcbiIsCisJCQkJcGlkLCB0Y3AtPnBpZCk7CisJfQorCWVsc2UgeworCQlpZiAoIXFmbGFnKQorCQkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICVkIGF0dGFjaGVkXG4iLCBwaWQpOworCX0KKworI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKKwlpZiAoc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMgPT0gc3lzX2Nsb25lKQorCXsKKwkJLyoKKwkJICogU2F2ZSB0aGUgZmxhZ3MgdXNlZCBpbiB0aGlzIGNhbGwsCisJCSAqIGluIGNhc2Ugd2UgcG9pbnQgVENQIHRvIG91ciBwYXJlbnQgYmVsb3cuCisJCSAqLworCQlpbnQgY2FsbF9mbGFncyA9IHRjcC0+dV9hcmdbQVJHX0ZMQUdTXTsKKwkJaWYgKCh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkgJiYKKwkJICAgIHRjcC0+cGFyZW50ICE9IE5VTEwpIHsKKwkJCS8qIFRoZSBwYXJlbnQgaW4gdGhpcyBjbG9uZSBpcyBpdHNlbGYgYQorCQkJICAgdGhyZWFkIGJlbG9uZ2luZyB0byBhbm90aGVyIHByb2Nlc3MuCisJCQkgICBUaGVyZSBpcyBubyBtZWFuaW5nIHRvIHRoZSBwYXJlbnRhZ2UKKwkJCSAgIHJlbGF0aW9uc2hpcCBvZiB0aGUgbmV3IGNoaWxkIHdpdGggdGhlCisJCQkgICB0aHJlYWQsIG9ubHkgd2l0aCB0aGUgcHJvY2Vzcy4gIFdlCisJCQkgICBhc3NvY2lhdGUgdGhlIG5ldyB0aHJlYWQgd2l0aCBvdXIKKwkJCSAgIHBhcmVudC4gIFNpbmNlIHRoaXMgaXMgZG9uZSBmb3IgZXZlcnkKKwkJCSAgIG5ldyB0aHJlYWQsIHRoZXJlIHdpbGwgbmV2ZXIgYmUgYQorCQkJICAgVENCX0NMT05FX1RIUkVBRCBwcm9jZXNzIHRoYXQgaGFzCisJCQkgICBjaGlsZHJlbi4gICovCisJCQktLXRjcC0+bmNoaWxkcmVuOworCQkJdGNwID0gdGNwLT5wYXJlbnQ7CisJCQl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOworCQkJKyt0Y3AtPm5jaGlsZHJlbjsKKwkJfQorCQlpZiAoY2FsbF9mbGFncyAmIENMT05FX1RIUkVBRCkgeworCQkJdGNwY2hpbGQtPmZsYWdzIHw9IFRDQl9DTE9ORV9USFJFQUQ7CisJCQkrK3RjcC0+bmNsb25lX3RocmVhZHM7CisJCX0KKwkJaWYgKChjYWxsX2ZsYWdzICYgQ0xPTkVfUEFSRU5UKSAmJgorCQkgICAgIShjYWxsX2ZsYWdzICYgQ0xPTkVfVEhSRUFEKSkgeworCQkJLS10Y3AtPm5jaGlsZHJlbjsKKwkJCXRjcGNoaWxkLT5wYXJlbnQgPSBOVUxMOworCQkJaWYgKHRjcC0+cGFyZW50ICE9IE5VTEwpIHsKKwkJCQl0Y3AgPSB0Y3AtPnBhcmVudDsKKwkJCQl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOworCQkJCSsrdGNwLT5uY2hpbGRyZW47CisJCQl9CisJCX0KKwl9CisjZW5kaWYgLyogVENCX0NMT05FX1RIUkVBRCAqLworCXJldHVybiAwOworfQorCitpbnQKK2ludGVybmFsX2Zvcmsoc3RydWN0IHRjYiAqdGNwKQoreworCWlmICgocHRyYWNlX3NldG9wdGlvbnMKKwkgICAgJiAoUFRSQUNFX09fVFJBQ0VDTE9ORSB8IFBUUkFDRV9PX1RSQUNFRk9SSyB8IFBUUkFDRV9PX1RSQUNFVkZPUkspKQorCSAgID09IChQVFJBQ0VfT19UUkFDRUNMT05FIHwgUFRSQUNFX09fVFJBQ0VGT1JLIHwgUFRSQUNFX09fVFJBQ0VWRk9SSykpCisJCXJldHVybiAwOworCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdGNwLT5mbGFncyAmPSB+VENCX0ZPTExPV0ZPUks7CiAJCWlmICghZm9sbG93Zm9yaykKIAkJCXJldHVybiAwOwotCQlpZiAoZm9ya190Y2IodGNwKSkKKwkJLyoKKwkJICogSW4gb2NjYXNpb24gb2YgdXNpbmcgUFRSQUNFX09fVFJBQ0VDTE9ORSwgd2Ugd29uJ3Qgc2VlIHRoZQorCQkgKiBuZXcgY2hpbGQgaWYgY2xvbmUgaXMgY2FsbGVkIHdpdGggZmxhZyBDTE9ORV9VTlRSQUNFRCwgc28KKwkJICogd2Uga2VlcCB0aGUgc2FtZSBsb2dpYyB3aXRoIHRoYXQgb3B0aW9uIGFuZCBkb24ndCB0cmFjZSBpdC4KKwkJICovCisJCWlmICgoc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMgPT0gc3lzX2Nsb25lKSAmJgorCQkgICAgKHRjcC0+dV9hcmdbQVJHX0ZMQUdTXSAmIENMT05FX1VOVFJBQ0VEKSkKIAkJCXJldHVybiAwOworCQlmb3JrX3RjYih0Y3ApOwogCQlpZiAoc2V0YnB0KHRjcCkgPCAwKQogCQkJcmV0dXJuIDA7CiAJfSBlbHNlIHsKLQkJaW50IGJwdCA9IHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUOworCQlpbnQgcGlkOworCQlpbnQgYnB0OwogCiAJCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfRk9MTE9XRk9SSykpCiAJCQlyZXR1cm4gMDsKIAorCQlicHQgPSB0Y3AtPmZsYWdzICYgVENCX0JQVFNFVDsKKwogCQlpZiAoc3lzZXJyb3IodGNwKSkgewogCQkJaWYgKGJwdCkKIAkJCQljbGVhcmJwdCh0Y3ApOwpAQCAtODI4LDEyNSArOTYwLDE3IEBACiAKIAkJcGlkID0gdGNwLT51X3J2YWw7CiAKLSNpZmRlZiBDTE9ORV9QVFJBQ0UJCS8qIFNlZSBuZXcgc2V0YnB0IGNvZGUuICAqLwotCQl0Y3BjaGlsZCA9IHBpZDJ0Y2IocGlkKTsKLQkJaWYgKHRjcGNoaWxkICE9IE5VTEwpIHsKLQkJCS8qIFRoZSBjaGlsZCBhbHJlYWR5IHJlcG9ydGVkIGl0cyBzdGFydHVwIHRyYXAKLQkJCSAgIGJlZm9yZSB0aGUgcGFyZW50IHJlcG9ydGVkIGl0cyBzeXNjYWxsIHJldHVybi4gICovCi0JCQlpZiAoKHRjcGNoaWxkLT5mbGFncwotCQkJICAgICAmIChUQ0JfU1RBUlRVUHxUQ0JfQVRUQUNIRUR8VENCX1NVU1BFTkRFRCkpCi0JCQkgICAgIT0gKFRDQl9TVEFSVFVQfFRDQl9BVFRBQ0hFRHxUQ0JfU1VTUEVOREVEKSkKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKLVtwcmVhdHRhY2hlZCBjaGlsZCAlZCBvZiAlZCBpbiB3ZWlyZCBzdGF0ZSFdXG4iLAotCQkJCQlwaWQsIHRjcC0+cGlkKTsKLQkJfQotCQllbHNlCi0jZW5kaWYKLQkJaWYgKCh0Y3BjaGlsZCA9IGFsbG9jdGNiKHBpZCkpID09IE5VTEwpIHsKLQkJCWlmIChicHQpCi0JCQkJY2xlYXJicHQodGNwKTsKLQkJCWZwcmludGYoc3RkZXJyLCAiIFt0Y2IgdGFibGUgZnVsbF1cbiIpOwotCQkJa2lsbChwaWQsIFNJR0tJTEwpOyAvKiBYWFggKi8KLQkJCXJldHVybiAwOwotCQl9Ci0KLSNpZm5kZWYgQ0xPTkVfUFRSQUNFCi0JCS8qIEF0dGFjaCB0byB0aGUgbmV3IGNoaWxkICovCi0JCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCWlmIChicHQpCi0JCQkJY2xlYXJicHQodGNwKTsKLQkJCXBlcnJvcigiUFRSQUNFX0FUVEFDSCIpOwotCQkJZnByaW50ZihzdGRlcnIsICJUb28gbGF0ZT9cbiIpOwotCQkJZHJvcHRjYih0Y3BjaGlsZCk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotI2VuZGlmCi0KLQkJaWYgKGJwdCkKLQkJCWNsZWFyYnB0KHRjcCk7Ci0KLQkJdGNwY2hpbGQtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRDsKLQkJLyogQ2hpbGQgaGFzIEJQVCB0b28sIG11c3QgYmUgcmVtb3ZlZCBvbiBmaXJzdCBvY2Nhc2lvbi4gICovCi0JCWlmIChicHQpIHsKLQkJCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQlBUU0VUOwotCQkJdGNwY2hpbGQtPmJhZGRyID0gdGNwLT5iYWRkcjsKLQkJCW1lbWNweSh0Y3BjaGlsZC0+aW5zdCwgdGNwLT5pbnN0LAotCQkJCXNpemVvZiB0Y3BjaGlsZC0+aW5zdCk7Ci0JCX0KLQkJdGNwY2hpbGQtPnBhcmVudCA9IHRjcDsKLSAJCXRjcC0+bmNoaWxkcmVuKys7Ci0JCWlmICh0Y3BjaGlsZC0+ZmxhZ3MgJiBUQ0JfU1VTUEVOREVEKSB7Ci0JCQkvKiBUaGUgY2hpbGQgd2FzIGJvcm4gc3VzcGVuZGVkLCBkdWUgdG8gb3VyIGhhdmluZwotCQkJICAgZm9yY2VkIENMT05FX1BUUkFDRS4gICovCi0JCQlpZiAoYnB0KQotCQkJCWNsZWFyYnB0KHRjcGNoaWxkKTsKLQotCQkJdGNwY2hpbGQtPmZsYWdzICY9IH4oVENCX1NVU1BFTkRFRHxUQ0JfU1RBUlRVUCk7Ci0JCQlpZiAocHRyYWNlKFBUUkFDRV9TWVNDQUxMLCBwaWQsIChjaGFyICopIDEsIDApIDwgMCkgewotCQkJCXBlcnJvcigicmVzdW1lOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKLQkJCQlyZXR1cm4gLTE7Ci0JCQl9Ci0KLQkJCWlmICghcWZsYWcpCi0JCQkJZnByaW50ZihzdGRlcnIsICJcCi1Qcm9jZXNzICV1IHJlc3VtZWQgKHBhcmVudCAlZCByZWFkeSlcbiIsCi0JCQkJCXBpZCwgdGNwLT5waWQpOwotCQl9Ci0JCWVsc2UgewotCQkJbmV3b3V0Zih0Y3BjaGlsZCk7Ci0JCQlpZiAoIXFmbGFnKQotCQkJCWZwcmludGYoc3RkZXJyLCAiUHJvY2VzcyAlZCBhdHRhY2hlZFxuIiwgcGlkKTsKLQkJfQotCi0jaWZkZWYgVENCX0NMT05FX1RIUkVBRAotCQl7Ci0JCQkvKgotCQkJICogU2F2ZSB0aGUgZmxhZ3MgdXNlZCBpbiB0aGlzIGNhbGwsCi0JCQkgKiBpbiBjYXNlIHdlIHBvaW50IFRDUCB0byBvdXIgcGFyZW50IGJlbG93LgotCQkJICovCi0JCQlpbnQgY2FsbF9mbGFncyA9IHRjcC0+dV9hcmdbQVJHX0ZMQUdTXTsKLQkJCWlmICgodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpICYmCi0JCQkgICAgdGNwLT5wYXJlbnQgIT0gTlVMTCkgewotCQkJCS8qIFRoZSBwYXJlbnQgaW4gdGhpcyBjbG9uZSBpcyBpdHNlbGYgYQotCQkJCSAgIHRocmVhZCBiZWxvbmdpbmcgdG8gYW5vdGhlciBwcm9jZXNzLgotCQkJCSAgIFRoZXJlIGlzIG5vIG1lYW5pbmcgdG8gdGhlIHBhcmVudGFnZQotCQkJCSAgIHJlbGF0aW9uc2hpcCBvZiB0aGUgbmV3IGNoaWxkIHdpdGggdGhlCi0JCQkJICAgdGhyZWFkLCBvbmx5IHdpdGggdGhlIHByb2Nlc3MuICBXZQotCQkJCSAgIGFzc29jaWF0ZSB0aGUgbmV3IHRocmVhZCB3aXRoIG91cgotCQkJCSAgIHBhcmVudC4gIFNpbmNlIHRoaXMgaXMgZG9uZSBmb3IgZXZlcnkKLQkJCQkgICBuZXcgdGhyZWFkLCB0aGVyZSB3aWxsIG5ldmVyIGJlIGEKLQkJCQkgICBUQ0JfQ0xPTkVfVEhSRUFEIHByb2Nlc3MgdGhhdCBoYXMKLQkJCQkgICBjaGlsZHJlbi4gICovCi0JCQkJLS10Y3AtPm5jaGlsZHJlbjsKLQkJCQl0Y3AgPSB0Y3AtPnBhcmVudDsKLQkJCQl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOwotCQkJCSsrdGNwLT5uY2hpbGRyZW47Ci0JCQl9Ci0JCQlpZiAoY2FsbF9mbGFncyAmIENMT05FX1RIUkVBRCkgewotCQkJCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQ0xPTkVfVEhSRUFEOwotCQkJCSsrdGNwLT5uY2xvbmVfdGhyZWFkczsKLQkJCX0KLQkJCWlmIChjYWxsX2ZsYWdzICYgQ0xPTkVfREVUQUNIRUQpIHsKLQkJCQl0Y3BjaGlsZC0+ZmxhZ3MgfD0gVENCX0NMT05FX0RFVEFDSEVEOwotCQkJCSsrdGNwLT5uY2xvbmVfZGV0YWNoZWQ7Ci0JCQl9Ci0JCX0KLSNlbmRpZgotCi0gCX0KKwkJcmV0dXJuIGhhbmRsZV9uZXdfY2hpbGQodGNwLCBwaWQsIGJwdCk7CisJfQogCXJldHVybiAwOwogfQotI2VuZGlmCisKKyNlbHNlIC8qICFMSU5VWCAqLwogCiBpbnQKIGludGVybmFsX2ZvcmsodGNwKQogc3RydWN0IHRjYiAqdGNwOwogewotI2lmZGVmIExJTlVYCi0JLyogV2UgZG8gc3BlY2lhbCBtYWdpYyB3aXRoIGNsb25lIGZvciBhbnkgY2xvbmUgb3IgZm9yay4gICovCi0JcmV0dXJuIGludGVybmFsX2Nsb25lKHRjcCk7Ci0jZWxzZQotCiAJc3RydWN0IHRjYiAqdGNwY2hpbGQ7CiAJaW50IHBpZDsKIAlpbnQgZG9udF9mb2xsb3cgPSAwOwpAQCAtOTU0LDE5ICs5NzgsMTcgQEAKICNpZmRlZiBTWVNfdmZvcmsKIAlpZiAoa25vd25fc2Nubyh0Y3ApID09IFNZU192Zm9yaykgewogCQkvKiBBdHRlbXB0IHRvIG1ha2UgdmZvcmsgaW50byBmb3JrLCB3aGljaCB3ZSBjYW4gZm9sbG93LiAqLwotCQlpZiAoIWZvbGxvd3Zmb3JrIHx8Ci0JCSAgICBjaGFuZ2Vfc3lzY2FsbCh0Y3AsIFNZU19mb3JrKSA8IDApCisJCWlmIChjaGFuZ2Vfc3lzY2FsbCh0Y3AsIFNZU19mb3JrKSA8IDApCiAJCQlkb250X2ZvbGxvdyA9IDE7CiAJfQogI2VuZGlmCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJaWYgKCFmb2xsb3dmb3JrIHx8IGRvbnRfZm9sbG93KQogCQkJcmV0dXJuIDA7Ci0JCWlmIChmb3JrX3RjYih0Y3ApKQotCQkJcmV0dXJuIDA7CisJCWZvcmtfdGNiKHRjcCk7CiAJCWlmIChzZXRicHQodGNwKSA8IDApCiAJCQlyZXR1cm4gMDsKLSAgCX0KKwl9CiAJZWxzZSB7CiAJCWludCBicHQgPSB0Y3AtPmZsYWdzICYgVENCX0JQVFNFVDsKIApAQCAtOTc5LDM3ICsxMDAxLDggQEAKIAkJCXJldHVybiAwOwogCiAJCXBpZCA9IHRjcC0+dV9ydmFsOwotCQlpZiAoKHRjcGNoaWxkID0gYWxsb2N0Y2IocGlkKSkgPT0gTlVMTCkgewotCQkJZnByaW50ZihzdGRlcnIsICIgW3RjYiB0YWJsZSBmdWxsXVxuIik7Ci0JCQlraWxsKHBpZCwgU0lHS0lMTCk7IC8qIFhYWCAqLwotCQkJcmV0dXJuIDA7Ci0JCX0KLSNpZmRlZiBMSU5VWAotI2lmZGVmIEhQUEEKLQkJLyogVGhlIGNoaWxkIG11c3QgaGF2ZSBydW4gYmVmb3JlIGl0IGNhbiBiZSBhdHRhY2hlZC4gKi8KLQkJLyogVGhpcyBtdXN0IGJlIGEgYnVnIGluIHRoZSBwYXJpc2Mga2VybmVsLCBidXQgSSBoYXZuJ3QKLQkJICogaWRlbnRpZmllZCBpdCB5ZXQuICBTZWVtcyB0byBiZSBhbiBpc3N1ZSBhc3NvY2lhdGVkCi0JCSAqIHdpdGggYXR0YWNoaW5nIHRvIGEgcHJvY2VzcyAod2hpY2ggc2VuZHMgaXQgYSBzaWduYWwpCi0JCSAqIGJlZm9yZSB0aGF0IHByb2Nlc3MgaGFzIGV2ZXIgYmVlbiBzY2hlZHVsZWQuICBXaGVuCi0JCSAqIGRlYnVnZ2luZywgSSBzdGFydGVkIHNlZWluZyBjcmFzaGVzIGluCi0JCSAqIGFyY2gvcGFyaXNjL2tlcm5lbC9zaWduYWwuYzpkb19zaWduYWwoKSwgYXBwYXJlbnRseQotCQkgKiBjYXVzZWQgYnkgcjggZ2V0dGluZyBjb3JydXB0IG92ZXIgdGhlIGRlcXVldWVfc2lnbmFsKCkKLQkJICogY2FsbC4gIERpZG4ndCBtYWtlIG11Y2ggc2Vuc2UgdGhvdWdoLi4uCi0JCSAqLwotCQl7Ci0JCQlzdHJ1Y3QgdGltZXZhbCB0djsKLQkJCXR2LnR2X3NlYyA9IDA7Ci0JCQl0di50dl91c2VjID0gMTAwMDA7Ci0JCQlzZWxlY3QoMCwgTlVMTCwgTlVMTCwgTlVMTCwgJnR2KTsKLQkJfQotI2VuZGlmCi0JCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCXBlcnJvcigiUFRSQUNFX0FUVEFDSCIpOwotCQkJZnByaW50ZihzdGRlcnIsICJUb28gbGF0ZT9cbiIpOwotCQkJZHJvcHRjYih0Y3BjaGlsZCk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotI2VuZGlmIC8qIExJTlVYICovCisJCWZvcmtfdGNiKHRjcCk7CisJCXRjcGNoaWxkID0gYWxsb2N0Y2IocGlkKTsKICNpZmRlZiBTVU5PUzQKICNpZmRlZiBvbGR3YXkKIAkJLyogVGhlIGNoaWxkIG11c3QgaGF2ZSBydW4gYmVmb3JlIGl0IGNhbiBiZSBhdHRhY2hlZC4gKi8KQEAgLTEwNDksMTYgKzEwNDIsMTYgQEAKIAkJCW1lbWNweSh0Y3BjaGlsZC0+aW5zdCwgdGNwLT5pbnN0LAogCQkJCXNpemVvZiB0Y3BjaGlsZC0+aW5zdCk7CiAJCX0KLQkJbmV3b3V0Zih0Y3BjaGlsZCk7CiAJCXRjcGNoaWxkLT5wYXJlbnQgPSB0Y3A7CiAJCXRjcC0+bmNoaWxkcmVuKys7CiAJCWlmICghcWZsYWcpCiAJCQlmcHJpbnRmKHN0ZGVyciwgIlByb2Nlc3MgJWQgYXR0YWNoZWRcbiIsIHBpZCk7CiAJfQogCXJldHVybiAwOwotI2VuZGlmCiB9CiAKKyNlbmRpZiAvKiAhTElOVVggKi8KKwogI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCiAKICNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChGUkVFQlNEKQpAQCAtMTExOCw2ICsxMTExLDIyIEBACiAKICNpZmRlZiBMSU5VWAogCitpbnQgc3lzX2dldHVpZChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGV4aXRpbmcodGNwKSkKKwkJdGNwLT51X3J2YWwgPSAodWlkX3QpIHRjcC0+dV9ydmFsOworCXJldHVybiBSVkFMX1VERUNJTUFMOworfQorCitpbnQgc3lzX3NldGZzdWlkKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJdHByaW50ZigiJXUiLCAodWlkX3QpIHRjcC0+dV9hcmdbMF0pOworCWVsc2UKKwkJdGNwLT51X3J2YWwgPSAodWlkX3QpIHRjcC0+dV9ydmFsOworCXJldHVybiBSVkFMX1VERUNJTUFMOworfQorCiBpbnQKIHN5c19zZXR1aWQodGNwKQogc3RydWN0IHRjYiAqdGNwOwpAQCAtMTEzOSw4ICsxMTQ4LDcgQEAKIH0KIAogaW50Ci1zeXNfZ2V0cmVzdWlkKHRjcCkKLSAgICBzdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZ2V0cmVzdWlkKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZXhpdGluZyh0Y3ApKSB7CiAJCV9fa2VybmVsX3VpZF90IHVpZDsKQEAgLTE0NzgsNiArMTQ4Niw3IEBACiB9CiAjZW5kaWYgLyogTElOVVggKi8KIAorI2lmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKFNWUjQpCiBpbnQKIHN5c19zZXRwZ3JwKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKQEAgLTE0ODksNiArMTQ5OCw3IEBACiAJfQogCXJldHVybiAwOwogfQorI2VuZGlmIC8qIEFMUEhBIHx8IFNVTk9TNCB8fCBTVlI0ICovCiAKIGludAogc3lzX2dldHBncnAodGNwKQpAQCAtMTU5NywxMSArMTYwNyw3IEBACiAKIAogc3RhdGljIHZvaWQKLXByaW50cHJpdih0Y3AsIGFkZHIsIGxlbiwgb3B0KQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLWNvbnN0IHN0cnVjdCB4bGF0ICpvcHQ7CitwcmludHByaXYoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGludCBsZW4sIGNvbnN0IHN0cnVjdCB4bGF0ICpvcHQpCiB7CiAJcHJpdl90IGJ1ZiBbMTI4XTsKIAlpbnQgbWF4ID0gdmVyYm9zZSAodGNwKSA/IHNpemVvZiBidWYgLyBzaXplb2YgYnVmIFswXSA6IDEwOwpAQCAtMTYyMCw3ICsxNjI2LDcgQEAKIAl0cHJpbnRmICgiWyIpOwogCiAJZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0JCWNoYXIgKnQsICpwOworCQljb25zdCBjaGFyICp0LCAqcDsKIAogCQlpZiAoaSkgdHByaW50ZiAoIiwgIik7CiAKQEAgLTE2NzQsNDAgKzE2ODAsNDEgQEAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogVU5JWFdBUkUgKi8KIAogCiBzdGF0aWMgdm9pZAotcHJpbnRhcmd2KHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50YXJndihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKIHsKLQljaGFyICpjcDsKLQljaGFyICpzZXA7Ci0JaW50IG1heCA9IG1heF9zdHJsZW4gLyAyOworCXVuaW9uIHsKKwkJdW5zaWduZWQgaW50IHAzMjsKKwkJdW5zaWduZWQgbG9uZyBwNjQ7CisJCWNoYXIgZGF0YVtzaXplb2YobG9uZyldOworCX0gY3A7CisJY29uc3QgY2hhciAqc2VwOworCWludCBuID0gMDsKIAotCWZvciAoc2VwID0gIiI7IC0tbWF4ID49IDA7IHNlcCA9ICIsICIpIHsKLQkJaWYgKCFhYmJyZXYodGNwKSkKLQkJCW1heCsrOwotCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmY3ApIDwgMCkgeworCWNwLnA2NCA9IDE7CisJZm9yIChzZXAgPSAiIjsgIWFiYnJldih0Y3ApIHx8IG4gPCBtYXhfc3RybGVuIC8gMjsgc2VwID0gIiwgIiwgKytuKSB7CisJCWlmICh1bW92ZW4odGNwLCBhZGRyLCBwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSwKKwkJCSAgIGNwLmRhdGEpIDwgMCkgewogCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwogCQkJcmV0dXJuOwogCQl9Ci0JCWlmIChjcCA9PSAwKQorCQlpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCkKKwkJCWNwLnA2NCA9IGNwLnAzMjsKKwkJaWYgKGNwLnA2NCA9PSAwKQogCQkJYnJlYWs7CiAJCXRwcmludGYoIiVzIiwgc2VwKTsKLQkJcHJpbnRzdHIodGNwLCAobG9uZykgY3AsIC0xKTsKLQkJYWRkciArPSBzaXplb2YoY2hhciAqKTsKKwkJcHJpbnRzdHIodGNwLCBjcC5wNjQsIC0xKTsKKwkJYWRkciArPSBwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XTsKIAl9Ci0JaWYgKGNwKQotCQl0cHJpbnRmKCIsIC4uLiIpOworCWlmIChjcC5wNjQpCisJCXRwcmludGYoIiVzLi4uIiwgc2VwKTsKIH0KIAogc3RhdGljIHZvaWQKLXByaW50YXJnYyhmbXQsIHRjcCwgYWRkcikKLWNoYXIgKmZtdDsKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50YXJnYyhjb25zdCBjaGFyICpmbXQsIHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyKQogewogCWludCBjb3VudDsKIAljaGFyICpjcDsKQEAgLTE3MTgsMTggKzE3MjUsMTQgQEAKIAl0cHJpbnRmKGZtdCwgY291bnQsIGNvdW50ID09IDEgPyAiIiA6ICJzIik7CiB9CiAKKyNpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpIHx8IGRlZmluZWQoU1VOT1M0KQogaW50Ci1zeXNfZXhlY3YodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX2V4ZWN2KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKIAkJaWYgKCF2ZXJib3NlKHRjcCkpCiAJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLSNpZiAwCi0JCWVsc2UgaWYgKGFiYnJldih0Y3ApKQotCQkJcHJpbnRhcmdjKCIsIFsvKiAlZCBhcmclcyAqL10iLCB0Y3AsIHRjcC0+dV9hcmdbMV0pOwotI2VuZGlmCiAJCWVsc2UgewogCQkJdHByaW50ZigiLCBbIik7CiAJCQlwcmludGFyZ3YodGNwLCB0Y3AtPnVfYXJnWzFdKTsKQEAgLTE3MzgsMTkgKzE3NDEsMTUgQEAKIAl9CiAJcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCB8fCBTVU5PUzQgKi8KIAogaW50Ci1zeXNfZXhlY3ZlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19leGVjdmUoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOwogCQlpZiAoIXZlcmJvc2UodGNwKSkKIAkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotI2lmIDAKLQkJZWxzZSBpZiAoYWJicmV2KHRjcCkpCi0JCQlwcmludGFyZ2MoIiwgWy8qICVkIGFyZyVzICovXSIsIHRjcCwgdGNwLT51X2FyZ1sxXSk7Ci0jZW5kaWYKIAkJZWxzZSB7CiAJCQl0cHJpbnRmKCIsIFsiKTsKIAkJCXByaW50YXJndih0Y3AsIHRjcC0+dV9hcmdbMV0pOwpAQCAtMTg0OCw4ICsxODQ3LDEyIEBACiAjIGRlZmluZSBXQ09SRUZMQUcgV0NPUkVGTEcKICNlbmRpZgogI2lmbmRlZiBXQ09SRUZMQUcKLSNkZWZpbmUgV0NPUkVGTEFHIDB4ODAKKyMgZGVmaW5lIFdDT1JFRkxBRyAweDgwCiAjZW5kaWYKKyNpZm5kZWYgV0NPUkVEVU1QCisjIGRlZmluZSBXQ09SRURVTVAoc3RhdHVzKSAoKHN0YXR1cykgJiAwMjAwKQorI2VuZGlmCisKIAogI2lmbmRlZiBXX1NUT1BDT0RFCiAjZGVmaW5lIFdfU1RPUENPREUoc2lnKQkJKChzaWcpIDw8IDggfCAweDdmKQpAQCAtMTkwMCwxNiArMTkwMywzMiBAQAogfQogCiBzdGF0aWMgaW50Ci1wcmludHdhaXRuKHRjcCwgbiwgYml0bmVzcykKLXN0cnVjdCB0Y2IgKnRjcDsKLWludCBuOwotaW50IGJpdG5lc3M7CitwcmludHdhaXRuKHN0cnVjdCB0Y2IgKnRjcCwgaW50IG4sIGludCBiaXRuZXNzKQogewogCWludCBzdGF0dXM7CisjaWZkZWYgU1VOT1M0CiAJaW50IGV4aXRlZCA9IDA7CisjZW5kaWYKIAogCWlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisjaWZkZWYgTElOVVgKKwkJLyogT24gTGludXgsIGtlcm5lbC1zaWRlIHBpZF90IGlzIHR5cGVkZWYnZWQgdG8gaW50CisJCSAqIG9uIGFsbCBhcmNoZXMuIEFsc28sIGdsaWJjLTIuOCB0cnVuY2F0ZXMgd2FpdDMgYW5kIHdhaXQ0CisJCSAqIHBpZCBhcmd1bWVudCB0byBpbnQgb24gNjRiaXQgYXJjaGVzLCBwcm9kdWNpbmcsCisJCSAqIGZvciBleGFtcGxlLCB3YWl0NCg0Mjk0OTY3Mjk1LCAuLi4pIGluc3RlYWQgb2YgLTEKKwkJICogaW4gc3RyYWNlLiBXZSBoYXZlIHRvIHVzZSBpbnQgaGVyZSwgbm90IGxvbmcuCisJCSAqLworCQlpbnQgcGlkID0gdGNwLT51X2FyZ1swXTsKKwkJdHByaW50ZigiJWQsICIsIHBpZCk7CisjZWxzZQorCQkvKgorCQkgKiBTaWduLWV4dGVuZCBhIDMyLWJpdCB2YWx1ZSB3aGVuIHRoYXQncyB3aGF0IGl0IGlzLgorCQkgKi8KKwkJbG9uZyBwaWQgPSB0Y3AtPnVfYXJnWzBdOworCQlpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPCBzaXplb2YgcGlkKQorCQkJcGlkID0gKGxvbmcpIChpbnQpIHBpZDsKKwkJdHByaW50ZigiJWxkLCAiLCBwaWQpOworI2VuZGlmCiAJfSBlbHNlIHsKIAkJLyogc3RhdHVzICovCiAJCWlmICghdGNwLT51X2FyZ1sxXSkKQEAgLTE5MTksNyArMTkzOCwxMCBAQAogCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZzdGF0dXMpIDwgMCkKIAkJCXRwcmludGYoIls/XSIpOwogCQllbHNlCi0JCQlleGl0ZWQgPSBwcmludHN0YXR1cyhzdGF0dXMpOworI2lmZGVmIFNVTk9TNAorCQkJZXhpdGVkID0KKyNlbmRpZgorCQkJcHJpbnRzdGF0dXMoc3RhdHVzKTsKIAkJLyogb3B0aW9ucyAqLwogCQl0cHJpbnRmKCIsICIpOwogCQlwcmludGZsYWdzKHdhaXQ0X29wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJXPz8/Iik7CkBAIC0xOTMwLDcgKzE5NTIsNyBAQAogCQkJCXRwcmludGYoIk5VTEwiKTsKICNpZmRlZiBMSU5VWAogCQkJZWxzZSBpZiAodGNwLT51X3J2YWwgPiAwKSB7Ci0jaWZkZWYgTElOVVhfNjRCSVQKKyNpZmRlZiBBTFBIQQogCQkJCWlmIChiaXRuZXNzKQogCQkJCQlwcmludHJ1c2FnZTMyKHRjcCwgdGNwLT51X2FyZ1szXSk7CiAJCQkJZWxzZQpAQCAtMTk2MCw5ICsxOTgyLDkgQEAKIAlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCiAJCS8qIFRoZSBjaGlsZHJlbiB3ZSB3YWl0IGZvciBhcmUgb3VyIHBhcmVudCdzIGNoaWxkcmVuLiAgKi8KIAkJZ290X2tpZHMgPSAodGNwLT5wYXJlbnQtPm5jaGlsZHJlbgotCQkJICAgID4gdGNwLT5wYXJlbnQtPm5jbG9uZV9kZXRhY2hlZCk7CisJCQkgICAgPiB0Y3AtPnBhcmVudC0+bmNsb25lX3RocmVhZHMpOwogCWVsc2UKLQkJZ290X2tpZHMgPSAodGNwLT5uY2hpbGRyZW4gPiB0Y3AtPm5jbG9uZV9kZXRhY2hlZCk7CisJCWdvdF9raWRzID0gKHRjcC0+bmNoaWxkcmVuID4gdGNwLT5uY2xvbmVfdGhyZWFkcyk7CiAjZWxzZQogCWdvdF9raWRzID0gdGNwLT5uY2hpbGRyZW4gPiAwOwogI2VuZGlmCkBAIC0yMDA3LDcgKzIwMjksOCBAQAogCQkJCQkgICAgKHRjcC0+ZmxhZ3MgJiBUQ0JfQ0xPTkVfVEhSRUFEKQogCQkJCQkgICAgPyB0Y3AtPnBhcmVudCA6CiAjZW5kaWYKLQkJCQkJICAgIHRjcCkpCisJCQkJCSAgICB0Y3ApIHx8CisJCQkJICAgIChjaGlsZC0+ZmxhZ3MgJiBUQ0JfRVhJVElORykpCiAJCQkJCXJldHVybiAwOwogCQkJfQogCQkJdGNwLT5mbGFncyB8PSBUQ0JfU1VTUEVOREVEOwpAQCAtMjAyMiw3ICsyMDQ1LDYgQEAKIAkJaWYgKHRjcC0+dV9hcmdbZmxhZ2FyZ10gJiBXTk9IQU5HKSB7CiAJCQkvKiBXZSBtdXN0IGZvcmNlIGEgZmFrZSByZXN1bHQgb2YgMCBpbnN0ZWFkIG9mCiAJCQkgICB0aGUgRUNISUxEIGVycm9yLiAgKi8KLQkJCWV4dGVybiBpbnQgZm9yY2VfcmVzdWx0KCk7CiAJCQlyZXR1cm4gZm9yY2VfcmVzdWx0KHRjcCwgMCwgMCk7CiAJCX0KIAl9CkBAIC0yMTIzLDExICsyMTQ1LDkgQEAKIH07CiAKIGludAotc3lzX3dhaXRpZCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfd2FpdGlkKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlzaWdpbmZvX3Qgc2k7Ci0JaW50IGV4aXRlZDsKIAogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50eHZhbCh3YWl0aWRfdHlwZXMsIHRjcC0+dV9hcmdbMF0sICJQXz8/PyIpOwpAQCAtMjEzNSw3ICsyMTU1LDYgQEAKIAl9CiAJZWxzZSB7CiAJCS8qIHNpZ2luZm8gKi8KLQkJZXhpdGVkID0gMDsKIAkJaWYgKCF0Y3AtPnVfYXJnWzJdKQogCQkJdHByaW50ZigiTlVMTCIpOwogCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQpAQCAtMjE0Myw3ICsyMTYyLDcgQEAKIAkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmc2kpIDwgMCkKIAkJCXRwcmludGYoIns/Pz99Iik7CiAJCWVsc2UKLQkJCXByaW50c2lnaW5mbygmc2ksIHZlcmJvc2UgKHRjcCkpOworCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSh0Y3ApKTsKIAkJLyogb3B0aW9ucyAqLwogCQl0cHJpbnRmKCIsICIpOwogCQlwcmludGZsYWdzKHdhaXQ0X29wdGlvbnMsIHRjcC0+dV9hcmdbM10sICJXPz8/Iik7CkBAIC0yMTkzLDggKzIyMTIsOCBAQAogI2lmZGVmIExJTlVYCiAjaWZuZGVmIF9fR0xJQkNfXwogCQkJdHByaW50ZigiLCBkb21haW5uYW1lPVwiJXNcIiIsIHVuYW1lLmRvbWFpbm5hbWUpOwotI2VuZGlmIC8qIF9fR0xJQkNfXyAqLwotI2VuZGlmIC8qIExJTlVYICovCisjZW5kaWYKKyNlbmRpZgogCQkJdHByaW50ZigifSIpOwogCQl9CiAJCWVsc2UKQEAgLTIyMDcsNyArMjIyNiw3IEBACiAjaWZuZGVmIFNWUjQKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHB0cmFjZV9jbWRzW10gPSB7Ci0jaWZuZGVmIEZSRUVCU0QKKyMgaWZuZGVmIEZSRUVCU0QKIAl7IFBUUkFDRV9UUkFDRU1FLAkiUFRSQUNFX1RSQUNFTUUiCX0sCiAJeyBQVFJBQ0VfUEVFS1RFWFQsCSJQVFJBQ0VfUEVFS1RFWFQiLAl9LAogCXsgUFRSQUNFX1BFRUtEQVRBLAkiUFRSQUNFX1BFRUtEQVRBIiwJfSwKQEAgLTIyMjAsNjggKzIyMzksOTEgQEAKIAl7IFBUUkFDRV9TSU5HTEVTVEVQLAkiUFRSQUNFX1NJTkdMRVNURVAiCX0sCiAJeyBQVFJBQ0VfQVRUQUNILAkiUFRSQUNFX0FUVEFDSCIJCX0sCiAJeyBQVFJBQ0VfREVUQUNILAkiUFRSQUNFX0RFVEFDSCIJCX0sCi0jaWZkZWYgUFRSQUNFX0dFVFJFR1MKKyMgIGlmZGVmIFBUUkFDRV9HRVRSRUdTCiAJeyBQVFJBQ0VfR0VUUkVHUywJIlBUUkFDRV9HRVRSRUdTIgl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX1NFVFJFR1MKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfU0VUUkVHUwogCXsgUFRSQUNFX1NFVFJFR1MsCSJQVFJBQ0VfU0VUUkVHUyIJfSwKLSNlbmRpZgotI2lmZGVmIFBUUkFDRV9HRVRGUFJFR1MKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfR0VURlBSRUdTCiAJeyBQVFJBQ0VfR0VURlBSRUdTLAkiUFRSQUNFX0dFVEZQUkVHUyIsCX0sCi0jZW5kaWYKLSNpZmRlZiBQVFJBQ0VfU0VURlBSRUdTCisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX1NFVEZQUkVHUwogCXsgUFRSQUNFX1NFVEZQUkVHUywJIlBUUkFDRV9TRVRGUFJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgUFRSQUNFX0dFVEZQWFJFR1MKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfR0VURlBYUkVHUwogCXsgUFRSQUNFX0dFVEZQWFJFR1MsCSJQVFJBQ0VfR0VURlBYUkVHUyIsCX0sCi0jZW5kaWYKLSNpZmRlZiBQVFJBQ0VfU0VURlBYUkVHUworIyAgZW5kaWYKKyMgIGlmZGVmIFBUUkFDRV9TRVRGUFhSRUdTCiAJeyBQVFJBQ0VfU0VURlBYUkVHUywJIlBUUkFDRV9TRVRGUFhSRUdTIiwJfSwKLSNlbmRpZgotI2lmZGVmIFBUUkFDRV9HRVRWUlJFR1MKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfR0VUVlJSRUdTCiAJeyBQVFJBQ0VfR0VUVlJSRUdTLAkiUFRSQUNFX0dFVFZSUkVHUyIsCX0sCi0jZW5kaWYKLSNpZmRlZiBQVFJBQ0VfU0VUVlJSRUdTCisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX1NFVFZSUkVHUwogCXsgUFRSQUNFX1NFVFZSUkVHUywJIlBUUkFDRV9TRVRWUlJFR1MiLAl9LAotI2VuZGlmCi0jaWZkZWYgU1VOT1M0CisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX1NFVE9QVElPTlMKKwl7IFBUUkFDRV9TRVRPUFRJT05TLAkiUFRSQUNFX1NFVE9QVElPTlMiLAl9LAorIyAgZW5kaWYKKyMgIGlmZGVmIFBUUkFDRV9HRVRFVkVOVE1TRworCXsgUFRSQUNFX0dFVEVWRU5UTVNHLAkiUFRSQUNFX0dFVEVWRU5UTVNHIiwJfSwKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfR0VUU0lHSU5GTworCXsgUFRSQUNFX0dFVFNJR0lORk8sCSJQVFJBQ0VfR0VUU0lHSU5GTyIsCX0sCisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX1NFVFNJR0lORk8KKwl7IFBUUkFDRV9TRVRTSUdJTkZPLAkiUFRSQUNFX1NFVFNJR0lORk8iLAl9LAorIyAgZW5kaWYKKyMgIGlmZGVmIFBUUkFDRV9HRVRSRUdTRVQKKwl7IFBUUkFDRV9HRVRSRUdTRVQsCSJQVFJBQ0VfR0VUUkVHU0VUIiwJfSwKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfU0VUUkVHU0VUCisJeyBQVFJBQ0VfU0VUUkVHU0VULAkiUFRSQUNFX1NFVFJFR1NFVCIsCX0sCisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX1NFVF9TWVNDQUxMCisJeyBQVFJBQ0VfU0VUX1NZU0NBTEwsCSJQVFJBQ0VfU0VUX1NZU0NBTEwiLAl9LAorIyAgZW5kaWYKKyMgIGlmZGVmIFNVTk9TNAogCXsgUFRSQUNFX1JFQUREQVRBLAkiUFRSQUNFX1JFQUREQVRBIgl9LAogCXsgUFRSQUNFX1dSSVRFREFUQSwJIlBUUkFDRV9XUklURURBVEEiCX0sCiAJeyBQVFJBQ0VfUkVBRFRFWFQsCSJQVFJBQ0VfUkVBRFRFWFQiCX0sCiAJeyBQVFJBQ0VfV1JJVEVURVhULAkiUFRSQUNFX1dSSVRFVEVYVCIJfSwKIAl7IFBUUkFDRV9HRVRGUEFSRUdTLAkiUFRSQUNFX0dFVEZQQVJFR1MiCX0sCiAJeyBQVFJBQ0VfU0VURlBBUkVHUywJIlBUUkFDRV9TRVRGUEFSRUdTIgl9LAotI2lmZGVmIFNQQVJDCisjICAgaWZkZWYgU1BBUkMKIAl7IFBUUkFDRV9HRVRXSU5ET1csCSJQVFJBQ0VfR0VUV0lORE9XIgl9LAogCXsgUFRSQUNFX1NFVFdJTkRPVywJIlBUUkFDRV9TRVRXSU5ET1ciCX0sCi0jZWxzZSAvKiAhU1BBUkMgKi8KLQl7IFBUUkFDRV8yMiwJCSJQVFJBQ0VfUFRSQUNFXzIyIgl9LAotCXsgUFRSQUNFXzIzLAkJIlBUUkFDRV9QVFJBQ0VfMjMiCX0sCi0jZW5kaWYgLyogIVNQQVJDICovCi0jZW5kaWYgLyogU1VOT1M0ICovCisjICAgZWxzZSAvKiAhU1BBUkMgKi8KKwl7IFBUUkFDRV8yMiwJCSJQVFJBQ0VfMjIiCQl9LAorCXsgUFRSQUNFXzIzLAkJIlBUUkFDRV8zIgkJfSwKKyMgICBlbmRpZiAvKiAhU1BBUkMgKi8KKyMgIGVuZGlmIC8qIFNVTk9TNCAqLwogCXsgUFRSQUNFX1NZU0NBTEwsCSJQVFJBQ0VfU1lTQ0FMTCIJfSwKLSNpZmRlZiBTVU5PUzQKKyMgIGlmZGVmIFNVTk9TNAogCXsgUFRSQUNFX0RVTVBDT1JFLAkiUFRSQUNFX0RVTVBDT1JFIgl9LAotI2lmZGVmIEkzODYKKyMgICBpZmRlZiBJMzg2CiAJeyBQVFJBQ0VfU0VUV1JCS1BULAkiUFRSQUNFX1NFVFdSQktQVCIJfSwKIAl7IFBUUkFDRV9TRVRBQ0JLUFQsCSJQVFJBQ0VfU0VUQUNCS1BUIgl9LAogCXsgUFRSQUNFX0NMUkRSNywJIlBUUkFDRV9DTFJEUjciCQl9LAotI2Vsc2UgLyogIUkzODYgKi8KKyMgICBlbHNlIC8qICFJMzg2ICovCiAJeyBQVFJBQ0VfMjYsCQkiUFRSQUNFXzI2IgkJfSwKIAl7IFBUUkFDRV8yNywJCSJQVFJBQ0VfMjciCQl9LAogCXsgUFRSQUNFXzI4LAkJIlBUUkFDRV8yOCIJCX0sCi0jZW5kaWYgLyogIUkzODYgKi8KKyMgICBlbmRpZiAvKiAhSTM4NiAqLwogCXsgUFRSQUNFX0dFVFVDT0RFLAkiUFRSQUNFX0dFVFVDT0RFIgl9LAotI2VuZGlmIC8qIFNVTk9TNCAqLwotI2Vsc2UgLyogRlJFRUJTRCAqLworIyAgZW5kaWYgLyogU1VOT1M0ICovCisKKyMgZWxzZSAvKiBGUkVFQlNEICovCisKIAl7IFBUX1RSQUNFX01FLAkJIlBUX1RSQUNFX01FIgkJfSwKIAl7IFBUX1JFQURfSSwJCSJQVF9SRUFEX0kiCQl9LAogCXsgUFRfUkVBRF9ELAkJIlBUX1JFQURfRCIJCX0sCiAJeyBQVF9XUklURV9JLAkJIlBUX1dSSVRFX0kiCQl9LAogCXsgUFRfV1JJVEVfRCwJCSJQVF9XUklURV9EIgkJfSwKLSNpZmRlZiBQVF9SRUFEX1UKKyMgIGlmZGVmIFBUX1JFQURfVQogCXsgUFRfUkVBRF9VLAkJIlBUX1JFQURfVSIJCX0sCi0jZW5kaWYKKyMgIGVuZGlmCiAJeyBQVF9DT05USU5VRSwJCSJQVF9DT05USU5VRSIJCX0sCiAJeyBQVF9LSUxMLAkJIlBUX0tJTEwiCQl9LAogCXsgUFRfU1RFUCwJCSJQVF9TVEVQIgkJfSwKQEAgLTIyOTMsMTcgKzIzMzUsNDMgQEAKIAl7IFBUX1NFVEZQUkVHUywJCSJQVF9TRVRGUFJFR1MiCQl9LAogCXsgUFRfR0VUREJSRUdTLAkJIlBUX0dFVERCUkVHUyIJCX0sCiAJeyBQVF9TRVREQlJFR1MsCQkiUFRfU0VUREJSRUdTIgkJfSwKLSNlbmRpZiAvKiBGUkVFQlNEICovCisjIGVuZGlmIC8qIEZSRUVCU0QgKi8KIAl7IDAsCQkJTlVMTAkJCX0sCiB9OwogCi0jaWZuZGVmIEZSRUVCU0QKLSNpZm5kZWYgU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRQotc3RhdGljCi0jZW5kaWYgLyogIVNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgKi8KKyMgaWZuZGVmIEZSRUVCU0QKKyMgIGlmZGVmIFBUUkFDRV9TRVRPUFRJT05TCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHRyYWNlX3NldG9wdGlvbnNfZmxhZ3NbXSA9IHsKKyMgICBpZmRlZiBQVFJBQ0VfT19UUkFDRVNZU0dPT0QKKwl7IFBUUkFDRV9PX1RSQUNFU1lTR09PRCwiUFRSQUNFX09fVFJBQ0VTWVNHT09EIgl9LAorIyAgIGVuZGlmCisjICAgaWZkZWYgUFRSQUNFX09fVFJBQ0VGT1JLCisJeyBQVFJBQ0VfT19UUkFDRUZPUkssCSJQVFJBQ0VfT19UUkFDRUZPUksiCX0sCisjICAgZW5kaWYKKyMgICBpZmRlZiBQVFJBQ0VfT19UUkFDRVZGT1JLCisJeyBQVFJBQ0VfT19UUkFDRVZGT1JLLAkiUFRSQUNFX09fVFJBQ0VWRk9SSyIJfSwKKyMgICBlbmRpZgorIyAgIGlmZGVmIFBUUkFDRV9PX1RSQUNFQ0xPTkUKKwl7IFBUUkFDRV9PX1RSQUNFQ0xPTkUsCSJQVFJBQ0VfT19UUkFDRUNMT05FIgl9LAorIyAgIGVuZGlmCisjICAgaWZkZWYgUFRSQUNFX09fVFJBQ0VFWEVDCisJeyBQVFJBQ0VfT19UUkFDRUVYRUMsCSJQVFJBQ0VfT19UUkFDRUVYRUMiCX0sCisjICAgZW5kaWYKKyMgICBpZmRlZiBQVFJBQ0VfT19UUkFDRVZGT1JLRE9ORQorCXsgUFRSQUNFX09fVFJBQ0VWRk9SS0RPTkUsIlBUUkFDRV9PX1RSQUNFVkZPUktET05FIn0sCisjICAgZW5kaWYKKyMgICBpZmRlZiBQVFJBQ0VfT19UUkFDRUVYSVQKKwl7IFBUUkFDRV9PX1RSQUNFRVhJVCwJIlBUUkFDRV9PX1RSQUNFRVhJVCIJfSwKKyMgICBlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKK307CisjICBlbmRpZiAvKiBQVFJBQ0VfU0VUT1BUSU9OUyAqLworIyBlbmRpZiAvKiAhRlJFRUJTRCAqLworCisjIGlmbmRlZiBGUkVFQlNECiBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJ1Y3RfdXNlcl9vZmZzZXRzW10gPSB7Ci0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCisjICBpZmRlZiBMSU5VWAorIyAgIGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKIAl7IFBUX1BTV01BU0ssCQkicHN3X21hc2siCQkJCX0sCiAJeyBQVF9QU1dBRERSLAkJInBzd19hZGRyIgkJCQl9LAogCXsgUFRfR1BSMCwJCSJncHIwIgkJCQkJfSwKQEAgLTIzNDAsNyArMjQwOCw3IEBACiAJeyBQVF9BQ1IxNSwJCSJhY3IxNSIJCQkJCX0sCiAJeyBQVF9PUklHR1BSMiwJCSJvcmlnX2dwcjIiCQkJCX0sCiAJeyBQVF9GUEMsCQkiZnBjIgkJCQkJfSwKLSNpZiBkZWZpbmVkKFMzOTApCisjICAgIGlmIGRlZmluZWQoUzM5MCkKIAl7IFBUX0ZQUjBfSEksCQkiZnByMC5oaSIJCQkJfSwKIAl7IFBUX0ZQUjBfTE8sCQkiZnByMC5sbyIJCQkJfSwKIAl7IFBUX0ZQUjFfSEksCQkiZnByMS5oaSIJCQkJfSwKQEAgLTIzNzMsOCArMjQ0MSw4IEBACiAJeyBQVF9GUFIxNF9MTywJCSJmcHIxNC5sbyIJCQkJfSwKIAl7IFBUX0ZQUjE1X0hJLAkJImZwcjE1LmhpIgkJCQl9LAogCXsgUFRfRlBSMTVfTE8sCQkiZnByMTUubG8iCQkJCX0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFMzOTBYKQorIyAgICBlbmRpZgorIyAgICBpZiBkZWZpbmVkKFMzOTBYKQogCXsgUFRfRlBSMCwJCSJmcHIwIgkJCQkJfSwKIAl7IFBUX0ZQUjEsCQkiZnByMSIJCQkJCX0sCiAJeyBQVF9GUFIyLAkJImZwcjIiCQkJCQl9LApAQCAtMjM5MSwyMSArMjQ1OSwyMCBAQAogCXsgUFRfRlBSMTMsCQkiZnByMTMiCQkJCQl9LAogCXsgUFRfRlBSMTQsCQkiZnByMTQiCQkJCQl9LAogCXsgUFRfRlBSMTUsCQkiZnByMTUiCQkJCQl9LAotI2VuZGlmCisjICAgIGVuZGlmCiAJeyBQVF9DUl85LAkJImNyOSIJCQkJCX0sCiAJeyBQVF9DUl8xMCwJCSJjcjEwIgkJCQkJfSwKIAl7IFBUX0NSXzExLAkJImNyMTEiCQkJCQl9LAogCXsgUFRfSUVFRV9JUCwgICAgICAgICAgICJpZWVlX2V4Y2VwdGlvbl9pcCIgICAgICAgICAgICAgICAgICAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChTUEFSQykKKyMgICBlbGlmIGRlZmluZWQoU1BBUkMpCiAJLyogWFhYIE5vIHN1cHBvcnQgZm9yIHRoZXNlIG9mZnNldHMgeWV0LiAqLwotI2VsaWYgZGVmaW5lZChIUFBBKQorIyAgIGVsaWYgZGVmaW5lZChIUFBBKQogCS8qIFhYWCBObyBzdXBwb3J0IGZvciB0aGVzZSBvZmZzZXRzIHlldC4gKi8KLSNlbGlmIGRlZmluZWQoUE9XRVJQQykKLSNpZm5kZWYgUFRfT1JJR19SMwotI2RlZmluZSBQVF9PUklHX1IzIDM0Ci0jZW5kaWYKLSNkZWZpbmUgUkVHU0laRSAoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKQorIyAgIGVsaWYgZGVmaW5lZChQT1dFUlBDKQorIyAgICBpZm5kZWYgUFRfT1JJR19SMworIyAgICAgZGVmaW5lIFBUX09SSUdfUjMgMzQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIFJFR1NJWkUgKHNpemVvZih1bnNpZ25lZCBsb25nKSkKIAl7IFJFR1NJWkUqUFRfUjAsCQkicjAiCQkJCX0sCiAJeyBSRUdTSVpFKlBUX1IxLAkJInIxIgkJCQl9LAogCXsgUkVHU0laRSpQVF9SMiwJCSJyMiIJCQkJfSwKQEAgLTI0NDYsOSArMjUxMyw4IEBACiAJeyBSRUdTSVpFKlBUX1hFUiwJCSJYRVIiCQkJCX0sCiAJeyBSRUdTSVpFKlBUX0NDUiwJCSJDQ1IiCQkJCX0sCiAJeyBSRUdTSVpFKlBUX0ZQUjAsCQkiRlBSMCIJCQkJfSwKLSN1bmRlZiBSRUdTSVpFCi0jZWxzZQotI2lmZGVmIEFMUEhBCisjICAgIHVuZGVmIFJFR1NJWkUKKyMgICBlbGlmIGRlZmluZWQoQUxQSEEpCiAJeyAwLAkJCSJyMCIJCQkJCX0sCiAJeyAxLAkJCSJyMSIJCQkJCX0sCiAJeyAyLAkJCSJyMiIJCQkJCX0sCkBAIC0yNTE0LDggKzI1ODAsNyBAQAogCXsgNjIsCQkJImZwMzAiCQkJCQl9LAogCXsgNjMsCQkJImZwMzEiCQkJCQl9LAogCXsgNjQsCQkJInBjIgkJCQkJfSwKLSNlbHNlIC8qICFBTFBIQSAqLwotI2lmZGVmIElBNjQKKyMgICBlbGlmIGRlZmluZWQoSUE2NCkKIAl7IFBUX0YzMiwgImYzMiIgfSwgeyBQVF9GMzMsICJmMzMiIH0sIHsgUFRfRjM0LCAiZjM0IiB9LAogCXsgUFRfRjM1LCAiZjM1IiB9LCB7IFBUX0YzNiwgImYzNiIgfSwgeyBQVF9GMzcsICJmMzciIH0sCiAJeyBQVF9GMzgsICJmMzgiIH0sIHsgUFRfRjM5LCAiZjM5IiB9LCB7IFBUX0Y0MCwgImY0MCIgfSwKQEAgLTI1ODAsMTUgKzI2NDUsMTQgQEAKIAl7IFBUX0FSX0NDViwgImFyLmNjdiIgfSwgeyBQVF9BUl9GUFNSLCAiYXIuZnBzciIgfSwKIAl7IFBUX0IwLCAiYjAiIH0sIHsgUFRfQjcsICJiNyIgfSwgeyBQVF9GNiwgImY2IiB9LAogCXsgUFRfRjcsICJmNyIgfSwgeyBQVF9GOCwgImY4IiB9LCB7IFBUX0Y5LCAiZjkiIH0sCi0jIGlmZGVmIFBUX0FSX0NTRAorIyAgICBpZmRlZiBQVF9BUl9DU0QKIAl7IFBUX0FSX0NTRCwgImFyLmNzZCIgfSwKLSMgZW5kaWYKLSMgaWZkZWYgUFRfQVJfU1NECisjICAgIGVuZGlmCisjICAgIGlmZGVmIFBUX0FSX1NTRAogCXsgUFRfQVJfU1NELCAiYXIuc3NkIiB9LAotIyBlbmRpZgorIyAgICBlbmRpZgogCXsgUFRfREJSLCAiZGJyIiB9LCB7IFBUX0lCUiwgImliciIgfSwgeyBQVF9QTUQsICJwbWQiIH0sCi0jZWxzZSAvKiAhSUE2NCAqLwotI2lmZGVmIEkzODYKKyMgICBlbGlmIGRlZmluZWQoSTM4NikKIAl7IDQqRUJYLAkJIjQqRUJYIgkJCQkJfSwKIAl7IDQqRUNYLAkJIjQqRUNYIgkJCQkJfSwKIAl7IDQqRURYLAkJIjQqRURYIgkJCQkJfSwKQEAgLTI2MDYsOCArMjY3MCw3IEBACiAJeyA0KkVGTCwJCSI0KkVGTCIJCQkJCX0sCiAJeyA0KlVFU1AsCQkiNCpVRVNQIgkJCQl9LAogCXsgNCpTUywJCQkiNCpTUyIJCQkJCX0sCi0jZWxzZSAvKiAhSTM4NiAqLwotI2lmZGVmIFg4Nl82NAorIyAgIGVsaWYgZGVmaW5lZChYODZfNjQpCiAJeyA4KlIxNSwgCQkiOCpSMTUiCQkJCQl9LAogCXsgOCpSMTQsIAkJIjgqUjE0IgkJCQkJfSwKIAl7IDgqUjEzLCAJCSI4KlIxMyIJCQkJCX0sCkBAIC0yNjIzLDIwICsyNjg2LDEzIEBACiAJeyA4KlJEWCwJCSI4KlJEWCIJCQkJCX0sCiAJeyA4KlJTSSwJCSI4KlJTSSIJCQkJCX0sCiAJeyA4KlJESSwJCSI4KlJESSIJCQkJCX0sCi0jaWYgMAotCXsgRFMsCQkJIkRTIgkJCQkJfSwKLQl7IEVTLAkJCSJFUyIJCQkJCX0sCi0JeyBGUywJCQkiRlMiCQkJCQl9LAotCXsgR1MsCQkJIkdTIgkJCQkJfSwKLSNlbmRpZgogCXsgOCpPUklHX1JBWCwJCSI4Kk9SSUdfUkFYIgkJCQl9LAogCXsgOCpSSVAsCQkiOCpSSVAiCQkJCQl9LAogCXsgOCpDUywJCQkiOCpDUyIJCQkJCX0sCiAJeyA4KkVGTEFHUywJCSI4KkVGTCIJCQkJCX0sCiAJeyA4KlJTUCwJCSI4KlJTUCIJCQkJCX0sCiAJeyA4KlNTLAkJCSI4KlNTIgkJCQkJfSwKLSNlbmRpZgotI2lmZGVmIE02OEsKKyMgICBlbGlmIGRlZmluZWQoTTY4SykKIAl7IDQqUFRfRDEsCQkiNCpQVF9EMSIJCQkJfSwKIAl7IDQqUFRfRDIsCQkiNCpQVF9EMiIJCQkJfSwKIAl7IDQqUFRfRDMsCQkiNCpQVF9EMyIJCQkJfSwKQEAgLTI2NTYsNjIgKzI3MTIsNTkgQEAKIAl7IDQqUFRfT1JJR19EMCwJCSI0KlBUX09SSUdfRDAiCQkJCX0sCiAJeyA0KlBUX1NSLAkJIjQqUFRfU1IiCQkJCX0sCiAJeyA0KlBUX1BDLAkJIjQqUFRfUEMiCQkJCX0sCi0jZW5kaWYgLyogTTY4SyAqLwotI2VuZGlmIC8qICFJMzg2ICovCi0jaWZkZWYgU0gKLSAgICAgICB7IDQqUkVHX1JFRzAsICAgICAgICAgICAiNCpSRUdfUkVHMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzEpLCAgICAgICAiNCpSRUdfUkVHMSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzIpLCAgICAgICAiNCpSRUdfUkVHMiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzMpLCAgICAgICAiNCpSRUdfUkVHMyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzQpLCAgICAgICAiNCpSRUdfUkVHNCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzUpLCAgICAgICAiNCpSRUdfUkVHNSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzYpLCAgICAgICAiNCpSRUdfUkVHNiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzcpLCAgICAgICAiNCpSRUdfUkVHNyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzgpLCAgICAgICAiNCpSRUdfUkVHOCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzkpLCAgICAgICAiNCpSRUdfUkVHOSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzEwKSwgICAgICAiNCpSRUdfUkVHMTAiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzExKSwgICAgICAiNCpSRUdfUkVHMTEiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzEyKSwgICAgICAiNCpSRUdfUkVHMTIiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzEzKSwgICAgICAiNCpSRUdfUkVHMTMiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19SRUcwKzE0KSwgICAgICAiNCpSRUdfUkVHMTQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX1JFRzE1LCAgICAgICAgICAiNCpSRUdfUkVHMTUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX1BDLCAgICAgICAgICAgICAiNCpSRUdfUEMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX1BSLCAgICAgICAgICAgICAiNCpSRUdfUFIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX1NSLCAgICAgICAgICAgICAiNCpSRUdfU1IiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX0dCUiwgICAgICAgICAgICAiNCpSRUdfR0JSIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX01BQ0gsICAgICAgICAgICAiNCpSRUdfTUFDSCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX01BQ0wsICAgICAgICAgICAiNCpSRUdfTUFDTCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX1NZU0NBTEwsICAgICAgICAiNCpSRUdfU1lTQ0FMTCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX0ZQVUwsICAgICAgICAgICAiNCpSRUdfRlBVTCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX0ZQUkVHMCwgICAgICAgICAiNCpSRUdfRlBSRUcwIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMSksICAgICAiNCpSRUdfRlBSRUcxIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMiksICAgICAiNCpSRUdfRlBSRUcyIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMyksICAgICAiNCpSRUdfRlBSRUczIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArNCksICAgICAiNCpSRUdfRlBSRUc0IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArNSksICAgICAiNCpSRUdfRlBSRUc1IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArNiksICAgICAiNCpSRUdfRlBSRUc2IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArNyksICAgICAiNCpSRUdfRlBSRUc3IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArOCksICAgICAiNCpSRUdfRlBSRUc4IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArOSksICAgICAiNCpSRUdfRlBSRUc5IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMTApLCAgICAiNCpSRUdfRlBSRUcxMCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMTEpLCAgICAiNCpSRUdfRlBSRUcxMSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMTIpLCAgICAiNCpSRUdfRlBSRUcxMiIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMTMpLCAgICAiNCpSRUdfRlBSRUcxMyIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqKFJFR19GUFJFRzArMTQpLCAgICAiNCpSRUdfRlBSRUcxNCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICB7IDQqUkVHX0ZQUkVHMTUsICAgICAgICAiNCpSRUdfRlBSRUcxNSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSNpZmRlZiBSRUdfWERSRUcwCi0gICAgICAgeyA0KlJFR19YRFJFRzAsICAgICAgICAgIjQqUkVHX1hEUkVHMCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfWERSRUcwKzIpLCAgICAgIjQqUkVHX1hEUkVHMiIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfWERSRUcwKzQpLCAgICAgIjQqUkVHX1hEUkVHNCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfWERSRUcwKzYpLCAgICAgIjQqUkVHX1hEUkVHNiIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfWERSRUcwKzgpLCAgICAgIjQqUkVHX1hEUkVHOCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfWERSRUcwKzEwKSwgICAgIjQqUkVHX1hEUkVHMTAiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KihSRUdfWERSRUcwKzEyKSwgICAgIjQqUkVHX1hEUkVHMTIiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgeyA0KlJFR19YRFJFRzE0LCAgICAgICAgIjQqUkVHX1hEUkVHMTQiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0jZW5kaWYKLSAgICAgICB7IDQqUkVHX0ZQU0NSLCAgICAgICAgICAiNCpSRUdfRlBTQ1IiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSNlbmRpZiAvKiBTSCAqLwotI2lmZGVmIFNINjQKKyMgICBlbGlmIGRlZmluZWQoU0gpCisJeyA0KlJFR19SRUcwLCAgICAgICAgICAgIjQqUkVHX1JFRzAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsxKSwgICAgICAgIjQqUkVHX1JFRzEiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsyKSwgICAgICAgIjQqUkVHX1JFRzIiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCszKSwgICAgICAgIjQqUkVHX1JFRzMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCs0KSwgICAgICAgIjQqUkVHX1JFRzQiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCs1KSwgICAgICAgIjQqUkVHX1JFRzUiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCs2KSwgICAgICAgIjQqUkVHX1JFRzYiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCs3KSwgICAgICAgIjQqUkVHX1JFRzciICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCs4KSwgICAgICAgIjQqUkVHX1JFRzgiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCs5KSwgICAgICAgIjQqUkVHX1JFRzkiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsxMCksICAgICAgIjQqUkVHX1JFRzEwIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsxMSksICAgICAgIjQqUkVHX1JFRzExIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsxMiksICAgICAgIjQqUkVHX1JFRzEyIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsxMyksICAgICAgIjQqUkVHX1JFRzEzIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfUkVHMCsxNCksICAgICAgIjQqUkVHX1JFRzE0IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19SRUcxNSwgICAgICAgICAgIjQqUkVHX1JFRzE1IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19QQywgICAgICAgICAgICAgIjQqUkVHX1BDIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19QUiwgICAgICAgICAgICAgIjQqUkVHX1BSIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19TUiwgICAgICAgICAgICAgIjQqUkVHX1NSIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19HQlIsICAgICAgICAgICAgIjQqUkVHX0dCUiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19NQUNILCAgICAgICAgICAgIjQqUkVHX01BQ0giICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19NQUNMLCAgICAgICAgICAgIjQqUkVHX01BQ0wiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19TWVNDQUxMLCAgICAgICAgIjQqUkVHX1NZU0NBTEwiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19GUFVMLCAgICAgICAgICAgIjQqUkVHX0ZQVUwiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19GUFJFRzAsICAgICAgICAgIjQqUkVHX0ZQUkVHMCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzEpLCAgICAgIjQqUkVHX0ZQUkVHMSIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzIpLCAgICAgIjQqUkVHX0ZQUkVHMiIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzMpLCAgICAgIjQqUkVHX0ZQUkVHMyIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzQpLCAgICAgIjQqUkVHX0ZQUkVHNCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzUpLCAgICAgIjQqUkVHX0ZQUkVHNSIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzYpLCAgICAgIjQqUkVHX0ZQUkVHNiIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzcpLCAgICAgIjQqUkVHX0ZQUkVHNyIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzgpLCAgICAgIjQqUkVHX0ZQUkVHOCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzkpLCAgICAgIjQqUkVHX0ZQUkVHOSIgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzEwKSwgICAgIjQqUkVHX0ZQUkVHMTAiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzExKSwgICAgIjQqUkVHX0ZQUkVHMTEiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzEyKSwgICAgIjQqUkVHX0ZQUkVHMTIiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzEzKSwgICAgIjQqUkVHX0ZQUkVHMTMiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KihSRUdfRlBSRUcwKzE0KSwgICAgIjQqUkVHX0ZQUkVHMTQiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA0KlJFR19GUFJFRzE1LCAgICAgICAgIjQqUkVHX0ZQUkVHMTUiICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisjICAgIGlmZGVmIFJFR19YRFJFRzAKKwl7IDQqUkVHX1hEUkVHMCwgICAgICAgICAiNCpSRUdfWERSRUcwIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqKFJFR19YRFJFRzArMiksICAgICAiNCpSRUdfWERSRUcyIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqKFJFR19YRFJFRzArNCksICAgICAiNCpSRUdfWERSRUc0IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqKFJFR19YRFJFRzArNiksICAgICAiNCpSRUdfWERSRUc2IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqKFJFR19YRFJFRzArOCksICAgICAiNCpSRUdfWERSRUc4IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqKFJFR19YRFJFRzArMTApLCAgICAiNCpSRUdfWERSRUcxMCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqKFJFR19YRFJFRzArMTIpLCAgICAiNCpSRUdfWERSRUcxMiIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKwl7IDQqUkVHX1hEUkVHMTQsICAgICAgICAiNCpSRUdfWERSRUcxNCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyMgICAgZW5kaWYKKwl7IDQqUkVHX0ZQU0NSLCAgICAgICAgICAiNCpSRUdfRlBTQ1IiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyMgICBlbGlmIGRlZmluZWQoU0g2NCkKIAl7IDAsCQkgICAgICAgICJQQyhMKSIJCQkJICAgICAgICB9LAogCXsgNCwJICAgICAgICAgICAgICAgICJQQyhVKSIJCQkJICAgICAgICB9LAogCXsgOCwgCSAgICAgICAgICAgICAgICAiU1IoTCkiCSAgCSAgICAgICAgIAkJfSwKQEAgLTI4NjAsMTIgKzI5MTMsMTEgQEAKIAl7IDU4MCwgICAgICAgICAgICAgICAgICAiVFI2KFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKIAl7IDU4NCwgICAgICAgICAgICAgICAgICAiVFI3KEwpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKIAl7IDU4OCwgICAgICAgICAgICAgICAgICAiVFI3KFUpIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgLyogVGhpcyBlbnRyeSBpcyBpbiBjYXNlIHB0X3JlZ3MgY29udGFpbnMgZHJlZ3MgKGRlcGVuZHMgb24KLSAgICAgICAgICAgdGhlIGtlcm5lbCBidWlsZCBvcHRpb25zKS4gKi8KKwkvKiBUaGlzIGVudHJ5IGlzIGluIGNhc2UgcHRfcmVncyBjb250YWlucyBkcmVncyAoZGVwZW5kcyBvbgorCSAgIHRoZSBrZXJuZWwgYnVpbGQgb3B0aW9ucykuICovCiAJeyB1b2ZmKHJlZ3MpLAkgICAgICAgICJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgcmVncykiCSAgICAgICAgfSwKIAl7IHVvZmYoZnB1KSwJICAgICAgICAib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIGZwdSkiCSAgICAgICAgfSwKLSNlbmRpZgotI2lmZGVmIEFSTQorIyAgIGVsaWYgZGVmaW5lZChBUk0pCiAJeyB1b2ZmKHJlZ3MuQVJNX3IwKSwJInIwIgkJCQkJfSwKIAl7IHVvZmYocmVncy5BUk1fcjEpLAkicjEiCQkJCQl9LAogCXsgdW9mZihyZWdzLkFSTV9yMiksCSJyMiIJCQkJCX0sCkBAIC0yODgzLDUwICsyOTM1LDMxNCBAQAogCXsgdW9mZihyZWdzLkFSTV9sciksCSJsciIJCQkJCX0sCiAJeyB1b2ZmKHJlZ3MuQVJNX3BjKSwJInBjIgkJCQkJfSwKIAl7IHVvZmYocmVncy5BUk1fY3BzciksCSJjcHNyIgkJCQkJfSwKLSNlbmRpZgorIyAgIGVsaWYgZGVmaW5lZChBVlIzMikKKwl7IHVvZmYocmVncy5zciksCSJzciIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucGMpLAkicGMiCQkJCQl9LAorCXsgdW9mZihyZWdzLmxyKSwJImxyIgkJCQkJfSwKKwl7IHVvZmYocmVncy5zcCksCSJzcCIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjEyKSwJInIxMiIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjExKSwJInIxMSIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjEwKSwJInIxMCIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjkpLAkicjkiCQkJCQl9LAorCXsgdW9mZihyZWdzLnI4KSwJInI4IgkJCQkJfSwKKwl7IHVvZmYocmVncy5yNyksCSJyNyIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjYpLAkicjYiCQkJCQl9LAorCXsgdW9mZihyZWdzLnI1KSwJInI1IgkJCQkJfSwKKwl7IHVvZmYocmVncy5yNCksCSJyNCIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjMpLAkicjMiCQkJCQl9LAorCXsgdW9mZihyZWdzLnIyKSwJInIyIgkJCQkJfSwKKwl7IHVvZmYocmVncy5yMSksCSJyMSIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MucjApLAkicjAiCQkJCQl9LAorCXsgdW9mZihyZWdzLnIxMl9vcmlnKSwJIm9yaWdfcjEyIgkJCQl9LAorIyAgIGVsaWYgZGVmaW5lZChNSVBTKQorCXsgMCwJCQkicjAiCQkJCQl9LAorCXsgMSwJCQkicjEiCQkJCQl9LAorCXsgMiwJCQkicjIiCQkJCQl9LAorCXsgMywJCQkicjMiCQkJCQl9LAorCXsgNCwJCQkicjQiCQkJCQl9LAorCXsgNSwJCQkicjUiCQkJCQl9LAorCXsgNiwJCQkicjYiCQkJCQl9LAorCXsgNywJCQkicjciCQkJCQl9LAorCXsgOCwJCQkicjgiCQkJCQl9LAorCXsgOSwJCQkicjkiCQkJCQl9LAorCXsgMTAsCQkJInIxMCIJCQkJCX0sCisJeyAxMSwJCQkicjExIgkJCQkJfSwKKwl7IDEyLAkJCSJyMTIiCQkJCQl9LAorCXsgMTMsCQkJInIxMyIJCQkJCX0sCisJeyAxNCwJCQkicjE0IgkJCQkJfSwKKwl7IDE1LAkJCSJyMTUiCQkJCQl9LAorCXsgMTYsCQkJInIxNiIJCQkJCX0sCisJeyAxNywJCQkicjE3IgkJCQkJfSwKKwl7IDE4LAkJCSJyMTgiCQkJCQl9LAorCXsgMTksCQkJInIxOSIJCQkJCX0sCisJeyAyMCwJCQkicjIwIgkJCQkJfSwKKwl7IDIxLAkJCSJyMjEiCQkJCQl9LAorCXsgMjIsCQkJInIyMiIJCQkJCX0sCisJeyAyMywJCQkicjIzIgkJCQkJfSwKKwl7IDI0LAkJCSJyMjQiCQkJCQl9LAorCXsgMjUsCQkJInIyNSIJCQkJCX0sCisJeyAyNiwJCQkicjI2IgkJCQkJfSwKKwl7IDI3LAkJCSJyMjciCQkJCQl9LAorCXsgMjgsCQkJInIyOCIJCQkJCX0sCisJeyAyOSwJCQkicjI5IgkJCQkJfSwKKwl7IDMwLAkJCSJyMzAiCQkJCQl9LAorCXsgMzEsCQkJInIzMSIJCQkJCX0sCisJeyAzMiwJCQkiZjAiCQkJCQl9LAorCXsgMzMsCQkJImYxIgkJCQkJfSwKKwl7IDM0LAkJCSJmMiIJCQkJCX0sCisJeyAzNSwJCQkiZjMiCQkJCQl9LAorCXsgMzYsCQkJImY0IgkJCQkJfSwKKwl7IDM3LAkJCSJmNSIJCQkJCX0sCisJeyAzOCwJCQkiZjYiCQkJCQl9LAorCXsgMzksCQkJImY3IgkJCQkJfSwKKwl7IDQwLAkJCSJmOCIJCQkJCX0sCisJeyA0MSwJCQkiZjkiCQkJCQl9LAorCXsgNDIsCQkJImYxMCIJCQkJCX0sCisJeyA0MywJCQkiZjExIgkJCQkJfSwKKwl7IDQ0LAkJCSJmMTIiCQkJCQl9LAorCXsgNDUsCQkJImYxMyIJCQkJCX0sCisJeyA0NiwJCQkiZjE0IgkJCQkJfSwKKwl7IDQ3LAkJCSJmMTUiCQkJCQl9LAorCXsgNDgsCQkJImYxNiIJCQkJCX0sCisJeyA0OSwJCQkiZjE3IgkJCQkJfSwKKwl7IDUwLAkJCSJmMTgiCQkJCQl9LAorCXsgNTEsCQkJImYxOSIJCQkJCX0sCisJeyA1MiwJCQkiZjIwIgkJCQkJfSwKKwl7IDUzLAkJCSJmMjEiCQkJCQl9LAorCXsgNTQsCQkJImYyMiIJCQkJCX0sCisJeyA1NSwJCQkiZjIzIgkJCQkJfSwKKwl7IDU2LAkJCSJmMjQiCQkJCQl9LAorCXsgNTcsCQkJImYyNSIJCQkJCX0sCisJeyA1OCwJCQkiZjI2IgkJCQkJfSwKKwl7IDU5LAkJCSJmMjciCQkJCQl9LAorCXsgNjAsCQkJImYyOCIJCQkJCX0sCisJeyA2MSwJCQkiZjI5IgkJCQkJfSwKKwl7IDYyLAkJCSJmMzAiCQkJCQl9LAorCXsgNjMsCQkJImYzMSIJCQkJCX0sCisJeyA2NCwJCQkicGMiCQkJCQl9LAorCXsgNjUsCQkJImNhdXNlIgkJCQkJfSwKKwl7IDY2LAkJCSJiYWR2YWRkciIJCQkJfSwKKwl7IDY3LAkJCSJtbWhpIgkJCQkJfSwKKwl7IDY4LAkJCSJtbWxvIgkJCQkJfSwKKwl7IDY5LAkJCSJmcGNzciIJCQkJCX0sCisJeyA3MCwJCQkiZnBlaXIiCQkJCQl9LAorIyAgIGVsaWYgZGVmaW5lZChUSUxFKQorCXsgUFRSRUdTX09GRlNFVF9SRUcoMCksICAicjAiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMSksICAicjEiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMiksICAicjIiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMyksICAicjMiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNCksICAicjQiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNSksICAicjUiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNiksICAicjYiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNyksICAicjciICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoOCksICAicjgiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoOSksICAicjkiICB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTApLCAicjEwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTEpLCAicjExIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTIpLCAicjEyIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTMpLCAicjEzIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTQpLCAicjE0IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTUpLCAicjE1IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTYpLCAicjE2IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTcpLCAicjE3IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTgpLCAicjE4IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMTkpLCAicjE5IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjApLCAicjIwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjEpLCAicjIxIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjIpLCAicjIyIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjMpLCAicjIzIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjQpLCAicjI0IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjUpLCAicjI1IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjYpLCAicjI2IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjcpLCAicjI3IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjgpLCAicjI4IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMjkpLCAicjI5IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzApLCAicjMwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzEpLCAicjMxIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzIpLCAicjMyIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzMpLCAicjMzIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzQpLCAicjM0IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzUpLCAicjM1IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzYpLCAicjM2IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzcpLCAicjM3IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzgpLCAicjM4IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoMzkpLCAicjM5IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDApLCAicjQwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDEpLCAicjQxIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDIpLCAicjQyIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDMpLCAicjQzIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDQpLCAicjQ0IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDUpLCAicjQ1IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDYpLCAicjQ2IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDcpLCAicjQ3IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDgpLCAicjQ4IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNDkpLCAicjQ5IiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNTApLCAicjUwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNTEpLCAicjUxIiB9LAorCXsgUFRSRUdTX09GRlNFVF9SRUcoNTIpLCAicjUyIiB9LAorCXsgUFRSRUdTX09GRlNFVF9UUCwgInRwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9TUCwgInNwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9MUiwgImxyIiB9LAorCXsgUFRSRUdTX09GRlNFVF9QQywgInBjIiB9LAorCXsgUFRSRUdTX09GRlNFVF9FWDEsICJleDEiIH0sCisJeyBQVFJFR1NfT0ZGU0VUX0ZBVUxUTlVNLCAiZmF1bHRudW0iIH0sCisJeyBQVFJFR1NfT0ZGU0VUX09SSUdfUjAsICJvcmlnX3IwIiB9LAorCXsgUFRSRUdTX09GRlNFVF9GTEFHUywgImZsYWdzIiB9LAorIyAgIGVuZGlmCisjICAgaWZkZWYgQ1JJU1YxMAorCXsgNCpQVF9GUkFNRVRZUEUsICI0KlBUX0ZSQU1FVFlQRSIgfSwKKwl7IDQqUFRfT1JJR19SMTAsICI0KlBUX09SSUdfUjEwIiB9LAorCXsgNCpQVF9SMTMsICI0KlBUX1IxMyIgfSwKKwl7IDQqUFRfUjEyLCAiNCpQVF9SMTIiIH0sCisJeyA0KlBUX1IxMSwgIjQqUFRfUjExIiB9LAorCXsgNCpQVF9SMTAsICI0KlBUX1IxMCIgfSwKKwl7IDQqUFRfUjksICI0KlBUX1I5IiB9LAorCXsgNCpQVF9SOCwgIjQqUFRfUjgiIH0sCisJeyA0KlBUX1I3LCAiNCpQVF9SNyIgfSwKKwl7IDQqUFRfUjYsICI0KlBUX1I2IiB9LAorCXsgNCpQVF9SNSwgIjQqUFRfUjUiIH0sCisJeyA0KlBUX1I0LCAiNCpQVF9SNCIgfSwKKwl7IDQqUFRfUjMsICI0KlBUX1IzIiB9LAorCXsgNCpQVF9SMiwgIjQqUFRfUjIiIH0sCisJeyA0KlBUX1IxLCAiNCpQVF9SMSIgfSwKKwl7IDQqUFRfUjAsICI0KlBUX1IwIiB9LAorCXsgNCpQVF9NT0YsICI0KlBUX01PRiIgfSwKKwl7IDQqUFRfRENDUiwgIjQqUFRfRENDUiIgfSwKKwl7IDQqUFRfU1JQLCAiNCpQVF9TUlAiIH0sCisJeyA0KlBUX0lSUCwgIjQqUFRfSVJQIiB9LAorCXsgNCpQVF9DU1JJTlNUUiwgIjQqUFRfQ1NSSU5TVFIiIH0sCisJeyA0KlBUX0NTUkFERFIsICI0KlBUX0NTUkFERFIiIH0sCisJeyA0KlBUX0NTUkRBVEEsICI0KlBUX0NTUkRBVEEiIH0sCisJeyA0KlBUX1VTUCwgIjQqUFRfVVNQIiB9LAorIyAgIGVuZGlmCisjICAgaWZkZWYgQ1JJU1YzMgorCXsgNCpQVF9PUklHX1IxMCwgIjQqUFRfT1JJR19SMTAiIH0sCisJeyA0KlBUX1IwLCAiNCpQVF9SMCIgfSwKKwl7IDQqUFRfUjEsICI0KlBUX1IxIiB9LAorCXsgNCpQVF9SMiwgIjQqUFRfUjIiIH0sCisJeyA0KlBUX1IzLCAiNCpQVF9SMyIgfSwKKwl7IDQqUFRfUjQsICI0KlBUX1I0IiB9LAorCXsgNCpQVF9SNSwgIjQqUFRfUjUiIH0sCisJeyA0KlBUX1I2LCAiNCpQVF9SNiIgfSwKKwl7IDQqUFRfUjcsICI0KlBUX1I3IiB9LAorCXsgNCpQVF9SOCwgIjQqUFRfUjgiIH0sCisJeyA0KlBUX1I5LCAiNCpQVF9SOSIgfSwKKwl7IDQqUFRfUjEwLCAiNCpQVF9SMTAiIH0sCisJeyA0KlBUX1IxMSwgIjQqUFRfUjExIiB9LAorCXsgNCpQVF9SMTIsICI0KlBUX1IxMiIgfSwKKwl7IDQqUFRfUjEzLCAiNCpQVF9SMTMiIH0sCisJeyA0KlBUX0FDUiwgIjQqUFRfQUNSIiB9LAorCXsgNCpQVF9TUlMsICI0KlBUX1NSUyIgfSwKKwl7IDQqUFRfTU9GLCAiNCpQVF9NT0YiIH0sCisJeyA0KlBUX1NQQywgIjQqUFRfU1BDIiB9LAorCXsgNCpQVF9DQ1MsICI0KlBUX0NDUyIgfSwKKwl7IDQqUFRfU1JQLCAiNCpQVF9TUlAiIH0sCisJeyA0KlBUX0VSUCwgIjQqUFRfRVJQIiB9LAorCXsgNCpQVF9FWFMsICI0KlBUX0VYUyIgfSwKKwl7IDQqUFRfRURBLCAiNCpQVF9FREEiIH0sCisJeyA0KlBUX1VTUCwgIjQqUFRfVVNQIiB9LAorCXsgNCpQVF9QUEMsICI0KlBUX1BQQyIgfSwKKwl7IDQqUFRfQlBfQ1RSTCwgIjQqUFRfQlBfQ1RSTCIgfSwKKwl7IDQqUFRfQlArNCwgIjQqUFRfQlArNCIgfSwKKwl7IDQqUFRfQlArOCwgIjQqUFRfQlArOCIgfSwKKwl7IDQqUFRfQlArMTIsICI0KlBUX0JQKzEyIiB9LAorCXsgNCpQVF9CUCsxNiwgIjQqUFRfQlArMTYiIH0sCisJeyA0KlBUX0JQKzIwLCAiNCpQVF9CUCsyMCIgfSwKKwl7IDQqUFRfQlArMjQsICI0KlBUX0JQKzI0IiB9LAorCXsgNCpQVF9CUCsyOCwgIjQqUFRfQlArMjgiIH0sCisJeyA0KlBUX0JQKzMyLCAiNCpQVF9CUCszMiIgfSwKKwl7IDQqUFRfQlArMzYsICI0KlBUX0JQKzM2IiB9LAorCXsgNCpQVF9CUCs0MCwgIjQqUFRfQlArNDAiIH0sCisJeyA0KlBUX0JQKzQ0LCAiNCpQVF9CUCs0NCIgfSwKKwl7IDQqUFRfQlArNDgsICI0KlBUX0JQKzQ4IiB9LAorCXsgNCpQVF9CUCs1MiwgIjQqUFRfQlArNTIiIH0sCisJeyA0KlBUX0JQKzU2LCAiNCpQVF9CUCs1NiIgfSwKKyMgICBlbmRpZgorIyAgIGlmZGVmIE1JQ1JPQkxBWkUKKwl7IFBUX0dQUigwKSwJCSJyMCIJCQkJCX0sCisJeyBQVF9HUFIoMSksCQkicjEiCQkJCQl9LAorCXsgUFRfR1BSKDIpLAkJInIyIgkJCQkJfSwKKwl7IFBUX0dQUigzKSwJCSJyMyIJCQkJCX0sCisJeyBQVF9HUFIoNCksCQkicjQiCQkJCQl9LAorCXsgUFRfR1BSKDUpLAkJInI1IgkJCQkJfSwKKwl7IFBUX0dQUig2KSwJCSJyNiIJCQkJCX0sCisJeyBQVF9HUFIoNyksCQkicjciCQkJCQl9LAorCXsgUFRfR1BSKDgpLAkJInI4IgkJCQkJfSwKKwl7IFBUX0dQUig5KSwJCSJyOSIJCQkJCX0sCisJeyBQVF9HUFIoMTApLAkJInIxMCIJCQkJCX0sCisJeyBQVF9HUFIoMTEpLAkJInIxMSIJCQkJCX0sCisJeyBQVF9HUFIoMTIpLAkJInIxMiIJCQkJCX0sCisJeyBQVF9HUFIoMTMpLAkJInIxMyIJCQkJCX0sCisJeyBQVF9HUFIoMTQpLAkJInIxNCIJCQkJCX0sCisJeyBQVF9HUFIoMTUpLAkJInIxNSIJCQkJCX0sCisJeyBQVF9HUFIoMTYpLAkJInIxNiIJCQkJCX0sCisJeyBQVF9HUFIoMTcpLAkJInIxNyIJCQkJCX0sCisJeyBQVF9HUFIoMTgpLAkJInIxOCIJCQkJCX0sCisJeyBQVF9HUFIoMTkpLAkJInIxOSIJCQkJCX0sCisJeyBQVF9HUFIoMjApLAkJInIyMCIJCQkJCX0sCisJeyBQVF9HUFIoMjEpLAkJInIyMSIJCQkJCX0sCisJeyBQVF9HUFIoMjIpLAkJInIyMiIJCQkJCX0sCisJeyBQVF9HUFIoMjMpLAkJInIyMyIJCQkJCX0sCisJeyBQVF9HUFIoMjQpLAkJInIyNCIJCQkJCX0sCisJeyBQVF9HUFIoMjUpLAkJInIyNSIJCQkJCX0sCisJeyBQVF9HUFIoMjYpLAkJInIyNiIJCQkJCX0sCisJeyBQVF9HUFIoMjcpLAkJInIyNyIJCQkJCX0sCisJeyBQVF9HUFIoMjgpLAkJInIyOCIJCQkJCX0sCisJeyBQVF9HUFIoMjkpLAkJInIyOSIJCQkJCX0sCisJeyBQVF9HUFIoMzApLAkJInIzMCIJCQkJCX0sCisJeyBQVF9HUFIoMzEpLAkJInIzMSIJCQkJCX0sCisJeyBQVF9QQywgCQkicnBjIiwJCQkJCX0sCisJeyBQVF9NU1IsIAkJInJtc3IiLAkJCQkJfSwKKwl7IFBUX0VBUiwJCSJyZWFyIiwJCQkJCX0sCisJeyBQVF9FU1IsCQkicmVzciIsCQkJCQl9LAorCXsgUFRfRlNSLAkJInJmc3IiLAkJCQkJfSwKKwl7IFBUX0tFUk5FTF9NT0RFLCAJImtlcm5lbF9tb2RlIiwJCQkJfSwKKyMgICBlbmRpZgogCi0jaWYgIWRlZmluZWQoUzM5MCkgJiYgIWRlZmluZWQoUzM5MFgpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFNQQVJDNjQpCisjICAgaWYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKEhQUEEpICYmICFkZWZpbmVkKFBPV0VSUEMpIFwKKwkJJiYgIWRlZmluZWQoQUxQSEEpICYmICFkZWZpbmVkKElBNjQpIFwKKwkJJiYgIWRlZmluZWQoQ1JJU1YxMCkgJiYgIWRlZmluZWQoQ1JJU1YzMikgJiYgIWRlZmluZWQoTUlDUk9CTEFaRSkKKyMgICAgaWYgIWRlZmluZWQoUzM5MCkgJiYgIWRlZmluZWQoUzM5MFgpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKEFWUjMyKSAmJiAhZGVmaW5lZChCRklOKSAmJiAhZGVmaW5lZChUSUxFKQogCXsgdW9mZih1X2ZwdmFsaWQpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfZnB2YWxpZCkiCX0sCi0jZW5kaWYKLSNpZiAgZGVmaW5lZChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgZGVmaW5lZChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKIAl7IHVvZmYoaTM4NyksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIGkzODcpIgkJfSwKLSNlbHNlIC8qICFJMzg2ICovCi0jaWZkZWYgTTY4SworIyAgICBlbmRpZgorIyAgICBpZiBkZWZpbmVkKE02OEspCiAJeyB1b2ZmKG02OGtmcCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIG02OGtmcCkiCQl9LAotI2VuZGlmIC8qIE02OEsgKi8KLSNlbmRpZiAvKiAhSTM4NiAqLworIyAgICBlbmRpZgogCXsgdW9mZih1X3RzaXplKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3RzaXplKSIJfSwKIAl7IHVvZmYodV9kc2l6ZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9kc2l6ZSkiCX0sCiAJeyB1b2ZmKHVfc3NpemUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfc3NpemUpIgl9LAotI2lmICFkZWZpbmVkKFNQQVJDNjQpCisjICAgIGlmICFkZWZpbmVkKFNQQVJDNjQpCiAJeyB1b2ZmKHN0YXJ0X2NvZGUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHN0YXJ0X2NvZGUpIgl9LAotI2VuZGlmCi0jaWZkZWYgU0g2NAorIyAgICBlbmRpZgorIyAgICBpZiBkZWZpbmVkKEFWUjMyKSB8fCBkZWZpbmVkKFNINjQpCiAJeyB1b2ZmKHN0YXJ0X2RhdGEpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHN0YXJ0X2RhdGEpIgl9LAotI2VuZGlmCi0jaWYgIWRlZmluZWQoU1BBUkM2NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgIWRlZmluZWQoU1BBUkM2NCkKIAl7IHVvZmYoc3RhcnRfc3RhY2spLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHN0YXJ0X3N0YWNrKSIJfSwKLSNlbmRpZgorIyAgICBlbmRpZgogCXsgdW9mZihzaWduYWwpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCBzaWduYWwpIgkJfSwKLSNpZiAhZGVmaW5lZChTMzkwKSAmJiAhZGVmaW5lZChTMzkwWCkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoU0gpICYmICFkZWZpbmVkKFNINjQpICYmICFkZWZpbmVkKFNQQVJDNjQpCisjICAgIGlmICFkZWZpbmVkKEFWUjMyKSAmJiAhZGVmaW5lZChTMzkwKSAmJiAhZGVmaW5lZChTMzkwWCkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoU0gpICYmICFkZWZpbmVkKFNINjQpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKFRJTEUpCiAJeyB1b2ZmKHJlc2VydmVkKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCByZXNlcnZlZCkiCX0sCi0jZW5kaWYKLSNpZiAhZGVmaW5lZChTUEFSQzY0KQorIyAgICBlbmRpZgorIyAgICBpZiAhZGVmaW5lZChTUEFSQzY0KQogCXsgdW9mZih1X2FyMCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfYXIwKSIJCX0sCi0jZW5kaWYKLSNpZiAhZGVmaW5lZChBUk0pICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFMzOTApICYmICFkZWZpbmVkKFMzOTBYKSAmJiAhZGVmaW5lZChTUEFSQzY0KQorIyAgICBlbmRpZgorIyAgICBpZiAhZGVmaW5lZChBUk0pICYmICFkZWZpbmVkKEFWUjMyKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChTMzkwKSAmJiAhZGVmaW5lZChTMzkwWCkgJiYgIWRlZmluZWQoU1BBUkM2NCkgJiYgIWRlZmluZWQoQkZJTikgJiYgIWRlZmluZWQoVElMRSkKIAl7IHVvZmYodV9mcHN0YXRlKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2Zwc3RhdGUpIgl9LAotI2VuZGlmCisjICAgIGVuZGlmCiAJeyB1b2ZmKG1hZ2ljKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgbWFnaWMpIgkJfSwKIAl7IHVvZmYodV9jb21tKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9jb21tKSIJCX0sCi0jaWYgZGVmaW5lZChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKKyMgICAgaWYgZGVmaW5lZChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKIAl7IHVvZmYodV9kZWJ1Z3JlZyksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9kZWJ1Z3JlZykiCX0sCi0jZW5kaWYgLyogSTM4NiAqLwotI2VuZGlmIC8qICFJQTY0ICovCi0jZW5kaWYgLyogIUFMUEhBICovCi0jZW5kaWYgLyogIVBPV0VSUEMvIVNQQVJDICovCi0jZW5kaWYgLyogTElOVVggKi8KLSNpZmRlZiBTVU5PUzQKKyMgICAgZW5kaWYKKyMgICBlbmRpZiAvKiAhZGVmaW5lZChtYW55IGFyY2hlcykgKi8KKworIyAgZW5kaWYgLyogTElOVVggKi8KKworIyAgaWZkZWYgU1VOT1M0CiAJeyB1b2ZmKHVfcGNiKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9wY2IpIgkJfSwKIAl7IHVvZmYodV9wcm9jcCksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9wcm9jcCkiCX0sCiAJeyB1b2ZmKHVfYXIwKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9hcjApIgkJfSwKQEAgLTI5NzIsMzIgKzMyODgsMzEgQEAKIAl7IHVvZmYodV9leGRhdGEuVXhfQSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9leGRhdGEuVXhfQSkiCX0sCiAJeyB1b2ZmKHVfZXhkYXRhLnV4X3NoZWxsWzBdKSwib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfZXhkYXRhLnV4X3NoZWxsWzBdKSJ9LAogCXsgdW9mZih1X2xvZmF1bHQpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfbG9mYXVsdCkiCX0sCi0jZW5kaWYgLyogU1VOT1M0ICovCi0jaWZuZGVmIEhQUEEKKyMgIGVuZGlmIC8qIFNVTk9TNCAqLworIyAgaWZuZGVmIEhQUEEKIAl7IHNpemVvZihzdHJ1Y3QgdXNlciksCSJzaXplb2Yoc3RydWN0IHVzZXIpIgkJCX0sCi0jZW5kaWYKKyMgIGVuZGlmCiAJeyAwLAkJCU5VTEwJCQkJCX0sCiB9OwotI2VuZGlmCisjIGVuZGlmIC8qICFGUkVFQlNEICovCiAKIGludAotc3lzX3B0cmFjZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfcHRyYWNlKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAljb25zdCBzdHJ1Y3QgeGxhdCAqeDsKIAlsb25nIGFkZHI7CiAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHh2YWwocHRyYWNlX2NtZHMsIHRjcC0+dV9hcmdbMF0sCi0jaWZuZGVmIEZSRUVCU0QKKyMgaWZuZGVmIEZSRUVCU0QKIAkJCSAgIlBUUkFDRV8/Pz8iCi0jZWxzZQorIyBlbHNlCiAJCQkgICJQVF8/Pz8iCi0jZW5kaWYKKyMgZW5kaWYKIAkJCSk7CiAJCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKIAkJYWRkciA9IHRjcC0+dV9hcmdbMl07Ci0jaWZuZGVmIEZSRUVCU0QKKyMgaWZuZGVmIEZSRUVCU0QKIAkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gUFRSQUNFX1BFRUtVU0VSCiAJCQl8fCB0Y3AtPnVfYXJnWzBdID09IFBUUkFDRV9QT0tFVVNFUikgewogCQkJZm9yICh4ID0gc3RydWN0X3VzZXJfb2Zmc2V0czsgeC0+c3RyOyB4KyspIHsKQEAgLTMwMTQsMjAgKzMzMjksNDYgQEAKIAkJCQl0cHJpbnRmKCIlcywgIiwgeC0+c3RyKTsKIAkJfQogCQllbHNlCi0jZW5kaWYKKyMgZW5kaWYKIAkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMl0pOwotI2lmZGVmIExJTlVYCisjIGlmZGVmIExJTlVYCiAJCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgeworIyAgaWZuZGVmIElBNjQKIAkJY2FzZSBQVFJBQ0VfUEVFS0RBVEE6CiAJCWNhc2UgUFRSQUNFX1BFRUtURVhUOgogCQljYXNlIFBUUkFDRV9QRUVLVVNFUjoKIAkJCWJyZWFrOworIyAgZW5kaWYKIAkJY2FzZSBQVFJBQ0VfQ09OVDoKIAkJY2FzZSBQVFJBQ0VfU0lOR0xFU1RFUDoKIAkJY2FzZSBQVFJBQ0VfU1lTQ0FMTDoKIAkJY2FzZSBQVFJBQ0VfREVUQUNIOgogCQkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1szXSk7CiAJCQlicmVhazsKKyMgIGlmZGVmIFBUUkFDRV9TRVRPUFRJT05TCisJCWNhc2UgUFRSQUNFX1NFVE9QVElPTlM6CisJCQlwcmludGZsYWdzKHB0cmFjZV9zZXRvcHRpb25zX2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiUFRSQUNFX09fPz8/Iik7CisJCQlicmVhazsKKyMgIGVuZGlmCisjICBpZmRlZiBQVFJBQ0VfU0VUU0lHSU5GTworCQljYXNlIFBUUkFDRV9TRVRTSUdJTkZPOiB7CisJCQlzaWdpbmZvX3Qgc2k7CisJCQlpZiAoIXRjcC0+dV9hcmdbM10pCisJCQkJdHByaW50ZigiTlVMTCIpOworCQkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKKwkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZzaSkgPCAwKQorCQkJCXRwcmludGYoIns/Pz99Iik7CisJCQllbHNlCisJCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSh0Y3ApKTsKKwkJCWJyZWFrOworCQl9CisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX0dFVFNJR0lORk8KKwkJY2FzZSBQVFJBQ0VfR0VUU0lHSU5GTzoKKwkJCS8qIERvbid0IHByaW50IGFueXRoaW5nLCBkbyBpdCBhdCBzeXNjYWxsIHJldHVybi4gKi8KKwkJCWJyZWFrOworIyAgZW5kaWYKIAkJZGVmYXVsdDoKIAkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKIAkJCWJyZWFrOwpAQCAtMzAzNywxMiArMzM3OCwzMCBAQAogCQljYXNlIFBUUkFDRV9QRUVLREFUQToKIAkJY2FzZSBQVFJBQ0VfUEVFS1RFWFQ6CiAJCWNhc2UgUFRSQUNFX1BFRUtVU0VSOgorIyAgaWZkZWYgSUE2NAorCQkJcmV0dXJuIFJWQUxfSEVYOworIyAgZWxzZQogCQkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzNdLCAiJSNseCIpOwogCQkJYnJlYWs7CisjICBlbmRpZgorIyAgaWZkZWYgUFRSQUNFX0dFVFNJR0lORk8KKwkJY2FzZSBQVFJBQ0VfR0VUU0lHSU5GTzogeworCQkJc2lnaW5mb190IHNpOworCQkJaWYgKCF0Y3AtPnVfYXJnWzNdKQorCQkJCXRwcmludGYoIk5VTEwiKTsKKwkJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkpCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmc2kpIDwgMCkKKwkJCQl0cHJpbnRmKCJ7Pz8/fSIpOworCQkJZWxzZQorCQkJCXByaW50c2lnaW5mbygmc2ksIHZlcmJvc2UodGNwKSk7CisJCQlicmVhazsKKwkJfQorIyAgZW5kaWYKIAkJfQogCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAorIyBlbmRpZiAvKiBMSU5VWCAqLworIyBpZmRlZiBTVU5PUzQKIAkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gUFRSQUNFX1dSSVRFREFUQSB8fAogCQkJdGNwLT51X2FyZ1swXSA9PSBQVFJBQ0VfV1JJVEVURVhUKSB7CiAJCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbM10pOwpAQCAtMzA1OCw4NSArMzQxNywyMDQgQEAKIAkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1s0XSwgdGNwLT51X2FyZ1szXSk7CiAJCX0KIAl9Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0jaWZkZWYgRlJFRUJTRAorIyBlbmRpZiAvKiBTVU5PUzQgKi8KKyMgaWZkZWYgRlJFRUJTRAogCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzNdKTsKIAl9Ci0jZW5kaWYgLyogRlJFRUJTRCAqLworIyBlbmRpZiAvKiBGUkVFQlNEICovCiAJcmV0dXJuIDA7CiB9CiAKICNlbmRpZiAvKiAhU1ZSNCAqLwogCiAjaWZkZWYgTElOVVgKKyMgaWZuZGVmIEZVVEVYX0NNUF9SRVFVRVVFCisjICBkZWZpbmUgRlVURVhfQ01QX1JFUVVFVUUgNAorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfV0FLRV9PUAorIyAgZGVmaW5lIEZVVEVYX1dBS0VfT1AgNQorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfTE9DS19QSQorIyAgZGVmaW5lIEZVVEVYX0xPQ0tfUEkgNgorIyAgZGVmaW5lIEZVVEVYX1VOTE9DS19QSSA3CisjICBkZWZpbmUgRlVURVhfVFJZTE9DS19QSSA4CisjIGVuZGlmCisjIGlmbmRlZiBGVVRFWF9XQUlUX0JJVFNFVAorIyAgZGVmaW5lIEZVVEVYX1dBSVRfQklUU0VUIDkKKyMgZW5kaWYKKyMgaWZuZGVmIEZVVEVYX1dBS0VfQklUU0VUCisjICBkZWZpbmUgRlVURVhfV0FLRV9CSVRTRVQgMTAKKyMgZW5kaWYKKyMgaWZuZGVmIEZVVEVYX1dBSVRfUkVRVUVVRV9QSQorIyAgZGVmaW5lIEZVVEVYX1dBSVRfUkVRVUVVRV9QSSAxMQorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfQ01QX1JFUVVFVUVfUEkKKyMgIGRlZmluZSBGVVRFWF9DTVBfUkVRVUVVRV9QSSAxMgorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfUFJJVkFURV9GTEFHCisjICBkZWZpbmUgRlVURVhfUFJJVkFURV9GTEFHIDEyOAorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfQ0xPQ0tfUkVBTFRJTUUKKyMgIGRlZmluZSBGVVRFWF9DTE9DS19SRUFMVElNRSAyNTYKKyMgZW5kaWYKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmdXRleG9wc1tdID0gewotCXsgRlVURVhfV0FJVCwJIkZVVEVYX1dBSVQiIH0sCi0JeyBGVVRFWF9XQUtFLAkiRlVURVhfV0FLRSIgfSwKLQl7IEZVVEVYX0ZELAkiRlVURVhfRkQiIH0sCi0JeyBGVVRFWF9SRVFVRVVFLCJGVVRFWF9SRVFVRVVFIiB9LAotCXsgMCwJCU5VTEwgfQorCXsgRlVURVhfV0FJVCwJCQkJCSJGVVRFWF9XQUlUIiB9LAorCXsgRlVURVhfV0FLRSwJCQkJCSJGVVRFWF9XQUtFIiB9LAorCXsgRlVURVhfRkQsCQkJCQkiRlVURVhfRkQiIH0sCisJeyBGVVRFWF9SRVFVRVVFLAkJCQkiRlVURVhfUkVRVUVVRSIgfSwKKwl7IEZVVEVYX0NNUF9SRVFVRVVFLAkJCQkiRlVURVhfQ01QX1JFUVVFVUUiIH0sCisJeyBGVVRFWF9XQUtFX09QLAkJCQkiRlVURVhfV0FLRV9PUCIgfSwKKwl7IEZVVEVYX0xPQ0tfUEksCQkJCSJGVVRFWF9MT0NLX1BJIiB9LAorCXsgRlVURVhfVU5MT0NLX1BJLAkJCQkiRlVURVhfVU5MT0NLX1BJIiB9LAorCXsgRlVURVhfVFJZTE9DS19QSSwJCQkJIkZVVEVYX1RSWUxPQ0tfUEkiIH0sCisJeyBGVVRFWF9XQUlUX0JJVFNFVCwJCQkJIkZVVEVYX1dBSVRfQklUU0VUIiB9LAorCXsgRlVURVhfV0FLRV9CSVRTRVQsCQkJCSJGVVRFWF9XQUtFX0JJVFNFVCIgfSwKKwl7IEZVVEVYX1dBSVRfUkVRVUVVRV9QSSwJCQkiRlVURVhfV0FJVF9SRVFVRVVFX1BJIiB9LAorCXsgRlVURVhfQ01QX1JFUVVFVUVfUEksCQkJCSJGVVRFWF9DTVBfUkVRVUVVRV9QSSIgfSwKKwl7IEZVVEVYX1dBSVR8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX1dBSVRfUFJJVkFURSIgfSwKKwl7IEZVVEVYX1dBS0V8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX1dBS0VfUFJJVkFURSIgfSwKKwl7IEZVVEVYX0ZEfEZVVEVYX1BSSVZBVEVfRkxBRywJCQkiRlVURVhfRkRfUFJJVkFURSIgfSwKKwl7IEZVVEVYX1JFUVVFVUV8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX1JFUVVFVUVfUFJJVkFURSIgfSwKKwl7IEZVVEVYX0NNUF9SRVFVRVVFfEZVVEVYX1BSSVZBVEVfRkxBRywJCSJGVVRFWF9DTVBfUkVRVUVVRV9QUklWQVRFIiB9LAorCXsgRlVURVhfV0FLRV9PUHxGVVRFWF9QUklWQVRFX0ZMQUcsCQkiRlVURVhfV0FLRV9PUF9QUklWQVRFIiB9LAorCXsgRlVURVhfTE9DS19QSXxGVVRFWF9QUklWQVRFX0ZMQUcsCQkiRlVURVhfTE9DS19QSV9QUklWQVRFIiB9LAorCXsgRlVURVhfVU5MT0NLX1BJfEZVVEVYX1BSSVZBVEVfRkxBRywJCSJGVVRFWF9VTkxPQ0tfUElfUFJJVkFURSIgfSwKKwl7IEZVVEVYX1RSWUxPQ0tfUEl8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX1RSWUxPQ0tfUElfUFJJVkFURSIgfSwKKwl7IEZVVEVYX1dBSVRfQklUU0VUfEZVVEVYX1BSSVZBVEVfRkxBRywJCSJGVVRFWF9XQUlUX0JJVFNFVF9QUklWQVRFIiB9LAorCXsgRlVURVhfV0FLRV9CSVRTRVR8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX1dBS0VfQklUU0VUX1BSSVZBVEUiIH0sCisJeyBGVVRFWF9XQUlUX1JFUVVFVUVfUEl8RlVURVhfUFJJVkFURV9GTEFHLAkiRlVURVhfV0FJVF9SRVFVRVVFX1BJX1BSSVZBVEUiIH0sCisJeyBGVVRFWF9DTVBfUkVRVUVVRV9QSXxGVVRFWF9QUklWQVRFX0ZMQUcsCSJGVVRFWF9DTVBfUkVRVUVVRV9QSV9QUklWQVRFIiB9LAorCXsgRlVURVhfV0FJVF9CSVRTRVR8RlVURVhfQ0xPQ0tfUkVBTFRJTUUsCSJGVVRFWF9XQUlUX0JJVFNFVHxGVVRFWF9DTE9DS19SRUFMVElNRSIgfSwKKwl7IEZVVEVYX1dBSVRfQklUU0VUfEZVVEVYX1BSSVZBVEVfRkxBR3xGVVRFWF9DTE9DS19SRUFMVElNRSwJIkZVVEVYX1dBSVRfQklUU0VUX1BSSVZBVEV8RlVURVhfQ0xPQ0tfUkVBTFRJTUUiIH0sCisJeyBGVVRFWF9XQUlUX1JFUVVFVUVfUEl8RlVURVhfQ0xPQ0tfUkVBTFRJTUUsCSJGVVRFWF9XQUlUX1JFUVVFVUVfUEl8RlVURVhfQ0xPQ0tfUkVBTFRJTUUiIH0sCisJeyBGVVRFWF9XQUlUX1JFUVVFVUVfUEl8RlVURVhfUFJJVkFURV9GTEFHfEZVVEVYX0NMT0NLX1JFQUxUSU1FLAkiRlVURVhfV0FJVF9SRVFVRVVFX1BJX1BSSVZBVEV8RlVURVhfQ0xPQ0tfUkVBTFRJTUUiIH0sCisJeyAwLAkJCQkJCU5VTEwgfQorfTsKKyMgaWZuZGVmIEZVVEVYX09QX1NFVAorIyAgZGVmaW5lIEZVVEVYX09QX1NFVAkJMAorIyAgZGVmaW5lIEZVVEVYX09QX0FERAkJMQorIyAgZGVmaW5lIEZVVEVYX09QX09SCQkyCisjICBkZWZpbmUgRlVURVhfT1BfQU5ETgkJMworIyAgZGVmaW5lIEZVVEVYX09QX1hPUgkJNAorIyAgZGVmaW5lIEZVVEVYX09QX0NNUF9FUQkwCisjICBkZWZpbmUgRlVURVhfT1BfQ01QX05FCTEKKyMgIGRlZmluZSBGVVRFWF9PUF9DTVBfTFQJMgorIyAgZGVmaW5lIEZVVEVYX09QX0NNUF9MRQkzCisjICBkZWZpbmUgRlVURVhfT1BfQ01QX0dUCTQKKyMgIGRlZmluZSBGVVRFWF9PUF9DTVBfR0UJNQorIyBlbmRpZgorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZ1dGV4d2FrZW9wc1tdID0geworCXsgRlVURVhfT1BfU0VULAkJIkZVVEVYX09QX1NFVCIgfSwKKwl7IEZVVEVYX09QX0FERCwJCSJGVVRFWF9PUF9BREQiIH0sCisJeyBGVVRFWF9PUF9PUiwJCSJGVVRFWF9PUF9PUiIgfSwKKwl7IEZVVEVYX09QX0FORE4sCSJGVVRFWF9PUF9BTkROIiB9LAorCXsgRlVURVhfT1BfWE9SLAkJIkZVVEVYX09QX1hPUiIgfSwKKwl7IDAsCQkJTlVMTCB9Cit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZ1dGV4d2FrZWNtcHNbXSA9IHsKKwl7IEZVVEVYX09QX0NNUF9FUSwJIkZVVEVYX09QX0NNUF9FUSIgfSwKKwl7IEZVVEVYX09QX0NNUF9ORSwJIkZVVEVYX09QX0NNUF9ORSIgfSwKKwl7IEZVVEVYX09QX0NNUF9MVCwJIkZVVEVYX09QX0NNUF9MVCIgfSwKKwl7IEZVVEVYX09QX0NNUF9MRSwJIkZVVEVYX09QX0NNUF9MRSIgfSwKKwl7IEZVVEVYX09QX0NNUF9HVCwJIkZVVEVYX09QX0NNUF9HVCIgfSwKKwl7IEZVVEVYX09QX0NNUF9HRSwJIkZVVEVYX09QX0NNUF9HRSIgfSwKKwl7IDAsCQkJTlVMTCB9CiB9OwogCiBpbnQKLXN5c19mdXRleCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfZnV0ZXgoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJXAsICIsICh2b2lkICopIHRjcC0+dV9hcmdbMF0pOwotCXByaW50eHZhbChmdXRleG9wcywgdGNwLT51X2FyZ1sxXSwgIkZVVEVYXz8/PyIpOwotCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7Ci0JaWYgKHRjcC0+dV9hcmdbMV0gPT0gRlVURVhfV0FJVCkgewotCQl0cHJpbnRmKCIsICIpOwotCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1szXSk7Ci0JfSBlbHNlIGlmICh0Y3AtPnVfYXJnWzFdID09IEZVVEVYX1JFUVVFVUUpCi0JCXRwcmludGYoIiwgJWxkLCAlcCIsIHRjcC0+dV9hcmdbM10sICh2b2lkICopIHRjcC0+dV9hcmdbNF0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlsb25nIGludCBjbWQgPSB0Y3AtPnVfYXJnWzFdICYgMTI3OworCQl0cHJpbnRmKCIlcCwgIiwgKHZvaWQgKikgdGNwLT51X2FyZ1swXSk7CisJCXByaW50eHZhbChmdXRleG9wcywgdGNwLT51X2FyZ1sxXSwgIkZVVEVYXz8/PyIpOworCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbMl0pOworCQlpZiAoY21kID09IEZVVEVYX1dBS0VfQklUU0VUKQorCQkJdHByaW50ZigiLCAlbHgiLCB0Y3AtPnVfYXJnWzVdKTsKKwkJZWxzZSBpZiAoY21kID09IEZVVEVYX1dBSVQpIHsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1szXSk7CisJCX0gZWxzZSBpZiAoY21kID09IEZVVEVYX1dBSVRfQklUU0VUKSB7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbM10pOworCQkJdHByaW50ZigiLCAlbHgiLCB0Y3AtPnVfYXJnWzVdKTsKKwkJfSBlbHNlIGlmIChjbWQgPT0gRlVURVhfUkVRVUVVRSkKKwkJCXRwcmludGYoIiwgJWxkLCAlcCIsIHRjcC0+dV9hcmdbM10sICh2b2lkICopIHRjcC0+dV9hcmdbNF0pOworCQllbHNlIGlmIChjbWQgPT0gRlVURVhfQ01QX1JFUVVFVUUgfHwgY21kID09IEZVVEVYX0NNUF9SRVFVRVVFX1BJKQorCQkJdHByaW50ZigiLCAlbGQsICVwLCAlbGQiLCB0Y3AtPnVfYXJnWzNdLCAodm9pZCAqKSB0Y3AtPnVfYXJnWzRdLCB0Y3AtPnVfYXJnWzVdKTsKKwkJZWxzZSBpZiAoY21kID09IEZVVEVYX1dBS0VfT1ApIHsKKwkJCXRwcmludGYoIiwgJWxkLCAlcCwgeyIsIHRjcC0+dV9hcmdbM10sICh2b2lkICopIHRjcC0+dV9hcmdbNF0pOworCQkJaWYgKCh0Y3AtPnVfYXJnWzVdID4+IDI4KSAmIDgpCisJCQkJdHByaW50ZigiRlVURVhfT1BfT1BBUkdfU0hJRlR8Iik7CisJCQlwcmludHh2YWwoZnV0ZXh3YWtlb3BzLCAodGNwLT51X2FyZ1s1XSA+PiAyOCkgJiAweDcsICJGVVRFWF9PUF8/Pz8iKTsKKwkJCXRwcmludGYoIiwgJWxkLCAiLCAodGNwLT51X2FyZ1s1XSA+PiAxMikgJiAweGZmZik7CisJCQlpZiAoKHRjcC0+dV9hcmdbNV0gPj4gMjQpICYgOCkKKwkJCQl0cHJpbnRmKCJGVVRFWF9PUF9PUEFSR19TSElGVHwiKTsKKwkJCXByaW50eHZhbChmdXRleHdha2VjbXBzLCAodGNwLT51X2FyZ1s1XSA+PiAyNCkgJiAweDcsICJGVVRFWF9PUF9DTVBfPz8/Iik7CisJCQl0cHJpbnRmKCIsICVsZH0iLCB0Y3AtPnVfYXJnWzVdICYgMHhmZmYpOworCQl9IGVsc2UgaWYgKGNtZCA9PSBGVVRFWF9XQUlUX1JFUVVFVUVfUEkpIHsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1szXSk7CisJCQl0cHJpbnRmKCIsICVwIiwgKHZvaWQgKikgdGNwLT51X2FyZ1s0XSk7CisJCX0KKwl9CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkCi1wcmludF9hZmZpbml0eWxpc3QodGNwLCBsaXN0LCBsZW4pCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGxpc3Q7Ci11bnNpZ25lZCBpbnQgbGVuOworcHJpbnRfYWZmaW5pdHlsaXN0KHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBsaXN0LCB1bnNpZ25lZCBpbnQgbGVuKQogewotICAgIGludCBmaXJzdCA9IDE7Ci0gICAgdHByaW50ZigiIHsiKTsKLSAgICB3aGlsZSAobGVuID49IHNpemVvZiAodW5zaWduZWQgbG9uZykpIHsKLQl1bnNpZ25lZCBsb25nIHc7Ci0JdW1vdmUodGNwLCBsaXN0LCAmdyk7Ci0JdHByaW50ZigiJXMgJWx4IiwgZmlyc3QgPyAiIiA6ICIsIiwgdyk7Ci0JZmlyc3QgPSAwOwotCWxlbiAtPSBzaXplb2YgKHVuc2lnbmVkIGxvbmcpOwotCWxpc3QgKz0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOwotICAgIH0KLSAgICB0cHJpbnRmKCIgfSIpOwotfQorCWludCBmaXJzdCA9IDE7CisJdW5zaWduZWQgbG9uZyB3LCBtaW5fbGVuOwogCi1pbnQKLXN5c19zY2hlZF9zZXRhZmZpbml0eSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0JcHJpbnRfYWZmaW5pdHlsaXN0KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1pbnQKLXN5c19zY2hlZF9nZXRhZmZpbml0eSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQl0cHJpbnRmKCIlbGQsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0gICAgfSBlbHNlIHsKLQlpZiAodGNwLT51X3J2YWwgPT0gLTEpCi0JICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwlpZiAoYWJicmV2KHRjcCkgJiYgbGVuIC8gc2l6ZW9mKHcpID4gbWF4X3N0cmxlbikKKwkJbWluX2xlbiA9IGxlbiAtIG1heF9zdHJsZW4gKiBzaXplb2Yodyk7CiAJZWxzZQotCSAgICBwcmludF9hZmZpbml0eWxpc3QodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfcnZhbCk7Ci0gICAgfQotICAgIHJldHVybiAwOworCQltaW5fbGVuID0gMDsKKwlmb3IgKDsgbGVuID49IHNpemVvZih3KSAmJiBsZW4gPiBtaW5fbGVuOworCSAgICAgbGVuIC09IHNpemVvZih3KSwgbGlzdCArPSBzaXplb2YodykpIHsKKwkJaWYgKHVtb3ZlKHRjcCwgbGlzdCwgJncpIDwgMCkKKwkJCWJyZWFrOworCQlpZiAoZmlyc3QpCisJCQl0cHJpbnRmKCJ7Iik7CisJCWVsc2UKKwkJCXRwcmludGYoIiwgIik7CisJCWZpcnN0ID0gMDsKKwkJdHByaW50ZigiJWx4Iiwgdyk7CisJfQorCWlmIChsZW4pIHsKKwkJaWYgKGZpcnN0KQorCQkJdHByaW50ZigiJSNseCIsIGxpc3QpOworCQllbHNlCisJCQl0cHJpbnRmKCIsICVzfSIsIChsZW4gPj0gc2l6ZW9mKHcpICYmIGxlbiA+IG1pbl9sZW4gPworCQkJCSI/Pz8iIDogIi4uLiIpKTsKKwl9IGVsc2UgeworCQl0cHJpbnRmKGZpcnN0ID8gInt9IiA6ICJ9Iik7CisJfQorfQorCitpbnQKK3N5c19zY2hlZF9zZXRhZmZpbml0eShzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQlwcmludF9hZmZpbml0eWxpc3QodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NjaGVkX2dldGFmZmluaXR5KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJfSBlbHNlIHsKKwkJaWYgKHRjcC0+dV9ydmFsID09IC0xKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlCisJCQlwcmludF9hZmZpbml0eWxpc3QodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfcnZhbCk7CisJfQorCXJldHVybiAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2NoZWR1bGVyc1tdID0gewpAQCAtMzE0Nyw3NyArMzYyNSw3MiBAQAogfTsKIAogaW50Ci1zeXNfc2NoZWRfZ2V0c2NoZWR1bGVyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zY2hlZF9nZXRzY2hlZHVsZXIoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JdHByaW50ZigiJWQiLCAoaW50KSB0Y3AtPnVfYXJnWzBdKTsKLSAgICB9IGVsc2UgaWYgKCEgc3lzZXJyb3IodGNwKSkgewotCXRjcC0+YXV4c3RyID0geGxvb2t1cCAoc2NoZWR1bGVycywgdGNwLT51X3J2YWwpOwotCWlmICh0Y3AtPmF1eHN0ciAhPSBOVUxMKQotCSAgICByZXR1cm4gUlZBTF9TVFI7Ci0gICAgfQotICAgIHJldHVybiAwOworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVkIiwgKGludCkgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIGlmICghIHN5c2Vycm9yKHRjcCkpIHsKKwkJdGNwLT5hdXhzdHIgPSB4bG9va3VwIChzY2hlZHVsZXJzLCB0Y3AtPnVfcnZhbCk7CisJCWlmICh0Y3AtPmF1eHN0ciAhPSBOVUxMKQorCQkJcmV0dXJuIFJWQUxfU1RSOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfc2NoZWRfc2V0c2NoZWR1bGVyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zY2hlZF9zZXRzY2hlZHVsZXIoc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0Jc3RydWN0IHNjaGVkX3BhcmFtIHA7Ci0JdHByaW50ZigiJWQsICIsIChpbnQpIHRjcC0+dV9hcmdbMF0pOwotCXByaW50eHZhbChzY2hlZHVsZXJzLCB0Y3AtPnVfYXJnWzFdLCAiU0NIRURfPz8/Iik7Ci0JaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJnApIDwgMCkKLQkgICAgdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JZWxzZQotCSAgICB0cHJpbnRmKCIsIHsgJWQgfSIsIHAuX19zY2hlZF9wcmlvcml0eSk7Ci0gICAgfQotICAgIHJldHVybiAwOworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXN0cnVjdCBzY2hlZF9wYXJhbSBwOworCQl0cHJpbnRmKCIlZCwgIiwgKGludCkgdGNwLT51X2FyZ1swXSk7CisJCXByaW50eHZhbChzY2hlZHVsZXJzLCB0Y3AtPnVfYXJnWzFdLCAiU0NIRURfPz8/Iik7CisJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZwKSA8IDApCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiLCB7ICVkIH0iLCBwLl9fc2NoZWRfcHJpb3JpdHkpOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfc2NoZWRfZ2V0cGFyYW0odGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3NjaGVkX2dldHBhcmFtKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCSAgICB0cHJpbnRmKCIlZCwgIiwgKGludCkgdGNwLT51X2FyZ1swXSk7Ci0gICAgfSBlbHNlIHsKLQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcDsKLQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmcCkgPCAwKQotCSAgICB0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JZWxzZQotCSAgICB0cHJpbnRmKCJ7ICVkIH0iLCBwLl9fc2NoZWRfcHJpb3JpdHkpOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlZCwgIiwgKGludCkgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJc3RydWN0IHNjaGVkX3BhcmFtIHA7CisJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZwKSA8IDApCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UKKwkJCXRwcmludGYoInsgJWQgfSIsIHAuX19zY2hlZF9wcmlvcml0eSk7CisJfQorCXJldHVybiAwOwogfQogCiBpbnQKLXN5c19zY2hlZF9zZXRwYXJhbSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfc2NoZWRfc2V0cGFyYW0oc3RydWN0IHRjYiAqdGNwKQogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0Jc3RydWN0IHNjaGVkX3BhcmFtIHA7Ci0JaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnApIDwgMCkKLQkgICAgdHByaW50ZigiJWQsICUjbHgiLCAoaW50KSB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQllbHNlCi0JICAgIHRwcmludGYoIiVkLCB7ICVkIH0iLCAoaW50KSB0Y3AtPnVfYXJnWzBdLCBwLl9fc2NoZWRfcHJpb3JpdHkpOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcDsKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnApIDwgMCkKKwkJCXRwcmludGYoIiVkLCAlI2x4IiwgKGludCkgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UKKwkJCXRwcmludGYoIiVkLCB7ICVkIH0iLCAoaW50KSB0Y3AtPnVfYXJnWzBdLCBwLl9fc2NoZWRfcHJpb3JpdHkpOworCX0KKwlyZXR1cm4gMDsKIH0KIAogaW50Ci1zeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbihzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHh2YWwoc2NoZWR1bGVycywgdGNwLT51X2FyZ1swXSwgIlNDSEVEXz8/PyIpOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoc2NoZWR1bGVycywgdGNwLT51X2FyZ1swXSwgIlNDSEVEXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKIH0KIAotI2lmZGVmIFg4Nl82NAotI2luY2x1ZGUgPGFzbS9wcmN0bC5oPgorIyBpZmRlZiBYODZfNjQKKyMgaW5jbHVkZSA8YXNtL3ByY3RsLmg+CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhcmNodmFsc1tdID0gewogCXsgQVJDSF9TRVRfR1MsCQkiQVJDSF9TRVRfR1MiCQl9LApAQCAtMzIyOCwyNiArMzcwMSw1MSBAQAogfTsKIAogaW50Ci1zeXNfYXJjaF9wcmN0bCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfYXJjaF9wcmN0bChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHh2YWwoYXJjaHZhbHMsIHRjcC0+dV9hcmdbMF0sICJBUkNIXz8/PyIpOwotCWlmICh0Y3AtPnVfYXJnWzBdID09IEFSQ0hfU0VUX0dTCi0JICAgIHx8IHRjcC0+dV9hcmdbMF0gPT0gQVJDSF9TRVRfRlMpCi0JICAgIHRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOwotICAgIH0gZWxzZSB7Ci0JaWYgKHRjcC0+dV9hcmdbMF0gPT0gQVJDSF9HRVRfR1MKLQkgICAgfHwgdGNwLT51X2FyZ1swXSA9PSBBUkNIX0dFVF9GUykgewotCSAgICBsb25nIGludCB2OwotCSAgICBpZiAoIXN5c2Vycm9yKHRjcCkgJiYgdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmdikgIT0gLTEpCi0JCXRwcmludGYoIiwgWyUjbHhdIiwgdik7Ci0JICAgIGVsc2UKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKGFyY2h2YWxzLCB0Y3AtPnVfYXJnWzBdLCAiQVJDSF8/Pz8iKTsKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gQVJDSF9TRVRfR1MKKwkJIHx8IHRjcC0+dV9hcmdbMF0gPT0gQVJDSF9TRVRfRlMKKwkJKSB7CisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJfQorCX0gZWxzZSB7CisJCWlmICh0Y3AtPnVfYXJnWzBdID09IEFSQ0hfR0VUX0dTCisJCSB8fCB0Y3AtPnVfYXJnWzBdID09IEFSQ0hfR0VUX0ZTCisJCSkgeworCQkJbG9uZyBpbnQgdjsKKwkJCWlmICghc3lzZXJyb3IodGNwKSAmJiB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZ2KSAhPSAtMSkKKwkJCQl0cHJpbnRmKCIsIFslI2x4XSIsIHYpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQl9CiAJfQotICAgIH0KLSAgICByZXR1cm4gMDsKKwlyZXR1cm4gMDsKIH0KLSNlbmRpZgorIyBlbmRpZiAvKiBYODZfNjQgKi8KIAotI2VuZGlmCisKK2ludAorc3lzX2dldGNwdShzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQl1bnNpZ25lZCB1OworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCwgIik7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnUpIDwgMCkKKwkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlCisJCQl0cHJpbnRmKCJbJXVdLCAiLCB1KTsKKwkJaWYgKHRjcC0+dV9hcmdbMV0gPT0gMCkKKwkJCXRwcmludGYoIk5VTEwsICIpOworCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZ1KSA8IDApCisJCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiWyV1XSwgIiwgdSk7CisJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBMSU5VWCAqLwpkaWZmIC0tZ2l0IGEvcXVvdGEuYyBiL3F1b3RhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3ZDFhMQotLS0gL2Rldi9udWxsCisrKyBiL3F1b3RhLmMKQEAgLTAsMCArMSw3MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZCQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaWZkZWYgTElOVVgKKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNkZWZpbmUgU1VCQ01ETUFTSyAgMHgwMGZmCisjZGVmaW5lIFNVQkNNRFNISUZUIDgKKyNkZWZpbmUgUUNNRF9DTUQoY21kKQkoKHVfaW50MzJfdCkoY21kKSA+PiBTVUJDTURTSElGVCkKKyNkZWZpbmUgUUNNRF9UWVBFKGNtZCkJKCh1X2ludDMyX3QpKGNtZCkgJiBTVUJDTURNQVNLKQorCisjZGVmaW5lIE9MRF9DTUQoY21kKQkoKHVfaW50MzJfdCkoY21kKSA8PCA4KQorI2RlZmluZSBORVdfQ01EKGNtZCkJKCh1X2ludDMyX3QpKGNtZCkgfCAweDgwMDAwMCkKKyNkZWZpbmUgWFFNX0NNRChjbWQpCSgodV9pbnQzMl90KShjbWQpIHwgKCdYJzw8OCkpCisKKyNkZWZpbmUgUV9WMV9RVU9UQU9OCU9MRF9DTUQoMHgxKQorI2RlZmluZSBRX1YxX1FVT1RBT0ZGCU9MRF9DTUQoMHgyKQorI2RlZmluZSBRX1YxX0dFVFFVT1RBCU9MRF9DTUQoMHgzKQorI2RlZmluZSBRX1YxX1NFVFFVT1RBCU9MRF9DTUQoMHg0KQorI2RlZmluZSBRX1YxX1NFVFVTRQlPTERfQ01EKDB4NSkKKyNkZWZpbmUgUV9WMV9TWU5DCU9MRF9DTUQoMHg2KQorI2RlZmluZSBRX1NFVFFMSU0JT0xEX0NNRCgweDcpCisjZGVmaW5lIFFfVjFfR0VUU1RBVFMJT0xEX0NNRCgweDgpCisjZGVmaW5lIFFfVjFfUlNRVUFTSAlPTERfQ01EKDB4MTApCisKKyNkZWZpbmUgUV9WMl9HRVRRVU9UQQlPTERfQ01EKDB4RCkKKyNkZWZpbmUgUV9WMl9TRVRRVU9UQQlPTERfQ01EKDB4RSkKKyNkZWZpbmUgUV9WMl9TRVRVU0UJT0xEX0NNRCgweEYpCisjZGVmaW5lIFFfVjJfR0VUSU5GTwlPTERfQ01EKDB4OSkKKyNkZWZpbmUgUV9WMl9TRVRJTkZPCU9MRF9DTUQoMHhBKQorI2RlZmluZSBRX1YyX1NFVEdSQUNFCU9MRF9DTUQoMHhCKQorI2RlZmluZSBRX1YyX1NFVEZMQUdTCU9MRF9DTUQoMHhDKQorI2RlZmluZSBRX1YyX0dFVFNUQVRTCU9MRF9DTUQoMHgxMSkKKworI2RlZmluZSBRX1NZTkMJCU5FV19DTUQoMHgxKQorI2RlZmluZSBRX1FVT1RBT04JTkVXX0NNRCgweDIpCisjZGVmaW5lIFFfUVVPVEFPRkYJTkVXX0NNRCgweDMpCisjZGVmaW5lIFFfR0VURk1UCU5FV19DTUQoMHg0KQorI2RlZmluZSBRX0dFVElORk8JTkVXX0NNRCgweDUpCisjZGVmaW5lIFFfU0VUSU5GTwlORVdfQ01EKDB4NikKKyNkZWZpbmUgUV9HRVRRVU9UQQlORVdfQ01EKDB4NykKKyNkZWZpbmUgUV9TRVRRVU9UQQlORVdfQ01EKDB4OCkKKworI2RlZmluZSBRX1hRVU9UQU9OCVhRTV9DTUQoMHgxKQorI2RlZmluZSBRX1hRVU9UQU9GRglYUU1fQ01EKDB4MikKKyNkZWZpbmUgUV9YR0VUUVVPVEEJWFFNX0NNRCgweDMpCisjZGVmaW5lIFFfWFNFVFFMSU0JWFFNX0NNRCgweDQpCisjZGVmaW5lIFFfWEdFVFFTVEFUCVhRTV9DTUQoMHg1KQorI2RlZmluZSBRX1hRVU9UQVJNCVhRTV9DTUQoMHg2KQorI2RlZmluZSBRX1hRVU9UQVNZTkMJWFFNX0NNRCgweDcpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YWNtZHNbXSA9IHsKKwl7UV9WMV9RVU9UQU9OLCAiUV9WMV9RVU9UQU9OIn0sCisJe1FfVjFfUVVPVEFPRkYsICJRX1YxX1FVT1RBT0ZGIn0sCisJe1FfVjFfR0VUUVVPVEEsICJRX1YxX0dFVFFVT1RBIn0sCisJe1FfVjFfU0VUUVVPVEEsICJRX1YxX1NFVFFVT1RBIn0sCisJe1FfVjFfU0VUVVNFLCAiUV9WMV9TRVRVU0UifSwKKwl7UV9WMV9TWU5DLCAiUV9WMV9TWU5DIn0sCisJe1FfU0VUUUxJTSwgIlFfU0VUUUxJTSJ9LAorCXtRX1YxX0dFVFNUQVRTLCAiUV9WMV9HRVRTVEFUUyJ9LAorCXtRX1YxX1JTUVVBU0gsICJRX1YxX1JTUVVBU0gifSwKKworCXtRX1YyX0dFVFFVT1RBLCAiUV9WMl9HRVRRVU9UQSJ9LAorCXtRX1YyX1NFVFFVT1RBLCAiUV9WMl9TRVRRVU9UQSJ9LAorCXtRX1YyX1NFVFVTRSwgIlFfVjJfU0VUVVNFIn0sCisJe1FfVjJfR0VUSU5GTywgIlFfVjJfR0VUSU5GTyJ9LAorCXtRX1YyX1NFVElORk8sICJRX1YyX1NFVElORk8ifSwKKwl7UV9WMl9TRVRHUkFDRSwgIlFfVjJfU0VUR1JBQ0UifSwKKwl7UV9WMl9TRVRGTEFHUywgIlFfVjJfU0VURkxBR1MifSwKKwl7UV9WMl9HRVRTVEFUUywgIlFfVjJfR0VUU1RBVFMifSwKKworCXtRX1NZTkMsICJRX1NZTkMifSwKKwl7UV9RVU9UQU9OLCAiUV9RVU9UQU9OIn0sCisJe1FfUVVPVEFPRkYsICJRX1FVT1RBT0ZGIn0sCisJe1FfR0VURk1ULCAiUV9HRVRGTVQifSwKKwl7UV9HRVRJTkZPLCAiUV9HRVRJTkZPIn0sCisJe1FfU0VUSU5GTywgIlFfU0VUSU5GTyJ9LAorCXtRX0dFVFFVT1RBLCAiUV9HRVRRVU9UQSJ9LAorCXtRX1NFVFFVT1RBLCAiUV9TRVRRVU9UQSJ9LAorCisJe1FfWFFVT1RBT04sICJRX1hRVU9UQU9OIn0sCisJe1FfWFFVT1RBT0ZGLCAiUV9YUVVPVEFPRkYifSwKKwl7UV9YR0VUUVVPVEEsICJRX1hHRVRRVU9UQSJ9LAorCXtRX1hTRVRRTElNLCAiUV9YU0VUUUxJTSJ9LAorCXtRX1hHRVRRU1RBVCwgIlFfWEdFVFFTVEFUIn0sCisJe1FfWFFVT1RBUk0sICJRX1hRVU9UQVJNIn0sCisJe1FfWFFVT1RBU1lOQywgIlFfWFFVT1RBU1lOQyJ9LAorCisJezAsIE5VTEx9LAorfTsKKworI2RlZmluZSBVU1JRVU9UQSAwCisjZGVmaW5lIEdSUFFVT1RBIDEKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHF1b3RhdHlwZXNbXSA9IHsKKwl7VVNSUVVPVEEsICJVU1JRVU9UQSJ9LAorCXtHUlBRVU9UQSwgIkdSUFFVT1RBIn0sCisJezAsIE5VTEx9LAorfTsKKworLyogUXVvdGEgZm9ybWF0IGlkZW50aWZpZXJzICovCisjZGVmaW5lIFFGTVRfVkZTX09MRCAxCisjZGVmaW5lIFFGTVRfVkZTX1YwICAyCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YV9mb3JtYXRzW10gPSB7CisJe1FGTVRfVkZTX09MRCwgIlFGTVRfVkZTX09MRCJ9LAorCXtRRk1UX1ZGU19WMCwgIlFGTVRfVkZTX1YwIn0sCisJezAsIE5VTEx9LAorfTsKKworI2RlZmluZSBYRlNfUVVPVEFfVURRX0FDQ1QJKDE8PDApCS8qIHVzZXIgcXVvdGEgYWNjb3VudGluZyAqLworI2RlZmluZSBYRlNfUVVPVEFfVURRX0VORkQJKDE8PDEpCS8qIHVzZXIgcXVvdGEgbGltaXRzIGVuZm9yY2VtZW50ICovCisjZGVmaW5lIFhGU19RVU9UQV9HRFFfQUNDVAkoMTw8MikJLyogZ3JvdXAgcXVvdGEgYWNjb3VudGluZyAqLworI2RlZmluZSBYRlNfUVVPVEFfR0RRX0VORkQJKDE8PDMpCS8qIGdyb3VwIHF1b3RhIGxpbWl0cyBlbmZvcmNlbWVudCAqLworCisjZGVmaW5lIFhGU19VU0VSX1FVT1RBCQkoMTw8MCkJLyogdXNlciBxdW90YSB0eXBlICovCisjZGVmaW5lIFhGU19QUk9KX1FVT1RBCQkoMTw8MSkJLyogKElSSVgpIHByb2plY3QgcXVvdGEgdHlwZSAqLworI2RlZmluZSBYRlNfR1JPVVBfUVVPVEEJCSgxPDwyKQkvKiBncm91cCBxdW90YSB0eXBlICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB4ZnNfcXVvdGFfZmxhZ3NbXSA9IHsKKwl7WEZTX1FVT1RBX1VEUV9BQ0NULCAiWEZTX1FVT1RBX1VEUV9BQ0NUIn0sCisJe1hGU19RVU9UQV9VRFFfRU5GRCwgIlhGU19RVU9UQV9VRFFfRU5GRCJ9LAorCXtYRlNfUVVPVEFfR0RRX0FDQ1QsICJYRlNfUVVPVEFfR0RRX0FDQ1QifSwKKwl7WEZTX1FVT1RBX0dEUV9FTkZELCAiWEZTX1FVT1RBX0dEUV9FTkZEIn0sCisJezAsIE5VTEx9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgeGZzX2RxYmxrX2ZsYWdzW10gPSB7CisJe1hGU19VU0VSX1FVT1RBLCAiWEZTX1VTRVJfUVVPVEEifSwKKwl7WEZTX1BST0pfUVVPVEEsICJYRlNfUFJPSl9RVU9UQSJ9LAorCXtYRlNfR1JPVVBfUVVPVEEsICJYRlNfR1JPVVBfUVVPVEEifSwKKwl7MCwgTlVMTH0KK307CisKKy8qCisgKiBGb2xsb3dpbmcgZmxhZ3MgYXJlIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBmaWVsZHMgYXJlIHZhbGlkCisgKi8KKyNkZWZpbmUgUUlGX0JMSU1JVFMJMQorI2RlZmluZSBRSUZfU1BBQ0UJMgorI2RlZmluZSBRSUZfSUxJTUlUUwk0CisjZGVmaW5lIFFJRl9JTk9ERVMJOAorI2RlZmluZSBRSUZfQlRJTUUJMTYKKyNkZWZpbmUgUUlGX0lUSU1FCTMyCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBpZl9kcWJsa192YWxpZFtdID0geworCXtRSUZfQkxJTUlUUywgIlFJRl9CTElNSVRTIn0sCisJe1FJRl9TUEFDRSwgIlFJRl9TUEFDRSJ9LAorCXtRSUZfSUxJTUlUUywgIlFJRl9JTElNSVRTIn0sCisJe1FJRl9JTk9ERVMsICJRSUZfSU5PREVTIn0sCisJe1FJRl9CVElNRSwgIlFJRl9CVElNRSJ9LAorCXtRSUZfSVRJTUUsICJRSUZfSVRJTUUifSwKKwl7MCwgTlVMTH0KK307CisKK3N0cnVjdCBpZl9kcWJsaworeworCXVfaW50NjRfdCBkcWJfYmhhcmRsaW1pdDsKKwl1X2ludDY0X3QgZHFiX2Jzb2Z0bGltaXQ7CisJdV9pbnQ2NF90IGRxYl9jdXJzcGFjZTsKKwl1X2ludDY0X3QgZHFiX2loYXJkbGltaXQ7CisJdV9pbnQ2NF90IGRxYl9pc29mdGxpbWl0OworCXVfaW50NjRfdCBkcWJfY3VyaW5vZGVzOworCXVfaW50NjRfdCBkcWJfYnRpbWU7CisJdV9pbnQ2NF90IGRxYl9pdGltZTsKKwl1X2ludDMyX3QgZHFiX3ZhbGlkOworfTsKKworc3RydWN0IHYxX2RxYmxrCit7CisJdV9pbnQzMl90IGRxYl9iaGFyZGxpbWl0OwkvKiBhYnNvbHV0ZSBsaW1pdCBvbiBkaXNrIGJsa3MgYWxsb2MgKi8KKwl1X2ludDMyX3QgZHFiX2Jzb2Z0bGltaXQ7CS8qIHByZWZlcnJlZCBsaW1pdCBvbiBkaXNrIGJsa3MgKi8KKwl1X2ludDMyX3QgZHFiX2N1cmJsb2NrczsJLyogY3VycmVudCBibG9jayBjb3VudCAqLworCXVfaW50MzJfdCBkcWJfaWhhcmRsaW1pdDsJLyogbWF4aW11bSAjIGFsbG9jYXRlZCBpbm9kZXMgKi8KKwl1X2ludDMyX3QgZHFiX2lzb2Z0bGltaXQ7CS8qIHByZWZlcnJlZCBpbm9kZSBsaW1pdCAqLworCXVfaW50MzJfdCBkcWJfY3VyaW5vZGVzOwkvKiBjdXJyZW50ICMgYWxsb2NhdGVkIGlub2RlcyAqLworCXRpbWVfdCAgZHFiX2J0aW1lOwkvKiB0aW1lIGxpbWl0IGZvciBleGNlc3NpdmUgZGlzayB1c2UgKi8KKwl0aW1lX3QgIGRxYl9pdGltZTsJLyogdGltZSBsaW1pdCBmb3IgZXhjZXNzaXZlIGZpbGVzICovCit9OworCitzdHJ1Y3QgdjJfZHFibGsKK3sKKwl1bnNpZ25lZCBpbnQgZHFiX2loYXJkbGltaXQ7CisJdW5zaWduZWQgaW50IGRxYl9pc29mdGxpbWl0OworCXVuc2lnbmVkIGludCBkcWJfY3VyaW5vZGVzOworCXVuc2lnbmVkIGludCBkcWJfYmhhcmRsaW1pdDsKKwl1bnNpZ25lZCBpbnQgZHFiX2Jzb2Z0bGltaXQ7CisJdV9pbnQ2NF90IGRxYl9jdXJzcGFjZTsKKwl0aW1lX3QgIGRxYl9idGltZTsKKwl0aW1lX3QgIGRxYl9pdGltZTsKK307CisKK3N0cnVjdCB4ZnNfZHFibGsKK3sKKwlpbnQ4X3QgIGRfdmVyc2lvbjsJLyogdmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVyZSAqLworCWludDhfdCAgZF9mbGFnczsJLyogWEZTX3tVU0VSLFBST0osR1JPVVB9X1FVT1RBICovCisJdV9pbnQxNl90IGRfZmllbGRtYXNrOwkvKiBmaWVsZCBzcGVjaWZpZXIgKi8KKwl1X2ludDMyX3QgZF9pZDsJCS8qIHVzZXIsIHByb2plY3QsIG9yIGdyb3VwIElEICovCisJdV9pbnQ2NF90IGRfYmxrX2hhcmRsaW1pdDsJLyogYWJzb2x1dGUgbGltaXQgb24gZGlzayBibGtzICovCisJdV9pbnQ2NF90IGRfYmxrX3NvZnRsaW1pdDsJLyogcHJlZmVycmVkIGxpbWl0IG9uIGRpc2sgYmxrcyAqLworCXVfaW50NjRfdCBkX2lub19oYXJkbGltaXQ7CS8qIG1heGltdW0gIyBhbGxvY2F0ZWQgaW5vZGVzICovCisJdV9pbnQ2NF90IGRfaW5vX3NvZnRsaW1pdDsJLyogcHJlZmVycmVkIGlub2RlIGxpbWl0ICovCisJdV9pbnQ2NF90IGRfYmNvdW50OwkvKiAjIGRpc2sgYmxvY2tzIG93bmVkIGJ5IHRoZSB1c2VyICovCisJdV9pbnQ2NF90IGRfaWNvdW50OwkvKiAjIGlub2RlcyBvd25lZCBieSB0aGUgdXNlciAqLworCWludDMyX3QgZF9pdGltZXI7CS8qIHplcm8gaWYgd2l0aGluIGlub2RlIGxpbWl0cyAqLworCWludDMyX3QgZF9idGltZXI7CS8qIHNpbWlsYXIgdG8gYWJvdmU7IGZvciBkaXNrIGJsb2NrcyAqLworCXVfaW50MTZfdCBkX2l3YXJuczsJLyogIyB3YXJuaW5ncyBpc3N1ZWQgd3J0IG51bSBpbm9kZXMgKi8KKwl1X2ludDE2X3QgZF9id2FybnM7CS8qICMgd2FybmluZ3MgaXNzdWVkIHdydCBkaXNrIGJsb2NrcyAqLworCWludDMyX3QgZF9wYWRkaW5nMjsJLyogcGFkZGluZzIgLSBmb3IgZnV0dXJlIHVzZSAqLworCXVfaW50NjRfdCBkX3J0Yl9oYXJkbGltaXQ7CS8qIGFic29sdXRlIGxpbWl0IG9uIHJlYWx0aW1lIGJsa3MgKi8KKwl1X2ludDY0X3QgZF9ydGJfc29mdGxpbWl0OwkvKiBwcmVmZXJyZWQgbGltaXQgb24gUlQgZGlzayBibGtzICovCisJdV9pbnQ2NF90IGRfcnRiY291bnQ7CS8qICMgcmVhbHRpbWUgYmxvY2tzIG93bmVkICovCisJaW50MzJfdCBkX3J0YnRpbWVyOwkvKiBzaW1pbGFyIHRvIGFib3ZlOyBmb3IgUlQgZGlzayBibGtzICovCisJdV9pbnQxNl90IGRfcnRid2FybnM7CS8qICMgd2FybmluZ3MgaXNzdWVkIHdydCBSVCBkaXNrIGJsa3MgKi8KKwlpbnQxNl90IGRfcGFkZGluZzM7CS8qIHBhZGRpbmczIC0gZm9yIGZ1dHVyZSB1c2UgKi8KKwljaGFyICAgIGRfcGFkZGluZzRbOF07CS8qIHlldCBtb3JlIHBhZGRpbmcgKi8KK307CisKKy8qCisgKiBGb2xsb3dpbmcgZmxhZ3MgYXJlIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBmaWVsZHMgYXJlIHZhbGlkCisgKi8KKyNkZWZpbmUgSUlGX0JHUkFDRQkxCisjZGVmaW5lIElJRl9JR1JBQ0UJMgorI2RlZmluZSBJSUZfRkxBR1MJNAorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaWZfZHFpbmZvX3ZhbGlkW10gPSB7CisJe0lJRl9CR1JBQ0UsICJJSUZfQkdSQUNFIn0sCisJe0lJRl9JR1JBQ0UsICJJSUZfSUdSQUNFIn0sCisJe0lJRl9GTEFHUywgIklJRl9GTEFHUyJ9LAorCXswLCBOVUxMfQorfTsKKworc3RydWN0IGlmX2RxaW5mbworeworCXVfaW50NjRfdCBkcWlfYmdyYWNlOworCXVfaW50NjRfdCBkcWlfaWdyYWNlOworCXVfaW50MzJfdCBkcWlfZmxhZ3M7CisJdV9pbnQzMl90IGRxaV92YWxpZDsKK307CisKK3N0cnVjdCB2Ml9kcWluZm8KK3sKKwl1bnNpZ25lZCBpbnQgZHFpX2JncmFjZTsKKwl1bnNpZ25lZCBpbnQgZHFpX2lncmFjZTsKKwl1bnNpZ25lZCBpbnQgZHFpX2ZsYWdzOworCXVuc2lnbmVkIGludCBkcWlfYmxvY2tzOworCXVuc2lnbmVkIGludCBkcWlfZnJlZV9ibGs7CisJdW5zaWduZWQgaW50IGRxaV9mcmVlX2VudHJ5OworfTsKKworc3RydWN0IHYxX2Rxc3RhdHMKK3sKKwl1X2ludDMyX3QgbG9va3VwczsKKwl1X2ludDMyX3QgZHJvcHM7CisJdV9pbnQzMl90IHJlYWRzOworCXVfaW50MzJfdCB3cml0ZXM7CisJdV9pbnQzMl90IGNhY2hlX2hpdHM7CisJdV9pbnQzMl90IGFsbG9jYXRlZF9kcXVvdHM7CisJdV9pbnQzMl90IGZyZWVfZHF1b3RzOworCXVfaW50MzJfdCBzeW5jczsKK307CisKK3N0cnVjdCB2Ml9kcXN0YXRzCit7CisJdV9pbnQzMl90IGxvb2t1cHM7CisJdV9pbnQzMl90IGRyb3BzOworCXVfaW50MzJfdCByZWFkczsKKwl1X2ludDMyX3Qgd3JpdGVzOworCXVfaW50MzJfdCBjYWNoZV9oaXRzOworCXVfaW50MzJfdCBhbGxvY2F0ZWRfZHF1b3RzOworCXVfaW50MzJfdCBmcmVlX2RxdW90czsKKwl1X2ludDMyX3Qgc3luY3M7CisJdV9pbnQzMl90IHZlcnNpb247Cit9OworCit0eXBlZGVmIHN0cnVjdCBmc19xZmlsZXN0YXQKK3sKKwl1X2ludDY0X3QgcWZzX2lubzsJLyogaW5vZGUgbnVtYmVyICovCisJdV9pbnQ2NF90IHFmc19uYmxrczsJLyogbnVtYmVyIG9mIEJCcyA1MTItYnl0ZS1ibGtzICovCisJdV9pbnQzMl90IHFmc19uZXh0ZW50czsJLyogbnVtYmVyIG9mIGV4dGVudHMgKi8KK30gZnNfcWZpbGVzdGF0X3Q7CisKK3N0cnVjdCB4ZnNfZHFzdGF0cworeworCWludDhfdCAgcXNfdmVyc2lvbjsJLyogdmVyc2lvbiBudW1iZXIgZm9yIGZ1dHVyZSBjaGFuZ2VzICovCisJdV9pbnQxNl90IHFzX2ZsYWdzOwkvKiBYRlNfUVVPVEFfe1UsUCxHfURRX3tBQ0NULEVORkR9ICovCisJaW50OF90ICBxc19wYWQ7CQkvKiB1bnVzZWQgKi8KKwlmc19xZmlsZXN0YXRfdCBxc191cXVvdGE7CS8qIHVzZXIgcXVvdGEgc3RvcmFnZSBpbmZvcm1hdGlvbiAqLworCWZzX3FmaWxlc3RhdF90IHFzX2dxdW90YTsJLyogZ3JvdXAgcXVvdGEgc3RvcmFnZSBpbmZvcm1hdGlvbiAqLworCXVfaW50MzJfdCBxc19pbmNvcmVkcXM7CS8qIG51bWJlciBvZiBkcXVvdHMgaW5jb3JlICovCisJaW50MzJfdCBxc19idGltZWxpbWl0OwkvKiBsaW1pdCBmb3IgYmxrcyB0aW1lciAqLworCWludDMyX3QgcXNfaXRpbWVsaW1pdDsJLyogbGltaXQgZm9yIGlub2RlcyB0aW1lciAqLworCWludDMyX3QgcXNfcnRidGltZWxpbWl0OwkvKiBsaW1pdCBmb3IgcnQgYmxrcyB0aW1lciAqLworCXVfaW50MTZfdCBxc19id2FybmxpbWl0OwkvKiBsaW1pdCBmb3IgbnVtIHdhcm5pbmdzICovCisJdV9pbnQxNl90IHFzX2l3YXJubGltaXQ7CS8qIGxpbWl0IGZvciBudW0gd2FybmluZ3MgKi8KK307CisKK3N0YXRpYyB2b2lkCitkZWNvZGVfY21kX2RhdGEoc3RydWN0IHRjYiAqdGNwLCB1X2ludDMyX3QgY21kLCB1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3dpdGNoIChjbWQpCisJeworCQljYXNlIFFfR0VUUVVPVEE6CisJCWNhc2UgUV9TRVRRVU9UQToKKwkJeworCQkJc3RydWN0IGlmX2RxYmxrIGRxOworCisJCQlpZiAoY21kID09IFFfR0VUUVVPVEEgJiYgc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZHEpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7YmhhcmRsaW1pdD0lIiBQUkl1NjQgIiwgIiwgZHEuZHFiX2JoYXJkbGltaXQpOworCQkJdHByaW50ZigiYnNvZnRsaW1pdD0lIiBQUkl1NjQgIiwgIiwgZHEuZHFiX2Jzb2Z0bGltaXQpOworCQkJdHByaW50ZigiY3Vyc3BhY2U9JSIgUFJJdTY0ICIsICIsIGRxLmRxYl9jdXJzcGFjZSk7CisJCQl0cHJpbnRmKCJpaGFyZGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfaWhhcmRsaW1pdCk7CisJCQl0cHJpbnRmKCJpc29mdGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfaXNvZnRsaW1pdCk7CisJCQl0cHJpbnRmKCJjdXJpbm9kZXM9JSIgUFJJdTY0ICIsICIsIGRxLmRxYl9jdXJpbm9kZXMpOworCQkJaWYgKCFhYmJyZXYodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCJidGltZT0lIiBQUkl1NjQgIiwgIiwgZHEuZHFiX2J0aW1lKTsKKwkJCQl0cHJpbnRmKCJpdGltZT0lIiBQUkl1NjQgIiwgIiwgZHEuZHFiX2l0aW1lKTsKKwkJCQl0cHJpbnRmKCJ2YWxpZD0iKTsKKwkJCQlwcmludGZsYWdzKGlmX2RxYmxrX3ZhbGlkLAorCQkJCQkgICBkcS5kcWJfdmFsaWQsICJRSUZfPz8/Iik7CisJCQkJdHByaW50ZigifSIpOworCQkJfSBlbHNlCisJCQkJdHByaW50ZigiLi4ufSIpOworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBRX1YxX0dFVFFVT1RBOgorCQljYXNlIFFfVjFfU0VUUVVPVEE6CisJCXsKKwkJCXN0cnVjdCB2MV9kcWJsayBkcTsKKworCQkJaWYgKGNtZCA9PSBRX1YxX0dFVFFVT1RBICYmIHN5c2Vycm9yKHRjcCkpCisJCQl7CisJCQkJdHByaW50ZigiJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3ZlKHRjcCwgZGF0YSwgJmRxKSA8IDApCisJCQl7CisJCQkJdHByaW50Zigiez8/P30gJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50Zigie2JoYXJkbGltaXQ9JXUsICIsIGRxLmRxYl9iaGFyZGxpbWl0KTsKKwkJCXRwcmludGYoImJzb2Z0bGltaXQ9JXUsICIsIGRxLmRxYl9ic29mdGxpbWl0KTsKKwkJCXRwcmludGYoImN1cmJsb2Nrcz0ldSwgIiwgZHEuZHFiX2N1cmJsb2Nrcyk7CisJCQl0cHJpbnRmKCJpaGFyZGxpbWl0PSV1LCAiLCBkcS5kcWJfaWhhcmRsaW1pdCk7CisJCQl0cHJpbnRmKCJpc29mdGxpbWl0PSV1LCAiLCBkcS5kcWJfaXNvZnRsaW1pdCk7CisJCQl0cHJpbnRmKCJjdXJpbm9kZXM9JXUsICIsIGRxLmRxYl9jdXJpbm9kZXMpOworCQkJdHByaW50ZigiYnRpbWU9JWx1LCAiLCBkcS5kcWJfYnRpbWUpOworCQkJdHByaW50ZigiaXRpbWU9JWx1fSIsIGRxLmRxYl9pdGltZSk7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfVjJfR0VUUVVPVEE6CisJCWNhc2UgUV9WMl9TRVRRVU9UQToKKwkJeworCQkJc3RydWN0IHYyX2RxYmxrIGRxOworCisJCQlpZiAoY21kID09IFFfVjJfR0VUUVVPVEEgJiYgc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZHEpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7aWhhcmRsaW1pdD0ldSwgIiwgZHEuZHFiX2loYXJkbGltaXQpOworCQkJdHByaW50ZigiaXNvZnRsaW1pdD0ldSwgIiwgZHEuZHFiX2lzb2Z0bGltaXQpOworCQkJdHByaW50ZigiY3VyaW5vZGVzPSV1LCAiLCBkcS5kcWJfY3VyaW5vZGVzKTsKKwkJCXRwcmludGYoImJoYXJkbGltaXQ9JXUsICIsIGRxLmRxYl9iaGFyZGxpbWl0KTsKKwkJCXRwcmludGYoImJzb2Z0bGltaXQ9JXUsICIsIGRxLmRxYl9ic29mdGxpbWl0KTsKKwkJCXRwcmludGYoImN1cnNwYWNlPSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfY3Vyc3BhY2UpOworCQkJdHByaW50ZigiYnRpbWU9JWx1LCAiLCBkcS5kcWJfYnRpbWUpOworCQkJdHByaW50ZigiaXRpbWU9JWx1fSIsIGRxLmRxYl9pdGltZSk7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfWEdFVFFVT1RBOgorCQljYXNlIFFfWFNFVFFMSU06CisJCXsKKwkJCXN0cnVjdCB4ZnNfZHFibGsgZHE7CisKKwkJCWlmIChjbWQgPT0gUV9YR0VUUVVPVEEgJiYgc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZHEpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7dmVyc2lvbj0lZCwgIiwgZHEuZF92ZXJzaW9uKTsKKwkJCXRwcmludGYoImZsYWdzPSIpOworCQkJcHJpbnRmbGFncyh4ZnNfZHFibGtfZmxhZ3MsCisJCQkJICAgZHEuZF9mbGFncywgIlhGU18/Pz9fUVVPVEEiKTsKKwkJCXRwcmludGYoIiwgZmllbGRtYXNrPSUjeCwgIiwgZHEuZF9maWVsZG1hc2spOworCQkJdHByaW50ZigiaWQ9JXUsICIsIGRxLmRfaWQpOworCQkJdHByaW50ZigiYmxrX2hhcmRsaW1pdD0lIiBQUkl1NjQgIiwgIiwgZHEuZF9ibGtfaGFyZGxpbWl0KTsKKwkJCXRwcmludGYoImJsa19zb2Z0bGltaXQ9JSIgUFJJdTY0ICIsICIsIGRxLmRfYmxrX3NvZnRsaW1pdCk7CisJCQl0cHJpbnRmKCJpbm9faGFyZGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kX2lub19oYXJkbGltaXQpOworCQkJdHByaW50ZigiaW5vX3NvZnRsaW1pdD0lIiBQUkl1NjQgIiwgIiwgZHEuZF9pbm9fc29mdGxpbWl0KTsKKwkJCXRwcmludGYoImJjb3VudD0lIiBQUkl1NjQgIiwgIiwgZHEuZF9iY291bnQpOworCQkJdHByaW50ZigiaWNvdW50PSUiIFBSSXU2NCAiLCAiLCBkcS5kX2ljb3VudCk7CisJCQlpZiAoIWFiYnJldih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIml0aW1lcj0lZCwgIiwgZHEuZF9pdGltZXIpOworCQkJCXRwcmludGYoImJ0aW1lcj0lZCwgIiwgZHEuZF9idGltZXIpOworCQkJCXRwcmludGYoIml3YXJucz0ldSwgIiwgZHEuZF9pd2FybnMpOworCQkJCXRwcmludGYoImJ3YXJucz0ldSwgIiwgZHEuZF9id2FybnMpOworCQkJCXRwcmludGYoInJ0YmNvdW50PSUiIFBSSXU2NCAiLCAiLCBkcS5kX3J0YmNvdW50KTsKKwkJCQl0cHJpbnRmKCJydGJ0aW1lcj0lZCwgIiwgZHEuZF9ydGJ0aW1lcik7CisJCQkJdHByaW50ZigicnRid2FybnM9JXV9IiwgZHEuZF9ydGJ3YXJucyk7CisJCQl9IGVsc2UKKwkJCQl0cHJpbnRmKCIuLi59Iik7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfR0VURk1UOgorCQl7CisJCQl1X2ludDMyX3QgZm10OworCisJCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZm10KSA8IDApCisJCQl7CisJCQkJdHByaW50Zigiez8/P30gJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50ZigieyIpOworCQkJcHJpbnR4dmFsKHF1b3RhX2Zvcm1hdHMsIGZtdCwgIlFGTVRfVkZTXz8/PyIpOworCQkJdHByaW50ZigifSIpOworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBRX0dFVElORk86CisJCWNhc2UgUV9TRVRJTkZPOgorCQl7CisJCQlzdHJ1Y3QgaWZfZHFpbmZvIGRxOworCisJCQlpZiAoY21kID09IFFfR0VUSU5GTyAmJiBzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIntiZ3JhY2U9JSIgUFJJdTY0ICIsICIsIGRxLmRxaV9iZ3JhY2UpOworCQkJdHByaW50ZigiaWdyYWNlPSUiIFBSSXU2NCAiLCAiLCBkcS5kcWlfaWdyYWNlKTsKKwkJCXRwcmludGYoImZsYWdzPSUjeCwgIiwgZHEuZHFpX2ZsYWdzKTsKKwkJCXRwcmludGYoInZhbGlkPSIpOworCQkJcHJpbnRmbGFncyhpZl9kcWluZm9fdmFsaWQsIGRxLmRxaV92YWxpZCwgIklJRl8/Pz8iKTsKKwkJCXRwcmludGYoIn0iKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9WMl9HRVRJTkZPOgorCQljYXNlIFFfVjJfU0VUSU5GTzoKKwkJeworCQkJc3RydWN0IHYyX2RxaW5mbyBkcTsKKworCQkJaWYgKGNtZCA9PSBRX1YyX0dFVElORk8gJiYgc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZHEpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7YmdyYWNlPSV1LCAiLCBkcS5kcWlfYmdyYWNlKTsKKwkJCXRwcmludGYoImlncmFjZT0ldSwgIiwgZHEuZHFpX2lncmFjZSk7CisJCQl0cHJpbnRmKCJmbGFncz0lI3gsICIsIGRxLmRxaV9mbGFncyk7CisJCQl0cHJpbnRmKCJibG9ja3M9JXUsICIsIGRxLmRxaV9ibG9ja3MpOworCQkJdHByaW50ZigiZnJlZV9ibGs9JXUsICIsIGRxLmRxaV9mcmVlX2Jsayk7CisJCQl0cHJpbnRmKCJmcmVlX2VudHJ5PSV1fSIsIGRxLmRxaV9mcmVlX2VudHJ5KTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9WMV9HRVRTVEFUUzoKKwkJeworCQkJc3RydWN0IHYxX2Rxc3RhdHMgZHE7CisKKwkJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIntsb29rdXBzPSV1LCAiLCBkcS5sb29rdXBzKTsKKwkJCXRwcmludGYoImRyb3BzPSV1LCAiLCBkcS5kcm9wcyk7CisJCQl0cHJpbnRmKCJyZWFkcz0ldSwgIiwgZHEucmVhZHMpOworCQkJdHByaW50Zigid3JpdGVzPSV1LCAiLCBkcS53cml0ZXMpOworCQkJdHByaW50ZigiY2FjaGVfaGl0cz0ldSwgIiwgZHEuY2FjaGVfaGl0cyk7CisJCQl0cHJpbnRmKCJhbGxvY2F0ZWRfZHF1b3RzPSV1LCAiLCBkcS5hbGxvY2F0ZWRfZHF1b3RzKTsKKwkJCXRwcmludGYoImZyZWVfZHF1b3RzPSV1LCAiLCBkcS5mcmVlX2RxdW90cyk7CisJCQl0cHJpbnRmKCJzeW5jcz0ldX0iLCBkcS5zeW5jcyk7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfVjJfR0VUU1RBVFM6CisJCXsKKwkJCXN0cnVjdCB2Ml9kcXN0YXRzIGRxOworCisJCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZHEpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7bG9va3Vwcz0ldSwgIiwgZHEubG9va3Vwcyk7CisJCQl0cHJpbnRmKCJkcm9wcz0ldSwgIiwgZHEuZHJvcHMpOworCQkJdHByaW50ZigicmVhZHM9JXUsICIsIGRxLnJlYWRzKTsKKwkJCXRwcmludGYoIndyaXRlcz0ldSwgIiwgZHEud3JpdGVzKTsKKwkJCXRwcmludGYoImNhY2hlX2hpdHM9JXUsICIsIGRxLmNhY2hlX2hpdHMpOworCQkJdHByaW50ZigiYWxsb2NhdGVkX2RxdW90cz0ldSwgIiwgZHEuYWxsb2NhdGVkX2RxdW90cyk7CisJCQl0cHJpbnRmKCJmcmVlX2RxdW90cz0ldSwgIiwgZHEuZnJlZV9kcXVvdHMpOworCQkJdHByaW50Zigic3luY3M9JXUsICIsIGRxLnN5bmNzKTsKKwkJCXRwcmludGYoInZlcnNpb249JXV9IiwgZHEudmVyc2lvbik7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfWEdFVFFTVEFUOgorCQl7CisJCQlzdHJ1Y3QgeGZzX2Rxc3RhdHMgZHE7CisKKwkJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoInt2ZXJzaW9uPSVkLCAiLCBkcS5xc192ZXJzaW9uKTsKKwkJCWlmIChhYmJyZXYodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIuLi59Iik7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJmbGFncz0iKTsKKwkJCXByaW50ZmxhZ3MoeGZzX3F1b3RhX2ZsYWdzLAorCQkJCSAgIGRxLnFzX2ZsYWdzLCAiWEZTX1FVT1RBXz8/PyIpOworCQkJdHByaW50ZigiLCBpbmNvcmVkcXM9JXUsICIsIGRxLnFzX2luY29yZWRxcyk7CisJCQl0cHJpbnRmKCJ1X2lubz0lIiBQUkl1NjQgIiwgIiwgZHEucXNfdXF1b3RhLnFmc19pbm8pOworCQkJdHByaW50ZigidV9uYmxrcz0lIiBQUkl1NjQgIiwgIiwgZHEucXNfdXF1b3RhLnFmc19uYmxrcyk7CisJCQl0cHJpbnRmKCJ1X25leHRlbnRzPSV1LCAiLCBkcS5xc191cXVvdGEucWZzX25leHRlbnRzKTsKKwkJCXRwcmludGYoImdfaW5vPSUiIFBSSXU2NCAiLCAiLCBkcS5xc19ncXVvdGEucWZzX2lubyk7CisJCQl0cHJpbnRmKCJnX25ibGtzPSUiIFBSSXU2NCAiLCAiLCBkcS5xc19ncXVvdGEucWZzX25ibGtzKTsKKwkJCXRwcmludGYoImdfbmV4dGVudHM9JXUsICIsIGRxLnFzX2dxdW90YS5xZnNfbmV4dGVudHMpOworCQkJdHByaW50ZigiYnRpbWVsaW1pdD0lZCwgIiwgZHEucXNfYnRpbWVsaW1pdCk7CisJCQl0cHJpbnRmKCJpdGltZWxpbWl0PSVkLCAiLCBkcS5xc19pdGltZWxpbWl0KTsKKwkJCXRwcmludGYoInJ0YnRpbWVsaW1pdD0lZCwgIiwgZHEucXNfcnRidGltZWxpbWl0KTsKKwkJCXRwcmludGYoImJ3YXJubGltaXQ9JXUsICIsIGRxLnFzX2J3YXJubGltaXQpOworCQkJdHByaW50ZigiaXdhcm5saW1pdD0ldX0iLCBkcS5xc19pd2FybmxpbWl0KTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9YUVVPVEFPTjoKKwkJeworCQkJdV9pbnQzMl90IGZsYWc7CisKKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZmbGFnKSA8IDApCisJCQl7CisJCQkJdHByaW50Zigiez8/P30gJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50ZigieyIpOworCQkJcHJpbnRmbGFncyh4ZnNfcXVvdGFfZmxhZ3MsIGZsYWcsICJYRlNfUVVPVEFfPz8/Iik7CisJCQl0cHJpbnRmKCJ9Iik7CisJCQlicmVhazsKKwkJfQorCQlkZWZhdWx0OgorCQkJdHByaW50ZigiJSNseCIsIGRhdGEpOworCQkJYnJlYWs7CisJfQorfQorCitpbnQKK3N5c19xdW90YWN0bChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJLyoKKwkgKiBUaGUgTGludXgga2VybmVsIG9ubHkgbG9va3MgYXQgdGhlIGxvdyAzMiBiaXRzIG9mIGNvbW1hbmQgYW5kIGlkCisJICogYXJndW1lbnRzLCBidXQgb24gc29tZSA2NC1iaXQgYXJjaGl0ZWN0dXJlcyAoczM5MHgpIHRoaXMgd29yZAorCSAqIHdpbGwgaGF2ZSBiZWVuIHNpZ24tZXh0ZW5kZWQgd2hlbiB3ZSBzZWUgaXQuICBUaGUgaGlnaCAxIGJpdHMKKwkgKiBkb24ndCBtZWFuIGFueXRoaW5nLCBzbyBkb24ndCBjb25mdXNlIHRoZSBvdXRwdXQgd2l0aCB0aGVtLgorCSAqLworCXVfaW50MzJfdCBxY21kID0gdGNwLT51X2FyZ1swXTsKKwl1X2ludDMyX3QgY21kID0gUUNNRF9DTUQocWNtZCk7CisJdV9pbnQzMl90IHR5cGUgPSBRQ01EX1RZUEUocWNtZCk7CisJdV9pbnQzMl90IGlkID0gdGNwLT51X2FyZ1syXTsKKworCWlmICghdmVyYm9zZSh0Y3ApKQorCQlyZXR1cm4gcHJpbnRhcmdzKHRjcCk7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwl7CisJCXByaW50eHZhbChxdW90YWNtZHMsIGNtZCwgIlFfPz8/Iik7CisJCXRwcmludGYoInwiKTsKKwkJcHJpbnR4dmFsKHF1b3RhdHlwZXMsIHR5cGUsICI/Pz9RVU9UQSIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJc3dpdGNoIChjbWQpCisJCXsKKwkJCWNhc2UgUV9WMV9RVU9UQU9OOgorCQkJY2FzZSBRX1FVT1RBT046CisJCQkJcHJpbnR4dmFsKHF1b3RhX2Zvcm1hdHMsIGlkLCAiUUZNVF9WRlNfPz8/Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIFFfVjFfR0VUUVVPVEE6CisJCQljYXNlIFFfVjJfR0VUUVVPVEE6CisJCQljYXNlIFFfR0VUUVVPVEE6CisJCQljYXNlIFFfVjFfU0VUUVVPVEE6CisJCQljYXNlIFFfVjJfU0VUUVVPVEE6CisJCQljYXNlIFFfVjFfU0VUVVNFOgorCQkJY2FzZSBRX1YyX1NFVFVTRToKKwkJCWNhc2UgUV9TRVRRTElNOgorCQkJY2FzZSBRX1NFVFFVT1RBOgorCQkJY2FzZSBRX1hHRVRRVU9UQToKKwkJCWNhc2UgUV9YU0VUUUxJTToKKwkJCQl0cHJpbnRmKCIldSIsIGlkKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQkJCWJyZWFrOworCQl9CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlCisJeworCQlpZiAoIXRjcC0+dV9hcmdbM10pCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UKKwkJCWRlY29kZV9jbWRfZGF0YSh0Y3AsIGNtZCwgdGNwLT51X2FyZ1szXSk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogTGludXggKi8KKworI2lmIGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKEZSRUVCU0QpCisKKyNpZmRlZiBTVU5PUzQKKyNpbmNsdWRlIDx1ZnMvcXVvdGEuaD4KKyNlbmRpZgorCisjaWZkZWYgRlJFRUJTRAorI2luY2x1ZGUgPHVmcy91ZnMvcXVvdGEuaD4KKyNlbmRpZgorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcXVvdGFjbWRzW10gPSB7CisJe1FfUVVPVEFPTiwgIlFfUVVPVEFPTiJ9LAorCXtRX1FVT1RBT0ZGLCAiUV9RVU9UQU9GRiJ9LAorCXtRX0dFVFFVT1RBLCAiUV9HRVRRVU9UQSJ9LAorCXtRX1NFVFFVT1RBLCAiUV9TRVRRVU9UQSJ9LAorI2lmZGVmIFFfU0VUUUxJTQorCXtRX1NFVFFMSU0sICJRX1NFVFFMSU0ifSwKKyNlbmRpZgorI2lmZGVmIFFfU0VUVVNFCisJe1FfU0VUVVNFLCAiUV9TRVRVU0UifSwKKyNlbmRpZgorCXtRX1NZTkMsICJRX1NZTkMifSwKKwl7MCwgTlVMTH0sCit9OworCitpbnQKK3N5c19xdW90YWN0bChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJLyogZm91cnRoIGFyZyAoYWRkcikgbm90IGludGVycHJldGVkIGhlcmUgKi8KKwlpZiAoZW50ZXJpbmcodGNwKSkKKwl7CisjaWZkZWYgU1VOT1M0CisJCXByaW50eHZhbChxdW90YWNtZHMsIHRjcC0+dV9hcmdbMF0sICJRXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKyNlbmRpZgorI2lmZGVmIEZSRUVCU0QKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChxdW90YWNtZHMsIHRjcC0+dV9hcmdbMV0sICJRXz8/PyIpOworI2VuZGlmCisJCXRwcmludGYoIiwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogU1VOT1M0IHx8IEZSRUVCU0QgKi8KZGlmZiAtLWdpdCBhL3Jlc291cmNlLmMgYi9yZXNvdXJjZS5jCmluZGV4IDFjMzFiYmMuLmI5NTUwYjggMTAwNjQ0Ci0tLSBhL3Jlc291cmNlLmMKKysrIGIvcmVzb3VyY2UuYwpAQCAtMjcsNyArMjcsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogcmVzb3VyY2UuYyx2IDEuMTMgMjAwNC8xMC8wNiAyMjoxNDo1MyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMzYsMTggKzM2LDcgQEAKICNpZmRlZiBMSU5VWAogI2luY2x1ZGUgPHN5cy90aW1lcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotI2RlZmluZSBzcGlubG9ja190IHN0cnVjdCBzcGlubG9ja190Ci0jZGVmaW5lIGlmX2RxYmxrIGRxYmxrCi0jZGVmaW5lIGRxYl9jdXJibG9ja3MgZHFiX2N1cnNwYWNlCi0jZWxzZQotI2luY2x1ZGUgPHN5cy9xdW90YS5oPgotI2VuZGlmCi0jaW5jbHVkZSA8bGludXgvcXVvdGEuaD4KICNlbmRpZiAvKiBMSU5VWCAqLwotI2lmZGVmIFNVTk9TNAotI2luY2x1ZGUgPHVmcy9xdW90YS5oPgotI2VuZGlmIC8qIFNVTk9TNCAqLwogI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKQogI2luY2x1ZGUgPHN5cy90aW1lcy5oPgogI2luY2x1ZGUgPHN5cy90aW1lLmg+CkBAIC02Nyw1NSArNTYsNjAgQEAKICNlbmRpZgogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcmVzb3VyY2VzW10gPSB7Ci0jaWZkZWYgUkxJTUlUX0NQVQotCXsgUkxJTUlUX0NQVSwJIlJMSU1JVF9DUFUiCX0sCi0jZW5kaWYKLSNpZmRlZiBSTElNSVRfRlNJWkUKLQl7IFJMSU1JVF9GU0laRSwJIlJMSU1JVF9GU0laRSIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9EQVRBCi0JeyBSTElNSVRfREFUQSwJIlJMSU1JVF9EQVRBIgl9LAotI2VuZGlmCi0jaWZkZWYgUkxJTUlUX1NUQUNLCi0JeyBSTElNSVRfU1RBQ0ssCSJSTElNSVRfU1RBQ0siCX0sCisjaWZkZWYgUkxJTUlUX0FTCisJeyBSTElNSVRfQVMsCSJSTElNSVRfQVMiCX0sCiAjZW5kaWYKICNpZmRlZiBSTElNSVRfQ09SRQogCXsgUkxJTUlUX0NPUkUsCSJSTElNSVRfQ09SRSIJfSwKICNlbmRpZgotI2lmZGVmIFJMSU1JVF9SU1MKLQl7IFJMSU1JVF9SU1MsCSJSTElNSVRfUlNTIgl9LAorI2lmZGVmIFJMSU1JVF9DUFUKKwl7IFJMSU1JVF9DUFUsCSJSTElNSVRfQ1BVIgl9LAogI2VuZGlmCi0jaWZkZWYgUkxJTUlUX05QUk9DCi0JeyBSTElNSVRfTlBST0MsIlJMSU1JVF9OUFJPQyIJfSwKKyNpZmRlZiBSTElNSVRfREFUQQorCXsgUkxJTUlUX0RBVEEsCSJSTElNSVRfREFUQSIJfSwKICNlbmRpZgotI2lmZGVmIFJMSU1JVF9OT0ZJTEUKLQl7IFJMSU1JVF9OT0ZJTEUsIlJMSU1JVF9OT0ZJTEUiCX0sCi0jZW5kaWYKLSNpZmRlZiBSTElNSVRfTUVNTE9DSwotCXsgUkxJTUlUX01FTUxPQ0ssCSJSTElNSVRfTUVNTE9DSyIJfSwKLSNlbmRpZgotI2lmZGVmIFJMSU1JVF9WTUVNCi0JeyBSTElNSVRfVk1FTSwJIlJMSU1JVF9WTUVNIgl9LAotI2VuZGlmCi0jaWZkZWYgUkxJTUlUX0FTCi0JeyBSTElNSVRfQVMsCSJSTElNSVRfQVMiCX0sCisjaWZkZWYgUkxJTUlUX0ZTSVpFCisJeyBSTElNSVRfRlNJWkUsCSJSTElNSVRfRlNJWkUiCX0sCiAjZW5kaWYKICNpZmRlZiBSTElNSVRfTE9DS1MKIAl7IFJMSU1JVF9MT0NLUywJIlJMSU1JVF9MT0NLUyIJfSwKICNlbmRpZgotI2lmZGVmIFJMSU1JVF9TSUdQRU5ESU5HCi0JeyBSTElNSVRfU0lHUEVORElORywJIlJMSU1JVF9TSUdQRU5ESU5HIgl9LAorI2lmZGVmIFJMSU1JVF9NRU1MT0NLCisJeyBSTElNSVRfTUVNTE9DSywJIlJMSU1JVF9NRU1MT0NLIgl9LAogI2VuZGlmCiAjaWZkZWYgUkxJTUlUX01TR1FVRVVFCiAJeyBSTElNSVRfTVNHUVVFVUUsCSJSTElNSVRfTVNHUVVFVUUiCX0sCiAjZW5kaWYKKyNpZmRlZiBSTElNSVRfTklDRQorCXsgUkxJTUlUX05JQ0UsCSJSTElNSVRfTklDRSIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9OT0ZJTEUKKwl7IFJMSU1JVF9OT0ZJTEUsCSJSTElNSVRfTk9GSUxFIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX05QUk9DCisJeyBSTElNSVRfTlBST0MsCSJSTElNSVRfTlBST0MiCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfUlNTCisJeyBSTElNSVRfUlNTLAkiUkxJTUlUX1JTUyIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9SVFBSSU8KKwl7IFJMSU1JVF9SVFBSSU8sCSJSTElNSVRfUlRQUklPIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX1NJR1BFTkRJTkcKKwl7IFJMSU1JVF9TSUdQRU5ESU5HLAkiUkxJTUlUX1NJR1BFTkRJTkciCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfU1RBQ0sKKwl7IFJMSU1JVF9TVEFDSywJIlJMSU1JVF9TVEFDSyIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9WTUVNCisJeyBSTElNSVRfVk1FTSwJIlJMSU1JVF9WTUVNIgl9LAorI2VuZGlmCiAJeyAwLAkJTlVMTAkJfSwKIH07CiAKICNpZiAhSEFWRV9MT05HX0xPTkdfUkxJTV9UCiBzdGF0aWMgY2hhciAqCi1zcHJpbnRybGltKGxpbSkKLWxvbmcgbGltOworc3ByaW50cmxpbShsb25nIGxpbSkKIHsKIAlzdGF0aWMgY2hhciBidWZbMzJdOwogCkBAIC0xMjgsOSArMTIyLDMwIEBACiAJcmV0dXJuIGJ1ZjsKIH0KIAorIyBpZiBkZWZpbmVkIExJTlVYICYmIChkZWZpbmVkIFBPV0VSUEM2NCB8fCBkZWZpbmVkIFg4Nl82NCkKK3N0YXRpYyB2b2lkCitwcmludF9ybGltaXQzMihzdHJ1Y3QgdGNiICp0Y3ApCit7CisJc3RydWN0IHJsaW1pdDMyIHsKKwkJdW5zaWduZWQgaW50IHJsaW1fY3VyOworCQl1bnNpZ25lZCBpbnQgcmxpbV9tYXg7CisJfSBybGltOworCisJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnJsaW0pIDwgMCkKKwkJdHByaW50Zigiey4uLn0iKTsKKwllbHNlIHsKKwkJdHByaW50Zigie3JsaW1fY3VyPSVzLCIsCisJCQlzcHJpbnRybGltKHJsaW0ucmxpbV9jdXIgPT0gLTEgPyBSTElNX0lORklOSVRZCisJCQkJICAgOiBybGltLnJsaW1fY3VyKSk7CisJCXRwcmludGYoIiBybGltX21heD0lc30iLAorCQkJc3ByaW50cmxpbShybGltLnJsaW1fbWF4ID09IC0xID8gUkxJTV9JTkZJTklUWQorCQkJCSAgIDogcmxpbS5ybGltX21heCkpOworCX0KK30KKyMgZW5kaWYKKwogaW50Ci1zeXNfZ2V0cmxpbWl0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRybGltaXQoc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBybGltaXQgcmxpbTsKIApAQCAtMTQxLDYgKzE1NiwxMCBAQAogCWVsc2UgewogCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworIyBpZiBkZWZpbmVkIExJTlVYICYmIChkZWZpbmVkIFBPV0VSUEM2NCB8fCBkZWZpbmVkIFg4Nl82NCkKKwkJZWxzZSBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKQorCQkJcHJpbnRfcmxpbWl0MzIodGNwKTsKKyMgZW5kaWYKIAkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmcmxpbSkgPCAwKQogCQkJdHByaW50Zigiey4uLn0iKTsKIAkJZWxzZSB7CkBAIC0xNTIsOCArMTcxLDcgQEAKIH0KIAogaW50Ci1zeXNfc2V0cmxpbWl0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zZXRybGltaXQoc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBybGltaXQgcmxpbTsKIApAQCAtMTYyLDYgKzE4MCwxMCBAQAogCQl0cHJpbnRmKCIsICIpOwogCQlpZiAoIXZlcmJvc2UodGNwKSkKIAkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKyMgaWYgZGVmaW5lZCBMSU5VWCAmJiAoZGVmaW5lZCBQT1dFUlBDNjQgfHwgZGVmaW5lZCBYODZfNjQpCisJCWVsc2UgaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkKKwkJCXByaW50X3JsaW1pdDMyKHRjcCk7CisjIGVuZGlmCiAJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnJsaW0pIDwgMCkKIAkJCXRwcmludGYoInsuLi59Iik7CiAJCWVsc2UgewpAQCAtMTczLDExICsxOTUsOSBAQAogfQogI2VuZGlmIC8qICFIQVZFX0xPTkdfTE9OR19STElNX1QgKi8KIAotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKICNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX1JMSU1fVAogc3RhdGljIGNoYXIgKgotc3ByaW50cmxpbTY0KGxpbSkKLXJsaW02NF90IGxpbTsKK3NwcmludHJsaW02NChybGltNjRfdCBsaW0pCiB7CiAJc3RhdGljIGNoYXIgYnVmWzY0XTsKIApAQCAtMTkxLDggKzIxMSw3IEBACiB9CiAKIGludAotc3lzX2dldHJsaW1pdDY0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRybGltaXQ2NChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJc3RydWN0IHJsaW1pdDY0IHJsaW07CiAKQEAgLTIxNCw4ICsyMzMsNyBAQAogfQogCiBpbnQKLXN5c19zZXRybGltaXQ2NCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfc2V0cmxpbWl0NjQoc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBybGltaXQ2NCBybGltOwogCkBAIC0yMzQsNyArMjUyLDYgQEAKIAlyZXR1cm4gMDsKIH0KICNlbmRpZiAvKiBfTEZTNjRfTEFSR0VGSUxFUyB8fCBIQVZFX0xPTkdfTE9OR19STElNX1QgKi8KLSNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KIAogI2lmbmRlZiBTVlI0CiAKQEAgLTI0OSw3MCArMjY2LDY0IEBACiAKICNpZmRlZiBBTFBIQQogdm9pZAotcHJpbnRydXNhZ2UzMih0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7CitwcmludHJ1c2FnZTMyKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyKQogewotICAgIHN0cnVjdCB0aW1ldmFsMzIKLSAgICB7Ci0JdW5zaWduZWQgdHZfc2VjOwotCXVuc2lnbmVkIHR2X3VzZWM7Ci0gICAgfTsKLSAgICBzdHJ1Y3QgcnVzYWdlMzIKLSAgICB7Ci0Jc3RydWN0IHRpbWV2YWwzMiBydV91dGltZTsJLyogdXNlciB0aW1lIHVzZWQgKi8KLQlzdHJ1Y3QgdGltZXZhbDMyIHJ1X3N0aW1lOwkvKiBzeXN0ZW0gdGltZSB1c2VkICovCi0JbG9uZwlydV9tYXhyc3M7CQkvKiBtYXhpbXVtIHJlc2lkZW50IHNldCBzaXplICovCi0JbG9uZwlydV9peHJzczsJCS8qIGludGVncmFsIHNoYXJlZCBtZW1vcnkgc2l6ZSAqLwotCWxvbmcJcnVfaWRyc3M7CQkvKiBpbnRlZ3JhbCB1bnNoYXJlZCBkYXRhIHNpemUgKi8KLQlsb25nCXJ1X2lzcnNzOwkJLyogaW50ZWdyYWwgdW5zaGFyZWQgc3RhY2sgc2l6ZSAqLwotCWxvbmcJcnVfbWluZmx0OwkJLyogcGFnZSByZWNsYWltcyAqLwotCWxvbmcJcnVfbWFqZmx0OwkJLyogcGFnZSBmYXVsdHMgKi8KLQlsb25nCXJ1X25zd2FwOwkJLyogc3dhcHMgKi8KLQlsb25nCXJ1X2luYmxvY2s7CQkvKiBibG9jayBpbnB1dCBvcGVyYXRpb25zICovCi0JbG9uZwlydV9vdWJsb2NrOwkJLyogYmxvY2sgb3V0cHV0IG9wZXJhdGlvbnMgKi8KLQlsb25nCXJ1X21zZ3NuZDsJCS8qIG1lc3NhZ2VzIHNlbnQgKi8KLQlsb25nCXJ1X21zZ3JjdjsJCS8qIG1lc3NhZ2VzIHJlY2VpdmVkICovCi0JbG9uZwlydV9uc2lnbmFsczsJCS8qIHNpZ25hbHMgcmVjZWl2ZWQgKi8KLQlsb25nCXJ1X252Y3N3OwkJLyogdm9sdW50YXJ5IGNvbnRleHQgc3dpdGNoZXMgKi8KLQlsb25nCXJ1X25pdmNzdzsJCS8qIGludm9sdW50YXJ5ICIgKi8KLSAgICB9IHJ1OworCXN0cnVjdCB0aW1ldmFsMzIgeworCQl1bnNpZ25lZCB0dl9zZWM7CisJCXVuc2lnbmVkIHR2X3VzZWM7CisJfTsKKwlzdHJ1Y3QgcnVzYWdlMzIgeworCQlzdHJ1Y3QgdGltZXZhbDMyIHJ1X3V0aW1lOwkvKiB1c2VyIHRpbWUgdXNlZCAqLworCQlzdHJ1Y3QgdGltZXZhbDMyIHJ1X3N0aW1lOwkvKiBzeXN0ZW0gdGltZSB1c2VkICovCisJCWxvbmcJcnVfbWF4cnNzOwkJLyogbWF4aW11bSByZXNpZGVudCBzZXQgc2l6ZSAqLworCQlsb25nCXJ1X2l4cnNzOwkJLyogaW50ZWdyYWwgc2hhcmVkIG1lbW9yeSBzaXplICovCisJCWxvbmcJcnVfaWRyc3M7CQkvKiBpbnRlZ3JhbCB1bnNoYXJlZCBkYXRhIHNpemUgKi8KKwkJbG9uZwlydV9pc3JzczsJCS8qIGludGVncmFsIHVuc2hhcmVkIHN0YWNrIHNpemUgKi8KKwkJbG9uZwlydV9taW5mbHQ7CQkvKiBwYWdlIHJlY2xhaW1zICovCisJCWxvbmcJcnVfbWFqZmx0OwkJLyogcGFnZSBmYXVsdHMgKi8KKwkJbG9uZwlydV9uc3dhcDsJCS8qIHN3YXBzICovCisJCWxvbmcJcnVfaW5ibG9jazsJCS8qIGJsb2NrIGlucHV0IG9wZXJhdGlvbnMgKi8KKwkJbG9uZwlydV9vdWJsb2NrOwkJLyogYmxvY2sgb3V0cHV0IG9wZXJhdGlvbnMgKi8KKwkJbG9uZwlydV9tc2dzbmQ7CQkvKiBtZXNzYWdlcyBzZW50ICovCisJCWxvbmcJcnVfbXNncmN2OwkJLyogbWVzc2FnZXMgcmVjZWl2ZWQgKi8KKwkJbG9uZwlydV9uc2lnbmFsczsJCS8qIHNpZ25hbHMgcmVjZWl2ZWQgKi8KKwkJbG9uZwlydV9udmNzdzsJCS8qIHZvbHVudGFyeSBjb250ZXh0IHN3aXRjaGVzICovCisJCWxvbmcJcnVfbml2Y3N3OwkJLyogaW52b2x1bnRhcnkgIiAqLworCX0gcnU7CiAKLSAgICBpZiAoIWFkZHIpCi0JdHByaW50ZigiTlVMTCIpOwotICAgIGVsc2UgaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkKLQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0gICAgZWxzZSBpZiAodW1vdmUodGNwLCBhZGRyLCAmcnUpIDwgMCkKLQl0cHJpbnRmKCJ7Li4ufSIpOwotICAgIGVsc2UgaWYgKCFhYmJyZXYodGNwKSkgewotCXRwcmludGYoIntydV91dGltZT17JWx1LCAlbHV9LCBydV9zdGltZT17JWx1LCAlbHV9LCAiLAotCQkobG9uZykgcnUucnVfdXRpbWUudHZfc2VjLCAobG9uZykgcnUucnVfdXRpbWUudHZfdXNlYywKLQkJKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3VzZWMpOwotCXRwcmludGYoInJ1X21heHJzcz0lbHUsIHJ1X2l4cnNzPSVsdSwgIiwKLQkJcnUucnVfbWF4cnNzLCBydS5ydV9peHJzcyk7Ci0JdHByaW50ZigicnVfaWRyc3M9JWx1LCBydV9pc3Jzcz0lbHUsICIsCi0JCXJ1LnJ1X2lkcnNzLCBydS5ydV9pc3Jzcyk7Ci0JdHByaW50ZigicnVfbWluZmx0PSVsdSwgcnVfbWFqZmx0PSVsdSwgcnVfbnN3YXA9JWx1LCAiLAotCQlydS5ydV9taW5mbHQsIHJ1LnJ1X21hamZsdCwgcnUucnVfbnN3YXApOwotCXRwcmludGYoInJ1X2luYmxvY2s9JWx1LCBydV9vdWJsb2NrPSVsdSwgIiwKLQkJcnUucnVfaW5ibG9jaywgcnUucnVfb3VibG9jayk7Ci0JdHByaW50ZigicnVfbXNnc25kPSVsdSwgcnVfbXNncmN2PSVsdSwgIiwKLQkJcnUucnVfbXNnc25kLCBydS5ydV9tc2dyY3YpOwotCXRwcmludGYoInJ1X25zaWduYWxzPSVsdSwgcnVfbnZjc3c9JWx1LCBydV9uaXZjc3c9JWx1fSIsCi0JCXJ1LnJ1X25zaWduYWxzLCBydS5ydV9udmNzdywgcnUucnVfbml2Y3N3KTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0JdHByaW50Zigie3J1X3V0aW1lPXslbHUsICVsdX0sIHJ1X3N0aW1lPXslbHUsICVsdX0sIC4uLn0iLAotCQkobG9uZykgcnUucnVfdXRpbWUudHZfc2VjLCAobG9uZykgcnUucnVfdXRpbWUudHZfdXNlYywKLQkJKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3VzZWMpOwotICAgIH0KKwlpZiAoIWFkZHIpCisJCXRwcmludGYoIk5VTEwiKTsKKwllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZydSkgPCAwKQorCQl0cHJpbnRmKCJ7Li4ufSIpOworCWVsc2UgaWYgKCFhYmJyZXYodGNwKSkgeworCQl0cHJpbnRmKCJ7cnVfdXRpbWU9eyVsdSwgJWx1fSwgcnVfc3RpbWU9eyVsdSwgJWx1fSwgIiwKKwkJCShsb25nKSBydS5ydV91dGltZS50dl9zZWMsIChsb25nKSBydS5ydV91dGltZS50dl91c2VjLAorCQkJKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3VzZWMpOworCQl0cHJpbnRmKCJydV9tYXhyc3M9JWx1LCBydV9peHJzcz0lbHUsICIsCisJCQlydS5ydV9tYXhyc3MsIHJ1LnJ1X2l4cnNzKTsKKwkJdHByaW50ZigicnVfaWRyc3M9JWx1LCBydV9pc3Jzcz0lbHUsICIsCisJCQlydS5ydV9pZHJzcywgcnUucnVfaXNyc3MpOworCQl0cHJpbnRmKCJydV9taW5mbHQ9JWx1LCBydV9tYWpmbHQ9JWx1LCBydV9uc3dhcD0lbHUsICIsCisJCQlydS5ydV9taW5mbHQsIHJ1LnJ1X21hamZsdCwgcnUucnVfbnN3YXApOworCQl0cHJpbnRmKCJydV9pbmJsb2NrPSVsdSwgcnVfb3VibG9jaz0lbHUsICIsCisJCQlydS5ydV9pbmJsb2NrLCBydS5ydV9vdWJsb2NrKTsKKwkJdHByaW50ZigicnVfbXNnc25kPSVsdSwgcnVfbXNncmN2PSVsdSwgIiwKKwkJCXJ1LnJ1X21zZ3NuZCwgcnUucnVfbXNncmN2KTsKKwkJdHByaW50ZigicnVfbnNpZ25hbHM9JWx1LCBydV9udmNzdz0lbHUsIHJ1X25pdmNzdz0lbHV9IiwKKwkJCXJ1LnJ1X25zaWduYWxzLCBydS5ydV9udmNzdywgcnUucnVfbml2Y3N3KTsKKwl9CisJZWxzZSB7CisJCXRwcmludGYoIntydV91dGltZT17JWx1LCAlbHV9LCBydV9zdGltZT17JWx1LCAlbHV9LCAuLi59IiwKKwkJCShsb25nKSBydS5ydV91dGltZS50dl9zZWMsIChsb25nKSBydS5ydV91dGltZS50dl91c2VjLAorCQkJKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3VzZWMpOworCX0KIH0KICNlbmRpZgogCiB2b2lkCi1wcmludHJ1c2FnZSh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7CitwcmludHJ1c2FnZShzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKIHsKIAlzdHJ1Y3QgcnVzYWdlIHJ1OwogCkBAIC0zNDcsOCArMzU4LDcgQEAKIH0KIAogaW50Ci1zeXNfZ2V0cnVzYWdlKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRydXNhZ2Uoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXByaW50eHZhbCh1c2FnZXdobywgdGNwLT51X2FyZ1swXSwgIlJVU0FHRV8/Pz8iKTsKQEAgLTM2MSwxNiArMzcxLDE1IEBACiAKICNpZmRlZiBBTFBIQQogaW50Ci1zeXNfb3NmX2dldHJ1c2FnZSh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfb3NmX2dldHJ1c2FnZShzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHh2YWwodXNhZ2V3aG8sIHRjcC0+dV9hcmdbMF0sICJSVVNBR0VfPz8/Iik7Ci0JdHByaW50ZigiLCAiKTsKLSAgICB9Ci0gICAgZWxzZQotCXByaW50cnVzYWdlMzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwodXNhZ2V3aG8sIHRjcC0+dV9hcmdbMF0sICJSVVNBR0VfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJfQorCWVsc2UKKwkJcHJpbnRydXNhZ2UzMih0Y3AsIHRjcC0+dV9hcmdbMV0pOworCXJldHVybiAwOwogfQogI2VuZGlmIC8qIEFMUEhBICovCiAKQEAgLTM3OSw4ICszODgsNyBAQAogI2lmZGVmIExJTlVYCiAKIGludAotc3lzX3N5c2luZm8odGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3N5c2luZm8oc3RydWN0IHRjYiAqdGNwKQogewogCXN0cnVjdCBzeXNpbmZvIHNpOwogCkBAIC00MTQsOCArNDIyLDcgQEAKIH07CiAKIGludAotc3lzX2dldHByaW9yaXR5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19nZXRwcmlvcml0eShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnR4dmFsKHByaW9yaXRpZXMsIHRjcC0+dV9hcmdbMF0sICJQUklPXz8/PyIpOwpAQCAtNDI1LDggKzQzMiw3IEBACiB9CiAKIGludAotc3lzX3NldHByaW9yaXR5KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zZXRwcmlvcml0eShzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnR4dmFsKHByaW9yaXRpZXMsIHRjcC0+dV9hcmdbMF0sICJQUklPXz8/PyIpOwpAQCAtNDM2LDggKzQ0Miw3IEBACiB9CiAKIGludAotc3lzX25pY2UodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX25pY2Uoc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKQogCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKQEAgLTQ0Nyw4ICs0NTIsNyBAQAogI2lmbmRlZiBTVU5PUzQKIAogaW50Ci1zeXNfdGltZXModGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX3RpbWVzKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlzdHJ1Y3QgdG1zIHRidWY7CiAKQEAgLTQ3MCwxNDQgKzQ3NCwzIEBACiB9CiAKICNlbmRpZiAvKiAhU1VOT1M0ICovCi0KLQotLy8jaWZuZGVmIEhBVkVfQU5EUk9JRF9PUwotI2lmZGVmIExJTlVYCi0KLSNkZWZpbmUgTkVXX0NNRChjKSAgICAgICgoMHg4MDw8MTYpKyhjKSkKLSNkZWZpbmUgWFFNX0NNRChjKSAgICAgICgoJ1gnPDw4KSsoYykpCi0jZGVmaW5lIE5FV19DT01NQU5EKGMpICgoICgoYykgPj4gU1VCQ01EU0hJRlQpICYgKDB4ODAgPDwgMTYpKSkKLSNkZWZpbmUgWFFNX0NPTU1BTkQoYykgKCggKChjKSA+PiBTVUJDTURTSElGVCkgJiAoJ1gnIDw8IDgpKSA9PSAoJ1gnIDw8IDgpKQotI2RlZmluZSBPTERfQ09NTUFORChjKSAoIU5FV19DT01NQU5EKGMpICYmICFYUU1fQ09NTUFORChjKSkKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHF1b3RhY21kc1tdID0gewotCXsgUV9RVU9UQU9OLAkiUV9RVU9UQU9OIgl9LAotCXsgUV9RVU9UQU9GRiwJIlFfUVVPVEFPRkYiCX0sCi0JeyBRX0dFVFFVT1RBLAkiUV9HRVRRVU9UQSIJfSwKLQl7IFFfU0VUUVVPVEEsCSJRX1NFVFFVT1RBIgl9LAotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLQl7IFFfU0VUVVNFLAkiUV9TRVRVU0UiCX0sCi0jZW5kaWYKLQl7IFFfU1lOQywJIlFfU1lOQyIJfSwKLSNpZm5kZWYgSEFWRV9BTkRST0lEX09TCi0JeyBRX1NFVFFMSU0sCSJRX1NFVFFMSU0iCX0sCi0JeyBRX0dFVFNUQVRTLAkiUV9HRVRTVEFUUyIJfSwKLQl7IFFfUlNRVUFTSCwJIlFfUlNRVUFTSCIJfSwKLSNlbmRpZgotCXsgTkVXX0NNRCgweDEpLCAiUV9TWU5DIiAgICAgICAgfSwKLQl7IE5FV19DTUQoMHgyKSwgIlFfUVVPVEFPTiIgICAgIH0sCi0JeyBORVdfQ01EKDB4MyksICJRX1FVT1RBT0ZGIiAgICB9LAotCXsgTkVXX0NNRCgweDQpLCAiUV9HRVRGTVQiICAgICAgfSwKLQl7IE5FV19DTUQoMHg1KSwgIlFfR0VUSU5GTyIgICAgIH0sCi0JeyBORVdfQ01EKDB4NiksICJRX1NFVElORk8iICAgICB9LAotCXsgTkVXX0NNRCgweDcpLCAiUV9HRVRRVU9UQSIgICAgfSwKLQl7IE5FV19DTUQoMHg4KSwgIlFfU0VUUVVPVEEiICAgIH0sCi0JeyBYUU1fQ01EKDB4MSksICJRX1hRVU9UQU9OIiAgICB9LAotCXsgWFFNX0NNRCgweDIpLCAiUV9YUVVPVEFPRkYiICAgfSwKLQl7IFhRTV9DTUQoMHgzKSwgIlFfWEdFVFFVT1RBIiAgIH0sCi0JeyBYUU1fQ01EKDB4NCksICJRX1hTRVRRTElNIiAgICB9LAotCXsgWFFNX0NNRCgweDUpLCAiUV9YR0VUUVNUQVQiICAgfSwKLQl7IFhRTV9DTUQoMHg2KSwgIlFfWFFVT1RBUk0iICAgIH0sCi0JeyAwLAkJTlVMTAkJfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YXR5cGVzW10gPSB7Ci0JeyBVU1JRVU9UQSwJIlVTUlFVT1RBIgl9LAotCXsgR1JQUVVPVEEsCSJHUlBRVU9UQSIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1zeXNfcXVvdGFjdGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCS8qCi0JICogVGhlIExpbnV4IGtlcm5lbCBvbmx5IGxvb2tzIGF0IHRoZSBsb3cgMzIgYml0cyBvZiB0aGUgY29tbWFuZAotCSAqIGFyZ3VtZW50LCBidXQgb24gc29tZSA2NC1iaXQgYXJjaGl0ZWN0dXJlcyAoczM5MHgpIHRoaXMgd29yZAotCSAqIHdpbGwgaGF2ZSBiZWVuIHNpZ24tZXh0ZW5kZWQgd2hlbiB3ZSBzZWUgaXQuICBUaGUgaGlnaCAxIGJpdHMKLQkgKiBkb24ndCBtZWFuIGFueXRoaW5nLCBzbyBkb24ndCBjb25mdXNlIHRoZSBvdXRwdXQgd2l0aCB0aGVtLgotCSAqLwotCXVuc2lnbmVkIGludCBjbWQgPSB0Y3AtPnVfYXJnWzBdOwotCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJcHJpbnR4dmFsKHF1b3RhY21kcywgY21kID4+IFNVQkNNRFNISUZULCAiUV8/Pz8iKTsKLQkJdHByaW50ZigifCIpOwotCQlwcmludHh2YWwocXVvdGF0eXBlcywgY21kICYgU1VCQ01ETUFTSywgIj8/P1FVT1RBIik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOwotCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7Ci0JfQotCWVsc2UgewotCQlzdHJ1Y3QgZHFibGsgZHE7Ci0KLQkJaWYgKCF0Y3AtPnVfYXJnWzNdKQotCQkJdHByaW50ZigiTlVMTCIpOwotICAgICAgICAgICAgICAgZWxzZSBpZiAoIXZlcmJvc2UodGNwKSB8fCAhT0xEX0NPTU1BTkQoY21kKSkKLQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKLSAgICAgICAgICAgICAgICBlbHNlIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzNdLCBzaXplb2Yoc3RydWN0IGRxYmxrKSwKLSAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgJmRxKSA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCI/Pz8iKTsKLQkJZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCJ7Iik7Ci0JCQl0cHJpbnRmKCIldSwgIiwgZHEuZHFiX2JoYXJkbGltaXQpOwotCQkJdHByaW50ZigiJXUsICIsIGRxLmRxYl9ic29mdGxpbWl0KTsKLQkJCXRwcmludGYoIiV1LCAiLCBkcS5kcWJfY3VyYmxvY2tzKTsKLQkJCXRwcmludGYoIiV1LCAiLCBkcS5kcWJfaWhhcmRsaW1pdCk7Ci0JCQl0cHJpbnRmKCIldSwgIiwgZHEuZHFiX2lzb2Z0bGltaXQpOwotCQkJdHByaW50ZigiJXUsICIsIGRxLmRxYl9jdXJpbm9kZXMpOwotCQkJdHByaW50ZigiJWx1LCAiLCBkcS5kcWJfYnRpbWUpOwotCQkJdHByaW50ZigiJWx1IiwgZHEuZHFiX2l0aW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRwcmludGYoIn0iKTsKLQkJfQotCi0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYgLyogTGludXggKi8KLS8vI2VuZGlmIC8qIEhBVkVfQU5EUk9JRF9PUyAqLwotCi0jaWYgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoRlJFRUJTRCkKLQotI2lmZGVmIEZSRUVCU0QKLSNpbmNsdWRlIDx1ZnMvdWZzL3F1b3RhLmg+Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHF1b3RhY21kc1tdID0gewotCXsgUV9RVU9UQU9OLAkiUV9RVU9UQU9OIgl9LAotCXsgUV9RVU9UQU9GRiwJIlFfUVVPVEFPRkYiCX0sCi0JeyBRX0dFVFFVT1RBLAkiUV9HRVRRVU9UQSIJfSwKLQl7IFFfU0VUUVVPVEEsCSJRX1NFVFFVT1RBIgl9LAotI2lmZGVmIFFfU0VUUUxJTQotCXsgUV9TRVRRTElNLAkiUV9TRVRRTElNIgl9LAotI2VuZGlmCi0jaWZkZWYgUV9TRVRVU0UKLQl7IFFfU0VUVVNFLAkiUV9TRVRVU0UiCX0sCi0jZW5kaWYKLQl7IFFfU1lOQywJIlFfU1lOQyIJfSwKLQl7IDAsCQlOVUxMCQl9LAotfTsKLQotaW50Ci1zeXNfcXVvdGFjdGwodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCS8qIGZvdXJ0aCBhcmcgKGFkZHIpIG5vdCBpbnRlcnByZXRlZCBoZXJlICovCi0JaWYgKGVudGVyaW5nKHRjcCkpIHsKLSNpZmRlZiBTVU5PUzQKLQkJcHJpbnR4dmFsKHF1b3RhY21kcywgdGNwLT51X2FyZ1swXSwgIlFfPz8/Iik7Ci0JCXRwcmludGYoIiwgIik7Ci0JCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOwotI2VuZGlmCi0jaWZkZWYgRlJFRUJTRAotCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnR4dmFsKHF1b3RhY21kcywgdGNwLT51X2FyZ1sxXSwgIlFfPz8/Iik7Ci0jZW5kaWYKLQkJdHByaW50ZigiLCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBTVU5PUzQgfHwgRlJFRUJTRCAqLwpkaWZmIC0tZ2l0IGEvc2NzaS5jIGIvc2NzaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMDc3YTkKLS0tIC9kZXYvbnVsbAorKysgYi9zY3NpLmMKQEAgLTAsMCArMSwxMTQgQEAKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpZmRlZiBMSU5VWAorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHNjc2kvc2cuaD4KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNnX2lvX2R4ZmVyX2RpcmVjdGlvbltdID0geworCXtTR19EWEZFUl9OT05FLCAgICAgICAgIlNHX0RYRkVSX05PTkUifSwKKwl7U0dfRFhGRVJfVE9fREVWLCAgICAgICJTR19EWEZFUl9UT19ERVYifSwKKwl7U0dfRFhGRVJfRlJPTV9ERVYsICAgICJTR19EWEZFUl9GUk9NX0RFViJ9LAorCXtTR19EWEZFUl9UT19GUk9NX0RFViwgIlNHX0RYRkVSX1RPX0ZST01fREVWIn0sCisJezAsIE5VTEx9Cit9OworCitzdGF0aWMgdm9pZAorcHJpbnRfc2dfaW9fYnVmZmVyKHN0cnVjdCB0Y2IgKnRjcCwgdW5zaWduZWQgY2hhciAqYWRkciwgaW50IGxlbikKK3sKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBOVUxMOworCWludCAgICAgYWxsb2NhdGVkLCBpOworCisJaWYgKGxlbiA9PSAwKQorCQlyZXR1cm47CisJYWxsb2NhdGVkID0gKGxlbiA+IG1heF9zdHJsZW4pID8gbWF4X3N0cmxlbiA6IGxlbjsKKwlpZiAobGVuIDwgMCB8fAorCSAgICAoYnVmID0gbWFsbG9jKGFsbG9jYXRlZCkpID09IE5VTEwgfHwKKwkgICAgdW1vdmVuKHRjcCwgKHVuc2lnbmVkIGxvbmcpIGFkZHIsIGFsbG9jYXRlZCwgKGNoYXIgKikgYnVmKSA8IDApIHsKKwkJdHByaW50ZigiJXAiLCBhZGRyKTsKKwkJZnJlZShidWYpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIiUwMngiLCBidWZbMF0pOworCWZvciAoaSA9IDE7IGkgPCBhbGxvY2F0ZWQ7ICsraSkKKwkJdHByaW50ZigiLCAlMDJ4IiwgYnVmW2ldKTsKKwlmcmVlKGJ1Zik7CisJaWYgKGFsbG9jYXRlZCAhPSBsZW4pCisJCXRwcmludGYoIiwgLi4uIik7Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9zZ19pb19yZXEoc3RydWN0IHRjYiAqdGNwLCBzdHJ1Y3Qgc2dfaW9faGRyICpzZ19pbykKK3sKKwl0cHJpbnRmKCJ7JyVjJywgIiwgc2dfaW8tPmludGVyZmFjZV9pZCk7CisJcHJpbnR4dmFsKHNnX2lvX2R4ZmVyX2RpcmVjdGlvbiwgc2dfaW8tPmR4ZmVyX2RpcmVjdGlvbiwKKwkJICAiU0dfRFhGRVJfPz8/Iik7CisJdHByaW50ZigiLCBjbWRbJXVdPVsiLCBzZ19pby0+Y21kX2xlbik7CisJcHJpbnRfc2dfaW9fYnVmZmVyKHRjcCwgc2dfaW8tPmNtZHAsIHNnX2lvLT5jbWRfbGVuKTsKKwl0cHJpbnRmKCJdLCBteF9zYl9sZW49JWQsICIsIHNnX2lvLT5teF9zYl9sZW4pOworCXRwcmludGYoImlvdmVjX2NvdW50PSVkLCAiLCBzZ19pby0+aW92ZWNfY291bnQpOworCXRwcmludGYoImR4ZmVyX2xlbj0ldSwgIiwgc2dfaW8tPmR4ZmVyX2xlbik7CisJdHByaW50ZigidGltZW91dD0ldSwgIiwgc2dfaW8tPnRpbWVvdXQpOworCXRwcmludGYoImZsYWdzPSUjeCIsIHNnX2lvLT5mbGFncyk7CisKKwlpZiAoc2dfaW8tPmR4ZmVyX2RpcmVjdGlvbiA9PSBTR19EWEZFUl9UT19ERVYgfHwKKwkgICAgc2dfaW8tPmR4ZmVyX2RpcmVjdGlvbiA9PSBTR19EWEZFUl9UT19GUk9NX0RFVikgeworCQl0cHJpbnRmKCIsIGRhdGFbJXVdPVsiLCBzZ19pby0+ZHhmZXJfbGVuKTsKKwkJcHJpbnRzdHIodGNwLCAodW5zaWduZWQgbG9uZykgc2dfaW8tPmR4ZmVycCwKKwkJCSBzZ19pby0+ZHhmZXJfbGVuKTsKKwkJdHByaW50ZigiXSIpOworCX0KK30KKworc3RhdGljIHZvaWQKK3ByaW50X3NnX2lvX3JlcyhzdHJ1Y3QgdGNiICp0Y3AsIHN0cnVjdCBzZ19pb19oZHIgKnNnX2lvKQoreworCWlmIChzZ19pby0+ZHhmZXJfZGlyZWN0aW9uID09IFNHX0RYRkVSX0ZST01fREVWIHx8CisJICAgIHNnX2lvLT5keGZlcl9kaXJlY3Rpb24gPT0gU0dfRFhGRVJfVE9fRlJPTV9ERVYpIHsKKwkJdHByaW50ZigiLCBkYXRhWyV1XT1bIiwgc2dfaW8tPmR4ZmVyX2xlbik7CisJCXByaW50c3RyKHRjcCwgKHVuc2lnbmVkIGxvbmcpIHNnX2lvLT5keGZlcnAsCisJCQkgc2dfaW8tPmR4ZmVyX2xlbik7CisJCXRwcmludGYoIl0iKTsKKwl9CisJdHByaW50ZigiLCBzdGF0dXM9JTAyeCwgIiwgc2dfaW8tPnN0YXR1cyk7CisJdHByaW50ZigibWFza2VkX3N0YXR1cz0lMDJ4LCAiLCBzZ19pby0+bWFza2VkX3N0YXR1cyk7CisJdHByaW50Zigic2JbJXVdPVsiLCBzZ19pby0+c2JfbGVuX3dyKTsKKwlwcmludF9zZ19pb19idWZmZXIodGNwLCBzZ19pby0+c2JwLCBzZ19pby0+c2JfbGVuX3dyKTsKKwl0cHJpbnRmKCJdLCBob3N0X3N0YXR1cz0lI3gsICIsIHNnX2lvLT5ob3N0X3N0YXR1cyk7CisJdHByaW50ZigiZHJpdmVyX3N0YXR1cz0lI3gsICIsIHNnX2lvLT5kcml2ZXJfc3RhdHVzKTsKKwl0cHJpbnRmKCJyZXNpZD0lZCwgIiwgc2dfaW8tPnJlc2lkKTsKKwl0cHJpbnRmKCJkdXJhdGlvbj0lZCwgIiwgc2dfaW8tPmR1cmF0aW9uKTsKKwl0cHJpbnRmKCJpbmZvPSUjeH0iLCBzZ19pby0+aW5mbyk7Cit9CisKK2ludAorc2NzaV9pb2N0bChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgY29kZSwgbG9uZyBhcmcpCit7CisJc3dpdGNoIChjb2RlKSB7CisJY2FzZSBTR19JTzoKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXN0cnVjdCBzZ19pb19oZHIgc2dfaW87CisKKwkJCWlmICh1bW92ZSh0Y3AsIGFyZywgJnNnX2lvKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UgeworCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnRfc2dfaW9fcmVxKHRjcCwgJnNnX2lvKTsKKwkJCX0KKwkJfQorCQlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCQlzdHJ1Y3Qgc2dfaW9faGRyIHNnX2lvOworCisJCQlpZiAoIXN5c2Vycm9yKHRjcCkgJiYgdW1vdmUodGNwLCBhcmcsICZzZ19pbykgPj0gMCkKKwkJCQlwcmludF9zZ19pb19yZXModGNwLCAmc2dfaW8pOworCQkJZWxzZQorCQkJCXRwcmludGYoIn0iKTsKKwkJfQorCQlicmVhazsKKwlkZWZhdWx0OgorCQlpZiAoZW50ZXJpbmcodGNwKSkKKwkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMTsKK30KKyNlbmRpZiAvKiBMSU5VWCAqLwpkaWZmIC0tZ2l0IGEvc2lnbmFsLmMgYi9zaWduYWwuYwppbmRleCBjZWMzNjdjLi5jZTViNDYyIDEwMDY0NAotLS0gYS9zaWduYWwuYworKysgYi9zaWduYWwuYwpAQCAtMzAsMTggKzMwLDI0IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBzaWduYWwuYyx2IDEuNTQgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgogCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0jZWxzZQorI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKICNpbmNsdWRlIDxzeXMvdXNlci5oPgogI2VuZGlmCiAjaW5jbHVkZSA8ZmNudGwuaD4KIAorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworLy9GSVhNRSB1c2UgInNpZ3Byb2NtYXNrIiBvciBzb21ldGhpbmcKKyNkZWZpbmUgc2lnbWFzayhzaWcpICAgICgxVUwgPDwgKChzaWcpIC0gMSkpCisjZGVmaW5lIHNpZ2NvbnRleHRfc3RydWN0IHNpZ2NvbnRleHQKKyNlbmRpZgorCiAjaWZkZWYgU1ZSNAogI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgogI2VuZGlmIC8qIFNWUjQgKi8KQEAgLTc0LDMwICs4MCwxNiBAQAogIyBpbmNsdWRlIDxhc20vcHRyYWNlX29mZnNldHMuaD4KICNlbmRpZiAvKiAhSUE2NCAqLwogCi0jaWYgSEFWRV9BU01fUkVHX0gKLSMgaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0jICBkZWZpbmUgZnBxIGtlcm5lbF9mcHEKLSMgIGRlZmluZSBmcSBrZXJuZWxfZnEKLSMgIGRlZmluZSBmcHUga2VybmVsX2ZwdQotIyBlbmRpZgotIyBpbmNsdWRlIDxhc20vcmVnLmg+Ci0jIGlmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotIyAgdW5kZWYgZnBxCi0jICB1bmRlZiBmcQotIyAgdW5kZWYgZnB1Ci0jIGVuZGlmCiAjaWYgZGVmaW5lZCAoTElOVVgpICYmIGRlZmluZWQgKFNQQVJDNjQpCi0jIGRlZmluZSByX3BjIHJfdHBjCiAjIHVuZGVmIFBUUkFDRV9HRVRSRUdTCiAjIGRlZmluZSBQVFJBQ0VfR0VUUkVHUyBQVFJBQ0VfR0VUUkVHUzY0CiAjIHVuZGVmIFBUUkFDRV9TRVRSRUdTCiAjIGRlZmluZSBQVFJBQ0VfU0VUUkVHUyBQVFJBQ0VfU0VUUkVHUzY0CiAjZW5kaWYgLyogTElOVVggJiYgU1BBUkM2NCAqLwotI2VuZGlmIC8qIEhBVkVfQVNNX1JFR19IICovCiAKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKyNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkgfHwgZGVmaW5lZCAoTUlQUykKIHR5cGVkZWYgc3RydWN0IHsKLQlzdHJ1Y3QgcmVncwkJc2lfcmVnczsKKwlzdHJ1Y3QgcHRfcmVncwkJc2lfcmVnczsKIAlpbnQJCQlzaV9tYXNrOwogfSBtX3NpZ2luZm9fdDsKICNlbGlmIGRlZmluZWQgSEFWRV9BU01fU0lHQ09OVEVYVF9ICkBAIC0xMDUsNyArOTcsNyBAQAogI2luY2x1ZGUgPGFzbS9zaWdjb250ZXh0Lmg+CiAjZW5kaWYgLyogIUlBNjQgJiYgIVg4Nl82NCAqLwogI2Vsc2UgLyogIUhBVkVfQVNNX1NJR0NPTlRFWFRfSCAqLwotI2lmZGVmIEkzODYKKyNpZiBkZWZpbmVkIEkzODYgJiYgIWRlZmluZWQgSEFWRV9TVFJVQ1RfU0lHQ09OVEVYVF9TVFJVQ1QKIHN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCB7CiAJdW5zaWduZWQgc2hvcnQgZ3MsIF9fZ3NoOwogCXVuc2lnbmVkIHNob3J0IGZzLCBfX2ZzaDsKQEAgLTEzMSw3ICsxMjMsNyBAQAogCXVuc2lnbmVkIGxvbmcgY3IyOwogfTsKICNlbHNlIC8qICFJMzg2ICovCi0jaWZkZWYgTTY4SworI2lmIGRlZmluZWQgTTY4SyAmJiAhZGVmaW5lZCBIQVZFX1NUUlVDVF9TSUdDT05URVhUCiBzdHJ1Y3Qgc2lnY29udGV4dAogewogCXVuc2lnbmVkIGxvbmcgc2NfbWFzazsKQEAgLTIxMywxMCArMjA1LDE2IEBACiAjaWZkZWYgU0FfSU5URVJSVVBUCiAJeyBTQV9JTlRFUlJVUFQsCSJTQV9JTlRFUlJVUFQiCX0sCiAjZW5kaWYKLSNpZmRlZiBTQV9OT01BU0sKKyNpZmRlZiBTQV9OT0RFRkVSCisJeyBTQV9OT0RFRkVSLAkiU0FfTk9ERUZFUiIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQgU0FfTk9NQVNLICYmIFNBX05PREVGRVIgIT0gU0FfTk9NQVNLCiAJeyBTQV9OT01BU0ssCSJTQV9OT01BU0siCX0sCiAjZW5kaWYKLSNpZmRlZiBTQV9PTkVTSE9UCisjaWZkZWYgU0FfUkVTRVRIQU5ECisJeyBTQV9SRVNFVEhBTkQsCSJTQV9SRVNFVEhBTkQiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkIFNBX09ORVNIT1QgJiYgU0FfT05FU0hPVCAhPSBTQV9SRVNFVEhBTkQKIAl7IFNBX09ORVNIT1QsCSJTQV9PTkVTSE9UIgl9LAogI2VuZGlmCiAjaWZkZWYgU0FfU0lHSU5GTwpAQCAtMjQwLDYgKzIzOCw5IEBACiAjaWZkZWYgX1NBX0JTRENBTEwKIAl7IF9TQV9CU0RDQUxMLAkiX1NBX0JTRENBTEwiCX0sCiAjZW5kaWYKKyNpZmRlZiBTQV9OT1BUUkFDRQorCXsgU0FfTk9QVFJBQ0UsCSJTQV9OT1BUUkFDRSIJfSwKKyNlbmRpZgogCXsgMCwJCU5VTEwJCX0sCiB9OwogCkBAIC0zMTYsMTggKzMxNywxNyBAQAogI2RlZmluZSBjb3B5X3NpZ3NldCh0Y3AsIGFkZHIsIHMpIGNvcHlfc2lnc2V0X2xlbih0Y3AsIGFkZHIsIHMsIHNpemVvZihzaWdzZXRfdCkpCiAjZW5kaWYKIAotc3RhdGljIGNoYXIgKgotc3ByaW50c2lnbWFzayhzLCBtYXNrLCBydCkKLWNoYXIgKnM7Ci1zaWdzZXRfdCAqbWFzazsKLWludCBydDsgLyogc2V0IG1pZ2h0IGluY2x1ZGUgcmVhbHRpbWUgc2lncyAqLworc3RhdGljIGNvbnN0IGNoYXIgKgorc3ByaW50c2lnbWFzayhjb25zdCBjaGFyICpzdHIsIHNpZ3NldF90ICptYXNrLCBpbnQgcnQpCisvKiBzZXQgbWlnaHQgaW5jbHVkZSByZWFsdGltZSBzaWdzICovCiB7CiAJaW50IGksIG5zaWdzOwogCWludCBtYXhzaWdzOwotCWNoYXIgKmZvcm1hdDsKKwljb25zdCBjaGFyICpmb3JtYXQ7CisJY2hhciAqczsKIAlzdGF0aWMgY2hhciBvdXRzdHJbOCAqIHNpemVvZihzaWdzZXRfdCkgKiA4XTsKIAotCXN0cmNweShvdXRzdHIsIHMpOworCXN0cmNweShvdXRzdHIsIHN0cik7CiAJcyA9IG91dHN0ciArIHN0cmxlbihvdXRzdHIpOwogCW5zaWdzID0gMDsKIAltYXhzaWdzID0gbnNpZ25hbHM7CkBAIC0zOTgsNiArMzk4LDE5IEBACiAJdHByaW50ZigiJXMiLCBzaWduYW1lKG5yKSk7CiB9CiAKK3ZvaWQKK3ByaW50X3NpZ3NldChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgaW50IHJ0KQoreworCXNpZ3NldF90IHNzOworCisJaWYgKCFhZGRyKQorCQl0cHJpbnRmKCJOVUxMIik7CisJZWxzZSBpZiAoY29weV9zaWdzZXQodGNwLCBhZGRyLCAmc3MpIDwgMCkKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCWVsc2UKKwkJcHJpbnRzaWdtYXNrKCZzcywgcnQpOworfQorCiAjaWZkZWYgTElOVVgKIAogI2lmbmRlZiBJTExfSUxMT1BDCkBAIC00MzYsMTQgKzQ0OSwxOSBAQAogI2RlZmluZSBQT0xMX0VSUiAgICAgICAgNCAgICAgICAvKiBpL28gZXJyb3IgKi8KICNkZWZpbmUgUE9MTF9QUkkgICAgICAgIDUgICAgICAgLyogaGlnaCBwcmlvcml0eSBpbnB1dCBhdmFpbGFibGUgKi8KICNkZWZpbmUgUE9MTF9IVVAgICAgICAgIDYgICAgICAgLyogZGV2aWNlIGRpc2Nvbm5lY3RlZCAqLworI2RlZmluZSBTSV9LRVJORUwJMHg4MAkvKiBzZW50IGJ5IGtlcm5lbCAqLwogI2RlZmluZSBTSV9VU0VSICAgICAgICAgMCAgICAgICAvKiBzZW50IGJ5IGtpbGwsIHNpZ3NlbmQsIHJhaXNlICovCiAjZGVmaW5lIFNJX1FVRVVFICAgICAgICAtMSAgICAgIC8qIHNlbnQgYnkgc2lncXVldWUgKi8KICNkZWZpbmUgU0lfVElNRVIgICAgICAgIC0yICAgICAgLyogc2VudCBieSB0aW1lciBleHBpcmF0aW9uICovCiAjZGVmaW5lIFNJX01FU0dRICAgICAgICAtMyAgICAgIC8qIHNlbnQgYnkgcmVhbCB0aW1lIG1lc3Egc3RhdGUgY2hhbmdlICovCiAjZGVmaW5lIFNJX0FTWU5DSU8gICAgICAtNCAgICAgIC8qIHNlbnQgYnkgQUlPIGNvbXBsZXRpb24gKi8KLSNkZWZpbmUgU0lfU0lHSU8JLTUJLyogU2VudCBieSBTSUdJTyAqLwotI2RlZmluZSBTSV9US0lMTAktNgkvKiBTZW50IGJ5IHRraWxsICovCi0jZW5kaWYKKyNkZWZpbmUgU0lfU0lHSU8JLTUJLyogc2VudCBieSBTSUdJTyAqLworI2RlZmluZSBTSV9US0lMTAktNgkvKiBzZW50IGJ5IHRraWxsICovCisjZGVmaW5lIFNJX0FTWU5DTkwJLTYwICAgICAvKiBzZW50IGJ5IGFzeW5jaCBuYW1lIGxvb2t1cCBjb21wbGV0aW9uICovCisKKyNkZWZpbmUgU0lfRlJPTVVTRVIoc2lwKQkoKHNpcCktPnNpX2NvZGUgPD0gMCkKKworI2VuZGlmIC8qIExJTlVYICovCiAKICNpZiBfX0dMSUJDX01JTk9SX18gPCAxICYmICFkZWZpbmVkKEhBVkVfQU5EUk9JRF9PUykKIC8qIFR5cGUgZm9yIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc2lnbmFsLiAgKi8KQEAgLTUzMiwzMyArNTUwLDM5IEBACiAjaWYgZGVmaW5lZCAoU1ZSNCkgfHwgZGVmaW5lZCAoTElOVVgpCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdpbmZvX2NvZGVzW10gPSB7Ci0jaWZkZWYgU0lfTk9JTkZPCi0JeyBTSV9OT0lORk8sCSJTSV9OT0lORk8iCX0sCisjaWZkZWYgU0lfS0VSTkVMCisJeyBTSV9LRVJORUwsCSJTSV9LRVJORUwiCX0sCiAjZW5kaWYKICNpZmRlZiBTSV9VU0VSCiAJeyBTSV9VU0VSLAkiU0lfVVNFUiIJfSwKICNlbmRpZgotI2lmZGVmIFNJX0xXUAotCXsgU0lfTFdQLAkiU0lfTFdQIgl9LAotI2VuZGlmCiAjaWZkZWYgU0lfUVVFVUUKIAl7IFNJX1FVRVVFLAkiU0lfUVVFVUUiCX0sCiAjZW5kaWYKICNpZmRlZiBTSV9USU1FUgogCXsgU0lfVElNRVIsCSJTSV9USU1FUiIJfSwKICNlbmRpZgotI2lmZGVmIFNJX0FTWU5DSU8KLQl7IFNJX0FTWU5DSU8sCSJTSV9BU1lOQ0lPIgl9LAotI2VuZGlmCiAjaWZkZWYgU0lfTUVTR1EKIAl7IFNJX01FU0dRLAkiU0lfTUVTR1EiCX0sCiAjZW5kaWYKKyNpZmRlZiBTSV9BU1lOQ0lPCisJeyBTSV9BU1lOQ0lPLAkiU0lfQVNZTkNJTyIJfSwKKyNlbmRpZgogI2lmZGVmIFNJX1NJR0lPCiAJeyBTSV9TSUdJTywJIlNJX1NJR0lPIgl9LAogI2VuZGlmCiAjaWZkZWYgU0lfVEtJTEwKIAl7IFNJX1RLSUxMLAkiU0lfVEtJTEwiCX0sCiAjZW5kaWYKKyNpZmRlZiBTSV9BU1lOQ05MCisJeyBTSV9BU1lOQ05MLAkiU0lfQVNZTkNOTCIJfSwKKyNlbmRpZgorI2lmZGVmIFNJX05PSU5GTworCXsgU0lfTk9JTkZPLAkiU0lfTk9JTkZPIgl9LAorI2VuZGlmCisjaWZkZWYgU0lfTFdQCisJeyBTSV9MV1AsCSJTSV9MV1AiCX0sCisjZW5kaWYKIAl7IDAsCQlOVUxMCQl9LAogfTsKIApAQCAtNjQyLDkgKzY2Niw3IEBACiB9OwogCiB2b2lkCi1wcmludHNpZ2luZm8oc2lwLCB2ZXJib3NlKQotc2lnaW5mb190ICpzaXA7Ci1pbnQgdmVyYm9zZTsKK3ByaW50c2lnaW5mbyhzaWdpbmZvX3QgKnNpcCwgaW50IHZlcmJvc2UpCiB7CiAJY29uc3QgY2hhciAqY29kZTsKIApAQCAtNzA1LDIzICs3MjcsMzYgQEAKIAkJfQogI2lmZGVmIFNJX0ZST01VU0VSCiAJCWlmIChTSV9GUk9NVVNFUihzaXApKSB7Ci0JCQl0cHJpbnRmKCIsIHNpX3BpZD0lbGQsIHNpX3VpZD0lbGQiLAotCQkJCXNpcC0+c2lfcGlkLCBzaXAtPnNpX3VpZCk7Ci0jaWZkZWYgU0lfUVVFVUUKKwkJCXRwcmludGYoIiwgc2lfcGlkPSVsdSwgc2lfdWlkPSVsdSIsCisJCQkJKHVuc2lnbmVkIGxvbmcpIHNpcC0+c2lfcGlkLAorCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3VpZCk7CiAJCQlzd2l0Y2ggKHNpcC0+c2lfY29kZSkgewotCQkJY2FzZSBTSV9RVUVVRToKKyNpZmRlZiBTSV9VU0VSCisJCQljYXNlIFNJX1VTRVI6CisJCQkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBTSV9US0lMTAorCQkJY2FzZSBTSV9US0lMTDoKKwkJCQlicmVhazsKKyNlbmRpZgogI2lmZGVmIFNJX1RJTUVSCiAJCQljYXNlIFNJX1RJTUVSOgotI2VuZGlmIC8qIFNJX1FVRVVFICovCi0JCQljYXNlIFNJX0FTWU5DSU86Ci0jaWZkZWYgU0lfTUVTR1EKLQkJCWNhc2UgU0lfTUVTR1E6Ci0jZW5kaWYgLyogU0lfTUVTR1EgKi8KLQkJCQl0cHJpbnRmKCIsIHNpX3ZhbHVlPSVkIiwKLQkJCQkJc2lwLT5zaV92YWx1ZS5zaXZhbF9pbnQpOworCQkJCXRwcmludGYoIiwgc2lfdmFsdWU9JWQiLCBzaXAtPnNpX2ludCk7CiAJCQkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBMSU5VWAorCQkJZGVmYXVsdDoKKwkJCQlpZiAoIXNpcC0+c2lfcHRyKQorCQkJCQlicmVhazsKKwkJCQlpZiAoIXZlcmJvc2UpCisJCQkJCXRwcmludGYoIiwgLi4uIik7CisJCQkJZWxzZQorCQkJCQl0cHJpbnRmKCIsIHNpX3ZhbHVlPXtpbnQ9JXUsIHB0cj0lI2x4fSIsCisJCQkJCQlzaXAtPnNpX2ludCwKKwkJCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3B0cik7CisJCQkJYnJlYWs7CisjZW5kaWYKIAkJCX0KLSNlbmRpZiAvKiBTSV9RVUVVRSAqLwogCQl9CiAJCWVsc2UKICNlbmRpZiAvKiBTSV9GUk9NVVNFUiAqLwpAQCAtNzU4LDEzICs3OTMsMTYgQEAKIAkJCQlicmVhazsKICNpZmRlZiBMSU5VWAogCQkJZGVmYXVsdDoKLQkJCSAgICAgICAgdHByaW50ZigiLCBzaV9waWQ9JWx1LCBzaV91aWQ9JWx1LCAiLAotCQkJCQkodW5zaWduZWQgbG9uZykgc2lwLT5zaV9waWQsCi0JCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3VpZCk7CisJCQkJaWYgKHNpcC0+c2lfcGlkIHx8IHNpcC0+c2lfdWlkKQorCQkJCSAgICAgICAgdHByaW50ZigiLCBzaV9waWQ9JWx1LCBzaV91aWQ9JWx1IiwKKwkJCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3BpZCwKKwkJCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3VpZCk7CisJCQkJaWYgKCFzaXAtPnNpX3B0cikKKwkJCQkJYnJlYWs7CiAJCQkJaWYgKCF2ZXJib3NlKQotCQkJCQl0cHJpbnRmKCIuLi4iKTsKKwkJCQkJdHByaW50ZigiLCAuLi4iKTsKIAkJCQllbHNlIHsKLQkJCQkJdHByaW50Zigic2lfdmFsdWU9e2ludD0ldSwgcHRyPSUjbHh9IiwKKwkJCQkJdHByaW50ZigiLCBzaV92YWx1ZT17aW50PSV1LCBwdHI9JSNseH0iLAogCQkJCQkJc2lwLT5zaV9pbnQsCiAJCQkJCQkodW5zaWduZWQgbG9uZykgc2lwLT5zaV9wdHIpOwogCQkJCX0KQEAgLTc4MSw3ICs4MTksNyBAQAogI2lmZGVmIExJTlVYCiAKIHN0YXRpYyB2b2lkCi1wYXJzZV9zaWdzZXRfdCAoY29uc3QgY2hhciAqc3RyLCBzaWdzZXRfdCAqc2V0KQorcGFyc2Vfc2lnc2V0X3QoY29uc3QgY2hhciAqc3RyLCBzaWdzZXRfdCAqc2V0KQogewogCWNvbnN0IGNoYXIgKnA7CiAJdW5zaWduZWQgaW50IGRpZ2l0OwpAQCAtODI4LDcgKzg2Niw3IEBACiAJaW50IHNmZDsKIAljaGFyIHNuYW1lWzMyXTsKIAljaGFyIGJ1ZlsyMDQ4XTsKLQljaGFyICpzOworCWNvbnN0IGNoYXIgKnM7CiAJaW50IGk7CiAJc2lnc2V0X3QgaWdub3JlZCwgY2F1Z2h0OwogI2VuZGlmCkBAIC05MDIsNyArOTQwLDcgQEAKICNpZmRlZiBTVU5PUzQKIAl2b2lkICgqdV9zaWduYWwpKCk7CiAKLQlpZiAodXBlZWsodGNwLT5waWQsIHVvZmYodV9zaWduYWxbMF0pICsgc2lnKnNpemVvZih1X3NpZ25hbCksCisJaWYgKHVwZWVrKHRjcCwgdW9mZih1X3NpZ25hbFswXSkgKyBzaWcqc2l6ZW9mKHVfc2lnbmFsKSwKIAkgICAgKGxvbmcgKikgJnVfc2lnbmFsKSA8IDApIHsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMTAzMCwxMSArMTA2OCw2IEBACiAJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMF0sICZzaWdtKTsKIAkJcHJpbnRzaWdtYXNrKCZzaWdtLCAwKTsKICNpZm5kZWYgVVNFX1BST0NGUwotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotLy9GSVhNRSB1c2UgInNpZ3Byb2NtYXNrIiBvciBzb21ldGhpbmcKLSNkZWZpbmUgc2lnbWFzayhzaWcpICAgICgxVUwgPDwgKChzaWcpIC0gMSkpCi0jZW5kaWYgCi0KIAkJaWYgKCh0Y3AtPnVfYXJnWzBdICYgc2lnbWFzayhTSUdUUkFQKSkpIHsKIAkJCS8qIE1hcmsgYXR0ZW1wdCB0byBibG9jayBTSUdUUkFQICovCiAJCQl0Y3AtPmZsYWdzIHw9IFRDQl9TSUdUUkFQUEVEOwpAQCAtMTA1MywxMiArMTA4NiwxNCBAQAogCXJldHVybiAwOwogfQogCisjaWYgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoRlJFRUJTRCkKIGludAogc3lzX3NpZ2Jsb2NrKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKIAlyZXR1cm4gc3lzX3NpZ3NldG1hc2sodGNwKTsKIH0KKyNlbmRpZiAvKiBTVU5PUzQgfHwgRlJFRUJTRCAqLwogCiAjZW5kaWYgLyogIVNWUjQgKi8KIApAQCAtMTEwNCwyMyArMTEzOSwyOCBAQAogCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnNhKSA8IDApCiAJCXRwcmludGYoInsuLi59Iik7CiAJZWxzZSB7Ci0JCXN3aXRjaCAoKGxvbmcpIHNhLlNBX0hBTkRMRVIpIHsKLQkJY2FzZSAobG9uZykgU0lHX0VSUjoKLQkJCXRwcmludGYoIntTSUdfRVJSfSIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgKGxvbmcpIFNJR19ERkw6Ci0JCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKLQkJCWJyZWFrOwotCQljYXNlIChsb25nKSBTSUdfSUdOOgorCQkvKiBBcmNoaXRlY3R1cmVzIHVzaW5nIGZ1bmN0aW9uIHBvaW50ZXJzLCBsaWtlCisJCSAqIGhwcGEsIG1heSBuZWVkIHRvIG1hbmlwdWxhdGUgdGhlIGZ1bmN0aW9uIHBvaW50ZXIKKwkJICogdG8gY29tcHV0ZSB0aGUgcmVzdWx0IG9mIGEgY29tcGFyaXNvbi4gSG93ZXZlciwKKwkJICogdGhlIFNBX0hBTkRMRVIgZnVuY3Rpb24gcG9pbnRlciBleGlzdHMgb25seSBpbgorCQkgKiB0aGUgYWRkcmVzcyBzcGFjZSBvZiB0aGUgdHJhY2VkIHByb2Nlc3MsIGFuZCBjYW4ndAorCQkgKiBiZSBtYW5pcHVsYXRlZCBieSBzdHJhY2UuIEluIG9yZGVyIHRvIHByZXZlbnQgdGhlCisJCSAqIGNvbXBpbGVyIGZyb20gZ2VuZXJhdGluZyBjb2RlIHRvIG1hbmlwdWxhdGUKKwkJICogU0FfSEFORExFUiB3ZSBjYXN0IHRoZSBmdW5jdGlvbiBwb2ludGVycyB0byBsb25nLiAqLworCQlpZiAoKGxvbmcpc2EuU0FfSEFORExFUiA9PSAobG9uZylTSUdfRVJSKQorCQkJdHByaW50Zigie1NJR19FUlIsICIpOworCQllbHNlIGlmICgobG9uZylzYS5TQV9IQU5ETEVSID09IChsb25nKVNJR19ERkwpCisJCQl0cHJpbnRmKCJ7U0lHX0RGTCwgIik7CisJCWVsc2UgaWYgKChsb25nKXNhLlNBX0hBTkRMRVIgPT0gKGxvbmcpU0lHX0lHTikgewogI2lmbmRlZiBVU0VfUFJPQ0ZTCiAJCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7CiAJCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKIAkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKIAkJCX0KICNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwotCQkJdHByaW50Zigie1NJR19JR059Iik7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKKwkJCXRwcmludGYoIntTSUdfSUdOLCAiKTsKKwkJfQorCQllbHNlIHsKICNpZm5kZWYgVVNFX1BST0NGUwogCQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gU0lHVFJBUCkgewogCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX1NJR1RSQVBQRUQ7CkBAIC0xMTYwLDEzICsxMjAwLDEzIEBACiAJCXByaW50c2lnbmFsKHRjcC0+dV9hcmdbMF0pOwogCQl0cHJpbnRmKCIsICIpOwogCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKLQkJY2FzZSAoaW50KSBTSUdfRVJSOgorCQljYXNlIChsb25nKSBTSUdfRVJSOgogCQkJdHByaW50ZigiU0lHX0VSUiIpOwogCQkJYnJlYWs7Ci0JCWNhc2UgKGludCkgU0lHX0RGTDoKKwkJY2FzZSAobG9uZykgU0lHX0RGTDoKIAkJCXRwcmludGYoIlNJR19ERkwiKTsKIAkJCWJyZWFrOwotCQljYXNlIChpbnQpIFNJR19JR046CisJCWNhc2UgKGxvbmcpIFNJR19JR046CiAjaWZuZGVmIFVTRV9QUk9DRlMKIAkJCWlmICh0Y3AtPnVfYXJnWzBdID09IFNJR1RSQVApIHsKIAkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9TSUdUUkFQUEVEOwpAQCAtMTE4NiwyMSArMTIyNiwyMyBAQAogCQl9CiAJCXJldHVybiAwOwogCX0KLQllbHNlIHsKKwllbHNlIGlmICghc3lzZXJyb3IodGNwKSkgewogCQlzd2l0Y2ggKHRjcC0+dV9ydmFsKSB7Ci0JCSAgICBjYXNlIChpbnQpIFNJR19FUlI6CisJCSAgICBjYXNlIChsb25nKSBTSUdfRVJSOgogCQkJdGNwLT5hdXhzdHIgPSAiU0lHX0VSUiI7IGJyZWFrOwotCQkgICAgY2FzZSAoaW50KSBTSUdfREZMOgorCQkgICAgY2FzZSAobG9uZykgU0lHX0RGTDoKIAkJCXRjcC0+YXV4c3RyID0gIlNJR19ERkwiOyBicmVhazsKLQkJICAgIGNhc2UgKGludCkgU0lHX0lHTjoKKwkJICAgIGNhc2UgKGxvbmcpIFNJR19JR046CiAJCQl0Y3AtPmF1eHN0ciA9ICJTSUdfSUdOIjsgYnJlYWs7CiAJCSAgICBkZWZhdWx0OgogCQkJdGNwLT5hdXhzdHIgPSBOVUxMOwogCQl9CiAJCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOwogCX0KKwlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIFNWUjQKIGludAogc3lzX3NpZ2hvbGQodGNwKQogc3RydWN0IHRjYiAqdGNwOwpAQCAtMTIxMCwyMCArMTI1MiwxNiBAQAogCX0KIAlyZXR1cm4gMDsKIH0KKyNlbmRpZiAvKiBTVlI0ICovCiAKICNlbmRpZiAvKiBIQVZFX1NJR0FDVElPTiAqLwogCi0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0jZGVmaW5lIHNpZ2NvbnRleHRfc3RydWN0IHNpZ2NvbnRleHQKLSNlbmRpZgotLy8jaWZuZGVmIEhBVkVfQU5EUk9JRF9PUwogI2lmZGVmIExJTlVYCiAKIGludAotc3lzX3NpZ3JldHVybih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzeXNfc2lncmV0dXJuKHN0cnVjdCB0Y2IgKnRjcCkKIHsKLSNpZmRlZiBBUk0KKyNpZiBkZWZpbmVkKEFSTSkKIAlzdHJ1Y3QgcHRfcmVncyByZWdzOwogCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKIApAQCAtMTI1NCw3ICsxMjkyLDcgQEAKIAogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXRjcC0+dV9hcmdbMF0gPSAwOwotCQlpZiAodXBlZWsodGNwLT5waWQsUFRfR1BSMTUsJnVzcCk8MCkKKwkJaWYgKHVwZWVrKHRjcCxQVF9HUFIxNSwmdXNwKTwwKQogCQkJcmV0dXJuIDA7CiAJCWlmICh1bW92ZSh0Y3AsIHVzcCtfX1NJR05BTF9GUkFNRVNJWkUsICZzYykgPCAwKQogCQkJcmV0dXJuIDA7CkBAIC0xMjY4LDE0ICsxMzA2LDEzIEBACiAJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKIAl9CiAJcmV0dXJuIDA7Ci0jZWxzZQotI2lmZGVmIEkzODYKKyNlbGlmIGRlZmluZWQoSTM4NikKIAlsb25nIGVzcDsKIAlzdHJ1Y3Qgc2lnY29udGV4dF9zdHJ1Y3Qgc2M7CiAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQl0Y3AtPnVfYXJnWzBdID0gMDsKLQkJaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlVFU1AsICZlc3ApIDwgMCkKKwkJaWYgKHVwZWVrKHRjcCwgNCpVRVNQLCAmZXNwKSA8IDApCiAJCQlyZXR1cm4gMDsKIAkJaWYgKHVtb3ZlKHRjcCwgZXNwLCAmc2MpIDwgMCkKIAkJCXJldHVybiAwOwpAQCAtMTI5Miw4ICsxMzI5LDcgQEAKIAkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOwogCX0KIAlyZXR1cm4gMDsKLSNlbHNlIC8qICFJMzg2ICovCi0jaWZkZWYgSUE2NAorI2VsaWYgZGVmaW5lZChJQTY0KQogCXN0cnVjdCBzaWdjb250ZXh0IHNjOwogCWxvbmcgc3A7CiAKQEAgLTEzMDEsNyArMTMzNyw3IEBACiAJCS8qIG9mZnNldCBvZiBzaWdjb250ZXh0IGluIHRoZSBrZXJuZWwncyBzaWdmcmFtZSBzdHJ1Y3R1cmU6ICovCiAjCQlkZWZpbmUgU0lHRlJBTUVfU0NfT0ZGU0VUCTB4OTAKIAkJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfUjEyLCAmc3ApIDwgMCkKKwkJaWYgKHVwZWVrKHRjcCwgUFRfUjEyLCAmc3ApIDwgMCkKIAkJCXJldHVybiAwOwogCQlpZiAodW1vdmUodGNwLCBzcCArIDE2ICsgU0lHRlJBTUVfU0NfT0ZGU0VULCAmc2MpIDwgMCkKIAkJCXJldHVybiAwOwpAQCAtMTMxOSwxNSArMTM1NSwyMyBAQAogCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CiAJfQogCXJldHVybiAwOwotI2Vsc2UgLyogIUlBNjQgKi8KLSNpZmRlZiBQT1dFUlBDCisjZWxpZiBkZWZpbmVkKFBPV0VSUEMpCiAJbG9uZyBlc3A7CiAJc3RydWN0IHNpZ2NvbnRleHRfc3RydWN0IHNjOwogCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX1IxLCAmZXNwKSA8IDApCisJCWlmICh1cGVlayh0Y3AsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMSwgJmVzcCkgPCAwKQogCQkJcmV0dXJuIDA7CisJCS8qIFNraXAgZHVtbXkgc3RhY2sgZnJhbWUuICovCisjaWZkZWYgUE9XRVJQQzY0CisJCWlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDApCisJCQllc3AgKz0gMTI4OworCQllbHNlCisJCQllc3AgKz0gNjQ7CisjZWxzZQorCQllc3AgKz0gNjQ7CisjZW5kaWYKIAkJaWYgKHVtb3ZlKHRjcCwgZXNwLCAmc2MpIDwgMCkKIAkJCXJldHVybiAwOwogCQl0Y3AtPnVfYXJnWzBdID0gMTsKQEAgLTEzNDMsMTQgKzEzODcsMTMgQEAKIAkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOwogCX0KIAlyZXR1cm4gMDsKLSNlbHNlIC8qICFQT1dFUlBDICovCi0jaWZkZWYgTTY4SworI2VsaWYgZGVmaW5lZChNNjhLKQogCWxvbmcgdXNwOwogCXN0cnVjdCBzaWdjb250ZXh0IHNjOwogCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9VU1AsICZ1c3ApIDwgMCkKKwkJaWYgKHVwZWVrKHRjcCwgNCpQVF9VU1AsICZ1c3ApIDwgMCkKIAkJCXJldHVybiAwOwogCQlpZiAodW1vdmUodGNwLCB1c3AsICZzYykgPCAwKQogCQkJcmV0dXJuIDA7CkBAIC0xMzY3LDE0ICsxNDEwLDEzIEBACiAJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKIAl9CiAJcmV0dXJuIDA7Ci0jZWxzZSAvKiAhTTY4SyAqLwotI2lmZGVmIEFMUEhBCisjZWxpZiBkZWZpbmVkKEFMUEhBKQogCWxvbmcgZnA7CiAJc3RydWN0IHNpZ2NvbnRleHRfc3RydWN0IHNjOwogCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX0ZQLCAmZnApIDwgMCkKKwkJaWYgKHVwZWVrKHRjcCwgUkVHX0ZQLCAmZnApIDwgMCkKIAkJCXJldHVybiAwOwogCQlpZiAodW1vdmUodGNwLCBmcCwgJnNjKSA8IDApCiAJCQlyZXR1cm4gMDsKQEAgLTEzOTEsMTAgKzE0MzMsOSBAQAogCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CiAJfQogCXJldHVybiAwOwotI2Vsc2UKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKyNlbGlmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQogCWxvbmcgaTE7Ci0Jc3RydWN0IHJlZ3MgcmVnczsKKwlzdHJ1Y3QgcHRfcmVncyByZWdzOwogCW1fc2lnaW5mb190IHNpOwogCiAJaWYocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKSB7CkBAIC0xNDAzLDcgKzE0NDQsNyBAQAogCX0KIAlpZihlbnRlcmluZyh0Y3ApKSB7CiAJCXRjcC0+dV9hcmdbMF0gPSAwOwotCQlpMSA9IHJlZ3Mucl9vMTsKKwkJaTEgPSByZWdzLnVfcmVnc1tVX1JFR19PMV07CiAJCWlmKHVtb3ZlKHRjcCwgaTEsICZzaSkgPCAwKSB7CiAJCQlwZXJyb3IoInNpZ3JldHVybjogdW1vdmUgIik7CiAJCQlyZXR1cm4gMDsKQEAgLTE0MjAsMjQgKzE0NjEsMTM0IEBACiAJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKIAl9CiAJcmV0dXJuIDA7Ci0jZWxzZQotI2lmZGVmIE1JUFMKKyNlbGlmIGRlZmluZWQgKExJTlVYX01JUFNOMzIpIHx8IGRlZmluZWQgKExJTlVYX01JUFNONjQpCisJLyogVGhpcyBkZWNvZGVzIHJ0X3NpZ3JldHVybi4gIFRoZSA2NC1iaXQgQUJJcyBkbyBub3QgaGF2ZQorCSAgIHNpZ3JldHVybi4gICovCiAJbG9uZyBzcDsKLQlzdHJ1Y3Qgc2lnY29udGV4dCBzYzsKKwlzdHJ1Y3QgdWNvbnRleHQgdWM7CiAKIAlpZihlbnRlcmluZyh0Y3ApKSB7Ci0JICAJdGNwLT51X2FyZ1swXSA9IDA7Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1NQLCAmc3ApIDwgMCkKLQkJICAJcmV0dXJuIDA7Ci0JCWlmICh1bW92ZSh0Y3AsIHNwLCAmc2MpIDwgMCkKLQkJICAJcmV0dXJuIDA7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlpZiAodXBlZWsodGNwLCBSRUdfU1AsICZzcCkgPCAwKQorCQkJcmV0dXJuIDA7CisJCS8qIFRoZXJlIGFyZSBzaXggd29yZHMgZm9sbG93ZWQgYnkgYSAxMjgtYnl0ZSBzaWdpbmZvLiAgKi8KKwkJc3AgPSBzcCArIDYgKiA0ICsgMTI4OworCQlpZiAodW1vdmUodGNwLCBzcCwgJnVjKSA8IDApCisJCQlyZXR1cm4gMDsKIAkJdGNwLT51X2FyZ1swXSA9IDE7Ci0JCXRjcC0+dV9hcmdbMV0gPSBzYy5zY19zaWdzZXQ7CisJCXRjcC0+dV9hcmdbMV0gPSAqKGxvbmcgKikgJnVjLnVjX3NpZ21hc2s7CiAJfSBlbHNlIHsKLQkgIAl0Y3AtPnVfcnZhbCA9IHRjcC0+dV9lcnJvciA9IDA7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKKwkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOwogCQlpZih0Y3AtPnVfYXJnWzBdID09IDApCi0JCSAgCXJldHVybiAwOwotCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsIHRjcC0+dV9hcmdbMV0pOworCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOworCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChNSVBTKQorCWxvbmcgc3A7CisJc3RydWN0IHB0X3JlZ3MgcmVnczsKKwltX3NpZ2luZm9fdCBzaTsKKworCWlmKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkgeworCQlwZXJyb3IoInNpZ3JldHVybjogUFRSQUNFX0dFVFJFR1MgIik7CisJCXJldHVybiAwOworCX0KKwlpZihlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlzcCA9IHJlZ3MucmVnc1syOV07CisJCWlmICh1bW92ZSh0Y3AsIHNwLCAmc2kpIDwgMCkKKwkJdGNwLT51X2FyZ1swXSA9IDE7CisJCXRjcC0+dV9hcmdbMV0gPSBzaS5zaV9tYXNrOworCX0gZWxzZSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKKwkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOworCQlpZih0Y3AtPnVfYXJnWzBdID09IDApCisJCQlyZXR1cm4gMDsKKwkJdGNwLT5hdXhzdHIgPSBzcHJpbnRzaWdtYXNrKCJtYXNrIG5vdyAiLCAmc2lnbSwgMCk7CisJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKKwl9CisJcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKENSSVNWMTApIHx8IGRlZmluZWQoQ1JJU1YzMikKKwlzdHJ1Y3Qgc2lnY29udGV4dCBzYzsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWxvbmcgcmVnc1tQVF9NQVgrMV07CisKKwkJdGNwLT51X2FyZ1swXSA9IDA7CisKKwkJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIE5VTEwsIChsb25nKXJlZ3MpIDwgMCkgeworCQkJcGVycm9yKCJzaWdyZXR1cm46IFBUUkFDRV9HRVRSRUdTIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlpZiAodW1vdmUodGNwLCByZWdzW1BUX1VTUF0sICZzYykgPCAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+dV9hcmdbMF0gPSAxOworCQl0Y3AtPnVfYXJnWzFdID0gc2Mub2xkbWFzazsKKwl9IGVsc2UgeworCQlzaWdzZXRfdCBzaWdtOworCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzFdLCAmc2lnbSk7CisJCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKKworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOworCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChUSUxFKQorCXN0cnVjdCB1Y29udGV4dCB1YzsKKwlsb25nIHNwOworCisJLyogb2Zmc2V0IG9mIHVjb250ZXh0IGluIHRoZSBrZXJuZWwncyBzaWdmcmFtZSBzdHJ1Y3R1cmUgKi8KKyMJZGVmaW5lIFNJR0ZSQU1FX1VDX09GRlNFVCBDX0FCSV9TQVZFX0FSRUFfU0laRSArIHNpemVvZihzdHJ1Y3Qgc2lnaW5mbykKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlpZiAodXBlZWsodGNwLCBQVFJFR1NfT0ZGU0VUX1NQLCAmc3ApIDwgMCkKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCBzcCArIFNJR0ZSQU1FX1VDX09GRlNFVCwgJnVjKSA8IDApCisJCQlyZXR1cm4gMDsKKwkJdGNwLT51X2FyZ1swXSA9IDE7CisJCW1lbWNweSh0Y3AtPnVfYXJnICsgMSwgJnVjLnVjX3NpZ21hc2ssIHNpemVvZih1Yy51Y19zaWdtYXNrKSk7CisJfQorCWVsc2UgeworCQlzaWdzZXRfdCBzaWdtOworCisJCW1lbWNweSgmc2lnbSwgdGNwLT51X2FyZyArIDEsIHNpemVvZiAoc2lnbSkpOworCQl0Y3AtPnVfcnZhbCA9IHRjcC0+dV9lcnJvciA9IDA7CisJCWlmICh0Y3AtPnVfYXJnWzBdID09IDApCisJCQlyZXR1cm4gMDsKKwkJdGNwLT5hdXhzdHIgPSBzcHJpbnRzaWdtYXNrKCJtYXNrIG5vdyAiLCAmc2lnbSwgMCk7CisJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKKwl9CisJcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKE1JQ1JPQkxBWkUpCisJc3RydWN0IHNpZ2NvbnRleHQgc2M7CisKKwkvKiBUT0RPOiBWZXJpZnkgdGhhdCB0aGlzIGlzIGNvcnJlY3QuLi4gICovCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJbG9uZyBzcDsKKworCQl0Y3AtPnVfYXJnWzBdID0gMDsKKworCQkvKiBSZWFkIHIxLCB0aGUgc3RhY2sgcG9pbnRlci4gICovCisJCWlmICh1cGVlayh0Y3AsIDEgKiA0LCAmc3ApIDwgMCkKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCBzcCwgJnNjKSA8IDApCisJCQlyZXR1cm4gMDsKKwkJdGNwLT51X2FyZ1swXSA9IDE7CisJCXRjcC0+dV9hcmdbMV0gPSBzYy5vbGRtYXNrOworCX0gZWxzZSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKKwkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOwogCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CiAJfQogCXJldHVybiAwOwpAQCAtMTQ0NSwxNCArMTU5Niw3IEBACiAjd2FybmluZyBObyBzeXNfc2lncmV0dXJuKCkgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlCiAjd2FybmluZyAgICAgICAgIChubyBwcm9ibGVtLCBqdXN0IGEgcmVtaW5kZXIgOi0pCiAJcmV0dXJuIDA7Ci0jZW5kaWYgLyogTUlQUyAqLwotI2VuZGlmIC8qIFNQQVJDIHx8IFNQQVJDNjQgKi8KLSNlbmRpZiAvKiBBTFBIQSAqLwotI2VuZGlmIC8qICFNNjhLICovCi0jZW5kaWYgLyogIVBPV0VSUEMgKi8KLSNlbmRpZiAvKiAhSUE2NCAqLwotI2VuZGlmIC8qICFJMzg2ICovCi0jZW5kaWYgLyogUzM5MCAqLworI2VuZGlmCiB9CiAKIGludApAQCAtMTQ2OCwyNCArMTYxMiwxNyBAQAogfQogCiBpbnQKLXN5c19zaWdzdXNwZW5kKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c19zaWdzdXNwZW5kKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlzaWdzZXRfdCBzaWdtOwogCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzJdLCAmc2lnbSk7Ci0jaWYgMAotCQkvKiBmaXJzdCB0d28gYXJlIG5vdCByZWFsbHkgYXJndW1lbnRzLCBidXQgcHJpbnQgdGhlbSBhbnl3YXkgKi8KLQkJLyogbmV2ZXJtaW5kLCB0aGV5IGFyZSBhbiBhbmFjaHJvbmlzbSBub3csIHRvbyBiYWQuLi4gKi8KLQkJdHByaW50ZigiJWQsICUjeCwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7Ci0jZW5kaWYKIAkJcHJpbnRzaWdtYXNrKCZzaWdtLCAwKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKICNlbmRpZiAvKiBMSU5VWCAqLwotLy8jZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCiAKICNpZiBkZWZpbmVkKFNWUjQpIHx8IGRlZmluZWQoRlJFRUJTRCkKIApAQCAtMTY2NSw4ICsxODAyLDYgQEAKIAkJcmV0dXJuIFJWQUxfSEVYIHwgUlZBTF9TVFI7CiAJfQogI2Vsc2UgLyogIUFMUEhBICovCi0Jc2lnc2V0X3Qgc2lnc2V0OwotCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKICNpZmRlZiBTVlI0CiAJCWlmICh0Y3AtPnVfYXJnWzBdID09IDApCkBAIC0xNjc1LDI0ICsxODEwLDE2IEBACiAjZW5kaWYgLyogU1ZSNCAqLwogCQlwcmludHh2YWwoc2lncHJvY21hc2tjbWRzLCB0Y3AtPnVfYXJnWzBdLCAiU0lHXz8/PyIpOwogCQl0cHJpbnRmKCIsICIpOwotCQlpZiAoIXRjcC0+dV9hcmdbMV0pCi0JCQl0cHJpbnRmKCJOVUxMLCAiKTsKLQkJZWxzZSBpZiAoY29weV9zaWdzZXQodGNwLCB0Y3AtPnVfYXJnWzFdLCAmc2lnc2V0KSA8IDApCi0JCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzFdKTsKLQkJZWxzZSB7Ci0JCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMCk7Ci0JCQl0cHJpbnRmKCIsICIpOwotCQl9CisJCXByaW50X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMV0sIDApOworCQl0cHJpbnRmKCIsICIpOwogCX0KIAllbHNlIHsKIAkJaWYgKCF0Y3AtPnVfYXJnWzJdKQogCQkJdHByaW50ZigiTlVMTCIpOwogCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlIGlmIChjb3B5X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMl0sICZzaWdzZXQpIDwgMCkKLQkJCXRwcmludGYoIls/XSIpOwogCQllbHNlCi0JCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMCk7CisJCQlwcmludF9zaWdzZXQodGNwLCB0Y3AtPnVfYXJnWzJdLCAwKTsKIAl9CiAjZW5kaWYgLyogIUFMUEhBICovCiAJcmV0dXJuIDA7CkBAIC0xNzA1LDE3ICsxODMyLDI1IEBACiBzdHJ1Y3QgdGNiICp0Y3A7CiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKLQkJdHByaW50ZigiJWxkLCAlcyIsIHRjcC0+dV9hcmdbMF0sIHNpZ25hbWUodGNwLT51X2FyZ1sxXSkpOworCQkvKgorCQkgKiBTaWduLWV4dGVuZCBhIDMyLWJpdCB2YWx1ZSB3aGVuIHRoYXQncyB3aGF0IGl0IGlzLgorCQkgKi8KKwkJbG9uZyBwaWQgPSB0Y3AtPnVfYXJnWzBdOworCQlpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPCBzaXplb2YgcGlkKQorCQkJcGlkID0gKGxvbmcpIChpbnQpIHBpZDsKKwkJdHByaW50ZigiJWxkLCAlcyIsIHBpZCwgc2lnbmFtZSh0Y3AtPnVfYXJnWzFdKSk7CiAJfQogCXJldHVybiAwOwogfQogCisjaWYgZGVmaW5lZChGUkVFQlNEKSB8fCBkZWZpbmVkKFNVTk9TNCkKIGludAogc3lzX2tpbGxwZyh0Y3ApCiBzdHJ1Y3QgdGNiICp0Y3A7CiB7CiAJcmV0dXJuIHN5c19raWxsKHRjcCk7CiB9CisjZW5kaWYgLyogRlJFRUJTRCB8fCBTVU5PUzQgKi8KIAogI2lmZGVmIExJTlVYCiBpbnQKQEAgLTE3NDcsNiArMTg4Miw3IEBACiAJcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBTVlI0CiBpbnQgc3lzX3NpZ3dhaXQodGNwKQogc3RydWN0IHRjYiAqdGNwOwogewpAQCAtMTc2Niw2ICsxOTAyLDcgQEAKIAl9CiAJcmV0dXJuIDA7CiB9CisjZW5kaWYgLyogU1ZSNCAqLwogCiAjaWZkZWYgTElOVVgKIApAQCAtMTgwNywyNSArMTk0NCwyOSBAQAogLyogU3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIGFjdGlvbiB0byBiZSB0YWtlbiB3aGVuIGEgc2lnbmFsIGFycml2ZXMuICAqLwogc3RydWN0IG5ld19zaWdhY3Rpb24KIHsKLQl1bmlvbgotCXsKLQkJX19zaWdoYW5kbGVyX3QgX19zYV9oYW5kbGVyOwotCQl2b2lkICgqX19zYV9zaWdhY3Rpb24pIChpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICopOwotCX0KLQlfX3NpZ2FjdGlvbl9oYW5kbGVyOworCV9fc2lnaGFuZGxlcl90IF9fc2FfaGFuZGxlcjsKIAl1bnNpZ25lZCBsb25nIHNhX2ZsYWdzOwogCXZvaWQgKCpzYV9yZXN0b3JlcikgKHZvaWQpOwotCXVuc2lnbmVkIGxvbmcgaW50IHNhX21hc2tbMl07CisJLyogS2VybmVsIHRyZWF0cyBzYV9tYXNrIGFzIGFuIGFycmF5IG9mIGxvbmdzLiAqLworCXVuc2lnbmVkIGxvbmcgc2FfbWFza1tOU0lHIC8gc2l6ZW9mKGxvbmcpID8gTlNJRyAvIHNpemVvZihsb25nKSA6IDFdOworfTsKKy8qIFNhbWUgZm9yIGkzODYtb24teDg2XzY0IGFuZCBzaW1pbGFyIGNhc2VzICovCitzdHJ1Y3QgbmV3X3NpZ2FjdGlvbjMyCit7CisJdWludDMyX3QgX19zYV9oYW5kbGVyOworCXVpbnQzMl90IHNhX2ZsYWdzOworCXVpbnQzMl90IHNhX3Jlc3RvcmVyOworCXVpbnQzMl90IHNhX21hc2tbMiAqIChOU0lHIC8gc2l6ZW9mKGxvbmcpID8gTlNJRyAvIHNpemVvZihsb25nKSA6IDEpXTsKIH07CiAKIAotCWludAotc3lzX3J0X3NpZ2FjdGlvbih0Y3ApCi0Jc3RydWN0IHRjYiAqdGNwOworaW50CitzeXNfcnRfc2lnYWN0aW9uKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlzdHJ1Y3QgbmV3X3NpZ2FjdGlvbiBzYTsKIAlzaWdzZXRfdCBzaWdzZXQ7CiAJbG9uZyBhZGRyOworCWludCByOwogCiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7CkBAIC0xODMzLDQ2ICsxOTc0LDg2IEBACiAJCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOwogCX0gZWxzZQogCQlhZGRyID0gdGNwLT51X2FyZ1syXTsKLQlpZiAoYWRkciA9PSAwKQorCisJaWYgKGFkZHIgPT0gMCkgewogCQl0cHJpbnRmKCJOVUxMIik7Ci0JZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnNhKSA8IDApCi0JCXRwcmludGYoInsuLi59Iik7Ci0JZWxzZSB7Ci0JCXN3aXRjaCAoKGxvbmcpIHNhLl9fc2lnYWN0aW9uX2hhbmRsZXIuX19zYV9oYW5kbGVyKSB7Ci0JCQljYXNlIChsb25nKSBTSUdfRVJSOgotCQkJCXRwcmludGYoIntTSUdfRVJSfSIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSAobG9uZykgU0lHX0RGTDoKLQkJCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgKGxvbmcpIFNJR19JR046Ci0JCQkJdHByaW50Zigie1NJR19JR059Iik7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJCXRwcmludGYoInslI2x4LCAiLAotCQkJCQkJKGxvbmcpIHNhLl9fc2lnYWN0aW9uX2hhbmRsZXIuX19zYV9oYW5kbGVyKTsKLQkJCQlzaWdlbXB0eXNldCgmc2lnc2V0KTsKLSNpZmRlZiBMSU5VWFNQQVJDCi0JCQkJaWYgKHRjcC0+dV9hcmdbNF0gPD0gc2l6ZW9mKHNpZ3NldCkpCi0JCQkJCW1lbWNweSgmc2lnc2V0LCAmc2Euc2FfbWFzaywgdGNwLT51X2FyZ1s0XSk7Ci0jZWxzZQotCQkJCWlmICh0Y3AtPnVfYXJnWzNdIDw9IHNpemVvZihzaWdzZXQpKQotCQkJCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHRjcC0+dV9hcmdbM10pOwotI2VuZGlmCi0JCQkJZWxzZQotCQkJCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHNpemVvZihzaWdzZXQpKTsKLQkJCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMSk7Ci0JCQkJdHByaW50ZigiLCAiKTsKLQkJCQlwcmludGZsYWdzKHNpZ2FjdF9mbGFncywgc2Euc2FfZmxhZ3MsICJTQV8/Pz8iKTsKLSNpZmRlZiBTQV9SRVNUT1JFUgotCQkJCWlmIChzYS5zYV9mbGFncyAmIFNBX1JFU1RPUkVSKQotCQkJCQl0cHJpbnRmKCIsICVwIiwgc2Euc2FfcmVzdG9yZXIpOwotI2VuZGlmCi0JCQkJdHByaW50ZigifSIpOwotCQl9CisJCWdvdG8gYWZ0ZXJfc2E7CiAJfQorCWlmICghdmVyYm9zZSh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwkJZ290byBhZnRlcl9zYTsKKwl9CisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCisJaWYgKHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldICE9IHNpemVvZihzYS5zYV9mbGFncykKKwkgJiYgcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNAorCSkgeworCQlzdHJ1Y3QgbmV3X3NpZ2FjdGlvbjMyIHNhMzI7CisJCXIgPSB1bW92ZSh0Y3AsIGFkZHIsICZzYTMyKTsKKwkJaWYgKHIgPj0gMCkgeworCQkJbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7CisJCQlzYS5fX3NhX2hhbmRsZXIgPSAodm9pZCopKHVuc2lnbmVkIGxvbmcpc2EzMi5fX3NhX2hhbmRsZXI7CisJCQlzYS5zYV9mbGFncyAgICAgPSBzYTMyLnNhX2ZsYWdzOworCQkJc2Euc2FfcmVzdG9yZXIgID0gKHZvaWQqKSh1bnNpZ25lZCBsb25nKXNhMzIuc2FfcmVzdG9yZXI7CisJCQkvKiBLZXJuZWwgdHJlYXRzIHNhX21hc2sgYXMgYW4gYXJyYXkgb2YgbG9uZ3MuCisJCQkgKiBGb3IgMzItYml0IHByb2Nlc3MsICJsb25nIiBpcyB1aW50MzJfdCwgdGh1cywgZm9yIGV4YW1wbGUsCisJCQkgKiAzMnRoIGJpdCBpbiBzYV9tYXNrIHdpbGwgZW5kIHVwIGFzIGJpdCAwIGluIHNhX21hc2tbMV0uCisJCQkgKiBCdXQgZm9yICg2NC1iaXQpIGtlcm5lbCwgMzJ0aCBiaXQgaW4gc2FfbWFzayBpcworCQkJICogMzJ0aCBiaXQgaW4gMHRoICg2NC1iaXQpIGxvbmchCisJCQkgKiBGb3IgbGl0dGxlLWVuZGlhbiwgaXQncyB0aGUgc2FtZS4KKwkJCSAqIEZvciBiaWctZW5kaWFuLCB3ZSBzd2FwIDMyLWJpdCB3b3Jkcy4KKwkJCSAqLworCQkJc2Euc2FfbWFza1swXSA9IHNhMzIuc2FfbWFza1swXSArICgobG9uZykoc2EzMi5zYV9tYXNrWzFdKSA8PCAzMik7CisJCX0KKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJciA9IHVtb3ZlKHRjcCwgYWRkciwgJnNhKTsKKwl9CisJaWYgKHIgPCAwKSB7CisJCXRwcmludGYoInsuLi59Iik7CisJCWdvdG8gYWZ0ZXJfc2E7CisJfQorCS8qIEFyY2hpdGVjdHVyZXMgdXNpbmcgZnVuY3Rpb24gcG9pbnRlcnMsIGxpa2UKKwkgKiBocHBhLCBtYXkgbmVlZCB0byBtYW5pcHVsYXRlIHRoZSBmdW5jdGlvbiBwb2ludGVyCisJICogdG8gY29tcHV0ZSB0aGUgcmVzdWx0IG9mIGEgY29tcGFyaXNvbi4gSG93ZXZlciwKKwkgKiB0aGUgU0FfSEFORExFUiBmdW5jdGlvbiBwb2ludGVyIGV4aXN0cyBvbmx5IGluCisJICogdGhlIGFkZHJlc3Mgc3BhY2Ugb2YgdGhlIHRyYWNlZCBwcm9jZXNzLCBhbmQgY2FuJ3QKKwkgKiBiZSBtYW5pcHVsYXRlZCBieSBzdHJhY2UuIEluIG9yZGVyIHRvIHByZXZlbnQgdGhlCisJICogY29tcGlsZXIgZnJvbSBnZW5lcmF0aW5nIGNvZGUgdG8gbWFuaXB1bGF0ZQorCSAqIFNBX0hBTkRMRVIgd2UgY2FzdCB0aGUgZnVuY3Rpb24gcG9pbnRlcnMgdG8gbG9uZy4gKi8KKwlpZiAoKGxvbmcpc2EuX19zYV9oYW5kbGVyID09IChsb25nKVNJR19FUlIpCisJCXRwcmludGYoIntTSUdfRVJSLCAiKTsKKwllbHNlIGlmICgobG9uZylzYS5fX3NhX2hhbmRsZXIgPT0gKGxvbmcpU0lHX0RGTCkKKwkJdHByaW50Zigie1NJR19ERkwsICIpOworCWVsc2UgaWYgKChsb25nKXNhLl9fc2FfaGFuZGxlciA9PSAobG9uZylTSUdfSUdOKQorCQl0cHJpbnRmKCJ7U0lHX0lHTiwgIik7CisJZWxzZQorCQl0cHJpbnRmKCJ7JSNseCwgIiwgKGxvbmcpIHNhLl9fc2FfaGFuZGxlcik7CisJLyogUXVlc3Rpb25hYmxlIGNvZGUgYmVsb3cuCisJICogS2VybmVsIHdvbid0IGhhbmRsZSBzeXNfcnRfc2lnYWN0aW9uCisJICogd2l0aCB3cm9uZyBzaWdzZXQgc2l6ZSAoanVzdCByZXR1cm5zIEVJTlZBTCkKKwkgKiB0aGVyZWZvcmUgdGNwLT51X2FyZ1szKDQpXSBfbXVzdF8gYmUgTlNJRyAvIDggaGVyZSwKKwkgKiBhbmQgd2UgYWx3YXlzIHVzZSBzbWFsbGVyIG1lbWNweS4gKi8KKwlzaWdlbXB0eXNldCgmc2lnc2V0KTsKKyNpZmRlZiBMSU5VWFNQQVJDCisJaWYgKHRjcC0+dV9hcmdbNF0gPD0gc2l6ZW9mKHNpZ3NldCkpCisJCW1lbWNweSgmc2lnc2V0LCAmc2Euc2FfbWFzaywgdGNwLT51X2FyZ1s0XSk7CisjZWxzZQorCWlmICh0Y3AtPnVfYXJnWzNdIDw9IHNpemVvZihzaWdzZXQpKQorCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHRjcC0+dV9hcmdbM10pOworI2VuZGlmCisJZWxzZQorCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHNpemVvZihzaWdzZXQpKTsKKwlwcmludHNpZ21hc2soJnNpZ3NldCwgMSk7CisJdHByaW50ZigiLCAiKTsKKwlwcmludGZsYWdzKHNpZ2FjdF9mbGFncywgc2Euc2FfZmxhZ3MsICJTQV8/Pz8iKTsKKyNpZmRlZiBTQV9SRVNUT1JFUgorCWlmIChzYS5zYV9mbGFncyAmIFNBX1JFU1RPUkVSKQorCQl0cHJpbnRmKCIsICVwIiwgc2Euc2FfcmVzdG9yZXIpOworI2VuZGlmCisJdHByaW50ZigifSIpOworCisgYWZ0ZXJfc2E6CiAJaWYgKGVudGVyaW5nKHRjcCkpCiAJCXRwcmludGYoIiwgIik7CiAJZWxzZQpAQCAtMTg4MSwxNCArMjA2MiwxMyBAQAogI2VsaWYgZGVmaW5lZChBTFBIQSkKIAkJdHByaW50ZigiLCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKICNlbHNlCi0JCXRwcmludGYoIiwgJWx1IiwgYWRkciA9IHRjcC0+dV9hcmdbM10pOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbM10pOwogI2VuZGlmCiAJcmV0dXJuIDA7CiB9CiAKLQlpbnQKLXN5c19ydF9zaWdwZW5kaW5nKHRjcCkKLQlzdHJ1Y3QgdGNiICp0Y3A7CitpbnQKK3N5c19ydF9zaWdwZW5kaW5nKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlzaWdzZXRfdCBzaWdzZXQ7CiAKQEAgLTE5MDMsOSArMjA4Myw5IEBACiAJfQogCXJldHVybiAwOwogfQotCWludAotc3lzX3J0X3NpZ3N1c3BlbmQodGNwKQotCXN0cnVjdCB0Y2IgKnRjcDsKKworaW50CitzeXNfcnRfc2lnc3VzcGVuZChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJc2lnc2V0X3Qgc2lnbTsKQEAgLTE5MTYsOSArMjA5Niw5IEBACiAJfQogCXJldHVybiAwOwogfQotCWludAotc3lzX3J0X3NpZ3F1ZXVlaW5mbyh0Y3ApCi0Jc3RydWN0IHRjYiAqdGNwOworCitpbnQKK3N5c19ydF9zaWdxdWV1ZWluZm8oc3RydWN0IHRjYiAqdGNwKQogewogCWlmIChlbnRlcmluZyh0Y3ApKSB7CiAJCXNpZ2luZm9fdCBzaTsKQEAgLTE5MjgsMTMgKzIxMDgsMTIgQEAKIAkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJnNpKSA8IDApCiAJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CiAJCWVsc2UKLQkJCXByaW50c2lnaW5mbygmc2ksIHZlcmJvc2UgKHRjcCkpOworCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSh0Y3ApKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLWludCBzeXNfcnRfc2lndGltZWR3YWl0KHRjcCkKLQlzdHJ1Y3QgdGNiICp0Y3A7CitpbnQgc3lzX3J0X3NpZ3RpbWVkd2FpdChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKGVudGVyaW5nKHRjcCkpIHsKIAkJc2lnc2V0X3Qgc2lnc2V0OwpAQCAtMTk0NSwyMiArMjEyNCw2OCBAQAogCQllbHNlCiAJCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMSk7CiAJCXRwcmludGYoIiwgIik7CisJCS8qIFRoaXMgaXMgdGhlIG9ubHkgInJldHVybiIgcGFyYW1ldGVyLCAqLworCQlpZiAodGNwLT51X2FyZ1sxXSAhPSAwKQorCQkJcmV0dXJuIDA7CisJCS8qIC4uLiBpZiBpdCdzIE5VTEwsIGNhbiBkZWNvZGUgYWxsIG9uIGVudHJ5ICovCisJCXRwcmludGYoIk5VTEwsICIpOwogCX0KLQllbHNlIHsKKwllbHNlIGlmICh0Y3AtPnVfYXJnWzFdICE9IDApIHsKKwkJLyogc3lzY2FsbCBleGl0LCBhbmQgdV9hcmdbMV0gd2Fzbid0IE5VTEwgKi8KIAkJaWYgKHN5c2Vycm9yKHRjcCkpCi0JCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzFdKTsKIAkJZWxzZSB7CiAJCQlzaWdpbmZvX3Qgc2k7CiAJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmc2kpIDwgMCkKLQkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7Ci0JCQllbHNlCi0JCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSAodGNwKSk7Ci0JCQkvKiBYWFggRm9yIG5vdyAqLwotCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7Ci0JCQl0cHJpbnRmKCIsICVkIiwgKGludCkgdGNwLT51X2FyZ1szXSk7CisJCQkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1sxXSk7CisJCQllbHNlIHsKKwkJCQlwcmludHNpZ2luZm8oJnNpLCB2ZXJib3NlKHRjcCkpOworCQkJCXRwcmludGYoIiwgIik7CisJCQl9CiAJCX0KIAl9CisJZWxzZSB7CisJCS8qIHN5c2NhbGwgZXhpdCwgYW5kIHVfYXJnWzFdIHdhcyBOVUxMICovCisJCXJldHVybiAwOworCX0KKwlwcmludF90aW1lc3BlYyh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCXRwcmludGYoIiwgJWQiLCAoaW50KSB0Y3AtPnVfYXJnWzNdKTsKIAlyZXR1cm4gMDsKIH07CiAKK2ludAorc3lzX3Jlc3RhcnRfc3lzY2FsbChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIjwuLi4gcmVzdW1pbmcgaW50ZXJydXB0ZWQgY2FsbCAuLi4+Iik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2RvX3NpZ25hbGZkKHN0cnVjdCB0Y2IgKnRjcCwgaW50IGZsYWdzX2FyZykKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMV0sIDEpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOworCQlpZiAoZmxhZ3NfYXJnID49IDApIHsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKG9wZW5fbW9kZV9mbGFncywgdGNwLT51X2FyZ1tmbGFnc19hcmddLCAiT18/Pz8iKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2lnbmFsZmQoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkb19zaWduYWxmZCh0Y3AsIC0xKTsKK30KKworaW50CitzeXNfc2lnbmFsZmQ0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZG9fc2lnbmFsZmQodGNwLCAzKTsKK30KICNlbmRpZiAvKiBMSU5VWCAqLwpkaWZmIC0tZ2l0IGEvc2lnbmFsZW50LnNoIGIvc2lnbmFsZW50LnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWMwYTFmLi4wMDAwMDAwCi0tLSBhL3NpZ25hbGVudC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLSMhL2Jpbi9zaAotIyBDb3B5cmlnaHQgKGMpIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0jICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0jIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0jIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jCSRJZDogc2lnbmFsZW50LnNoLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIyOjI4IHdpY2hlcnQgRXhwICQKLQotY2F0ICQqIHwKLQlzZWQgLW4gLWUgJ3MvXC9cKi4qXCpcLy8gLycgLWUgJ3MvXiNbIAldKmRlZmluZVsgCV1bIAldKlNJR1woW15fIAldKlwpWyAJXVsgCV0qXChbMC05XVswLTldKlwpWyAJXSokL1wxIFwyL3AnIHwKLQlzb3J0ICsxbiB8Ci0JYXdrICcKLQlCRUdJTiB7Ci0JCXRhYnMgPSAiXHRcdFx0XHRcdFx0XHRcdCIKLQkJc2lnbmFsID0gLTE7Ci0JfQotCSQyIDw9IDI1NiB7Ci0JCWlmIChzaWduYWwgPT0gJDIpCi0JCQluZXh0Ci0JCXdoaWxlICgrK3NpZ25hbCA8ICQyKSB7Ci0JCQluID0gIlwiU0lHXyIgc2lnbmFsICJcIiIKLQkJCXMgPSAiXHQiIG4gIiwiCi0JCQlzID0gcyBzdWJzdHIodGFicywgMSwgMTYvOCAtIGludCgobGVuZ3RoKG4pICsgMSkvOCkpCi0JCQlzID0gcyAiLyogIiBzaWduYWwgIiAqLyIKLQkJCXByaW50IHMKLQkJfQotCQlpZiAoc2lnbmFsID09ICQyKQotCQkJbiA9ICJcIlNJRyIgJDEgIlwiIgotCQluID0gIlwiU0lHIiAkMSAiXCIiCi0JCXMgPSAiXHQiIG4gIiwiCi0JCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAxNi84IC0gaW50KChsZW5ndGgobikgKyAxKS84KSkKLQkJcyA9IHMgIi8qICIgc2lnbmFsICIgKi8iCi0JCXByaW50IHMKLQl9Ci0JJwpkaWZmIC0tZ2l0IGEvc29jay5jIGIvc29jay5jCmluZGV4IDkwMmNjZmUuLmU3YzcyYjUgMTAwNjQ0Ci0tLSBhL3NvY2suYworKysgYi9zb2NrLmMKQEAgLTI0LDcgKzI0LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IHNvY2suYyx2IDEuMTEgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtNDcsOCArNDcsNiBAQAogI2VuZGlmCiAjaW5jbHVkZSA8bmV0L2lmLmg+CiAKLWV4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBhZGRyZmFtc1tdOwotCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaWZmZmxhZ3NbXSA9IHsKIAl7IElGRl9VUCwJCSJJRkZfVVAiCQl9LAogCXsgSUZGX0JST0FEQ0FTVCwJIklGRl9CUk9BRENBU1QiCQl9LApAQCAtODQsOSArODIsNyBAQAogfQogCiBpbnQKLXNvY2tfaW9jdGwodGNwLCBjb2RlLCBhcmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGNvZGUsIGFyZzsKK3NvY2tfaW9jdGwoc3RydWN0IHRjYiAqdGNwLCBsb25nIGNvZGUsIGxvbmcgYXJnKQogewogCXN0cnVjdCBpZnJlcSBpZnI7CiAJc3RydWN0IGlmY29uZiBpZmM7CkBAIC05NSw4ICs5MSw4IEBACiAKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlpZiAoY29kZSA9PSBTSU9DR0lGQ09ORikgewotCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmaWZjKTsKLQkJCWlmIChpZmMuaWZjX2J1ZiA9PSBOVUxMKQorCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJmlmYykgPj0gMAorCQkJICAgICYmIGlmYy5pZmNfYnVmID09IE5VTEwpCiAJCQkJdHByaW50ZigiLCB7JWQgLT4gIiwgaWZjLmlmY19sZW4pOwogCQkJZWxzZQogCQkJCXRwcmludGYoIiwgeyIpOwpAQCAtMTM2LDIzICsxMzIsMzggQEAKIAkJcmV0dXJuIDE7CiAjaWZkZWYgTElOVVgKIAljYXNlIFNJT0NHSUZOQU1FOgorCWNhc2UgU0lPQ1NJRk5BTUU6CiAJY2FzZSBTSU9DR0lGSU5ERVg6CiAJY2FzZSBTSU9DR0lGQUREUjoKKwljYXNlIFNJT0NTSUZBRERSOgogCWNhc2UgU0lPQ0dJRkRTVEFERFI6CisJY2FzZSBTSU9DU0lGRFNUQUREUjoKIAljYXNlIFNJT0NHSUZCUkRBRERSOgorCWNhc2UgU0lPQ1NJRkJSREFERFI6CiAJY2FzZSBTSU9DR0lGTkVUTUFTSzoKKwljYXNlIFNJT0NTSUZORVRNQVNLOgogCWNhc2UgU0lPQ0dJRkZMQUdTOgorCWNhc2UgU0lPQ1NJRkZMQUdTOgogCWNhc2UgU0lPQ0dJRk1FVFJJQzoKKwljYXNlIFNJT0NTSUZNRVRSSUM6CiAJY2FzZSBTSU9DR0lGTVRVOgorCWNhc2UgU0lPQ1NJRk1UVToKIAljYXNlIFNJT0NHSUZTTEFWRToKKwljYXNlIFNJT0NTSUZTTEFWRToKIAljYXNlIFNJT0NHSUZIV0FERFI6Ci0JCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJmlmcik7Ci0gICAgICAgICAgICAgICAgaWYgKHN5c2Vycm9yKHRjcCkpIHsKLQkJCWlmIChjb2RlID09IFNJT0NHSUZOQU1FKQorCWNhc2UgU0lPQ1NJRkhXQUREUjoKKwljYXNlIFNJT0NHSUZUWFFMRU46CisJY2FzZSBTSU9DU0lGVFhRTEVOOgorCWNhc2UgU0lPQ0dJRk1BUDoKKwljYXNlIFNJT0NTSUZNQVA6CisJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZpZnIpIDwgMCkKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKSB7CisJCQlpZiAoY29kZSA9PSBTSU9DR0lGTkFNRSB8fCBjb2RlID09IFNJT0NTSUZOQU1FKQogCQkJCXRwcmludGYoIiwge2lmcl9pbmRleD0lZCwgaWZyX25hbWU9Pz8/fSIsIGlmci5pZnJfaWZpbmRleCk7CiAJCQllbHNlCiAJCQkJdHByaW50ZigiLCB7aWZyX25hbWU9XCIlc1wiLCA/Pz99IiwgaWZyLmlmcl9uYW1lKTsKLQkJfSBlbHNlIGlmIChjb2RlID09IFNJT0NHSUZOQU1FKQorCQl9IGVsc2UgaWYgKGNvZGUgPT0gU0lPQ0dJRk5BTUUgfHwgY29kZSA9PSBTSU9DU0lGTkFNRSkKIAkJCXRwcmludGYoIiwge2lmcl9pbmRleD0lZCwgaWZyX25hbWU9XCIlc1wifSIsCiAJCQkJaWZyLmlmcl9pZmluZGV4LCBpZnIuaWZyX25hbWUpOwogCQllbHNlIHsKQEAgLTE2MiwyMCArMTczLDI0IEBACiAJCQkJdHByaW50ZigiaWZyX2luZGV4PSVkIiwgaWZyLmlmcl9pZmluZGV4KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU0lPQ0dJRkFERFI6CisJCQljYXNlIFNJT0NTSUZBRERSOgogCQkJCXN0ciA9ICJpZnJfYWRkciI7CiAJCQljYXNlIFNJT0NHSUZEU1RBRERSOgotCQkJCWlmIChzdHIgPT0gTlVMTCkKKwkJCWNhc2UgU0lPQ1NJRkRTVEFERFI6CisJCQkJaWYgKCFzdHIpCiAJCQkJCXN0ciA9ICJpZnJfZHN0YWRkciI7CiAJCQljYXNlIFNJT0NHSUZCUkRBRERSOgotCQkJCWlmIChzdHIgPT0gTlVMTCkKKwkJCWNhc2UgU0lPQ1NJRkJSREFERFI6CisJCQkJaWYgKCFzdHIpCiAJCQkJCXN0ciA9ICJpZnJfYnJvYWRhZGRyIjsKIAkJCWNhc2UgU0lPQ0dJRk5FVE1BU0s6Ci0JCQkJaWYgKHN0ciA9PSBOVUxMKQorCQkJY2FzZSBTSU9DU0lGTkVUTUFTSzoKKwkJCQlpZiAoIXN0cikKIAkJCQkJc3RyID0gImlmcl9uZXRtYXNrIjsKIAkJCQl0cHJpbnRmKCIlcz17Iiwgc3RyKTsKIAkJCQlwcmludHh2YWwoYWRkcmZhbXMsCiAJCQkJCSAgaWZyLmlmcl9hZGRyLnNhX2ZhbWlseSwKLSAgICAgICAgICAgICAgICAgICAgCQkJICAiQUZfPz8/Iik7CisJCQkJCSAgIkFGXz8/PyIpOwogCQkJCXRwcmludGYoIiwgIik7CiAJCQkJcHJpbnRfYWRkcih0Y3AsICgobG9uZykgdGNwLT51X2FyZ1syXQogCQkJCQkJICsgb2Zmc2V0b2YgKHN0cnVjdCBpZnJlcSwKQEAgLTE4NCw2ICsxOTksNyBAQAogCQkJCXRwcmludGYoIn0iKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU0lPQ0dJRkhXQUREUjoKKwkJCWNhc2UgU0lPQ1NJRkhXQUREUjoKIAkJCQkvKiBYWFggQXJlIHRoZXJlIG90aGVyIGhhcmR3YXJlIGFkZHJlc3NlcwogCQkJCSAgIHRoYW4gNi1ieXRlIE1BQ3M/ICAqLwogCQkJCWJ5dGVzID0gKHVuc2lnbmVkIGNoYXIgKikgJmlmci5pZnJfaHdhZGRyLnNhX2RhdGE7CkBAIC0xOTIsMjYgKzIwOCw0OSBAQAogCQkJCQlieXRlc1szXSwgYnl0ZXNbNF0sIGJ5dGVzWzVdKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU0lPQ0dJRkZMQUdTOgorCQkJY2FzZSBTSU9DU0lGRkxBR1M6CiAJCQkJdHByaW50ZigiaWZyX2ZsYWdzPSIpOwogCQkJCXByaW50ZmxhZ3MoaWZmZmxhZ3MsIGlmci5pZnJfZmxhZ3MsICJJRkZfPz8/Iik7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFNJT0NHSUZNRVRSSUM6CisJCQljYXNlIFNJT0NTSUZNRVRSSUM6CiAJCQkJdHByaW50ZigiaWZyX21ldHJpYz0lZCIsIGlmci5pZnJfbWV0cmljKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU0lPQ0dJRk1UVToKKwkJCWNhc2UgU0lPQ1NJRk1UVToKIAkJCQl0cHJpbnRmKCJpZnJfbXR1PSVkIiwgaWZyLmlmcl9tdHUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBTSU9DR0lGU0xBVkU6CisJCQljYXNlIFNJT0NTSUZTTEFWRToKIAkJCQl0cHJpbnRmKCJpZnJfc2xhdmU9XCIlc1wiIiwgaWZyLmlmcl9zbGF2ZSk7CiAJCQkJYnJlYWs7CisJCQljYXNlIFNJT0NHSUZUWFFMRU46CisJCQljYXNlIFNJT0NTSUZUWFFMRU46CisJCQkJdHByaW50ZigiaWZyX3FsZW49JWQiLCBpZnIuaWZyX3FsZW4pOworCQkJCWJyZWFrOworCQkJY2FzZSBTSU9DR0lGTUFQOgorCQkJY2FzZSBTSU9DU0lGTUFQOgorCQkJCXRwcmludGYoImlmcl9tYXA9e21lbV9zdGFydD0lI2x4LCAiCisJCQkJCSJtZW1fZW5kPSUjbHgsIGJhc2VfYWRkcj0lI3gsICIKKwkJCQkJImlycT0ldSwgZG1hPSV1LCBwb3J0PSV1fSIsCisJCQkJCWlmci5pZnJfbWFwLm1lbV9zdGFydCwKKwkJCQkJaWZyLmlmcl9tYXAubWVtX2VuZCwKKwkJCQkJKHVuc2lnbmVkKSBpZnIuaWZyX21hcC5iYXNlX2FkZHIsCisJCQkJCSh1bnNpZ25lZCkgaWZyLmlmcl9tYXAuaXJxLAorCQkJCQkodW5zaWduZWQpIGlmci5pZnJfbWFwLmRtYSwKKwkJCQkJKHVuc2lnbmVkKSBpZnIuaWZyX21hcC5wb3J0KTsKKwkJCQlicmVhazsKIAkJCX0KIAkJCXRwcmludGYoIn0iKTsKIAkJfQogCQlyZXR1cm4gMTsKIAljYXNlIFNJT0NHSUZDT05GOgotCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZpZmMpOworCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmaWZjKSA8IDApIHsKKwkJCXRwcmludGYoIj8/P30iKTsKKwkJCXJldHVybiAxOworCQl9CiAJCXRwcmludGYoIiVkLCAiLCBpZmMuaWZjX2xlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKIAkJCXRwcmludGYoIiVseCIsICh1bnNpZ25lZCBsb25nKSBpZmMuaWZjX2J1Zik7CiAJCX0gZWxzZSBpZiAoaWZjLmlmY19idWYgPT0gTlVMTCkgewogCQkJdHByaW50ZigiTlVMTCIpOwpAQCAtMjE5LDggKzI1OCwxMiBAQAogCQkJaW50IGk7CiAJCQl1bnNpZ25lZCBuaWZyYSA9IGlmYy5pZmNfbGVuIC8gc2l6ZW9mKHN0cnVjdCBpZnJlcSk7CiAJCQlzdHJ1Y3QgaWZyZXEgaWZyYVtuaWZyYV07Ci0JCQl1bW92ZW4odGNwLCAodW5zaWduZWQgbG9uZykgaWZjLmlmY19idWYsIHNpemVvZihpZnJhKSwKLQkJCSAgICAgICAoY2hhciAqKSBpZnJhKTsKKworCQkJaWYgKHVtb3Zlbih0Y3AsICh1bnNpZ25lZCBsb25nKSBpZmMuaWZjX2J1ZiwKKwkJCQlzaXplb2YoaWZyYSksIChjaGFyICopIGlmcmEpIDwgMCkgeworCQkJCXRwcmludGYoIiVseH0iLCAodW5zaWduZWQgbG9uZykgaWZjLmlmY19idWYpOworCQkJCXJldHVybiAxOworCQkJfQogCQkJdHByaW50ZigieyIpOwogCQkJZm9yIChpID0gMDsgaSA8IG5pZnJhOyArK2kgKSB7CiAJCQkJaWYgKGkgPiAwKQpkaWZmIC0tZ2l0IGEvc3RyYWNlLWdyYXBoIGIvc3RyYWNlLWdyYXBoCmluZGV4IDhmOTI0N2YuLjZhMDRhYzIgMTAwNzU1Ci0tLSBhL3N0cmFjZS1ncmFwaAorKysgYi9zdHJhY2UtZ3JhcGgKQEAgLTMzLDcgKzMzLDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjCi0jCSRJZDogc3RyYWNlLWdyYXBoLHYgMS4yIDE5OTkvMDgvMzAgMjM6MjY6NTMgd2ljaGVydCBFeHAgJAorIwkkSWQkCiAKIG15ICV1bmZpbmlzaGVkOwogCkBAIC0xMTUsNyArMTE1LDcgQEAKIAkgICAgcmV0dXJuICh1bmRlZiwgJGluKTsKIAl9CiAgICAgfQotfSAgICAKK30KIAogc3ViIHBhcnNlX29uZSB7CiAgICAgbXkgKCRpbikgPSBAXzsKQEAgLTE4OCwxOSArMTg4LDE5IEBACiAJdW5sZXNzIChsZW5ndGgoJGluKSA9PSAwIG9yICRpbiA9fiBzL14sIC8vKSB7CiAJICAgIHByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogbWlzc2luZyBjb21tYS5cbiI7CiAJICAgIHJldHVybiB1bmRlZjsKLQl9CSAgICAKKwl9CiAgICAgfQogICAgIHJldHVybiBAYXJnczsKIH0KLQkgICAgCisKIAogbXkgJGRlcHRoID0gIiI7CiAKICMgcHJvY2VzcyBpbmZvLCBpbmRleGVkIGJ5IHBpZC4KLSMgZmllbGRzOiAKKyMgZmllbGRzOgogIyAgICBwYXJlbnQgICAgICAgICBwaWQgbnVtYmVyCiAjICAgIHNlcSAgICAgICAgICAgIGZvcmtzIGFuZCBleGVjcyBmb3IgdGhpcyBwaWQsIGluIHNlcXVlbmNlICAoYXJyYXkpCi0gCisKICMgIGZpbGVuYW1lIGFuZCBhcmd2IChmcm9tIGxhdGVzdCBleGVjKQogIyAgYmFzZW5hbWUgKGRlcml2ZWQgZnJvbSBmaWxlbmFtZSkKICMgYXJndlswXSBpcyBtb2RpZmllZCB0byBhZGQgdGhlIGJhc2VuYW1lIGlmIGl0IGRpZmZlcnMgZnJvbSB0aGUgMHRoIGFyZ3VtZW50LgpAQCAtMjI5LDcgKzIyOSw3IEBACiAJcHVzaCBAJHNlcSwgWydFWEVDJywgJGZpbGVuYW1lLCAkYXJndl07CiAKIAkkcHJ7JHBpZH17c2VxfSA9ICRzZXE7Ci0gICAgfSBlbHNpZiAoJGNhbGwgZXEgJ2ZvcmsnKSB7CisgICAgfSBlbHNpZiAoJGNhbGwgZXEgJ2ZvcmsnIHx8ICRjYWxsIGVxICdjbG9uZScgfHwgJGNhbGwgZXEgJ3Zmb3JrJykgewogCXJldHVybiBpZiAkcmVzdWx0ID09IDA7CiAKIAlteSAkc2VxID0gJHByeyRwaWR9e3NlcX07CkBAIC0zMDgsOSArMzA4LDkgQEAKIAl9IGVsc2lmICgkJGVsZW1bMF0gZXEgJ0ZPUksnKSB7CiAJICAgIGlmICgkaSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgaWYgKCRsZWFkID1+IC8tJC8pIHsKLSAJCSAgICBkaXNwbGF5X3BpZF90cmFjZSgkJGVsZW1bMV0sICIkbGVhZC0tKy0tIik7CisJCSAgICBkaXNwbGF5X3BpZF90cmFjZSgkJGVsZW1bMV0sICIkbGVhZC0tKy0tIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAJCSAgICBkaXNwbGF5X3BpZF90cmFjZSgkJGVsZW1bMV0sICIkbGVhZCAgKy0tIik7CisJCSAgICBkaXNwbGF5X3BpZF90cmFjZSgkJGVsZW1bMV0sICIkbGVhZCAgKy0tIik7CiAgICAgICAgICAgICAgICAgfQogCSAgICB9IGVsc2lmICgkaSA9PSBAc2VxKSB7CiAJCWRpc3BsYXlfcGlkX3RyYWNlKCQkZWxlbVsxXSwgIiRsZWFkICBgLS0iKTsKQEAgLTMzNiw0ICszMzYsMyBAQAogCiAgICAgZGlzcGxheV9waWRfdHJhY2UoJHN0YXJ0cGlkLCAiIik7CiB9Ci0gICAgCmRpZmYgLS1naXQgYS9zdHJhY2UuMSBiL3N0cmFjZS4xCmluZGV4IGJhNmIxMWMuLmVjMDNlOWEgMTAwNjQ0Ci0tLSBhL3N0cmFjZS4xCisrKyBiL3N0cmFjZS4xCkBAIC0yNSw3ICsyNSw3IEBACiAuXCIgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAuXCIgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIC5cIgotLlwiCSRJZDogc3RyYWNlLjEsdiAxLjEyIDIwMDQvMDgvMzEgMDc6NDc6NDcgcm9sYW5kIEV4cCAkCisuXCIJJElkJAogLlwiCiAuZGUgQ1cKIC5zcApAQCAtMzcsMTMgKzM3LDEzIEBACiAuZmkKIC5zcAogLi4KLS5USCBTVFJBQ0UgMSAiMjAwMy0wMS0yMSIKKy5USCBTVFJBQ0UgMSAiMjAxMC0wMy0zMCIKIC5TSCBOQU1FCiBzdHJhY2UgXC0gdHJhY2Ugc3lzdGVtIGNhbGxzIGFuZCBzaWduYWxzCiAuU0ggU1lOT1BTSVMKIC5CIHN0cmFjZQogWwotLkIgXC1kZmZoaXFydHR0VHZ4eAorLkIgXC1DZERmZmhpcXJ0dHRUdnh4CiBdCiBbCiAuQkkgXC1hIGNvbHVtbgpAQCAtODQsNiArODQsOSBAQAogLkIgc3RyYWNlCiAuQiBcLWMKIFsKKy5CIFwtRAorXQorWwogLkJJIFwtZSBleHByCiBdCiBcJi4uLgpAQCAtMTQ3LDYgKzE1MCwyOCBAQAogLS0tIFNJR0lOVCAoSW50ZXJydXB0KSAtLS0KICsrKyBraWxsZWQgYnkgU0lHSU5UICsrKwogLkNFCitJZiBhIHN5c3RlbSBjYWxsIGlzIGJlaW5nIGV4ZWN1dGVkIGFuZCBtZWFud2hpbGUgYW5vdGhlciBvbmUgaXMgYmVpbmcgY2FsbGVkCitmcm9tIGEgZGlmZmVyZW50IHRocmVhZC9wcm9jZXNzIHRoZW4KKy5CIHN0cmFjZQord2lsbCB0cnkgdG8gcHJlc2VydmUgdGhlIG9yZGVyIG9mIHRob3NlIGV2ZW50cyBhbmQgbWFyayB0aGUgb25nb2luZyBjYWxsIGFzCitiZWluZworLklSIHVuZmluaXNoZWQgLgorV2hlbiB0aGUgY2FsbCByZXR1cm5zIGl0IHdpbGwgYmUgbWFya2VkIGFzCisuSVIgcmVzdW1lZCAuCisuQ1cKK1twaWQgMjg3NzJdIHNlbGVjdCg0LCBbM10sIE5VTEwsIE5VTEwsIE5VTEwgPHVuZmluaXNoZWQgLi4uPgorW3BpZCAyODc3OV0gY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSwgezExMzAzMjIxNDgsIDkzOTk3NzAwMH0pID0gMAorW3BpZCAyODc3Ml0gPC4uLiBzZWxlY3QgcmVzdW1lZD4gKSAgICAgID0gMSAoaW4gWzNdKQorLkNFCitJbnRlcnJ1cHRpb24gb2YgYSAocmVzdGFydGFibGUpIHN5c3RlbSBjYWxsIGJ5IGEgc2lnbmFsIGRlbGl2ZXJ5IGlzIHByb2Nlc3NlZAorZGlmZmVyZW50bHkgYXMga2VybmVsIHRlcm1pbmF0ZXMgdGhlIHN5c3RlbSBjYWxsIGFuZCBhbHNvIGFycmFuZ2VzIGl0cworaW1tZWRpYXRlIHJlZXhlY3V0aW9uIGFmdGVyIHRoZSBzaWduYWwgaGFuZGxlciBjb21wbGV0ZXMuCisuQ1cKK3JlYWQoMCwgMHg3ZmZmZjcyY2Y1Y2YsIDEpICAgICAgICAgICAgICA9ID8gRVJFU1RBUlRTWVMgKFRvIGJlIHJlc3RhcnRlZCkKKy0tLSBTSUdBTFJNIChBbGFybSBjbG9jaykgQCAwICgwKSAtLS0KK3J0X3NpZ3JldHVybigweGUpICAgICAgICAgICAgICAgICAgICAgICA9IDAKK3JlYWQoMCwgIiIuLi4sIDEpICAgICAgICAgICAgICAgICAgICAgICA9IDAKKy5DRQogQXJndW1lbnRzIGFyZSBwcmludGVkIGluIHN5bWJvbGljIGZvcm0gd2l0aCBhIHBhc3Npb24uCiBUaGlzIGV4YW1wbGUgc2hvd3MgdGhlIHNoZWxsIHBlcmZvcm1pbmcgYGA+Pnh5enp5Jycgb3V0cHV0IHJlZGlyZWN0aW9uOgogLkNXCkBAIC0yMjAsNyArMjQ1LDI1IEBACiAuQiBcLWMKIENvdW50IHRpbWUsIGNhbGxzLCBhbmQgZXJyb3JzIGZvciBlYWNoIHN5c3RlbSBjYWxsIGFuZCByZXBvcnQgYSBzdW1tYXJ5IG9uCiBwcm9ncmFtIGV4aXQuICBPbiBMaW51eCwgdGhpcyBhdHRlbXB0cyB0byBzaG93IHN5c3RlbSB0aW1lIChDUFUgdGltZSBzcGVudAotcnVubmluZyBpbiB0aGUga2VybmVsKSBpbmRlcGVuZGVudCBvZiB3YWxsIGNsb2NrIHRpbWUuCitydW5uaW5nIGluIHRoZSBrZXJuZWwpIGluZGVwZW5kZW50IG9mIHdhbGwgY2xvY2sgdGltZS4gIElmCisuQiBcLWMKK2lzIHVzZWQgd2l0aAorLkIgXC1mCitvcgorLkIgXC1GCisoYmVsb3cpLCBvbmx5IGFnZ3JlZ2F0ZSB0b3RhbHMgZm9yIGFsbCB0cmFjZWQgcHJvY2Vzc2VzIGFyZSBrZXB0LgorLlRQCisuQiBcLUMKK0xpa2UKKy5CIFwtYworYnV0IGFsc28gcHJpbnQgcmVndWxhciBvdXRwdXQgd2hpbGUgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgorLlRQCisuQiBcLUQKKyhOb3QgYXZhaWxhYmxlIG9uIFNWUjQgYW5kIEZyZWVCU0QuKQorUnVuIHRyYWNlciBwcm9jZXNzIGFzIGEgZGV0YWNoZWQgZ3JhbmRjaGlsZCwgbm90IGFzIHBhcmVudCBvZiB0aGUKK3RyYWNlZS4gIFRoaXMgcmVkdWNlcyB0aGUgdmlzaWJsZSBlZmZlY3Qgb2YKKy5CIHN0cmFjZQorYnkga2VlcGluZyB0aGUgdHJhY2VlIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MuCiAuVFAKIC5CIFwtZAogU2hvdyBzb21lIGRlYnVnZ2luZyBvdXRwdXQgb2YKQEAgLTIzMSw3ICsyNzQsOSBAQAogVHJhY2UgY2hpbGQgcHJvY2Vzc2VzIGFzIHRoZXkgYXJlIGNyZWF0ZWQgYnkgY3VycmVudGx5IHRyYWNlZAogcHJvY2Vzc2VzIGFzIGEgcmVzdWx0IG9mIHRoZQogLkJSIGZvcmsgKDIpCi1zeXN0ZW0gY2FsbC4gIFRoZSBuZXcgcHJvY2VzcyBpcworc3lzdGVtIGNhbGwuCisuSVAKK09uIG5vbi1MaW51eCBwbGF0Zm9ybXMgdGhlIG5ldyBwcm9jZXNzIGlzCiBhdHRhY2hlZCB0byBhcyBzb29uIGFzIGl0cyBwaWQgaXMga25vd24gKHRocm91Z2ggdGhlIHJldHVybiB2YWx1ZSBvZgogLkJSIGZvcmsgKDIpCiBpbiB0aGUgcGFyZW50IHByb2Nlc3MpLiBUaGlzIG1lYW5zIHRoYXQgc3VjaCBjaGlsZHJlbiBtYXkgcnVuCkBAIC0yMzksMTMgKzI4NCwxNyBAQAogLkJSIHZmb3JrICgyKSksCiB1bnRpbCB0aGUgcGFyZW50IGlzIHNjaGVkdWxlZCBhZ2FpbiB0byBjb21wbGV0ZSBpdHMKIC5SQiAoIHYgKSBmb3JrICgyKQotY2FsbC4KK2NhbGwuICBPbiBMaW51eCB0aGUgY2hpbGQgaXMgdHJhY2VkIGZyb20gaXRzIGZpcnN0IGluc3RydWN0aW9uIHdpdGggbm8gZGVsYXkuCiBJZiB0aGUgcGFyZW50IHByb2Nlc3MgZGVjaWRlcyB0bwogLkJSIHdhaXQgKDIpCiBmb3IgYSBjaGlsZCB0aGF0IGlzIGN1cnJlbnRseQogYmVpbmcgdHJhY2VkLCBpdCBpcyBzdXNwZW5kZWQgdW50aWwgYW4gYXBwcm9wcmlhdGUgY2hpbGQgcHJvY2VzcyBlaXRoZXIKIHRlcm1pbmF0ZXMgb3IgaW5jdXJzIGEgc2lnbmFsIHRoYXQgd291bGQgY2F1c2UgaXQgdG8gdGVybWluYXRlIChhcwogZGV0ZXJtaW5lZCBmcm9tIHRoZSBjaGlsZCdzIGN1cnJlbnQgc2lnbmFsIGRpc3Bvc2l0aW9uKS4KKy5JUAorT24gU3VuT1MgNC54IHRoZSB0cmFjaW5nIG9mCisuQlIgdmZvcmsgcworaXMgYWNjb21wbGlzaGVkIHdpdGggc29tZSBkeW5hbWljIGxpbmtpbmcgdHJpY2tlcnkuCiAuVFAKIC5CIFwtZmYKIElmIHRoZQpAQCAtMjU0LDE4ICszMDMsMTMgQEAKIG9wdGlvbiBpcyBpbiBlZmZlY3QsIGVhY2ggcHJvY2Vzc2VzIHRyYWNlIGlzIHdyaXR0ZW4gdG8KIC5JIGZpbGVuYW1lLnBpZAogd2hlcmUgcGlkIGlzIHRoZSBudW1lcmljIHByb2Nlc3MgaWQgb2YgZWFjaCBwcm9jZXNzLgorVGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aAorLkJSIFwtYyAsCitzaW5jZSBubyBwZXItcHJvY2VzcyBjb3VudHMgYXJlIGtlcHQuCiAuVFAKIC5CIFwtRgotQXR0ZW1wdCB0byBmb2xsb3cKLS5CUiB2Zm9yayBzLgotKE9uIFN1bk9TIDQueCwgdGhpcyBpcyBhY2NvbXBsaXNoZWQgd2l0aAotc29tZSBkeW5hbWljIGxpbmtpbmcgdHJpY2tlcnkuKQotT3RoZXJ3aXNlLAotLkJSIHZmb3JrIHMKLXdpbGwKLW5vdCBiZSBmb2xsb3dlZCBldmVuIGlmCi0uQiBcLWYKLWhhcyBiZWVuIGdpdmVuLgorVGhpcyBvcHRpb24gaXMgbm93IG9ic29sZXRlIGFuZCBpdCBoYXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBhcworLkJSIFwtZiAuCiAuVFAKIC5CIFwtaAogUHJpbnQgdGhlIGhlbHAgc3VtbWFyeS4KQEAgLTM0MiwxMyArMzg2LDEzIEBACiBxdWFsaWZpZXIgaXMKIC5CUiB0cmFjZSAuCiBVc2luZyBhbiBleGNsYW1hdGlvbiBtYXJrIG5lZ2F0ZXMgdGhlIHNldCBvZiB2YWx1ZXMuICBGb3IgZXhhbXBsZSwKLS5CIFwtZW9wZW4KKy5CUiBcLWUgIlwgIiBvcGVuCiBtZWFucyBsaXRlcmFsbHkKLS5CICJcLWUgdHJhY2U9b3BlbiIKKy5CUiBcLWUgIlwgIiB0cmFjZSA9IG9wZW4KIHdoaWNoIGluIHR1cm4gbWVhbnMgdHJhY2Ugb25seSB0aGUKIC5CIG9wZW4KIHN5c3RlbSBjYWxsLiAgQnkgY29udHJhc3QsCi0uQiAiXC1ldHJhY2U9IW9wZW4iCisuQlIgXC1lICJcICIgdHJhY2UgIj0hIiBvcGVuCiBtZWFucyB0byB0cmFjZSBldmVyeSBzeXN0ZW0gY2FsbCBleGNlcHQKIC5CUiBvcGVuIC4KIEluIGFkZGl0aW9uLCB0aGUgc3BlY2lhbCB2YWx1ZXMKQEAgLTM2MSw5MCArNDA1LDEwMSBAQAogZXhwYW5zaW9uIGV2ZW4gaW5zaWRlIHF1b3RlZCBhcmd1bWVudHMuICBJZiBzbywgeW91IG11c3QgZXNjYXBlCiB0aGUgZXhjbGFtYXRpb24gcG9pbnQgd2l0aCBhIGJhY2tzbGFzaC4KIC5UUAotLkJJICJcLWUgdHJhY2U9IiBzZXQKK1xmQlwtZVwgdHJhY2VcZlI9XGZJc2V0XGZSCiBUcmFjZSBvbmx5IHRoZSBzcGVjaWZpZWQgc2V0IG9mIHN5c3RlbSBjYWxscy4gIFRoZQogLkIgXC1jCiBvcHRpb24gaXMgdXNlZnVsIGZvciBkZXRlcm1pbmluZyB3aGljaCBzeXN0ZW0gY2FsbHMgbWlnaHQgYmUgdXNlZnVsCiB0byB0cmFjZS4gIEZvciBleGFtcGxlLAotLkIgdHJhY2U9b3BlbixjbG9zZSxyZWFkLHdyaXRlCisuQlIgdHJhY2UgPSBvcGVuLGNsb3NlLHJlYWQsd3JpdGUKIG1lYW5zIHRvIG9ubHkKIHRyYWNlIHRob3NlIGZvdXIgc3lzdGVtIGNhbGxzLiAgQmUgY2FyZWZ1bCB3aGVuIG1ha2luZyBpbmZlcmVuY2VzCiBhYm91dCB0aGUgdXNlci9rZXJuZWwgYm91bmRhcnkgaWYgb25seSBhIHN1YnNldCBvZiBzeXN0ZW0gY2FsbHMKIGFyZSBiZWluZyBtb25pdG9yZWQuICBUaGUgZGVmYXVsdCBpcwotLkJSIHRyYWNlPWFsbCAuCisuQlIgdHJhY2UgPSBhbGwgLgogLlRQCi0uQiAiXC1lIHRyYWNlPWZpbGUiCisuQlIgIlwtZVwgdHJhY2UiID0gZmlsZQogVHJhY2UgYWxsIHN5c3RlbSBjYWxscyB3aGljaCB0YWtlIGEgZmlsZSBuYW1lIGFzIGFuIGFyZ3VtZW50LiAgWW91CiBjYW4gdGhpbmsgb2YgdGhpcyBhcyBhbiBhYmJyZXZpYXRpb24gZm9yCi0uQlIgIlwtZVwgdHJhY2U9b3BlbixzdGF0LGNobW9kLHVubGluaywiIC4uLgorLkJSICJcLWVcIHRyYWNlIiA9IG9wZW4gLCBzdGF0ICwgY2htb2QgLCB1bmxpbmsgLC4uLgogd2hpY2ggaXMgdXNlZnVsIHRvIHNlZWluZyB3aGF0IGZpbGVzIHRoZSBwcm9jZXNzIGlzIHJlZmVyZW5jaW5nLgogRnVydGhlcm1vcmUsIHVzaW5nIHRoZSBhYmJyZXZpYXRpb24gd2lsbCBlbnN1cmUgdGhhdCB5b3UgZG9uJ3QKIGFjY2lkZW50YWxseSBmb3JnZXQgdG8gaW5jbHVkZSBhIGNhbGwgbGlrZQogLkIgbHN0YXQKIGluIHRoZSBsaXN0LiAgQmV0Y2h5YSB3b3VsZGEgZm9yZ290IHRoYXQgb25lLgogLlRQCi0uQiAiXC1lIHRyYWNlPXByb2Nlc3MiCisuQlIgIlwtZVwgdHJhY2UiID0gcHJvY2VzcwogVHJhY2UgYWxsIHN5c3RlbSBjYWxscyB3aGljaCBpbnZvbHZlIHByb2Nlc3MgbWFuYWdlbWVudC4gIFRoaXMKIGlzIHVzZWZ1bCBmb3Igd2F0Y2hpbmcgdGhlIGZvcmssIHdhaXQsIGFuZCBleGVjIHN0ZXBzIG9mIGEgcHJvY2Vzcy4KIC5UUAotLkIgIlwtZSB0cmFjZT1uZXR3b3JrIgorLkJSICJcLWVcIHRyYWNlIiA9IG5ldHdvcmsKIFRyYWNlIGFsbCB0aGUgbmV0d29yayByZWxhdGVkIHN5c3RlbSBjYWxscy4KIC5UUAotLkIgIlwtZSB0cmFjZT1zaWduYWwiCisuQlIgIlwtZVwgdHJhY2UiID0gc2lnbmFsCiBUcmFjZSBhbGwgc2lnbmFsIHJlbGF0ZWQgc3lzdGVtIGNhbGxzLgogLlRQCi0uQiAiXC1lIHRyYWNlPWlwYyIKKy5CUiAiXC1lXCB0cmFjZSIgPSBpcGMKIFRyYWNlIGFsbCBJUEMgcmVsYXRlZCBzeXN0ZW0gY2FsbHMuCiAuVFAKLS5CSSAiXC1lIGFiYnJldj0iIHNldAorLkJSICJcLWVcIHRyYWNlIiA9IGRlc2MKK1RyYWNlIGFsbCBmaWxlIGRlc2NyaXB0b3IgcmVsYXRlZCBzeXN0ZW0gY2FsbHMuCisuVFAKK1xmQlwtZVwgYWJicmV2XGZSPVxmSXNldFxmUgogQWJicmV2aWF0ZSB0aGUgb3V0cHV0IGZyb20gcHJpbnRpbmcgZWFjaCBtZW1iZXIgb2YgbGFyZ2Ugc3RydWN0dXJlcy4KIFRoZSBkZWZhdWx0IGlzCi0uQlIgYWJicmV2PWFsbCAuCisuQlIgYWJicmV2ID0gYWxsIC4KIFRoZQogLkIgXC12CiBvcHRpb24gaGFzIHRoZSBlZmZlY3Qgb2YKLS5CUiBhYmJyZXY9bm9uZSAuCisuQlIgYWJicmV2ID0gbm9uZSAuCiAuVFAKLS5CSSAiXC1lIHZlcmJvc2U9IiBzZXQKK1xmQlwtZVwgdmVyYm9zZVxmUj1cZklzZXRcZlIKIERlcmVmZXJlbmNlIHN0cnVjdHVyZXMgZm9yIHRoZSBzcGVjaWZpZWQgc2V0IG9mIHN5c3RlbSBjYWxscy4gIFRoZQogZGVmYXVsdCBpcwotLkJSIHZlcmJvc2U9YWxsIC4KKy5CUiB2ZXJib3NlID0gYWxsIC4KIC5UUAotLkJJICJcLWUgcmF3PSIgc2V0CitcZkJcLWVcIHJhd1xmUj1cZklzZXRcZlIKIFByaW50IHJhdywgdW5kZWNvZGVkIGFyZ3VtZW50cyBmb3IgdGhlIHNwZWNpZmllZCBzZXQgb2Ygc3lzdGVtIGNhbGxzLgogVGhpcyBvcHRpb24gaGFzIHRoZSBlZmZlY3Qgb2YgY2F1c2luZyBhbGwgYXJndW1lbnRzIHRvIGJlIHByaW50ZWQKIGluIGhleGFkZWNpbWFsLiAgVGhpcyBpcyBtb3N0bHkgdXNlZnVsIGlmIHlvdSBkb24ndCB0cnVzdCB0aGUKIGRlY29kaW5nIG9yIHlvdSBuZWVkIHRvIGtub3cgdGhlIGFjdHVhbCBudW1lcmljIHZhbHVlIG9mIGFuCiBhcmd1bWVudC4KIC5UUAotLkJJICJcLWUgc2lnbmFsPSIgc2V0CitcZkJcLWVcIHNpZ25hbFxmUj1cZklzZXRcZlIKIFRyYWNlIG9ubHkgdGhlIHNwZWNpZmllZCBzdWJzZXQgb2Ygc2lnbmFscy4gIFRoZSBkZWZhdWx0IGlzCi0uQlIgc2lnbmFsPWFsbCAuCisuQlIgc2lnbmFsID0gYWxsIC4KIEZvciBleGFtcGxlLAotLkIgc2lnbmFsPSFTSUdJTworLkIgc2lnbmFsICI9ISIgU0lHSU8KIChvcgotLkJSIHNpZ25hbD0haW8gKQorLkJSIHNpZ25hbCAiPSEiIGlvICkKIGNhdXNlcyBTSUdJTyBzaWduYWxzIG5vdCB0byBiZSB0cmFjZWQuCiAuVFAKLS5CSSAiXC1lIHJlYWQ9IiBzZXQKK1xmQlwtZVwgcmVhZFxmUj1cZklzZXRcZlIKIFBlcmZvcm0gYSBmdWxsIGhleGFkZWNpbWFsIGFuZCBBU0NJSSBkdW1wIG9mIGFsbCB0aGUgZGF0YSByZWFkIGZyb20KIGZpbGUgZGVzY3JpcHRvcnMgbGlzdGVkIGluIHRoZSBzcGVjaWZpZWQgc2V0LiAgRm9yIGV4YW1wbGUsIHRvIHNlZQotYWxsIGlucHV0IGFjdGl2aXR5IG9uIGZpbGUgZGVzY3JpcHRvcnMgMyBhbmQgNSB1c2UKLS5CUiAiXC1lIHJlYWQ9Myw1IiAuCithbGwgaW5wdXQgYWN0aXZpdHkgb24gZmlsZSBkZXNjcmlwdG9ycworLkkgMworYW5kCisuSSA1Cit1c2UKK1xmQlwtZVwgcmVhZFxmUj1cZkkzXGZSLFxmSTVcZlIuCiBOb3RlIHRoYXQgdGhpcyBpcyBpbmRlcGVuZGVudCBmcm9tIHRoZSBub3JtYWwgdHJhY2luZyBvZiB0aGUKIC5CUiByZWFkICgyKQogc3lzdGVtIGNhbGwgd2hpY2ggaXMgY29udHJvbGxlZCBieSB0aGUgb3B0aW9uCi0uQlIgIlwtZSB0cmFjZT1yZWFkIiAuCisuQlIgLWUgIlwgIiB0cmFjZSA9IHJlYWQgLgogLlRQCi0uQkkgIlwtZSB3cml0ZT0iIHNldAorXGZCXC1lXCB3cml0ZVxmUj1cZklzZXRcZlIKIFBlcmZvcm0gYSBmdWxsIGhleGFkZWNpbWFsIGFuZCBBU0NJSSBkdW1wIG9mIGFsbCB0aGUgZGF0YSB3cml0dGVuIHRvCiBmaWxlIGRlc2NyaXB0b3JzIGxpc3RlZCBpbiB0aGUgc3BlY2lmaWVkIHNldC4gIEZvciBleGFtcGxlLCB0byBzZWUKLWFsbCBvdXRwdXQgYWN0aXZpdHkgb24gZmlsZSBkZXNjcmlwdG9ycyAzIGFuZCA1IHVzZQotLkJSICJcLWUgd3JpdGU9Myw1IiAuCithbGwgb3V0cHV0IGFjdGl2aXR5IG9uIGZpbGUgZGVzY3JpcHRvcnMKKy5JIDMKK2FuZAorLkkgNQordXNlCitcZkJcLWVcIHdyaXRlXGZSPVxmSTNcZlIsXGZJNVxmUi4KIE5vdGUgdGhhdCB0aGlzIGlzIGluZGVwZW5kZW50IGZyb20gdGhlIG5vcm1hbCB0cmFjaW5nIG9mIHRoZQogLkJSIHdyaXRlICgyKQogc3lzdGVtIGNhbGwgd2hpY2ggaXMgY29udHJvbGxlZCBieSB0aGUgb3B0aW9uCi0uQlIgIlwtZSB0cmFjZT13cml0ZSIgLgorLkJSIC1lICJcICIgdHJhY2UgPSB3cml0ZSAuCiAuVFAKIC5CSSAiXC1vICIgZmlsZW5hbWUKIFdyaXRlIHRoZSB0cmFjZSBvdXRwdXQgdG8gdGhlIGZpbGUKQEAgLTUwOCw3ICs1NjMsNyBAQAogLkJSIG5hbWUgLAogYW5kCiAuQiBub3RoaW5nCi0oZGVmYXVsdAorKGRlZmF1bHQgaXMKIC5CUiB0aW1lICkuCiAuVFAKIC5CSSAiXC11ICIgdXNlcm5hbWUKQEAgLTUyMCw5ICs1NzUsOSBAQAogVW5sZXNzIHRoaXMgb3B0aW9uIGlzIHVzZWQgc2V0dWlkIGFuZCBzZXRnaWQgcHJvZ3JhbXMgYXJlIGV4ZWN1dGVkCiB3aXRob3V0IGVmZmVjdGl2ZSBwcml2aWxlZ2VzLgogLlRQCi0uQkkgIlwtRSAiIHZhcj12YWwKK1xmQlwtRVwgXGZJdmFyXGZSPVxmSXZhbFxmUgogUnVuIGNvbW1hbmQgd2l0aAotLklSIHZhcj12YWwKKy5JUiB2YXIgPSB2YWwKIGluIGl0cyBsaXN0IG9mIGVudmlyb25tZW50IHZhcmlhYmxlcy4KIC5UUAogLkJJICJcLUUgIiB2YXIKQEAgLTUzMCw2ICs1ODUsMjUgQEAKIC5JUiB2YXIKIGZyb20gdGhlIGluaGVyaXRlZCBsaXN0IG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyBiZWZvcmUgcGFzc2luZyBpdCBvbiB0bwogdGhlIGNvbW1hbmQuCisuU0ggRElBR05PU1RJQ1MKK1doZW4KKy5JIGNvbW1hbmQKK2V4aXRzLAorLkIgc3RyYWNlCitleGl0cyB3aXRoIHRoZSBzYW1lIGV4aXQgc3RhdHVzLgorSWYKKy5JIGNvbW1hbmQKK2lzIHRlcm1pbmF0ZWQgYnkgYSBzaWduYWwsCisuQiBzdHJhY2UKK3Rlcm1pbmF0ZXMgaXRzZWxmIHdpdGggdGhlIHNhbWUgc2lnbmFsLCBzbyB0aGF0CisuQiBzdHJhY2UKK2NhbiBiZSB1c2VkIGFzIGEgd3JhcHBlciBwcm9jZXNzIHRyYW5zcGFyZW50IHRvIHRoZSBpbnZva2luZyBwYXJlbnQgcHJvY2Vzcy4KKy5MUAorV2hlbiB1c2luZworLkJSIFwtcCAsCit0aGUgZXhpdCBzdGF0dXMgb2YKKy5CIHN0cmFjZQoraXMgemVybyB1bmxlc3MgdGhlcmUgd2FzIGFuIHVuZXhwZWN0ZWQgZXJyb3IgaW4gZG9pbmcgdGhlIHRyYWNpbmcuCiAuU0ggIlNFVFVJRCBJTlNUQUxMQVRJT04iCiBJZgogLkIgc3RyYWNlCkBAIC01NTcsMTEgKzYzMSwxMCBAQAogLkIgc3RyYWNlCiBmb3Igb3JkaW5hcnkgbHVzZXJzIHRvIHVzZS4KIC5TSCAiU0VFIEFMU08iCi0uQlIgcHRyYWNlICgyKSwKLS5CUiBwcm9jICg0KSwKKy5CUiBsdHJhY2UgKDEpLAogLkJSIHRpbWUgKDEpLAotLkJSIHRyYWNlICgxKSwKLS5CUiB0cnVzcyAoMSkKKy5CUiBwdHJhY2UgKDIpLAorLkJSIHByb2MgKDUpCiAuU0ggTk9URVMKIEl0IGlzIGEgcGl0eSB0aGF0IHNvIG11Y2ggdHJhY2luZyBjbHV0dGVyIGlzIHByb2R1Y2VkIGJ5IHN5c3RlbXMKIGVtcGxveWluZyBzaGFyZWQgbGlicmFyaWVzLgpAQCAtNjUxLDEwICs3MjQsMTcgQEAKIC5CIHN0cmFjZQogdG8gSXJpeAogYW5kIHRpcmVkIG9mIHdyaXRpbmcgYWJvdXQgaGltc2VsZiBpbiB0aGUgdGhpcmQgcGVyc29uLgorLlNIIEJVR1MKK1RoZSBTSUdUUkFQIHNpZ25hbCBpcyB1c2VkIGludGVybmFsbHkgYnkgdGhlIGtlcm5lbCBpbXBsZW1lbnRhdGlvbiBvZgorc3lzdGVtIGNhbGwgdHJhY2luZy4gIFdoZW4gYSB0cmFjZWQgcHJvY2VzcyByZWNlaXZlcyBhIFNJR1RSQVAgc2lnbmFsIG5vdAorYXNzb2NpYXRlZCB3aXRoIHRyYWNpbmcsIHN0cmFjZSB3aWxsIG5vdCByZXBvcnQgdGhhdCBzaWduYWwgY29ycmVjdGx5LgorVGhpcyBzaWduYWwgaXMgbm90IG5vcm1hbGx5IHVzZWQgYnkgcHJvZ3JhbXMsIGJ1dCBjb3VsZCBiZSB2aWEgYSBoYXJkLWNvZGVkCiticmVhayBpbnN0cnVjdGlvbiBvciB2aWEKKy5CUiBraWxsICgyKS4KIC5TSCBQUk9CTEVNUwogUHJvYmxlbXMgd2l0aAogLkIgc3RyYWNlCiBzaG91bGQgYmUgcmVwb3J0ZWQgdmlhIHRoZSBEZWJpYW4gQnVnIFRyYWNraW5nIFN5c3RlbSwKIG9yIHRvIHRoZQogLkIgc3RyYWNlCi1tYWlsaW5nIGxpc3QgYXQgPHN0cmFjZS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+LgorbWFpbGluZyBsaXN0IGF0IDxzdHJhY2VcLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uCmRpZmYgLS1naXQgYS9zdHJhY2UuYyBiL3N0cmFjZS5jCmluZGV4IGEwZDBkMjAuLmE5NGExOWIgMTAwNjQ0Ci0tLSBhL3N0cmFjZS5jCisrKyBiL3N0cmFjZS5jCkBAIC0yNyw3ICsyNyw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiBzdHJhY2UuYyx2IDEuNjYgMjAwNS8wNi8wNyAyMzoyMTozMSByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMzgsNyArMzgsMTAgQEAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2RlZmluZSB3YWl0NCBfX3dhaXQ0CiAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNlbmRpZgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8cHdkLmg+CiAjaW5jbHVkZSA8Z3JwLmg+CkBAIC00Niw2ICs0OSwyMSBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPGRpcmVudC5oPgogCisjaWZkZWYgTElOVVgKKyMgaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorIyBpZiBkZWZpbmVkIF9fTlJfdGdraWxsCisjICBkZWZpbmUgbXlfdGdraWxsKHBpZCwgdGlkLCBzaWcpIHN5c2NhbGwgKF9fTlJfdGdraWxsLCAocGlkKSwgKHRpZCksIChzaWcpKQorIyBlbGlmIGRlZmluZWQgX19OUl90a2lsbAorIyAgZGVmaW5lIG15X3Rna2lsbChwaWQsIHRpZCwgc2lnKSBzeXNjYWxsIChfX05SX3RraWxsLCAodGlkKSwgKHNpZykpCisjIGVsc2UKKyAgIC8qIGtpbGwoKSBtYXkgY2hvb3NlIGFyYml0cmFyaWx5IHRoZSB0YXJnZXQgdGFzayBvZiB0aGUgcHJvY2VzcyBncm91cAorICAgICAgd2hpbGUgd2UgbGF0ZXIgd2FpdCBvbiBhIHRoYXQgc3BlY2lmaWMgVElELiAgUElEIHByb2Nlc3Mgd2FpdHMgYmVjb21lCisgICAgICBUSUQgdGFzayBzcGVjaWZpYyB3YWl0cyBmb3IgYSBwcm9jZXNzIHVuZGVyIHB0cmFjZSgyKS4gICovCisjICB3YXJuaW5nICJOZWl0aGVyIHRraWxsKDIpIG5vciB0Z2tpbGwoMikgYXZhaWxhYmxlLCByaXNrIG9mIHN0cmFjZSBoYW5ncyEiCisjICBkZWZpbmUgbXlfdGdraWxsKHBpZCwgdGlkLCBzaWcpIGtpbGwgKCh0aWQpLCAoc2lnKSkKKyMgZW5kaWYKKyNlbmRpZgorCiAjaWYgZGVmaW5lZChJQTY0KSAmJiBkZWZpbmVkKExJTlVYKQogIyBpbmNsdWRlIDxhc20vcHRyYWNlX29mZnNldHMuaD4KICNlbmRpZgpAQCAtNjIsNTggKzgwLDczIEBACiAjZW5kaWYKICNlbmRpZgogI2VuZGlmCitleHRlcm4gY2hhciAqKmVudmlyb247CitleHRlcm4gaW50IG9wdGluZDsKK2V4dGVybiBjaGFyICpvcHRhcmc7CiAKLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLSNkZWZpbmUgd2FpdDQgX193YWl0NAotI2VuZGlmCiAKLWludCBkZWJ1ZyA9IDAsIGZvbGxvd2ZvcmsgPSAwLCBmb2xsb3d2Zm9yayA9IDAsIGludGVyYWN0aXZlID0gMDsKLWludCByZmxhZyA9IDAsIHRmbGFnID0gMCwgZHRpbWUgPSAwLCBjZmxhZyA9IDA7Ci1pbnQgaWZsYWcgPSAwLCB4ZmxhZyA9IDAsIHFmbGFnID0gMDsKLWludCBwZmxhZ19zZWVuID0gMDsKK2ludCBkZWJ1ZyA9IDAsIGZvbGxvd2ZvcmsgPSAwOwordW5zaWduZWQgaW50IHB0cmFjZV9zZXRvcHRpb25zID0gMDsKK2ludCBkdGltZSA9IDAsIHhmbGFnID0gMCwgcWZsYWcgPSAwOworY2ZsYWdfdCBjZmxhZyA9IENGTEFHX05PTkU7CitzdGF0aWMgaW50IGlmbGFnID0gMCwgaW50ZXJhY3RpdmUgPSAwLCBwZmxhZ19zZWVuID0gMCwgcmZsYWcgPSAwLCB0ZmxhZyA9IDA7CisvKgorICogZGFlbW9uaXplZF90cmFjZXIgc3VwcG9ydHMgLUQgb3B0aW9uLgorICogV2l0aCB0aGlzIG9wdGlvbiwgc3RyYWNlIGZvcmtzIHR3aWNlLgorICogVW5saWtlIG5vcm1hbCBjYXNlLCB3aXRoIC1EICpncmFuZHBhcmVudCogcHJvY2VzcyBleGVjJ3MsCisgKiBiZWNvbWluZyBhIHRyYWNlZCBwcm9jZXNzLiBDaGlsZCBleGl0cyAodGhpcyBwcmV2ZW50cyB0cmFjZWQgcHJvY2VzcworICogZnJvbSBoYXZpbmcgY2hpbGRyZW4gaXQgZG9lc24ndCBleHBlY3QgdG8gaGF2ZSksIGFuZCBncmFuZGNoaWxkCisgKiBhdHRhY2hlcyB0byBncmFuZHBhcmVudCBzaW1pbGFybHkgdG8gc3RyYWNlIC1wIFBJRC4KKyAqIFRoaXMgYWxsb3dzIGZvciBtb3JlIHRyYW5zcGFyZW50IGludGVyYWN0aW9uIGluIGNhc2VzCisgKiB3aGVuIHByb2Nlc3MgYW5kIGl0cyBwYXJlbnQgYXJlIGNvbW11bmljYXRpbmcgdmlhIHNpZ25hbHMsCisgKiB3YWl0KCkgZXRjLiBXaXRob3V0IC1ELCBzdHJhY2UgcHJvY2VzcyBnZXRzIGxvZGdlZCBpbiBiZXR3ZWVuLAorICogZGlzcnVwdGluZyBwYXJlbnQ8LT5jaGlsZCBsaW5rLgorICovCitzdGF0aWMgYm9vbCBkYWVtb25pemVkX3RyYWNlciA9IDA7CiAKIC8qIFNvbWV0aW1lcyB3ZSB3YW50IHRvIHByaW50IG9ubHkgc3VjY2VlZGluZyBzeXNjYWxscy4gKi8KIGludCBub3RfZmFpbGluZ19vbmx5ID0gMDsKIAotY2hhciAqdXNlcm5hbWUgPSBOVUxMOworc3RhdGljIGludCBleGl0X2NvZGUgPSAwOworc3RhdGljIGludCBzdHJhY2VfY2hpbGQgPSAwOworCitzdGF0aWMgY2hhciAqdXNlcm5hbWUgPSBOVUxMOwogdWlkX3QgcnVuX3VpZDsKIGdpZF90IHJ1bl9naWQ7CiAKIGludCBhY29sdW1uID0gREVGQVVMVF9BQ09MVU1OOwogaW50IG1heF9zdHJsZW4gPSBERUZBVUxUX1NUUkxFTjsKLWNoYXIgKm91dGZuYW1lID0gTlVMTDsKK3N0YXRpYyBjaGFyICpvdXRmbmFtZSA9IE5VTEw7CiBGSUxFICpvdXRmOworc3RhdGljIGludCBjdXJjb2w7CiBzdHJ1Y3QgdGNiICoqdGNidGFiOwogdW5zaWduZWQgaW50IG5wcm9jcywgdGNidGFic2l6ZTsKLWNoYXIgKnByb2duYW1lOworY29uc3QgY2hhciAqcHJvZ25hbWU7CiBleHRlcm4gY2hhciAqKmVudmlyb247CiAKLXN0YXRpYyBpbnQgdHJhY2UgUCgodm9pZCkpOwotc3RhdGljIHZvaWQgY2xlYW51cCBQKCh2b2lkKSk7Ci1zdGF0aWMgdm9pZCBpbnRlcnJ1cHQgUCgoaW50IHNpZykpOworc3RhdGljIGludCBkZXRhY2goc3RydWN0IHRjYiAqdGNwLCBpbnQgc2lnKTsKK3N0YXRpYyBpbnQgdHJhY2Uodm9pZCk7CitzdGF0aWMgdm9pZCBjbGVhbnVwKHZvaWQpOworc3RhdGljIHZvaWQgaW50ZXJydXB0KGludCBzaWcpOwogc3RhdGljIHNpZ3NldF90IGVtcHR5X3NldCwgYmxvY2tlZF9zZXQ7CiAKICNpZmRlZiBIQVZFX1NJR19BVE9NSUNfVAogc3RhdGljIHZvbGF0aWxlIHNpZ19hdG9taWNfdCBpbnRlcnJ1cHRlZDsKICNlbHNlIC8qICFIQVZFX1NJR19BVE9NSUNfVCAqLwotI2lmZGVmIF9fU1REQ19fCiBzdGF0aWMgdm9sYXRpbGUgaW50IGludGVycnVwdGVkOwotI2Vsc2UgLyogIV9fU1REQ19fICovCi1zdGF0aWMgaW50IGludGVycnVwdGVkOwotI2VuZGlmIC8qICFfX1NURENfXyAqLwogI2VuZGlmIC8qICFIQVZFX1NJR19BVE9NSUNfVCAqLwogCiAjaWZkZWYgVVNFX1BST0NGUwogCi1zdGF0aWMgc3RydWN0IHRjYiAqcGZkMnRjYiBQKChpbnQgcGZkKSk7Ci1zdGF0aWMgdm9pZCByZWFwZXIgUCgoaW50IHNpZykpOwotc3RhdGljIHZvaWQgcmVidWlsZF9wb2xsdiBQKCh2b2lkKSk7CitzdGF0aWMgc3RydWN0IHRjYiAqcGZkMnRjYihpbnQgcGZkKTsKK3N0YXRpYyB2b2lkIHJlYXBlcihpbnQgc2lnKTsKK3N0YXRpYyB2b2lkIHJlYnVpbGRfcG9sbHYodm9pZCk7CiBzdGF0aWMgc3RydWN0IHBvbGxmZCAqcG9sbHY7CiAKICNpZm5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMKIAotc3RhdGljIHZvaWQgcHJvY19wb2xsX29wZW4gUCgodm9pZCkpOwotc3RhdGljIHZvaWQgcHJvY19wb2xsZXIgUCgoaW50IHBmZCkpOworc3RhdGljIHZvaWQgcHJvY19wb2xsX29wZW4odm9pZCk7CitzdGF0aWMgdm9pZCBwcm9jX3BvbGxlcihpbnQgcGZkKTsKIAogc3RydWN0IHByb2NfcG9sbGZkIHsKIAlpbnQgZmQ7CkBAIC0xMzksMTIgKzE3MiwxMyBAQAogaW50IGV4aXR2YWw7CiB7CiAJZnByaW50ZihvZnAsICJcCi11c2FnZTogc3RyYWNlIFstZGZmaGlxcnR0dFR2Vnh4XSBbLWEgY29sdW1uXSBbLWUgZXhwcl0gLi4uIFstbyBmaWxlXVxuXAordXNhZ2U6IHN0cmFjZSBbLUNkRGZmaGlxcnR0dFR2Vnh4XSBbLWEgY29sdW1uXSBbLWUgZXhwcl0gLi4uIFstbyBmaWxlXVxuXAogICAgICAgICAgICAgICBbLXAgcGlkXSAuLi4gWy1zIHN0cnNpemVdIFstdSB1c2VybmFtZV0gWy1FIHZhcj12YWxdIC4uLlxuXAogICAgICAgICAgICAgICBbY29tbWFuZCBbYXJnIC4uLl1dXG5cCi0gICBvcjogc3RyYWNlIC1jIFstZSBleHByXSAuLi4gWy1PIG92ZXJoZWFkXSBbLVMgc29ydGJ5XSBbLUUgdmFyPXZhbF0gLi4uXG5cCisgICBvcjogc3RyYWNlIC1jIFstRF0gWy1lIGV4cHJdIC4uLiBbLU8gb3ZlcmhlYWRdIFstUyBzb3J0YnldIFstRSB2YXI9dmFsXSAuLi5cblwKICAgICAgICAgICAgICAgW2NvbW1hbmQgW2FyZyAuLi5dXVxuXAogLWMgLS0gY291bnQgdGltZSwgY2FsbHMsIGFuZCBlcnJvcnMgZm9yIGVhY2ggc3lzY2FsbCBhbmQgcmVwb3J0IHN1bW1hcnlcblwKKy1DIC0tIGxpa2UgLWMgYnV0IGFsc28gcHJpbnQgcmVndWxhciBvdXRwdXQgd2hpbGUgcHJvY2Vzc2VzIGFyZSBydW5uaW5nXG5cCiAtZiAtLSBmb2xsb3cgZm9ya3MsIC1mZiAtLSB3aXRoIG91dHB1dCBpbnRvIHNlcGFyYXRlIGZpbGVzXG5cCiAtRiAtLSBhdHRlbXB0IHRvIGZvbGxvdyB2Zm9ya3MsIC1oIC0tIHByaW50IGhlbHAgbWVzc2FnZVxuXAogLWkgLS0gcHJpbnQgaW5zdHJ1Y3Rpb24gcG9pbnRlciBhdCB0aW1lIG9mIHN5c2NhbGxcblwKQEAgLTE1OSw2ICsxOTMsNyBAQAogLW8gZmlsZSAtLSBzZW5kIHRyYWNlIG91dHB1dCB0byBGSUxFIGluc3RlYWQgb2Ygc3RkZXJyXG5cCiAtTyBvdmVyaGVhZCAtLSBzZXQgb3ZlcmhlYWQgZm9yIHRyYWNpbmcgc3lzY2FsbHMgdG8gT1ZFUkhFQUQgdXNlY3NcblwKIC1wIHBpZCAtLSB0cmFjZSBwcm9jZXNzIHdpdGggcHJvY2VzcyBpZCBQSUQsIG1heSBiZSByZXBlYXRlZFxuXAorLUQgLS0gcnVuIHRyYWNlciBwcm9jZXNzIGFzIGEgZGV0YWNoZWQgZ3JhbmRjaGlsZCwgbm90IGFzIHBhcmVudFxuXAogLXMgc3Ryc2l6ZSAtLSBsaW1pdCBsZW5ndGggb2YgcHJpbnQgc3RyaW5ncyB0byBTVFJTSVpFIGNoYXJzIChkZWZhdWx0ICVkKVxuXAogLVMgc29ydGJ5IC0tIHNvcnQgc3lzY2FsbCBjb3VudHMgYnk6IHRpbWUsIGNhbGxzLCBuYW1lLCBub3RoaW5nIChkZWZhdWx0ICVzKVxuXAogLXUgdXNlcm5hbWUgLS0gcnVuIGNvbW1hbmQgYXMgdXNlcm5hbWUgaGFuZGxpbmcgc2V0dWlkIGFuZC9vciBzZXRnaWRcblwKQEAgLTE4MCw1MSArMjE1LDYyMiBAQAogI2VuZGlmIC8qIE1JUFMgKi8KICNlbmRpZiAvKiBTVlI0ICovCiAKLWludAotbWFpbihhcmdjLCBhcmd2KQotaW50IGFyZ2M7Ci1jaGFyICphcmd2W107CisvKiBHbHVlIGZvciBzeXN0ZW1zIHdpdGhvdXQgYSBNTVUgdGhhdCBjYW5ub3QgcHJvdmlkZSBmb3JrKCkgKi8KKyNpZmRlZiBIQVZFX0ZPUksKKyMgZGVmaW5lIHN0cmFjZV92Zm9ya2VkIDAKKyNlbHNlCisjIGRlZmluZSBzdHJhY2VfdmZvcmtlZCAxCisjIGRlZmluZSBmb3JrKCkgICAgICAgICB2Zm9yaygpCisjZW5kaWYKKworc3RhdGljIGludAorc2V0X2Nsb2V4ZWNfZmxhZyhpbnQgZmQpCiB7Ci0JZXh0ZXJuIGludCBvcHRpbmQ7Ci0JZXh0ZXJuIGNoYXIgKm9wdGFyZzsKKwlpbnQgICAgIGZsYWdzLCBuZXdmbGFnczsKKworCWlmICgoZmxhZ3MgPSBmY250bChmZCwgRl9HRVRGRCwgMCkpIDwgMCkKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IGZjbnRsIEZfR0VURkQ6ICVzXG4iLAorCQkJcHJvZ25hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiAtMTsKKwl9CisKKwluZXdmbGFncyA9IGZsYWdzIHwgRkRfQ0xPRVhFQzsKKwlpZiAoZmxhZ3MgPT0gbmV3ZmxhZ3MpCisJCXJldHVybiAwOworCisJaWYgKGZjbnRsKGZkLCBGX1NFVEZELCBuZXdmbGFncykgPCAwKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICIlczogZmNudGwgRl9TRVRGRDogJXNcbiIsCisJCQlwcm9nbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogV2hlbiBzdHJhY2UgaXMgc2V0dWlkIGV4ZWN1dGFibGUsIHdlIGhhdmUgdG8gc3dhcCB1aWRzCisgKiBiZWZvcmUgYW5kIGFmdGVyIGZpbGVzeXN0ZW0gYW5kIHByb2Nlc3MgbWFuYWdlbWVudCBvcGVyYXRpb25zLgorICovCitzdGF0aWMgdm9pZAorc3dhcF91aWQodm9pZCkKK3sKKyNpZm5kZWYgU1ZSNAorCWludCBldWlkID0gZ2V0ZXVpZCgpLCB1aWQgPSBnZXR1aWQoKTsKKworCWlmIChldWlkICE9IHVpZCAmJiBzZXRyZXVpZChldWlkLCB1aWQpIDwgMCkKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IHNldHJldWlkOiAlc1xuIiwKKwkJCXByb2duYW1lLCBzdHJlcnJvcihlcnJubykpOworCQlleGl0KDEpOworCX0KKyNlbmRpZgorfQorCisjaWYgX0xGUzY0X0xBUkdFRklMRQorIyBkZWZpbmUgZm9wZW5fZm9yX291dHB1dCBmb3BlbjY0CisjZWxzZQorIyBkZWZpbmUgZm9wZW5fZm9yX291dHB1dCBmb3BlbgorI2VuZGlmCisKK3N0YXRpYyBGSUxFICoKK3N0cmFjZV9mb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICptb2RlKQoreworCUZJTEUgKmZwOworCisJc3dhcF91aWQoKTsKKwlpZiAoKGZwID0gZm9wZW5fZm9yX291dHB1dChwYXRoLCBtb2RlKSkgPT0gTlVMTCkKKwkJZnByaW50ZihzdGRlcnIsICIlczogY2FuJ3QgZm9wZW4gJyVzJzogJXNcbiIsCisJCQlwcm9nbmFtZSwgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKKwlzd2FwX3VpZCgpOworCWlmIChmcCAmJiBzZXRfY2xvZXhlY19mbGFnKGZpbGVubyhmcCkpIDwgMCkKKwl7CisJCWZjbG9zZShmcCk7CisJCWZwID0gTlVMTDsKKwl9CisJcmV0dXJuIGZwOworfQorCitzdGF0aWMgaW50IHBvcGVuX3BpZCA9IC0xOworCisjaWZuZGVmIF9QQVRIX0JTSEVMTAorIyBkZWZpbmUgX1BBVEhfQlNIRUxMICIvYmluL3NoIgorI2VuZGlmCisKKy8qCisgKiBXZSBjYW5ub3QgdXNlIHN0YW5kYXJkIHBvcGVuKDMpIGhlcmUgYmVjYXVzZSB3ZSBoYXZlIHRvIGRpc3Rpbmd1aXNoCisgKiBwb3BlbiBjaGlsZCBwcm9jZXNzIGZyb20gb3RoZXIgcHJvY2Vzc2VzIHdlIHRyYWNlLCBhbmQgc3RhbmRhcmQgcG9wZW4oMykKKyAqIGRvZXMgbm90IGV4cG9ydCBpdHMgY2hpbGQncyBwaWQuCisgKi8KK3N0YXRpYyBGSUxFICoKK3N0cmFjZV9wb3Blbihjb25zdCBjaGFyICpjb21tYW5kKQoreworCWludCAgICAgZmRzWzJdOworCisJc3dhcF91aWQoKTsKKwlpZiAocGlwZShmZHMpIDwgMCkKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IHBpcGU6ICVzXG4iLAorCQkJcHJvZ25hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCXN3YXBfdWlkKCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChzZXRfY2xvZXhlY19mbGFnKGZkc1sxXSkgPCAwKQorCXsKKwkJY2xvc2UoZmRzWzBdKTsKKwkJY2xvc2UoZmRzWzFdKTsKKwkJc3dhcF91aWQoKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaWYgKChwb3Blbl9waWQgPSBmb3JrKCkpID09IC0xKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICIlczogZm9yazogJXNcbiIsCisJCQlwcm9nbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJY2xvc2UoZmRzWzBdKTsKKwkJY2xvc2UoZmRzWzFdKTsKKwkJc3dhcF91aWQoKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaWYgKHBvcGVuX3BpZCkKKwl7CisJCS8qIHBhcmVudCAqLworCQljbG9zZShmZHNbMF0pOworCQlzd2FwX3VpZCgpOworCQlyZXR1cm4gZmRvcGVuKGZkc1sxXSwgInciKTsKKwl9IGVsc2UKKwl7CisJCS8qIGNoaWxkICovCisJCWNsb3NlKGZkc1sxXSk7CisJCWlmIChmZHNbMF0gJiYgKGR1cDIoZmRzWzBdLCAwKSB8fCBjbG9zZShmZHNbMF0pKSkKKwkJeworCQkJZnByaW50ZihzdGRlcnIsICIlczogZHVwMjogJXNcbiIsCisJCQkJcHJvZ25hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCQlfZXhpdCgxKTsKKwkJfQorCQlleGVjbChfUEFUSF9CU0hFTEwsICJzaCIsICItYyIsIGNvbW1hbmQsIE5VTEwpOworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBleGVjbDogJXM6ICVzXG4iLAorCQkJcHJvZ25hbWUsIF9QQVRIX0JTSEVMTCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJX2V4aXQoMSk7CisJfQorfQorCitzdGF0aWMgaW50CituZXdvdXRmKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAob3V0Zm5hbWUgJiYgZm9sbG93Zm9yayA+IDEpIHsKKwkJY2hhciBuYW1lWzUyMCArIHNpemVvZihpbnQpICogM107CisJCUZJTEUgKmZwOworCisJCXNwcmludGYobmFtZSwgIiUuNTEycy4ldSIsIG91dGZuYW1lLCB0Y3AtPnBpZCk7CisJCWlmICgoZnAgPSBzdHJhY2VfZm9wZW4obmFtZSwgInciKSkgPT0gTlVMTCkKKwkJCXJldHVybiAtMTsKKwkJdGNwLT5vdXRmID0gZnA7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorc3RhcnR1cF9hdHRhY2godm9pZCkKK3sKKwlpbnQgdGNiaTsKKwlzdHJ1Y3QgdGNiICp0Y3A7CisKKwkvKgorCSAqIEJsb2NrIHVzZXIgaW50ZXJydXB0aW9ucyBhcyB3ZSB3b3VsZCBsZWF2ZSB0aGUgdHJhY2VkCisJICogcHJvY2VzcyBzdG9wcGVkIChwcm9jZXNzIHN0YXRlIFQpIGlmIHdlIHdvdWxkIHRlcm1pbmF0ZSBpbgorCSAqIGJldHdlZW4gUFRSQUNFX0FUVEFDSCBhbmQgd2FpdDQgKCkgb24gU0lHU1RPUC4KKwkgKiBXZSByZWx5IG9uIGNsZWFudXAgKCkgZnJvbSB0aGlzIHBvaW50IG9uLgorCSAqLworCWlmIChpbnRlcmFjdGl2ZSkKKwkJc2lncHJvY21hc2soU0lHX0JMT0NLLCAmYmxvY2tlZF9zZXQsIE5VTEwpOworCisJaWYgKGRhZW1vbml6ZWRfdHJhY2VyKSB7CisJCXBpZF90IHBpZCA9IGZvcmsoKTsKKwkJaWYgKHBpZCA8IDApIHsKKwkJCV9leGl0KDEpOworCQl9CisJCWlmIChwaWQpIHsgLyogcGFyZW50ICovCisJCQkvKgorCQkJICogV2FpdCBmb3IgY2hpbGQgdG8gYXR0YWNoIHRvIHN0cmFjZWQgcHJvY2VzcworCQkJICogKG91ciBwYXJlbnQpLiBDaGlsZCBTSUdLSUxMcyB1cyBhZnRlciBpdCBhdHRhY2hlZC4KKwkJCSAqIFBhcmVudCdzIHdhaXQoKSBpcyB1bmJsb2NrZWQgYnkgb3VyIGRlYXRoLAorCQkJICogaXQgcHJvY2VlZHMgdG8gZXhlYyB0aGUgc3RyYWNlZCBwcm9ncmFtLgorCQkJICovCisJCQlwYXVzZSgpOworCQkJX2V4aXQoMCk7IC8qIHBhcmFub2lhICovCisJCX0KKwl9CisKKwlmb3IgKHRjYmkgPSAwOyB0Y2JpIDwgdGNidGFic2l6ZTsgdGNiaSsrKSB7CisJCXRjcCA9IHRjYnRhYlt0Y2JpXTsKKwkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkgfHwgISh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSkKKwkJCWNvbnRpbnVlOworI2lmZGVmIExJTlVYCisJCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKKwkJCWNvbnRpbnVlOworI2VuZGlmCisJCS8qIFJlaW5pdGlhbGl6ZSB0aGUgb3V0cHV0IHNpbmNlIGl0IG1heSBoYXZlIGNoYW5nZWQuICovCisJCXRjcC0+b3V0ZiA9IG91dGY7CisJCWlmIChuZXdvdXRmKHRjcCkgPCAwKQorCQkJZXhpdCgxKTsKKworI2lmZGVmIFVTRV9QUk9DRlMKKwkJaWYgKHByb2Nfb3Blbih0Y3AsIDEpIDwgMCkgeworCQkJZnByaW50ZihzdGRlcnIsICJ0cm91YmxlIG9wZW5pbmcgcHJvYyBmaWxlXG4iKTsKKwkJCWRyb3B0Y2IodGNwKTsKKwkJCWNvbnRpbnVlOworCQl9CisjZWxzZSAvKiAhVVNFX1BST0NGUyAqLworIyBpZmRlZiBMSU5VWAorCQlpZiAoZm9sbG93Zm9yayAmJiAhZGFlbW9uaXplZF90cmFjZXIpIHsKKwkJCWNoYXIgcHJvY2RpcltzaXplb2YoIi9wcm9jLyVkL3Rhc2siKSArIHNpemVvZihpbnQpICogM107CisJCQlESVIgKmRpcjsKKworCQkJc3ByaW50Zihwcm9jZGlyLCAiL3Byb2MvJWQvdGFzayIsIHRjcC0+cGlkKTsKKwkJCWRpciA9IG9wZW5kaXIocHJvY2Rpcik7CisJCQlpZiAoZGlyICE9IE5VTEwpIHsKKwkJCQl1bnNpZ25lZCBpbnQgbnRpZCA9IDAsIG5lcnIgPSAwOworCQkJCXN0cnVjdCBkaXJlbnQgKmRlOworCQkJCWludCB0aWQ7CisJCQkJd2hpbGUgKChkZSA9IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgeworCQkJCQlpZiAoZGUtPmRfZmlsZW5vID09IDApCisJCQkJCQljb250aW51ZTsKKwkJCQkJdGlkID0gYXRvaShkZS0+ZF9uYW1lKTsKKwkJCQkJaWYgKHRpZCA8PSAwKQorCQkJCQkJY29udGludWU7CisJCQkJCSsrbnRpZDsKKwkJCQkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCB0aWQsIChjaGFyICopIDEsIDApIDwgMCkKKwkJCQkJCSsrbmVycjsKKwkJCQkJZWxzZSBpZiAodGlkICE9IHRjYnRhYlt0Y2JpXS0+cGlkKSB7CisJCQkJCQl0Y3AgPSBhbGxvY3RjYih0aWQpOworCQkJCQkJdGNwLT5mbGFncyB8PSBUQ0JfQVRUQUNIRUR8VENCX0NMT05FX1RIUkVBRHxUQ0JfRk9MTE9XRk9SSzsKKwkJCQkJCXRjYnRhYlt0Y2JpXS0+bmNoaWxkcmVuKys7CisJCQkJCQl0Y2J0YWJbdGNiaV0tPm5jbG9uZV90aHJlYWRzKys7CisJCQkJCQl0Y3AtPnBhcmVudCA9IHRjYnRhYlt0Y2JpXTsKKwkJCQkJfQorCQkJCQlpZiAoaW50ZXJhY3RpdmUpIHsKKwkJCQkJCXNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmZW1wdHlfc2V0LCBOVUxMKTsKKwkJCQkJCWlmIChpbnRlcnJ1cHRlZCkKKwkJCQkJCQlyZXR1cm47CisJCQkJCQlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZibG9ja2VkX3NldCwgTlVMTCk7CisJCQkJCX0KKwkJCQl9CisJCQkJY2xvc2VkaXIoZGlyKTsKKwkJCQludGlkIC09IG5lcnI7CisJCQkJaWYgKG50aWQgPT0gMCkgeworCQkJCQlwZXJyb3IoImF0dGFjaDogcHRyYWNlKFBUUkFDRV9BVFRBQ0gsIC4uLikiKTsKKwkJCQkJZHJvcHRjYih0Y3ApOworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQkJaWYgKCFxZmxhZykgeworCQkJCQlmcHJpbnRmKHN0ZGVyciwgbnRpZCA+IDEKKz8gIlByb2Nlc3MgJXUgYXR0YWNoZWQgd2l0aCAldSB0aHJlYWRzIC0gaW50ZXJydXB0IHRvIHF1aXRcbiIKKzogIlByb2Nlc3MgJXUgYXR0YWNoZWQgLSBpbnRlcnJ1cHQgdG8gcXVpdFxuIiwKKwkJCQkJCXRjYnRhYlt0Y2JpXS0+cGlkLCBudGlkKTsKKwkJCQl9CisJCQkJY29udGludWU7CisJCQl9IC8qIGlmIChvcGVuZGlyIHdvcmtlZCkgKi8KKwkJfSAvKiBpZiAoLWYpICovCisjIGVuZGlmCisJCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgdGNwLT5waWQsIChjaGFyICopIDEsIDApIDwgMCkgeworCQkJcGVycm9yKCJhdHRhY2g6IHB0cmFjZShQVFJBQ0VfQVRUQUNILCAuLi4pIik7CisJCQlkcm9wdGNiKHRjcCk7CisJCQljb250aW51ZTsKKwkJfQorCQkvKiBJTlRFUlJVUFRFRCBpcyBnb2luZyB0byBiZSBjaGVja2VkIGF0IHRoZSB0b3Agb2YgVFJBQ0UuICAqLworCisJCWlmIChkYWVtb25pemVkX3RyYWNlcikgeworCQkJLyoKKwkJCSAqIEl0IGlzIG91ciBncmFuZHBhcmVudCB3ZSB0cmFjZSwgbm90IGEgLXAgUElELgorCQkJICogRG9uJ3Qgd2FudCB0byBqdXN0IGRldGFjaCBvbiBleGl0LCBzby4uLgorCQkJICovCisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfQVRUQUNIRUQ7CisJCQkvKgorCQkJICogTWFrZSBwYXJlbnQgZ28gYXdheS4KKwkJCSAqIEFsc28gbWFrZXMgZ3JhbmRwYXJlbnQncyB3YWl0KCkgdW5ibG9jay4KKwkJCSAqLworCQkJa2lsbChnZXRwcGlkKCksIFNJR0tJTEwpOworCQl9CisKKyNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLworCQlpZiAoIXFmbGFnKQorCQkJZnByaW50ZihzdGRlcnIsCisJCQkJIlByb2Nlc3MgJXUgYXR0YWNoZWQgLSBpbnRlcnJ1cHQgdG8gcXVpdFxuIiwKKwkJCQl0Y3AtPnBpZCk7CisJfQorCisJaWYgKGludGVyYWN0aXZlKQorCQlzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJmVtcHR5X3NldCwgTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkCitzdGFydHVwX2NoaWxkIChjaGFyICoqYXJndikKK3sKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCWNvbnN0IGNoYXIgKmZpbGVuYW1lOworCWNoYXIgcGF0aG5hbWVbTUFYUEFUSExFTl07CisJaW50IHBpZCA9IDA7CisJc3RydWN0IHRjYiAqdGNwOworCisJZmlsZW5hbWUgPSBhcmd2WzBdOworCWlmIChzdHJjaHIoZmlsZW5hbWUsICcvJykpIHsKKwkJaWYgKHN0cmxlbihmaWxlbmFtZSkgPiBzaXplb2YgcGF0aG5hbWUgLSAxKSB7CisJCQllcnJubyA9IEVOQU1FVE9PTE9ORzsKKwkJCXBlcnJvcigic3RyYWNlOiBleGVjIik7CisJCQlleGl0KDEpOworCQl9CisJCXN0cmNweShwYXRobmFtZSwgZmlsZW5hbWUpOworCX0KKyNpZmRlZiBVU0VfREVCVUdHSU5HX0VYRUMKKwkvKgorCSAqIERlYnVnZ2VycyBjdXN0b21hcmlseSBjaGVjayB0aGUgY3VycmVudCBkaXJlY3RvcnkKKwkgKiBmaXJzdCByZWdhcmRsZXNzIG9mIHRoZSBwYXRoIGJ1dCBkb2luZyB0aGF0IGdpdmVzCisJICogc2VjdXJpdHkgZ2Vla3MgYSBwYW5pYyBhdHRhY2suCisJICovCisJZWxzZSBpZiAoc3RhdChmaWxlbmFtZSwgJnN0YXRidWYpID09IDApCisJCXN0cmNweShwYXRobmFtZSwgZmlsZW5hbWUpOworI2VuZGlmIC8qIFVTRV9ERUJVR0dJTkdfRVhFQyAqLworCWVsc2UgeworCQljb25zdCBjaGFyICpwYXRoOworCQlpbnQgbSwgbiwgbGVuOworCisJCWZvciAocGF0aCA9IGdldGVudigiUEFUSCIpOyBwYXRoICYmICpwYXRoOyBwYXRoICs9IG0pIHsKKwkJCWlmIChzdHJjaHIocGF0aCwgJzonKSkgeworCQkJCW4gPSBzdHJjaHIocGF0aCwgJzonKSAtIHBhdGg7CisJCQkJbSA9IG4gKyAxOworCQkJfQorCQkJZWxzZQorCQkJCW0gPSBuID0gc3RybGVuKHBhdGgpOworCQkJaWYgKG4gPT0gMCkgeworCQkJCWlmICghZ2V0Y3dkKHBhdGhuYW1lLCBNQVhQQVRITEVOKSkKKwkJCQkJY29udGludWU7CisJCQkJbGVuID0gc3RybGVuKHBhdGhuYW1lKTsKKwkJCX0KKwkJCWVsc2UgaWYgKG4gPiBzaXplb2YgcGF0aG5hbWUgLSAxKQorCQkJCWNvbnRpbnVlOworCQkJZWxzZSB7CisJCQkJc3RybmNweShwYXRobmFtZSwgcGF0aCwgbik7CisJCQkJbGVuID0gbjsKKwkJCX0KKwkJCWlmIChsZW4gJiYgcGF0aG5hbWVbbGVuIC0gMV0gIT0gJy8nKQorCQkJCXBhdGhuYW1lW2xlbisrXSA9ICcvJzsKKwkJCXN0cmNweShwYXRobmFtZSArIGxlbiwgZmlsZW5hbWUpOworCQkJaWYgKHN0YXQocGF0aG5hbWUsICZzdGF0YnVmKSA9PSAwICYmCisJCQkgICAgLyogQWNjZXB0IG9ubHkgcmVndWxhciBmaWxlcworCQkJICAgICAgIHdpdGggc29tZSBleGVjdXRlIGJpdHMgc2V0LgorCQkJICAgICAgIFhYWCBub3QgcGVyZmVjdCwgbWlnaHQgc3RpbGwgZmFpbCAqLworCQkJICAgIFNfSVNSRUcoc3RhdGJ1Zi5zdF9tb2RlKSAmJgorCQkJICAgIChzdGF0YnVmLnN0X21vZGUgJiAwMTExKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKwlpZiAoc3RhdChwYXRobmFtZSwgJnN0YXRidWYpIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiAlczogY29tbWFuZCBub3QgZm91bmRcbiIsCisJCQlwcm9nbmFtZSwgZmlsZW5hbWUpOworCQlleGl0KDEpOworCX0KKwlzdHJhY2VfY2hpbGQgPSBwaWQgPSBmb3JrKCk7CisJaWYgKHBpZCA8IDApIHsKKwkJcGVycm9yKCJzdHJhY2U6IGZvcmsiKTsKKwkJY2xlYW51cCgpOworCQlleGl0KDEpOworCX0KKwlpZiAoKHBpZCAhPSAwICYmIGRhZW1vbml6ZWRfdHJhY2VyKSAvKiBwYXJlbnQ6IHRvIGJlY29tZSBhIHRyYWNlZCBwcm9jZXNzICovCisJIHx8IChwaWQgPT0gMCAmJiAhZGFlbW9uaXplZF90cmFjZXIpIC8qIGNoaWxkOiB0byBiZWNvbWUgYSB0cmFjZWQgcHJvY2VzcyAqLworCSkgeworCQlwaWQgPSBnZXRwaWQoKTsKKyNpZmRlZiBVU0VfUFJPQ0ZTCisJCWlmIChvdXRmICE9IHN0ZGVycikgY2xvc2UgKGZpbGVubyAob3V0ZikpOworI2lmZGVmIE1JUFMKKwkJLyogS2x1ZGdlIGZvciBTR0ksIHNlZSBwcm9jX29wZW4gZm9yIGRldGFpbHMuICovCisJCXNhLnNhX2hhbmRsZXIgPSBmb29iYXI7CisJCXNhLnNhX2ZsYWdzID0gMDsKKwkJc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOworCQlzaWdhY3Rpb24oU0lHSU5ULCAmc2EsIE5VTEwpOworI2VuZGlmIC8qIE1JUFMgKi8KKyNpZm5kZWYgRlJFRUJTRAorCQlwYXVzZSgpOworI2Vsc2UgLyogRlJFRUJTRCAqLworCQlraWxsKHBpZCwgU0lHU1RPUCk7IC8qIHN0b3AgSEVSRSAqLworI2VuZGlmIC8qIEZSRUVCU0QgKi8KKyNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCisJCWlmIChvdXRmIT1zdGRlcnIpCisJCQljbG9zZShmaWxlbm8gKG91dGYpKTsKKworCQlpZiAoIWRhZW1vbml6ZWRfdHJhY2VyKSB7CisJCQlpZiAocHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAwLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKKwkJCQlwZXJyb3IoInN0cmFjZTogcHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAuLi4pIik7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWlmIChkZWJ1ZykKKwkJCQlraWxsKHBpZCwgU0lHU1RPUCk7CisJCX0KKworCQlpZiAodXNlcm5hbWUgIT0gTlVMTCB8fCBnZXRldWlkKCkgPT0gMCkgeworCQkJdWlkX3QgcnVuX2V1aWQgPSBydW5fdWlkOworCQkJZ2lkX3QgcnVuX2VnaWQgPSBydW5fZ2lkOworCisJCQlpZiAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JU1VJRCkKKwkJCQlydW5fZXVpZCA9IHN0YXRidWYuc3RfdWlkOworCQkJaWYgKHN0YXRidWYuc3RfbW9kZSAmIFNfSVNHSUQpCisJCQkJcnVuX2VnaWQgPSBzdGF0YnVmLnN0X2dpZDsKKworCQkJLyoKKwkJCSAqIEl0IGlzIGltcG9ydGFudCB0byBzZXQgZ3JvdXBzIGJlZm9yZSB3ZQorCQkJICogbG9zZSBwcml2aWxlZ2VzIG9uIHNldHVpZC4KKwkJCSAqLworCQkJaWYgKHVzZXJuYW1lICE9IE5VTEwpIHsKKwkJCQlpZiAoaW5pdGdyb3Vwcyh1c2VybmFtZSwgcnVuX2dpZCkgPCAwKSB7CisJCQkJCXBlcnJvcigiaW5pdGdyb3VwcyIpOworCQkJCQlleGl0KDEpOworCQkJCX0KKwkJCQlpZiAoc2V0cmVnaWQocnVuX2dpZCwgcnVuX2VnaWQpIDwgMCkgeworCQkJCQlwZXJyb3IoInNldHJlZ2lkIik7CisJCQkJCWV4aXQoMSk7CisJCQkJfQorCQkJCWlmIChzZXRyZXVpZChydW5fdWlkLCBydW5fZXVpZCkgPCAwKSB7CisJCQkJCXBlcnJvcigic2V0cmV1aWQiKTsKKwkJCQkJZXhpdCgxKTsKKwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQorCQkJc2V0cmV1aWQocnVuX3VpZCwgcnVuX3VpZCk7CisKKwkJaWYgKCFkYWVtb25pemVkX3RyYWNlcikgeworCQkJLyoKKwkJCSAqIEluZHVjZSBhbiBpbW1lZGlhdGUgc3RvcCBzbyB0aGF0IHRoZSBwYXJlbnQKKwkJCSAqIHdpbGwgcmVzdW1lIHVzIHdpdGggUFRSQUNFX1NZU0NBTEwgYW5kIGRpc3BsYXkKKwkJCSAqIHRoaXMgZXhlY3ZlIGNhbGwgbm9ybWFsbHkuCisJCQkgKiBVbmxlc3Mgb2YgY291cnNlIHdlJ3JlIG9uIGEgbm8tTU1VIHN5c3RlbSB3aGVyZQorCQkJICogd2UgdmZvcmsoKS1lZCwgc28gd2UgY2Fubm90IHN0b3AgdGhlIGNoaWxkLgorCQkJICovCisJCQlpZiAoIXN0cmFjZV92Zm9ya2VkKQorCQkJCWtpbGwoZ2V0cGlkKCksIFNJR1NUT1ApOworCQl9IGVsc2UgeworCQkJc3RydWN0IHNpZ2FjdGlvbiBzdl9zaWdjaGxkOworCQkJc2lnYWN0aW9uKFNJR0NITEQsIE5VTEwsICZzdl9zaWdjaGxkKTsKKwkJCS8qCisJCQkgKiBNYWtlIHN1cmUgaXQgaXMgbm90IFNJR19JR04sIG90aGVyd2lzZSB3YWl0CisJCQkgKiB3aWxsIG5vdCBibG9jay4KKwkJCSAqLworCQkJc2lnbmFsKFNJR0NITEQsIFNJR19ERkwpOworCQkJLyoKKwkJCSAqIFdhaXQgZm9yIGdyYW5kY2hpbGQgdG8gYXR0YWNoIHRvIHVzLgorCQkJICogSXQga2lsbHMgY2hpbGQgYWZ0ZXIgdGhhdCwgYW5kIHdhaXQoKSB1bmJsb2Nrcy4KKwkJCSAqLworCQkJYWxhcm0oMyk7CisJCQl3YWl0KE5VTEwpOworCQkJYWxhcm0oMCk7CisJCQlzaWdhY3Rpb24oU0lHQ0hMRCwgJnN2X3NpZ2NobGQsIE5VTEwpOworCQl9CisjZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KKworCQlleGVjdihwYXRobmFtZSwgYXJndik7CisJCXBlcnJvcigic3RyYWNlOiBleGVjIik7CisJCV9leGl0KDEpOworCX0KKworCS8qIFdlIGFyZSB0aGUgdHJhY2VyLiAgKi8KKwl0Y3AgPSBhbGxvY3RjYihkYWVtb25pemVkX3RyYWNlciA/IGdldHBwaWQoKSA6IHBpZCk7CisJaWYgKGRhZW1vbml6ZWRfdHJhY2VyKSB7CisJCS8qIFdlIHdhbnQgc3Vic2VxdWVudCBzdGFydHVwX2F0dGFjaCgpIHRvIGF0dGFjaCB0byBpdC4gICovCisJCXRjcC0+ZmxhZ3MgfD0gVENCX0FUVEFDSEVEOworCX0KKyNpZmRlZiBVU0VfUFJPQ0ZTCisJaWYgKHByb2Nfb3Blbih0Y3AsIDApIDwgMCkgeworCQlmcHJpbnRmKHN0ZGVyciwgInRyb3VibGUgb3BlbmluZyBwcm9jIGZpbGVcbiIpOworCQljbGVhbnVwKCk7CisJCWV4aXQoMSk7CisJfQorI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KK30KKworI2lmZGVmIExJTlVYCisvKgorICogVGVzdCB3aGV0aGVyIHRoZSBrZXJuZWwgc3VwcG9ydCBQVFJBQ0VfT19UUkFDRUNMT05FIGV0IGFsIG9wdGlvbnMuCisgKiBGaXJzdCBmb3JrIGEgbmV3IGNoaWxkLCBjYWxsIHB0cmFjZSB3aXRoIFBUUkFDRV9TRVRPUFRJT05TIG9uIGl0LAorICogYW5kIHRoZW4gc2VlIHdoaWNoIG9wdGlvbnMgYXJlIHN1cHBvcnRlZCBieSB0aGUga2VybmVsLgorICovCitzdGF0aWMgaW50Cit0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKHZvaWQpCit7CisJaW50IHBpZCwgZXhwZWN0ZWRfZ3JhbmRjaGlsZCA9IDAsIGZvdW5kX2dyYW5kY2hpbGQgPSAwOworCWNvbnN0IHVuc2lnbmVkIGludCB0ZXN0X29wdGlvbnMgPSBQVFJBQ0VfT19UUkFDRUNMT05FIHwKKwkJCQkJICBQVFJBQ0VfT19UUkFDRUZPUksgfAorCQkJCQkgIFBUUkFDRV9PX1RSQUNFVkZPUks7CisKKwlpZiAoKHBpZCA9IGZvcmsoKSkgPCAwKQorCQlyZXR1cm4gLTE7CisJZWxzZSBpZiAocGlkID09IDApIHsKKwkJaWYgKHB0cmFjZShQVFJBQ0VfVFJBQ0VNRSwgMCwgKGNoYXIgKikxLCAwKSA8IDApCisJCQlfZXhpdCgxKTsKKwkJa2lsbChnZXRwaWQoKSwgU0lHU1RPUCk7CisJCV9leGl0KGZvcmsoKSA8IDApOworCX0KKworCXdoaWxlICgxKSB7CisJCWludCBzdGF0dXMsIHRyYWNlZV9waWQ7CisKKwkJdHJhY2VlX3BpZCA9IHdhaXQoJnN0YXR1cyk7CisJCWlmICh0cmFjZWVfcGlkID09IC0xKSB7CisJCQlpZiAoZXJybm8gPT0gRUlOVFIpCisJCQkJY29udGludWU7CisJCQllbHNlIGlmIChlcnJubyA9PSBFQ0hJTEQpCisJCQkJYnJlYWs7CisJCQlwZXJyb3IoInRlc3RfcHRyYWNlX3NldG9wdGlvbnMiKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlpZiAodHJhY2VlX3BpZCAhPSBwaWQpIHsKKwkJCWZvdW5kX2dyYW5kY2hpbGQgPSB0cmFjZWVfcGlkOworCQkJaWYgKHB0cmFjZShQVFJBQ0VfQ09OVCwgdHJhY2VlX3BpZCwgMCwgMCkgPCAwICYmCisJCQkgICAgZXJybm8gIT0gRVNSQ0gpCisJCQkJa2lsbCh0cmFjZWVfcGlkLCBTSUdLSUxMKTsKKwkJfQorCQllbHNlIGlmIChXSUZTVE9QUEVEKHN0YXR1cykpIHsKKwkJCXN3aXRjaCAoV1NUT1BTSUcoc3RhdHVzKSkgeworCQkJY2FzZSBTSUdTVE9QOgorCQkJCWlmIChwdHJhY2UoUFRSQUNFX1NFVE9QVElPTlMsIHBpZCwKKwkJCQkJICAgTlVMTCwgdGVzdF9vcHRpb25zKSA8IDApIHsKKwkJCQkJa2lsbChwaWQsIFNJR0tJTEwpOworCQkJCQlyZXR1cm4gLTE7CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSBTSUdUUkFQOgorCQkJCWlmIChzdGF0dXMgPj4gMTYgPT0gUFRSQUNFX0VWRU5UX0ZPUkspIHsKKwkJCQkJbG9uZyBtc2cgPSAwOworCisJCQkJCWlmIChwdHJhY2UoUFRSQUNFX0dFVEVWRU5UTVNHLCBwaWQsCisJCQkJCQkgICBOVUxMLCAobG9uZykgJm1zZykgPT0gMCkKKwkJCQkJCWV4cGVjdGVkX2dyYW5kY2hpbGQgPSBtc2c7CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgcGlkLCAwLCAwKSA8IDAgJiYKKwkJCSAgICBlcnJubyAhPSBFU1JDSCkKKwkJCQlraWxsKHBpZCwgU0lHS0lMTCk7CisJCX0KKwl9CisJaWYgKGV4cGVjdGVkX2dyYW5kY2hpbGQgJiYgZXhwZWN0ZWRfZ3JhbmRjaGlsZCA9PSBmb3VuZF9ncmFuZGNoaWxkKQorCQlwdHJhY2Vfc2V0b3B0aW9ucyB8PSB0ZXN0X29wdGlvbnM7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CiAJc3RydWN0IHRjYiAqdGNwOwogCWludCBjLCBwaWQgPSAwOworCWludCBvcHRGID0gMDsKIAlzdHJ1Y3Qgc2lnYWN0aW9uIHNhOwogCiAJc3RhdGljIGNoYXIgYnVmW0JVRlNJWl07CiAKKwlwcm9nbmFtZSA9IGFyZ3ZbMF0gPyBhcmd2WzBdIDogInN0cmFjZSI7CisKIAkvKiBBbGxvY2F0ZSB0aGUgaW5pdGlhbCB0Y2J0YWIuICAqLwogCXRjYnRhYnNpemUgPSBhcmdjOwkvKiBTdXJlbHkgZW5vdWdoIGZvciBhbGwgLXAgYXJncy4gICovCi0JdGNidGFiID0gKHN0cnVjdCB0Y2IgKiopIG1hbGxvYyAodGNidGFic2l6ZSAqIHNpemVvZiB0Y2J0YWJbMF0pOwotCXRjYnRhYlswXSA9IChzdHJ1Y3QgdGNiICopIGNhbGxvYyAodGNidGFic2l6ZSwgc2l6ZW9mICp0Y2J0YWJbMF0pOworCWlmICgodGNidGFiID0gY2FsbG9jKHRjYnRhYnNpemUsIHNpemVvZiB0Y2J0YWJbMF0pKSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IG91dCBvZiBtZW1vcnlcbiIsIHByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKCh0Y2J0YWJbMF0gPSBjYWxsb2ModGNidGFic2l6ZSwgc2l6ZW9mIHRjYnRhYlswXVswXSkpID09IE5VTEwpIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogb3V0IG9mIG1lbW9yeVxuIiwgcHJvZ25hbWUpOworCQlleGl0KDEpOworCX0KIAlmb3IgKHRjcCA9IHRjYnRhYlswXTsgdGNwIDwgJnRjYnRhYlswXVt0Y2J0YWJzaXplXTsgKyt0Y3ApCiAJCXRjYnRhYlt0Y3AgLSB0Y2J0YWJbMF1dID0gJnRjYnRhYlswXVt0Y3AgLSB0Y2J0YWJbMF1dOwogCi0JcHJvZ25hbWUgPSBhcmd2WzBdOwogCW91dGYgPSBzdGRlcnI7CiAJaW50ZXJhY3RpdmUgPSAxOworCXNldF9zb3J0YnkoREVGQVVMVF9TT1JUQlkpOworCXNldF9wZXJzb25hbGl0eShERUZBVUxUX1BFUlNPTkFMSVRZKTsKIAlxdWFsaWZ5KCJ0cmFjZT1hbGwiKTsKIAlxdWFsaWZ5KCJhYmJyZXY9YWxsIik7CiAJcXVhbGlmeSgidmVyYm9zZT1hbGwiKTsKIAlxdWFsaWZ5KCJzaWduYWw9YWxsIik7Ci0Jc2V0X3NvcnRieShERUZBVUxUX1NPUlRCWSk7Ci0Jc2V0X3BlcnNvbmFsaXR5KERFRkFVTFRfUEVSU09OQUxJVFkpOwogCXdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2LAotCQkiK2NkZkZoaXFydFR2Vnh6YTplOm86TzpwOnM6Uzp1OkU6IikpICE9IEVPRikgeworCQkiK2NDZGZGaGlxcnRUdlZ4eiIKKyNpZm5kZWYgVVNFX1BST0NGUworCQkiRCIKKyNlbmRpZgorCQkiYTplOm86TzpwOnM6Uzp1OkU6IikpICE9IEVPRikgewogCQlzd2l0Y2ggKGMpIHsKIAkJY2FzZSAnYyc6Ci0JCQljZmxhZysrOwotCQkJZHRpbWUrKzsKKwkJCWlmIChjZmxhZyA9PSBDRkxBR19CT1RIKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICIlczogLWMgYW5kIC1DIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgb3B0aW9uc1xuIiwKKwkJCQkJcHJvZ25hbWUpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQljZmxhZyA9IENGTEFHX09OTFlfU1RBVFM7CisJCQlicmVhazsKKwkJY2FzZSAnQyc6CisJCQlpZiAoY2ZsYWcgPT0gQ0ZMQUdfT05MWV9TVEFUUykgeworCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IC1jIGFuZCAtQyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnNcbiIsCisJCQkJCXByb2duYW1lKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJY2ZsYWcgPSBDRkxBR19CT1RIOwogCQkJYnJlYWs7CiAJCWNhc2UgJ2QnOgogCQkJZGVidWcrKzsKIAkJCWJyZWFrOworI2lmbmRlZiBVU0VfUFJPQ0ZTCisJCWNhc2UgJ0QnOgorCQkJZGFlbW9uaXplZF90cmFjZXIgPSAxOworCQkJYnJlYWs7CisjZW5kaWYKKwkJY2FzZSAnRic6CisJCQlvcHRGID0gMTsKKwkJCWJyZWFrOwogCQljYXNlICdmJzoKIAkJCWZvbGxvd2ZvcmsrKzsKIAkJCWJyZWFrOwotCQljYXNlICdGJzoKLQkJCWZvbGxvd3Zmb3JrKys7Ci0JCQlicmVhazsKIAkJY2FzZSAnaCc6CiAJCQl1c2FnZShzdGRvdXQsIDApOwogCQkJYnJlYWs7CkBAIC0yNzksMTEgKzg4NSw3IEBACiAJCQkJZnByaW50ZihzdGRlcnIsICIlczogSSdtIHNvcnJ5LCBJIGNhbid0IGxldCB5b3UgZG8gdGhhdCwgRGF2ZS5cbiIsIHByb2duYW1lKTsKIAkJCQlicmVhazsKIAkJCX0KLQkJCWlmICgodGNwID0gYWxsb2N0Y2IocGlkKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IG91dCBvZiBtZW1vcnlcbiIsCi0JCQkJCXByb2duYW1lKTsKLQkJCQlleGl0KDEpOwotCQkJfQorCQkJdGNwID0gYWxsb2NfdGNiKHBpZCwgMCk7CiAJCQl0Y3AtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRDsKIAkJCXBmbGFnX3NlZW4rKzsKIAkJCWJyZWFrOwpAQCAtMzE1LDkgKzkxNywyNiBAQAogCQl9CiAJfQogCi0JaWYgKG9wdGluZCA9PSBhcmdjICYmICFwZmxhZ19zZWVuKQorCWlmICgob3B0aW5kID09IGFyZ2MpID09ICFwZmxhZ19zZWVuKQogCQl1c2FnZShzdGRlcnIsIDEpOwogCisJaWYgKHBmbGFnX3NlZW4gJiYgZGFlbW9uaXplZF90cmFjZXIpIHsKKwkJZnByaW50ZihzdGRlcnIsCisJCQkiJXM6IC1EIGFuZCAtcCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnNcbiIsCisJCQlwcm9nbmFtZSk7CisJCWV4aXQoMSk7CisJfQorCisJaWYgKCFmb2xsb3dmb3JrKQorCQlmb2xsb3dmb3JrID0gb3B0RjsKKworCWlmIChmb2xsb3dmb3JrID4gMSAmJiBjZmxhZykgeworCQlmcHJpbnRmKHN0ZGVyciwKKwkJCSIlczogKC1jIG9yIC1DKSBhbmQgLWZmIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgb3B0aW9uc1xuIiwKKwkJCXByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisKIAkvKiBTZWUgaWYgdGhleSB3YW50IHRvIHJ1biBhcyBhbm90aGVyIHVzZXIuICovCiAJaWYgKHVzZXJuYW1lICE9IE5VTEwpIHsKIAkJc3RydWN0IHBhc3N3ZCAqcGVudDsKQEAgLTMzMCw3ICs5NDksNyBAQAogCQl9CiAJCWlmICgocGVudCA9IGdldHB3bmFtKHVzZXJuYW1lKSkgPT0gTlVMTCkgewogCQkJZnByaW50ZihzdGRlcnIsICIlczogY2Fubm90IGZpbmQgdXNlciBgJXMnXG4iLAotCQkJCXByb2duYW1lLCBvcHRhcmcpOworCQkJCXByb2duYW1lLCB1c2VybmFtZSk7CiAJCQlleGl0KDEpOwogCQl9CiAJCXJ1bl91aWQgPSBwZW50LT5wd191aWQ7CkBAIC0zNDEsMTQgKzk2MCwyMiBAQAogCQlydW5fZ2lkID0gZ2V0Z2lkKCk7CiAJfQogCi0jaWZuZGVmIFNWUjQKLQlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKKyNpZmRlZiBMSU5VWAorCWlmIChmb2xsb3dmb3JrKSB7CisJCWlmICh0ZXN0X3B0cmFjZV9zZXRvcHRpb25zKCkgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiVGVzdCBmb3Igb3B0aW9ucyBzdXBwb3J0ZWQgYnkgUFRSQUNFX1NFVE9QVElPTlMgIgorCQkJCSJmYWlsZWQsIGdpdmluZyB1cCB1c2luZyB0aGlzIGZlYXR1cmUuXG4iKTsKKwkJCXB0cmFjZV9zZXRvcHRpb25zID0gMDsKKwkJfQorCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwgInB0cmFjZV9zZXRvcHRpb25zID0gJSN4XG4iLAorCQkJCXB0cmFjZV9zZXRvcHRpb25zKTsKKwl9CiAjZW5kaWYKIAogCS8qIENoZWNrIGlmIHRoZXkgd2FudCB0byByZWRpcmVjdCB0aGUgb3V0cHV0LiAqLwogCWlmIChvdXRmbmFtZSkgewotCQlsb25nIGY7Ci0KIAkJLyogU2VlIGlmIHRoZXkgd2FudCB0byBwaXBlIHRoZSBvdXRwdXQuICovCiAJCWlmIChvdXRmbmFtZVswXSA9PSAnfCcgfHwgb3V0Zm5hbWVbMF0gPT0gJyEnKSB7CiAJCQkvKgpAQCAtMzYyLDM5ICs5ODksMTQgQEAKIAkJCQlleGl0KDEpOwogCQkJfQogCi0jaWZkZWYgSEFWRV9BTkRST0lEX09TCi0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwib3V0cHV0IHRvIGEgcGlwZSBub3Qgc3VwcG9ydGVkIG9uIGFuZHJvaWQuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoLTEpOwotI2Vsc2UKLQkJCWlmICgob3V0ZiA9IHBvcGVuKG91dGZuYW1lICsgMSwgInciKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbid0IHBvcGVuICclcyc6ICVzXG4iLAotCQkJCQlwcm9nbmFtZSwgb3V0Zm5hbWUgKyAxLAotCQkJCQlzdHJlcnJvcihlcnJubykpOworCQkJaWYgKChvdXRmID0gc3RyYWNlX3BvcGVuKG91dGZuYW1lICsgMSkpID09IE5VTEwpCiAJCQkJZXhpdCgxKTsKLQkJCX0KLSNlbmRpZgogCQl9Ci0JCWVsc2UgaWYgKChvdXRmID0gZm9wZW4ob3V0Zm5hbWUsICJ3IikpID09IE5VTEwpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbid0IGZvcGVuICclcyc6ICVzXG4iLAotCQkJCXByb2duYW1lLCBvdXRmbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJZWxzZSBpZiAoZm9sbG93Zm9yayA8PSAxICYmCisJCQkgKG91dGYgPSBzdHJhY2VfZm9wZW4ob3V0Zm5hbWUsICJ3IikpID09IE5VTEwpCiAJCQlleGl0KDEpOwotCQl9Ci0KLQkJaWYgKChmPWZjbnRsKGZpbGVubyhvdXRmKSwgRl9HRVRGRCkpIDwgMCApIHsKLQkJCXBlcnJvcigiZmFpbGVkIHRvIGdldCBmbGFncyBmb3Igb3V0cHV0ZmlsZSIpOwotCQkJZXhpdCgxKTsKLQkJfQotCi0JCWlmIChmY250bChmaWxlbm8ob3V0ZiksIEZfU0VURkQsIGZ8RkRfQ0xPRVhFQykgPCAwICkgewotCQkJcGVycm9yKCJmYWlsZWQgdG8gc2V0IGZsYWdzIGZvciBvdXRwdXRmaWxlIik7Ci0JCQlleGl0KDEpOwotCQl9CiAJfQogCi0jaWZuZGVmIFNWUjQKLQlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKLSNlbmRpZgotCiAJaWYgKCFvdXRmbmFtZSB8fCBvdXRmbmFtZVswXSA9PSAnfCcgfHwgb3V0Zm5hbWVbMF0gPT0gJyEnKQogCQlzZXR2YnVmKG91dGYsIGJ1ZiwgX0lPTEJGLCBCVUZTSVopOwogCWlmIChvdXRmbmFtZSAmJiBvcHRpbmQgPCBhcmdjKSB7CkBAIC00MDIsMjQ4ICsxMDA0LDIwIEBACiAJCXFmbGFnID0gMTsKIAl9CiAKLQlmb3IgKGMgPSAwOyBjIDwgdGNidGFic2l6ZTsgYysrKSB7Ci0JCXRjcCA9IHRjYnRhYltjXTsKLQkJLyogUmVpbml0aWFsaXplIHRoZSBvdXRwdXQgc2luY2UgaXQgbWF5IGhhdmUgY2hhbmdlZC4gKi8KLQkJdGNwLT5vdXRmID0gb3V0ZjsKLQkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkgfHwgISh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSkKLQkJCWNvbnRpbnVlOwotI2lmZGVmIFVTRV9QUk9DRlMKLQkJaWYgKHByb2Nfb3Blbih0Y3AsIDEpIDwgMCkgewotCQkJZnByaW50ZihzdGRlcnIsICJ0cm91YmxlIG9wZW5pbmcgcHJvYyBmaWxlXG4iKTsKLQkJCWRyb3B0Y2IodGNwKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0jZWxzZSAvKiAhVVNFX1BST0NGUyAqLwotIyBpZmRlZiBMSU5VWAotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCi0JCQljb250aW51ZTsKLQkJaWYgKGZvbGxvd2ZvcmspIHsKLQkJCWNoYXIgcHJvY2RpcltNQVhQQVRITEVOXTsKLQkJCURJUiAqZGlyOwotCQkJc3ByaW50Zihwcm9jZGlyLCAiL3Byb2MvJWQvdGFzayIsIHRjcC0+cGlkKTsKLQkJCWRpciA9IG9wZW5kaXIocHJvY2Rpcik7Ci0JCQlpZiAoZGlyICE9IE5VTEwpIHsKLQkJCQl1bnNpZ25lZCBpbnQgbnRpZCA9IDAsIG5lcnIgPSAwOwotCQkJCXN0cnVjdCBkaXJlbnQgKmRlOwotCQkJCWludCB0aWQ7Ci0JCQkJd2hpbGUgKChkZSA9IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkgewotCQkJCQlpZiAoZGUtPmRfZmlsZW5vID09IDAgfHwKLQkJCQkJICAgIGRlLT5kX25hbWVbMF0gPT0gJy4nKQotCQkJCQkJY29udGludWU7Ci0JCQkJCXRpZCA9IGF0b2koZGUtPmRfbmFtZSk7Ci0JCQkJCWlmICh0aWQgPD0gMCkKLQkJCQkJCWNvbnRpbnVlOwotCQkJCQkrK250aWQ7Ci0JCQkJCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgdGlkLAotCQkJCQkJICAgKGNoYXIgKikgMSwgMCkgPCAwKQotCQkJCQkJKytuZXJyOwotCQkJCQllbHNlIGlmICh0aWQgIT0gdGNidGFiW2NdLT5waWQpIHsKLQkJCQkJCWlmIChucHJvY3MgPT0gdGNidGFic2l6ZSAmJgotCQkJCQkJICAgIGV4cGFuZF90Y2J0YWIoKSkKLQkJCQkJCQl0Y3AgPSBOVUxMOwotCQkJCQkJZWxzZQotCQkJCQkJCXRjcCA9IGFsbG9jdGNiKHRpZCk7Ci0JCQkJCQlpZiAodGNwID09IE5VTEwpIHsKLQkJCQkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBvdXQgb2YgbWVtb3J5XG4iLAotCQkJCQkJCQlwcm9nbmFtZSk7Ci0JCQkJCQkJZXhpdCgxKTsKLQkJCQkJCX0KLQkJCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX0FUVEFDSEVEfFRDQl9DTE9ORV9USFJFQUR8VENCX0NMT05FX0RFVEFDSEVEfFRDQl9GT0xMT1dGT1JLOwotCQkJCQkJdGNidGFiW2NdLT5uY2hpbGRyZW4rKzsKLQkJCQkJCXRjYnRhYltjXS0+bmNsb25lX3RocmVhZHMrKzsKLQkJCQkJCXRjYnRhYltjXS0+bmNsb25lX2RldGFjaGVkKys7Ci0JCQkJCQl0Y3AtPnBhcmVudCA9IHRjYnRhYltjXTsKLQkJCQkJfQotCQkJCX0KLQkJCQljbG9zZWRpcihkaXIpOwotCQkJCWlmIChuZXJyID09IG50aWQpIHsKLQkJCQkJcGVycm9yKCJhdHRhY2g6IHB0cmFjZShQVFJBQ0VfQVRUQUNILCAuLi4pIik7Ci0JCQkJCWRyb3B0Y2IodGNwKTsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCQkJCWlmICghcWZsYWcpIHsKLQkJCQkJbnRpZCAtPSBuZXJyOwotCQkJCQlpZiAobnRpZCA+IDEpCi0JCQkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKLVByb2Nlc3MgJXUgYXR0YWNoZWQgd2l0aCAldSB0aHJlYWRzIC0gaW50ZXJydXB0IHRvIHF1aXRcbiIsCi0JCQkJCQkJdGNwLT5waWQsIG50aWQpOwotCQkJCQllbHNlCi0JCQkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKLVByb2Nlc3MgJXUgYXR0YWNoZWQgLSBpbnRlcnJ1cHQgdG8gcXVpdFxuIiwKLQkJCQkJCQl0Y3AtPnBpZCk7Ci0JCQkJfQotCQkJCWNvbnRpbnVlOwotCQkJfQotCQl9Ci0jIGVuZGlmCi0JCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgdGNwLT5waWQsIChjaGFyICopIDEsIDApIDwgMCkgewotCQkJcGVycm9yKCJhdHRhY2g6IHB0cmFjZShQVFJBQ0VfQVRUQUNILCAuLi4pIik7Ci0JCQlkcm9wdGNiKHRjcCk7Ci0JCQljb250aW51ZTsKLQkJfQotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0JCWlmICghcWZsYWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiUHJvY2VzcyAldSBhdHRhY2hlZCAtIGludGVycnVwdCB0byBxdWl0XG4iLAotCQkJCXRjcC0+cGlkKTsKLQl9CisJLyogVmFsaWQgc3RhdGVzIGhlcmU6CisJICAgb3B0aW5kIDwgYXJnYwlwZmxhZ19zZWVuCW91dGZuYW1lCWludGVyYWN0aXZlCisJICAgMQkJCTAJCTAJCTEKKwkgICAwCQkJMQkJMAkJMQorCSAgIDEJCQkwCQkxCQkwCisJICAgMAkJCTEJCTEJCTEKKwkgKi8KIAotCWlmICghcGZsYWdfc2VlbikgewotCQlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOwotCQljaGFyICpmaWxlbmFtZTsKLQkJY2hhciBwYXRobmFtZVtNQVhQQVRITEVOXTsKLQotCQlmaWxlbmFtZSA9IGFyZ3Zbb3B0aW5kXTsKLQkJaWYgKHN0cmNocihmaWxlbmFtZSwgJy8nKSkgewotCQkJaWYgKHN0cmxlbihmaWxlbmFtZSkgPiBzaXplb2YgcGF0aG5hbWUgLSAxKSB7Ci0JCQkJZXJybm8gPSBFTkFNRVRPT0xPTkc7Ci0JCQkJcGVycm9yKCJzdHJhY2U6IGV4ZWMiKTsKLQkJCQlleGl0KDEpOwotCQkJfQotCQkJc3RyY3B5KHBhdGhuYW1lLCBmaWxlbmFtZSk7Ci0JCX0KLSNpZmRlZiBVU0VfREVCVUdHSU5HX0VYRUMKLQkJLyoKLQkJICogRGVidWdnZXJzIGN1c3RvbWFyaWx5IGNoZWNrIHRoZSBjdXJyZW50IGRpcmVjdG9yeQotCQkgKiBmaXJzdCByZWdhcmRsZXNzIG9mIHRoZSBwYXRoIGJ1dCBkb2luZyB0aGF0IGdpdmVzCi0JCSAqIHNlY3VyaXR5IGdlZWtzIGEgcGFuaWMgYXR0YWNrLgotCQkgKi8KLQkJZWxzZSBpZiAoc3RhdChmaWxlbmFtZSwgJnN0YXRidWYpID09IDApCi0JCQlzdHJjcHkocGF0aG5hbWUsIGZpbGVuYW1lKTsKLSNlbmRpZiAvKiBVU0VfREVCVUdHSU5HX0VYRUMgKi8KLQkJZWxzZSB7Ci0JCQljaGFyICpwYXRoOwotCQkJaW50IG0sIG4sIGxlbjsKLQotCQkJZm9yIChwYXRoID0gZ2V0ZW52KCJQQVRIIik7IHBhdGggJiYgKnBhdGg7IHBhdGggKz0gbSkgewotCQkJCWlmIChzdHJjaHIocGF0aCwgJzonKSkgewotCQkJCQluID0gc3RyY2hyKHBhdGgsICc6JykgLSBwYXRoOwotCQkJCQltID0gbiArIDE7Ci0JCQkJfQotCQkJCWVsc2UKLQkJCQkJbSA9IG4gPSBzdHJsZW4ocGF0aCk7Ci0JCQkJaWYgKG4gPT0gMCkgewotCQkJCQlnZXRjd2QocGF0aG5hbWUsIE1BWFBBVEhMRU4pOwotCQkJCQlsZW4gPSBzdHJsZW4ocGF0aG5hbWUpOwotCQkJCX0KLQkJCQllbHNlIGlmIChuID4gc2l6ZW9mIHBhdGhuYW1lIC0gMSkKLQkJCQkJY29udGludWU7Ci0JCQkJZWxzZSB7Ci0JCQkJCXN0cm5jcHkocGF0aG5hbWUsIHBhdGgsIG4pOwotCQkJCQlsZW4gPSBuOwotCQkJCX0KLQkJCQlpZiAobGVuICYmIHBhdGhuYW1lW2xlbiAtIDFdICE9ICcvJykKLQkJCQkJcGF0aG5hbWVbbGVuKytdID0gJy8nOwotCQkJCXN0cmNweShwYXRobmFtZSArIGxlbiwgZmlsZW5hbWUpOwotCQkJCWlmIChzdGF0KHBhdGhuYW1lLCAmc3RhdGJ1ZikgPT0gMCAmJgotCQkJCSAgICAvKiBBY2NlcHQgb25seSByZWd1bGFyIGZpbGVzCi0JCQkJICAgICAgIHdpdGggc29tZSBleGVjdXRlIGJpdHMgc2V0LgotCQkJCSAgICAgICBYWFggbm90IHBlcmZlY3QsIG1pZ2h0IHN0aWxsIGZhaWwgKi8KLQkJCQkgICAgU19JU1JFRyhzdGF0YnVmLnN0X21vZGUpICYmCi0JCQkJICAgIChzdGF0YnVmLnN0X21vZGUgJiAwMTExKSkKLQkJCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQkJaWYgKHN0YXQocGF0aG5hbWUsICZzdGF0YnVmKSA8IDApIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiJXM6ICVzOiBjb21tYW5kIG5vdCBmb3VuZFxuIiwKLQkJCQlwcm9nbmFtZSwgZmlsZW5hbWUpOwotCQkJZXhpdCgxKTsKLQkJfQotCQlzd2l0Y2ggKHBpZCA9IGZvcmsoKSkgewotCQljYXNlIC0xOgotCQkJcGVycm9yKCJzdHJhY2U6IGZvcmsiKTsKLQkJCWNsZWFudXAoKTsKLQkJCWV4aXQoMSk7Ci0JCQlicmVhazsKLQkJY2FzZSAwOiB7Ci0jaWZkZWYgVVNFX1BST0NGUwotCQkgICAgICAgIGlmIChvdXRmICE9IHN0ZGVycikgY2xvc2UgKGZpbGVubyAob3V0ZikpOwotI2lmZGVmIE1JUFMKLQkJCS8qIEtsdWRnZSBmb3IgU0dJLCBzZWUgcHJvY19vcGVuIGZvciBkZXRhaWxzLiAqLwotCQkJc2Euc2FfaGFuZGxlciA9IGZvb2JhcjsKLQkJCXNhLnNhX2ZsYWdzID0gMDsKLQkJCXNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKLQkJCXNpZ2FjdGlvbihTSUdJTlQsICZzYSwgTlVMTCk7Ci0jZW5kaWYgLyogTUlQUyAqLwotI2lmbmRlZiBGUkVFQlNECi0JCQlwYXVzZSgpOwotI2Vsc2UgLyogRlJFRUJTRCAqLwotCQkJa2lsbChnZXRwaWQoKSwgU0lHU1RPUCk7IC8qIHN0b3AgSEVSRSAqLwotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLSNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCi0JCQlpZiAob3V0ZiE9c3RkZXJyKQotCQkJCWNsb3NlKGZpbGVubyAob3V0ZikpOwotCi0JCQlpZiAocHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAwLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCQlwZXJyb3IoInN0cmFjZTogcHRyYWNlKFBUUkFDRV9UUkFDRU1FLCAuLi4pIik7Ci0JCQkJcmV0dXJuIC0xOwotCQkJfQotCQkJaWYgKGRlYnVnKQotCQkJCWtpbGwoZ2V0cGlkKCksIFNJR1NUT1ApOwotCi0JCQlpZiAodXNlcm5hbWUgIT0gTlVMTCB8fCBnZXRldWlkKCkgPT0gMCkgewotCQkJCXVpZF90IHJ1bl9ldWlkID0gcnVuX3VpZDsKLQkJCQlnaWRfdCBydW5fZWdpZCA9IHJ1bl9naWQ7Ci0KLQkJCQlpZiAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JU1VJRCkKLQkJCQkJcnVuX2V1aWQgPSBzdGF0YnVmLnN0X3VpZDsKLQkJCQlpZiAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JU0dJRCkKLQkJCQkJcnVuX2VnaWQgPSBzdGF0YnVmLnN0X2dpZDsKLQotCQkJCS8qCi0JCQkJICogSXQgaXMgaW1wb3J0YW50IHRvIHNldCBncm91cHMgYmVmb3JlIHdlCi0JCQkJICogbG9zZSBwcml2aWxlZ2VzIG9uIHNldHVpZC4KLQkJCQkgKi8KLQkJCQlpZiAodXNlcm5hbWUgIT0gTlVMTCkgewotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLQkJCQkJaWYgKGluaXRncm91cHModXNlcm5hbWUsIHJ1bl9naWQpIDwgMCkgewotCQkJCQkJcGVycm9yKCJpbml0Z3JvdXBzIik7Ci0JCQkJCQlleGl0KDEpOwotCQkJCQl9Ci0jZW5kaWYgLyogSEFWRV9BTkRST0lEX09TICovCi0JCQkJCWlmIChzZXRyZWdpZChydW5fZ2lkLCBydW5fZWdpZCkgPCAwKSB7Ci0JCQkJCQlwZXJyb3IoInNldHJlZ2lkIik7Ci0JCQkJCQlleGl0KDEpOwotCQkJCQl9Ci0JCQkJCWlmIChzZXRyZXVpZChydW5fdWlkLCBydW5fZXVpZCkgPCAwKSB7Ci0JCQkJCQlwZXJyb3IoInNldHJldWlkIik7Ci0JCQkJCQlleGl0KDEpOwotCQkJCQl9Ci0JCQkJfQotCQkJfQotCQkJZWxzZQotCQkJCXNldHJldWlkKHJ1bl91aWQsIHJ1bl91aWQpOwotCi0JCQkvKgotCQkJICogSW5kdWNlIGFuIGltbWVkaWF0ZSBzdG9wIHNvIHRoYXQgdGhlIHBhcmVudAotCQkJICogd2lsbCByZXN1bWUgdXMgd2l0aCBQVFJBQ0VfU1lTQ0FMTCBhbmQgZGlzcGxheQotCQkJICogdGhpcyBleGVjdmUgY2FsbCBub3JtYWxseS4KLQkJCSAqLwotCQkJa2lsbChnZXRwaWQoKSwgU0lHU1RPUCk7Ci0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KLQotCQkJZXhlY3YocGF0aG5hbWUsICZhcmd2W29wdGluZF0pOwotCQkJcGVycm9yKCJzdHJhY2U6IGV4ZWMiKTsKLQkJCV9leGl0KDEpOwotCQkJYnJlYWs7Ci0JCX0KLQkJZGVmYXVsdDoKLQkJCWlmICgodGNwID0gYWxsb2N0Y2IocGlkKSkgPT0gTlVMTCkgewotCQkJCWZwcmludGYoc3RkZXJyLCAidGNiIHRhYmxlIGZ1bGxcbiIpOwotCQkJCWNsZWFudXAoKTsKLQkJCQlleGl0KDEpOwotCQkJfQotI2lmZGVmIFVTRV9QUk9DRlMKLQkJCWlmIChwcm9jX29wZW4odGNwLCAwKSA8IDApIHsKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInRyb3VibGUgb3BlbmluZyBwcm9jIGZpbGVcbiIpOwotCQkJCWNsZWFudXAoKTsKLQkJCQlleGl0KDEpOwotCQkJfQotI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KLQkJCWJyZWFrOwotCQl9Ci0JfQorCS8qIFNUQVJUVVBfQ0hJTEQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBzaWduYWwgaGFuZGxlcnMgZ2V0CisJICAgaW5zdGFsbGVkIGJlbG93IGFzIHRoZXkgYXJlIGluaGVyaXRlZCBpbnRvIHRoZSBzcGF3bmVkIHByb2Nlc3MuCisJICAgQWxzbyB3ZSBkbyBub3QgbmVlZCB0byBiZSBwcm90ZWN0ZWQgYnkgdGhlbSBhcyBkdXJpbmcgaW50ZXJydXB0aW9uCisJICAgaW4gdGhlIFNUQVJUVVBfQ0hJTEQgbW9kZSB3ZSBraWxsIHRoZSBzcGF3bmVkIHByb2Nlc3MgYW55d2F5LiAgKi8KKwlpZiAoIXBmbGFnX3NlZW4pCisJCXN0YXJ0dXBfY2hpbGQoJmFyZ3Zbb3B0aW5kXSk7CiAKIAlzaWdlbXB0eXNldCgmZW1wdHlfc2V0KTsKIAlzaWdlbXB0eXNldCgmYmxvY2tlZF9zZXQpOwpAQCAtNjgyLDM5ICsxMDU2LDI3IEBACiAJc2lnYWN0aW9uKFNJR0NITEQsICZzYSwgTlVMTCk7CiAjZW5kaWYgLyogVVNFX1BST0NGUyAqLwogCisJaWYgKHBmbGFnX3NlZW4gfHwgZGFlbW9uaXplZF90cmFjZXIpCisJCXN0YXJ0dXBfYXR0YWNoKCk7CisKIAlpZiAodHJhY2UoKSA8IDApCiAJCWV4aXQoMSk7CiAJY2xlYW51cCgpOwotCWV4aXQoMCk7CisJZmZsdXNoKE5VTEwpOworCWlmIChleGl0X2NvZGUgPiAweGZmKSB7CisJCS8qIENoaWxkIHdhcyBraWxsZWQgYnkgYSBzaWduYWwsIG1pbWljIHRoYXQuICAqLworCQlleGl0X2NvZGUgJj0gMHhmZjsKKwkJc2lnbmFsKGV4aXRfY29kZSwgU0lHX0RGTCk7CisJCXJhaXNlKGV4aXRfY29kZSk7CisJCS8qIFBhcmFub2lhIC0gd2hhdCBpZiB0aGlzIHNpZ25hbCBpcyBub3QgZmF0YWw/CisJCSAgIEV4aXQgd2l0aCAxMjggKyBzaWdubyB0aGVuLiAgKi8KKwkJZXhpdF9jb2RlICs9IDEyODsKKwl9CisJZXhpdChleGl0X2NvZGUpOwogfQogCiB2b2lkCi1uZXdvdXRmKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKLXsKLQljaGFyIG5hbWVbTUFYUEFUSExFTl07Ci0JRklMRSAqZnA7Ci0KLQlpZiAob3V0Zm5hbWUgJiYgZm9sbG93Zm9yayA+IDEpIHsKLQkJc3ByaW50ZihuYW1lLCAiJXMuJXUiLCBvdXRmbmFtZSwgdGNwLT5waWQpOwotI2lmbmRlZiBTVlI0Ci0JCXNldHJldWlkKGdldGV1aWQoKSwgZ2V0dWlkKCkpOwotI2VuZGlmCi0JCWZwID0gZm9wZW4obmFtZSwgInciKTsKLSNpZm5kZWYgU1ZSNAotCQlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKLSNlbmRpZgotCQlpZiAoZnAgPT0gTlVMTCkgewotCQkJcGVycm9yKCJmb3BlbiIpOwotCQkJcmV0dXJuOwotCQl9Ci0JCXRjcC0+b3V0ZiA9IGZwOwotCX0KLQlyZXR1cm47Ci19Ci0KLWludAotZXhwYW5kX3RjYnRhYigpCitleHBhbmRfdGNidGFiKHZvaWQpCiB7CiAJLyogQWxsb2NhdGUgc29tZSBtb3JlIFRDQnMgYW5kIGV4cGFuZCB0aGUgdGFibGUuCiAJICAgV2UgZG9uJ3Qgd2FudCB0byByZWxvY2F0ZSB0aGUgVENCcyBiZWNhdXNlIG91cgpAQCAtNzI3LDI2ICsxMDg5LDI2IEBACiAJCQkJCQkgICAgc2l6ZW9mICpuZXd0Y2JzKTsKIAlpbnQgaTsKIAlpZiAobmV3dGFiID09IE5VTEwgfHwgbmV3dGNicyA9PSBOVUxMKSB7Ci0JCWlmIChuZXd0YWIgIT0gTlVMTCkKLQkJCWZyZWUobmV3dGFiKTsKLQkJcmV0dXJuIDE7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IGV4cGFuZF90Y2J0YWI6IG91dCBvZiBtZW1vcnlcbiIsCisJCQlwcm9nbmFtZSk7CisJCWNsZWFudXAoKTsKKwkJZXhpdCgxKTsKIAl9CiAJZm9yIChpID0gdGNidGFic2l6ZTsgaSA8IDIgKiB0Y2J0YWJzaXplOyArK2kpCiAJCW5ld3RhYltpXSA9ICZuZXd0Y2JzW2kgLSB0Y2J0YWJzaXplXTsKIAl0Y2J0YWJzaXplICo9IDI7CiAJdGNidGFiID0gbmV3dGFiOwotCi0JcmV0dXJuIDA7CiB9CiAKLQogc3RydWN0IHRjYiAqCi1hbGxvY3RjYihwaWQpCi1pbnQgcGlkOworYWxsb2NfdGNiKGludCBwaWQsIGludCBjb21tYW5kX29wdGlvbnNfcGFyc2VkKQogewogCWludCBpOwogCXN0cnVjdCB0Y2IgKnRjcDsKIAorCWlmIChucHJvY3MgPT0gdGNidGFic2l6ZSkKKwkJZXhwYW5kX3RjYnRhYigpOworCiAJZm9yIChpID0gMDsgaSA8IHRjYnRhYnNpemU7IGkrKykgewogCQl0Y3AgPSB0Y2J0YWJbaV07CiAJCWlmICgodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkgPT0gMCkgewpAQCAtNzU1LDI2ICsxMTE3LDI5IEBACiAJCQl0Y3AtPm5jaGlsZHJlbiA9IDA7CiAJCQl0Y3AtPm56b21iaWVzID0gMDsKICNpZmRlZiBUQ0JfQ0xPTkVfVEhSRUFECi0JCQl0Y3AtPm5jbG9uZV90aHJlYWRzID0gdGNwLT5uY2xvbmVfZGV0YWNoZWQgPSAwOworCQkJdGNwLT5uY2xvbmVfdGhyZWFkcyA9IDA7CiAJCQl0Y3AtPm5jbG9uZV93YWl0aW5nID0gMDsKICNlbmRpZgogCQkJdGNwLT5mbGFncyA9IFRDQl9JTlVTRSB8IFRDQl9TVEFSVFVQOwogCQkJdGNwLT5vdXRmID0gb3V0ZjsgLyogSW5pdGlhbGlzZSB0byBjdXJyZW50IG91dCBmaWxlICovCisJCQl0Y3AtPmN1cmNvbCA9IDA7CiAJCQl0Y3AtPnN0aW1lLnR2X3NlYyA9IDA7CiAJCQl0Y3AtPnN0aW1lLnR2X3VzZWMgPSAwOwogCQkJdGNwLT5wZmQgPSAtMTsKIAkJCW5wcm9jcysrOworCQkJaWYgKGNvbW1hbmRfb3B0aW9uc19wYXJzZWQpCisJCQkJbmV3b3V0Zih0Y3ApOwogCQkJcmV0dXJuIHRjcDsKIAkJfQogCX0KLQlyZXR1cm4gTlVMTDsKKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiBidWcgaW4gYWxsb2NfdGNiXG4iLCBwcm9nbmFtZSk7CisJY2xlYW51cCgpOworCWV4aXQoMSk7CiB9CiAKICNpZmRlZiBVU0VfUFJPQ0ZTCiBpbnQKLXByb2Nfb3Blbih0Y3AsIGF0dGFjaGluZykKLXN0cnVjdCB0Y2IgKnRjcDsKLWludCBhdHRhY2hpbmc7Citwcm9jX29wZW4oc3RydWN0IHRjYiAqdGNwLCBpbnQgYXR0YWNoaW5nKQogewogCWNoYXIgcHJvY1szMl07CiAJbG9uZyBhcmc7CkBAIC03OTUsMTIgKzExNjAsNyBAQAogCQlwZXJyb3IoInN0cmFjZTogb3BlbihcIi9wcm9jLy4uLlwiLCAuLi4pIik7CiAJCXJldHVybiAtMTsKIAl9Ci0JaWYgKChhcmcgPSBmY250bCh0Y3AtPnBmZCwgRl9HRVRGRCkpIDwgMCkgewotCQlwZXJyb3IoIkZfR0VURkQiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAoZmNudGwodGNwLT5wZmQsIEZfU0VURkQsIGFyZ3xGRF9DTE9FWEVDKSA8IDApIHsKLQkJcGVycm9yKCJGX1NFVEZEIik7CisJaWYgKHNldF9jbG9leGVjX2ZsYWcodGNwLT5wZmQpIDwgMCkgewogCQlyZXR1cm4gLTE7CiAJfQogCXNwcmludGYocHJvYywgIi9wcm9jLyVkL3N0YXR1cyIsIHRjcC0+cGlkKTsKQEAgLTgwOCwxMiArMTE2OCw3IEBACiAJCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uXCIsIC4uLikiKTsKIAkJcmV0dXJuIC0xOwogCX0KLQlpZiAoKGFyZyA9IGZjbnRsKHRjcC0+cGZkX3N0YXQsIEZfR0VURkQpKSA8IDApIHsKLQkJcGVycm9yKCJGX0dFVEZEIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JaWYgKGZjbnRsKHRjcC0+cGZkX3N0YXQsIEZfU0VURkQsIGFyZ3xGRF9DTE9FWEVDKSA8IDApIHsKLQkJcGVycm9yKCJGX1NFVEZEIik7CisJaWYgKHNldF9jbG9leGVjX2ZsYWcodGNwLT5wZmRfc3RhdCkgPCAwKSB7CiAJCXJldHVybiAtMTsKIAl9CiAJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvYXMiLCB0Y3AtPnBpZCk7CkBAIC04MjEsMzIgKzExNzYsMjMgQEAKIAkJcGVycm9yKCJzdHJhY2U6IG9wZW4oXCIvcHJvYy8uLi5cIiwgLi4uKSIpOwogCQlyZXR1cm4gLTE7CiAJfQotCWlmICgoYXJnID0gZmNudGwodGNwLT5wZmRfYXMsIEZfR0VURkQpKSA8IDApIHsKLQkJcGVycm9yKCJGX0dFVEZEIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JaWYgKGZjbnRsKHRjcC0+cGZkX2FzLCBGX1NFVEZELCBhcmd8RkRfQ0xPRVhFQykgPCAwKSB7Ci0JCXBlcnJvcigiRl9TRVRGRCIpOworCWlmIChzZXRfY2xvZXhlY19mbGFnKHRjcC0+cGZkX2FzKSA8IDApIHsKIAkJcmV0dXJuIC0xOwogCX0KICNlbHNlCiAJLyogT3BlbiB0aGUgcHJvY2VzcyBwc2V1ZG8tZmlsZSBpbiAvcHJvYy4gKi8KICNpZm5kZWYgRlJFRUJTRAogCXNwcmludGYocHJvYywgIi9wcm9jLyVkIiwgdGNwLT5waWQpOwotCWlmICgodGNwLT5wZmQgPSBvcGVuKHByb2MsIE9fUkRXUnxPX0VYQ0wpKSA8IDApIHsKKwl0Y3AtPnBmZCA9IG9wZW4ocHJvYywgT19SRFdSfE9fRVhDTCk7CiAjZWxzZSAvKiBGUkVFQlNEICovCiAJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvbWVtIiwgdGNwLT5waWQpOwotCWlmICgodGNwLT5wZmQgPSBvcGVuKHByb2MsIE9fUkRXUikpIDwgMCkgeworCXRjcC0+cGZkID0gb3Blbihwcm9jLCBPX1JEV1IpOwogI2VuZGlmIC8qIEZSRUVCU0QgKi8KKwlpZiAodGNwLT5wZmQgPCAwKSB7CiAJCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uXCIsIC4uLikiKTsKIAkJcmV0dXJuIC0xOwogCX0KLQlpZiAoKGFyZyA9IGZjbnRsKHRjcC0+cGZkLCBGX0dFVEZEKSkgPCAwKSB7Ci0JCXBlcnJvcigiRl9HRVRGRCIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmIChmY250bCh0Y3AtPnBmZCwgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgewotCQlwZXJyb3IoIkZfU0VURkQiKTsKKwlpZiAoc2V0X2Nsb2V4ZWNfZmxhZyh0Y3AtPnBmZCkgPCAwKSB7CiAJCXJldHVybiAtMTsKIAl9CiAjZW5kaWYKQEAgLTkxNCwxMiArMTI2MCwxMiBAQAogCS8qIGp1c3QgdW5zZXQgdGhlIFBGX0xJTkdFUiBmbGFnIGZvciB0aGUgUnVuLW9uLUxhc3QtQ2xvc2UuICovCiAJaWYgKGlvY3RsKHRjcC0+cGZkLCBQSU9DR0ZMLCAmYXJnKSA8IDApIHsKIAkgICAgICAgIHBlcnJvcigiUElPQ0dGTCIpOwotCSAgICAgICAgcmV0dXJuIC0xOworCQlyZXR1cm4gLTE7CiAJfQogCWFyZyAmPSB+UEZfTElOR0VSOwogCWlmIChpb2N0bCh0Y3AtPnBmZCwgUElPQ1NGTCwgYXJnKSA8IDApIHsKLQkgICAgICAgIHBlcnJvcigiUElPQ1NGTCIpOwotCSAgICAgICAgcmV0dXJuIC0xOworCQlwZXJyb3IoIlBJT0NTRkwiKTsKKwkJcmV0dXJuIC0xOwogCX0KICNlbmRpZiAvKiBGUkVFQlNEICovCiAjZW5kaWYgLyogIVBJT0NTRVQgKi8KQEAgLTEwODEsMjQgKzE0MjcsMzcgQEAKICNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCiAKIHN0cnVjdCB0Y2IgKgotcGlkMnRjYihwaWQpCi1pbnQgcGlkOworcGlkMnRjYihpbnQgcGlkKQoreworCWludCBpOworCisJaWYgKHBpZCA8PSAwKQorCQlyZXR1cm4gTlVMTDsKKworCWZvciAoaSA9IDA7IGkgPCB0Y2J0YWJzaXplOyBpKyspIHsKKwkJc3RydWN0IHRjYiAqdGNwID0gdGNidGFiW2ldOworCQlpZiAodGNwLT5waWQgPT0gcGlkICYmICh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKSkKKwkJCXJldHVybiB0Y3A7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKyNpZmRlZiBVU0VfUFJPQ0ZTCisKK3N0YXRpYyBzdHJ1Y3QgdGNiICoKK2ZpcnN0X3VzZWRfdGNiKHZvaWQpCiB7CiAJaW50IGk7CiAJc3RydWN0IHRjYiAqdGNwOwotCiAJZm9yIChpID0gMDsgaSA8IHRjYnRhYnNpemU7IGkrKykgewogCQl0Y3AgPSB0Y2J0YWJbaV07Ci0JCWlmIChwaWQgJiYgdGNwLT5waWQgIT0gcGlkKQotCQkJY29udGludWU7CiAJCWlmICh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKQogCQkJcmV0dXJuIHRjcDsKIAl9CiAJcmV0dXJuIE5VTEw7CiB9CiAKLSNpZmRlZiBVU0VfUFJPQ0ZTCi0KIHN0YXRpYyBzdHJ1Y3QgdGNiICoKIHBmZDJ0Y2IocGZkKQogaW50IHBmZDsKQEAgLTExMzksMTUgKzE0OTgsMjAgQEAKIAlpZiAodGNwLT5wYXJlbnQgIT0gTlVMTCkgewogCQl0Y3AtPnBhcmVudC0+bmNoaWxkcmVuLS07CiAjaWZkZWYgVENCX0NMT05FX1RIUkVBRAotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9ERVRBQ0hFRCkKLQkJCXRjcC0+cGFyZW50LT5uY2xvbmVfZGV0YWNoZWQtLTsKIAkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQ0xPTkVfVEhSRUFEKQogCQkJdGNwLT5wYXJlbnQtPm5jbG9uZV90aHJlYWRzLS07CiAjZW5kaWYKLSNpZmRlZiBUQ0JfQ0xPTkVfREVUQUNIRUQKLQkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9ERVRBQ0hFRCkpCisJCXRjcC0+cGFyZW50LT5uem9tYmllcysrOworI2lmZGVmIExJTlVYCisJCS8qIFVwZGF0ZSBgdGNwLT5wYXJlbnQtPnBhcmVudC0+bmNoaWxkcmVuJyBhbmQgdGhlIG90aGVyIGZpZWxkcworCQkgICBsaWtlIE5DTE9ORV9ERVRBQ0hFRCwgb25seSBmb3Igem9tYmllIGdyb3VwIGxlYWRlciB0aGF0IGhhcworCQkgICBhbHJlYWR5IHJlcG9ydGVkIGFuZCBiZWVuIHNob3J0LWNpcmN1aXRlZCBhdCB0aGUgdG9wIG9mIHRoaXMKKwkJICAgZnVuY3Rpb24uICBUaGUgc2FtZSBjb25kaXRpb24gYXMgYXQgdGhlIHRvcCBvZiBERVRBQ0guICAqLworCQlpZiAoKHRjcC0+ZmxhZ3MgJiBUQ0JfQ0xPTkVfVEhSRUFEKSAmJgorCQkgICAgdGNwLT5wYXJlbnQtPm5jbG9uZV90aHJlYWRzID09IDAgJiYKKwkJICAgICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJiBUQ0JfRVhJVElORykpCisJCQlkcm9wdGNiKHRjcC0+cGFyZW50KTsKICNlbmRpZgotCQkJdGNwLT5wYXJlbnQtPm56b21iaWVzKys7CiAJCXRjcC0+cGFyZW50ID0gTlVMTDsKIAl9CiAKQEAgLTExOTUsMTIzICsxNTU5LDE5IEBACiAJCXRjcC0+cGFyZW50LT5uY2xvbmVfd2FpdGluZy0tOwogI2VuZGlmCiAKLQlpZiAocHRyYWNlKFBUUkFDRV9TWVNDQUxMLCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7Ci0JCXBlcnJvcigicmVzdW1lOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKKwlpZiAocHRyYWNlX3Jlc3RhcnQoUFRSQUNFX1NZU0NBTEwsIHRjcCwgMCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0JfQogCiAJaWYgKCFxZmxhZykKIAkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICV1IHJlc3VtZWRcbiIsIHRjcC0+cGlkKTsKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCi0KLS8qIGRldGFjaCB0cmFjZWQgcHJvY2VzczsgY29udGludWUgd2l0aCBzaWcgKi8KLQogc3RhdGljIGludAotZGV0YWNoKHRjcCwgc2lnKQotc3RydWN0IHRjYiAqdGNwOwotaW50IHNpZzsKK3Jlc3VtZV9mcm9tX3RjcCAoc3RydWN0IHRjYiAqdGNwKQogewogCWludCBlcnJvciA9IDA7Ci0jaWZkZWYgTElOVVgKLQlpbnQgc3RhdHVzLCByZXN1bWVkOwotI2VuZGlmCi0KLQlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpCi0JCXNpZyA9IFNJR0tJTEw7Ci0KLSNpZmRlZiBMSU5VWAotCS8qCi0JICogTGludXggd3JvbmdseSBpbnNpc3RzIHRoZSBjaGlsZCBiZSBzdG9wcGVkCi0JICogYmVmb3JlIGRldGFjaGluZy4gIEFyZ2hoLiAgV2UgZ28gdGhyb3VnaCBob29wcwotCSAqIHRvIG1ha2UgYSBjbGVhbiBicmVhayBvZiB0aGluZ3MuCi0JICovCi0jaWYgZGVmaW5lZChTUEFSQykKLSN1bmRlZiBQVFJBQ0VfREVUQUNICi0jZGVmaW5lIFBUUkFDRV9ERVRBQ0ggUFRSQUNFX1NVTkRFVEFDSAotI2VuZGlmCi0JaWYgKChlcnJvciA9IHB0cmFjZShQVFJBQ0VfREVUQUNILCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgc2lnKSkgPT0gMCkgewotCQkvKiBPbiBhIGNsZWFyIGRheSwgeW91IGNhbiBzZWUgZm9yZXZlci4gKi8KLQl9Ci0JZWxzZSBpZiAoZXJybm8gIT0gRVNSQ0gpIHsKLQkJLyogU2hvdWxkbid0IGhhcHBlbi4gKi8KLQkJcGVycm9yKCJkZXRhY2g6IHB0cmFjZShQVFJBQ0VfREVUQUNILCAuLi4pIik7Ci0JfQotCWVsc2UgaWYgKGtpbGwodGNwLT5waWQsIDApIDwgMCkgewotCQlpZiAoZXJybm8gIT0gRVNSQ0gpCi0JCQlwZXJyb3IoImRldGFjaDogY2hlY2tpbmcgc2FuaXR5Iik7Ci0JfQotCWVsc2UgaWYgKGtpbGwodGNwLT5waWQsIFNJR1NUT1ApIDwgMCkgewotCQlpZiAoZXJybm8gIT0gRVNSQ0gpCi0JCQlwZXJyb3IoImRldGFjaDogc3RvcHBpbmcgY2hpbGQiKTsKLQl9Ci0JZWxzZSB7Ci0JCWZvciAoOzspIHsKLSNpZmRlZiBfX1dBTEwKLQkJCWlmICh3YWl0NCh0Y3AtPnBpZCwgJnN0YXR1cywgX19XQUxMLCBOVUxMKSA8IDApIHsKLQkJCQlpZiAoZXJybm8gPT0gRUNISUxEKSAvKiBBbHJlYWR5IGdvbmUuICAqLwotCQkJCQlicmVhazsKLQkJCQlpZiAoZXJybm8gIT0gRUlOVkFMKSB7Ci0JCQkJCXBlcnJvcigiZGV0YWNoOiB3YWl0aW5nIik7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLSNlbmRpZiAvKiBfX1dBTEwgKi8KLQkJCQkvKiBObyBfX1dBTEwgaGVyZS4gICovCi0JCQkJaWYgKHdhaXRwaWQodGNwLT5waWQsICZzdGF0dXMsIDApIDwgMCkgewotCQkJCQlpZiAoZXJybm8gIT0gRUNISUxEKSB7Ci0JCQkJCQlwZXJyb3IoImRldGFjaDogd2FpdGluZyIpOwotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KLSNpZmRlZiBfX1dDTE9ORQotCQkJCQkvKiBJZiBubyBwcm9jZXNzZXMsIHRyeSBjbG9uZXMuICAqLwotCQkJCQlpZiAod2FpdDQodGNwLT5waWQsICZzdGF0dXMsIF9fV0NMT05FLAotCQkJCQkJICBOVUxMKSA8IDApIHsKLQkJCQkJCWlmIChlcnJubyAhPSBFQ0hJTEQpCi0JCQkJCQkJcGVycm9yKCJkZXRhY2g6IHdhaXRpbmciKTsKLQkJCQkJCWJyZWFrOwotCQkJCQl9Ci0jZW5kaWYgLyogX19XQ0xPTkUgKi8KLQkJCQl9Ci0jaWZkZWYgX19XQUxMCi0JCQl9Ci0jZW5kaWYKLQkJCWlmICghV0lGU1RPUFBFRChzdGF0dXMpKSB7Ci0JCQkJLyogQXUgcmV2b2lyLCBtb24gYW1pLiAqLwotCQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKFdTVE9QU0lHKHN0YXR1cykgPT0gU0lHU1RPUCkgewotCQkJCWlmICgoZXJyb3IgPSBwdHJhY2UoUFRSQUNFX0RFVEFDSCwKLQkJCQkgICAgdGNwLT5waWQsIChjaGFyICopIDEsIHNpZykpIDwgMCkgewotCQkJCQlpZiAoZXJybm8gIT0gRVNSQ0gpCi0JCQkJCQlwZXJyb3IoImRldGFjaDogcHRyYWNlKFBUUkFDRV9ERVRBQ0gsIC4uLikiKTsKLQkJCQkJLyogSSBkaWVkIHRyeWluZy4gKi8KLQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZiAoKGVycm9yID0gcHRyYWNlKFBUUkFDRV9DT05ULCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwKLQkJCSAgICBXU1RPUFNJRyhzdGF0dXMpID09IFNJR1RSQVAgPwotCQkJICAgIDAgOiBXU1RPUFNJRyhzdGF0dXMpKSkgPCAwKSB7Ci0JCQkJaWYgKGVycm5vICE9IEVTUkNIKQotCQkJCQlwZXJyb3IoImRldGFjaDogcHRyYWNlKFBUUkFDRV9DT05ULCAuLi4pIik7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQl9Ci0jZW5kaWYgLyogTElOVVggKi8KLQotI2lmIGRlZmluZWQoU1VOT1M0KQotCS8qIFBUUkFDRV9ERVRBQ0ggd29uJ3QgcmVzcGVjdCBgc2lnJyBhcmd1bWVudCwgc28gd2UgcG9zdCBpdCBoZXJlLiAqLwotCWlmIChzaWcgJiYga2lsbCh0Y3AtPnBpZCwgc2lnKSA8IDApCi0JCXBlcnJvcigiZGV0YWNoOiBraWxsIik7Ci0Jc2lnID0gMDsKLQlpZiAoKGVycm9yID0gcHRyYWNlKFBUUkFDRV9ERVRBQ0gsIHRjcC0+cGlkLCAoY2hhciAqKSAxLCBzaWcpKSA8IDApCi0JCXBlcnJvcigiZGV0YWNoOiBwdHJhY2UoUFRSQUNFX0RFVEFDSCwgLi4uKSIpOwotI2VuZGlmIC8qIFNVTk9TNCAqLwotCi0jaWZuZGVmIFVTRV9QUk9DRlMKLQlyZXN1bWVkID0gMDsKKwlpbnQgcmVzdW1lZCA9IDA7CiAKIAkvKiBYWFggVGhpcyB3b24ndCBhbHdheXMgYmUgcXVpdGUgcmlnaHQgKGJ1dCBpdCBuZXZlciB3YXMpLgogCSAgIEEgd2FpdGVyIHdpdGggYXJndW1lbnQgMCBvciA8IC0xIGlzIHdhaXRpbmcgZm9yIGFueSBwaWQgaW4KQEAgLTEzMzIsNyArMTU5Miw3IEBACiAJaWYgKHRjcC0+cGFyZW50ICYmCiAJICAgICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJiBUQ0JfU1VTUEVOREVEKSAmJgogCSAgICAodGNwLT5wYXJlbnQtPndhaXRwaWQgPD0gMCB8fCB0Y3AtPnBhcmVudC0+d2FpdHBpZCA9PSB0Y3AtPnBpZCkpIHsKLSAJCWVycm9yID0gcmVzdW1lKHRjcC0+cGFyZW50KTsKKwkJZXJyb3IgPSByZXN1bWUodGNwLT5wYXJlbnQpOwogCQkrK3Jlc3VtZWQ7CiAJfQogI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKQEAgLTEzNjksMzIgKzE2MjksMTU2IEBACiAJfQogI2VuZGlmCiAKKwlyZXR1cm4gZXJyb3I7Cit9CisKICNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwogCisvKiBkZXRhY2ggdHJhY2VkIHByb2Nlc3M7IGNvbnRpbnVlIHdpdGggc2lnCisgICBOZXZlciBjYWxsIERFVEFDSCB0d2ljZSBvbiB0aGUgc2FtZSBwcm9jZXNzIGFzIGJvdGggdW5hdHRhY2hlZCBhbmQKKyAgIGF0dGFjaGVkLXVuc3RvcHBlZCBwcm9jZXNzZXMgZ2l2ZSB0aGUgc2FtZSBFU1JDSC4gIEZvciB1bmF0dGFjaGVkIHByb2Nlc3Mgd2UKKyAgIHdvdWxkIFNJR1NUT1AgaXQgYW5kIHdhaXQgZm9yIGl0cyBTSUdTVE9QIG5vdGlmaWNhdGlvbiBmb3JldmVyLiAgKi8KKworc3RhdGljIGludAorZGV0YWNoKHRjcCwgc2lnKQorc3RydWN0IHRjYiAqdGNwOworaW50IHNpZzsKK3sKKwlpbnQgZXJyb3IgPSAwOworI2lmZGVmIExJTlVYCisJaW50IHN0YXR1cywgY2F0Y2hfc2lnc3RvcDsKKwlzdHJ1Y3QgdGNiICp6b21iaWUgPSBOVUxMOworCisJLyogSWYgdGhlIGdyb3VwIGxlYWRlciBpcyBsaW5nZXJpbmcgb25seSBiZWNhdXNlIG9mIHRoaXMgb3RoZXIKKwkgICB0aHJlYWQgbm93IGR5aW5nLCB0aGVuIGRldGFjaCB0aGUgbGVhZGVyIGFzIHdlbGwuICAqLworCWlmICgodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpICYmCisJICAgIHRjcC0+cGFyZW50LT5uY2xvbmVfdGhyZWFkcyA9PSAxICYmCisJICAgICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJiBUQ0JfRVhJVElORykpCisJCXpvbWJpZSA9IHRjcC0+cGFyZW50OworI2VuZGlmCisKKwlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpCisJCWNsZWFyYnB0KHRjcCk7CisKKyNpZmRlZiBMSU5VWAorCS8qCisJICogTGludXggd3JvbmdseSBpbnNpc3RzIHRoZSBjaGlsZCBiZSBzdG9wcGVkCisJICogYmVmb3JlIGRldGFjaGluZy4gIEFyZ2hoLiAgV2UgZ28gdGhyb3VnaCBob29wcworCSAqIHRvIG1ha2UgYSBjbGVhbiBicmVhayBvZiB0aGluZ3MuCisJICovCisjaWYgZGVmaW5lZChTUEFSQykKKyN1bmRlZiBQVFJBQ0VfREVUQUNICisjZGVmaW5lIFBUUkFDRV9ERVRBQ0ggUFRSQUNFX1NVTkRFVEFDSAorI2VuZGlmCisJLyoKKwkgKiBPbiBUQ0JfU1RBUlRVUCB3ZSBkaWQgUFRSQUNFX0FUVEFDSCBidXQgc3RpbGwgZGlkIG5vdCBnZXQgdGhlCisJICogZXhwZWN0ZWQgU0lHU1RPUC4gIFdlIG11c3QgY2F0Y2ggZXhhY3RseSBvbmUgYXMgb3RoZXJ3aXNlIHRoZQorCSAqIGRldGFjaGVkIHByb2Nlc3Mgd291bGQgYmUgbGVmdCBzdG9wcGVkIChwcm9jZXNzIHN0YXRlIFQpLgorCSAqLworCWNhdGNoX3NpZ3N0b3AgPSAodGNwLT5mbGFncyAmIFRDQl9TVEFSVFVQKTsKKwlpZiAoKGVycm9yID0gcHRyYWNlKFBUUkFDRV9ERVRBQ0gsIHRjcC0+cGlkLCAoY2hhciAqKSAxLCBzaWcpKSA9PSAwKSB7CisJCS8qIE9uIGEgY2xlYXIgZGF5LCB5b3UgY2FuIHNlZSBmb3JldmVyLiAqLworCX0KKwllbHNlIGlmIChlcnJubyAhPSBFU1JDSCkgeworCQkvKiBTaG91bGRuJ3QgaGFwcGVuLiAqLworCQlwZXJyb3IoImRldGFjaDogcHRyYWNlKFBUUkFDRV9ERVRBQ0gsIC4uLikiKTsKKwl9CisJZWxzZSBpZiAobXlfdGdraWxsKCh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCA/IHRjcC0+cGFyZW50LT5waWQKKwkJCQkJCQkgIDogdGNwLT5waWQpLAorCQkJICAgdGNwLT5waWQsIDApIDwgMCkgeworCQlpZiAoZXJybm8gIT0gRVNSQ0gpCisJCQlwZXJyb3IoImRldGFjaDogY2hlY2tpbmcgc2FuaXR5Iik7CisJfQorCWVsc2UgaWYgKCFjYXRjaF9zaWdzdG9wICYmIG15X3Rna2lsbCgodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQKKwkJCQkJICAgICAgPyB0Y3AtPnBhcmVudC0+cGlkIDogdGNwLT5waWQpLAorCQkJCQkgICAgIHRjcC0+cGlkLCBTSUdTVE9QKSA8IDApIHsKKwkJaWYgKGVycm5vICE9IEVTUkNIKQorCQkJcGVycm9yKCJkZXRhY2g6IHN0b3BwaW5nIGNoaWxkIik7CisJfQorCWVsc2UKKwkJY2F0Y2hfc2lnc3RvcCA9IDE7CisJaWYgKGNhdGNoX3NpZ3N0b3ApIHsKKwkJZm9yICg7OykgeworI2lmZGVmIF9fV0FMTAorCQkJaWYgKHdhaXQ0KHRjcC0+cGlkLCAmc3RhdHVzLCBfX1dBTEwsIE5VTEwpIDwgMCkgeworCQkJCWlmIChlcnJubyA9PSBFQ0hJTEQpIC8qIEFscmVhZHkgZ29uZS4gICovCisJCQkJCWJyZWFrOworCQkJCWlmIChlcnJubyAhPSBFSU5WQUwpIHsKKwkJCQkJcGVycm9yKCJkZXRhY2g6IHdhaXRpbmciKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorI2VuZGlmIC8qIF9fV0FMTCAqLworCQkJCS8qIE5vIF9fV0FMTCBoZXJlLiAgKi8KKwkJCQlpZiAod2FpdHBpZCh0Y3AtPnBpZCwgJnN0YXR1cywgMCkgPCAwKSB7CisJCQkJCWlmIChlcnJubyAhPSBFQ0hJTEQpIHsKKwkJCQkJCXBlcnJvcigiZGV0YWNoOiB3YWl0aW5nIik7CisJCQkJCQlicmVhazsKKwkJCQkJfQorI2lmZGVmIF9fV0NMT05FCisJCQkJCS8qIElmIG5vIHByb2Nlc3NlcywgdHJ5IGNsb25lcy4gICovCisJCQkJCWlmICh3YWl0NCh0Y3AtPnBpZCwgJnN0YXR1cywgX19XQ0xPTkUsCisJCQkJCQkgIE5VTEwpIDwgMCkgeworCQkJCQkJaWYgKGVycm5vICE9IEVDSElMRCkKKwkJCQkJCQlwZXJyb3IoImRldGFjaDogd2FpdGluZyIpOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKyNlbmRpZiAvKiBfX1dDTE9ORSAqLworCQkJCX0KKyNpZmRlZiBfX1dBTEwKKwkJCX0KKyNlbmRpZgorCQkJaWYgKCFXSUZTVE9QUEVEKHN0YXR1cykpIHsKKwkJCQkvKiBBdSByZXZvaXIsIG1vbiBhbWkuICovCisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoV1NUT1BTSUcoc3RhdHVzKSA9PSBTSUdTVE9QKSB7CisJCQkJcHRyYWNlX3Jlc3RhcnQoUFRSQUNFX0RFVEFDSCwgdGNwLCBzaWcpOworCQkJCWJyZWFrOworCQkJfQorCQkJZXJyb3IgPSBwdHJhY2VfcmVzdGFydChQVFJBQ0VfQ09OVCwgdGNwLAorCQkJCQlXU1RPUFNJRyhzdGF0dXMpID09IFNJR1RSQVAgPyAwCisJCQkJCTogV1NUT1BTSUcoc3RhdHVzKSk7CisJCQlpZiAoZXJyb3IgPCAwKQorCQkJCWJyZWFrOworCQl9CisJfQorI2VuZGlmIC8qIExJTlVYICovCisKKyNpZiBkZWZpbmVkKFNVTk9TNCkKKwkvKiBQVFJBQ0VfREVUQUNIIHdvbid0IHJlc3BlY3QgYHNpZycgYXJndW1lbnQsIHNvIHdlIHBvc3QgaXQgaGVyZS4gKi8KKwlpZiAoc2lnICYmIGtpbGwodGNwLT5waWQsIHNpZykgPCAwKQorCQlwZXJyb3IoImRldGFjaDoga2lsbCIpOworCXNpZyA9IDA7CisJZXJyb3IgPSBwdHJhY2VfcmVzdGFydChQVFJBQ0VfREVUQUNILCB0Y3AsIHNpZyk7CisjZW5kaWYgLyogU1VOT1M0ICovCisKKyNpZm5kZWYgVVNFX1BST0NGUworCWVycm9yIHw9IHJlc3VtZV9mcm9tX3RjcCAodGNwKTsKKyNlbmRpZgorCiAJaWYgKCFxZmxhZykKIAkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICV1IGRldGFjaGVkXG4iLCB0Y3AtPnBpZCk7CiAKIAlkcm9wdGNiKHRjcCk7CisKKyNpZmRlZiBMSU5VWAorCWlmICh6b21iaWUgIT0gTlVMTCkgeworCQkvKiBUQ1Agbm8gbG9uZ2VyIGV4aXN0cyB0aGVyZWZvcmUgeW91IG11c3Qgbm90IGRldGFjaCAoKSBpdC4gICovCisJCWRyb3B0Y2Ioem9tYmllKTsKKwl9CisjZW5kaWYKKwogCXJldHVybiBlcnJvcjsKIH0KIAogI2lmZGVmIFVTRV9QUk9DRlMKIAotc3RhdGljIHZvaWQKLXJlYXBlcihzaWcpCi1pbnQgc2lnOworc3RhdGljIHZvaWQgcmVhcGVyKGludCBzaWcpCiB7CiAJaW50IHBpZDsKIAlpbnQgc3RhdHVzOwogCiAJd2hpbGUgKChwaWQgPSB3YWl0cGlkKC0xLCAmc3RhdHVzLCBXTk9IQU5HKSkgPiAwKSB7Ci0jaWYgMAotCQlzdHJ1Y3QgdGNiICp0Y3A7Ci0KLQkJdGNwID0gcGlkMnRjYihwaWQpOwotCQlpZiAodGNwKQotCQkJZHJvcHRjYih0Y3ApOwotI2VuZGlmCiAJfQogfQogCkBAIC0xNDE1LDggKzE3OTksOCBAQAogCQkJCSJjbGVhbnVwOiBsb29raW5nIGF0IHBpZCAldVxuIiwgdGNwLT5waWQpOwogCQlpZiAodGNwX2xhc3QgJiYKIAkJICAgICghb3V0Zm5hbWUgfHwgZm9sbG93Zm9yayA8IDIgfHwgdGNwX2xhc3QgPT0gdGNwKSkgewotCQkJdHByaW50ZigiIDx1bmZpbmlzaGVkIC4uLj5cbiIpOwotCQkJdGNwX2xhc3QgPSBOVUxMOworCQkJdHByaW50ZigiIDx1bmZpbmlzaGVkIC4uLj4iKTsKKwkJCXByaW50dHJhaWxlcigpOwogCQl9CiAJCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKQogCQkJZGV0YWNoKHRjcCwgMCk7CkBAIC0xNTIwLDcgKzE5MDQsNiBAQAogc3RhdGljIHZvaWQKIHByb2NfcG9sbF9vcGVuKCkKIHsKLQlpbnQgYXJnOwogCWludCBpOwogCiAJaWYgKHBpcGUocHJvY19wb2xsX3BpcGUpIDwgMCkgewpAQCAtMTUyOCwxMiArMTkxMSw3IEBACiAJCWV4aXQoMSk7CiAJfQogCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKLQkJaWYgKChhcmcgPSBmY250bChwcm9jX3BvbGxfcGlwZVtpXSwgRl9HRVRGRCkpIDwgMCkgewotCQkJcGVycm9yKCJGX0dFVEZEIik7Ci0JCQlleGl0KDEpOwotCQl9Ci0JCWlmIChmY250bChwcm9jX3BvbGxfcGlwZVtpXSwgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgewotCQkJcGVycm9yKCJGX1NFVEZEIik7CisJCWlmIChzZXRfY2xvZXhlY19mbGFnKHByb2NfcG9sbF9waXBlW2ldKSA8IDApIHsKIAkJCWV4aXQoMSk7CiAJCX0KIAl9CkBAIC0xNTg4LDcgKzE5NjYsNyBAQAogCXN3aXRjaCAoZm9yaygpKSB7CiAJY2FzZSAtMToKIAkJcGVycm9yKCJmb3JrIik7Ci0JCV9leGl0KDApOworCQlfZXhpdCgxKTsKIAljYXNlIDA6CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0xNjEyLDcgKzE5OTAsNyBAQAogCiAJaWYgKGdldHJsaW1pdChSTElNSVRfTk9GSUxFLCAmcmwpIDwgMCkgewogCQlwZXJyb3IoImdldHJsaW1pdChSTElNSVRfTk9GSUxFLCAuLi4pIik7Ci0JCV9leGl0KDApOworCQlfZXhpdCgxKTsKIAl9CiAJbiA9IHJsLnJsaW1fY3VyOwogCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKQEAgLTE2MjQsMTAgKzIwMDIsMTAgQEAKIAlwb2xsaW5mby5waWQgPSBnZXRwaWQoKTsKIAlmb3IgKDs7KSB7CiAjaWZuZGVmIEZSRUVCU0QKLQkgICAgICAgIGlmIChpb2N0bChwZmQsIFBJT0NXU1RPUCwgTlVMTCkgPCAwKQotI2Vsc2UgLyogRlJFRUJTRCAqLwotCSAgICAgICAgaWYgKGlvY3RsKHBmZCwgUElPQ1dTVE9QLCAmcGZzKSA8IDApCi0jZW5kaWYgLyogRlJFRUJTRCAqLworCQlpZiAoaW9jdGwocGZkLCBQSU9DV1NUT1AsIE5VTEwpIDwgMCkKKyNlbHNlCisJCWlmIChpb2N0bChwZmQsIFBJT0NXU1RPUCwgJnBmcykgPCAwKQorI2VuZGlmCiAJCXsKIAkJCXN3aXRjaCAoZXJybm8pIHsKIAkJCWNhc2UgRUlOVFI6CkBAIC0xNzE3LDcgKzIwOTUsNyBAQAogI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUwogCQkJaWYgKHByb2NfcG9sbF9waXBlWzBdID09IC0xKSB7CiAjZW5kaWYKLQkJCQl0Y3AgPSBwaWQydGNiKDApOworCQkJCXRjcCA9IGZpcnN0X3VzZWRfdGNiKCk7CiAJCQkJaWYgKCF0Y3ApCiAJCQkJCWNvbnRpbnVlOwogCQkJCXBmZCA9IHRjcC0+cGZkOwpAQCAtMTc4OSw3ICsyMTY3LDcgQEAKIAkJCWlmIChwcm9jX3BvbGxfcGlwZVswXSAhPSAtMSkKIAkJCQlpb2N0bF9yZXN1bHQgPSBJT0NUTF9TVEFUVVMgKHRjcCk7CiAJCQllbHNlCi0JCQkgIAlpb2N0bF9yZXN1bHQgPSBJT0NUTF9XU1RPUCAodGNwKTsKKwkJCQlpb2N0bF9yZXN1bHQgPSBJT0NUTF9XU1RPUCAodGNwKTsKICNlbmRpZiAvKiBGUkVFQlNEICovCiAJCQlpb2N0bF9lcnJubyA9IGVycm5vOwogI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUwpAQCAtMTgzOCw2ICsyMjE2LDcgQEAKIAogCQkvKiBzZXQgY3VycmVudCBvdXRwdXQgZmlsZSAqLwogCQlvdXRmID0gdGNwLT5vdXRmOworCQljdXJjb2wgPSB0Y3AtPmN1cmNvbDsKIAogCQlpZiAoY2ZsYWcpIHsKIAkJCXN0cnVjdCB0aW1ldmFsIHN0aW1lOwpAQCAtMTg4Myw0MyArMjI2Miw0OCBAQAogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgUFJfU0lHTkFMTEVEOgotCQkJaWYgKCFjZmxhZyAmJiAocXVhbF9mbGFnc1t3aGF0XSAmIFFVQUxfU0lHTkFMKSkgeworCQkJaWYgKGNmbGFnICE9IENGTEFHX09OTFlfU1RBVFMKKwkJCSAgICAmJiAocXVhbF9mbGFnc1t3aGF0XSAmIFFVQUxfU0lHTkFMKSkgewogCQkJCXByaW50bGVhZGVyKHRjcCk7CiAJCQkJdHByaW50ZigiLS0tICVzICglcykgLS0tIiwKIAkJCQkJc2lnbmFtZSh3aGF0KSwgc3Ryc2lnbmFsKHdoYXQpKTsKLQkJCQlwcmludHRyYWlsZXIodGNwKTsKKwkJCQlwcmludHRyYWlsZXIoKTsKICNpZmRlZiBQUl9JTkZPCiAJCQkJaWYgKHRjcC0+c3RhdHVzLlBSX0lORk8uc2lfc2lnbm8gPT0gd2hhdCkgewogCQkJCQlwcmludGxlYWRlcih0Y3ApOwogCQkJCQl0cHJpbnRmKCIgICAgc2lnaW5mbz0iKTsKIAkJCQkJcHJpbnRzaWdpbmZvKCZ0Y3AtPnN0YXR1cy5QUl9JTkZPLCAxKTsKLQkJCQkJcHJpbnR0cmFpbGVyKHRjcCk7CisJCQkJCXByaW50dHJhaWxlcigpOwogCQkJCX0KICNlbmRpZgogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgUFJfRkFVTFRFRDoKLQkJCWlmICghY2ZsYWcgJiYgKHF1YWxfZmxhZ3Nbd2hhdF0gJiBRVUFMX0ZBVUxUKSkgeworCQkJaWYgKGNmbGFnICE9IENGTEFHU19PTkxZX1NUQVRTCisJCQkgICAgJiYgKHF1YWxfZmxhZ3Nbd2hhdF0gJiBRVUFMX0ZBVUxUKSkgewogCQkJCXByaW50bGVhZGVyKHRjcCk7CiAJCQkJdHByaW50ZigiPT09IEZBVUxUICVkID09PSIsIHdoYXQpOwotCQkJCXByaW50dHJhaWxlcih0Y3ApOworCQkJCXByaW50dHJhaWxlcigpOwogCQkJfQogCQkJYnJlYWs7CiAjaWZkZWYgRlJFRUJTRAogCQljYXNlIDA6IC8qIGhhbmRsZSBjYXNlIHdlIHBvbGxlZCBmb3Igbm90aGluZyAqLwotCQkgIAljb250aW51ZTsKKwkJCWNvbnRpbnVlOwogI2VuZGlmCiAJCWRlZmF1bHQ6CiAJCQlmcHJpbnRmKHN0ZGVyciwgIm9kZCBzdG9wICVkXG4iLCB0Y3AtPnN0YXR1cy5QUl9XSFkpOwogCQkJZXhpdCgxKTsKIAkJCWJyZWFrOwogCQl9CisJCS8qIFJlbWVtYmVyIGN1cnJlbnQgcHJpbnQgY29sdW1uIGJlZm9yZSBjb250aW51aW5nLiAqLworCQl0Y3AtPmN1cmNvbCA9IGN1cmNvbDsKIAkJYXJnID0gMDsKICNpZm5kZWYgRlJFRUJTRAotCQlpZiAoSU9DVEwgKHRjcC0+cGZkLCBQSU9DUlVOLCAmYXJnKSA8IDApIHsKKwkJaWYgKElPQ1RMICh0Y3AtPnBmZCwgUElPQ1JVTiwgJmFyZykgPCAwKQogI2Vsc2UKLQkJaWYgKElPQ1RMICh0Y3AtPnBmZCwgUElPQ1JVTiwgMCkgPCAwKSB7CisJCWlmIChJT0NUTCAodGNwLT5wZmQsIFBJT0NSVU4sIDApIDwgMCkKICNlbmRpZgorCQl7CiAJCQlwZXJyb3IoIlBJT0NSVU4iKTsKIAkJCWV4aXQoMSk7CiAJCX0KQEAgLTE5NDEsNTcgKzIzMjUsNDMgQEAKIHsKIAkvKiBXZSBuZWVkIHRvIGxvY2F0ZSBvdXIgcmVjb3JkcyBvZiBhbGwgdGhlIGNsb25lIHRocmVhZHMKIAkgICByZWxhdGVkIHRvIFRDUCwgZWl0aGVyIGl0cyBjaGlsZHJlbiBvciBzaWJsaW5ncy4gICovCi0Jc3RydWN0IHRjYiAqbGVhZGVyID0gKCh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKLQkJCSAgICAgID8gdGNwLT5wYXJlbnQKLQkJCSAgICAgIDogdGNwLT5uY2xvbmVfZGV0YWNoZWQgPiAwCi0JCQkgICAgICA/IHRjcCA6IE5VTEwpOworCXN0cnVjdCB0Y2IgKmxlYWRlciA9IE5VTEw7CisKKwlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCisJCWxlYWRlciA9IHRjcC0+cGFyZW50OwogCiAJaWYgKHNpZyA8IDApIHsKLQkJaWYgKGxlYWRlciAhPSBOVUxMICYmIGxlYWRlciAhPSB0Y3AgJiYKLQkJICAgICEobGVhZGVyLT5mbGFncyAmIFRDQl9HUk9VUF9FWElUSU5HKSkKKwkJaWYgKGxlYWRlciAhPSBOVUxMICYmIGxlYWRlciAhPSB0Y3AKKwkJICYmICEobGVhZGVyLT5mbGFncyAmIFRDQl9HUk9VUF9FWElUSU5HKQorCQkgJiYgISh0Y3AtPmZsYWdzICYgVENCX1NUQVJUVVApCisJCSkgewogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJIlBBTklDOiBoYW5kbGVfZ3JvdXBfZXhpdDogJWQgbGVhZGVyICVkXG4iLAogCQkJCXRjcC0+cGlkLCBsZWFkZXIgPyBsZWFkZXItPnBpZCA6IC0xKTsKKwkJfQorCQkvKiBUQ1Agbm8gbG9uZ2VyIGV4aXN0cyB0aGVyZWZvcmUgeW91IG11c3Qgbm90IGRldGFjaCgpIGl0LiAgKi8KKyNpZm5kZWYgVVNFX1BST0NGUworCQlyZXN1bWVfZnJvbV90Y3AodGNwKTsKKyNlbmRpZgogCQlkcm9wdGNiKHRjcCk7CS8qIEFscmVhZHkgZGllZC4gICovCiAJfQogCWVsc2UgeworCQkvKiBNYXJrIHRoYXQgd2UgYXJlIHRha2luZyB0aGUgcHJvY2VzcyBkb3duLiAgKi8KKwkJdGNwLT5mbGFncyB8PSBUQ0JfRVhJVElORyB8IFRDQl9HUk9VUF9FWElUSU5HOwogCQlpZiAodGNwLT5mbGFncyAmIFRDQl9BVFRBQ0hFRCkgewotCQkgIAlpZiAobGVhZGVyICE9IE5VTEwgJiYgbGVhZGVyICE9IHRjcCkgewotCQkJCWlmIChsZWFkZXItPmZsYWdzICYgVENCX0FUVEFDSEVEKSB7Ci0JCQkJCS8qIFdlIG5lZWQgdG8gZGV0YWNoIHRoZSBsZWFkZXIgc28KLQkJCQkJICAgdGhhdCB0aGUgcHJvY2VzcyBkZWF0aCB3aWxsIGJlCi0JCQkJCSAgIHJlcG9ydGVkIHRvIGl0cyByZWFsIHBhcmVudC4KLQkJCQkJICAgQnV0IHdlIGtpbGwgaXQgZmlyc3QgdG8gcHJldmVudAotCQkJCQkgICBpdCBkb2luZyBhbnl0aGluZyBiZWZvcmUgd2Uga2lsbAotCQkJCQkgICB0aGUgd2hvbGUgcHJvY2VzcyBpbiBhIG1vbWVudC4KLQkJCQkJICAgV2UgY2FuIHVzZSBQVFJBQ0VfS0lMTCBvbiBhCi0JCQkJCSAgIHRocmVhZCB0aGF0J3Mgbm90IGFscmVhZHkKLQkJCQkJICAgc3RvcHBlZC4gIFRoZW4gdGhlIHZhbHVlIHdlIHBhc3MKLQkJCQkJICAgaW4gUFRSQUNFX0RFVEFDSCBqdXN0IHNldHMgdGhlCi0JCQkJCSAgIGRlYXRoIHNpZ25hbCByZXBvcnRlZCB0byB0aGUKLQkJCQkJICAgcmVhbCBwYXJlbnQuICAqLwotCQkJCQlwdHJhY2UoUFRSQUNFX0tJTEwsIGxlYWRlci0+cGlkLCAwLCAwKTsKLQkJCQkJaWYgKGRlYnVnKQotCQkJCQkJZnByaW50ZihzdGRlcnIsCi0JCQkJCQkJIiBbJWQgZXhpdCAlZCBraWxscyAlZF1cbiIsCi0JCQkJCQkJdGNwLT5waWQsIHNpZywgbGVhZGVyLT5waWQpOwotCQkJCQlkZXRhY2gobGVhZGVyLCBzaWcpOwotCQkJCX0KLQkJCQllbHNlCi0JCQkJCWxlYWRlci0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7Ci0JCQl9CiAJCQlkZXRhY2godGNwLCBzaWcpOwotCQl9Ci0JCWVsc2UgaWYgKHB0cmFjZShQVFJBQ0VfQ09OVCwgdGNwLT5waWQsIChjaGFyICopIDEsIHNpZykgPCAwKSB7Ci0JCQlwZXJyb3IoInN0cmFjZTogcHRyYWNlKFBUUkFDRV9DT05ULCAuLi4pIik7Ci0JCQljbGVhbnVwKCk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJZWxzZSB7Ci0JCQlpZiAobGVhZGVyICE9IE5VTEwpCi0JCQkJbGVhZGVyLT5mbGFncyB8PSBUQ0JfR1JPVVBfRVhJVElORzsKIAkJCWlmIChsZWFkZXIgIT0gTlVMTCAmJiBsZWFkZXIgIT0gdGNwKQotCQkJCWRyb3B0Y2IodGNwKTsKKwkJCQlsZWFkZXItPmZsYWdzIHw9IFRDQl9HUk9VUF9FWElUSU5HOworCQl9IGVsc2UgeworCQkJaWYgKHB0cmFjZV9yZXN0YXJ0KFBUUkFDRV9DT05ULCB0Y3AsIHNpZykgPCAwKSB7CisJCQkJY2xlYW51cCgpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJCWlmIChsZWFkZXIgIT0gTlVMTCkgeworCQkJCWxlYWRlci0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7CisJCQkJaWYgKGxlYWRlciAhPSB0Y3ApCisJCQkJCWRyb3B0Y2IodGNwKTsKKwkJCX0KIAkJCS8qIFRoZSBsZWFkZXIgd2lsbCByZXBvcnQgdG8gdXMgYXMgcGFyZW50IG5vdywKIAkJCSAgIGFuZCB0aGVuIHdlJ2xsIGdldCB0byB0aGUgU0lHPT0tMSBjYXNlLiAgKi8KIAkJCXJldHVybiAwOwpAQCAtMjAwMiw2ICsyMzcyLDMxIEBACiB9CiAjZW5kaWYKIAorI2lmZGVmIExJTlVYCitzdGF0aWMgaW50CitoYW5kbGVfcHRyYWNlX2V2ZW50KGludCBzdGF0dXMsIHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoc3RhdHVzID4+IDE2ID09IFBUUkFDRV9FVkVOVF9WRk9SSyB8fAorCSAgICBzdGF0dXMgPj4gMTYgPT0gUFRSQUNFX0VWRU5UX0NMT05FIHx8CisJICAgIHN0YXR1cyA+PiAxNiA9PSBQVFJBQ0VfRVZFTlRfRk9SSykgeworCQlsb25nIGNoaWxkcGlkOworCisJCWlmIChkb19wdHJhY2UoUFRSQUNFX0dFVEVWRU5UTVNHLCB0Y3AsIE5VTEwsICZjaGlsZHBpZCkgPCAwKSB7CisJCQlpZiAoZXJybm8gIT0gRVNSQ0gpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKKyVzOiBoYW5kbGVfcHRyYWNlX2V2ZW50OiBwdHJhY2UgY2Fubm90IGdldCBuZXcgY2hpbGQncyBwaWRcbiIsCisJCQkJCXByb2duYW1lKTsKKwkJCQljbGVhbnVwKCk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCXJldHVybiAtMTsKKwkJfQorCQlyZXR1cm4gaGFuZGxlX25ld19jaGlsZCh0Y3AsIGNoaWxkcGlkLCAwKTsKKwl9CisJcmV0dXJuIDE7Cit9CisjZW5kaWYKKwogc3RhdGljIGludAogdHJhY2UoKQogewpAQCAtMjAxNyw2ICsyNDEyLDggQEAKICNlbmRpZiAvKiBMSU5VWCAqLwogCiAJd2hpbGUgKG5wcm9jcyAhPSAwKSB7CisJCWlmIChpbnRlcnJ1cHRlZCkKKwkJCXJldHVybiAwOwogCQlpZiAoaW50ZXJhY3RpdmUpCiAJCQlzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJmVtcHR5X3NldCwgTlVMTCk7CiAjaWZkZWYgTElOVVgKQEAgLTIwNDksOSArMjQ0Niw2IEBACiAJCWlmIChpbnRlcmFjdGl2ZSkKIAkJCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJmJsb2NrZWRfc2V0LCBOVUxMKTsKIAotCQlpZiAoaW50ZXJydXB0ZWQpCi0JCQlyZXR1cm4gMDsKLQogCQlpZiAocGlkID09IC0xKSB7CiAJCQlzd2l0Y2ggKHdhaXRfZXJybm8pIHsKIAkJCWNhc2UgRUlOVFI6CkBAIC0yMDYzLDEyICsyNDU3LDYgQEAKIAkJCQkgKiB2ZXJzaW9uIG9mIFN1bk9TIHNvbWV0aW1lcyByZXBvcnRzCiAJCQkJICogRUNISUxEIGJlZm9yZSBzZW5kaW5nIHVzIFNJR0NISUxELgogCQkJCSAqLwotI2lmIDAKLQkJCQlpZiAobnByb2NzID09IDApCi0JCQkJCXJldHVybiAwOwotCQkJCWZwcmludGYoc3RkZXJyLCAic3RyYWNlOiBwcm9jIG1pc2NvdW50XG4iKTsKLQkJCQlleGl0KDEpOwotI2VuZGlmCiAJCQkJcmV0dXJuIDA7CiAJCQlkZWZhdWx0OgogCQkJCWVycm5vID0gd2FpdF9lcnJubzsKQEAgLTIwNzYsMTMgKzI0NjQsMTggQEAKIAkJCQlyZXR1cm4gLTE7CiAJCQl9CiAJCX0KKwkJaWYgKHBpZCA9PSBwb3Blbl9waWQpIHsKKwkJCWlmIChXSUZFWElURUQoc3RhdHVzKSB8fCBXSUZTSUdOQUxFRChzdGF0dXMpKQorCQkJCXBvcGVuX3BpZCA9IC0xOworCQkJY29udGludWU7CisJCX0KIAkJaWYgKGRlYnVnKQogCQkJZnByaW50ZihzdGRlcnIsICIgW3dhaXQoJSN4KSA9ICV1XVxuIiwgc3RhdHVzLCBwaWQpOwogCiAJCS8qIExvb2sgdXAgYHBpZCcgaW4gb3VyIHRhYmxlLiAqLwogCQlpZiAoKHRjcCA9IHBpZDJ0Y2IocGlkKSkgPT0gTlVMTCkgewogI2lmZGVmIExJTlVYCi0JCQlpZiAoZm9sbG93Zm9yayB8fCBmb2xsb3d2Zm9yaykgeworCQkJaWYgKGZvbGxvd2ZvcmspIHsKIAkJCQkvKiBUaGlzIGlzIG5lZWRlZCB0byBnbyB3aXRoIHRoZSBDTE9ORV9QVFJBQ0UKIAkJCQkgICBjaGFuZ2VzIGluIHByb2Nlc3MuYy91dGlsLmM6IHdlIG1pZ2h0IHNlZQogCQkJCSAgIHRoZSBjaGlsZCdzIGluaXRpYWwgdHJhcCBiZWZvcmUgd2Ugc2VlIHRoZQpAQCAtMjA5MiwxMyArMjQ4NSw4IEBACiAJCQkJICAgd2lsbCB3ZSBoYXZlIHRoZSBhc3NvY2lhdGlvbiBvZiBwYXJlbnQgYW5kCiAJCQkJICAgY2hpbGQgc28gdGhhdCB3ZSBrbm93IGhvdyB0byBkbyBjbGVhcmJwdAogCQkJCSAgIGluIHRoZSBjaGlsZC4gICovCi0JCQkJaWYgKCh0Y3AgPSBhbGxvY3RjYihwaWQpKSA9PSBOVUxMKSB7Ci0JCQkJCWZwcmludGYoc3RkZXJyLCAiIFt0Y2IgdGFibGUgZnVsbF1cbiIpOwotCQkJCQlraWxsKHBpZCwgU0lHS0lMTCk7IC8qIFhYWCAqLwotCQkJCQlyZXR1cm4gMDsKLQkJCQl9CisJCQkJdGNwID0gYWxsb2N0Y2IocGlkKTsKIAkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRCB8IFRDQl9TVVNQRU5ERUQ7Ci0JCQkJbmV3b3V0Zih0Y3ApOwogCQkJCWlmICghcWZsYWcpCiAJCQkJCWZwcmludGYoc3RkZXJyLCAiXAogUHJvY2VzcyAlZCBhdHRhY2hlZCAod2FpdGluZyBmb3IgcGFyZW50KVxuIiwKQEAgLTIxMTcsNiArMjUwNSw3IEBACiAJCX0KIAkJLyogc2V0IGN1cnJlbnQgb3V0cHV0IGZpbGUgKi8KIAkJb3V0ZiA9IHRjcC0+b3V0ZjsKKwkJY3VyY29sID0gdGNwLT5jdXJjb2w7CiAJCWlmIChjZmxhZykgewogI2lmZGVmIExJTlVYCiAJCQl0dl9zdWIoJnRjcC0+ZHRpbWUsICZydS5ydV9zdGltZSwgJnRjcC0+c3RpbWUpOwpAQCAtMjEzNiw3ICsyNTI1LDkgQEAKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmIChXSUZTSUdOQUxFRChzdGF0dXMpKSB7Ci0JCQlpZiAoIWNmbGFnCisJCQlpZiAocGlkID09IHN0cmFjZV9jaGlsZCkKKwkJCQlleGl0X2NvZGUgPSAweDEwMCB8IFdURVJNU0lHKHN0YXR1cyk7CisJCQlpZiAoY2ZsYWcgIT0gQ0ZMQUdfT05MWV9TVEFUUwogCQkJICAgICYmIChxdWFsX2ZsYWdzW1dURVJNU0lHKHN0YXR1cyldICYgUVVBTF9TSUdOQUwpKSB7CiAJCQkJcHJpbnRsZWFkZXIodGNwKTsKIAkJCQl0cHJpbnRmKCIrKysga2lsbGVkIGJ5ICVzICVzKysrIiwKQEAgLTIxNDUsNyArMjUzNiw3IEBACiAJCQkJCVdDT1JFRFVNUChzdGF0dXMpID8gIihjb3JlIGR1bXBlZCkgIiA6CiAjZW5kaWYKIAkJCQkJIiIpOwotCQkJCXByaW50dHJhaWxlcih0Y3ApOworCQkJCXByaW50dHJhaWxlcigpOwogCQkJfQogI2lmZGVmIFRDQl9HUk9VUF9FWElUSU5HCiAJCQloYW5kbGVfZ3JvdXBfZXhpdCh0Y3AsIC0xKTsKQEAgLTIxNTUsMjAgKzI1NDYsMjIgQEAKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmIChXSUZFWElURUQoc3RhdHVzKSkgeworCQkJaWYgKHBpZCA9PSBzdHJhY2VfY2hpbGQpCisJCQkJZXhpdF9jb2RlID0gV0VYSVRTVEFUVVMoc3RhdHVzKTsKIAkJCWlmIChkZWJ1ZykKLQkJCQlmcHJpbnRmKHN0ZGVyciwgInBpZCAldSBleGl0ZWRcbiIsIHBpZCk7Ci0JCQlpZiAoKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpCisJCQkJZnByaW50ZihzdGRlcnIsICJwaWQgJXUgZXhpdGVkIHdpdGggJWRcbiIsIHBpZCwgV0VYSVRTVEFUVVMoc3RhdHVzKSk7CisJCQlpZiAoKHRjcC0+ZmxhZ3MgJiAoVENCX0FUVEFDSEVEfFRDQl9TVEFSVFVQKSkgPT0gVENCX0FUVEFDSEVECiAjaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKLQkJCSAgICAmJiAhKHRjcC0+cGFyZW50ICYmICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJgotCQkJCQkJIFRDQl9HUk9VUF9FWElUSU5HKSkKKwkJCSAgICAmJiAhKHRjcC0+cGFyZW50ICYmICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJiBUQ0JfR1JPVVBfRVhJVElORykpCisJCQkgICAgJiYgISh0Y3AtPmZsYWdzICYgVENCX0dST1VQX0VYSVRJTkcpCiAjZW5kaWYKLQkJCQkpCisJCQkpIHsKIAkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJIlBBTklDOiBhdHRhY2hlZCBwaWQgJXUgZXhpdGVkXG4iLAotCQkJCQlwaWQpOworCQkJCQkiUEFOSUM6IGF0dGFjaGVkIHBpZCAldSBleGl0ZWQgd2l0aCAlZFxuIiwKKwkJCQkJcGlkLCBXRVhJVFNUQVRVUyhzdGF0dXMpKTsKKwkJCX0KIAkJCWlmICh0Y3AgPT0gdGNwX2xhc3QpIHsKLQkJCQlpZiAoKHRjcC0+ZmxhZ3MgJiAoVENCX0lOU1lTQ0FMTHxUQ0JfUkVQUklOVCkpCi0JCQkJICAgID09IFRDQl9JTlNZU0NBTEwpCisJCQkJaWYgKCh0Y3AtPmZsYWdzICYgKFRDQl9JTlNZU0NBTEx8VENCX1JFUFJJTlQpKSA9PSBUQ0JfSU5TWVNDQUxMKQogCQkJCQl0cHJpbnRmKCIgPHVuZmluaXNoZWQgLi4uIGV4aXQgc3RhdHVzICVkPlxuIiwKIAkJCQkJCVdFWElUU1RBVFVTKHN0YXR1cykpOwogCQkJCXRjcF9sYXN0ID0gTlVMTDsKQEAgLTIxODksNDEgKzI1ODIsNDUgQEAKIAkJCWZwcmludGYoc3RkZXJyLCAicGlkICV1IHN0b3BwZWQsIFslc11cbiIsCiAJCQkJcGlkLCBzaWduYW1lKFdTVE9QU0lHKHN0YXR1cykpKTsKIAotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9TVEFSVFVQKSB7CisJCWlmIChwdHJhY2Vfc2V0b3B0aW9ucyAmJiAoc3RhdHVzID4+IDE2KSkgeworCQkJaWYgKGhhbmRsZV9wdHJhY2VfZXZlbnQoc3RhdHVzLCB0Y3ApICE9IDEpCisJCQkJZ290byB0cmFjaW5nOworCQl9CisKKwkJLyoKKwkJICogSW50ZXJlc3RpbmdseSwgdGhlIHByb2Nlc3MgbWF5IHN0b3AKKwkJICogd2l0aCBTVE9QU0lHIGVxdWFsIHRvIHNvbWUgb3RoZXIgc2lnbmFsCisJCSAqIHRoYW4gU0lHU1RPUCBpZiB3ZSBoYXBwZW5kIHRvIGF0dGFjaAorCQkgKiBqdXN0IGJlZm9yZSB0aGUgcHJvY2VzcyB0YWtlcyBhIHNpZ25hbC4KKwkJICogQSBuby1NTVUgdmZvcmtlZCBjaGlsZCB3b24ndCBzZW5kIHVwIGEgc2lnbmFsLAorCQkgKiBzbyBza2lwIHRoZSBmaXJzdCAobG9zdCkgZXhlY3ZlIG5vdGlmaWNhdGlvbi4KKwkJICovCisJCWlmICgodGNwLT5mbGFncyAmIFRDQl9TVEFSVFVQKSAmJgorCQkgICAgKFdTVE9QU0lHKHN0YXR1cykgPT0gU0lHU1RPUCB8fCBzdHJhY2VfdmZvcmtlZCkpIHsKIAkJCS8qCiAJCQkgKiBUaGlzIGZsYWcgaXMgdGhlcmUgdG8ga2VlcCB1cyBpbiBzeW5jLgogCQkJICogTmV4dCB0aW1lIHRoaXMgcHJvY2VzcyBzdG9wcyBpdCBzaG91bGQKIAkJCSAqIHJlYWxseSBiZSBlbnRlcmluZyBhIHN5c3RlbSBjYWxsLgogCQkJICovCiAJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfU1RBUlRVUDsKLQkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSB7Ci0JCQkJLyoKLQkJCQkgKiBJbnRlcmVzdGluZ2x5LCB0aGUgcHJvY2VzcyBtYXkgc3RvcAotCQkJCSAqIHdpdGggU1RPUFNJRyBlcXVhbCB0byBzb21lIG90aGVyIHNpZ25hbAotCQkJCSAqIHRoYW4gU0lHU1RPUCBpZiB3ZSBoYXBwZW5kIHRvIGF0dGFjaAotCQkJCSAqIGp1c3QgYmVmb3JlIHRoZSBwcm9jZXNzIHRha2VzIGEgc2lnbmFsLgotCQkJCSAqLwotCQkJCWlmICghV0lGU1RPUFBFRChzdGF0dXMpKSB7Ci0JCQkJCWZwcmludGYoc3RkZXJyLAotCQkJCQkJInBpZCAldSBub3Qgc3RvcHBlZFxuIiwgcGlkKTsKLQkJCQkJZGV0YWNoKHRjcCwgV1NUT1BTSUcoc3RhdHVzKSk7Ci0JCQkJCWNvbnRpbnVlOwotCQkJCX0KLQkJCX0KLQkJCWVsc2UgewotI2lmZGVmIFNVTk9TNAotCQkJCS8qIEEgY2hpbGQgb2YgdXMgc3RvcHBlZCBhdCBleGVjICovCi0JCQkJaWYgKFdTVE9QU0lHKHN0YXR1cykgPT0gU0lHVFJBUCAmJiBmb2xsb3d2Zm9yaykKLQkJCQkJZml4dmZvcmsodGNwKTsKLSNlbmRpZiAvKiBTVU5PUzQgKi8KLQkJCX0KIAkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgeworCQkJCS8qCisJCQkJICogT25lIGV4YW1wbGUgaXMgYSBicmVha3BvaW50IGluaGVyaXRlZCBmcm9tCisJCQkJICogcGFyZW50IHRocm91Z2ggZm9yayAoKS4KKwkJCQkgKi8KIAkJCQlpZiAoY2xlYXJicHQodGNwKSA8IDApIC8qIFByZXR0eSBmYXRhbCAqLyB7CiAJCQkJCWRyb3B0Y2IodGNwKTsKIAkJCQkJY2xlYW51cCgpOwogCQkJCQlyZXR1cm4gLTE7CiAJCQkJfQogCQkJfQorI2lmZGVmIExJTlVYCisJCQlpZiAoZm9sbG93Zm9yayAmJiAodGNwLT5wYXJlbnQgPT0gTlVMTCkgJiYgcHRyYWNlX3NldG9wdGlvbnMpCisJCQkJaWYgKHB0cmFjZShQVFJBQ0VfU0VUT1BUSU9OUywgdGNwLT5waWQsCisJCQkJCSAgIE5VTEwsIHB0cmFjZV9zZXRvcHRpb25zKSA8IDAgJiYKKwkJCQkgICAgZXJybm8gIT0gRVNSQ0gpCisJCQkJCXB0cmFjZV9zZXRvcHRpb25zID0gMDsKKyNlbmRpZgogCQkJZ290byB0cmFjaW5nOwogCQl9CiAKQEAgLTIyMzUsNDMgKzI2MzIsNDMgQEAKIAkJCQkgKiBIb3BlIHdlIGFyZSBiYWNrIGluIGNvbnRyb2wgbm93LgogCQkJCSAqLwogCQkJCXRjcC0+ZmxhZ3MgJj0gfihUQ0JfSU5TWVNDQUxMIHwgVENCX1NJR1RSQVBQRUQpOwotCQkJCWlmIChwdHJhY2UoUFRSQUNFX1NZU0NBTEwsCi0JCQkJCQlwaWQsIChjaGFyICopIDEsIDApIDwgMCkgewotCQkJCQlwZXJyb3IoInRyYWNlOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKKwkJCQlpZiAocHRyYWNlX3Jlc3RhcnQoUFRSQUNFX1NZU0NBTEwsIHRjcCwgMCkgPCAwKSB7CiAJCQkJCWNsZWFudXAoKTsKIAkJCQkJcmV0dXJuIC0xOwogCQkJCX0KIAkJCQljb250aW51ZTsKIAkJCX0KLQkJCWlmICghY2ZsYWcKKwkJCWlmIChjZmxhZyAhPSBDRkxBR19PTkxZX1NUQVRTCiAJCQkgICAgJiYgKHF1YWxfZmxhZ3NbV1NUT1BTSUcoc3RhdHVzKV0gJiBRVUFMX1NJR05BTCkpIHsKLQkJCQl1bnNpZ25lZCBsb25nIGFkZHIgPSAwLCBwYyA9IDA7Ci0jaWZkZWYgUFRfR0VUU0lHSU5GTwotIwkJCQlkZWZpbmUgUFNSX1JJCTQxCi0JCQkJc3RydWN0IHNpZ2luZm8gc2k7Ci0JCQkJdW5zaWduZWQgbG9uZyBwc3I7CisJCQkJc2lnaW5mb190IHNpOworI2lmIGRlZmluZWQoUFRfQ1JfSVBTUikgJiYgZGVmaW5lZChQVF9DUl9JSVApCisJCQkJbG9uZyBwYyA9IDA7CisJCQkJbG9uZyBwc3IgPSAwOwogCi0JCQkJdXBlZWsocGlkLCBQVF9DUl9JUFNSLCAmcHNyKTsKLQkJCQl1cGVlayhwaWQsIFBUX0NSX0lJUCwgJnBjKTsKKwkJCQl1cGVlayh0Y3AsIFBUX0NSX0lQU1IsICZwc3IpOworCQkJCXVwZWVrKHRjcCwgUFRfQ1JfSUlQLCAmcGMpOwogCisjIGRlZmluZSBQU1JfUkkJNDEKIAkJCQlwYyArPSAocHNyID4+IFBTUl9SSSkgJiAweDM7Ci0JCQkJcHRyYWNlKFBUX0dFVFNJR0lORk8sIHBpZCwgMCwgKGxvbmcpICZzaSk7Ci0JCQkJYWRkciA9ICh1bnNpZ25lZCBsb25nKSBzaS5zaV9hZGRyOwotI2VsaWYgZGVmaW5lZCBQVFJBQ0VfR0VUU0lHSU5GTwotCQkJCWlmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1NFR1YgfHwKLQkJCQkgICAgV1NUT1BTSUcoc3RhdHVzKSA9PSBTSUdCVVMpIHsKLQkJCQkJc2lnaW5mb190IHNpOwotCQkJCQlpZiAocHRyYWNlKFBUUkFDRV9HRVRTSUdJTkZPLCBwaWQsCi0JCQkJCQkgICAwLCAmc2kpID09IDApCi0JCQkJCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpCi0JCQkJCQkJc2kuc2lfYWRkcjsKLQkJCQl9CisjIGRlZmluZSBQQ19GT1JNQVRfU1RSCSIgQCAlbHgiCisjIGRlZmluZSBQQ19GT1JNQVRfQVJHCXBjCisjZWxzZQorIyBkZWZpbmUgUENfRk9STUFUX1NUUgkiJXMiCisjIGRlZmluZSBQQ19GT1JNQVRfQVJHCSIiCiAjZW5kaWYKIAkJCQlwcmludGxlYWRlcih0Y3ApOwotCQkJCXRwcmludGYoIi0tLSAlcyAoJXMpIEAgJWx4ICglbHgpIC0tLSIsCi0JCQkJCXNpZ25hbWUoV1NUT1BTSUcoc3RhdHVzKSksCi0JCQkJCXN0cnNpZ25hbChXU1RPUFNJRyhzdGF0dXMpKSwgcGMsIGFkZHIpOwotCQkJCXByaW50dHJhaWxlcih0Y3ApOworCQkJCWlmIChwdHJhY2UoUFRSQUNFX0dFVFNJR0lORk8sIHBpZCwgMCwgJnNpKSA9PSAwKSB7CisJCQkJCXRwcmludGYoIi0tLSAiKTsKKwkJCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSh0Y3ApKTsKKwkJCQkJdHByaW50ZigiICglcykiIFBDX0ZPUk1BVF9TVFIgIiAtLS0iLAorCQkJCQkJc3Ryc2lnbmFsKFdTVE9QU0lHKHN0YXR1cykpLAorCQkJCQkJUENfRk9STUFUX0FSRyk7CisJCQkJfSBlbHNlCisJCQkJCXRwcmludGYoIi0tLSAlcyBieSAlcyIgUENfRk9STUFUX1NUUiAiIC0tLSIsCisJCQkJCQlzdHJzaWduYWwoV1NUT1BTSUcoc3RhdHVzKSksCisJCQkJCQlzaWduYW1lKFdTVE9QU0lHKHN0YXR1cykpLAorCQkJCQkJUENfRk9STUFUX0FSRyk7CisJCQkJcHJpbnR0cmFpbGVyKCk7CiAJCQl9CiAJCQlpZiAoKCh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSB8fAogCQkJICAgICB0Y3AtPm5jbG9uZV90aHJlYWRzID4gMCkgJiYKQEAgLTIyODMsMTkgKzI2ODAsMzUgQEAKICNlbmRpZgogCQkJCWNvbnRpbnVlOwogCQkJfQotCQkJaWYgKHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgcGlkLCAoY2hhciAqKSAxLAotCQkJCSAgIFdTVE9QU0lHKHN0YXR1cykpIDwgMCkgewotCQkJCXBlcnJvcigidHJhY2U6IHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgLi4uKSIpOworCQkJaWYgKHB0cmFjZV9yZXN0YXJ0KFBUUkFDRV9TWVNDQUxMLCB0Y3AsIFdTVE9QU0lHKHN0YXR1cykpIDwgMCkgewogCQkJCWNsZWFudXAoKTsKIAkJCQlyZXR1cm4gLTE7CiAJCQl9CiAJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfU1VTUEVOREVEOwogCQkJY29udGludWU7CiAJCX0KLQkJaWYgKHRyYWNlX3N5c2NhbGwodGNwKSA8IDApIHsKLQkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKQorCQkvKiB3ZSBoYW5kbGVkIHRoZSBTVEFUVVMsIHdlIGFyZSBwZXJtaXR0ZWQgdG8gaW50ZXJydXB0IG5vdy4gKi8KKwkJaWYgKGludGVycnVwdGVkKQorCQkJcmV0dXJuIDA7CisJCWlmICh0cmFjZV9zeXNjYWxsKHRjcCkgPCAwICYmICF0Y3AtPnB0cmFjZV9lcnJubykgeworCQkJLyogcHRyYWNlKCkgZmFpbGVkIGluIHRyYWNlX3N5c2NhbGwoKSB3aXRoIEVTUkNILgorCQkJICogTGlrZWx5IGEgcmVzdWx0IG9mIHByb2Nlc3MgZGlzYXBwZWFyaW5nIG1pZC1mbGlnaHQuCisJCQkgKiBPYnNlcnZlZCBjYXNlOiBleGl0X2dyb3VwKCkgdGVybWluYXRpbmcKKwkJCSAqIGFsbCBwcm9jZXNzZXMgaW4gdGhyZWFkIGdyb3VwLiBJbiB0aGlzIGNhc2UsIHRocmVhZHMKKwkJCSAqICJkaXNhcHBlYXIiIGluIGFuIHVucHJlZGljdGFibGUgbW9tZW50IHdpdGhvdXQgYW55CisJCQkgKiBub3RpZmljYXRpb24gdG8gc3RyYWNlIHZpYSB3YWl0KCkuCisJCQkgKi8KKwkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKSB7CisJCQkJaWYgKHRjcF9sYXN0KSB7CisJCQkJCS8qIERvIHdlIGhhdmUgZGFuZ2xpbmcgbGluZSAic3lzY2FsbChwYXJhbSwgcGFyYW0iPworCQkJCQkgKiBGaW5pc2ggdGhlIGxpbmUgdGhlbi4gV2UgY2Fubm90CisJCQkJCSAqLworCQkJCQl0Y3BfbGFzdC0+ZmxhZ3MgfD0gVENCX1JFUFJJTlQ7CisJCQkJCXRwcmludGYoIiA8dW5maW5pc2hlZCAuLi4+Iik7CisJCQkJCXByaW50dHJhaWxlcigpOworCQkJCX0KIAkJCQlkZXRhY2godGNwLCAwKTsKLQkJCWVsc2UgeworCQkJfSBlbHNlIHsKIAkJCQlwdHJhY2UoUFRSQUNFX0tJTEwsCiAJCQkJCXRjcC0+cGlkLCAoY2hhciAqKSAxLCBTSUdURVJNKTsKIAkJCQlkcm9wdGNiKHRjcCk7CkBAIC0yMzEyLDggKzI3MjUsNyBAQAogI2VuZGlmCiAJCQlpZiAodGNwLT5mbGFncyAmIFRDQl9BVFRBQ0hFRCkKIAkJCQlkZXRhY2godGNwLCAwKTsKLQkJCWVsc2UgaWYgKHB0cmFjZShQVFJBQ0VfQ09OVCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCQlwZXJyb3IoInN0cmFjZTogcHRyYWNlKFBUUkFDRV9DT05ULCAuLi4pIik7CisJCQllbHNlIGlmIChwdHJhY2VfcmVzdGFydChQVFJBQ0VfQ09OVCwgdGNwLCAwKSA8IDApIHsKIAkJCQljbGVhbnVwKCk7CiAJCQkJcmV0dXJuIC0xOwogCQkJfQpAQCAtMjMyNSw4ICsyNzM3LDkgQEAKIAkJCWNvbnRpbnVlOwogCQl9CiAJdHJhY2luZzoKLQkJaWYgKHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKLQkJCXBlcnJvcigidHJhY2U6IHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgLi4uKSIpOworCQkvKiBSZW1lbWJlciBjdXJyZW50IHByaW50IGNvbHVtbiBiZWZvcmUgY29udGludWluZy4gKi8KKwkJdGNwLT5jdXJjb2wgPSBjdXJjb2w7CisJCWlmIChwdHJhY2VfcmVzdGFydChQVFJBQ0VfU1lTQ0FMTCwgdGNwLCAwKSA8IDApIHsKIAkJCWNsZWFudXAoKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtMjMzNiwzNCArMjc0OSwyMSBAQAogCiAjZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KIAotc3RhdGljIGludCBjdXJjb2w7Ci0KLSNpZmRlZiBfX1NURENfXwogI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2RlZmluZSBWQV9TVEFSVChhLCBiKSB2YV9zdGFydChhLCBiKQotI2Vsc2UKLSNpbmNsdWRlIDx2YXJhcmdzLmg+Ci0jZGVmaW5lIFZBX1NUQVJUKGEsIGIpIHZhX3N0YXJ0KGEpCi0jZW5kaWYKIAogdm9pZAotI2lmZGVmIF9fU1REQ19fCiB0cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotI2Vsc2UKLXRwcmludGYoZm10LCB2YV9hbGlzdCkKLWNoYXIgKmZtdDsKLXZhX2RjbAotI2VuZGlmCiB7CiAJdmFfbGlzdCBhcmdzOwogCi0JVkFfU1RBUlQoYXJncywgZm10KTsKKwl2YV9zdGFydChhcmdzLCBmbXQpOwogCWlmIChvdXRmKSB7CiAJCWludCBuID0gdmZwcmludGYob3V0ZiwgZm10LCBhcmdzKTsKLQkJaWYgKG4gPCAwICYmIG91dGYgIT0gc3RkZXJyKQotCQkJcGVycm9yKG91dGZuYW1lID09IE5VTEwKLQkJCSAgICAgICA/ICI8d3JpdGluZyB0byBwaXBlPiIgOiBvdXRmbmFtZSk7Ci0JCWVsc2UKKwkJaWYgKG4gPCAwKSB7CisJCQlpZiAob3V0ZiAhPSBzdGRlcnIpCisJCQkJcGVycm9yKG91dGZuYW1lID09IE5VTEwKKwkJCQkgICAgICAgPyAiPHdyaXRpbmcgdG8gcGlwZT4iIDogb3V0Zm5hbWUpOworCQl9IGVsc2UKIAkJCWN1cmNvbCArPSBuOwogCX0KIAl2YV9lbmQoYXJncyk7CkBAIC0yMzc0LDkgKzI3NzQsMTggQEAKIHByaW50bGVhZGVyKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKLQlpZiAodGNwX2xhc3QgJiYgKCFvdXRmbmFtZSB8fCBmb2xsb3dmb3JrIDwgMiB8fCB0Y3BfbGFzdCA9PSB0Y3ApKSB7Ci0JCXRjcF9sYXN0LT5mbGFncyB8PSBUQ0JfUkVQUklOVDsKLQkJdHByaW50ZigiIDx1bmZpbmlzaGVkIC4uLj5cbiIpOworCWlmICh0Y3BfbGFzdCkgeworCQlpZiAodGNwX2xhc3QtPnB0cmFjZV9lcnJubykgeworCQkJaWYgKHRjcF9sYXN0LT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpIHsKKwkJCQl0cHJpbnRmKCIgPHVuYXZhaWxhYmxlPikiKTsKKwkJCQl0YWJ0byhhY29sdW1uKTsKKwkJCX0KKwkJCXRwcmludGYoIj0gPyA8dW5hdmFpbGFibGU+XG4iKTsKKwkJCXRjcF9sYXN0LT5wdHJhY2VfZXJybm8gPSAwOworCQl9IGVsc2UgaWYgKCFvdXRmbmFtZSB8fCBmb2xsb3dmb3JrIDwgMiB8fCB0Y3BfbGFzdCA9PSB0Y3ApIHsKKwkJCXRjcF9sYXN0LT5mbGFncyB8PSBUQ0JfUkVQUklOVDsKKwkJCXRwcmludGYoIiA8dW5maW5pc2hlZCAuLi4+XG4iKTsKKwkJfQogCX0KIAljdXJjb2wgPSAwOwogCWlmICgoZm9sbG93Zm9yayA9PSAxIHx8IHBmbGFnX3NlZW4gPiAxKSAmJiBvdXRmbmFtZSkKQEAgLTI0MjMsOCArMjgzMiw3IEBACiB9CiAKIHZvaWQKLXByaW50dHJhaWxlcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitwcmludHRyYWlsZXIodm9pZCkKIHsKIAl0cHJpbnRmKCJcbiIpOwogCXRjcF9sYXN0ID0gTlVMTDsKQEAgLTI0MzIsOCArMjg0MCw5IEBACiAKICNpZmRlZiBIQVZFX01QX1BST0NGUwogCi1pbnQgbXBfaW9jdGwgKGludCBmZCwgaW50IGNtZCwgdm9pZCAqYXJnLCBpbnQgc2l6ZSkgewotCitpbnQKK21wX2lvY3RsKGludCBmZCwgaW50IGNtZCwgdm9pZCAqYXJnLCBpbnQgc2l6ZSkKK3sKIAlzdHJ1Y3QgaW92ZWMgaW92WzJdOwogCWludCBuID0gMTsKIApAQCAtMjQ0NSw3ICsyODU0LDcgQEAKIAkJaW92WzFdLmlvdl9sZW4gPSBzaXplOwogCX0KIAotCXJldHVybiB3cml0ZXYgKGZkLCBpb3YsIG4pOworCXJldHVybiB3cml0ZXYoZmQsIGlvdiwgbik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3RyYWNlLnNwZWMgYi9zdHJhY2Uuc3BlYwppbmRleCAxZTk0ZmE1Li41MTMzM2FiIDEwMDY0NAotLS0gYS9zdHJhY2Uuc3BlYworKysgYi9zdHJhY2Uuc3BlYwpAQCAtMSwxNCArMSwxNiBAQAotU3VtbWFyeTogVHJhY2tzIGFuZCBkaXNwbGF5cyBzeXN0ZW0gY2FsbHMgYXNzb2NpYXRlZCB3aXRoIGEgcnVubmluZyBwcm9jZXNzLgorU3VtbWFyeTogVHJhY2tzIGFuZCBkaXNwbGF5cyBzeXN0ZW0gY2FsbHMgYXNzb2NpYXRlZCB3aXRoIGEgcnVubmluZyBwcm9jZXNzCiBOYW1lOiBzdHJhY2UKLVZlcnNpb246IDQuNS4xMgotUmVsZWFzZTogMQorVmVyc2lvbjogNC42CitSZWxlYXNlOiAxJXs/ZGlzdH0KIExpY2Vuc2U6IEJTRAogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwogVVJMOiBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3N0cmFjZS8KLVNvdXJjZTA6ICV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuYnoyCi1CdWlsZFJvb3Q6ICV7X3RtcHBhdGh9LyV7bmFtZX0tcm9vdAorU291cmNlOiBodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9zdHJhY2UvJXtuYW1lfS0le3ZlcnNpb259LnRhci54egorQnVpbGRSb290OiAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQogCi0lZGVmaW5lIHN0cmFjZTY0X2FyY2hlcyBwcGM2NAorQnVpbGRSZXF1aXJlczogbGliYWNsLWRldmVsLCBsaWJhaW8tZGV2ZWwsIHRpbWUKKworJWRlZmluZSBzdHJhY2U2NF9hcmNoZXMgcHBjNjQgc3BhcmM2NAogCiAlZGVzY3JpcHRpb24KIFRoZSBzdHJhY2UgcHJvZ3JhbSBpbnRlcmNlcHRzIGFuZCByZWNvcmRzIHRoZSBzeXN0ZW0gY2FsbHMgY2FsbGVkIGFuZApAQCAtNDQsMjYgKzQ2LDM1IEBACiAKICVidWlsZAogJWNvbmZpZ3VyZQotbWFrZQorbWFrZSAlez9fc21wX21mbGFnc30KIAogJWluc3RhbGwKIHJtIC1yZiAle2J1aWxkcm9vdH0KLW1rZGlyIC1wICV7YnVpbGRyb290fSV7X21hbmRpcn0vbWFuMQotbWtkaXIgLXAgJXtidWlsZHJvb3R9JXtfYmluZGlyfQotJW1ha2VpbnN0YWxsIG1hbjFkaXI9JXtidWlsZHJvb3R9JXtfbWFuZGlyfS9tYW4xCittYWtlIERFU1RESVI9JXtidWlsZHJvb3R9IGluc3RhbGwKIAogIyByZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKIHJtIC1mICV7YnVpbGRyb290fSV7X2JpbmRpcn0vc3RyYWNlLWdyYXBoCiAKLSVpZmFyY2ggJXtzdHJhY2U2NF9hcmNoZXN9Ci1sbiAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3N0cmFjZSAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3N0cmFjZTY0CislZGVmaW5lIGNvcHk2NCBsbgorJWlmIDAlez9yaGVsfQorJWlmIDAlez9yaGVsfSA8IDYKICVlbmRpZgorJWRlZmluZSBjb3B5NjQgY3AgLXAKKyVlbmRpZgorCislaWZhcmNoICV7c3RyYWNlNjRfYXJjaGVzfQorJXtjb3B5NjR9ICV7YnVpbGRyb290fSV7X2JpbmRpcn0vc3RyYWNlICV7YnVpbGRyb290fSV7X2JpbmRpcn0vc3RyYWNlNjQKKyVlbmRpZgorCislY2hlY2sKK21ha2UgY2hlY2sKIAogJWNsZWFuCiBybSAtcmYgJXtidWlsZHJvb3R9CiAKICVmaWxlcwogJWRlZmF0dHIoLSxyb290LHJvb3QpCislZG9jIENSRURJVFMgQ2hhbmdlTG9nIENoYW5nZUxvZy1DVlMgQ09QWVJJR0hUIE5FV1MgUE9SVElORyBSRUFETUUKICV7X2JpbmRpcn0vc3RyYWNlCiAle19tYW5kaXJ9L21hbjEvKgogCkBAIC03Myw4ICs4NCwxMTEgQEAKICV7X2JpbmRpcn0vc3RyYWNlNjQKICVlbmRpZgogCi0KICVjaGFuZ2Vsb2cKKyogTW9uIE1hciAxNCAyMDExIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4gLSA0LjYtMQorLSBOZXcgdXBzdHJlYW0gcmVsZWFzZS4KKyAgKyBmaXhlZCBhIGNvcm5lciBjYXNlIGluIHdhaXRwaWQgaGFuZGxpbmcgKCM2NjM1NDcpLgorCisqIFdlZCBGZWIgMDkgMjAxMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjUuMjAtMgorLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzE1X01hc3NfUmVidWlsZAorCisqIFR1ZSBBcHIgMTMgMjAxMCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjIwLTEKKy0gTmV3IHVwc3RyZWFtIHJlbGVhc2UsIHdvcmsgbW9zdGx5IGJ5IEFuZHJlYXMgU2Nod2FiIGFuZCBEbWl0cnkgVi4gTGV2aW4uCisgICsgZml4ZWQgcG90ZW50aWFsIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyBpbiBzZWxlY3QgZGVjb2RlciAoIzU1NjY3OCk7CisgICsgZml4ZWQgRlRCRlMgKCM1MzkwNDQpLgorCisqIFdlZCBPY3QgMjEgMjAwOSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjE5LTEKKy0gTmV3IHVwc3RyZWFtIHJlbGVhc2UsIHdvcmsgbW9zdGx5IGJ5IERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKyAgKyBleGl0L2tpbGwgc3RyYWNlIHdpdGggdHJhY2VkIHByb2Nlc3MgZXhpdGNvZGUvc2lnbmFsICgjMTA1MzcxKTsKKyAgKyBmaXhlZCBidWlsZCBvbiBBUk0gRUFCSSAoIzUwNzU3Nik7CisgICsgZml4ZWQgZGlzcGxheSBvZiAzMi1iaXQgYXJndiBhcnJheSBvbiA2NC1iaXQgYXJjaGl0ZWN0dXJlcyAoIzUxOTQ4MCk7CisgICsgZml4ZWQgZGlzcGxheSBvZiAzMi1iaXQgZmNudGwoRl9TRVRMSykgb24gNjQtYml0IGFyY2hpdGVjdHVyZXMgKCM0NzExNjkpOworICArIGZpeGVkIHNldmVyYWwgYnVncyBpbiBzdHJpbmdzIGRlY29kZXIsIGluY2x1ZGluZyBwb3RlbnRpYWwgaGVhcAorICAgIG1lbW9yeSBjb3JydXB0aW9uICgjNDcwNTI5LCAjNDc4MzI0LCAjNTExMDM1KS4KKworKiBUaHUgQXVnIDI4IDIwMDggUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiAtIDQuNS4xOC0xCistIGJ1aWxkIGZpeCBmb3IgbmV3ZXIga2VybmVsIGhlYWRlcnMgKCM0NTcyOTEpCistIGZpeCBDTE9ORV9WRk9SSyBoYW5kbGluZyAoIzQ1NTA3OCkKKy0gU3VwcG9ydCBuZXcgTGludXgvUFBDIHN5c3RlbSBjYWxsIHN1YnBhZ2VfcHJvdCBhbmQgUFJPVF9TQU8gZmxhZy4KKy0gSW4gc2lnYWN0aW9uIHN5c3RlbSBjYWxsLCBkaXNwbGF5IHNhX2ZsYWdzIHZhbHVlIGFsb25nIHdpdGggU0lHX0RGTC9TSUdfSUdOLgorCisqIE1vbiBKdWwgMjEgMjAwOCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjE3LTEKKy0gaGFuZGxlIE9fQ0xPRVhFQywgTVNHX0NNU0dfQ0xPRVhFQyAoIzM2NTc4MSkKKy0gZml4IGJpYXJjaCBzdGF0NjQgZGVjb2RpbmcgKCMyMjIyNzUpCistIGZpeCBzcHVyaW91cyAiLi4uIiBpbiBwcmludGluZyBvZiBlbnZpcm9ubWVudCBzdHJpbmdzICgjMzU4MjQxKQorLSBpbXByb3ZlIHByY3RsIGRlY29kaW5nICgjMzY0NDAxKQorLSBmaXggaGFuZyB3YWl0IG9uIGV4aXRlZCBjaGlsZCB3aXRoIGV4aXRlZCBjaGlsZCAoIzM1NDI2MSkKKy0gZml4IGJpYXJjaCBmb3JrL3Zmb3JrICgtZikgdHJhY2luZyAoIzQ0NzQ3NSkKKy0gZml4IGJpYXJjaCBwcmludGluZyBvZiBuZWdhdGl2ZSBhcmd1bWVudCBraWxsICgjNDMwNTg1KQorLSBmaXggYmlhcmNoIGRlY29kaW5nIG9mIGVycm9yIHJldHVybiB2YWx1ZXMgKCM0NDc1ODcpCistIGZpeCAtZiB0cmFjaW5nIG9mIENMT05FX1ZGT1JLICgjNDU1MDc4KQorLSBmaXggaWE2NCByZWdpc3RlciBjbG9iYmVyYXRpb24gaW4gLWYgdHJhY2luZyAoIzQ1MzQzOCkKKy0gcHJpbnQgU09fTk9ERUZFUiwgU0FfUkVTRVRIQU5EIGluc3RlYWQgb2YgU0FfTk9NQVNLLCBTQV9PTkVTSE9UICgjNDU1ODIxKQorLSBmaXggZnV0ZXggYXJndW1lbnQgZGVjb2RpbmcgKCM0NDg2MjgsICM0NDg2MjkpCisKKyogRnJpIEF1ZyAgMyAyMDA3IFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gLSA0LjUuMTYtMQorLSBmaXggbXVsdGl0aHJlYWQgaXNzdWVzICgjMjQwOTYyLCAjMjQwOTYxLCAjMjQ3OTA3KQorLSBmaXggc3B1cmlvdXMgU0lHU1RPUCBvbiBlYXJseSBpbnRlcnJ1cHQgKCMyNDA5ODYpCistIGZpeCB1dGltZSBmb3IgYmlhcmNoICgjMjQ3MTg1KQorLSBmaXggLXUgZXJyb3IgbWVzc2FnZSAoIzI0NzE3MCkKKy0gYmV0dGVyIGZ1dGV4IHN5c2NhbGwgcHJpbnRpbmcgKCMjMjQxNDY3KQorLSBmaXggYXJndi9lbnZwIHByaW50aW5nIHdpdGggc21hbGwgLXMgc2V0dGluZ3MsIGFuZCBmb3IgYmlhcmNoCistIG5ldyBzeXNjYWxsczogZ2V0Y3B1LCBldmVudGZkLCB0aW1lcmZkLCBzaWduYWxmZCwgZXBvbGxfcHdhaXQsCisgIG1vdmVfcGFnZXMsIHV0aW1lbnNhdAorCisqIFR1ZSBKYW4gMTYgMjAwNyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjE1LTEKKy0gYmlhcmNoIGZpeGVzICgjMTc5NzQwLCAjMTkyMTkzLCAjMTcxNjI2LCAjMTczMDUwLCAjMjE4NDMzLCAjMjE4MDQzKQorLSBmaXggLWZmIC1vIGJlaGF2aW9yICgjMjA0OTUwLCAjMjE4NDM1LCAjMTkzODA4LCAjMjE5NDIzKQorLSBiZXR0ZXIgcXVvdGFjdGwgcHJpbnRpbmcgKCMxMTg2OTYpCistICphdCwgaW5vdGlmeSosIHBzZWxlY3Q2LCBwcG9sbCBhbmQgdW5zaGFyZSBzeXNjYWxscyAoIzE3ODYzMywgIzE5MTI3NSkKKy0gZ2xpYmMtMi41IGJ1aWxkIGZpeGVzICgjMjA5ODU2KQorLSBtZW1vcnkgY29ycnVwdGlvbiBmaXhlcyAoIzIwMDYyMQorLSBmaXggcmFjZSBpbiBjaGlsZCBzZXR1cCB1bmRlciAtZiAoIzE4MDI5MykKKy0gc2hvdyBpcGMga2V5IHZhbHVlcyBpbiBoZXggKCMxOTgxNzksICMxOTIxODIpCistIGRpc2FsbG93IC1jIHdpdGggLWZmICgjMTg3ODQ3KQorLSBSZXNvbHZlczogUkhCWiAjMTc5NzQwLCBSSEJaICMxOTIxOTMsIFJIQlogIzIwNDk1MCwgUkhCWiAjMjE4NDM1CistIFJlc29sdmVzOiBSSEJaICMxOTM4MDgsIFJIQlogIzIxOTQyMywgUkhCWiAjMTcxNjI2LCBSSEJaICMxNzMwNTAKKy0gUmVzb2x2ZXM6IFJIQlogIzIxODQzMywgUkhCWiAjMjE4MDQzLCBSSEJaICMxMTg2OTYsIFJIQlogIzE3ODYzMworLSBSZXNvbHZlczogUkhCWiAjMTkxMjc1LCBSSEJaICMyMDk4NTYsIFJIQlogIzIwMDYyMSwgUkhCWiAjMTgwMjkzCistIFJlc29sdmVzOiBSSEJaICMxOTgxNzksIFJIQlogIzE5ODE4MiwgUkhCWiAjMTg3ODQ3CisKKyogTW9uIE5vdiAyMCAyMDA2IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IC0gNC41LjE0LTQKKy0gRml4IGlhNjQgc3lzY2FsbCBkZWNvZGluZyAoIzIwNjc2OCkKKy0gRml4IGJ1aWxkIHdpdGggZ2xpYmMtMi40LjkwLTMzIGFuZCB1cCBvbiBhbGwgYXJjaGVzIGJ1dCBpYTY0CistIEZpeCBidWlsZCBhZ2FpbnN0IDIuNi4xOCsgaGVhZGVycworCisqIFR1ZSBBdWcgMjIgMjAwNiBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjE0LTMKKy0gRml4IGJvZ3VzIGRlY29kaW5nIG9mIHN5c2NhbGxzID49IDMwMCAoIzIwMTQ2MiwgIzIwMjYyMCkuCisKKyogRnJpIEp1bCAxNCAyMDA2IEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5jb20+IC0gNC41LjE0LTIKKy0gcmVidWlsZAorCisqIEZyaSBGZWIgMTAgMjAwNiBKZXNzZSBLZWF0aW5nIDxqa2VhdGluZ0ByZWRoYXQuY29tPiAtIDQuNS4xNC0xLjIKKy0gYnVtcCBhZ2FpbiBmb3IgbG9uZyBkb3VibGUgYnVnIG9uIHBwY3ssNjR9CisKKyogVHVlIEZlYiAwNyAyMDA2IEplc3NlIEtlYXRpbmcgPGprZWF0aW5nQHJlZGhhdC5jb20+IC0gNC41LjE0LTEuMQorLSByZWJ1aWx0IGZvciBuZXcgZ2NjNC4xIHNuYXBzaG90IGFuZCBnbGliYyBjaGFuZ2VzCisKKyogTW9uIEphbiAxNiAyMDA2IFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gLSA0LjUuMTQtMQorLSBGaXggYmlhcmNoIGRlY29kaW5nIG9mIHNvY2tldCBzeXNjYWxscyAoIzE3NDM1NCkuCistIEZpeCBiaWFyY2ggLWUgc3VwcG9ydCAoIzE3Mzk4NikuCistIEFjY2VwdCBudW1lcmljIHN5c2NhbGxzIGluIC1lICgjMTc0Nzk4KS4KKy0gRml4IGlwYyBzeXNjYWxsIGRlY29kaW5nICgjMTY0NzU1KS4KKy0gSW1wcm92ZSBtc2dyY3YgcHJpbnRpbmcgKCMxNjQ3NTcpLgorLSBNYW4gcGFnZSB1cGRhdGVzICgjMTY1Mzc1KS4KKy0gSW1wcm92ZSBtb3VudCBzeXNjYWxsIHByaW50aW5nICgjMTY1Mzc3KS4KKy0gQ29ycmVjdCBwcmludGluZyBvZiByZXN0YXJ0aW5nIHN5c2NhbGxzICgjMTY1NDY5KS4KKworKiBXZWQgQXVnICAzIDIwMDUgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiAtIDQuNS4xMy0xCistIEZpeCBzZXRzb2Nrb3B0IGRlY29kaW5nIG9uIDY0LWJpdCAoIzE2MjQ0OSkuCistIEZpeCB0eXBvcyBpbiBzb2NrZXQgb3B0aW9uIG5hbWUgc3RyaW5ncyAoIzE2MTU3OCkuCistIERpc3BsYXkgbW9yZSBJUFY2IHNvY2tldCBvcHRpb25zIGJ5IG5hbWUgKCMxNjI0NTApLgorLSBEb24ndCBkaXNwbGF5IGluYXBwcm9wcmlhdGUgc3lzY2FsbHMgZm9yIC1lIHRyYWNlPWZpbGUgKCMxNTkzNDApLgorLSBOZXcgc2VsZWN0b3IgdHlwZSAtZSB0cmFjZT1kZXNjIGZvciBmaWxlLWRlc2NyaXB0b3IgdXNpbmcgY2FsbHMgKCMxNTk0MDApLgorLSBGaXggMzItYml0IG9sZF9tbWFwIHN5c2NhbGwgZGVjb2Rpbmcgb24geDg2LTY0ICgjMTYyNDY3LCAjMTY0MjE1KS4KKy0gRml4IGVycm9ycyBkZXRhY2hpbmcgZnJvbSBtdWx0aXRocmVhZGVkIHByb2Nlc3Mgb24gaW50ZXJydXB0ICgjMTYxOTE5KS4KKy0gTm90ZSA0LjUuMTIgZml4IGZvciBjcmFzaCBoYW5kbGluZyBiYWQgc2lnbmFsIG51bWJlcnMgKCMxNjI3MzkpLgorCiAqIFdlZCBKdW4gIDggMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjEyLTEKIC0gRml4IGtub3duIHN5c2NhbGwgcmVjb2duaXRpb24gZm9yIElBMzIgcHJvY2Vzc2VzIG9uIHg4Ni02NCAoIzE1ODkzNCkuCiAtIEZpeCBiYWQgb3V0cHV0IGZvciBwdHJhY2Ugb24geDg2LTY0ICgjMTU5Nzg3KS4KQEAgLTMxOSw3ICs0MzMsNyBAQAogLSBzdHJhY2UgMy4xIHBhdGNoZXMgY2FycmllZCBhbG9uZyBmb3Igbm93LgogCiAqIFN1biBNYXkgMTYgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgotLSBkb24ndCByZWx5IG9uIChicm9rZW4hKSBycG0gJXBhdGNoICgjMjczNSkKKy0gZG9uJ3QgcmVseSBvbiAoYnJva2VuISkgcnBtICUlcGF0Y2ggKCMyNzM1KQogCiAqIFR1ZSBBcHIgMDYgMTk5OSBQcmVzdG9uIEJyb3duIDxwYnJvd25AcmVkaGF0LmNvbT4KIC0gc3RyaXAgYmluYXJ5CmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvYWxwaGEvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9hbHBoYS9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmZhZmY5Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9hbHBoYS9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTE2ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVERUFETEsiLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVBR0FJTiIsIC8qIDM1ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMzYgKi8KLQkiRUFMUkVBRFkiLCAvKiAzNyAqLwotCSJFTk9UU09DSyIsIC8qIDM4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDM5ICovCi0JIkVNU0dTSVpFIiwgLyogNDAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDQxICovCi0JIkVOT1BST1RPT1BUIiwgLyogNDIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogNDMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogNDQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDQ1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDQ2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDQ3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA0OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogNDkgKi8KLQkiRU5FVERPV04iLCAvKiA1MCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDUxICovCi0JIkVORVRSRVNFVCIsIC8qIDUyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDUzICovCi0JIkVDT05OUkVTRVQiLCAvKiA1NCAqLwotCSJFTk9CVUZTIiwgLyogNTUgKi8KLQkiRUlTQ09OTiIsIC8qIDU2ICovCi0JIkVOT1RDT05OIiwgLyogNTcgKi8KLQkiRVNIVVRET1dOIiwgLyogNTggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogNTkgKi8KLQkiRVRJTUVET1VUIiwgLyogNjAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogNjEgKi8KLQkiRUxPT1AiLCAvKiA2MiAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiA2MyAqLwotCSJFSE9TVERPV04iLCAvKiA2NCAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiA2NSAqLwotCSJFTk9URU1QVFkiLCAvKiA2NiAqLwotCSJFUlJOT182NyIsIC8qIDY3ICovCi0JIkVVU0VSUyIsIC8qIDY4ICovCi0JIkVEUVVPVCIsIC8qIDY5ICovCi0JIkVTVEFMRSIsIC8qIDcwICovCi0JIkVSRU1PVEUiLCAvKiA3MSAqLwotCSJFUlJOT183MiIsIC8qIDcyICovCi0JIkVSUk5PXzczIiwgLyogNzMgKi8KLQkiRVJSTk9fNzQiLCAvKiA3NCAqLwotCSJFUlJOT183NSIsIC8qIDc1ICovCi0JIkVSUk5PXzc2IiwgLyogNzYgKi8KLQkiRU5PTENLIiwgLyogNzcgKi8KLQkiRU5PU1lTIiwgLyogNzggKi8KLQkiRVJSTk9fNzkiLCAvKiA3OSAqLwotCSJFTk9NU0ciLCAvKiA4MCAqLwotCSJFSURSTSIsIC8qIDgxICovCi0JIkVOT1NSIiwgLyogODIgKi8KLQkiRVRJTUUiLCAvKiA4MyAqLwotCSJFQkFETVNHIiwgLyogODQgKi8KLQkiRVBST1RPIiwgLyogODUgKi8KLQkiRU5PREFUQSIsIC8qIDg2ICovCi0JIkVOT1NUUiIsIC8qIDg3ICovCi0JIkVDSFJORyIsIC8qIDg4ICovCi0JIkVMMk5TWU5DIiwgLyogODkgKi8KLQkiRUwzSExUIiwgLyogOTAgKi8KLQkiRUwzUlNUIiwgLyogOTEgKi8KLQkiRU5PUEtHIiwgLyogOTIgKi8KLQkiRUxOUk5HIiwgLyogOTMgKi8KLQkiRVVOQVRDSCIsIC8qIDk0ICovCi0JIkVOT0NTSSIsIC8qIDk1ICovCi0JIkVMMkhMVCIsIC8qIDk2ICovCi0JIkVCQURFIiwgLyogOTcgKi8KLQkiRUJBRFIiLCAvKiA5OCAqLwotCSJFWEZVTEwiLCAvKiA5OSAqLwotCSJFTk9BTk8iLCAvKiAxMDAgKi8KLQkiRUJBRFJRQyIsIC8qIDEwMSAqLwotCSJFQkFEU0xUIiwgLyogMTAyICovCi0JIkVERUFETE9DSyIsIC8qIDEwMyAqLwotCSJFQkZPTlQiLCAvKiAxMDQgKi8KLQkiRU5PTkVUIiwgLyogMTA1ICovCi0JIkVOT0xJTksiLCAvKiAxMDYgKi8KLQkiRUFEViIsIC8qIDEwNyAqLwotCSJFU1JNTlQiLCAvKiAxMDggKi8KLQkiRUNPTU0iLCAvKiAxMDkgKi8KLQkiRU1VTFRJSE9QIiwgLyogMTEwICovCi0JIkVET1RET1QiLCAvKiAxMTEgKi8KLQkiRU9WRVJGTE9XIiwgLyogMTEyICovCi0JIkVOT1RVTklRIiwgLyogMTEzICovCi0JIkVCQURGRCIsIC8qIDExNCAqLwotCSJFUkVNQ0hHIiwgLyogMTE1ICovCi0JIkVJTFNFUSIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVMSUJBQ0MiLCAvKiAxMjIgKi8KLQkiRUxJQkJBRCIsIC8qIDEyMyAqLwotCSJFTElCU0NOIiwgLyogMTI0ICovCi0JIkVMSUJNQVgiLCAvKiAxMjUgKi8KLQkiRUxJQkVYRUMiLCAvKiAxMjYgKi8KLQkiRVJFU1RBUlQiLCAvKiAxMjcgKi8KLQkiRVNUUlBJUEUiLCAvKiAxMjggKi8KLQkiRVJSTk9fMTI5IiwgLyogMTI5ICovCi0JIkVSUk5PXzEzMCIsIC8qIDEzMCAqLwotCSJFUlJOT18xMzEiLCAvKiAxMzEgKi8KLQkiRVJSTk9fMTMyIiwgLyogMTMyICovCi0JIkVSUk5PXzEzMyIsIC8qIDEzMyAqLwotCSJFUlJOT18xMzQiLCAvKiAxMzQgKi8KLQkiRVJSTk9fMTM1IiwgLyogMTM1ICovCi0JIkVSUk5PXzEzNiIsIC8qIDEzNiAqLwotCSJFUlJOT18xMzciLCAvKiAxMzcgKi8KLQkiRVJSTk9fMTM4IiwgLyogMTM4ICovCi0JIkVSUk5PXzEzOSIsIC8qIDEzOSAqLwotCSJFUlJOT18xNDAiLCAvKiAxNDAgKi8KLQkiRVJSTk9fMTQxIiwgLyogMTQxICovCi0JIkVSUk5PXzE0MiIsIC8qIDE0MiAqLwotCSJFUlJOT18xNDMiLCAvKiAxNDMgKi8KLQkiRVJSTk9fMTQ0IiwgLyogMTQ0ICovCi0JIkVSUk5PXzE0NSIsIC8qIDE0NSAqLwotCSJFUlJOT18xNDYiLCAvKiAxNDYgKi8KLQkiRVJSTk9fMTQ3IiwgLyogMTQ3ICovCi0JIkVSUk5PXzE0OCIsIC8qIDE0OCAqLwotCSJFUlJOT18xNDkiLCAvKiAxNDkgKi8KLQkiRVJSTk9fMTUwIiwgLyogMTUwICovCi0JIkVSUk5PXzE1MSIsIC8qIDE1MSAqLwotCSJFUlJOT18xNTIiLCAvKiAxNTIgKi8KLQkiRVJSTk9fMTUzIiwgLyogMTUzICovCi0JIkVSUk5PXzE1NCIsIC8qIDE1NCAqLwotCSJFUlJOT18xNTUiLCAvKiAxNTUgKi8KLQkiRVJSTk9fMTU2IiwgLyogMTU2ICovCi0JIkVSUk5PXzE1NyIsIC8qIDE1NyAqLwotCSJFUlJOT18xNTgiLCAvKiAxNTggKi8KLQkiRVJSTk9fMTU5IiwgLyogMTU5ICovCi0JIkVSUk5PXzE2MCIsIC8qIDE2MCAqLwotCSJFUlJOT18xNjEiLCAvKiAxNjEgKi8KLQkiRVJSTk9fMTYyIiwgLyogMTYyICovCi0JIkVSUk5PXzE2MyIsIC8qIDE2MyAqLwotCSJFUlJOT18xNjQiLCAvKiAxNjQgKi8KLQkiRVJSTk9fMTY1IiwgLyogMTY1ICovCi0JIkVSUk5PXzE2NiIsIC8qIDE2NiAqLwotCSJFUlJOT18xNjciLCAvKiAxNjcgKi8KLQkiRVJSTk9fMTY4IiwgLyogMTY4ICovCi0JIkVSUk5PXzE2OSIsIC8qIDE2OSAqLwotCSJFUlJOT18xNzAiLCAvKiAxNzAgKi8KLQkiRVJSTk9fMTcxIiwgLyogMTcxICovCi0JIkVSUk5PXzE3MiIsIC8qIDE3MiAqLwotCSJFUlJOT18xNzMiLCAvKiAxNzMgKi8KLQkiRVJSTk9fMTc0IiwgLyogMTc0ICovCi0JIkVSUk5PXzE3NSIsIC8qIDE3NSAqLwotCSJFUlJOT18xNzYiLCAvKiAxNzYgKi8KLQkiRVJSTk9fMTc3IiwgLyogMTc3ICovCi0JIkVSUk5PXzE3OCIsIC8qIDE3OCAqLwotCSJFUlJOT18xNzkiLCAvKiAxNzkgKi8KLQkiRVJSTk9fMTgwIiwgLyogMTgwICovCi0JIkVSUk5PXzE4MSIsIC8qIDE4MSAqLwotCSJFUlJOT18xODIiLCAvKiAxODIgKi8KLQkiRVJSTk9fMTgzIiwgLyogMTgzICovCi0JIkVSUk5PXzE4NCIsIC8qIDE4NCAqLwotCSJFUlJOT18xODUiLCAvKiAxODUgKi8KLQkiRVJSTk9fMTg2IiwgLyogMTg2ICovCi0JIkVSUk5PXzE4NyIsIC8qIDE4NyAqLwotCSJFUlJOT18xODgiLCAvKiAxODggKi8KLQkiRVJSTk9fMTg5IiwgLyogMTg5ICovCi0JIkVSUk5PXzE5MCIsIC8qIDE5MCAqLwotCSJFUlJOT18xOTEiLCAvKiAxOTEgKi8KLQkiRVJSTk9fMTkyIiwgLyogMTkyICovCi0JIkVSUk5PXzE5MyIsIC8qIDE5MyAqLwotCSJFUlJOT18xOTQiLCAvKiAxOTQgKi8KLQkiRVJSTk9fMTk1IiwgLyogMTk1ICovCi0JIkVSUk5PXzE5NiIsIC8qIDE5NiAqLwotCSJFUlJOT18xOTciLCAvKiAxOTcgKi8KLQkiRVJSTk9fMTk4IiwgLyogMTk4ICovCi0JIkVSUk5PXzE5OSIsIC8qIDE5OSAqLwotCSJFUlJOT18yMDAiLCAvKiAyMDAgKi8KLQkiRVJSTk9fMjAxIiwgLyogMjAxICovCi0JIkVSUk5PXzIwMiIsIC8qIDIwMiAqLwotCSJFUlJOT18yMDMiLCAvKiAyMDMgKi8KLQkiRVJSTk9fMjA0IiwgLyogMjA0ICovCi0JIkVSUk5PXzIwNSIsIC8qIDIwNSAqLwotCSJFUlJOT18yMDYiLCAvKiAyMDYgKi8KLQkiRVJSTk9fMjA3IiwgLyogMjA3ICovCi0JIkVSUk5PXzIwOCIsIC8qIDIwOCAqLwotCSJFUlJOT18yMDkiLCAvKiAyMDkgKi8KLQkiRVJSTk9fMjEwIiwgLyogMjEwICovCi0JIkVSUk5PXzIxMSIsIC8qIDIxMSAqLwotCSJFUlJOT18yMTIiLCAvKiAyMTIgKi8KLQkiRVJSTk9fMjEzIiwgLyogMjEzICovCi0JIkVSUk5PXzIxNCIsIC8qIDIxNCAqLwotCSJFUlJOT18yMTUiLCAvKiAyMTUgKi8KLQkiRVJSTk9fMjE2IiwgLyogMjE2ICovCi0JIkVSUk5PXzIxNyIsIC8qIDIxNyAqLwotCSJFUlJOT18yMTgiLCAvKiAyMTggKi8KLQkiRVJSTk9fMjE5IiwgLyogMjE5ICovCi0JIkVSUk5PXzIyMCIsIC8qIDIyMCAqLwotCSJFUlJOT18yMjEiLCAvKiAyMjEgKi8KLQkiRVJSTk9fMjIyIiwgLyogMjIyICovCi0JIkVSUk5PXzIyMyIsIC8qIDIyMyAqLwotCSJFUlJOT18yMjQiLCAvKiAyMjQgKi8KLQkiRVJSTk9fMjI1IiwgLyogMjI1ICovCi0JIkVSUk5PXzIyNiIsIC8qIDIyNiAqLwotCSJFUlJOT18yMjciLCAvKiAyMjcgKi8KLQkiRVJSTk9fMjI4IiwgLyogMjI4ICovCi0JIkVSUk5PXzIyOSIsIC8qIDIyOSAqLwotCSJFUlJOT18yMzAiLCAvKiAyMzAgKi8KLQkiRVJSTk9fMjMxIiwgLyogMjMxICovCi0JIkVSUk5PXzIzMiIsIC8qIDIzMiAqLwotCSJFUlJOT18yMzMiLCAvKiAyMzMgKi8KLQkiRVJSTk9fMjM0IiwgLyogMjM0ICovCi0JIkVSUk5PXzIzNSIsIC8qIDIzNSAqLwotCSJFUlJOT18yMzYiLCAvKiAyMzYgKi8KLQkiRVJSTk9fMjM3IiwgLyogMjM3ICovCi0JIkVSUk5PXzIzOCIsIC8qIDIzOCAqLwotCSJFUlJOT18yMzkiLCAvKiAyMzkgKi8KLQkiRVJSTk9fMjQwIiwgLyogMjQwICovCi0JIkVSUk5PXzI0MSIsIC8qIDI0MSAqLwotCSJFUlJOT18yNDIiLCAvKiAyNDIgKi8KLQkiRVJSTk9fMjQzIiwgLyogMjQzICovCi0JIkVSUk5PXzI0NCIsIC8qIDI0NCAqLwotCSJFUlJOT18yNDUiLCAvKiAyNDUgKi8KLQkiRVJSTk9fMjQ2IiwgLyogMjQ2ICovCi0JIkVSUk5PXzI0NyIsIC8qIDI0NyAqLwotCSJFUlJOT18yNDgiLCAvKiAyNDggKi8KLQkiRVJSTk9fMjQ5IiwgLyogMjQ5ICovCi0JIkVSUk5PXzI1MCIsIC8qIDI1MCAqLwotCSJFUlJOT18yNTEiLCAvKiAyNTEgKi8KLQkiRVJSTk9fMjUyIiwgLyogMjUyICovCi0JIkVSUk5PXzI1MyIsIC8qIDI1MyAqLwotCSJFUlJOT18yNTQiLCAvKiAyNTQgKi8KLQkiRVJSTk9fMjU1IiwgLyogMjU1ICovCi0JIkVSUk5PXzI1NiIsIC8qIDI1NiAqLwotCSJFUlJOT18yNTciLCAvKiAyNTcgKi8KLQkiRVJSTk9fMjU4IiwgLyogMjU4ICovCi0JIkVSUk5PXzI1OSIsIC8qIDI1OSAqLwotCSJFUlJOT18yNjAiLCAvKiAyNjAgKi8KLQkiRVJSTk9fMjYxIiwgLyogMjYxICovCi0JIkVSUk5PXzI2MiIsIC8qIDI2MiAqLwotCSJFUlJOT18yNjMiLCAvKiAyNjMgKi8KLQkiRVJSTk9fMjY0IiwgLyogMjY0ICovCi0JIkVSUk5PXzI2NSIsIC8qIDI2NSAqLwotCSJFUlJOT18yNjYiLCAvKiAyNjYgKi8KLQkiRVJSTk9fMjY3IiwgLyogMjY3ICovCi0JIkVSUk5PXzI2OCIsIC8qIDI2OCAqLwotCSJFUlJOT18yNjkiLCAvKiAyNjkgKi8KLQkiRVJSTk9fMjcwIiwgLyogMjcwICovCi0JIkVSUk5PXzI3MSIsIC8qIDI3MSAqLwotCSJFUlJOT18yNzIiLCAvKiAyNzIgKi8KLQkiRVJSTk9fMjczIiwgLyogMjczICovCi0JIkVSUk5PXzI3NCIsIC8qIDI3NCAqLwotCSJFUlJOT18yNzUiLCAvKiAyNzUgKi8KLQkiRVJSTk9fMjc2IiwgLyogMjc2ICovCi0JIkVSUk5PXzI3NyIsIC8qIDI3NyAqLwotCSJFUlJOT18yNzgiLCAvKiAyNzggKi8KLQkiRVJSTk9fMjc5IiwgLyogMjc5ICovCi0JIkVSUk5PXzI4MCIsIC8qIDI4MCAqLwotCSJFUlJOT18yODEiLCAvKiAyODEgKi8KLQkiRVJSTk9fMjgyIiwgLyogMjgyICovCi0JIkVSUk5PXzI4MyIsIC8qIDI4MyAqLwotCSJFUlJOT18yODQiLCAvKiAyODQgKi8KLQkiRVJSTk9fMjg1IiwgLyogMjg1ICovCi0JIkVSUk5PXzI4NiIsIC8qIDI4NiAqLwotCSJFUlJOT18yODciLCAvKiAyODcgKi8KLQkiRVJSTk9fMjg4IiwgLyogMjg4ICovCi0JIkVSUk5PXzI4OSIsIC8qIDI4OSAqLwotCSJFUlJOT18yOTAiLCAvKiAyOTAgKi8KLQkiRVJSTk9fMjkxIiwgLyogMjkxICovCi0JIkVSUk5PXzI5MiIsIC8qIDI5MiAqLwotCSJFUlJOT18yOTMiLCAvKiAyOTMgKi8KLQkiRVJSTk9fMjk0IiwgLyogMjk0ICovCi0JIkVSUk5PXzI5NSIsIC8qIDI5NSAqLwotCSJFUlJOT18yOTYiLCAvKiAyOTYgKi8KLQkiRVJSTk9fMjk3IiwgLyogMjk3ICovCi0JIkVSUk5PXzI5OCIsIC8qIDI5OCAqLwotCSJFUlJOT18yOTkiLCAvKiAyOTkgKi8KLQkiRVJSTk9fMzAwIiwgLyogMzAwICovCi0JIkVSUk5PXzMwMSIsIC8qIDMwMSAqLwotCSJFUlJOT18zMDIiLCAvKiAzMDIgKi8KLQkiRVJSTk9fMzAzIiwgLyogMzAzICovCi0JIkVSUk5PXzMwNCIsIC8qIDMwNCAqLwotCSJFUlJOT18zMDUiLCAvKiAzMDUgKi8KLQkiRVJSTk9fMzA2IiwgLyogMzA2ICovCi0JIkVSUk5PXzMwNyIsIC8qIDMwNyAqLwotCSJFUlJOT18zMDgiLCAvKiAzMDggKi8KLQkiRVJSTk9fMzA5IiwgLyogMzA5ICovCi0JIkVSUk5PXzMxMCIsIC8qIDMxMCAqLwotCSJFUlJOT18zMTEiLCAvKiAzMTEgKi8KLQkiRVJSTk9fMzEyIiwgLyogMzEyICovCi0JIkVSUk5PXzMxMyIsIC8qIDMxMyAqLwotCSJFUlJOT18zMTQiLCAvKiAzMTQgKi8KLQkiRVJSTk9fMzE1IiwgLyogMzE1ICovCi0JIkVSUk5PXzMxNiIsIC8qIDMxNiAqLwotCSJFUlJOT18zMTciLCAvKiAzMTcgKi8KLQkiRVJSTk9fMzE4IiwgLyogMzE4ICovCi0JIkVSUk5PXzMxOSIsIC8qIDMxOSAqLwotCSJFUlJOT18zMjAiLCAvKiAzMjAgKi8KLQkiRVJSTk9fMzIxIiwgLyogMzIxICovCi0JIkVSUk5PXzMyMiIsIC8qIDMyMiAqLwotCSJFUlJOT18zMjMiLCAvKiAzMjMgKi8KLQkiRVJSTk9fMzI0IiwgLyogMzI0ICovCi0JIkVSUk5PXzMyNSIsIC8qIDMyNSAqLwotCSJFUlJOT18zMjYiLCAvKiAzMjYgKi8KLQkiRVJSTk9fMzI3IiwgLyogMzI3ICovCi0JIkVSUk5PXzMyOCIsIC8qIDMyOCAqLwotCSJFUlJOT18zMjkiLCAvKiAzMjkgKi8KLQkiRVJSTk9fMzMwIiwgLyogMzMwICovCi0JIkVSUk5PXzMzMSIsIC8qIDMzMSAqLwotCSJFUlJOT18zMzIiLCAvKiAzMzIgKi8KLQkiRVJSTk9fMzMzIiwgLyogMzMzICovCi0JIkVSUk5PXzMzNCIsIC8qIDMzNCAqLwotCSJFUlJOT18zMzUiLCAvKiAzMzUgKi8KLQkiRVJSTk9fMzM2IiwgLyogMzM2ICovCi0JIkVSUk5PXzMzNyIsIC8qIDMzNyAqLwotCSJFUlJOT18zMzgiLCAvKiAzMzggKi8KLQkiRVJSTk9fMzM5IiwgLyogMzM5ICovCi0JIkVSUk5PXzM0MCIsIC8qIDM0MCAqLwotCSJFUlJOT18zNDEiLCAvKiAzNDEgKi8KLQkiRVJSTk9fMzQyIiwgLyogMzQyICovCi0JIkVSUk5PXzM0MyIsIC8qIDM0MyAqLwotCSJFUlJOT18zNDQiLCAvKiAzNDQgKi8KLQkiRVJSTk9fMzQ1IiwgLyogMzQ1ICovCi0JIkVSUk5PXzM0NiIsIC8qIDM0NiAqLwotCSJFUlJOT18zNDciLCAvKiAzNDcgKi8KLQkiRVJSTk9fMzQ4IiwgLyogMzQ4ICovCi0JIkVSUk5PXzM0OSIsIC8qIDM0OSAqLwotCSJFUlJOT18zNTAiLCAvKiAzNTAgKi8KLQkiRVJSTk9fMzUxIiwgLyogMzUxICovCi0JIkVSUk5PXzM1MiIsIC8qIDM1MiAqLwotCSJFUlJOT18zNTMiLCAvKiAzNTMgKi8KLQkiRVJSTk9fMzU0IiwgLyogMzU0ICovCi0JIkVSUk5PXzM1NSIsIC8qIDM1NSAqLwotCSJFUlJOT18zNTYiLCAvKiAzNTYgKi8KLQkiRVJSTk9fMzU3IiwgLyogMzU3ICovCi0JIkVSUk5PXzM1OCIsIC8qIDM1OCAqLwotCSJFUlJOT18zNTkiLCAvKiAzNTkgKi8KLQkiRVJSTk9fMzYwIiwgLyogMzYwICovCi0JIkVSUk5PXzM2MSIsIC8qIDM2MSAqLwotCSJFUlJOT18zNjIiLCAvKiAzNjIgKi8KLQkiRVJSTk9fMzYzIiwgLyogMzYzICovCi0JIkVSUk5PXzM2NCIsIC8qIDM2NCAqLwotCSJFUlJOT18zNjUiLCAvKiAzNjUgKi8KLQkiRVJSTk9fMzY2IiwgLyogMzY2ICovCi0JIkVSUk5PXzM2NyIsIC8qIDM2NyAqLwotCSJFUlJOT18zNjgiLCAvKiAzNjggKi8KLQkiRVJSTk9fMzY5IiwgLyogMzY5ICovCi0JIkVSUk5PXzM3MCIsIC8qIDM3MCAqLwotCSJFUlJOT18zNzEiLCAvKiAzNzEgKi8KLQkiRVJSTk9fMzcyIiwgLyogMzcyICovCi0JIkVSUk5PXzM3MyIsIC8qIDM3MyAqLwotCSJFUlJOT18zNzQiLCAvKiAzNzQgKi8KLQkiRVJSTk9fMzc1IiwgLyogMzc1ICovCi0JIkVSUk5PXzM3NiIsIC8qIDM3NiAqLwotCSJFUlJOT18zNzciLCAvKiAzNzcgKi8KLQkiRVJSTk9fMzc4IiwgLyogMzc4ICovCi0JIkVSUk5PXzM3OSIsIC8qIDM3OSAqLwotCSJFUlJOT18zODAiLCAvKiAzODAgKi8KLQkiRVJSTk9fMzgxIiwgLyogMzgxICovCi0JIkVSUk5PXzM4MiIsIC8qIDM4MiAqLwotCSJFUlJOT18zODMiLCAvKiAzODMgKi8KLQkiRVJSTk9fMzg0IiwgLyogMzg0ICovCi0JIkVSUk5PXzM4NSIsIC8qIDM4NSAqLwotCSJFUlJOT18zODYiLCAvKiAzODYgKi8KLQkiRVJSTk9fMzg3IiwgLyogMzg3ICovCi0JIkVSUk5PXzM4OCIsIC8qIDM4OCAqLwotCSJFUlJOT18zODkiLCAvKiAzODkgKi8KLQkiRVJSTk9fMzkwIiwgLyogMzkwICovCi0JIkVSUk5PXzM5MSIsIC8qIDM5MSAqLwotCSJFUlJOT18zOTIiLCAvKiAzOTIgKi8KLQkiRVJSTk9fMzkzIiwgLyogMzkzICovCi0JIkVSUk5PXzM5NCIsIC8qIDM5NCAqLwotCSJFUlJOT18zOTUiLCAvKiAzOTUgKi8KLQkiRVJSTk9fMzk2IiwgLyogMzk2ICovCi0JIkVSUk5PXzM5NyIsIC8qIDM5NyAqLwotCSJFUlJOT18zOTgiLCAvKiAzOTggKi8KLQkiRVJSTk9fMzk5IiwgLyogMzk5ICovCi0JIkVSUk5PXzQwMCIsIC8qIDQwMCAqLwotCSJFUlJOT180MDEiLCAvKiA0MDEgKi8KLQkiRVJSTk9fNDAyIiwgLyogNDAyICovCi0JIkVSUk5PXzQwMyIsIC8qIDQwMyAqLwotCSJFUlJOT180MDQiLCAvKiA0MDQgKi8KLQkiRVJSTk9fNDA1IiwgLyogNDA1ICovCi0JIkVSUk5PXzQwNiIsIC8qIDQwNiAqLwotCSJFUlJOT180MDciLCAvKiA0MDcgKi8KLQkiRVJSTk9fNDA4IiwgLyogNDA4ICovCi0JIkVSUk5PXzQwOSIsIC8qIDQwOSAqLwotCSJFUlJOT180MTAiLCAvKiA0MTAgKi8KLQkiRVJSTk9fNDExIiwgLyogNDExICovCi0JIkVSUk5PXzQxMiIsIC8qIDQxMiAqLwotCSJFUlJOT180MTMiLCAvKiA0MTMgKi8KLQkiRVJSTk9fNDE0IiwgLyogNDE0ICovCi0JIkVSUk5PXzQxNSIsIC8qIDQxNSAqLwotCSJFUlJOT180MTYiLCAvKiA0MTYgKi8KLQkiRVJSTk9fNDE3IiwgLyogNDE3ICovCi0JIkVSUk5PXzQxOCIsIC8qIDQxOCAqLwotCSJFUlJOT180MTkiLCAvKiA0MTkgKi8KLQkiRVJSTk9fNDIwIiwgLyogNDIwICovCi0JIkVSUk5PXzQyMSIsIC8qIDQyMSAqLwotCSJFUlJOT180MjIiLCAvKiA0MjIgKi8KLQkiRVJSTk9fNDIzIiwgLyogNDIzICovCi0JIkVSUk5PXzQyNCIsIC8qIDQyNCAqLwotCSJFUlJOT180MjUiLCAvKiA0MjUgKi8KLQkiRVJSTk9fNDI2IiwgLyogNDI2ICovCi0JIkVSUk5PXzQyNyIsIC8qIDQyNyAqLwotCSJFUlJOT180MjgiLCAvKiA0MjggKi8KLQkiRVJSTk9fNDI5IiwgLyogNDI5ICovCi0JIkVSUk5PXzQzMCIsIC8qIDQzMCAqLwotCSJFUlJOT180MzEiLCAvKiA0MzEgKi8KLQkiRVJSTk9fNDMyIiwgLyogNDMyICovCi0JIkVSUk5PXzQzMyIsIC8qIDQzMyAqLwotCSJFUlJOT180MzQiLCAvKiA0MzQgKi8KLQkiRVJSTk9fNDM1IiwgLyogNDM1ICovCi0JIkVSUk5PXzQzNiIsIC8qIDQzNiAqLwotCSJFUlJOT180MzciLCAvKiA0MzcgKi8KLQkiRVJSTk9fNDM4IiwgLyogNDM4ICovCi0JIkVSUk5PXzQzOSIsIC8qIDQzOSAqLwotCSJFUlJOT180NDAiLCAvKiA0NDAgKi8KLQkiRVJSTk9fNDQxIiwgLyogNDQxICovCi0JIkVSUk5PXzQ0MiIsIC8qIDQ0MiAqLwotCSJFUlJOT180NDMiLCAvKiA0NDMgKi8KLQkiRVJSTk9fNDQ0IiwgLyogNDQ0ICovCi0JIkVSUk5PXzQ0NSIsIC8qIDQ0NSAqLwotCSJFUlJOT180NDYiLCAvKiA0NDYgKi8KLQkiRVJSTk9fNDQ3IiwgLyogNDQ3ICovCi0JIkVSUk5PXzQ0OCIsIC8qIDQ0OCAqLwotCSJFUlJOT180NDkiLCAvKiA0NDkgKi8KLQkiRVJSTk9fNDUwIiwgLyogNDUwICovCi0JIkVSUk5PXzQ1MSIsIC8qIDQ1MSAqLwotCSJFUlJOT180NTIiLCAvKiA0NTIgKi8KLQkiRVJSTk9fNDUzIiwgLyogNDUzICovCi0JIkVSUk5PXzQ1NCIsIC8qIDQ1NCAqLwotCSJFUlJOT180NTUiLCAvKiA0NTUgKi8KLQkiRVJSTk9fNDU2IiwgLyogNDU2ICovCi0JIkVSUk5PXzQ1NyIsIC8qIDQ1NyAqLwotCSJFUlJOT180NTgiLCAvKiA0NTggKi8KLQkiRVJSTk9fNDU5IiwgLyogNDU5ICovCi0JIkVSUk5PXzQ2MCIsIC8qIDQ2MCAqLwotCSJFUlJOT180NjEiLCAvKiA0NjEgKi8KLQkiRVJSTk9fNDYyIiwgLyogNDYyICovCi0JIkVSUk5PXzQ2MyIsIC8qIDQ2MyAqLwotCSJFUlJOT180NjQiLCAvKiA0NjQgKi8KLQkiRVJSTk9fNDY1IiwgLyogNDY1ICovCi0JIkVSUk5PXzQ2NiIsIC8qIDQ2NiAqLwotCSJFUlJOT180NjciLCAvKiA0NjcgKi8KLQkiRVJSTk9fNDY4IiwgLyogNDY4ICovCi0JIkVSUk5PXzQ2OSIsIC8qIDQ2OSAqLwotCSJFUlJOT180NzAiLCAvKiA0NzAgKi8KLQkiRVJSTk9fNDcxIiwgLyogNDcxICovCi0JIkVSUk5PXzQ3MiIsIC8qIDQ3MiAqLwotCSJFUlJOT180NzMiLCAvKiA0NzMgKi8KLQkiRVJSTk9fNDc0IiwgLyogNDc0ICovCi0JIkVSUk5PXzQ3NSIsIC8qIDQ3NSAqLwotCSJFUlJOT180NzYiLCAvKiA0NzYgKi8KLQkiRVJSTk9fNDc3IiwgLyogNDc3ICovCi0JIkVSUk5PXzQ3OCIsIC8qIDQ3OCAqLwotCSJFUlJOT180NzkiLCAvKiA0NzkgKi8KLQkiRVJSTk9fNDgwIiwgLyogNDgwICovCi0JIkVSUk5PXzQ4MSIsIC8qIDQ4MSAqLwotCSJFUlJOT180ODIiLCAvKiA0ODIgKi8KLQkiRVJSTk9fNDgzIiwgLyogNDgzICovCi0JIkVSUk5PXzQ4NCIsIC8qIDQ4NCAqLwotCSJFUlJOT180ODUiLCAvKiA0ODUgKi8KLQkiRVJSTk9fNDg2IiwgLyogNDg2ICovCi0JIkVSUk5PXzQ4NyIsIC8qIDQ4NyAqLwotCSJFUlJOT180ODgiLCAvKiA0ODggKi8KLQkiRVJSTk9fNDg5IiwgLyogNDg5ICovCi0JIkVSUk5PXzQ5MCIsIC8qIDQ5MCAqLwotCSJFUlJOT180OTEiLCAvKiA0OTEgKi8KLQkiRVJSTk9fNDkyIiwgLyogNDkyICovCi0JIkVSUk5PXzQ5MyIsIC8qIDQ5MyAqLwotCSJFUlJOT180OTQiLCAvKiA0OTQgKi8KLQkiRVJSTk9fNDk1IiwgLyogNDk1ICovCi0JIkVSUk5PXzQ5NiIsIC8qIDQ5NiAqLwotCSJFUlJOT180OTciLCAvKiA0OTcgKi8KLQkiRVJSTk9fNDk4IiwgLyogNDk4ICovCi0JIkVSUk5PXzQ5OSIsIC8qIDQ5OSAqLwotCSJFUlJOT181MDAiLCAvKiA1MDAgKi8KLQkiRVJSTk9fNTAxIiwgLyogNTAxICovCi0JIkVSUk5PXzUwMiIsIC8qIDUwMiAqLwotCSJFUlJOT181MDMiLCAvKiA1MDMgKi8KLQkiRVJSTk9fNTA0IiwgLyogNTA0ICovCi0JIkVSUk5PXzUwNSIsIC8qIDUwNSAqLwotCSJFUlJOT181MDYiLCAvKiA1MDYgKi8KLQkiRVJSTk9fNTA3IiwgLyogNTA3ICovCi0JIkVSUk5PXzUwOCIsIC8qIDUwOCAqLwotCSJFUlJOT181MDkiLCAvKiA1MDkgKi8KLQkiRVJSTk9fNTEwIiwgLyogNTEwICovCi0JIkVSUk5PXzUxMSIsIC8qIDUxMSAqLwotCSJFUkVTVEFSVFNZUyIsIC8qIDUxMiAqLwotCSJFUkVTVEFSVE5PSU5UUiIsIC8qIDUxMyAqLwotCSJFUkVTVEFSVE5PSEFORCIsIC8qIDUxNCAqLwotCSJFTk9JT0NUTENNRCIsIC8qIDUxNSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2FscGhhL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NmZGI1Yi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvYWxwaGEvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1MiArMCwwIEBACi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDY2N2J9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDY2N2N9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg2NjdkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg2NjdlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NjY3Zn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NBVE1BUksiLAkweDczMDd9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DU1BHUlAiLAkweDczMDh9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1BHUlAiLAkweDczMDl9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVFAiLAkweDc0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVRQIiwJMHg3NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VUTiIsCTB4NzQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEMiLAkweDc0MTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVRDIiwJMHg3NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDc0MTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NzQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NzQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NzQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg3NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDc0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDc0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDc0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NzQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg3NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDc0MWZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg3NDY3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg3NDY4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RBUlQiLAkweDc0NmV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVE9QIiwJMHg3NDZmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NzQ3M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMVEMiLAkweDc0NzR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTFRDIiwJMHg3NDc1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDc0NzZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NzQ3N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAotCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvYWxwaGEvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNTA3ZTMuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L2FscGhhL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVUkciLAkvKiAxNiAqLwotCSJTSUdTVE9QIiwJLyogMTcgKi8KLQkiU0lHVFNUUCIsCS8qIDE4ICovCi0JIlNJR0NPTlQiLAkvKiAxOSAqLwotCSJTSUdDSExEIiwJLyogMjAgKi8KLQkiU0lHVFRJTiIsCS8qIDIxICovCi0JIlNJR1RUT1UiLAkvKiAyMiAqLwotCSJTSUdJTyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU5GTyIsCS8qIDI5ICovCi0JIlNJR1VTUjEiLAkvKiAzMCAqLwotCSJTSUdVU1IyIiwJLyogMzEgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9hbHBoYS9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGMxN2FkLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9hbHBoYS9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudC5oLHYgMS4xNSAyMDA1LzA1LzA5IDA4OjAyOjA1IHJvbGFuZCBFeHAgJAotICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJvc2Zfc3lzY2FsbCIJCX0sIC8qIDAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXQiCQkJfSwgLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQkJfSwgLyogMiAqLwotCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQkJfSwgLyogMyAqLwotCXsgMywJVEYsCXN5c193cml0ZSwJCSJ3cml0ZSIJCQl9LCAvKiA0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9vcGVuIgkJfSwgLyogNSwgbm90IGltcGxlbWVudGVkICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQkJfSwgLyogNiAqLwotCXsgNCwJVFAsCXN5c19vc2Zfd2FpdDQsCQkib3NmX3dhaXQ0IgkJfSwgLyogNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfY3JlYXQiCQl9LCAvKiA4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJCX0sIC8qIDEwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2V4ZWN2ZSIJCX0sIC8qIDExLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQkJfSwgLyogMTIgKi8KLQl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJCX0sIC8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJCX0sIC8qIDE2ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCQl9LCAvKiAxNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRmc3N0YXQiCQl9LCAvKiAxOCwgbm90IGltcGxlbWVudGVkICovCi0JeyAzLAlURiwJc3lzX2xzZWVrLAkJImxzZWVrIgkJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHhwaWQiCQl9LCAvKiAyMCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tb3VudCIJCX0sIC8qIDIxICovCi0JeyAyLAkwLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCQl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCQl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR4dWlkIgkJfSwgLyogMjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJleGVjX3dpdGhfbG9hZGVyIgl9LCAvKiAyNSwgbm90IGltcGxlbWVudGVkICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJCX0sIC8qIDI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX25yZWN2bXNnIgkJfSwgLyogMjcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uc2VuZG1zZyIJCX0sIC8qIDI4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbnJlY3Zmcm9tIgkJfSwgLyogMjksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uYWNjZXB0IgkJfSwgLyogMzAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uZ2V0cGVlcm5hbWUiCX0sIC8qIDMxLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbmdldHNvY2tuYW1lIgl9LCAvKiAzMiwgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCQl9LCAvKiAzMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9jaGZsYWdzIgkJfSwgLyogMzQsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9mY2hmbGFncyIJCX0sIC8qIDM1LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJCX0sIC8qIDM3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9zdGF0IgkJfSwgLyogMzgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJCX0sIC8qIDM5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9sc3RhdCIJCX0sIC8qIDQwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJCX0sIC8qIDQyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldF9wcm9ncmFtX2F0dHJpYnV0ZXMiCX0sIC8qIDQzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3Byb2ZpbCIJCX0sIC8qIDQ0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJCX0sIC8qIDQ1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9zaWdhY3Rpb24iCX0sIC8qIDQ2LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDEsCTAsCXN5c19nZXRnaWQsCQkiZ2V0eGdpZCIJCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJcHJpbnRhcmdzLAkJIm9zZl9zaWdwcm9jbWFzayIJfSwgLyogNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfZ2V0bG9naW4iCQl9LCAvKiA0OSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldGxvZ2luIgkJfSwgLyogNTAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQkJfSwgLyogNTEgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgkJfSwgLyogNTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfNTMiCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJCX0sIC8qIDU0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3JlYm9vdCIJCX0sIC8qIDU1LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcmV2b2tlIgkJfSwgLyogNTYsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCQl9LCAvKiA1NyAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJCX0sIC8qIDU4ICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCQl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCQl9LCAvKiA2MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfZnN0YXQiCQl9LCAvKiA2Miwgbm90IGltcGxlbWVudGVkICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgkJfSwgLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgkJfSwgLyogNjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXJlbWFwIgkJfSwgLyogNjUsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJInZmb3JrIgkJCX0sIC8qIDY2ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCQl9LCAvKiA2NyAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCQl9LCAvKiA2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zYnJrIgkJfSwgLyogNjksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zc3RrIgkJfSwgLyogNzAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCQl9LCAvKiA3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfdmFkdmlzZSIJfSwgLyogNzIsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCQl9LCAvKiA3MyAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0IgkJfSwgLyogNzQgKi8KLQl7IDAsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCQl9LCAvKiA3NSAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJCX0sIC8qIDc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ttb2RjYWxsIgkJfSwgLyogNzcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9taW5jb3JlIgkJfSwgLyogNzgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCQl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCQl9LCAvKiA4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfZ2V0cGdycCIJfSwgLyogODEsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX3NldHBncnAsCQkic2V0cGdycCIJCX0sIC8qIDgyICovCi0JeyAzLAkwLAlzeXNfb3NmX3NldGl0aW1lciwJIm9zZl9zZXRpdGltZXIiCQl9LCAvKiA4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfd2FpdCIJCX0sIC8qIDg0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfdGFibGUiCQl9LCAvKiA4NSwgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAkwLAlzeXNfb3NmX2dldGl0aW1lciwJIm9zZl9nZXRpdGltZXIiCQl9LCAvKiA4NiAqLwotCXsgMiwJMCwJc3lzX2dldGhvc3RuYW1lLAkiZ2V0aG9zdG5hbWUiCQl9LCAvKiA4NyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCQl9LCAvKiA4OCAqLwotCXsgMCwJMCwJc3lzX2dldGR0YWJsZXNpemUsCSJnZXRkdGFibGVzaXplIgkJfSwgLyogODkgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQkJfSwgLyogOTAgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCQl9LCAvKiA5MSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJCX0sIC8qIDkyICovCi0JeyA1LAkwLAlzeXNfb3NmX3NlbGVjdCwJCSJvc2Zfc2VsZWN0IgkJfSwgLyogOTMgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogOTQgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCQl9LCAvKiA5NSAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCQl9LCAvKiA5NiAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0IgkJfSwgLyogOTcgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0IgkJfSwgLyogOTggKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJvc2ZfZ2V0cHJpb3JpdHkiCX0sIC8qIDEwMCAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQkJfSwgLyogMTAxICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCQl9LCAvKiAxMDIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJCX0sIC8qIDEwMyAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQkJfSwgLyogMTA0ICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJCX0sIC8qIDEwNSAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgkJfSwgLyogMTA2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3Bsb2NrIgkJfSwgLyogMTA3LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ3ZlYyIJfSwgLyogMTA4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ2Jsb2NrIgl9LCAvKiAxMDksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfc2lnc2V0bWFzayIJfSwgLyogMTEwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgkJfSwgLyogMTExICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2lnc3RhY2siCQl9LCAvKiAxMTIgKi8KLQl7IDMsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgkJfSwgLyogMTEzICovCi0JeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJCX0sIC8qIDExNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfdnRyYWNlIgl9LCAvKiAxMTUsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJc3lzX29zZl9nZXR0aW1lb2ZkYXksCSJvc2ZfZ2V0dGltZW9mZGF5Igl9LCAvKiAxMTYgKi8KLQl7IDIsCTAsCXN5c19vc2ZfZ2V0cnVzYWdlLAkib3NmX2dldHJ1c2FnZSIJCX0sIC8qIDExNyAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCQl9LCAvKiAxMTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTE5IgkJfSwgLyogMTE5ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQkJfSwgLyogMTIwICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJCX0sIC8qIDEyMSAqLwotCXsgMiwJMCwJc3lzX29zZl9zZXR0aW1lb2ZkYXksCSJvc2Zfc2V0dGltZW9mZGF5Igl9LCAvKiAxMjIgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgkJfSwgLyogMTIzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJCX0sIC8qIDEyNCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJCX0sIC8qIDEyNSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgkJfSwgLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCQl9LCAvKiAxMjcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJCX0sIC8qIDEyOCAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJCX0sIC8qIDEyOSAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCQl9LCAvKiAxMzAgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCQl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgkJfSwgLyogMTMyICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCQl9LCAvKiAxMzMgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCQl9LCAvKiAxMzQgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgkJfSwgLyogMTM1ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJCX0sIC8qIDEzNiAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCQl9LCAvKiAxMzcgKi8KLQl7IDIsCTAsCXN5c19vc2ZfdXRpbWVzLAkJIm9zZl91dGltZXMiCQl9LCAvKiAxMzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ3JldHVybiIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FkanRpbWUiCQl9LCAvKiAxNDAsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgkJfSwgLyogMTQxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2dldGhvc3RpZCIJCX0sIC8qIDE0Miwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldGhvc3RpZCIJCX0sIC8qIDE0Mywgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJCX0sIC8qIDE0NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCQl9LCAvKiAxNDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX2tpbGxwZyIJfSwgLyogMTQ2LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgkJfSwgLyogMTQ3ICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCQl9LCAvKiAxNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkcXVvdGEiCQl9LCAvKiAxNDksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgkJfSwgLyogMTUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MSIJCX0sIC8qIDE1MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIiCQl9LCAvKiAxNTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcGlkX2Jsb2NrIgkJfSwgLyogMTUzLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcGlkX3VuYmxvY2siCX0sIC8qIDE1NCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NSIJCX0sIC8qIDE1NSAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgkJfSwgLyogMTU2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NpZ3dhaXRwcmltIgl9LCAvKiAxNTcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uZnNzdmMiCQl9LCAvKiAxNTgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRkaXJlbnRyaWVzIgl9LCAvKiAxNTkgKi8KLQl7IDMsCTAsCW9zZl9zdGF0ZnMsCQkib3NmX3N0YXRmcyIJCX0sIC8qIDE2MCAqLwotCXsgMywJMCwJb3NmX2ZzdGF0ZnMsCQkib3NmX2ZzdGF0ZnMiCQl9LCAvKiAxNjEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTYyIgkJfSwgLyogMTYyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FzeW5jaF9kYWVtb24iCX0sIC8qIDE2Mywgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2dldGZoIgkJfSwgLyogMTY0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJvc2ZfZ2V0ZG9tYWlubmFtZSIJfSwgLyogMTY1ICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCQl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTY3IgkJfSwgLyogMTY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OCIJCX0sIC8qIDE2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9leHBvcnRmcyIJCX0sIC8qIDE2OSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MCIJCX0sIC8qIDE3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzEiCQl9LCAvKiAxNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTcyIgkJfSwgLyogMTcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MyIJCX0sIC8qIDE3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQiCQl9LCAvKiAxNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTc1IgkJfSwgLyogMTc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NiIJCX0sIC8qIDE3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzciCQl9LCAvKiAxNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTc4IgkJfSwgLyogMTc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OSIJCX0sIC8qIDE3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODAiCQl9LCAvKiAxODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfYWx0X3Bsb2NrIgkJfSwgLyogMTgxLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIgkJfSwgLyogMTgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIJCX0sIC8qIDE4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRtbnQiCQl9LCAvKiAxODQsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUiCQl9LCAvKiAxODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg2IgkJfSwgLyogMTg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FsdF9zaWdwZW5kaW5nIgl9LCAvKiAxODcsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9hbHRfc2V0c2lkIgl9LCAvKiAxODgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkiCQl9LCAvKiAxODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTkwIgkJfSwgLyogMTkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MSIJCX0sIC8qIDE5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTIiCQl9LCAvKiAxOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTkzIgkJfSwgLyogMTkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NCIJCX0sIC8qIDE5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTUiCQl9LCAvKiAxOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTk2IgkJfSwgLyogMTk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NyIJCX0sIC8qIDE5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTgiCQl9LCAvKiAxOTggKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJvc2Zfc3dhcG9uIgkJfSwgLyogMTk5ICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCQl9LCAvKiAyMDAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJCX0sIC8qIDIwMSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2IgkJfSwgLyogMjAyICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCQl9LCAvKiAyMDMgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJCX0sIC8qIDIwNCAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0IgkJfSwgLyogMjA1ICovCi0JeyA0LAlUSSwJcHJpbnRhcmdzLAkJInNlbW9wIgkJCX0sIC8qIDIwNiAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91dHNuYW1lIgkJfSwgLyogMjA3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDIwOCAqLwotCXsgMywJVEksCXByaW50YXJncywJCSJvc2Zfc2htYXQiCQl9LCAvKiAyMDkgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJCX0sIC8qIDIxMCAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCQl9LCAvKiAyMTEgKi8KLQl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJCX0sIC8qIDIxMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tdmFsaWQiCQl9LCAvKiAyMTMsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRhZGRyZXNzY29uZiIJfSwgLyogMjE0LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXNsZWVwIgkJfSwgLyogMjE1LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXdha2V1cCIJCX0sIC8qIDIxNiwgbm90IGltcGxlbWVudGVkICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQkJfSwgLyogMjE3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NpZ25hbCIJCX0sIC8qIDIxOCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3V0Y19nZXR0aW1lIgl9LCAvKiAyMTksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91dGNfYWRqdGltZSIJfSwgLyogMjIwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgkJfSwgLyogMjIxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NlY3VyaXR5IgkJfSwgLyogMjIyLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfa2xvYWRjYWxsIgkJfSwgLyogMjIzLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI0IgkJfSwgLyogMjI0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNSIJCX0sIC8qIDIyNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiCQl9LCAvKiAyMjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI3IgkJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOCIJCX0sIC8qIDIyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiCQl9LCAvKiAyMjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIgkJfSwgLyogMjMwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMSIJCX0sIC8qIDIzMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIiCQl9LCAvKiAyMzIgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCQl9LCAvKiAyMzMgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMjM0ICovCi0JeyA1LAkwLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJCX0sIC8qIDIzNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl93YWl0aWQiCQl9LCAvKiAyMzYsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wcmlvY250bHNldCIJfSwgLyogMjM3LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2lnc2VuZHNldCIJfSwgLyogMjM4LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2V0X3NwZWN1bGF0aXZlIgl9LCAvKiAyMzksIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tc2ZzX3N5c2NhbGwiCX0sIC8qIDI0MCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3N5c2luZm8iCQl9LCAvKiAyNDEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfdWFkbWluIgkJfSwgLyogMjQyLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfZnVzZXIiCQl9LCAvKiAyNDMsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wcm9wbGlzdF9zeXNjYWxsIgl9LCAvKiAyNDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbnRwX2FkanRpbWUiCX0sIC8qIDI0NSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX250cF9nZXR0aW1lIgl9LCAvKiAyNDYsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wYXRoY29uZiIJCX0sIC8qIDI0Nywgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ZwYXRoY29uZiIJCX0sIC8qIDI0OCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJCX0sIC8qIDI0OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91c3dpdGNoIgkJfSwgLyogMjUwLCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJvc2ZfdXNsZWVwX3RocmVhZCIJfSwgLyogMjUxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2F1ZGNudGwiCQl9LCAvKiAyNTIsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9hdWRnZW4iCQl9LCAvKiAyNTMsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJCX0sIC8qIDI1NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zdWJzeXNpbmZvIgl9LCAvKiAyNTUsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRzeXNpbmZvIgl9LCAvKiAyNTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2V0c3lzaW5mbyIJfSwgLyogMjU3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2Fmc19zeXNjYWxsIgl9LCAvKiAyNTgsIG5vdCBpbXBsZW1lbnRlZCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zd2FwY3RsIgkJfSwgLyogMjU5LCBub3QgaW1wbGVtZW50ZWQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbWVtY250bCIJCX0sIC8qIDI2MCwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ZkYXRhc3luYyIJCX0sIC8qIDI2MSwgbm90IGltcGxlbWVudGVkICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MiIJCX0sIC8qIDI2MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCQl9LCAvKiAyNjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY0IgkJfSwgLyogMjY0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NSIJCX0sIC8qIDI2NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCQl9LCAvKiAyNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY3IgkJfSwgLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OCIJCX0sIC8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCQl9LCAvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgkJfSwgLyogMjcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MSIJCX0sIC8qIDI3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCQl9LCAvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgkJfSwgLyogMjczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NCIJCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCQl9LCAvKiAyNzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2IgkJfSwgLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJCX0sIC8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCQl9LCAvKiAyNzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5IgkJfSwgLyogMjc5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MCIJCX0sIC8qIDI4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCQl9LCAvKiAyODEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgkJfSwgLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MyIJCX0sIC8qIDI4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCQl9LCAvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1IgkJfSwgLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJCX0sIC8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCQl9LCAvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4IgkJfSwgLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJCX0sIC8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCQl9LCAvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgkJfSwgLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJCX0sIC8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCQl9LCAvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0IgkJfSwgLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJCX0sIC8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCQl9LCAvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3IgkJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJCX0sIC8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCQl9LCAvKiAyOTkgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCQl9LCAvKiAzMDAgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZXRoYWUiCQl9LCAvKiAzMDEgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQkJfSwgLyogMzAyICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgzMiIJCX0sIC8qIDMwMyAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJCX0sIC8qIDMwNCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgkJfSwgLyogMzA1ICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCQl9LCAvKiAzMDYgKi8KLQl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgkJfSwgLyogMzA3ICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCQl9LCAvKiAzMDggKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMiCX0sIC8qIDMwOSAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCQl9LCAvKiAzMTAgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290IgkJfSwgLyogMzExICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJCX0sIC8qIDMxMiAqLwotCXsgMSwJMCwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCQl9LCAvKiAzMTMgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCQl9LCAvKiAzMTQgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCQl9LCAvKiAzMTUgKi8KLQl7IDEsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJCX0sIC8qIDMxNiAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJCX0sIC8qIDMxNyAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJCX0sIC8qIDMxOCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJzeXNjdGwiCQl9LCAvKiAzMTkgKi8KLQl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQkJfSwgLyogMzIwICovCi0JeyAxLAkwLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJCX0sIC8qIDMyMSAqLwotCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCQl9LCAvKiAzMjIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCQl9LCAvKiAzMjMgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5IgkJfSwgLyogMzI0ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCQl9LCAvKiAzMjUgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJCX0sIC8qIDMyNiAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJCX0sIC8qIDMyNyAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgkJfSwgLyogMzI4ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgkJfSwgLyogMzI5ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSIJfSwgLyogMzMwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSIJfSwgLyogMzMxICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIgl9LCAvKiAzMzIgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIiCX0sIC8qIDMzMyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCQl9LCAvKiAzMzQgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4Igl9LCAvKiAzMzUgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIgl9LCAvKiAzMzYgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCIJfSwgLyogMzM3ICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJCX0sIC8qIDMzOCAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJCX0sIC8qIDMzOSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCQl9LCAvKiAzNDAgKi8KLQl7IDUsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgkJfSwgLyogMzQxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDM0MiAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAzNDMgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMzQ0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3JlYWQiCX0sIC8qIDM0NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ193cml0ZSIJfSwgLyogMzQ2ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgkJfSwgLyogMzQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQkJfSwgLyogMzQ4ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJCX0sIC8qIDM0OSAqLwotCXsgNSwJVEYsCXN5c19wd3JpdGUsCQkicHdyaXRlIgkJfSwgLyogMzUwICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJCX0sIC8qIDM1MSAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCQl9LCAvKiAzNTIgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayIJfSwgLyogMzUzICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgkJfSwgLyogMzU0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCIJfSwgLyogMzU1ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywJInJ0X3NpZ3F1ZXVlaW5mbyIJfSwgLyogMzU2ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgkJfSwgLyogMzU3ICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJCX0sIC8qIDM1OCAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJCX0sIC8qIDM1OSAqLwotCXsgMywJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJCX0sIC8qIDM2MCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCQl9LCAvKiAzNjEgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgkJfSwgLyogMzYyICovCi0JeyAyLAkwLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJCX0sIC8qIDM2MyAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCQl9LCAvKiAzNjQgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQkJfSwgLyogMzY1ICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCQl9LCAvKiAzNjYgKi8KLQl7IDIsCTAsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgkJfSwgLyogMzY3ICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJCX0sIC8qIDM2OCAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCQl9LCAvKiAzNjkgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCQl9LCAvKiAzNzAgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXNnaWQiCQl9LCAvKiAzNzEgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXNnaWQiCQl9LCAvKiAzNzIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJkaXBjIgkJCX0sIC8qIDM3Mywgbm90IGltcGxlbWVudGVkICovCi0JeyAyLAlURiwJcHJpbnRhcmdzLAkJInBpdm90X3Jvb3QiCQl9LCAvKiAzNzQgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgkJfSwgLyogMzc1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX2lvYmFzZSIJfSwgLyogMzc2ICovCi0JeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0IgkJfSwgLyogMzc3ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgkJfSwgLyogMzc4ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJCX0sIC8qIDM3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCQl9LCAvKiAzODAgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCQl9LCAvKiAzODEgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCQl9LCAvKiAzODIgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgkJfSwgLyogMzgzICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJCX0sIC8qIDM4NCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJCX0sIC8qIDM4NSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCQl9LCAvKiAzODYgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgkJfSwgLyogMzg3ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCQl9LCAvKiAzODggKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCQl9LCAvKiAzODkgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCQl9LCAvKiAzOTAgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MSAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MiAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MyAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJCX0sIC8qIDM5NCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiCX0sIC8qIDM5NSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiCX0sIC8qIDM5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInR1eGNhbGwiCQl9LCAvKiAzOTcgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJCX0sIC8qIDM5OCAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJCX0sIC8qIDM5OSAqLwotCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCQl9LCAvKiA0MDAgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0IgkJfSwgLyogNDAxICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJCX0sIC8qIDQwMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDMiCQl9LCAvKiA0MDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfNDA0IgkJfSwgLyogNDA0ICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJCX0sIC8qIDQwNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIgl9LCAvKiA0MDYgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCQl9LCAvKiA0MDcgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgkJfSwgLyogNDA4ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0IgkJfSwgLyogNDA5ICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMiCX0sIC8qIDQxMCAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyIJfSwgLyogNDExICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkicmVzdGFydF9zeXNjYWxsIgl9LCAvKiA0MTIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJmYWR2aXNlIgkJfSwgLyogNDEzICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgkJfSwgLyogNDE0ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCQl9LCAvKiA0MTUgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJCX0sIC8qIDQxNiAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIgl9LCAvKiA0MTcgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCQl9LCAvKiA0MTggKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJCX0sIC8qIDQxOSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgkJfSwgLyogNDIwICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgkJfSwgLyogNDIxICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIgl9LCAvKiA0MjIgKi8KLQl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgkJfSwgLyogNDIzICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCQl9LCAvKiA0MjQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJCX0sIC8qIDQyNSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiA0MjYgKi8KLQl7IDIsCTAsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCQl9LCAvKiA0MjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJ2c2VydmVyIgkJfSwgLyogNDI4ID8/PyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm1iaW5kIgkJCX0sIC8qIDQyOSA/Pz8gKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJnZXRfbWVtcG9saWN5IgkJfSwgLyogNDMwID8/PyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF9tZW1wb2xpY3kiCQl9LCAvKiA0MzEgPz8/ICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgkJfSwgLyogNDMyICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJCX0sIC8qIDQzMyAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJCX0sIC8qIDQzNCAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIJfSwgLyogNDM1ICovCi0JeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJCX0sIC8qIDQzNiAqLwotCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgkJfSwgLyogNDM3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkid2FpdGlkIgkJfSwgLyogNDM4ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvZHVtbXkuaCBiL3N0cmFjZS9saW51eC9kdW1teS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTZjZDA1Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9kdW1teS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IGR1bW15LmgsdiAxLjE3IDIwMDQvMDQvMTYgMjE6NDg6NDQgcm9sYW5kIEV4cCAkCi0gKi8KLQotLyogc3RpbGwgdW5maW5pc2hlZCAqLwotI2RlZmluZQlzeXNfaW9wZXJtCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N5c2xvZwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19pb3BsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3ZtODZvbGQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0X2tlcm5lbF9zeW1zCXByaW50YXJncwotI2RlZmluZQlzeXNfYmRmbHVzaAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeXNmcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19hZnNfc3lzY2FsbAkJcHJpbnRhcmdzCi0KLS8qIG1hY2hpbmUtc3BlY2lmaWMgKi8KLSNpZm5kZWYgSTM4NgotI2RlZmluZQlzeXNfbW9kaWZ5X2xkdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19nZXRfdGhyZWFkX2FyZWEJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZXRfdGhyZWFkX2FyZWEJcHJpbnRhcmdzCi0jZW5kaWYKLQotI2RlZmluZSBzeXNfc2NoZWRfeWllbGQJCXByaW50YXJncwotI2RlZmluZSBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgotI2RlZmluZSBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsIHByaW50YXJncwotCi0vKiBsaWtlIGFub3RoZXIgY2FsbCAqLwotI2RlZmluZQlzeXNfdXNlbGliCQlzeXNfY2hkaXIKLSNkZWZpbmUJc3lzX3Vtb3VudAkJc3lzX2NoZGlyCi0jZGVmaW5lCXN5c19zd2Fwb24JCXN5c19jaGRpcgotI2RlZmluZQlzeXNfc3dhcG9mZgkJc3lzX2NoZGlyCi0jZGVmaW5lCXN5c19kZWxldGVfbW9kdWxlCXN5c19jaGRpcgotI2RlZmluZQlzeXNfZmNoZGlyCQlzeXNfY2xvc2UKLSNkZWZpbmUJc3lzX3NldGZzdWlkCQlzeXNfc2V0dWlkCi0jZGVmaW5lCXN5c19zZXRmc2dpZAkJc3lzX3NldGdpZAotI2RlZmluZSBzeXNfbmFub3NsZWVwCQlzeXNfYWRqdGltZQotI2RlZmluZQlzeXNfYWNjdAkJc3lzX2NoZGlyCi0jZGVmaW5lIHN5c19mZGF0YXN5bmMJCXN5c19jbG9zZQotI2RlZmluZSBzeXNfbWxvY2sJCXN5c19tdW5tYXAKLSNkZWZpbmUgc3lzX211bmxvY2sJCXN5c19tdW5tYXAKLSNkZWZpbmUgc3lzX2Nsb2NrX2dldHJlcwlzeXNfY2xvY2tfZ2V0dGltZQotI2RlZmluZSBzeXNfbXFfdW5saW5rCQlzeXNfdW5saW5rCi0KLS8qIHByaW50YXJncyBkb2VzIHRoZSByaWdodCB0aGluZyAqLwotI2RlZmluZQlzeXNfc2V0dXAJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cGlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldHVpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19wYXVzZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeW5jCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRldWlkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGVnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cHBpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwZ3JwCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHNpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c192aGFuZ3VwCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lkbGUJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cGdpZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tdW5sb2NrYWxsCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3RpbWVyX2dldG92ZXJydW4JcHJpbnRhcmdzCi0jZGVmaW5lIHN5c190aW1lcl9kZWxldGUJcHJpbnRhcmdzCi0KLS8qIHN1YmNhbGwgZW50cnkgcG9pbnRzICovCi0jZGVmaW5lCXN5c19zb2NrZXRjYWxsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lwYwkJCXByaW50YXJncwotCi0vKiB1bmltcGxlbWVudGVkICovCi0jZGVmaW5lCXN5c19zdHR5CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2d0dHkJCXByaW50YXJncwotI2RlZmluZQlzeXNfZnRpbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfcHJvZgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19waHlzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2xvY2sJCXByaW50YXJncwotI2RlZmluZQlzeXNfbXB4CQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c191bGltaXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfcHJvZmlsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3VzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2JyZWFrCQlwcmludGFyZ3MKLQotLyogZGVwcmVjYXRlZCAqLwotI2RlZmluZQlzeXNfb2xkdW5hbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfb2xkb2xkdW5hbWUJCXByaW50YXJncwotCi0vKiBubyBsaWJyYXJ5IHN1cHBvcnQgKi8KLSNpZm5kZWYgSEFWRV9TRU5ETVNHCi0jZGVmaW5lIHN5c19zZW5kbXNnCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3JlY3Ztc2cJCXByaW50YXJncwotI2VuZGlmCi0KLSNpZm5kZWYgU1lTX2dldHBtc2cKLSNkZWZpbmUgc3lzX2dldHBtc2cJCXByaW50YXJncwotI2VuZGlmCi0jaWZuZGVmIFNZU19wdXRwbXNnCi0jZGVmaW5lIHN5c19wdXRwbXNnCQlwcmludGFyZ3MKLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUCi0jZGVmaW5lIHN5c19vbGRzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZGZzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZGxzdGF0CQlwcmludGFyZ3MKLSNlbmRpZgotCi0jaWYgRE9ORQotI2RlZmluZSBzeXNfb2xkc2VsZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX21zeW5jCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Zsb2NrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldGRlbnRzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N0aW1lCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3RpbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfdGltZXMJCXByaW50YXJncwotI2RlZmluZQlzeXNfbW91bnQJCXByaW50YXJncwotI2RlZmluZQlzeXNfbmljZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tcHJvdGVjdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdwcm9jbWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19hZGp0aW1leAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zeXNpbmZvCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2lwYwkJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0ZG9tYWlubmFtZQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N0YXRmcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mc3RhdGZzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3B0cmFjZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdyZXR1cm4JCXByaW50YXJncwotI2RlZmluZQlzeXNfZnN5bmMJCXByaW50YXJncwotI2RlZmluZQlzeXNfYWxhcm0JCXByaW50YXJncwotI2RlZmluZQlzeXNfc29ja2V0Y2FsbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdzdXNwZW5kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3V0aW1lCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2JyawkJCXByaW50YXJncwotI2RlZmluZQlzeXNfbW1hcAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19tdW5tYXAJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2VsZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldHVpZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0cmV1aWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0cmVnaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0Z3JvdXBzCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NldGdyb3VwcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0cmxpbWl0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2dldHJ1c2FnZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19nZXRwcmlvcml0eQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRwcmlvcml0eQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRwZ2lkCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2FjY2VzcwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRob3N0bmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19yZWFkZGlyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3dhaXRwaWQJCXByaW50YXJncwotI2RlZmluZQlzeXNfd2FpdDQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZXhlY3ZlCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2ZvcmsJCXByaW50YXJncwotI2RlZmluZQlzeXNfdW5hbWUJCXByaW50YXJncwotI2RlZmluZQlzeXNfcGlwZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdnZXRtYXNrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ3NldG1hc2sJCXByaW50YXJncwotI2RlZmluZQlzeXNfZXhpdAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19raWxsCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3NpZ25hbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zaWdhY3Rpb24JCXByaW50YXJncwotI2RlZmluZQlzeXNfc2lncGVuZGluZwkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mY250bAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19kdXAJCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2R1cDIJCXByaW50YXJncwotI2RlZmluZQlzeXNfY2xvc2UJCXByaW50YXJncwotI2RlZmluZQlzeXNfaW9jdGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfcmVhZAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c193cml0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19vcGVuCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NyZWF0CQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2xpbmsJCXByaW50YXJncwotI2RlZmluZQlzeXNfdW5saW5rCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NoZGlyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX21rbm9kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2NobW9kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2Nob3duCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2xzZWVrCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3JlbmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19ta2RpcgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19ybWRpcgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c191bWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19jaHJvb3QJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZQlzeXNfc2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZQlzeXNfc3ltbGluawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19yZWFkbGluawkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c190cnVuY2F0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19mdHJ1bmNhdGUJCXByaW50YXJncwotI2RlZmluZQlzeXNfZmNobW9kCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX2ZjaG93bgkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19zZXRpdGltZXIJCXByaW50YXJncwotI2RlZmluZQlzeXNfZ2V0aXRpbWVyCQlwcmludGFyZ3MKLSNkZWZpbmUJc3lzX3N0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfbHN0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfZnN0YXQJCXByaW50YXJncwotI2RlZmluZQlzeXNfcGVyc29uYWxpdHkJCXByaW50YXJncwotI2RlZmluZSBzeXNfcG9sbAkJcHJpbnRhcmdzCi0jZGVmaW5lCXN5c19jcmVhdGVfbW9kdWxlCXByaW50YXJncwotI2RlZmluZQlzeXNfaW5pdF9tb2R1bGUJCXByaW50YXJncwotI2RlZmluZQlzeXNfcXVvdGFjdGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfbWxvY2thbGwJCXByaW50YXJncwotI2RlZmluZQlzeXNfcmVib290CQlwcmludGFyZ3MKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvZXJybm9lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhiMmFkYy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvZXJybm9lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDUyOSArMCwwIEBACi0JIkVSUk5PXzAiLCAvKiAwICovCi0JIkVQRVJNIiwgLyogMSAqLwotCSJFTk9FTlQiLCAvKiAyICovCi0JIkVTUkNIIiwgLyogMyAqLwotCSJFSU5UUiIsIC8qIDQgKi8KLQkiRUlPIiwgLyogNSAqLwotCSJFTlhJTyIsIC8qIDYgKi8KLQkiRTJCSUciLCAvKiA3ICovCi0JIkVOT0VYRUMiLCAvKiA4ICovCi0JIkVCQURGIiwgLyogOSAqLwotCSJFQ0hJTEQiLCAvKiAxMCAqLwotCSJFQUdBSU4iLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVERUFETEsiLCAvKiAzNSAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiAzNiAqLwotCSJFTk9MQ0siLCAvKiAzNyAqLwotCSJFTk9TWVMiLCAvKiAzOCAqLwotCSJFTk9URU1QVFkiLCAvKiAzOSAqLwotCSJFTE9PUCIsIC8qIDQwICovCi0JIkVSUk5PXzQxIiwgLyogNDEgKi8KLQkiRU5PTVNHIiwgLyogNDIgKi8KLQkiRUlEUk0iLCAvKiA0MyAqLwotCSJFQ0hSTkciLCAvKiA0NCAqLwotCSJFTDJOU1lOQyIsIC8qIDQ1ICovCi0JIkVMM0hMVCIsIC8qIDQ2ICovCi0JIkVMM1JTVCIsIC8qIDQ3ICovCi0JIkVMTlJORyIsIC8qIDQ4ICovCi0JIkVVTkFUQ0giLCAvKiA0OSAqLwotCSJFTk9DU0kiLCAvKiA1MCAqLwotCSJFTDJITFQiLCAvKiA1MSAqLwotCSJFQkFERSIsIC8qIDUyICovCi0JIkVCQURSIiwgLyogNTMgKi8KLQkiRVhGVUxMIiwgLyogNTQgKi8KLQkiRU5PQU5PIiwgLyogNTUgKi8KLQkiRUJBRFJRQyIsIC8qIDU2ICovCi0JIkVCQURTTFQiLCAvKiA1NyAqLwotCSJFUlJOT181OCIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFTVVMVElIT1AiLCAvKiA3MiAqLwotCSJFRE9URE9UIiwgLyogNzMgKi8KLQkiRUJBRE1TRyIsIC8qIDc0ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc1ICovCi0JIkVOT1RVTklRIiwgLyogNzYgKi8KLQkiRUJBREZEIiwgLyogNzcgKi8KLQkiRVJFTUNIRyIsIC8qIDc4ICovCi0JIkVMSUJBQ0MiLCAvKiA3OSAqLwotCSJFTElCQkFEIiwgLyogODAgKi8KLQkiRUxJQlNDTiIsIC8qIDgxICovCi0JIkVMSUJNQVgiLCAvKiA4MiAqLwotCSJFTElCRVhFQyIsIC8qIDgzICovCi0JIkVJTFNFUSIsIC8qIDg0ICovCi0JIkVSRVNUQVJUIiwgLyogODUgKi8KLQkiRVNUUlBJUEUiLCAvKiA4NiAqLwotCSJFVVNFUlMiLCAvKiA4NyAqLwotCSJFTk9UU09DSyIsIC8qIDg4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCi0JIkVNU0dTSVpFIiwgLyogOTAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDkxICovCi0JIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA5OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KLQkiRU5FVERPV04iLCAvKiAxMDAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KLQkiRU5FVFJFU0VUIiwgLyogMTAyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLwotCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCi0JIkVOT0JVRlMiLCAvKiAxMDUgKi8KLQkiRUlTQ09OTiIsIC8qIDEwNiAqLwotCSJFTk9UQ09OTiIsIC8qIDEwNyAqLwotCSJFU0hVVERPV04iLCAvKiAxMDggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDExMCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KLQkiRUhPU1RET1dOIiwgLyogMTEyICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLwotCSJFQUxSRUFEWSIsIC8qIDExNCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLwotCSJFU1RBTEUiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFRFFVT1QiLCAvKiAxMjIgKi8KLQkiRU5PTUVESVVNIiwgLyogMTIzICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCi0JIkVSUk5PXzEyNSIsIC8qIDEyNSAqLwotCSJFUlJOT18xMjYiLCAvKiAxMjYgKi8KLQkiRVJSTk9fMTI3IiwgLyogMTI3ICovCi0JIkVSUk5PXzEyOCIsIC8qIDEyOCAqLwotCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KLQkiRVJSTk9fMTMwIiwgLyogMTMwICovCi0JIkVSUk5PXzEzMSIsIC8qIDEzMSAqLwotCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KLQkiRVJSTk9fMTMzIiwgLyogMTMzICovCi0JIkVSUk5PXzEzNCIsIC8qIDEzNCAqLwotCSJFUlJOT18xMzUiLCAvKiAxMzUgKi8KLQkiRVJSTk9fMTM2IiwgLyogMTM2ICovCi0JIkVSUk5PXzEzNyIsIC8qIDEzNyAqLwotCSJFUlJOT18xMzgiLCAvKiAxMzggKi8KLQkiRVJSTk9fMTM5IiwgLyogMTM5ICovCi0JIkVSUk5PXzE0MCIsIC8qIDE0MCAqLwotCSJFUlJOT18xNDEiLCAvKiAxNDEgKi8KLQkiRVJSTk9fMTQyIiwgLyogMTQyICovCi0JIkVSUk5PXzE0MyIsIC8qIDE0MyAqLwotCSJFUlJOT18xNDQiLCAvKiAxNDQgKi8KLQkiRVJSTk9fMTQ1IiwgLyogMTQ1ICovCi0JIkVSUk5PXzE0NiIsIC8qIDE0NiAqLwotCSJFUlJOT18xNDciLCAvKiAxNDcgKi8KLQkiRVJSTk9fMTQ4IiwgLyogMTQ4ICovCi0JIkVSUk5PXzE0OSIsIC8qIDE0OSAqLwotCSJFUlJOT18xNTAiLCAvKiAxNTAgKi8KLQkiRVJSTk9fMTUxIiwgLyogMTUxICovCi0JIkVSUk5PXzE1MiIsIC8qIDE1MiAqLwotCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KLQkiRVJSTk9fMTU0IiwgLyogMTU0ICovCi0JIkVSUk5PXzE1NSIsIC8qIDE1NSAqLwotCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KLQkiRVJSTk9fMTU3IiwgLyogMTU3ICovCi0JIkVSUk5PXzE1OCIsIC8qIDE1OCAqLwotCSJFUlJOT18xNTkiLCAvKiAxNTkgKi8KLQkiRVJSTk9fMTYwIiwgLyogMTYwICovCi0JIkVSUk5PXzE2MSIsIC8qIDE2MSAqLwotCSJFUlJOT18xNjIiLCAvKiAxNjIgKi8KLQkiRVJSTk9fMTYzIiwgLyogMTYzICovCi0JIkVSUk5PXzE2NCIsIC8qIDE2NCAqLwotCSJFUlJOT18xNjUiLCAvKiAxNjUgKi8KLQkiRVJSTk9fMTY2IiwgLyogMTY2ICovCi0JIkVSUk5PXzE2NyIsIC8qIDE2NyAqLwotCSJFUlJOT18xNjgiLCAvKiAxNjggKi8KLQkiRVJSTk9fMTY5IiwgLyogMTY5ICovCi0JIkVSUk5PXzE3MCIsIC8qIDE3MCAqLwotCSJFUlJOT18xNzEiLCAvKiAxNzEgKi8KLQkiRVJSTk9fMTcyIiwgLyogMTcyICovCi0JIkVSUk5PXzE3MyIsIC8qIDE3MyAqLwotCSJFUlJOT18xNzQiLCAvKiAxNzQgKi8KLQkiRVJSTk9fMTc1IiwgLyogMTc1ICovCi0JIkVSUk5PXzE3NiIsIC8qIDE3NiAqLwotCSJFUlJOT18xNzciLCAvKiAxNzcgKi8KLQkiRVJSTk9fMTc4IiwgLyogMTc4ICovCi0JIkVSUk5PXzE3OSIsIC8qIDE3OSAqLwotCSJFUlJOT18xODAiLCAvKiAxODAgKi8KLQkiRVJSTk9fMTgxIiwgLyogMTgxICovCi0JIkVSUk5PXzE4MiIsIC8qIDE4MiAqLwotCSJFUlJOT18xODMiLCAvKiAxODMgKi8KLQkiRVJSTk9fMTg0IiwgLyogMTg0ICovCi0JIkVSUk5PXzE4NSIsIC8qIDE4NSAqLwotCSJFUlJOT18xODYiLCAvKiAxODYgKi8KLQkiRVJSTk9fMTg3IiwgLyogMTg3ICovCi0JIkVSUk5PXzE4OCIsIC8qIDE4OCAqLwotCSJFUlJOT18xODkiLCAvKiAxODkgKi8KLQkiRVJSTk9fMTkwIiwgLyogMTkwICovCi0JIkVSUk5PXzE5MSIsIC8qIDE5MSAqLwotCSJFUlJOT18xOTIiLCAvKiAxOTIgKi8KLQkiRVJSTk9fMTkzIiwgLyogMTkzICovCi0JIkVSUk5PXzE5NCIsIC8qIDE5NCAqLwotCSJFUlJOT18xOTUiLCAvKiAxOTUgKi8KLQkiRVJSTk9fMTk2IiwgLyogMTk2ICovCi0JIkVSUk5PXzE5NyIsIC8qIDE5NyAqLwotCSJFUlJOT18xOTgiLCAvKiAxOTggKi8KLQkiRVJSTk9fMTk5IiwgLyogMTk5ICovCi0JIkVSUk5PXzIwMCIsIC8qIDIwMCAqLwotCSJFUlJOT18yMDEiLCAvKiAyMDEgKi8KLQkiRVJSTk9fMjAyIiwgLyogMjAyICovCi0JIkVSUk5PXzIwMyIsIC8qIDIwMyAqLwotCSJFUlJOT18yMDQiLCAvKiAyMDQgKi8KLQkiRVJSTk9fMjA1IiwgLyogMjA1ICovCi0JIkVSUk5PXzIwNiIsIC8qIDIwNiAqLwotCSJFUlJOT18yMDciLCAvKiAyMDcgKi8KLQkiRVJSTk9fMjA4IiwgLyogMjA4ICovCi0JIkVSUk5PXzIwOSIsIC8qIDIwOSAqLwotCSJFUlJOT18yMTAiLCAvKiAyMTAgKi8KLQkiRVJSTk9fMjExIiwgLyogMjExICovCi0JIkVSUk5PXzIxMiIsIC8qIDIxMiAqLwotCSJFUlJOT18yMTMiLCAvKiAyMTMgKi8KLQkiRVJSTk9fMjE0IiwgLyogMjE0ICovCi0JIkVSUk5PXzIxNSIsIC8qIDIxNSAqLwotCSJFUlJOT18yMTYiLCAvKiAyMTYgKi8KLQkiRVJSTk9fMjE3IiwgLyogMjE3ICovCi0JIkVSUk5PXzIxOCIsIC8qIDIxOCAqLwotCSJFUlJOT18yMTkiLCAvKiAyMTkgKi8KLQkiRVJSTk9fMjIwIiwgLyogMjIwICovCi0JIkVSUk5PXzIyMSIsIC8qIDIyMSAqLwotCSJFUlJOT18yMjIiLCAvKiAyMjIgKi8KLQkiRVJSTk9fMjIzIiwgLyogMjIzICovCi0JIkVSUk5PXzIyNCIsIC8qIDIyNCAqLwotCSJFUlJOT18yMjUiLCAvKiAyMjUgKi8KLQkiRVJSTk9fMjI2IiwgLyogMjI2ICovCi0JIkVSUk5PXzIyNyIsIC8qIDIyNyAqLwotCSJFUlJOT18yMjgiLCAvKiAyMjggKi8KLQkiRVJSTk9fMjI5IiwgLyogMjI5ICovCi0JIkVSUk5PXzIzMCIsIC8qIDIzMCAqLwotCSJFUlJOT18yMzEiLCAvKiAyMzEgKi8KLQkiRVJSTk9fMjMyIiwgLyogMjMyICovCi0JIkVSUk5PXzIzMyIsIC8qIDIzMyAqLwotCSJFUlJOT18yMzQiLCAvKiAyMzQgKi8KLQkiRVJSTk9fMjM1IiwgLyogMjM1ICovCi0JIkVSUk5PXzIzNiIsIC8qIDIzNiAqLwotCSJFUlJOT18yMzciLCAvKiAyMzcgKi8KLQkiRVJSTk9fMjM4IiwgLyogMjM4ICovCi0JIkVSUk5PXzIzOSIsIC8qIDIzOSAqLwotCSJFUlJOT18yNDAiLCAvKiAyNDAgKi8KLQkiRVJSTk9fMjQxIiwgLyogMjQxICovCi0JIkVSUk5PXzI0MiIsIC8qIDI0MiAqLwotCSJFUlJOT18yNDMiLCAvKiAyNDMgKi8KLQkiRVJSTk9fMjQ0IiwgLyogMjQ0ICovCi0JIkVSUk5PXzI0NSIsIC8qIDI0NSAqLwotCSJFUlJOT18yNDYiLCAvKiAyNDYgKi8KLQkiRVJSTk9fMjQ3IiwgLyogMjQ3ICovCi0JIkVSUk5PXzI0OCIsIC8qIDI0OCAqLwotCSJFUlJOT18yNDkiLCAvKiAyNDkgKi8KLQkiRVJSTk9fMjUwIiwgLyogMjUwICovCi0JIkVSUk5PXzI1MSIsIC8qIDI1MSAqLwotCSJFUlJOT18yNTIiLCAvKiAyNTIgKi8KLQkiRVJSTk9fMjUzIiwgLyogMjUzICovCi0JIkVSUk5PXzI1NCIsIC8qIDI1NCAqLwotCSJFUlJOT18yNTUiLCAvKiAyNTUgKi8KLQkiRVJSTk9fMjU2IiwgLyogMjU2ICovCi0JIkVSUk5PXzI1NyIsIC8qIDI1NyAqLwotCSJFUlJOT18yNTgiLCAvKiAyNTggKi8KLQkiRVJSTk9fMjU5IiwgLyogMjU5ICovCi0JIkVSUk5PXzI2MCIsIC8qIDI2MCAqLwotCSJFUlJOT18yNjEiLCAvKiAyNjEgKi8KLQkiRVJSTk9fMjYyIiwgLyogMjYyICovCi0JIkVSUk5PXzI2MyIsIC8qIDI2MyAqLwotCSJFUlJOT18yNjQiLCAvKiAyNjQgKi8KLQkiRVJSTk9fMjY1IiwgLyogMjY1ICovCi0JIkVSUk5PXzI2NiIsIC8qIDI2NiAqLwotCSJFUlJOT18yNjciLCAvKiAyNjcgKi8KLQkiRVJSTk9fMjY4IiwgLyogMjY4ICovCi0JIkVSUk5PXzI2OSIsIC8qIDI2OSAqLwotCSJFUlJOT18yNzAiLCAvKiAyNzAgKi8KLQkiRVJSTk9fMjcxIiwgLyogMjcxICovCi0JIkVSUk5PXzI3MiIsIC8qIDI3MiAqLwotCSJFUlJOT18yNzMiLCAvKiAyNzMgKi8KLQkiRVJSTk9fMjc0IiwgLyogMjc0ICovCi0JIkVSUk5PXzI3NSIsIC8qIDI3NSAqLwotCSJFUlJOT18yNzYiLCAvKiAyNzYgKi8KLQkiRVJSTk9fMjc3IiwgLyogMjc3ICovCi0JIkVSUk5PXzI3OCIsIC8qIDI3OCAqLwotCSJFUlJOT18yNzkiLCAvKiAyNzkgKi8KLQkiRVJSTk9fMjgwIiwgLyogMjgwICovCi0JIkVSUk5PXzI4MSIsIC8qIDI4MSAqLwotCSJFUlJOT18yODIiLCAvKiAyODIgKi8KLQkiRVJSTk9fMjgzIiwgLyogMjgzICovCi0JIkVSUk5PXzI4NCIsIC8qIDI4NCAqLwotCSJFUlJOT18yODUiLCAvKiAyODUgKi8KLQkiRVJSTk9fMjg2IiwgLyogMjg2ICovCi0JIkVSUk5PXzI4NyIsIC8qIDI4NyAqLwotCSJFUlJOT18yODgiLCAvKiAyODggKi8KLQkiRVJSTk9fMjg5IiwgLyogMjg5ICovCi0JIkVSUk5PXzI5MCIsIC8qIDI5MCAqLwotCSJFUlJOT18yOTEiLCAvKiAyOTEgKi8KLQkiRVJSTk9fMjkyIiwgLyogMjkyICovCi0JIkVSUk5PXzI5MyIsIC8qIDI5MyAqLwotCSJFUlJOT18yOTQiLCAvKiAyOTQgKi8KLQkiRVJSTk9fMjk1IiwgLyogMjk1ICovCi0JIkVSUk5PXzI5NiIsIC8qIDI5NiAqLwotCSJFUlJOT18yOTciLCAvKiAyOTcgKi8KLQkiRVJSTk9fMjk4IiwgLyogMjk4ICovCi0JIkVSUk5PXzI5OSIsIC8qIDI5OSAqLwotCSJFUlJOT18zMDAiLCAvKiAzMDAgKi8KLQkiRVJSTk9fMzAxIiwgLyogMzAxICovCi0JIkVSUk5PXzMwMiIsIC8qIDMwMiAqLwotCSJFUlJOT18zMDMiLCAvKiAzMDMgKi8KLQkiRVJSTk9fMzA0IiwgLyogMzA0ICovCi0JIkVSUk5PXzMwNSIsIC8qIDMwNSAqLwotCSJFUlJOT18zMDYiLCAvKiAzMDYgKi8KLQkiRVJSTk9fMzA3IiwgLyogMzA3ICovCi0JIkVSUk5PXzMwOCIsIC8qIDMwOCAqLwotCSJFUlJOT18zMDkiLCAvKiAzMDkgKi8KLQkiRVJSTk9fMzEwIiwgLyogMzEwICovCi0JIkVSUk5PXzMxMSIsIC8qIDMxMSAqLwotCSJFUlJOT18zMTIiLCAvKiAzMTIgKi8KLQkiRVJSTk9fMzEzIiwgLyogMzEzICovCi0JIkVSUk5PXzMxNCIsIC8qIDMxNCAqLwotCSJFUlJOT18zMTUiLCAvKiAzMTUgKi8KLQkiRVJSTk9fMzE2IiwgLyogMzE2ICovCi0JIkVSUk5PXzMxNyIsIC8qIDMxNyAqLwotCSJFUlJOT18zMTgiLCAvKiAzMTggKi8KLQkiRVJSTk9fMzE5IiwgLyogMzE5ICovCi0JIkVSUk5PXzMyMCIsIC8qIDMyMCAqLwotCSJFUlJOT18zMjEiLCAvKiAzMjEgKi8KLQkiRVJSTk9fMzIyIiwgLyogMzIyICovCi0JIkVSUk5PXzMyMyIsIC8qIDMyMyAqLwotCSJFUlJOT18zMjQiLCAvKiAzMjQgKi8KLQkiRVJSTk9fMzI1IiwgLyogMzI1ICovCi0JIkVSUk5PXzMyNiIsIC8qIDMyNiAqLwotCSJFUlJOT18zMjciLCAvKiAzMjcgKi8KLQkiRVJSTk9fMzI4IiwgLyogMzI4ICovCi0JIkVSUk5PXzMyOSIsIC8qIDMyOSAqLwotCSJFUlJOT18zMzAiLCAvKiAzMzAgKi8KLQkiRVJSTk9fMzMxIiwgLyogMzMxICovCi0JIkVSUk5PXzMzMiIsIC8qIDMzMiAqLwotCSJFUlJOT18zMzMiLCAvKiAzMzMgKi8KLQkiRVJSTk9fMzM0IiwgLyogMzM0ICovCi0JIkVSUk5PXzMzNSIsIC8qIDMzNSAqLwotCSJFUlJOT18zMzYiLCAvKiAzMzYgKi8KLQkiRVJSTk9fMzM3IiwgLyogMzM3ICovCi0JIkVSUk5PXzMzOCIsIC8qIDMzOCAqLwotCSJFUlJOT18zMzkiLCAvKiAzMzkgKi8KLQkiRVJSTk9fMzQwIiwgLyogMzQwICovCi0JIkVSUk5PXzM0MSIsIC8qIDM0MSAqLwotCSJFUlJOT18zNDIiLCAvKiAzNDIgKi8KLQkiRVJSTk9fMzQzIiwgLyogMzQzICovCi0JIkVSUk5PXzM0NCIsIC8qIDM0NCAqLwotCSJFUlJOT18zNDUiLCAvKiAzNDUgKi8KLQkiRVJSTk9fMzQ2IiwgLyogMzQ2ICovCi0JIkVSUk5PXzM0NyIsIC8qIDM0NyAqLwotCSJFUlJOT18zNDgiLCAvKiAzNDggKi8KLQkiRVJSTk9fMzQ5IiwgLyogMzQ5ICovCi0JIkVSUk5PXzM1MCIsIC8qIDM1MCAqLwotCSJFUlJOT18zNTEiLCAvKiAzNTEgKi8KLQkiRVJSTk9fMzUyIiwgLyogMzUyICovCi0JIkVSUk5PXzM1MyIsIC8qIDM1MyAqLwotCSJFUlJOT18zNTQiLCAvKiAzNTQgKi8KLQkiRVJSTk9fMzU1IiwgLyogMzU1ICovCi0JIkVSUk5PXzM1NiIsIC8qIDM1NiAqLwotCSJFUlJOT18zNTciLCAvKiAzNTcgKi8KLQkiRVJSTk9fMzU4IiwgLyogMzU4ICovCi0JIkVSUk5PXzM1OSIsIC8qIDM1OSAqLwotCSJFUlJOT18zNjAiLCAvKiAzNjAgKi8KLQkiRVJSTk9fMzYxIiwgLyogMzYxICovCi0JIkVSUk5PXzM2MiIsIC8qIDM2MiAqLwotCSJFUlJOT18zNjMiLCAvKiAzNjMgKi8KLQkiRVJSTk9fMzY0IiwgLyogMzY0ICovCi0JIkVSUk5PXzM2NSIsIC8qIDM2NSAqLwotCSJFUlJOT18zNjYiLCAvKiAzNjYgKi8KLQkiRVJSTk9fMzY3IiwgLyogMzY3ICovCi0JIkVSUk5PXzM2OCIsIC8qIDM2OCAqLwotCSJFUlJOT18zNjkiLCAvKiAzNjkgKi8KLQkiRVJSTk9fMzcwIiwgLyogMzcwICovCi0JIkVSUk5PXzM3MSIsIC8qIDM3MSAqLwotCSJFUlJOT18zNzIiLCAvKiAzNzIgKi8KLQkiRVJSTk9fMzczIiwgLyogMzczICovCi0JIkVSUk5PXzM3NCIsIC8qIDM3NCAqLwotCSJFUlJOT18zNzUiLCAvKiAzNzUgKi8KLQkiRVJSTk9fMzc2IiwgLyogMzc2ICovCi0JIkVSUk5PXzM3NyIsIC8qIDM3NyAqLwotCSJFUlJOT18zNzgiLCAvKiAzNzggKi8KLQkiRVJSTk9fMzc5IiwgLyogMzc5ICovCi0JIkVSUk5PXzM4MCIsIC8qIDM4MCAqLwotCSJFUlJOT18zODEiLCAvKiAzODEgKi8KLQkiRVJSTk9fMzgyIiwgLyogMzgyICovCi0JIkVSUk5PXzM4MyIsIC8qIDM4MyAqLwotCSJFUlJOT18zODQiLCAvKiAzODQgKi8KLQkiRVJSTk9fMzg1IiwgLyogMzg1ICovCi0JIkVSUk5PXzM4NiIsIC8qIDM4NiAqLwotCSJFUlJOT18zODciLCAvKiAzODcgKi8KLQkiRVJSTk9fMzg4IiwgLyogMzg4ICovCi0JIkVSUk5PXzM4OSIsIC8qIDM4OSAqLwotCSJFUlJOT18zOTAiLCAvKiAzOTAgKi8KLQkiRVJSTk9fMzkxIiwgLyogMzkxICovCi0JIkVSUk5PXzM5MiIsIC8qIDM5MiAqLwotCSJFUlJOT18zOTMiLCAvKiAzOTMgKi8KLQkiRVJSTk9fMzk0IiwgLyogMzk0ICovCi0JIkVSUk5PXzM5NSIsIC8qIDM5NSAqLwotCSJFUlJOT18zOTYiLCAvKiAzOTYgKi8KLQkiRVJSTk9fMzk3IiwgLyogMzk3ICovCi0JIkVSUk5PXzM5OCIsIC8qIDM5OCAqLwotCSJFUlJOT18zOTkiLCAvKiAzOTkgKi8KLQkiRVJSTk9fNDAwIiwgLyogNDAwICovCi0JIkVSUk5PXzQwMSIsIC8qIDQwMSAqLwotCSJFUlJOT180MDIiLCAvKiA0MDIgKi8KLQkiRVJSTk9fNDAzIiwgLyogNDAzICovCi0JIkVSUk5PXzQwNCIsIC8qIDQwNCAqLwotCSJFUlJOT180MDUiLCAvKiA0MDUgKi8KLQkiRVJSTk9fNDA2IiwgLyogNDA2ICovCi0JIkVSUk5PXzQwNyIsIC8qIDQwNyAqLwotCSJFUlJOT180MDgiLCAvKiA0MDggKi8KLQkiRVJSTk9fNDA5IiwgLyogNDA5ICovCi0JIkVSUk5PXzQxMCIsIC8qIDQxMCAqLwotCSJFUlJOT180MTEiLCAvKiA0MTEgKi8KLQkiRVJSTk9fNDEyIiwgLyogNDEyICovCi0JIkVSUk5PXzQxMyIsIC8qIDQxMyAqLwotCSJFUlJOT180MTQiLCAvKiA0MTQgKi8KLQkiRVJSTk9fNDE1IiwgLyogNDE1ICovCi0JIkVSUk5PXzQxNiIsIC8qIDQxNiAqLwotCSJFUlJOT180MTciLCAvKiA0MTcgKi8KLQkiRVJSTk9fNDE4IiwgLyogNDE4ICovCi0JIkVSUk5PXzQxOSIsIC8qIDQxOSAqLwotCSJFUlJOT180MjAiLCAvKiA0MjAgKi8KLQkiRVJSTk9fNDIxIiwgLyogNDIxICovCi0JIkVSUk5PXzQyMiIsIC8qIDQyMiAqLwotCSJFUlJOT180MjMiLCAvKiA0MjMgKi8KLQkiRVJSTk9fNDI0IiwgLyogNDI0ICovCi0JIkVSUk5PXzQyNSIsIC8qIDQyNSAqLwotCSJFUlJOT180MjYiLCAvKiA0MjYgKi8KLQkiRVJSTk9fNDI3IiwgLyogNDI3ICovCi0JIkVSUk5PXzQyOCIsIC8qIDQyOCAqLwotCSJFUlJOT180MjkiLCAvKiA0MjkgKi8KLQkiRVJSTk9fNDMwIiwgLyogNDMwICovCi0JIkVSUk5PXzQzMSIsIC8qIDQzMSAqLwotCSJFUlJOT180MzIiLCAvKiA0MzIgKi8KLQkiRVJSTk9fNDMzIiwgLyogNDMzICovCi0JIkVSUk5PXzQzNCIsIC8qIDQzNCAqLwotCSJFUlJOT180MzUiLCAvKiA0MzUgKi8KLQkiRVJSTk9fNDM2IiwgLyogNDM2ICovCi0JIkVSUk5PXzQzNyIsIC8qIDQzNyAqLwotCSJFUlJOT180MzgiLCAvKiA0MzggKi8KLQkiRVJSTk9fNDM5IiwgLyogNDM5ICovCi0JIkVSUk5PXzQ0MCIsIC8qIDQ0MCAqLwotCSJFUlJOT180NDEiLCAvKiA0NDEgKi8KLQkiRVJSTk9fNDQyIiwgLyogNDQyICovCi0JIkVSUk5PXzQ0MyIsIC8qIDQ0MyAqLwotCSJFUlJOT180NDQiLCAvKiA0NDQgKi8KLQkiRVJSTk9fNDQ1IiwgLyogNDQ1ICovCi0JIkVSUk5PXzQ0NiIsIC8qIDQ0NiAqLwotCSJFUlJOT180NDciLCAvKiA0NDcgKi8KLQkiRVJSTk9fNDQ4IiwgLyogNDQ4ICovCi0JIkVSUk5PXzQ0OSIsIC8qIDQ0OSAqLwotCSJFUlJOT180NTAiLCAvKiA0NTAgKi8KLQkiRVJSTk9fNDUxIiwgLyogNDUxICovCi0JIkVSUk5PXzQ1MiIsIC8qIDQ1MiAqLwotCSJFUlJOT180NTMiLCAvKiA0NTMgKi8KLQkiRVJSTk9fNDU0IiwgLyogNDU0ICovCi0JIkVSUk5PXzQ1NSIsIC8qIDQ1NSAqLwotCSJFUlJOT180NTYiLCAvKiA0NTYgKi8KLQkiRVJSTk9fNDU3IiwgLyogNDU3ICovCi0JIkVSUk5PXzQ1OCIsIC8qIDQ1OCAqLwotCSJFUlJOT180NTkiLCAvKiA0NTkgKi8KLQkiRVJSTk9fNDYwIiwgLyogNDYwICovCi0JIkVSUk5PXzQ2MSIsIC8qIDQ2MSAqLwotCSJFUlJOT180NjIiLCAvKiA0NjIgKi8KLQkiRVJSTk9fNDYzIiwgLyogNDYzICovCi0JIkVSUk5PXzQ2NCIsIC8qIDQ2NCAqLwotCSJFUlJOT180NjUiLCAvKiA0NjUgKi8KLQkiRVJSTk9fNDY2IiwgLyogNDY2ICovCi0JIkVSUk5PXzQ2NyIsIC8qIDQ2NyAqLwotCSJFUlJOT180NjgiLCAvKiA0NjggKi8KLQkiRVJSTk9fNDY5IiwgLyogNDY5ICovCi0JIkVSUk5PXzQ3MCIsIC8qIDQ3MCAqLwotCSJFUlJOT180NzEiLCAvKiA0NzEgKi8KLQkiRVJSTk9fNDcyIiwgLyogNDcyICovCi0JIkVSUk5PXzQ3MyIsIC8qIDQ3MyAqLwotCSJFUlJOT180NzQiLCAvKiA0NzQgKi8KLQkiRVJSTk9fNDc1IiwgLyogNDc1ICovCi0JIkVSUk5PXzQ3NiIsIC8qIDQ3NiAqLwotCSJFUlJOT180NzciLCAvKiA0NzcgKi8KLQkiRVJSTk9fNDc4IiwgLyogNDc4ICovCi0JIkVSUk5PXzQ3OSIsIC8qIDQ3OSAqLwotCSJFUlJOT180ODAiLCAvKiA0ODAgKi8KLQkiRVJSTk9fNDgxIiwgLyogNDgxICovCi0JIkVSUk5PXzQ4MiIsIC8qIDQ4MiAqLwotCSJFUlJOT180ODMiLCAvKiA0ODMgKi8KLQkiRVJSTk9fNDg0IiwgLyogNDg0ICovCi0JIkVSUk5PXzQ4NSIsIC8qIDQ4NSAqLwotCSJFUlJOT180ODYiLCAvKiA0ODYgKi8KLQkiRVJSTk9fNDg3IiwgLyogNDg3ICovCi0JIkVSUk5PXzQ4OCIsIC8qIDQ4OCAqLwotCSJFUlJOT180ODkiLCAvKiA0ODkgKi8KLQkiRVJSTk9fNDkwIiwgLyogNDkwICovCi0JIkVSUk5PXzQ5MSIsIC8qIDQ5MSAqLwotCSJFUlJOT180OTIiLCAvKiA0OTIgKi8KLQkiRVJSTk9fNDkzIiwgLyogNDkzICovCi0JIkVSUk5PXzQ5NCIsIC8qIDQ5NCAqLwotCSJFUlJOT180OTUiLCAvKiA0OTUgKi8KLQkiRVJSTk9fNDk2IiwgLyogNDk2ICovCi0JIkVSUk5PXzQ5NyIsIC8qIDQ5NyAqLwotCSJFUlJOT180OTgiLCAvKiA0OTggKi8KLQkiRVJSTk9fNDk5IiwgLyogNDk5ICovCi0JIkVSUk5PXzUwMCIsIC8qIDUwMCAqLwotCSJFUlJOT181MDEiLCAvKiA1MDEgKi8KLQkiRVJSTk9fNTAyIiwgLyogNTAyICovCi0JIkVSUk5PXzUwMyIsIC8qIDUwMyAqLwotCSJFUlJOT181MDQiLCAvKiA1MDQgKi8KLQkiRVJSTk9fNTA1IiwgLyogNTA1ICovCi0JIkVSUk5PXzUwNiIsIC8qIDUwNiAqLwotCSJFUlJOT181MDciLCAvKiA1MDcgKi8KLQkiRVJSTk9fNTA4IiwgLyogNTA4ICovCi0JIkVSUk5PXzUwOSIsIC8qIDUwOSAqLwotCSJFUlJOT181MTAiLCAvKiA1MTAgKi8KLQkiRVJSTk9fNTExIiwgLyogNTExICovCi0JIkVSRVNUQVJUU1lTIiwgLyogNTEyICovCi0JIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCi0JIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCi0JIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCi0JIkVSUk5PXzUxNiIsIC8qIDUxNiAqLwotCSJFUlJOT181MTciLCAvKiA1MTcgKi8KLQkiRVJSTk9fNTE4IiwgLyogNTE4ICovCi0JIkVSUk5PXzUxOSIsIC8qIDUxOSAqLwotCSJFUlJOT181MjAiLCAvKiA1MjAgKi8KLQkiRUJBREhBTkRMRSIsIC8qIDUyMSAqLwotCSJFTk9UU1lOQyIsIC8qIDUyMiAqLwotCSJFQkFEQ09PS0lFIiwgLyogNTIzICovCi0JIkVOT1RTVVBQIiwgLyogNTI0ICovCi0JIkVUT09TTUFMTCIsIC8qIDUyNSAqLwotCSJFU0VSVkVSRkFVTFQiLCAvKiA1MjYgKi8KLQkiRUJBRFRZUEUiLCAvKiA1MjcgKi8KLQkiRUpVS0VCT1giLCAvKiA1MjggKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9ocHBhL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvaHBwYS9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzkyNjMzLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9ocHBhL2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFTk9NU0ciLCAvKiAzNSAqLwotCSJFSURSTSIsIC8qIDM2ICovCi0JIkVDSFJORyIsIC8qIDM3ICovCi0JIkVMMk5TWU5DIiwgLyogMzggKi8KLQkiRUwzSExUIiwgLyogMzkgKi8KLQkiRUwzUlNUIiwgLyogNDAgKi8KLQkiRUxOUk5HIiwgLyogNDEgKi8KLQkiRVVOQVRDSCIsIC8qIDQyICovCi0JIkVOT0NTSSIsIC8qIDQzICovCi0JIkVMMkhMVCIsIC8qIDQ0ICovCi0JIkVERUFETEsiLCAvKiA0NSAqLwotCSJFTk9MQ0siLCAvKiA0NiAqLwotCSJFSUxTRVEiLCAvKiA0NyAqLwotCSJFUlJOT180OCIsIC8qIDQ4ICovCi0JIkVSUk5PXzQ5IiwgLyogNDkgKi8KLQkiRU5PTkVUIiwgLyogNTAgKi8KLQkiRU5PREFUQSIsIC8qIDUxICovCi0JIkVUSU1FIiwgLyogNTIgKi8KLQkiRU5PU1IiLCAvKiA1MyAqLwotCSJFTk9TVFIiLCAvKiA1NCAqLwotCSJFTk9QS0ciLCAvKiA1NSAqLwotCSJFUlJOT181NiIsIC8qIDU2ICovCi0JIkVOT0xJTksiLCAvKiA1NyAqLwotCSJFQURWIiwgLyogNTggKi8KLQkiRVNSTU5UIiwgLyogNTkgKi8KLQkiRUNPTU0iLCAvKiA2MCAqLwotCSJFUFJPVE8iLCAvKiA2MSAqLwotCSJFUlJOT182MiIsIC8qIDYyICovCi0JIkVSUk5PXzYzIiwgLyogNjMgKi8KLQkiRU1VTFRJSE9QIiwgLyogNjQgKi8KLQkiRVJSTk9fNjUiLCAvKiA2NSAqLwotCSJFRE9URE9UIiwgLyogNjYgKi8KLQkiRUJBRE1TRyIsIC8qIDY3ICovCi0JIkVVU0VSUyIsIC8qIDY4ICovCi0JIkVEUVVPVCIsIC8qIDY5ICovCi0JIkVTVEFMRSIsIC8qIDcwICovCi0JIkVSRU1PVEUiLCAvKiA3MSAqLwotCSJFT1ZFUkZMT1ciLCAvKiA3MiAqLwotCSJFUlJOT183MyIsIC8qIDczICovCi0JIkVSUk5PXzc0IiwgLyogNzQgKi8KLQkiRVJSTk9fNzUiLCAvKiA3NSAqLwotCSJFUlJOT183NiIsIC8qIDc2ICovCi0JIkVSUk5PXzc3IiwgLyogNzcgKi8KLQkiRVJSTk9fNzgiLCAvKiA3OCAqLwotCSJFUlJOT183OSIsIC8qIDc5ICovCi0JIkVSUk5PXzgwIiwgLyogODAgKi8KLQkiRVJSTk9fODEiLCAvKiA4MSAqLwotCSJFUlJOT184MiIsIC8qIDgyICovCi0JIkVSUk5PXzgzIiwgLyogODMgKi8KLQkiRVJSTk9fODQiLCAvKiA4NCAqLwotCSJFUlJOT184NSIsIC8qIDg1ICovCi0JIkVSUk5PXzg2IiwgLyogODYgKi8KLQkiRVJSTk9fODciLCAvKiA4NyAqLwotCSJFUlJOT184OCIsIC8qIDg4ICovCi0JIkVSUk5PXzg5IiwgLyogODkgKi8KLQkiRVJSTk9fOTAiLCAvKiA5MCAqLwotCSJFUlJOT185MSIsIC8qIDkxICovCi0JIkVSUk5PXzkyIiwgLyogOTIgKi8KLQkiRVJSTk9fOTMiLCAvKiA5MyAqLwotCSJFUlJOT185NCIsIC8qIDk0ICovCi0JIkVSUk5PXzk1IiwgLyogOTUgKi8KLQkiRVJSTk9fOTYiLCAvKiA5NiAqLwotCSJFUlJOT185NyIsIC8qIDk3ICovCi0JIkVSUk5PXzk4IiwgLyogOTggKi8KLQkiRVJSTk9fOTkiLCAvKiA5OSAqLwotCSJFUlJOT18xMDAiLCAvKiAxMDAgKi8KLQkiRVJSTk9fMTAxIiwgLyogMTAxICovCi0JIkVSUk5PXzEwMiIsIC8qIDEwMiAqLwotCSJFUlJOT18xMDMiLCAvKiAxMDMgKi8KLQkiRVJSTk9fMTA0IiwgLyogMTA0ICovCi0JIkVSUk5PXzEwNSIsIC8qIDEwNSAqLwotCSJFUlJOT18xMDYiLCAvKiAxMDYgKi8KLQkiRVJSTk9fMTA3IiwgLyogMTA3ICovCi0JIkVSUk5PXzEwOCIsIC8qIDEwOCAqLwotCSJFUlJOT18xMDkiLCAvKiAxMDkgKi8KLQkiRVJSTk9fMTEwIiwgLyogMTEwICovCi0JIkVSUk5PXzExMSIsIC8qIDExMSAqLwotCSJFUlJOT18xMTIiLCAvKiAxMTIgKi8KLQkiRVJSTk9fMTEzIiwgLyogMTEzICovCi0JIkVSUk5PXzExNCIsIC8qIDExNCAqLwotCSJFUlJOT18xMTUiLCAvKiAxMTUgKi8KLQkiRVJSTk9fMTE2IiwgLyogMTE2ICovCi0JIkVSUk5PXzExNyIsIC8qIDExNyAqLwotCSJFUlJOT18xMTgiLCAvKiAxMTggKi8KLQkiRVJSTk9fMTE5IiwgLyogMTE5ICovCi0JIkVSUk5PXzEyMCIsIC8qIDEyMCAqLwotCSJFUlJOT18xMjEiLCAvKiAxMjEgKi8KLQkiRVJSTk9fMTIyIiwgLyogMTIyICovCi0JIkVSUk5PXzEyMyIsIC8qIDEyMyAqLwotCSJFUlJOT18xMjQiLCAvKiAxMjQgKi8KLQkiRVJSTk9fMTI1IiwgLyogMTI1ICovCi0JIkVSUk5PXzEyNiIsIC8qIDEyNiAqLwotCSJFUlJOT18xMjciLCAvKiAxMjcgKi8KLQkiRVJSTk9fMTI4IiwgLyogMTI4ICovCi0JIkVSUk5PXzEyOSIsIC8qIDEyOSAqLwotCSJFUlJOT18xMzAiLCAvKiAxMzAgKi8KLQkiRVJSTk9fMTMxIiwgLyogMTMxICovCi0JIkVSUk5PXzEzMiIsIC8qIDEzMiAqLwotCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KLQkiRVJSTk9fMTM0IiwgLyogMTM0ICovCi0JIkVSUk5PXzEzNSIsIC8qIDEzNSAqLwotCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KLQkiRVJSTk9fMTM3IiwgLyogMTM3ICovCi0JIkVSUk5PXzEzOCIsIC8qIDEzOCAqLwotCSJFUlJOT18xMzkiLCAvKiAxMzkgKi8KLQkiRVJSTk9fMTQwIiwgLyogMTQwICovCi0JIkVSUk5PXzE0MSIsIC8qIDE0MSAqLwotCSJFUlJOT18xNDIiLCAvKiAxNDIgKi8KLQkiRVJSTk9fMTQzIiwgLyogMTQzICovCi0JIkVSUk5PXzE0NCIsIC8qIDE0NCAqLwotCSJFUlJOT18xNDUiLCAvKiAxNDUgKi8KLQkiRVJSTk9fMTQ2IiwgLyogMTQ2ICovCi0JIkVSUk5PXzE0NyIsIC8qIDE0NyAqLwotCSJFUlJOT18xNDgiLCAvKiAxNDggKi8KLQkiRVJSTk9fMTQ5IiwgLyogMTQ5ICovCi0JIkVSUk5PXzE1MCIsIC8qIDE1MCAqLwotCSJFUlJOT18xNTEiLCAvKiAxNTEgKi8KLQkiRVJSTk9fMTUyIiwgLyogMTUyICovCi0JIkVSUk5PXzE1MyIsIC8qIDE1MyAqLwotCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KLQkiRVJSTk9fMTU1IiwgLyogMTU1ICovCi0JIkVSUk5PXzE1NiIsIC8qIDE1NiAqLwotCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KLQkiRVJSTk9fMTU4IiwgLyogMTU4ICovCi0JIkVSUk5PXzE1OSIsIC8qIDE1OSAqLwotCSJFQkFERSIsIC8qIDE2MCAqLwotCSJFQkFEUiIsIC8qIDE2MSAqLwotCSJFWEZVTEwiLCAvKiAxNjIgKi8KLQkiRU5PQU5PIiwgLyogMTYzICovCi0JIkVCQURSUUMiLCAvKiAxNjQgKi8KLQkiRUJBRFNMVCIsIC8qIDE2NSAqLwotCSJFQkZPTlQiLCAvKiAxNjYgKi8KLQkiRU5PVFVOSVEiLCAvKiAxNjcgKi8KLQkiRUJBREZEIiwgLyogMTY4ICovCi0JIkVSRU1DSEciLCAvKiAxNjkgKi8KLQkiRUxJQkFDQyIsIC8qIDE3MCAqLwotCSJFTElCQkFEIiwgLyogMTcxICovCi0JIkVMSUJTQ04iLCAvKiAxNzIgKi8KLQkiRUxJQk1BWCIsIC8qIDE3MyAqLwotCSJFTElCRVhFQyIsIC8qIDE3NCAqLwotCSJFUkVTVEFSVCIsIC8qIDE3NSAqLwotCSJFU1RSUElQRSIsIC8qIDE3NiAqLwotCSJFVUNMRUFOIiwgLyogMTc3ICovCi0JIkVOT1ROQU0iLCAvKiAxNzggKi8KLQkiRU5BVkFJTCIsIC8qIDE3OSAqLwotCSJFSVNOQU0iLCAvKiAxODAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTgxICovCi0JIkVOT01FRElVTSIsIC8qIDE4MiAqLwotCSJFTUVESVVNVFlQRSIsIC8qIDE4MyAqLwotCSJFUlJOT18xODQiLCAvKiAxODQgKi8KLQkiRVJSTk9fMTg1IiwgLyogMTg1ICovCi0JIkVSUk5PXzE4NiIsIC8qIDE4NiAqLwotCSJFUlJOT18xODciLCAvKiAxODcgKi8KLQkiRVJSTk9fMTg4IiwgLyogMTg4ICovCi0JIkVSUk5PXzE4OSIsIC8qIDE4OSAqLwotCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KLQkiRVJSTk9fMTkxIiwgLyogMTkxICovCi0JIkVSUk5PXzE5MiIsIC8qIDE5MiAqLwotCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KLQkiRVJSTk9fMTk0IiwgLyogMTk0ICovCi0JIkVSUk5PXzE5NSIsIC8qIDE5NSAqLwotCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KLQkiRVJSTk9fMTk3IiwgLyogMTk3ICovCi0JIkVSUk5PXzE5OCIsIC8qIDE5OCAqLwotCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KLQkiRVJSTk9fMjAwIiwgLyogMjAwICovCi0JIkVSUk5PXzIwMSIsIC8qIDIwMSAqLwotCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KLQkiRVJSTk9fMjAzIiwgLyogMjAzICovCi0JIkVSUk5PXzIwNCIsIC8qIDIwNCAqLwotCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KLQkiRVJSTk9fMjA2IiwgLyogMjA2ICovCi0JIkVSUk5PXzIwNyIsIC8qIDIwNyAqLwotCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KLQkiRVJSTk9fMjA5IiwgLyogMjA5ICovCi0JIkVSUk5PXzIxMCIsIC8qIDIxMCAqLwotCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KLQkiRVJSTk9fMjEyIiwgLyogMjEyICovCi0JIkVSUk5PXzIxMyIsIC8qIDIxMyAqLwotCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KLQkiRU5PU1lNIiwgLyogMjE1ICovCi0JIkVOT1RTT0NLIiwgLyogMjE2ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDIxNyAqLwotCSJFTVNHU0laRSIsIC8qIDIxOCAqLwotCSJFUFJPVE9UWVBFIiwgLyogMjE5ICovCi0JIkVOT1BST1RPT1BUIiwgLyogMjIwICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDIyMSAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiAyMjIgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDIyMyAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiAyMjQgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogMjI1ICovCi0JIkVBRERSSU5VU0UiLCAvKiAyMjYgKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDIyNyAqLwotCSJFTkVURE9XTiIsIC8qIDIyOCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDIyOSAqLwotCSJFTkVUUkVTRVQiLCAvKiAyMzAgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMjMxICovCi0JIkVDT05OUkVTRVQiLCAvKiAyMzIgKi8KLQkiRU5PQlVGUyIsIC8qIDIzMyAqLwotCSJFSVNDT05OIiwgLyogMjM0ICovCi0JIkVOT1RDT05OIiwgLyogMjM1ICovCi0JIkVTSFVURE9XTiIsIC8qIDIzNiAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiAyMzcgKi8KLQkiRVRJTUVET1VUIiwgLyogMjM4ICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDIzOSAqLwotCSJFUkVNT1RFUkVMRUFTRSIsIC8qIDI0MCAqLwotCSJFSE9TVERPV04iLCAvKiAyNDEgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogMjQyICovCi0JIkVSUk5PXzI0MyIsIC8qIDI0MyAqLwotCSJFQUxSRUFEWSIsIC8qIDI0NCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDI0NSAqLwotCSJFV09VTERCTE9DSyIsIC8qIDI0NiAqLwotCSJFTk9URU1QVFkiLCAvKiAyNDcgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogMjQ4ICovCi0JIkVMT09QIiwgLyogMjQ5ICovCi0JIkVSUk5PXzI1MCIsIC8qIDI1MCAqLwotCSJFTk9TWVMiLCAvKiAyNTEgKi8KLQkiRU5PVFNVUCIsIC8qIDI1MiAqLwotCSJFQ0FOQ0VMTEVEIiwgLyogMjUzICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaHBwYS9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RkYWFmNS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaHBwYS9pb2N0bGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzc5ICswLDAgQEAKLQl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAotCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAotCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAotCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAotCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAotCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAotCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAotCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaHBwYS9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9ocHBhL3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmU1NTY1Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9ocHBhL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVU1IxIiwJLyogMTYgKi8KLQkiU0lHVVNSMiIsCS8qIDE3ICovCi0JIlNJR0NITEQiLAkvKiAxOCAqLwotCSJTSUdQV1IiLAkvKiAxOSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyMCAqLwotCSJTSUdQUk9GIiwJLyogMjEgKi8KLQkiU0lHSU8iLAkvKiAyMiAqLwotCSJTSUdXSU5DSCIsCS8qIDIzICovCi0JIlNJR1NUT1AiLAkvKiAyNCAqLwotCSJTSUdUU1RQIiwJLyogMjUgKi8KLQkiU0lHQ09OVCIsCS8qIDI2ICovCi0JIlNJR1RUSU4iLAkvKiAyNyAqLwotCSJTSUdUVE9VIiwJLyogMjggKi8KLQkiU0lHVVJHIiwJLyogMjkgKi8KLQkiU0lHTE9TVCIsCS8qIDMwICovCi0JIlNJR1VOVVNFRCIsCS8qIDMxICovCi0JIlNJR18zMiIsCS8qIDMyICovCi0JIlNJR1hDUFUiLAkvKiAzMyAqLwotCSJTSUdYRlNaIiwJLyogMzQgKi8KLQkiU0lHXzM1IiwJLyogMzUgKi8KLQkiU0lHU1RLRkxUIiwJLyogMzYgKi8KLQkiU0lHUlRNSU4iLAkvKiAzNyAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2hwcGEvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGE1MDE2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9ocHBhL3N5c2NhbGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDAxIEhld2xldHQtUGFja2FyZCwgTWF0dGhldyBXaWxjb3gKLSAqCi0gKiAkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMTIgMjAwNS8wNS8wOSAwODowMjowNCByb2xhbmQgRXhwICQKLSAqCi0gKi8KLQotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18wIgkJCX0sIC8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0IgkJCX0sIC8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJCX0sIC8qIDIgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZCwJCSJyZWFkIgkJCX0sIC8qIDMgKi8KLQl7IDMsCVRGLAlzeXNfd3JpdGUsCQkid3JpdGUiCQkJfSwgLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQkJfSwgLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJCX0sIC8qIDYgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgkJfSwgLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCQl9LCAvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCQl9LCAvKiAxMCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgkJfSwgLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQkJfSwgLyogMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQkJfSwgLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQkJfSwgLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQkJfSwgLyogMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgkJfSwgLyogMTYgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJCX0sIC8qIDE3ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkibmV3c3RhdCIJCX0sIC8qIDE4ICovCi0JeyAzLAlURiwJc3lzX2xzZWVrLAkJImxzZWVrIgkJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJCX0sIC8qIDIxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCQl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCQl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCQl9LCAvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJCX0sIC8qIDI1ICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQkJfSwgLyogMjcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJuZXdmc3RhdCIJCX0sIC8qIDI4ICovCi0JeyAwLAkwLAlzeXNfcGF1c2UsCQkicGF1c2UiCQkJfSwgLyogMjkgKi8KLQl7IDIsCTAsCXN5c191dGltZSwJCSJ1dGltZSIJCQl9LCAvKiAzMCAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCQl9LCAvKiAzMSAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgkJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJCX0sIC8qIDM0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCQl9LCAvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCQl9LCAvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJCX0sIC8qIDM4ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJCX0sIC8qIDM5ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCQl9LCAvKiA0MSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCQl9LCAvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJCX0sIC8qIDQzICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCQl9LCAvKiA0NCAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQkJfSwgLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgkJfSwgLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgkJfSwgLyogNDcgKi8KLQl7IDIsCTAsCXN5c19zaWduYWwsCQkic2lnbmFsIgkJfSwgLyogNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCQl9LCAvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCQl9LCAvKiA1MSAqLwotCXsgMiwJMCwJc3lzX3Vtb3VudDIsCQkidW1vdW50MiIJCX0sIC8qIDUyICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkibG9jayIJCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQkJfSwgLyogNTUgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgkJfSwgLyogNTYgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCQl9LCAvKiA1NyAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQkJfSwgLyogNTggKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJuZXd1bmFtZSIJCQl9LCAvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCQl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJCX0sIC8qIDYyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJCX0sIC8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgkJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCQl9LCAvKiA2NSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCQl9LCAvKiA2NiAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJCX0sIC8qIDY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2dldG1hc2siCQl9LCAvKiA2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNzZXRtYXNrIgkJfSwgLyogNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCQl9LCAvKiA3MSAqLwotCXsgMywJMCwJc3lzX21pbmNvcmUsCQkibWluY29yZSIJCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5IgkJfSwgLyogNzggKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCQl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCQl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCQl9LCAvKiA4MSAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgkJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgkJfSwgLyogODMgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibmV3bHN0YXQiCQl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJCX0sIC8qIDg1ICovCi0JeyAxLAkwLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJCX0sIC8qIDg2ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJCX0sIC8qIDg4ICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCQl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCQl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCQl9LCAvKiA5MSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJCX0sIC8qIDk0ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJCX0sIC8qIDk3ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCQl9LCAvKiA5OCAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgkJfSwgLyogOTkgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCQl9LCAvKiAxMDAgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJCX0sIC8qIDEwMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDIiCQl9LCAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgkJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCQl9LCAvKiAxMDUgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0IgkJfSwgLyogMTA2ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJCX0sIC8qIDEwNyAqLwotCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZCIJCQl9LCAvKiAxMDggKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJCX0sIC8qIDEwOSAqLwotCXsgMiwJMCwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCQl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCQl9LCAvKiAxMTEgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0IgkJfSwgLyogMTEyICovCi0JeyAwLAkwLAlzeXNfdmZvcmssCQkidmZvcmsiCQkJfSwgLyogMTEzICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJCX0sIC8qIDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJCX0sIC8qIDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJCX0sIC8qIDExNiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJCX0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJCX0sIC8qIDExOCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCQl9LCAvKiAxMjAgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJCX0sIC8qIDEyMSAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJCX0sIC8qIDEyMiAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4IgkJfSwgLyogMTI0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCQl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgkJfSwgLyogMTI3ICovCi0JeyA0LAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgkJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIgl9LCAvKiAxMzAgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJCX0sIC8qIDEzMiAqLwotCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgkJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgkJfSwgLyogMTM0ICovCi0JeyA1LAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQkJfSwgLyogMTM1ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCQl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJCX0sIC8qIDEzOCAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgkJfSwgLyogMTM5ICovCi0JeyA1LAlURiwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgkJfSwgLyogMTQwICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCQl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkiX25ld3NlbGVjdCIJCX0sIC8qIDE0MiAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJCX0sIC8qIDE0NSAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCQl9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJCX0sIC8qIDE0OCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgkJfSwgLyogMTQ5ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgkJfSwgLyogMTUxICovCi0JeyAxLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCQl9LCAvKiAxNTIgKi8KLQl7IDEsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCQl9LCAvKiAxNTMgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIgl9LCAvKiAxNTQgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIgl9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIiCX0sIC8qIDE1NiAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciIJfSwgLyogMTU3ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCIJCX0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgkJfSwgLyogMTYyICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAxNjQgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMTY1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCQl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCQl9LCAvKiAxNjcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogMTY4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDE2OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCQl9LCAvKiAxNzAgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgkJfSwgLyogMTcxICovCi0JeyA1LAkwLAlzeXNfcHJjdGwsCQkicHJjdGwiCQkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJydF9zaWdyZXR1cm4iCQl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgkJfSwgLyogMTc0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2siCX0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJCX0sIC8qIDE3NiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sIC8qIDE3NyAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8iCX0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJCX0sIC8qIDE3OSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCQl9LCAvKiAxODAgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0IgkJfSwgLyogMTgxICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJCX0sIC8qIDE4MiAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCQl9LCAvKiAxODMgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgkJfSwgLyogMTg0ICovCi0JeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJCX0sIC8qIDE4NSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0IgkJfSwgLyogMTg2ICovCi0JeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCQl9LCAvKiAxODcgKi8KLQl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJCX0sIC8qIDE4OCAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2IgkJfSwgLyogMTg5ICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCQl9LCAvKiAxOTAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJCX0sIC8qIDE5MSAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCQl9LCAvKiAxOTIgKi8KLQl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQkJfSwgLyogMTkzICovCi0JeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCQl9LCAvKiAxOTQgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJCX0sIC8qIDE5NSAqLwotCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJCX0sIC8qIDE5NiAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJCX0sIC8qIDE5NyAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiAxOTggKi8KLQl7IDMsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0IgkJfSwgLyogMTk5ICovCi0JeyAzLAlURiwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCQl9LCAvKiAyMDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCQl9LCAvKiAyMDEgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bDY0IgkJfSwgLyogMjAyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiYXR0cmN0bCIJCX0sIC8qIDIwMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFjbF9nZXQiCQl9LCAvKiAyMDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJhY2xfc2V0IgkJfSwgLyogMjA1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgkJfSwgLyogMjA2ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJCX0sIC8qIDIwNyAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJCX0sIC8qIDIwOCAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZTY0IgkJfSwgLyogMjA5ICovCi0JeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQkJfSwgLyogMjEwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIJfSwgLyogMjExICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIJfSwgLyogMjEyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2V0X3RocmVhZF9hcmVhIgl9LCAvKiAyMTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJnZXRfdGhyZWFkX2FyZWEiCX0sIC8qIDIxNCAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgkJfSwgLyogMjE1ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95IgkJfSwgLyogMjE2ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJCX0sIC8qIDIxNyAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCQl9LCAvKiAyMTggKi8KLQl7IDQsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgkJfSwgLyogMjE5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiYWxsb2NfaHVnZXBhZ2VzIgl9LCAvKiAyMjAgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJmcmVlX2h1Z2VwYWdlcyIJfSwgLyogMjIxICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJCX0sIC8qIDIyMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIgl9LCAvKiAyMjMgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCQl9LCAvKiAyMjQgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgkJfSwgLyogMjI1ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0IgkJfSwgLyogMjI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicmVtYXBfZmlsZV9wYWdlcyIJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2VtdGltZWRvcCIJCX0sIC8qIDIyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm1xX29wZW4iCQl9LCAvKiAyMjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV91bmxpbmsiCQl9LCAvKiAyMzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV90aW1lZHNlbmQiCQl9LCAvKiAyMzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV90aW1lZHJlY2VpdmUiCQl9LCAvKiAyMzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV9ub3RpZnkiCQl9LCAvKiAyMzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJtcV9nZXRzZXRhdHRyIgkJfSwgLyogMjM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkid2FpdGlkIgkJfSwgLyogMjM1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZmFkdmlzZTY0XzY0IgkJfSwgLyogMjM2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIgl9LCAvKiAyMzcgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCQl9LCAvKiAyMzggKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgkJfSwgLyogMjM5ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJCX0sIC8qIDI0MCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJCX0sIC8qIDI0MSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCQl9LCAvKiAyNDIgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgkJfSwgLyogMjQzICovCi0JeyA1LAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCQl9LCAvKiAyNDQgKi8KLQl7IDUsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCQl9LCAvKiAyNDUgKi8KLQl7IDUsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCQl9LCAvKiAyNDYgKi8KLQl7IDUsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJCX0sIC8qIDI0NyAqLwotCXsgNSwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJCX0sIC8qIDI0OCAqLwotCXsgNSwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJCX0sIC8qIDI0OSAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJCX0sIC8qIDI1MCAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgkJfSwgLyogMjUxICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCQl9LCAvKiAyNTIgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biIJfSwgLyogMjUzICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgkJfSwgLyogMjU0ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCQl9LCAvKiAyNTUgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJCX0sIC8qIDI1NiAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJCX0sIC8qIDI1NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImNsb2NrX25hbm9zbGVlcCIJfSwgLyogMjU4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidGdraWxsIgkJfSwgLyogMjU5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkibWJpbmQiCQkJfSwgLyogMjYwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZ2V0X21lbXBvbGljeSIJCX0sIC8qIDI2MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF9tZW1wb2xpY3kiCQl9LCAvKiAyNjIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgkJfSwgLyogMjYzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NCIJCX0sIC8qIDI2NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCQl9LCAvKiAyNjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY2IgkJfSwgLyogMjY2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NyIJCX0sIC8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCQl9LCAvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY5IgkJfSwgLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MCIJCX0sIC8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCQl9LCAvKiAyNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgkJfSwgLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJCX0sIC8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCQl9LCAvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1IgkJfSwgLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJCX0sIC8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCQl9LCAvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4IgkJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCQl9LCAvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgkJfSwgLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCQl9LCAvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg0IgkJfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJCX0sIC8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCQl9LCAvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3IgkJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJCX0sIC8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCQl9LCAvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgkJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJCX0sIC8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCQl9LCAvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgkJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJCX0sIC8qIDI5NCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lhNjQvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L2Vycm5vZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MGI1MDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L2lhNjQvZXJybm9lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNSArMCwwIEBACi0JIkVSUk5PXzAiLCAvKiAwICovCi0JIkVQRVJNIiwgLyogMSAqLwotCSJFTk9FTlQiLCAvKiAyICovCi0JIkVTUkNIIiwgLyogMyAqLwotCSJFSU5UUiIsIC8qIDQgKi8KLQkiRUlPIiwgLyogNSAqLwotCSJFTlhJTyIsIC8qIDYgKi8KLQkiRTJCSUciLCAvKiA3ICovCi0JIkVOT0VYRUMiLCAvKiA4ICovCi0JIkVCQURGIiwgLyogOSAqLwotCSJFQ0hJTEQiLCAvKiAxMCAqLwotCSJFQUdBSU4iLCAvKiAxMSAqLwotCSJFTk9NRU0iLCAvKiAxMiAqLwotCSJFQUNDRVMiLCAvKiAxMyAqLwotCSJFRkFVTFQiLCAvKiAxNCAqLwotCSJFTk9UQkxLIiwgLyogMTUgKi8KLQkiRUJVU1kiLCAvKiAxNiAqLwotCSJFRVhJU1QiLCAvKiAxNyAqLwotCSJFWERFViIsIC8qIDE4ICovCi0JIkVOT0RFViIsIC8qIDE5ICovCi0JIkVOT1RESVIiLCAvKiAyMCAqLwotCSJFSVNESVIiLCAvKiAyMSAqLwotCSJFSU5WQUwiLCAvKiAyMiAqLwotCSJFTkZJTEUiLCAvKiAyMyAqLwotCSJFTUZJTEUiLCAvKiAyNCAqLwotCSJFTk9UVFkiLCAvKiAyNSAqLwotCSJFVFhUQlNZIiwgLyogMjYgKi8KLQkiRUZCSUciLCAvKiAyNyAqLwotCSJFTk9TUEMiLCAvKiAyOCAqLwotCSJFU1BJUEUiLCAvKiAyOSAqLwotCSJFUk9GUyIsIC8qIDMwICovCi0JIkVNTElOSyIsIC8qIDMxICovCi0JIkVQSVBFIiwgLyogMzIgKi8KLQkiRURPTSIsIC8qIDMzICovCi0JIkVSQU5HRSIsIC8qIDM0ICovCi0JIkVERUFETEsiLCAvKiAzNSAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiAzNiAqLwotCSJFTk9MQ0siLCAvKiAzNyAqLwotCSJFTk9TWVMiLCAvKiAzOCAqLwotCSJFTk9URU1QVFkiLCAvKiAzOSAqLwotCSJFTE9PUCIsIC8qIDQwICovCi0JIkVSUk5PXzQxIiwgLyogNDEgKi8KLQkiRU5PTVNHIiwgLyogNDIgKi8KLQkiRUlEUk0iLCAvKiA0MyAqLwotCSJFQ0hSTkciLCAvKiA0NCAqLwotCSJFTDJOU1lOQyIsIC8qIDQ1ICovCi0JIkVMM0hMVCIsIC8qIDQ2ICovCi0JIkVMM1JTVCIsIC8qIDQ3ICovCi0JIkVMTlJORyIsIC8qIDQ4ICovCi0JIkVVTkFUQ0giLCAvKiA0OSAqLwotCSJFTk9DU0kiLCAvKiA1MCAqLwotCSJFTDJITFQiLCAvKiA1MSAqLwotCSJFQkFERSIsIC8qIDUyICovCi0JIkVCQURSIiwgLyogNTMgKi8KLQkiRVhGVUxMIiwgLyogNTQgKi8KLQkiRU5PQU5PIiwgLyogNTUgKi8KLQkiRUJBRFJRQyIsIC8qIDU2ICovCi0JIkVCQURTTFQiLCAvKiA1NyAqLwotCSJFUlJOT181OCIsIC8qIDU4ICovCi0JIkVCRk9OVCIsIC8qIDU5ICovCi0JIkVOT1NUUiIsIC8qIDYwICovCi0JIkVOT0RBVEEiLCAvKiA2MSAqLwotCSJFVElNRSIsIC8qIDYyICovCi0JIkVOT1NSIiwgLyogNjMgKi8KLQkiRU5PTkVUIiwgLyogNjQgKi8KLQkiRU5PUEtHIiwgLyogNjUgKi8KLQkiRVJFTU9URSIsIC8qIDY2ICovCi0JIkVOT0xJTksiLCAvKiA2NyAqLwotCSJFQURWIiwgLyogNjggKi8KLQkiRVNSTU5UIiwgLyogNjkgKi8KLQkiRUNPTU0iLCAvKiA3MCAqLwotCSJFUFJPVE8iLCAvKiA3MSAqLwotCSJFTVVMVElIT1AiLCAvKiA3MiAqLwotCSJFRE9URE9UIiwgLyogNzMgKi8KLQkiRUJBRE1TRyIsIC8qIDc0ICovCi0JIkVPVkVSRkxPVyIsIC8qIDc1ICovCi0JIkVOT1RVTklRIiwgLyogNzYgKi8KLQkiRUJBREZEIiwgLyogNzcgKi8KLQkiRVJFTUNIRyIsIC8qIDc4ICovCi0JIkVMSUJBQ0MiLCAvKiA3OSAqLwotCSJFTElCQkFEIiwgLyogODAgKi8KLQkiRUxJQlNDTiIsIC8qIDgxICovCi0JIkVMSUJNQVgiLCAvKiA4MiAqLwotCSJFTElCRVhFQyIsIC8qIDgzICovCi0JIkVJTFNFUSIsIC8qIDg0ICovCi0JIkVSRVNUQVJUIiwgLyogODUgKi8KLQkiRVNUUlBJUEUiLCAvKiA4NiAqLwotCSJFVVNFUlMiLCAvKiA4NyAqLwotCSJFTk9UU09DSyIsIC8qIDg4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCi0JIkVNU0dTSVpFIiwgLyogOTAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDkxICovCi0JIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA5OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KLQkiRU5FVERPV04iLCAvKiAxMDAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KLQkiRU5FVFJFU0VUIiwgLyogMTAyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLwotCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCi0JIkVOT0JVRlMiLCAvKiAxMDUgKi8KLQkiRUlTQ09OTiIsIC8qIDEwNiAqLwotCSJFTk9UQ09OTiIsIC8qIDEwNyAqLwotCSJFU0hVVERPV04iLCAvKiAxMDggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDExMCAqLwotCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KLQkiRUhPU1RET1dOIiwgLyogMTEyICovCi0JIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLwotCSJFQUxSRUFEWSIsIC8qIDExNCAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLwotCSJFU1RBTEUiLCAvKiAxMTYgKi8KLQkiRVVDTEVBTiIsIC8qIDExNyAqLwotCSJFTk9UTkFNIiwgLyogMTE4ICovCi0JIkVOQVZBSUwiLCAvKiAxMTkgKi8KLQkiRUlTTkFNIiwgLyogMTIwICovCi0JIkVSRU1PVEVJTyIsIC8qIDEyMSAqLwotCSJFRFFVT1QiLCAvKiAxMjIgKi8KLQkiRU5PTUVESVVNIiwgLyogMTIzICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaWE2NC9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L2lhNjQvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGNkMmFjZC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaWE2NC9pb2N0bGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA4MCArMCwwIEBACi0JLyogR2VuZXJhdGVkIGJ5IGlvY3Rsc29ydCAqLwotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAotCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRMQVNUU0VDVCIsCTB4MTI2Y30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFVExBU1RTRUNUIiwJMHgxMjZkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NBVFRBQ0giLAkweDQwNjV9LAotCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ0RFVEFDSCIsCTB4NDA2Nn0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DU1VTUEVORCIsCTB4NDA2N30sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DUkVTVU1FIiwJMHg0MDY4fSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NDTFJQT0xJQ1kiLAkweDQwNjl9LAotCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ1NFVFBPTElDWSIsCTB4NDA2YX0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DSUFNQVVESVREIiwJMHg0MDZifSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NTRVRBVURJVElEIiwJMHg0MDZjfSwKLQl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NMT0dJTiIsCTB4NDA2ZX0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DVVNFUk1FU1NBR0UiLAkweDQwNmZ9LAotCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ0NMUkZJTFRFUiIsCTB4NDA3MH0sCi0JeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DU0VURklMVEVSIiwJMHg0MDcxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVlNDUkVFTklORk8iLAkweDQ2MDB9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAxfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GU0NSRUVOSU5GTyIsCTB4NDYwMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRDTUFQIiwJMHg0NjA0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVENNQVAiLAkweDQ2MDV9LAotCXsibGludXgvZmIuaCIsCSJGQklPUEFOX0RJU1BMQVkiLAkweDQ2MDZ9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0ZDVVJTT1JJTkZPIiwJMHg0NjA3fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQ1VSU09SSU5GTyIsCTB4NDYwOH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfVkNVUlNPUklORk8iLAkweDQ2MDl9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NVUlNPUlNUQVRFIiwJMHg0NjBhfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DVVJTT1JTVEFURSIsCTB4NDYwYn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ09OMkZCTUFQIiwJMHg0NjBmfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DT04yRkJNQVAiLAkweDQ2MTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPQkxBTksiLAkweDQ2MTF9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fQUxMT0MiLAkweDQ2MTN9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0ZSRUUiLAkweDQ2MTR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0dMWVBIIiwJMHg0NjE1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9IV0NJTkZPIiwJMHg0NjE2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9NT0RFSU5GTyIsCTB4NDYxN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRElTUElORk8iLAkweDQ2MTh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKLQl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0lPQ1NPVU5EIiwJMHg0YjJmfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RNS1RPTkUiLAkweDRiMzB9LAotCXsibGludXgva2QuaCIsCSJLREdFVExFRCIsCTB4NGIzMX0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTEVEIiwJMHg0YjMyfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JUWVBFIiwJMHg0YjMzfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RBRERJTyIsCTB4NGIzNH0sCi0JeyJsaW51eC9rZC5oIiwJIktEREVMSU8iLAkweDRiMzV9LAotCXsibGludXgva2QuaCIsCSJLREVOQUJJTyIsCTB4NGIzNn0sCi0JeyJsaW51eC9rZC5oIiwJIktERElTQUJJTyIsCTB4NGIzN30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUTU9ERSIsCTB4NGIzYX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUTU9ERSIsCTB4NGIzYn0sCi0JeyJsaW51eC9rZC5oIiwJIktETUFQRElTUCIsCTB4NGIzY30sCi0JeyJsaW51eC9rZC5oIiwJIktEVU5NQVBESVNQIiwJMHg0YjNkfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX1NDUk5NQVAiLAkweDRiNDB9LAotCXsibGludXgva2QuaCIsCSJQSU9fU0NSTk1BUCIsCTB4NGI0MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTU9ERSIsCTB4NGI0NH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTU9ERSIsCTB4NGI0NX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCRU5UIiwJMHg0YjQ2fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JFTlQiLAkweDRiNDd9LAotCXsibGludXgva2QuaCIsCSJLREdLQlNFTlQiLAkweDRiNDh9LAotCXsibGludXgva2QuaCIsCSJLRFNLQlNFTlQiLAkweDRiNDl9LAotCXsibGludXgva2QuaCIsCSJLREdLQkRJQUNSIiwJMHg0YjRhfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JESUFDUiIsCTB4NGI0Yn0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUS0VZQ09ERSIsCTB4NGI0Y30sCi0JeyJsaW51eC9rZC5oIiwJIktEU0VUS0VZQ09ERSIsCTB4NGI0ZH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0lHQUNDRVBUIiwJMHg0YjRlfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHSFdDTEsiLAkweDRiNTB9LAotCXsibGludXgva2QuaCIsCSJLRFNIV0NMSyIsCTB4NGI1MX0sCi0JeyJsaW51eC9rZC5oIiwJIktES0JEUkVQIiwJMHg0YjUyfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlQiLAkweDRiNjB9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVCIsCTB4NGI2MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTUVUQSIsCTB4NGI2Mn0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTUVUQSIsCTB4NGI2M30sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTEVEIiwJMHg0YjY0fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JMRUQiLAkweDRiNjV9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JTUFQIiwJMHg0YjY2fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUCIsCTB4NGI2N30sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVBDTFIiLAkweDRiNjh9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JU0NSTk1BUCIsCTB4NGI2OX0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklTQ1JOTUFQIiwJMHg0YjZhfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlRYIiwJMHg0YjZifSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRYIiwJMHg0YjZjfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRSRVNFVCIsCTB4NGI2ZH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19DTUFQIiwJMHg0YjcwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0NNQVAiLAkweDRiNzF9LAotCXsibGludXgva2QuaCIsCSJLREZPTlRPUCIsCTB4NGI3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUEFVU0UiLAkweDUzMDF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU1VNRSIsCTB4NTMwMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWU1TRiIsCTB4NTMwM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWVRSS0lORCIsCTB4NTMwNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0hEUiIsCTB4NTMwNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0VOVFJZIiwJMHg1MzA2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVE9QIiwJMHg1MzA3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVEFSVCIsCTB4NTMwOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1QiLAkweDUzMDl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTENUUkwiLAkweDUzMGF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNVQkNITkwiLAkweDUzMGJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMiIsCTB4NTMwY30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUxIiwJMHg1MzBkfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQVVESU8iLAkweDUzMGV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUX1NXIiwJMHg1MzBmfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01NVUxUSVNFU1NJT04iLAkweDUzMTB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfTUNOIiwJMHg1MzExfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNFVCIsCTB4NTMxMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MUkVBRCIsCTB4NTMxM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFJBVyIsCTB4NTMxNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRENPT0tFRCIsCTB4NTMxNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VFSyIsCTB4NTMxNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWUJMSyIsCTB4NTMxN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFMTCIsCTB4NTMxOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQ0xPU0VUUkFZIiwJMHg1MzE5fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01HRVRTUElORE9XTiIsCTB4NTMxZH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VUU1BJTkRPV04iLAkweDUzMWV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRVRfT1BUSU9OUyIsCTB4NTMyMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NMRUFSX09QVElPTlMiLAkweDUzMjF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfU1BFRUQiLAkweDUzMjJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfRElTQyIsCTB4NTMyM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX01FRElBX0NIQU5HRUQiLAkweDUzMjV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9EUklWRV9TVEFUVVMiLAkweDUzMjZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ESVNDX1NUQVRVUyIsCTB4NTMyN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NIQU5HRVJfTlNMT1RTIiwJMHg1MzI4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTE9DS0RPT1IiLAkweDUzMjl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ERUJVRyIsCTB4NTMzMH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0dFVF9DQVBBQklMSVRZIiwJMHg1MzMxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01BVURJT0JVRlNJWiIsCTB4NTM4Mn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9SRUFEX1NUUlVDVCIsCTB4NTM5MH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9XUklURV9TVFJVQ1QiLAkweDUzOTF9LAotCXsibGludXgvY2Ryb20uaCIsCSJEVkRfQVVUSCIsCTB4NTM5Mn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTkRfUEFDS0VUIiwJMHg1MzkzfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTkVYVF9XUklUQUJMRSIsCTB4NTM5NH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xBU1RfV1JJVFRFTiIsCTB4NTM5NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDU0MDl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NTQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg1NDBifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg1NDBmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDU0MTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg1NDExfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg1NDEzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg1NDE0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg1NDFifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDU0MjF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPUVNJWkUiLAkweDU0NjB9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfT1BFTlFSWSIsCTB4NTYwMH0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0dFVE1PREUiLAkweDU2MDF9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRVRNT0RFIiwJMHg1NjAyfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUU1RBVEUiLAkweDU2MDN9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRU5EU0lHIiwJMHg1NjA0fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVMRElTUCIsCTB4NTYwNX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0FDVElWQVRFIiwJMHg1NjA2fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfV0FJVEFDVElWRSIsCTB4NTYwN30sCi0JeyJsaW51eC92dC5oIiwJIlZUX0RJU0FMTE9DQVRFIiwJMHg1NjA4fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFIiwJMHg1NjA5fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFWCIsCTB4NTYwYX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0xPQ0tTV0lUQ0giLAkweDU2MGJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9VTkxPQ0tTV0lUQ0giLAkweDU2MGN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUSU5GTyIsCTB4NzEwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJQQUdFIiwJMHg3MTAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkZPVU5EIiwJMHg3MTAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BBR0VSRVEiLAkweDcxMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUU1RBVCIsCTB4NzEwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRQQUdFIiwJMHg3MTA2fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NUT1BEQVUiLAkweDcxMDd9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUUEFHRSIsCTB4NzEwOH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRESVNQIiwJMHg3MTA5fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFNUQVQiLAkweDcxMGF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSQ0FDSEUiLAkweDcxMGJ9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VUVklSVCIsCTB4NzEwY30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUSU5GTyIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1JFU0VUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVEZSRVEiLAkweDcyMDN9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VURlJFUSIsCTB4NzIwNH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRDSEFOIiwJMHg3MjA1fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVENIQU4iLAkweDcyMDZ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg4OTAxfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg4OTAyfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg4OTAzfSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg4OTA0fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4ODkwNX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHU1RBTVAiLAkweDg5MDZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERSVCIsCTB4ODkwYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTFJUIiwJMHg4OTBjfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUlRNU0ciLAkweDg5MGR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZOQU1FIiwJMHg4OTEwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTElOSyIsCTB4ODkxMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPTkYiLAkweDg5MTJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZGTEFHUyIsCTB4ODkxM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkZMQUdTIiwJMHg4OTE0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQUREUiIsCTB4ODkxNX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkFERFIiLAkweDg5MTZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZEU1RBRERSIiwJMHg4OTE3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRFNUQUREUiIsCTB4ODkxOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSREFERFIiLAkweDg5MTl9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUkRBRERSIiwJMHg4OTFhfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkVUTUFTSyIsCTB4ODkxYn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5FVE1BU0siLAkweDg5MWN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRVRSSUMiLAkweDg5MWR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRVRSSUMiLAkweDg5MWV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRU0iLAkweDg5MWZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRU0iLAkweDg5MjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNVFUiLAkweDg5MjF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNVFUiLAkweDg5MjJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZOQU1FIiwJMHg4OTIzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdBRERSIiwJMHg4OTI0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRU5DQVAiLAkweDg5MjV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZFTkNBUCIsCTB4ODkyNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkhXQUREUiIsCTB4ODkyN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlNMQVZFIiwJMHg4OTI5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGU0xBVkUiLAkweDg5MzB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERNVUxUSSIsCTB4ODkzMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTE1VTFRJIiwJMHg4OTMyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSU5ERVgiLAkweDg5MzN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZQRkxBR1MiLAkweDg5MzR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZQRkxBR1MiLAkweDg5MzV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NESUZBRERSIiwJMHg4OTM2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdCUk9BRENBU1QiLAkweDg5Mzd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT1VOVCIsCTB4ODkzOH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSIiwJMHg4OTQwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlIiLAkweDg5NDF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZUWFFMRU4iLAkweDg5NDJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZUWFFMRU4iLAkweDg5NDN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZESVZFUlQiLAkweDg5NDR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZESVZFUlQiLAkweDg5NDV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NFVEhUT09MIiwJMHg4OTQ2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVBIWSIsCTB4ODk0N30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlSRUciLAkweDg5NDh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTTUlJUkVHIiwJMHg4OTQ5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREFSUCIsCTB4ODk1M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dBUlAiLAkweDg5NTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTQVJQIiwJMHg4OTU1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRFJBUlAiLAkweDg5NjB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHUkFSUCIsCTB4ODk2MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NSQVJQIiwJMHg4OTYyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUFQIiwJMHg4OTcwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUFQIiwJMHg4OTcxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURERExDSSIsCTB4ODk4MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTERMQ0kiLAkweDg5ODF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZWTEFOIiwJMHg4OTgyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVkxBTiIsCTB4ODk4M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRFTlNMQVZFIiwJMHg4OTkwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFJFTEVBU0UiLAkweDg5OTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0VUSFdBRERSIiwJMHg4OTkyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNMQVZFSU5GT1FVRVJZIiwJMHg4OTkzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORElORk9RVUVSWSIsCTB4ODk5NH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRDSEFOR0VBQ1RJVkUiLAkweDg5OTV9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUFJPVE9QUklWQVRFIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFVlBSSVZBVEUiLAkweDg5ZjB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVCIsCTB4OGIwMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdDT01NSVQiLAkweDhiMDB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTkFNRSIsCTB4OGIwMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOV0lEIiwJMHg4YjAyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05XSUQiLAkweDhiMDN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJFUSIsCTB4OGIwNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkVRIiwJMHg4YjA1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV01PREUiLAkweDhiMDZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTU9ERSIsCTB4OGIwN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTRU5TIiwJMHg4YjA4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NFTlMiLAkweDhiMDl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFOR0UiLAkweDhiMGF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFOR0UiLAkweDhiMGJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUFJJViIsCTB4OGIwY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQUklWIiwJMHg4YjBkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NUQVRTIiwJMHg4YjBlfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NUQVRTIiwJMHg4YjBmfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NQWSIsCTB4OGIxMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTUFkiLAkweDhiMTF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXQVAiLAkweDhiMTR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXQVAiLAkweDhiMTV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXQVBMSVNUIiwJMHg4YjE3fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NDQU4iLAkweDhiMTh9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0NBTiIsCTB4OGIxOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdFU1NJRCIsCTB4OGIxYX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFU1NJRCIsCTB4OGIxYn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOSUNLTiIsCTB4OGIxY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOSUNLTiIsCTB4OGIxZH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQVRFIiwJMHg4YjIwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JBVEUiLAkweDhiMjF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUlRTIiwJMHg4YjIyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JUUyIsCTB4OGIyM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkFHIiwJMHg4YjI0fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSQUciLAkweDhiMjV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXVFhQT1ciLAkweDhiMjZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVFhQT1ciLAkweDhiMjd9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkVUUlkiLAkweDhiMjh9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkVUUlkiLAkweDhiMjl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRU5DT0RFIiwJMHg4YjJhfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0VOQ09ERSIsCTB4OGIyYn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQT1dFUiIsCTB4OGIyY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQT1dFUiIsCTB4OGIyZH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0ZJUlNUUFJJViIsCTB4OGJlMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0xBU1RQUklWIiwJMHg4YmZmfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaWE2NC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L3NpZ25hbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzkxYTY0Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9pYTY0L3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdTWVMiLAkvKiAzMSAqLwotCSJTSUdSVDAiLAkvKiAzMiAqLwotCSJTSUdSVDEiLAkvKiAzMyAqLwotCSJTSUdSVDIiLAkvKiAzNCAqLwotCSJTSUdSVDMiLAkvKiAzNSAqLwotCSJTSUdSVDQiLAkvKiAzNiAqLwotCSJTSUdSVDUiLAkvKiAzNyAqLwotCSJTSUdSVDYiLAkvKiAzOCAqLwotCSJTSUdSVDciLAkvKiAzOSAqLwotCSJTSUdSVDgiLAkvKiA0MCAqLwotCSJTSUdSVDkiLAkvKiA0MSAqLwotCSJTSUdSVDEwIiwJLyogNDIgKi8KLQkiU0lHUlQxMSIsCS8qIDQzICovCi0JIlNJR1JUMTIiLAkvKiA0NCAqLwotCSJTSUdSVDEzIiwJLyogNDUgKi8KLQkiU0lHUlQxNCIsCS8qIDQ2ICovCi0JIlNJR1JUMTUiLAkvKiA0NyAqLwotCSJTSUdSVDE2IiwJLyogNDggKi8KLQkiU0lHUlQxNyIsCS8qIDQ5ICovCi0JIlNJR1JUMTgiLAkvKiA1MCAqLwotCSJTSUdSVDE5IiwJLyogNTEgKi8KLQkiU0lHUlQyMCIsCS8qIDUyICovCi0JIlNJR1JUMjEiLAkvKiA1MyAqLwotCSJTSUdSVDIyIiwJLyogNTQgKi8KLQkiU0lHUlQyMyIsCS8qIDU1ICovCi0JIlNJR1JUMjQiLAkvKiA1NiAqLwotCSJTSUdSVDI1IiwJLyogNTcgKi8KLQkiU0lHUlQyNiIsCS8qIDU4ICovCi0JIlNJR1JUMjciLAkvKiA1OSAqLwotCSJTSUdSVDI4IiwJLyogNjAgKi8KLQkiU0lHUlQyOSIsCS8qIDYxICovCi0JIlNJR1JUMzAiLAkvKiA2MiAqLwotCSJTSUdSVDMxIiwJLyogNjMgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pYTY0L3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM3ZTg2Zi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaWE2NC9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTksIDIwMDEgSGV3bGV0dC1QYWNrYXJkIENvCi0gKglEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQGhwbC5ocC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjE4IDIwMDUvMDUvMDkgMDg6MDI6MDUgcm9sYW5kIEV4cCAkCi0gKi8KLQotLyoKLSAqIElBLTMyIHN5c2NhbGxzIHRoYXQgaGF2ZSBwb2ludGVyIGFyZ3VtZW50cyB3aGljaCBhcmUgaW5jb21wYXRpYmxlCi0gKiB3aXRoIDY0LWJpdCBsYXlvdXQgZ2V0IHJlZGlyZWN0ZWQgdG8gcHJpbnRhcmdzLgotICovCi0jZGVmaW5lIHN5c19nZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfYWZzX3N5c2NhbGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0cG1zZwkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wdXRwbXNnCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3VnZXRybGltaXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfZm9yawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c193YWl0cGlkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3RpbWUJCXByaW50YXJncwotI2RlZmluZSBzeXNfYnJlYWsJCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkc3RhdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19sc2VlawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zdGltZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wdHJhY2UJCXByaW50YXJncwotI2RlZmluZSBzeXNfYWxhcm0JCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkZnN0YXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfcGF1c2UJCXByaW50YXJncwotI2RlZmluZSBzeXNfdXRpbWUJCXByaW50YXJncwotI2RlZmluZSBzeXNfc3R0eQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19ndHR5CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2Z0aW1lCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3BpcGUJCXByaW50YXJncwotI2RlZmluZSBzeXNfdGltZXMJCXByaW50YXJncwotI2RlZmluZSBzeXNfcHJvZgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWduYWwJCXByaW50YXJncwotI2RlZmluZSBzeXNfbG9jawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19pb2N0bAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19mY250bAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19tcHgJCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3VsaW1pdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19vbGRvbGR1bmFtZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdhY3Rpb24JCXByaW50YXJncwotI2RlZmluZSBzeXNfc2dldG1hc2sJCXByaW50YXJncwotI2RlZmluZSBzeXNfc3NldG1hc2sJCXByaW50YXJncwotI2RlZmluZSBzeXNfc2lnc3VzcGVuZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdwZW5kaW5nCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NldHJsaW1pdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19nZXRydXNhZ2UJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZSBzeXNfc2V0dGltZW9mZGF5CXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0Z3JvdXBzCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NldGdyb3VwcwkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZWxlY3QJCXByaW50YXJncwotI2RlZmluZSBzeXNfb2xkbHN0YXQJCXByaW50YXJncwotI2RlZmluZSBzeXNfcmVhZGRpcgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wcm9maWwJCXByaW50YXJncwotI2RlZmluZSBzeXNfc3RhdGZzCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2ZzdGF0ZnMJCXByaW50YXJncwotI2RlZmluZSBzeXNfaW9wZXJtCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NvY2tldGNhbGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfc2V0aXRpbWVyCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2dldGl0aW1lcgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2xzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2ZzdGF0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZHVuYW1lCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2lvcGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfaWRsZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c192bTg2b2xkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3dhaXQ0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3N5c2luZm8JCXByaW50YXJncwotI2RlZmluZSBzeXNfaXBjCQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdyZXR1cm4JCXByaW50YXJncwotI2RlZmluZSBzeXNfdW5hbWUJCXByaW50YXJncwotI2RlZmluZSBzeXNfbW9kaWZ5X2xkdAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19hZGp0aW1leAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdwcm9jbWFzawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19jcmVhdGVfbW9kdWxlCXByaW50YXJncwotI2RlZmluZSBzeXNfaW5pdF9tb2R1bGUJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0X2tlcm5lbF9zeW1zCXByaW50YXJncwotI2RlZmluZSBzeXNfcXVvdGFjdGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfYmRmbHVzaAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19wZXJzb25hbGl0eQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19nZXRkZW50cwkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19fbmV3c2VsZWN0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX21zeW5jCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3JlYWR2CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3dyaXRldgkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19fc3lzY3RsCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2dldHJlc3VpZAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c192bTg2CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3F1ZXJ5X21vZHVsZQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX25mc3NlcnZjdGwJCXByaW50YXJncwotI2RlZmluZSBzeXNfZ2V0cmVzZ2lkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3J0X3NpZ3JldHVybglwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3J0X3NpZ2FjdGlvbglwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3J0X3NpZ3Byb2NtYXNrCXByaW50YXJncwotI2RlZmluZSBzeXNfcnRfc2lndGltZWR3YWl0CXByaW50YXJncwotI2RlZmluZSBzeXNfcnRfc2lncXVldWVpbmZvCXByaW50YXJncwotI2RlZmluZSBzeXNfcnRfc2lnc3VzcGVuZAlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3ByZWFkCQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3B3cml0ZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zaWdhbHRzdGFjawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19zZW5kZmlsZQkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c192Zm9yawkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c190cnVuY2F0ZTY0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2Z0cnVuY2F0ZTY0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX3N0YXQ2NAkJcHJpbnRhcmdzCi0jZGVmaW5lIHN5c19sc3RhdDY0CQlwcmludGFyZ3MKLSNkZWZpbmUgc3lzX2ZzdGF0NjQJCXByaW50YXJncwotI2RlZmluZSBzeXNfZmNudGw2NAkJcHJpbnRhcmdzCi0KLSNpbmNsdWRlICIuLi9zeXNjYWxsZW50LmgiCi0KLSN1bmRlZiBzeXNfZ2V0cmxpbWl0Ci0jdW5kZWYgc3lzX2Fmc19zeXNjYWxsCi0jdW5kZWYgc3lzX2dldHBtc2cKLSN1bmRlZiBzeXNfcHV0cG1zZwotI3VuZGVmIHN5c191Z2V0cmxpbWl0Ci0jdW5kZWYgc3lzX2ZvcmsKLSN1bmRlZiBzeXNfd2FpdHBpZAotI3VuZGVmIHN5c190aW1lCi0jdW5kZWYgc3lzX2JyZWFrCi0jdW5kZWYgc3lzX29sZHN0YXQKLSN1bmRlZiBzeXNfbHNlZWsKLSN1bmRlZiBzeXNfc3RpbWUKLSN1bmRlZiBzeXNfcHRyYWNlCi0jdW5kZWYgc3lzX2FsYXJtCi0jdW5kZWYgc3lzX29sZGZzdGF0Ci0jdW5kZWYgc3lzX3BhdXNlCi0jdW5kZWYgc3lzX3V0aW1lCi0jdW5kZWYgc3lzX3N0dHkKLSN1bmRlZiBzeXNfZ3R0eQotI3VuZGVmIHN5c19mdGltZQotI3VuZGVmIHN5c19waXBlCi0jdW5kZWYgc3lzX3RpbWVzCi0jdW5kZWYgc3lzX3Byb2YKLSN1bmRlZiBzeXNfc2lnbmFsCi0jdW5kZWYgc3lzX2xvY2sKLSN1bmRlZiBzeXNfaW9jdGwKLSN1bmRlZiBzeXNfZmNudGwKLSN1bmRlZiBzeXNfbXB4Ci0jdW5kZWYgc3lzX3VsaW1pdAotI3VuZGVmIHN5c19vbGRvbGR1bmFtZQotI3VuZGVmIHN5c19zaWdhY3Rpb24KLSN1bmRlZiBzeXNfc2dldG1hc2sKLSN1bmRlZiBzeXNfc3NldG1hc2sKLSN1bmRlZiBzeXNfc2lnc3VzcGVuZAotI3VuZGVmIHN5c19zaWdwZW5kaW5nCi0jdW5kZWYgc3lzX3NldHJsaW1pdAotI3VuZGVmIHN5c19nZXRydXNhZ2UKLSN1bmRlZiBzeXNfZ2V0dGltZW9mZGF5Ci0jdW5kZWYgc3lzX3NldHRpbWVvZmRheQotI3VuZGVmIHN5c19nZXRncm91cHMKLSN1bmRlZiBzeXNfc2V0Z3JvdXBzCi0jdW5kZWYgc3lzX3NlbGVjdAotI3VuZGVmIHN5c19vbGRsc3RhdAotI3VuZGVmIHN5c19yZWFkZGlyCi0jdW5kZWYgc3lzX3Byb2ZpbAotI3VuZGVmIHN5c19zdGF0ZnMKLSN1bmRlZiBzeXNfZnN0YXRmcwotI3VuZGVmIHN5c19pb3Blcm0KLSN1bmRlZiBzeXNfc29ja2V0Y2FsbAotI3VuZGVmIHN5c19zZXRpdGltZXIKLSN1bmRlZiBzeXNfZ2V0aXRpbWVyCi0jdW5kZWYgc3lzX3N0YXQKLSN1bmRlZiBzeXNfbHN0YXQKLSN1bmRlZiBzeXNfZnN0YXQKLSN1bmRlZiBzeXNfb2xkdW5hbWUKLSN1bmRlZiBzeXNfaW9wbAotI3VuZGVmIHN5c19pZGxlCi0jdW5kZWYgc3lzX3ZtODZvbGQKLSN1bmRlZiBzeXNfd2FpdDQKLSN1bmRlZiBzeXNfc3lzaW5mbwotI3VuZGVmIHN5c19pcGMKLSN1bmRlZiBzeXNfc2lncmV0dXJuCi0jdW5kZWYgc3lzX3VuYW1lCi0jdW5kZWYgc3lzX21vZGlmeV9sZHQKLSN1bmRlZiBzeXNfYWRqdGltZXgKLSN1bmRlZiBzeXNfc2lncHJvY21hc2sKLSN1bmRlZiBzeXNfY3JlYXRlX21vZHVsZQotI3VuZGVmIHN5c19pbml0X21vZHVsZQotI3VuZGVmIHN5c19kZWxldGVfbW9kdWxlCi0jdW5kZWYgc3lzX2dldF9rZXJuZWxfc3ltcwotI3VuZGVmIHN5c19xdW90YWN0bAotI3VuZGVmIHN5c19iZGZsdXNoCi0jdW5kZWYgc3lzX3BlcnNvbmFsaXR5Ci0jdW5kZWYgc3lzX2dldGRlbnRzCi0jdW5kZWYgc3lzX19uZXdzZWxlY3QKLSN1bmRlZiBzeXNfbXN5bmMKLSN1bmRlZiBzeXNfcmVhZHYKLSN1bmRlZiBzeXNfd3JpdGV2Ci0jdW5kZWYgc3lzX19zeXNjdGwKLSN1bmRlZiBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsCi0jdW5kZWYgc3lzX25hbm9zbGVlcAotI3VuZGVmIHN5c19nZXRyZXN1aWQKLSN1bmRlZiBzeXNfdm04NgotI3VuZGVmIHN5c19xdWVyeV9tb2R1bGUKLSN1bmRlZiBzeXNfbmZzc2VydmN0bAotI3VuZGVmIHN5c19nZXRyZXNnaWQKLSN1bmRlZiBzeXNfcnRfc2lncmV0dXJuCi0jdW5kZWYgc3lzX3J0X3NpZ2FjdGlvbgotI3VuZGVmIHN5c19ydF9zaWdwcm9jbWFzawotI3VuZGVmIHN5c19ydF9zaWd0aW1lZHdhaXQKLSN1bmRlZiBzeXNfcnRfc2lncXVldWVpbmZvCi0jdW5kZWYgc3lzX3J0X3NpZ3N1c3BlbmQKLSN1bmRlZiBzeXNfcHJlYWQKLSN1bmRlZiBzeXNfcHdyaXRlCi0jdW5kZWYgc3lzX3NpZ2FsdHN0YWNrCi0jdW5kZWYgc3lzX3NlbmRmaWxlCi0jdW5kZWYgc3lzX3Zmb3JrCi0jdW5kZWYgc3lzX3RydW5jYXRlNjQKLSN1bmRlZiBzeXNfZnRydW5jYXRlNjQKLSN1bmRlZiBzeXNfc3RhdDY0Ci0jdW5kZWYgc3lzX2xzdGF0NjQKLSN1bmRlZiBzeXNfZnN0YXQ2NAotI3VuZGVmIHN5c19mY250bDY0Ci0KLSNpbmNsdWRlICIuLi9kdW1teS5oIgotCi0vKiBZb3UgbXVzdCBiZSBjYXJlZnVsIHRvIGNoZWNrIC4uL3N5c2NhbGxlbnQuaCBzbyB0aGF0IHRoaXMgdGFibGUKLSAgIHN0YXJ0cyB3aGVyZSB0aGF0IG9uZSBsZWF2ZXMgb2ZmLgotKi8KLQotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMiCX0sIC8qIDM0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQiCX0sIC8qIDM0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUiCX0sIC8qIDM0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYiCX0sIC8qIDM0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDciCX0sIC8qIDM0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgiCX0sIC8qIDM0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkiCX0sIC8qIDM0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTAiCX0sIC8qIDM1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTEiCX0sIC8qIDM1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTIiCX0sIC8qIDM1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTMiCX0sIC8qIDM1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQiCX0sIC8qIDM1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTUiCX0sIC8qIDM1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTYiCX0sIC8qIDM1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTciCX0sIC8qIDM1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTgiCX0sIC8qIDM1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkiCX0sIC8qIDM1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAiCX0sIC8qIDM2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjEiCX0sIC8qIDM2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjIiCX0sIC8qIDM2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMiCX0sIC8qIDM2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qIDM2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUiCX0sIC8qIDM2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qIDM2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qIDM2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgiCX0sIC8qIDM2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qIDM2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAiCX0sIC8qIDM3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzEiCX0sIC8qIDM3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIiCX0sIC8qIDM3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMiCX0sIC8qIDM3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQiCX0sIC8qIDM3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUiCX0sIC8qIDM3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYiCX0sIC8qIDM3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzciCX0sIC8qIDM3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgiCX0sIC8qIDM3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkiCX0sIC8qIDM3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCX0sIC8qIDM4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEiCX0sIC8qIDM4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIiCX0sIC8qIDM4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMiCX0sIC8qIDM4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQiCX0sIC8qIDM4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUiCX0sIC8qIDM4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYiCX0sIC8qIDM4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODciCX0sIC8qIDM4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgiCX0sIC8qIDM4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkiCX0sIC8qIDM4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qIDM5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qIDM5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIiCX0sIC8qIDM5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qIDM5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qIDM5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUiCX0sIC8qIDM5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qIDM5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qIDM5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgiCX0sIC8qIDM5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qIDM5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDAiCX0sIC8qIDQwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDEiCX0sIC8qIDQwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDIiCX0sIC8qIDQwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDMiCX0sIC8qIDQwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDQiCX0sIC8qIDQwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDUiCX0sIC8qIDQwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDYiCX0sIC8qIDQwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDciCX0sIC8qIDQwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDgiCX0sIC8qIDQwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDkiCX0sIC8qIDQwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTAiCX0sIC8qIDQxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTEiCX0sIC8qIDQxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTIiCX0sIC8qIDQxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTMiCX0sIC8qIDQxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTQiCX0sIC8qIDQxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTUiCX0sIC8qIDQxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTYiCX0sIC8qIDQxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTciCX0sIC8qIDQxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTgiCX0sIC8qIDQxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTkiCX0sIC8qIDQxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjAiCX0sIC8qIDQyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjEiCX0sIC8qIDQyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjIiCX0sIC8qIDQyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjMiCX0sIC8qIDQyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjQiCX0sIC8qIDQyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjUiCX0sIC8qIDQyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjYiCX0sIC8qIDQyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjciCX0sIC8qIDQyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjgiCX0sIC8qIDQyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjkiCX0sIC8qIDQyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzAiCX0sIC8qIDQzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzEiCX0sIC8qIDQzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIiCX0sIC8qIDQzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzMiCX0sIC8qIDQzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQiCX0sIC8qIDQzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzUiCX0sIC8qIDQzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzYiCX0sIC8qIDQzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzciCX0sIC8qIDQzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzgiCX0sIC8qIDQzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzkiCX0sIC8qIDQzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDAiCX0sIC8qIDQ0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDEiCX0sIC8qIDQ0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDIiCX0sIC8qIDQ0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDMiCX0sIC8qIDQ0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQiCX0sIC8qIDQ0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDUiCX0sIC8qIDQ0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDYiCX0sIC8qIDQ0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDciCX0sIC8qIDQ0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDgiCX0sIC8qIDQ0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDkiCX0sIC8qIDQ0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTAiCX0sIC8qIDQ1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTEiCX0sIC8qIDQ1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTIiCX0sIC8qIDQ1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTMiCX0sIC8qIDQ1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQiCX0sIC8qIDQ1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTUiCX0sIC8qIDQ1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTYiCX0sIC8qIDQ1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTciCX0sIC8qIDQ1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTgiCX0sIC8qIDQ1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTkiCX0sIC8qIDQ1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjAiCX0sIC8qIDQ2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjEiCX0sIC8qIDQ2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjIiCX0sIC8qIDQ2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjMiCX0sIC8qIDQ2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQiCX0sIC8qIDQ2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjUiCX0sIC8qIDQ2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjYiCX0sIC8qIDQ2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjciCX0sIC8qIDQ2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjgiCX0sIC8qIDQ2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjkiCX0sIC8qIDQ2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzAiCX0sIC8qIDQ3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzEiCX0sIC8qIDQ3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzIiCX0sIC8qIDQ3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzMiCX0sIC8qIDQ3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQiCX0sIC8qIDQ3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzUiCX0sIC8qIDQ3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzYiCX0sIC8qIDQ3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzciCX0sIC8qIDQ3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzgiCX0sIC8qIDQ3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzkiCX0sIC8qIDQ3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODAiCX0sIC8qIDQ4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODEiCX0sIC8qIDQ4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODIiCX0sIC8qIDQ4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODMiCX0sIC8qIDQ4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQiCX0sIC8qIDQ4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODUiCX0sIC8qIDQ4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODYiCX0sIC8qIDQ4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODciCX0sIC8qIDQ4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODgiCX0sIC8qIDQ4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODkiCX0sIC8qIDQ4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTAiCX0sIC8qIDQ5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTEiCX0sIC8qIDQ5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTIiCX0sIC8qIDQ5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTMiCX0sIC8qIDQ5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQiCX0sIC8qIDQ5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTUiCX0sIC8qIDQ5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTYiCX0sIC8qIDQ5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTciCX0sIC8qIDQ5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTgiCX0sIC8qIDQ5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTkiCX0sIC8qIDQ5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDAiCX0sIC8qIDUwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDEiCX0sIC8qIDUwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDIiCX0sIC8qIDUwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDMiCX0sIC8qIDUwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDQiCX0sIC8qIDUwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDUiCX0sIC8qIDUwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDYiCX0sIC8qIDUwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDciCX0sIC8qIDUwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDgiCX0sIC8qIDUwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDkiCX0sIC8qIDUwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTAiCX0sIC8qIDUxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTEiCX0sIC8qIDUxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTIiCX0sIC8qIDUxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTMiCX0sIC8qIDUxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTQiCX0sIC8qIDUxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTUiCX0sIC8qIDUxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTYiCX0sIC8qIDUxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTciCX0sIC8qIDUxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTgiCX0sIC8qIDUxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTkiCX0sIC8qIDUxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjAiCX0sIC8qIDUyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjEiCX0sIC8qIDUyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjIiCX0sIC8qIDUyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjMiCX0sIC8qIDUyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjQiCX0sIC8qIDUyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjUiCX0sIC8qIDUyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjYiCX0sIC8qIDUyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjciCX0sIC8qIDUyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjgiCX0sIC8qIDUyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjkiCX0sIC8qIDUyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzAiCX0sIC8qIDUzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzEiCX0sIC8qIDUzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzIiCX0sIC8qIDUzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzMiCX0sIC8qIDUzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzQiCX0sIC8qIDUzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzUiCX0sIC8qIDUzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzYiCX0sIC8qIDUzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzciCX0sIC8qIDUzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzgiCX0sIC8qIDUzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzkiCX0sIC8qIDUzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDAiCX0sIC8qIDU0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDEiCX0sIC8qIDU0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDIiCX0sIC8qIDU0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDMiCX0sIC8qIDU0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDQiCX0sIC8qIDU0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDUiCX0sIC8qIDU0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDYiCX0sIC8qIDU0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDciCX0sIC8qIDU0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDgiCX0sIC8qIDU0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDkiCX0sIC8qIDU0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTAiCX0sIC8qIDU1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTEiCX0sIC8qIDU1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTIiCX0sIC8qIDU1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTMiCX0sIC8qIDU1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTQiCX0sIC8qIDU1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTUiCX0sIC8qIDU1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTYiCX0sIC8qIDU1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTciCX0sIC8qIDU1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTgiCX0sIC8qIDU1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTkiCX0sIC8qIDU1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjAiCX0sIC8qIDU2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjEiCX0sIC8qIDU2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjIiCX0sIC8qIDU2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjMiCX0sIC8qIDU2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjQiCX0sIC8qIDU2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjUiCX0sIC8qIDU2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjYiCX0sIC8qIDU2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjciCX0sIC8qIDU2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjgiCX0sIC8qIDU2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjkiCX0sIC8qIDU2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzAiCX0sIC8qIDU3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzEiCX0sIC8qIDU3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzIiCX0sIC8qIDU3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzMiCX0sIC8qIDU3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzQiCX0sIC8qIDU3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzUiCX0sIC8qIDU3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzYiCX0sIC8qIDU3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzciCX0sIC8qIDU3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzgiCX0sIC8qIDU3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzkiCX0sIC8qIDU3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODAiCX0sIC8qIDU4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODEiCX0sIC8qIDU4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODIiCX0sIC8qIDU4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODMiCX0sIC8qIDU4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODQiCX0sIC8qIDU4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODUiCX0sIC8qIDU4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODYiCX0sIC8qIDU4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODciCX0sIC8qIDU4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODgiCX0sIC8qIDU4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODkiCX0sIC8qIDU4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTAiCX0sIC8qIDU5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTEiCX0sIC8qIDU5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTIiCX0sIC8qIDU5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTMiCX0sIC8qIDU5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTQiCX0sIC8qIDU5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTUiCX0sIC8qIDU5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTYiCX0sIC8qIDU5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTciCX0sIC8qIDU5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTgiCX0sIC8qIDU5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTkiCX0sIC8qIDU5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDAiCX0sIC8qIDYwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDEiCX0sIC8qIDYwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDIiCX0sIC8qIDYwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDMiCX0sIC8qIDYwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDQiCX0sIC8qIDYwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDUiCX0sIC8qIDYwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDYiCX0sIC8qIDYwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDciCX0sIC8qIDYwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDgiCX0sIC8qIDYwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDkiCX0sIC8qIDYwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTAiCX0sIC8qIDYxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTEiCX0sIC8qIDYxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTIiCX0sIC8qIDYxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTMiCX0sIC8qIDYxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTQiCX0sIC8qIDYxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTUiCX0sIC8qIDYxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTYiCX0sIC8qIDYxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTciCX0sIC8qIDYxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTgiCX0sIC8qIDYxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTkiCX0sIC8qIDYxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjAiCX0sIC8qIDYyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjEiCX0sIC8qIDYyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjIiCX0sIC8qIDYyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjMiCX0sIC8qIDYyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjQiCX0sIC8qIDYyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjUiCX0sIC8qIDYyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjYiCX0sIC8qIDYyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjciCX0sIC8qIDYyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjgiCX0sIC8qIDYyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjkiCX0sIC8qIDYyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzAiCX0sIC8qIDYzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzEiCX0sIC8qIDYzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzIiCX0sIC8qIDYzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzMiCX0sIC8qIDYzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzQiCX0sIC8qIDYzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzUiCX0sIC8qIDYzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzYiCX0sIC8qIDYzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzciCX0sIC8qIDYzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzgiCX0sIC8qIDYzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzkiCX0sIC8qIDYzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDAiCX0sIC8qIDY0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDEiCX0sIC8qIDY0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDIiCX0sIC8qIDY0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDMiCX0sIC8qIDY0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDQiCX0sIC8qIDY0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDUiCX0sIC8qIDY0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDYiCX0sIC8qIDY0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDciCX0sIC8qIDY0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDgiCX0sIC8qIDY0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDkiCX0sIC8qIDY0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTAiCX0sIC8qIDY1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTEiCX0sIC8qIDY1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTIiCX0sIC8qIDY1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTMiCX0sIC8qIDY1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTQiCX0sIC8qIDY1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTUiCX0sIC8qIDY1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTYiCX0sIC8qIDY1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTciCX0sIC8qIDY1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTgiCX0sIC8qIDY1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTkiCX0sIC8qIDY1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjAiCX0sIC8qIDY2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjEiCX0sIC8qIDY2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjIiCX0sIC8qIDY2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjMiCX0sIC8qIDY2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjQiCX0sIC8qIDY2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjUiCX0sIC8qIDY2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjYiCX0sIC8qIDY2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjciCX0sIC8qIDY2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjgiCX0sIC8qIDY2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjkiCX0sIC8qIDY2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzAiCX0sIC8qIDY3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzEiCX0sIC8qIDY3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzIiCX0sIC8qIDY3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzMiCX0sIC8qIDY3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzQiCX0sIC8qIDY3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzUiCX0sIC8qIDY3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzYiCX0sIC8qIDY3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzciCX0sIC8qIDY3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzgiCX0sIC8qIDY3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzkiCX0sIC8qIDY3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODAiCX0sIC8qIDY4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODEiCX0sIC8qIDY4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODIiCX0sIC8qIDY4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODMiCX0sIC8qIDY4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODQiCX0sIC8qIDY4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODUiCX0sIC8qIDY4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODYiCX0sIC8qIDY4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODciCX0sIC8qIDY4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODgiCX0sIC8qIDY4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODkiCX0sIC8qIDY4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTAiCX0sIC8qIDY5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTEiCX0sIC8qIDY5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTIiCX0sIC8qIDY5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTMiCX0sIC8qIDY5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTQiCX0sIC8qIDY5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTUiCX0sIC8qIDY5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTYiCX0sIC8qIDY5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTciCX0sIC8qIDY5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTgiCX0sIC8qIDY5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTkiCX0sIC8qIDY5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDAiCX0sIC8qIDcwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDEiCX0sIC8qIDcwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDIiCX0sIC8qIDcwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDMiCX0sIC8qIDcwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDQiCX0sIC8qIDcwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDUiCX0sIC8qIDcwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDYiCX0sIC8qIDcwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDciCX0sIC8qIDcwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDgiCX0sIC8qIDcwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDkiCX0sIC8qIDcwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTAiCX0sIC8qIDcxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTEiCX0sIC8qIDcxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTIiCX0sIC8qIDcxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTMiCX0sIC8qIDcxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTQiCX0sIC8qIDcxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTUiCX0sIC8qIDcxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTYiCX0sIC8qIDcxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTciCX0sIC8qIDcxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTgiCX0sIC8qIDcxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTkiCX0sIC8qIDcxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjAiCX0sIC8qIDcyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjEiCX0sIC8qIDcyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjIiCX0sIC8qIDcyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjMiCX0sIC8qIDcyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjQiCX0sIC8qIDcyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjUiCX0sIC8qIDcyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjYiCX0sIC8qIDcyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjciCX0sIC8qIDcyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjgiCX0sIC8qIDcyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjkiCX0sIC8qIDcyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzAiCX0sIC8qIDczMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzEiCX0sIC8qIDczMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzIiCX0sIC8qIDczMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzMiCX0sIC8qIDczMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzQiCX0sIC8qIDczNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzUiCX0sIC8qIDczNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzYiCX0sIC8qIDczNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzciCX0sIC8qIDczNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzgiCX0sIC8qIDczOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzkiCX0sIC8qIDczOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDAiCX0sIC8qIDc0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDEiCX0sIC8qIDc0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDIiCX0sIC8qIDc0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDMiCX0sIC8qIDc0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDQiCX0sIC8qIDc0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDUiCX0sIC8qIDc0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDYiCX0sIC8qIDc0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDciCX0sIC8qIDc0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDgiCX0sIC8qIDc0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDkiCX0sIC8qIDc0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTAiCX0sIC8qIDc1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTEiCX0sIC8qIDc1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTIiCX0sIC8qIDc1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTMiCX0sIC8qIDc1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTQiCX0sIC8qIDc1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTUiCX0sIC8qIDc1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTYiCX0sIC8qIDc1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTciCX0sIC8qIDc1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTgiCX0sIC8qIDc1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTkiCX0sIC8qIDc1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjAiCX0sIC8qIDc2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjEiCX0sIC8qIDc2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjIiCX0sIC8qIDc2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjMiCX0sIC8qIDc2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjQiCX0sIC8qIDc2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjUiCX0sIC8qIDc2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjYiCX0sIC8qIDc2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjciCX0sIC8qIDc2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjgiCX0sIC8qIDc2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjkiCX0sIC8qIDc2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzAiCX0sIC8qIDc3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzEiCX0sIC8qIDc3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzIiCX0sIC8qIDc3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzMiCX0sIC8qIDc3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzQiCX0sIC8qIDc3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzUiCX0sIC8qIDc3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzYiCX0sIC8qIDc3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzciCX0sIC8qIDc3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzgiCX0sIC8qIDc3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzkiCX0sIC8qIDc3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODAiCX0sIC8qIDc4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODEiCX0sIC8qIDc4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODIiCX0sIC8qIDc4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODMiCX0sIC8qIDc4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODQiCX0sIC8qIDc4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODUiCX0sIC8qIDc4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODYiCX0sIC8qIDc4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODciCX0sIC8qIDc4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODgiCX0sIC8qIDc4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODkiCX0sIC8qIDc4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTAiCX0sIC8qIDc5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTEiCX0sIC8qIDc5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTIiCX0sIC8qIDc5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTMiCX0sIC8qIDc5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTQiCX0sIC8qIDc5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTUiCX0sIC8qIDc5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTYiCX0sIC8qIDc5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTciCX0sIC8qIDc5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTgiCX0sIC8qIDc5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTkiCX0sIC8qIDc5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDAiCX0sIC8qIDgwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDEiCX0sIC8qIDgwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDIiCX0sIC8qIDgwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDMiCX0sIC8qIDgwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDQiCX0sIC8qIDgwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDUiCX0sIC8qIDgwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDYiCX0sIC8qIDgwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDciCX0sIC8qIDgwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDgiCX0sIC8qIDgwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDkiCX0sIC8qIDgwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTAiCX0sIC8qIDgxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTEiCX0sIC8qIDgxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTIiCX0sIC8qIDgxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTMiCX0sIC8qIDgxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTQiCX0sIC8qIDgxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTUiCX0sIC8qIDgxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTYiCX0sIC8qIDgxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTciCX0sIC8qIDgxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTgiCX0sIC8qIDgxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTkiCX0sIC8qIDgxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjAiCX0sIC8qIDgyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjEiCX0sIC8qIDgyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjIiCX0sIC8qIDgyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjMiCX0sIC8qIDgyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjQiCX0sIC8qIDgyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjUiCX0sIC8qIDgyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjYiCX0sIC8qIDgyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjciCX0sIC8qIDgyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjgiCX0sIC8qIDgyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjkiCX0sIC8qIDgyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzAiCX0sIC8qIDgzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzEiCX0sIC8qIDgzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzIiCX0sIC8qIDgzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzMiCX0sIC8qIDgzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzQiCX0sIC8qIDgzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzUiCX0sIC8qIDgzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzYiCX0sIC8qIDgzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzciCX0sIC8qIDgzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzgiCX0sIC8qIDgzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzkiCX0sIC8qIDgzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDAiCX0sIC8qIDg0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDEiCX0sIC8qIDg0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDIiCX0sIC8qIDg0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDMiCX0sIC8qIDg0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDQiCX0sIC8qIDg0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDUiCX0sIC8qIDg0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDYiCX0sIC8qIDg0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDciCX0sIC8qIDg0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDgiCX0sIC8qIDg0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDkiCX0sIC8qIDg0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTAiCX0sIC8qIDg1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTEiCX0sIC8qIDg1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTIiCX0sIC8qIDg1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTMiCX0sIC8qIDg1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTQiCX0sIC8qIDg1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTUiCX0sIC8qIDg1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTYiCX0sIC8qIDg1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTciCX0sIC8qIDg1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTgiCX0sIC8qIDg1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTkiCX0sIC8qIDg1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjAiCX0sIC8qIDg2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjEiCX0sIC8qIDg2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjIiCX0sIC8qIDg2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjMiCX0sIC8qIDg2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjQiCX0sIC8qIDg2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjUiCX0sIC8qIDg2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjYiCX0sIC8qIDg2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjciCX0sIC8qIDg2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjgiCX0sIC8qIDg2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjkiCX0sIC8qIDg2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzAiCX0sIC8qIDg3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzEiCX0sIC8qIDg3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzIiCX0sIC8qIDg3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzMiCX0sIC8qIDg3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzQiCX0sIC8qIDg3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzUiCX0sIC8qIDg3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzYiCX0sIC8qIDg3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzciCX0sIC8qIDg3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzgiCX0sIC8qIDg3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzkiCX0sIC8qIDg3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODAiCX0sIC8qIDg4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODEiCX0sIC8qIDg4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODIiCX0sIC8qIDg4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODMiCX0sIC8qIDg4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODQiCX0sIC8qIDg4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODUiCX0sIC8qIDg4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODYiCX0sIC8qIDg4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODciCX0sIC8qIDg4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODgiCX0sIC8qIDg4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODkiCX0sIC8qIDg4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTAiCX0sIC8qIDg5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTEiCX0sIC8qIDg5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTIiCX0sIC8qIDg5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTMiCX0sIC8qIDg5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTQiCX0sIC8qIDg5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTUiCX0sIC8qIDg5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTYiCX0sIC8qIDg5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTciCX0sIC8qIDg5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTgiCX0sIC8qIDg5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTkiCX0sIC8qIDg5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDAiCX0sIC8qIDkwMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDEiCX0sIC8qIDkwMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDIiCX0sIC8qIDkwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDMiCX0sIC8qIDkwMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDQiCX0sIC8qIDkwNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDUiCX0sIC8qIDkwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDYiCX0sIC8qIDkwNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDciCX0sIC8qIDkwNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDgiCX0sIC8qIDkwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDkiCX0sIC8qIDkwOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTAiCX0sIC8qIDkxMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTEiCX0sIC8qIDkxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTIiCX0sIC8qIDkxMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTMiCX0sIC8qIDkxMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTQiCX0sIC8qIDkxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTUiCX0sIC8qIDkxNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTYiCX0sIC8qIDkxNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTciCX0sIC8qIDkxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTgiCX0sIC8qIDkxOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTkiCX0sIC8qIDkxOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjAiCX0sIC8qIDkyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjEiCX0sIC8qIDkyMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjIiCX0sIC8qIDkyMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjMiCX0sIC8qIDkyMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjQiCX0sIC8qIDkyNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjUiCX0sIC8qIDkyNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjYiCX0sIC8qIDkyNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjciCX0sIC8qIDkyNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjgiCX0sIC8qIDkyOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjkiCX0sIC8qIDkyOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzAiCX0sIC8qIDkzMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzEiCX0sIC8qIDkzMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzIiCX0sIC8qIDkzMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzMiCX0sIC8qIDkzMyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzQiCX0sIC8qIDkzNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzUiCX0sIC8qIDkzNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzYiCX0sIC8qIDkzNiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzciCX0sIC8qIDkzNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzgiCX0sIC8qIDkzOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzkiCX0sIC8qIDkzOSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDAiCX0sIC8qIDk0MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDEiCX0sIC8qIDk0MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDIiCX0sIC8qIDk0MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDMiCX0sIC8qIDk0MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDQiCX0sIC8qIDk0NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDUiCX0sIC8qIDk0NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDYiCX0sIC8qIDk0NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDciCX0sIC8qIDk0NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDgiCX0sIC8qIDk0OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDkiCX0sIC8qIDk0OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTAiCX0sIC8qIDk1MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTEiCX0sIC8qIDk1MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTIiCX0sIC8qIDk1MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTMiCX0sIC8qIDk1MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTQiCX0sIC8qIDk1NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTUiCX0sIC8qIDk1NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTYiCX0sIC8qIDk1NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTciCX0sIC8qIDk1NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTgiCX0sIC8qIDk1OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTkiCX0sIC8qIDk1OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjAiCX0sIC8qIDk2MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjEiCX0sIC8qIDk2MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjIiCX0sIC8qIDk2MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjMiCX0sIC8qIDk2MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjQiCX0sIC8qIDk2NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjUiCX0sIC8qIDk2NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjYiCX0sIC8qIDk2NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjciCX0sIC8qIDk2NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjgiCX0sIC8qIDk2OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjkiCX0sIC8qIDk2OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzAiCX0sIC8qIDk3MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzEiCX0sIC8qIDk3MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzIiCX0sIC8qIDk3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzMiCX0sIC8qIDk3MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzQiCX0sIC8qIDk3NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzUiCX0sIC8qIDk3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzYiCX0sIC8qIDk3NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzciCX0sIC8qIDk3NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzgiCX0sIC8qIDk3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzkiCX0sIC8qIDk3OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODAiCX0sIC8qIDk4MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODEiCX0sIC8qIDk4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODIiCX0sIC8qIDk4MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODMiCX0sIC8qIDk4MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODQiCX0sIC8qIDk4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODUiCX0sIC8qIDk4NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODYiCX0sIC8qIDk4NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODciCX0sIC8qIDk4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODgiCX0sIC8qIDk4OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODkiCX0sIC8qIDk4OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTAiCX0sIC8qIDk5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTEiCX0sIC8qIDk5MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTIiCX0sIC8qIDk5MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTMiCX0sIC8qIDk5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTQiCX0sIC8qIDk5NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTUiCX0sIC8qIDk5NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTYiCX0sIC8qIDk5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTciCX0sIC8qIDk5NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTgiCX0sIC8qIDk5OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTkiCX0sIC8qIDk5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDAwIgl9LCAvKiAxMDAwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDEiCX0sIC8qIDEwMDEgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwMiIJfSwgLyogMTAwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDAzIgl9LCAvKiAxMDAzICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDQiCX0sIC8qIDEwMDQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwNSIJfSwgLyogMTAwNSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDA2Igl9LCAvKiAxMDA2ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDciCX0sIC8qIDEwMDcgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwOCIJfSwgLyogMTAwOCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDA5Igl9LCAvKiAxMDA5ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTAiCX0sIC8qIDEwMTAgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxMSIJfSwgLyogMTAxMSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDEyIgl9LCAvKiAxMDEyICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTMiCX0sIC8qIDEwMTMgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxNCIJfSwgLyogMTAxNCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDE1Igl9LCAvKiAxMDE1ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTYiCX0sIC8qIDEwMTYgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxNyIJfSwgLyogMTAxNyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDE4Igl9LCAvKiAxMDE4ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTkiCX0sIC8qIDEwMTkgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAyMCIJfSwgLyogMTAyMCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDIxIgl9LCAvKiAxMDIxICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMjIiCX0sIC8qIDEwMjIgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAyMyIJfSwgLyogMTAyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJIm5pX3N5c2NhbGwiCX0sIC8qIDEwMjQgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0IgkJfSwgLyogMTAyNSAqLwotCXsgMywJVEYsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAxMDI2ICovCi0JeyAzLAlURiwJc3lzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogMTAyNyAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiAxMDI4ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiAxMDI5ICovCi0JeyAyLAkwLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiAxMDMwICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDEwMzEgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAzMiAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiAxMDMzICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTAzNCAqLwotCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMDM1ICovCi0JeyAyLAkwLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMTAzNiAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDEwMzcgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxMDM4ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTAzOSAqLwotCXsgMywJVEYsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDEwNDAgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAxMDQxICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiAxMDQyICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMTA0MyAqLwotCXsgMSwJMCwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiAxMDQ0ICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMTA0NSAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDEwNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDEwNDcgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAxMDQ4ICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDEwNDkgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAxMDUwICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMDUxICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTA1MiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAxMDUzICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDEwNTQgKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAxMDU1ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogMTA1NiAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiAxMDU3ICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogMTA1OCAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogMTA1OSAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiAxMDYwICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogMTA2MSAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDEwNjIgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDEwNjMgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogMTA2NCAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogMTA2NSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogMTA2NiAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogMTA2NyAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiAxMDY4ICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiAxMDY5ICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogMTA3MCAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiAxMDcxICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDEwNzIgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXN1aWQiCX0sIC8qIDEwNzMgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxMDc0ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc2dpZCIJfSwgLyogMTA3NSAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc2dpZCIJfSwgLyogMTA3NiAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDEwNzcgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiAxMDc4ICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMDc5ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiAxMDgwICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogMTA4MSAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDEwODIgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiAxMDgzICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogMTA4NCAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDEwODUgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiAxMDg2ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiAxMDg3ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiAxMDg4ICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTA4OSAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDEwOTAgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiAxMDkxICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiAxMDkyICovCi0JeyAxLAkwLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogMTA5MyAqLwotCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDEwOTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDEwOTUgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiAxMDk2ICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiAxMDk3ICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogMTA5OCAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDEwOTkgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiAxMTAwICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogMTEwMSAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDExMDIgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogMTEwMyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTEwNCAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDExMDUgKi8KLQl7IDMsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMTEwNiAqLwotCXsgMywJVEksCXByaW50YXJncywJCSJzZW1vcCIJCX0sIC8qIDExMDcgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMTEwOCAqLwotCXsgMiwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAxMTA5ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDExMTAgKi8KLQl7IDUsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMTExMSAqLwotCXsgMywJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAxMTEyICovCi0JeyAzLAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDExMTMgKi8KLQl7IDMsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAxMTE0ICovCi0JeyAxLAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMTExNSAqLwotCXsgMywJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAxMTE2ICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTExNyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDExMTggKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMTE5ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDExMjAgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMTIxICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMTIyICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTIzICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTEyNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxMTI1ICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogMTEyNiAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTEyNyAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDExMjggKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTEyOSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTEzMCAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMTMxICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDExMzIgKi8KLQl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMTMzICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDExMzQgKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTEzNSAqLwotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTEzNiAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMTM3ICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMTM4ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMTM5ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgLyogMTE0MCAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDExNDEgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTE0MiAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMTQzICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDExNDQgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDExNDUgKi8KLQl7IDUsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDExNDYgKi8KLQl7IDUsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxMTQ3ICovCi0JeyA0LAkwLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxMTQ4ICovCi0JeyA0LAkwLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTE0OSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJIl9zeXNjdGwiCX0sIC8qIDExNTAgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAiCQl9LCAvKiAxMTUxICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogMTE1MiAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTE1MyAqLwotCXsgMSwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxMTU0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDExNTUgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxMTU2ICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxMTU3ICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxMTU4ICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxMTU5ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxMTYwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiAxMTYxICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDExNjIgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTE2MyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCX0sIC8qIDExNjQgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sIC8qIDExNjUgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDExNjYgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxMTY3ICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogMTE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDExNjkgKi8KLQl7IDUsCTAsCXN5c19wcmN0bCwJCSJwcmN0bCIJCX0sIC8qIDExNzAgKi8KLQl7IDEsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgl9LCAvKiAxMTcxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDExNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfcmVhZCJ9LCAvKiAxMTczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3dyaXRlIn0sIC8qIDExNzQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJwZXJmbW9uY3RsIgl9LCAvKiAxMTc1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDExNzYgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgl9LCAvKiAxMTc3ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxMTc4ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTE3OSAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTE4MCAqLwotCXsgMCwJVFMsCXN5c19zaWdyZXR1cm4sCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxMTgxICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxMTgyICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxMTgzICovCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDExODQgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxMTg1ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTE4NiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTE4NyAqLwotCXsgNSwJVE4sCXByaW50YXJncywJCSJnZXRwbXNnIgl9LCAvKiAxMTg4ICovCi0JeyA1LAlUTiwJcHJpbnRhcmdzLAkJInB1dHBtc2ciCX0sIC8qIDExODkgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMTE5MCAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAxMTkxICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMTE5MiAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAxMTkzICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDExOTQgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMTE5NSAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAxMTk2ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMTE5NyAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAxMTk4ICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDExOTkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMTIwMCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMTIwMSAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMTIwMiAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDEyMDMgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAxMjA0ICovCi0JeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMTIwNSAqLwotCXsgMywJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDEyMDYgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDEyMDcgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgl9LCAvKiAxMjA4ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAxMjA5ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEyMTAgKi8KLQl7IDIsCTAsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEyMTEgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMjEyICovCi0JeyA2LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lMiIJfSwgLyogMTIxMyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldGRlbnRzNjQiCX0sIC8qIDEyMTQgKi8KLQl7IDIsCTAsCXByaW50YXJncywJCSJnZXR1bndpbmQiCX0sIC8qIDEyMTUgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAxMjE2ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgl9LCAvKiAxMjE3ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMTIxOCAqLwotCXsgNSwJMCwJc3lzX3NldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMTIxOSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMTIyMCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDEyMjEgKi8KLQl7IDQsCTAsCXN5c19nZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDEyMjIgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMTIyMyAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogMTIyNCAqLwotCXsgMywJMCwJc3lzX2xpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAxMjI1ICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCX0sIC8qIDEyMjYgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDEyMjcgKi8KLQl7IDIsCTAsCXN5c19yZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMTIyOCAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogMTIyOSAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJfSwgLyogMTIzMCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkifSwvKiAxMjMxICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSJ9LC8qIDEyMzIgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMTIzMyAqLwotCXsgNSwJVEYsCXN5c19mYWR2aXNlNjQsCQkiZmFkdmlzZTY0Igl9LCAvKiAxMjM0ICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDEyMzUgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiAxMjM2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogMTIzNyAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgl9LCAvKiAxMjM4ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAxMjM5ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMTI0MCAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDEyNDEgKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAxMjQyICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAxMjQzICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogMTI0NCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMTI0NSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiAxMjQ2ICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMTI0NyAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMTI0OCAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAxMjQ5ICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDEyNTAgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAxMjUxICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAxMjUyICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDEyNTMgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMTI1NCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMTI1NSAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAxMjU2ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiZnN0YXRmczY0Igl9LCAvKiAxMjU3ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic3RhdGZzNjQiCX0sIC8qIDEyNTggKi8KLQl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCX0sIC8qIDEyNTkgKi8KLQl7IDUsCTAsCXN5c19nZXRfbWVtcG9saWN5LAkiZ2V0X21lbXBvbGljeSIJfSwgLyogMTI2MCAqLwotCXsgMywJMCwJc3lzX3NldF9tZW1wb2xpY3ksCSJzZXRfbWVtcG9saWN5Igl9LCAvKiAxMjYxICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgl9LCAvKiAxMjYyICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMTI2MyAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMTI2NCAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIgfSwgLyogMTI2NSAqLwotCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDEyNjYgKi8KLQl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMTI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAxMjY4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMTI2OSAqLwotCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAxMjcwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzEiCX0sIC8qIDEyNzEgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3MiIJfSwgLyogMTI3MiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjczIgl9LCAvKiAxMjczICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzQiCX0sIC8qIDEyNzQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3NSIJfSwgLyogMTI3NSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc2Igl9LCAvKiAxMjc2ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzciCX0sIC8qIDEyNzcgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3OCIJfSwgLyogMTI3OCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc5Igl9LCAvKiAxMjc5ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODAiCX0sIC8qIDEyODAgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI4MSIJfSwgLyogMTI4MSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjgyIgl9LCAvKiAxMjgyICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODMiCX0sIC8qIDEyODMgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NCIJfSwgLyogMTI4NCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg1Igl9LCAvKiAxMjg1ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODYiCX0sIC8qIDEyODYgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NyIJfSwgLyogMTI4NyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg4Igl9LCAvKiAxMjg4ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODkiCX0sIC8qIDEyODkgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MCIJfSwgLyogMTI5MCAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjkxIgl9LCAvKiAxMjkxICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTIiCX0sIC8qIDEyOTIgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MyIJfSwgLyogMTI5MyAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk0Igl9LCAvKiAxMjk0ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTUiCX0sIC8qIDEyOTUgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5NiIJfSwgLyogMTI5NiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk3Igl9LCAvKiAxMjk3ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTgiCX0sIC8qIDEyOTggKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI5OSIJfSwgLyogMTI5OSAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAwIgl9LCAvKiAxMzAwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDEiCX0sIC8qIDEzMDEgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTMwMiIJfSwgLyogMTMwMiAqLwotCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAzIgl9LCAvKiAxMzAzICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDQiCX0sIC8qIDEzMDQgKi8KLQl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTMwNSIJfSwgLyogMTMwNSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdhMjA3MC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMTIgKzAsMCBAQAotCS8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8KLQl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAotCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAotCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAotCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAotCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAotCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUTEFTVFNFQ1QiLAkweDEyNmN9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRVRMQVNUU0VDVCIsCTB4MTI2ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1RJTUVPVVQiLAkweDIyMDF9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9USU1FT1VUIiwJMHgyMjAyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19FTVVMQVRFRF9IT1NUIiwJMHgyMjAzfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfVFJBTlNGT1JNIiwJMHgyMjA0fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfVFJBTlNGT1JNIiwJMHgyMjA1fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfQ09NTUFORF9RIiwJMHgyMjcwfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfQ09NTUFORF9RIiwJMHgyMjcxfSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1JFU0VSVkVEX1NJWkUiLAkweDIyNzV9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9TQ1NJX0lEIiwJMHgyMjc2fSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfRk9SQ0VfTE9XX0RNQSIsCTB4MjI3OX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0xPV19ETUEiLAkweDIyN2F9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwJMHgyMjdifSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUEFDS19JRCIsCTB4MjI3Y30sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX05VTV9XQUlUSU5HIiwJMHgyMjdkfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfREVCVUciLAkweDIyN2V9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9TR19UQUJMRVNJWkUiLAkweDIyN2Z9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9WRVJTSU9OX05VTSIsCTB4MjI4Mn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfTkVYVF9DTURfTEVOIiwJMHgyMjgzfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TQ1NJX1JFU0VUIiwJMHgyMjg0fSwKLQl7InNjc2kvc2cuaCIsCSJTR19JTyIsCTB4MjI4NX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLAkweDIyODZ9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9LRUVQX09SUEhBTiIsCTB4MjI4N30sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg4fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfQUNDRVNTX0NPVU5UIiwJMHgyMjg5fSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT0dSU1RSQVQiLAkweDMyMDF9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1dTVFJBVCIsCTB4MzIwMn0sCi0JeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9TUlNUUkFUIiwJMHgzMjAzfSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NXU1RSQVQiLAkweDMyMDR9LAotCXsiYXNtL3Byb2Nlc3Nvci5oIiwJIk1JQ1JPQ09ERV9JT0NGUkVFIiwJMHgzNjAwfSwKLQl7ImxpbnV4L3JhZGVvbmZiLmgiLAkiRkJJT19SQURFT05fR0VUX01JUlJPUiIsCTB4NDAwM30sCi0JeyJsaW51eC9yYWRlb25mYi5oIiwJIkZCSU9fUkFERU9OX1NFVF9NSVJST1IiLAkweDQwMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dSQUJfQkFDS0xJR0hUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19ERVJFR0RJU0siLAkweDQyMGN9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRUdORVdESVNLIiwJMHg0MjBkfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVHTkVXRCIsCTB4NDIwZX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFU0NBTkRJU0siLAkweDQyMTB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRMVU5JTkZPIiwJMHg0MjExfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfQklHX1BBU1NUSFJVIiwJMHg0MjEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSQUIiLAkweDQ1OTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAwfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9WU0NSRUVOSU5GTyIsCTB4NDYwMX0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRlNDUkVFTklORk8iLAkweDQ2MDJ9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUQ01BUCIsCTB4NDYwNH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRDTUFQIiwJMHg0NjA1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BBTl9ESVNQTEFZIiwJMHg0NjA2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GQ1VSU09SSU5GTyIsCTB4NDYwN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkNVUlNPUklORk8iLAkweDQ2MDh9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0NVUlNPUiIsCTB4NDYwOH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfVkNVUlNPUklORk8iLAkweDQ2MDl9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NVUlNPUlNUQVRFIiwJMHg0NjBhfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DVVJTT1JTVEFURSIsCTB4NDYwYn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ09OMkZCTUFQIiwJMHg0NjBmfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DT04yRkJNQVAiLAkweDQ2MTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPQkxBTksiLAkweDQ2MTF9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fQUxMT0MiLAkweDQ2MTN9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0ZSRUUiLAkweDQ2MTR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0dMWVBIIiwJMHg0NjE1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9IV0NJTkZPIiwJMHg0NjE2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9NT0RFSU5GTyIsCTB4NDYxN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRElTUElORk8iLAkweDQ2MTh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJGQklPX1dBSVRGT1JWU1lOQyIsCTB4NDYyMH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZMQUciLAkweDQ4MGV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU0ZMQUciLAkweDQ4MGZ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkRFWCIsCTB4NDgxMH0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9JTkZPIiwJMHg0ODEwfSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX0lORk8iLAkweDQ4MTB9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkZPIiwJMHg0ODExfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0NPREVfUE9LRSIsCTB4NDgxMX0sCi0JeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9MT0FEX0NPREUiLAkweDQ4MTF9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfQ09ERV9QRUVLIiwJMHg0ODEyfSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1VOTE9BRF9DT0RFIiwJMHg0ODEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRVMiLAkweDQ4MTN9LAotCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfU1RBUlQiLAkweDQ4MTN9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFUyIsCTB4NDgxNH0sCi0JeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9TVE9QIiwJMHg0ODE0fSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1BBVVNFIiwJMHg0ODE1fSwKLQl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1JFU1RBUlQiLAkweDQ4MTZ9LAotCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfSU5GTyIsCTB4NDgyMH0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9UUkFNX1NFVFVQIiwJMHg0ODIwfSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1JFU0VUIiwJMHg0ODIxfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1RSQU1fUE9LRSIsCTB4NDgyMX0sCi0JeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9QTEFZX05PVEUiLAkweDQ4MjJ9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfVFJBTV9QRUVLIiwJMHg0ODIyfSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9WT0lDRSIsCTB4NDgyM30sCi0JeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9TRVRfUEFSQU1TIiwJMHg0ODI0fSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9NT0RFIiwJMHg0ODI1fSwKLQl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9DT05ORUNUSU9OIiwJMHg0ODI2fSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1BDTV9QT0tFIiwJMHg0ODMwfSwKLQl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1BDTV9QRUVLIiwJMHg0ODMxfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9QRUFLX1JNUyIsCTB4NDg0MH0sCi0JeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfQ09ORklHX0lORk8iLAkweDQ4NDF9LAotCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfVVBMT0FEX0ZJUk1XQVJFIiwJMHg0ODQyfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9WRVJTSU9OIiwJMHg0ODQzfSwKLQl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9NSVhFUiIsCTB4NDg0NH0sCi0JeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfOTYzMl9BRUIiLAkweDQ4NDV9LAotCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfU1RPUCIsCTB4NDg4MH0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9DT05USU5VRSIsCTB4NDg4MX0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9aRVJPX1RSQU1fQ09VTlRFUiIsCTB4NDg4Mn0sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9TSU5HTEVfU1RFUCIsCTB4NDg4M30sCi0JeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9EQkdfUkVBRCIsCTB4NDg4NH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9rZC5oIiwJIktJT0NTT1VORCIsCTB4NGIyZn0sCi0JeyJsaW51eC9rZC5oIiwJIktETUtUT05FIiwJMHg0YjMwfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHRVRMRUQiLAkweDRiMzF9LAotCXsibGludXgva2QuaCIsCSJLRFNFVExFRCIsCTB4NGIzMn0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCVFlQRSIsCTB4NGIzM30sCi0JeyJsaW51eC9rZC5oIiwJIktEQURESU8iLAkweDRiMzR9LAotCXsibGludXgva2QuaCIsCSJLRERFTElPIiwJMHg0YjM1fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RFTkFCSU8iLAkweDRiMzZ9LAotCXsibGludXgva2QuaCIsCSJLRERJU0FCSU8iLAkweDRiMzd9LAotCXsibGludXgva2QuaCIsCSJLRFNFVE1PREUiLAkweDRiM2F9LAotCXsibGludXgva2QuaCIsCSJLREdFVE1PREUiLAkweDRiM2J9LAotCXsibGludXgva2QuaCIsCSJLRE1BUERJU1AiLAkweDRiM2N9LAotCXsibGludXgva2QuaCIsCSJLRFVOTUFQRElTUCIsCTB4NGIzZH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19TQ1JOTUFQIiwJMHg0YjQwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1NDUk5NQVAiLAkweDRiNDF9LAotCXsibGludXgva2QuaCIsCSJLREdLQk1PREUiLAkweDRiNDR9LAotCXsibGludXgva2QuaCIsCSJLRFNLQk1PREUiLAkweDRiNDV9LAotCXsibGludXgva2QuaCIsCSJLREdLQkVOVCIsCTB4NGI0Nn0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCRU5UIiwJMHg0YjQ3fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JTRU5UIiwJMHg0YjQ4fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JTRU5UIiwJMHg0YjQ5fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JESUFDUiIsCTB4NGI0YX0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCRElBQ1IiLAkweDRiNGJ9LAotCXsibGludXgva2QuaCIsCSJLREdFVEtFWUNPREUiLAkweDRiNGN9LAotCXsibGludXgva2QuaCIsCSJLRFNFVEtFWUNPREUiLAkweDRiNGR9LAotCXsibGludXgva2QuaCIsCSJLRFNJR0FDQ0VQVCIsCTB4NGI0ZX0sCi0JeyJsaW51eC9rZC5oIiwJIktES0JEUkVQIiwJMHg0YjUyfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlQiLAkweDRiNjB9LAotCXsibGludXgva2QuaCIsCSJQSU9fRk9OVCIsCTB4NGI2MX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTUVUQSIsCTB4NGI2Mn0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTUVUQSIsCTB4NGI2M30sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCTEVEIiwJMHg0YjY0fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JMRUQiLAkweDRiNjV9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JTUFQIiwJMHg0YjY2fSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUCIsCTB4NGI2N30sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVBDTFIiLAkweDRiNjh9LAotCXsibGludXgva2QuaCIsCSJHSU9fVU5JU0NSTk1BUCIsCTB4NGI2OX0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklTQ1JOTUFQIiwJMHg0YjZhfSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX0ZPTlRYIiwJMHg0YjZifSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRYIiwJMHg0YjZjfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlRSRVNFVCIsCTB4NGI2ZH0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19DTUFQIiwJMHg0YjcwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0NNQVAiLAkweDRiNzF9LAotCXsibGludXgva2QuaCIsCSJLREZPTlRPUCIsCTB4NGI3Mn0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfQUREX0VOVFJZIiwJMHg0ZDAwfSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19TRVRfRU5UUlkiLAkweDRkMDF9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0RFTF9FTlRSWSIsCTB4NGQwMn0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfR0VUX0VOVFJZIiwJMHg0ZDAzfSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19LSUxMX0VOVFJZIiwJMHg0ZDA0fSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19BRERfUEFHRV9FTlRSWSIsCTB4NGQwNX0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfU0VUX1BBR0VfRU5UUlkiLAkweDRkMDZ9LAotCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0RFTF9QQUdFX0VOVFJZIiwJMHg0ZDA3fSwKLQl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19HRVRfUEFHRV9FTlRSWSIsCTB4NGQwOH0sCi0JeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfS0lMTF9QQUdFX0VOVFJZIiwJMHg0ZDA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1RJTUVPVVQiLAkweDRlMjB9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1JFU0VUX0RFVklDRSIsCTB4NGUyMX0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfUElQRVMiLAkweDRlMjJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsic291bmQvc3NjYXBlX2lvY3RsLmgiLAkiU05EX1NTQ0FQRV9MT0FEX0JPT1RCIiwJMHg1MDY0fSwKLQl7InNvdW5kL3NzY2FwZV9pb2N0bC5oIiwJIlNORF9TU0NBUEVfTE9BRF9NQ09ERSIsCTB4NTA2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUFZFUlNJT04iLAkweDUzMDB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBBVVNFIiwJMHg1MzAxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfQ0xJRU5UX0lEIiwJMHg1MzAxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNVTUUiLAkweDUzMDJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TWVNURU1fSU5GTyIsCTB4NTMwMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWU1TRiIsCTB4NTMwM30sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1JVTk5JTkdfTU9ERSIsCTB4NTMwM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWVRSS0lORCIsCTB4NTMwNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0hEUiIsCTB4NTMwNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFRPQ0VOVFJZIiwJMHg1MzA2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVE9QIiwJMHg1MzA3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVEFSVCIsCTB4NTMwOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1QiLAkweDUzMDl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTENUUkwiLAkweDUzMGF9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNVQkNITkwiLAkweDUzMGJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMiIsCTB4NTMwY30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUxIiwJMHg1MzBkfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQVVESU8iLAkweDUzMGV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUX1NXIiwJMHg1MzBmfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01NVUxUSVNFU1NJT04iLAkweDUzMTB9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfQ0xJRU5UX0lORk8iLAkweDUzMTB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfTUNOIiwJMHg1MzExfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX0NMSUVOVF9JTkZPIiwJMHg1MzExfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNFVCIsCTB4NTMxMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MUkVBRCIsCTB4NTMxM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRFJBVyIsCTB4NTMxNH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRENPT0tFRCIsCTB4NTMxNX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VFSyIsCTB4NTMxNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUExBWUJMSyIsCTB4NTMxN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFMTCIsCTB4NTMxOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQ0xPU0VUUkFZIiwJMHg1MzE5fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01HRVRTUElORE9XTiIsCTB4NTMxZH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU0VUU1BJTkRPV04iLAkweDUzMWV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRVRfT1BUSU9OUyIsCTB4NTMyMH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0NSRUFURV9QT1JUIiwJMHg1MzIwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fQ0xFQVJfT1BUSU9OUyIsCTB4NTMyMX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0RFTEVURV9QT1JUIiwJMHg1MzIxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX1NQRUVEIiwJMHg1MzIyfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1BPUlRfSU5GTyIsCTB4NTMyMn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTEVDVF9ESVNDIiwJMHg1MzIzfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1BPUlRfSU5GTyIsCTB4NTMyM30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX01FRElBX0NIQU5HRUQiLAkweDUzMjV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9EUklWRV9TVEFUVVMiLAkweDUzMjZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ESVNDX1NUQVRVUyIsCTB4NTMyN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NIQU5HRVJfTlNMT1RTIiwJMHg1MzI4fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTE9DS0RPT1IiLAkweDUzMjl9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ERUJVRyIsCTB4NTMzMH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NVQlNDUklCRV9QT1JUIiwJMHg1MzMwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX0NBUEFCSUxJVFkiLAkweDUzMzF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9VTlNVQlNDUklCRV9QT1JUIiwJMHg1MzMxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfQ1JFQVRFX1FVRVVFIiwJMHg1MzMyfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfREVMRVRFX1FVRVVFIiwJMHg1MzMzfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX0lORk8iLAkweDUzMzR9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfSU5GTyIsCTB4NTMzNX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9OQU1FRF9RVUVVRSIsCTB4NTMzNn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9TVEFUVVMiLAkweDUzNDB9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfVEVNUE8iLAkweDUzNDF9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfVEVNUE8iLAkweDUzNDJ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfT1dORVIiLAkweDUzNDN9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfT1dORVIiLAkweDUzNDR9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfVElNRVIiLAkweDUzNDV9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfVElNRVIiLAkweDUzNDZ9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfQ0xJRU5UIiwJMHg1MzQ5fSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX0NMSUVOVCIsCTB4NTM0YX0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9DTElFTlRfUE9PTCIsCTB4NTM0Yn0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9DTElFTlRfUE9PTCIsCTB4NTM0Y30sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1JFTU9WRV9FVkVOVFMiLAkweDUzNGV9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9RVUVSWV9TVUJTIiwJMHg1MzRmfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1NVQlNDUklQVElPTiIsCTB4NTM1MH0sCi0JeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1FVRVJZX05FWFRfQ0xJRU5UIiwJMHg1MzUxfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUVVFUllfTkVYVF9QT1JUIiwJMHg1MzUyfSwKLQl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX1NZTkMiLAkweDUzNTN9LAotCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfU1lOQyIsCTB4NTM1NH0sCi0JeyJzY3NpL3Njc2lfaW9jdGwuaCIsCSJTQ1NJX0lPQ1RMX0RPT1JMT0NLIiwJMHg1MzgwfSwKLQl7InNjc2kvc2NzaV9pb2N0bC5oIiwJIlNDU0lfSU9DVExfRE9PUlVOTE9DSyIsCTB4NTM4MX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQVVESU9CVUZTSVoiLAkweDUzODJ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfSURMVU4iLAkweDUzODJ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9UQUdHRURfRU5BQkxFIiwJMHg1MzgzfSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLAkweDUzODR9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9QUk9CRV9IT1NUIiwJMHg1Mzg1fSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX0JVU19OVU1CRVIiLAkweDUzODZ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfUENJIiwJMHg1Mzg3fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX1JFQURfU1RSVUNUIiwJMHg1MzkwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX1dSSVRFX1NUUlVDVCIsCTB4NTM5MX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9BVVRIIiwJMHg1MzkyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VORF9QQUNLRVQiLAkweDUzOTN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9ORVhUX1dSSVRBQkxFIiwJMHg1Mzk0fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTEFTVF9XUklUVEVOIiwJMHg1Mzk1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDU0MDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDU0MDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NTQwOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg1NDBhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDU0MGJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDU0MGZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NTQxMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDU0MTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDU0MTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDU0MWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NTQyMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dERVYiLAkweDU0MzJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPUVNJWkUiLAkweDU0NjB9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfREVWX0NSRUFURSIsCTB4NTUwMX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9ERVZfREVTVFJPWSIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ09OTkVDVCIsCTB4NTUxNn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUIiwJMHg1NTE3fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9FVkJJVCIsCTB4NTU2NH0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfS0VZQklUIiwJMHg1NTY1fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9SRUxCSVQiLAkweDU1NjZ9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0FCU0JJVCIsCTB4NTU2N30sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfTVNDQklUIiwJMHg1NTY4fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9MRURCSVQiLAkweDU1Njl9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX1NOREJJVCIsCTB4NTU2YX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfRkZCSVQiLAkweDU1NmJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQ0FQIiwJMHg1NjAwfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfT1BFTlFSWSIsCTB4NTYwMH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUkVTRVJWRUQiLAkweDU2MDF9LAotCXsibGludXgvdnQuaCIsCSJWVF9HRVRNT0RFIiwJMHg1NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNX0ZNVCIsCTB4NTYwMn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1NFVE1PREUiLAkweDU2MDJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9HRVRTVEFURSIsCTB4NTYwM30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GTVQiLAkweDU2MDR9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRU5EU0lHIiwJMHg1NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0ZNVCIsCTB4NTYwNX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1JFTERJU1AiLAkweDU2MDV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ09NUCIsCTB4NTYwNn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0FDVElWQVRFIiwJMHg1NjA2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NPTVAiLAkweDU2MDd9LAotCXsibGludXgvdnQuaCIsCSJWVF9XQUlUQUNUSVZFIiwJMHg1NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19SRVFCVUZTIiwJMHg1NjA4fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfRElTQUxMT0NBVEUiLAkweDU2MDh9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQlVGIiwJMHg1NjA5fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFIiwJMHg1NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZCVUYiLAkweDU2MGF9LAotCXsibGludXgvdnQuaCIsCSJWVF9SRVNJWkVYIiwJMHg1NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0ZCVUYiLAkweDU2MGJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9MT0NLU1dJVENIIiwJMHg1NjBifSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfVU5MT0NLU1dJVENIIiwJMHg1NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19PVkVSTEFZIiwJMHg1NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RQlVGIiwJMHg1NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19EUUJVRiIsCTB4NTYxMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU1RSRUFNT04iLAkweDU2MTJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NUUkVBTU9GRiIsCTB4NTYxM30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19QQVJNIiwJMHg1NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1BBUk0iLAkweDU2MTZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfU1REIiwJMHg1NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1NURCIsCTB4NTYxOH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTVNURCIsCTB4NTYxOX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTUlOUFVUIiwJMHg1NjFhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR19UVk9DVFJMIiwJMHg1NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NUUkwiLAkweDU2MWJ9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TX1RWT0NUUkwiLAkweDU2MWN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ1RSTCIsCTB4NTYxY30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19UVU5FUiIsCTB4NTYxZH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19UVU5FUiIsCTB4NTYxZX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19BVURJTyIsCTB4NTYyMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19BVURJTyIsCTB4NTYyMn0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1RWT1FVRVJZQ1RSTCIsCTB4NTYyNH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllDVFJMIiwJMHg1NjI0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWU1FTlUiLAkweDU2MjV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfSU5QVVQiLAkweDU2MjZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfSU5QVVQiLAkweDU2Mjd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfT1VUUFVUIiwJMHg1NjJlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX09VVFBVVCIsCTB4NTYyZn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTU9VVFBVVCIsCTB4NTYzMH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19BVURPVVQiLAkweDU2MzF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQVVET1VUIiwJMHg1NjMyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX01PRFVMQVRPUiIsCTB4NTYzNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19NT0RVTEFUT1IiLAkweDU2Mzd9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRlJFUVVFTkNZIiwJMHg1NjM4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0ZSRVFVRU5DWSIsCTB4NTYzOX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfQ1JPUENBUCIsCTB4NTYzYX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DUk9QIiwJMHg1NjNifSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NST1AiLAkweDU2M2N9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfSlBFR0NPTVAiLAkweDU2M2R9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfSlBFR0NPTVAiLAkweDU2M2V9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZU1REIiwJMHg1NjNmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19UUllfRk1UIiwJMHg1NjQwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNQVVESU8iLAkweDU2NDF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1BVURPVVQiLAkweDU2NDJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfUFJJT1JJVFkiLAkweDU2NDN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfUFJJT1JJVFkiLAkweDU2NDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX2hlLmgiLAkiSEVfR0VUX1JFRyIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWJyMjY4NC5oIiwJIkJSMjY4NF9TRVRGSUxUIiwJMHg2MTkwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ORVdCQUNLRU5ESUYiLAkweDYxZjN9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCi0JeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19GSUZPX1NUQVRVUyIsCTB4NjcwMX0sCi0JeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19GSUZPX0ZMVVNIIiwJMHg2NzAyfSwKLQl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0NMRUFSX0hBTFQiLAkweDY3MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFQ0VJVkVfTVNHX1RSVU5DIiwJMHg2OTBifSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFQ0VJVkVfTVNHIiwJMHg2OTBjfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFTkRfQ09NTUFORCIsCTB4NjkwZH0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUdJU1RFUl9GT1JfQ01EIiwJMHg2OTBlfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1VOUkVHSVNURVJfRk9SX0NNRCIsCTB4NjkwZn0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfR0VUU19FVkVOVFNfQ01EIiwJMHg2OTEwfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9NWV9BRERSRVNTX0NNRCIsCTB4NjkxMX0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9HRVRfTVlfQUREUkVTU19DTUQiLAkweDY5MTJ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX01ZX0xVTl9DTUQiLAkweDY5MTN9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfR0VUX01ZX0xVTl9DTUQiLAkweDY5MTR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTSUYiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dJRiIsCTB4NmQwYn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAotCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9zaXNmYi5oIiwJIlNJU0ZCX0dFVF9JTkZPIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QTExfR0VUIiwJMHg3MDExfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QTExfU0VUIiwJMHg3MDEyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfREVWSUNFIiwJMHg3MDUwfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19SRUlOVEtNTCIsCTB4NzA1MX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX1JDVkQiLAkweDcwNTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9JT0NUTF9VSUQiLAkweDcwNTN9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dFVF9LTUxfU0laRSIsCTB4NzA1NH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUFVSR0VfRklMRV9EQVRBIiwJMHg3MDU1fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19DT05ORUNUIiwJMHg3MDU2fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HT19GRVRDSF9LTUwiLAkweDcwNTd9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX01BUksiLAkweDcwNTh9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NMRUFSX0ZTRVQiLAkweDcwNTl9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NMRUFSX0FMTF9GU0VUUyIsCTB4NzA2MH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0ZTRVQiLAkweDcwNjF9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1JFVk9LRV9QRVJNSVQiLAkweDcwNjJ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9LTUxTSVpFIiwJMHg3MDYzfSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19DTElFTlRfTUFLRV9CUkFOQ0giLAkweDcwNjR9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFUlZFUl9NQUtFX0JSQU5DSCIsCTB4NzA2NX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQlJBTkNIX1VORE8iLAkweDcwNjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0JSQU5DSF9SRURPIiwJMHg3MDY3fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfUElEIiwJMHg3MDY4fSwKLQl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfQ0hBTk5FTCIsCTB4NzA2OX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX0NIQU5ORUwiLAkweDcwNzB9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dFVF9GSUxFSUQiLAkweDcwNzF9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0FESlVTVF9MTUwiLAkweDcwNzJ9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9GSUxFSUQiLAkweDcwNzN9LAotCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1JFUFNUQVRVUyIsCTB4NzA3NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9ERUxBWSIsCTB4NzBhMH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElTRVJfVElNRU9VVCIsCTB4NzBhMX0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfREVMQVkiLAkweDcwYTh9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJUEFSX1RJTUVPVVQiLAkweDcwYTl9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVElORk8iLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSUEFHRSIsCTB4NzEwMn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJGT1VORCIsCTB4NzEwM30sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQQUdFUkVRIiwJMHg3MTA0fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVFNUQVQiLAkweDcxMDV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUUEFHRSIsCTB4NzEwNn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTVE9QREFVIiwJMHg3MTA3fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFBBR0UiLAkweDcxMDh9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VURElTUCIsCTB4NzEwOX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQVVRTVEFUIiwJMHg3MTBhfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkNBQ0hFIiwJMHg3MTBifSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NFVFZJUlQiLAkweDcxMGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVElORk8iLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NSRVNFVCIsCTB4NzIwMn0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRGUkVRIiwJMHg3MjAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVEZSRVEiLAkweDcyMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DU0VUQ0hBTiIsCTB4NzIwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NHRVRDSEFOIiwJMHg3MjA2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIkZJT1NFVE9XTiIsCTB4ODkwMX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NTUEdSUCIsCTB4ODkwMn0sCi0JeyJhc20vc29ja2lvcy5oIiwJIkZJT0dFVE9XTiIsCTB4ODkwM30sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHUEdSUCIsCTB4ODkwNH0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NBVE1BUksiLAkweDg5MDV9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1NUQU1QIiwJMHg4OTA2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQUREUlQiLAkweDg5MGJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxSVCIsCTB4ODkwY30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1JUTVNHIiwJMHg4OTBkfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkFNRSIsCTB4ODkxMH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkxJTksiLAkweDg5MTF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT05GIiwJMHg4OTEyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRkxBR1MiLAkweDg5MTN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZGTEFHUyIsCTB4ODkxNH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkFERFIiLAkweDg5MTV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZBRERSIiwJMHg4OTE2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRFNUQUREUiIsCTB4ODkxN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkRTVEFERFIiLAkweDg5MTh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZCUkRBRERSIiwJMHg4OTE5fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlJEQUREUiIsCTB4ODkxYX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk5FVE1BU0siLAkweDg5MWJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZORVRNQVNLIiwJMHg4OTFjfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUVUUklDIiwJMHg4OTFkfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUVUUklDIiwJMHg4OTFlfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUVNIiwJMHg4OTFmfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUVNIiwJMHg4OTIwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTVRVIiwJMHg4OTIxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTVRVIiwJMHg4OTIyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTkFNRSIsCTB4ODkyM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkhXQUREUiIsCTB4ODkyNH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkVOQ0FQIiwJMHg4OTI1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRU5DQVAiLAkweDg5MjZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZIV0FERFIiLAkweDg5Mjd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZTTEFWRSIsCTB4ODkyOX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlNMQVZFIiwJMHg4OTMwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURETVVMVEkiLAkweDg5MzF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxNVUxUSSIsCTB4ODkzMn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRklOREVYIiwJMHg4OTMzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGUEZMQUdTIiwJMHg4OTM0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGUEZMQUdTIiwJMHg4OTM1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRElGQUREUiIsCTB4ODkzNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkhXQlJPQURDQVNUIiwJMHg4OTM3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQ09VTlQiLAkweDg5Mzh9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZCUiIsCTB4ODk0MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkJSIiwJMHg4OTQxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGVFhRTEVOIiwJMHg4OTQyfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVFhRTEVOIiwJMHg4OTQzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRElWRVJUIiwJMHg4OTQ0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRElWRVJUIiwJMHg4OTQ1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRVRIVE9PTCIsCTB4ODk0Nn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlQSFkiLAkweDg5NDd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHTUlJUkVHIiwJMHg4OTQ4fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU01JSVJFRyIsCTB4ODk0OX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1dBTkRFViIsCTB4ODk0YX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RBUlAiLAkweDg5NTN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHQVJQIiwJMHg4OTU0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0FSUCIsCTB4ODk1NX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RSQVJQIiwJMHg4OTYwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR1JBUlAiLAkweDg5NjF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTUkFSUCIsCTB4ODk2Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1BUCIsCTB4ODk3MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1BUCIsCTB4ODk3MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERERMQ0kiLAkweDg5ODB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxETENJIiwJMHg4OTgxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGVkxBTiIsCTB4ODk4Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlZMQU4iLAkweDg5ODN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05ERU5TTEFWRSIsCTB4ODk5MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRSRUxFQVNFIiwJMHg4OTkxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNFVEhXQUREUiIsCTB4ODk5Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRTTEFWRUlORk9RVUVSWSIsCTB4ODk5M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRJTkZPUVVFUlkiLAkweDg5OTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EQ0hBTkdFQUNUSVZFIiwJMHg4OTk1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUFJPVE9QUklWQVRFIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVWUFJJVkFURSIsCTB4ODlmMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdDT01NSVQiLAkweDhiMDB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTkFNRSIsCTB4OGIwMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOV0lEIiwJMHg4YjAyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05XSUQiLAkweDhiMDN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJFUSIsCTB4OGIwNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkVRIiwJMHg4YjA1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV01PREUiLAkweDhiMDZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTU9ERSIsCTB4OGIwN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTRU5TIiwJMHg4YjA4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NFTlMiLAkweDhiMDl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFOR0UiLAkweDhiMGF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFOR0UiLAkweDhiMGJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUFJJViIsCTB4OGIwY30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQUklWIiwJMHg4YjBkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NUQVRTIiwJMHg4YjBlfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NUQVRTIiwJMHg4YjBmfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NQWSIsCTB4OGIxMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTUFkiLAkweDhiMTF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXVEhSU1BZIiwJMHg4YjEyfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RIUlNQWSIsCTB4OGIxM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdBUCIsCTB4OGIxNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdBUCIsCTB4OGIxNX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdBUExJU1QiLAkweDhiMTd9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU0NBTiIsCTB4OGIxOH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTQ0FOIiwJMHg4YjE5fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VTU0lEIiwJMHg4YjFhfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0VTU0lEIiwJMHg4YjFifSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05JQ0tOIiwJMHg4YjFjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05JQ0tOIiwJMHg4YjFkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JBVEUiLAkweDhiMjB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkFURSIsCTB4OGIyMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSVFMiLAkweDhiMjJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUlRTIiwJMHg4YjIzfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0ZSQUciLAkweDhiMjR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRlJBRyIsCTB4OGIyNX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUWFBPVyIsCTB4OGIyNn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdUWFBPVyIsCTB4OGIyN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSRVRSWSIsCTB4OGIyOH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSRVRSWSIsCTB4OGIyOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdFTkNPREUiLAkweDhiMmF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRU5DT0RFIiwJMHg4YjJifSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1BPV0VSIiwJMHg4YjJjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BPV0VSIiwJMHg4YjJkfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXRklSU1RQUklWIiwJMHg4YmUwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXTEFTVFBSSVYiLAkweDhiZmZ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9WRVJTSU9OIiwJMHhmZDAwfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fUkVNT1ZFX0FMTCIsCTB4ZmQwMX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0xJU1RfREVWSUNFUyIsCTB4ZmQwMn0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9DUkVBVEUiLAkweGZkMDN9LAotCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfUkVNT1ZFIiwJMHhmZDA0fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1JFTkFNRSIsCTB4ZmQwNX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9TVVNQRU5EIiwJMHhmZDA2fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1NUQVRVUyIsCTB4ZmQwN30sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9XQUlUIiwJMHhmZDA4fSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfTE9BRCIsCTB4ZmQwOX0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1RBQkxFX0NMRUFSIiwJMHhmZDBhfSwKLQl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfREVQUyIsCTB4ZmQwYn0sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1RBQkxFX1NUQVRVUyIsCTB4ZmQwY30sCi0JeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0xJU1RfVkVSU0lPTlMiLAkweGZkMGR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAotCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAotCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAotCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZTlhfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pb2N0bGVudC5zaCBiL3N0cmFjZS9saW51eC9pb2N0bGVudC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYzZDc0Yi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvaW9jdGxlbnQuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jISAvYmluL3NoCi0jCi0jIENvcHlyaWdodCAoYykgMjAwMSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0jIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIwotIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xMiAyMDA0LzEwLzA2IDIyOjMxOjM4IHJvbGFuZCBFeHAgJAotIwotCi0jIFZhbGlkYXRlIGFyZyBjb3VudC4KLWNhc2UgJCMgaW4KLTEpCi0JZGlyPSIkMSIKLQlhc209YXNtCi0JOzsKLTIpCi0JZGlyPSIkMSIKLQlhc209IiQyIgotCTs7Ci0qKQotICAgICAgICBlY2hvICJ1c2FnZTogJDAgaW5jbHVkZS1kaXJlY3RvcnkgW2FzbS1zdWJkaXJlY3RvcnldIiA+JjIKLSAgICAgICAgZXhpdCAxCi0JOzsKLWVzYWMKLQotbG9va3VwX2lvY3RscygpCi17Ci0JdHlwZT0iJDEiCi0Jc2hpZnQKLQotCSMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscwotCXJlZ2V4cD0nXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrW0EtWl1bQS1aMC05X10qW1s6c3BhY2U6XV1cKzB4JyIkdHlwZSInLi5cPicKLQkoY2QgIiRkaXIiIDsgZ3JlcCAiJHJlZ2V4cCIgIiRAIiAvZGV2L251bGwgMj4vZGV2L251bGwgKSB8Ci0JCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKLXMvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpcKDB4JyIkdHlwZSInLi5cKS4qLwl7ICJcMSIsCSJcMiIsCVwzCX0sL3AnIFwKLQkJPj4gaW9jdGxzLmgKLX0KLQotOiA+IGlvY3Rscy5oCi1sb29rdXBfaW9jdGxzIDIyIHNjc2kvc2cuaAotbG9va3VwX2lvY3RscyA0NiBsaW51eC9mYi5oCi1sb29rdXBfaW9jdGxzIDRCIGxpbnV4L2tkLmgKLWxvb2t1cF9pb2N0bHMgNTMgbGludXgvY2Ryb20uaCBzY3NpL3Njc2kuaCBzY3NpL3Njc2lfaW9jdGwuaAotbG9va3VwX2lvY3RscyA1NCAkYXNtL2lvY3Rscy5oCi1sb29rdXBfaW9jdGxzIDU2IGxpbnV4L3Z0LmgKLWxvb2t1cF9pb2N0bHMgJzdbMTJdJyBsaW51eC92aWRlb3RleHQuaAotbG9va3VwX2lvY3RscyA4OSAkYXNtL3NvY2tpb3MuaCBsaW51eC9zb2NraW9zLmgKLWxvb2t1cF9pb2N0bHMgOEIgbGludXgvd2lyZWxlc3MuaAotCi1maWxlcz0ibGludXgvKiAkYXNtLyogc2NzaS8qIHNvdW5kLyoiCi0KLSMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscwotcmVnZXhwPSdeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCtbQS1aXVtBLVowLTlfXSpbWzpzcGFjZTpdXVwrX1NcP1woSU9cfElPV1x8SU9SXHxJT1dSXClcPicKLShjZCAkZGlyIDsgZ3JlcCAkcmVnZXhwICRmaWxlcyAyPi9kZXYvbnVsbCApIHwgXAotCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKLXMvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpfU1w/SS4qKFwoW15bLF0qXClbWzpzcGFjZTpdXSosW1s6c3BhY2U6XV0qXChbXiwpXSpcKS4qLwl7ICJcMSIsCSJcMiIsCV9JT0MoX0lPQ19OT05FLFwzLFw0LDApCX0sL3AnIFwKLQk+PiBpb2N0bHMuaAotCi0jIFNvbWUgdXNlIGEgc3BlY2lhbCBiYXNlIHRvIG9mZnNldCB0aGVpciBpb2N0bHMgb24uIEV4dHJhY3QgdGhhdCBhcyB3ZWxsLgotOiA+IGlvY3RsZGVmcy5oCi0KLWJhc2VzPSQoc2VkIC1uZSAncy8uKl9JT0NfTk9ORS4qLFtbOnNwYWNlOl1dKlwoW0EtWl1bQS1aMC05X11cK1wpW1s6c3BhY2U6XSssXS4qL1wxL3AnIGlvY3Rscy5oIHwgdW5pcSB8IHNvcnQpCi1mb3IgYmFzZSBpbiAkYmFzZXMgOyBkbwotCWVjaG8gIkxvb2tpbmcgZm9yICRiYXNlIgotCXJlZ2V4cD0iXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrJGJhc2UiCi0JKGNkICRkaXIgOyBncmVwIC1oICRyZWdleHAgMj4vZGV2L251bGwgJGZpbGVzICkgfCBcCi0JCWdyZXAgLXYgJ1w8X0lPJyA+PiBpb2N0bGRlZnMuaAotZG9uZQpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lvY3Rsc29ydC5jIGIvc3RyYWNlL2xpbnV4L2lvY3Rsc29ydC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTQ0ZDg0Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9pb2N0bHNvcnQuYworKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0jaW5jbHVkZSA8YXNtL2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLQotI2luY2x1ZGUgImlvY3RsZGVmcy5oIgotI2luY2x1ZGUgPGxpbnV4L2F0bWlvYy5oPgotCi1zdHJ1Y3QgaW9jdGxlbnQgewotCWNvbnN0IGNoYXIqCWhlYWRlcjsKLQljb25zdCBjaGFyKgluYW1lOwotCXVuc2lnbmVkIGxvbmcJY29kZTsKLX07Ci0KLXN0cnVjdCBpb2N0bGVudCBpb2N0bHNbXSA9IHsKLSNpbmNsdWRlICJpb2N0bHMuaCIKLX07Ci0KLWludCBuaW9jdGxzID0gc2l6ZW9mKGlvY3RscykgLyBzaXplb2YoaW9jdGxzWzBdKTsKLQotCi1pbnQgY29tcGFyZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKSB7Ci0JdW5zaWduZWQgbG9uZyBjb2RlMSA9ICgoc3RydWN0IGlvY3RsZW50ICopIGEpLT5jb2RlOwotCXVuc2lnbmVkIGxvbmcgY29kZTIgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBiKS0+Y29kZTsKLQljb25zdCBjaGFyICpuYW1lMSA9ICgoc3RydWN0IGlvY3RsZW50ICopIGEpLT5uYW1lOwotCWNvbnN0IGNoYXIgKm5hbWUyID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYiktPm5hbWU7Ci0JcmV0dXJuIChjb2RlMSA+IGNvZGUyKSA/IDEgOiAoY29kZTEgPCBjb2RlMikgPyAtMSA6IHN0cmNtcCAobmFtZTEsIG5hbWUyKTsKLX0KLQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKLQlpbnQgaTsKLQotI2lmZGVmIFBPV0VSUEMJCQkvKiB1bnNwZWFrYWJsZSBrbHVkZ2UgKi8KLQlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQotCQlpb2N0bHNbaV0uY29kZSAmPSB+X0lPQ19ESVJNQVNLOwotI2VuZGlmCi0KLQlxc29ydChpb2N0bHMsIG5pb2N0bHMsIHNpemVvZihpb2N0bHNbMF0pLCBjb21wYXJlKTsKLQlwdXRzICgiXHQvKiBHZW5lcmF0ZWQgYnkgaW9jdGxzb3J0ICovIik7Ci0JZm9yIChpID0gMDsgaSA8IG5pb2N0bHM7IGkrKykKLQkJaWYgKGkgPT0gMCB8fCBpb2N0bHNbaV0uY29kZSAhPSBpb2N0bHNbaS0xXS5jb2RlIHx8Ci0JCSAgICBzdHJjbXAgKGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaS0xXS5uYW1lKSkKLQkJCXByaW50ZigiXHR7XCIlc1wiLFx0XCIlc1wiLFx0JSNseH0sXG4iLAotCQkJCWlvY3Rsc1tpXS5oZWFkZXIsIGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaV0uY29kZSk7Ci0KLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9taXBzL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvbWlwcy9pb2N0bGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWQ2YjhhLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9taXBzL2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MzggKzAsMCBAQAotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAotCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKLQl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAotCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAotCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAotCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9wb3dlcnBjL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvcG93ZXJwYy9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjY1OWE0Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9wb3dlcnBjL2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MjkgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFREVBRExLIiwgLyogMzUgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogMzYgKi8KLQkiRU5PTENLIiwgLyogMzcgKi8KLQkiRU5PU1lTIiwgLyogMzggKi8KLQkiRU5PVEVNUFRZIiwgLyogMzkgKi8KLQkiRUxPT1AiLCAvKiA0MCAqLwotCSJFUlJOT180MSIsIC8qIDQxICovCi0JIkVOT01TRyIsIC8qIDQyICovCi0JIkVJRFJNIiwgLyogNDMgKi8KLQkiRUNIUk5HIiwgLyogNDQgKi8KLQkiRUwyTlNZTkMiLCAvKiA0NSAqLwotCSJFTDNITFQiLCAvKiA0NiAqLwotCSJFTDNSU1QiLCAvKiA0NyAqLwotCSJFTE5STkciLCAvKiA0OCAqLwotCSJFVU5BVENIIiwgLyogNDkgKi8KLQkiRU5PQ1NJIiwgLyogNTAgKi8KLQkiRUwySExUIiwgLyogNTEgKi8KLQkiRUJBREUiLCAvKiA1MiAqLwotCSJFQkFEUiIsIC8qIDUzICovCi0JIkVYRlVMTCIsIC8qIDU0ICovCi0JIkVOT0FOTyIsIC8qIDU1ICovCi0JIkVCQURSUUMiLCAvKiA1NiAqLwotCSJFQkFEU0xUIiwgLyogNTcgKi8KLQkiRURFQURMT0NLIiwgLyogNTggKi8KLQkiRUJGT05UIiwgLyogNTkgKi8KLQkiRU5PU1RSIiwgLyogNjAgKi8KLQkiRU5PREFUQSIsIC8qIDYxICovCi0JIkVUSU1FIiwgLyogNjIgKi8KLQkiRU5PU1IiLCAvKiA2MyAqLwotCSJFTk9ORVQiLCAvKiA2NCAqLwotCSJFTk9QS0ciLCAvKiA2NSAqLwotCSJFUkVNT1RFIiwgLyogNjYgKi8KLQkiRU5PTElOSyIsIC8qIDY3ICovCi0JIkVBRFYiLCAvKiA2OCAqLwotCSJFU1JNTlQiLCAvKiA2OSAqLwotCSJFQ09NTSIsIC8qIDcwICovCi0JIkVQUk9UTyIsIC8qIDcxICovCi0JIkVNVUxUSUhPUCIsIC8qIDcyICovCi0JIkVET1RET1QiLCAvKiA3MyAqLwotCSJFQkFETVNHIiwgLyogNzQgKi8KLQkiRU9WRVJGTE9XIiwgLyogNzUgKi8KLQkiRU5PVFVOSVEiLCAvKiA3NiAqLwotCSJFQkFERkQiLCAvKiA3NyAqLwotCSJFUkVNQ0hHIiwgLyogNzggKi8KLQkiRUxJQkFDQyIsIC8qIDc5ICovCi0JIkVMSUJCQUQiLCAvKiA4MCAqLwotCSJFTElCU0NOIiwgLyogODEgKi8KLQkiRUxJQk1BWCIsIC8qIDgyICovCi0JIkVMSUJFWEVDIiwgLyogODMgKi8KLQkiRUlMU0VRIiwgLyogODQgKi8KLQkiRVJFU1RBUlQiLCAvKiA4NSAqLwotCSJFU1RSUElQRSIsIC8qIDg2ICovCi0JIkVVU0VSUyIsIC8qIDg3ICovCi0JIkVOT1RTT0NLIiwgLyogODggKi8KLQkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KLQkiRU1TR1NJWkUiLCAvKiA5MCAqLwotCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KLQkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLwotCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLwotCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KLQkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KLQkiRUFERFJJTlVTRSIsIC8qIDk4ICovCi0JIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLwotCSJFTkVURE9XTiIsIC8qIDEwMCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLwotCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCi0JIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KLQkiRU5PQlVGUyIsIC8qIDEwNSAqLwotCSJFSVNDT05OIiwgLyogMTA2ICovCi0JIkVOT1RDT05OIiwgLyogMTA3ICovCi0JIkVTSFVURE9XTiIsIC8qIDEwOCAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KLQkiRVRJTUVET1VUIiwgLyogMTEwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLwotCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCi0JIkVBTFJFQURZIiwgLyogMTE0ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCi0JIkVTVEFMRSIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVEUVVPVCIsIC8qIDEyMiAqLwotCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KLQkiRVJSTk9fMTI1IiwgLyogMTI1ICovCi0JIkVSUk5PXzEyNiIsIC8qIDEyNiAqLwotCSJFUlJOT18xMjciLCAvKiAxMjcgKi8KLQkiRVJSTk9fMTI4IiwgLyogMTI4ICovCi0JIkVSUk5PXzEyOSIsIC8qIDEyOSAqLwotCSJFUlJOT18xMzAiLCAvKiAxMzAgKi8KLQkiRVJSTk9fMTMxIiwgLyogMTMxICovCi0JIkVSUk5PXzEzMiIsIC8qIDEzMiAqLwotCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KLQkiRVJSTk9fMTM0IiwgLyogMTM0ICovCi0JIkVSUk5PXzEzNSIsIC8qIDEzNSAqLwotCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KLQkiRVJSTk9fMTM3IiwgLyogMTM3ICovCi0JIkVSUk5PXzEzOCIsIC8qIDEzOCAqLwotCSJFUlJOT18xMzkiLCAvKiAxMzkgKi8KLQkiRVJSTk9fMTQwIiwgLyogMTQwICovCi0JIkVSUk5PXzE0MSIsIC8qIDE0MSAqLwotCSJFUlJOT18xNDIiLCAvKiAxNDIgKi8KLQkiRVJSTk9fMTQzIiwgLyogMTQzICovCi0JIkVSUk5PXzE0NCIsIC8qIDE0NCAqLwotCSJFUlJOT18xNDUiLCAvKiAxNDUgKi8KLQkiRVJSTk9fMTQ2IiwgLyogMTQ2ICovCi0JIkVSUk5PXzE0NyIsIC8qIDE0NyAqLwotCSJFUlJOT18xNDgiLCAvKiAxNDggKi8KLQkiRVJSTk9fMTQ5IiwgLyogMTQ5ICovCi0JIkVSUk5PXzE1MCIsIC8qIDE1MCAqLwotCSJFUlJOT18xNTEiLCAvKiAxNTEgKi8KLQkiRVJSTk9fMTUyIiwgLyogMTUyICovCi0JIkVSUk5PXzE1MyIsIC8qIDE1MyAqLwotCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KLQkiRVJSTk9fMTU1IiwgLyogMTU1ICovCi0JIkVSUk5PXzE1NiIsIC8qIDE1NiAqLwotCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KLQkiRVJSTk9fMTU4IiwgLyogMTU4ICovCi0JIkVSUk5PXzE1OSIsIC8qIDE1OSAqLwotCSJFUlJOT18xNjAiLCAvKiAxNjAgKi8KLQkiRVJSTk9fMTYxIiwgLyogMTYxICovCi0JIkVSUk5PXzE2MiIsIC8qIDE2MiAqLwotCSJFUlJOT18xNjMiLCAvKiAxNjMgKi8KLQkiRVJSTk9fMTY0IiwgLyogMTY0ICovCi0JIkVSUk5PXzE2NSIsIC8qIDE2NSAqLwotCSJFUlJOT18xNjYiLCAvKiAxNjYgKi8KLQkiRVJSTk9fMTY3IiwgLyogMTY3ICovCi0JIkVSUk5PXzE2OCIsIC8qIDE2OCAqLwotCSJFUlJOT18xNjkiLCAvKiAxNjkgKi8KLQkiRVJSTk9fMTcwIiwgLyogMTcwICovCi0JIkVSUk5PXzE3MSIsIC8qIDE3MSAqLwotCSJFUlJOT18xNzIiLCAvKiAxNzIgKi8KLQkiRVJSTk9fMTczIiwgLyogMTczICovCi0JIkVSUk5PXzE3NCIsIC8qIDE3NCAqLwotCSJFUlJOT18xNzUiLCAvKiAxNzUgKi8KLQkiRVJSTk9fMTc2IiwgLyogMTc2ICovCi0JIkVSUk5PXzE3NyIsIC8qIDE3NyAqLwotCSJFUlJOT18xNzgiLCAvKiAxNzggKi8KLQkiRVJSTk9fMTc5IiwgLyogMTc5ICovCi0JIkVSUk5PXzE4MCIsIC8qIDE4MCAqLwotCSJFUlJOT18xODEiLCAvKiAxODEgKi8KLQkiRVJSTk9fMTgyIiwgLyogMTgyICovCi0JIkVSUk5PXzE4MyIsIC8qIDE4MyAqLwotCSJFUlJOT18xODQiLCAvKiAxODQgKi8KLQkiRVJSTk9fMTg1IiwgLyogMTg1ICovCi0JIkVSUk5PXzE4NiIsIC8qIDE4NiAqLwotCSJFUlJOT18xODciLCAvKiAxODcgKi8KLQkiRVJSTk9fMTg4IiwgLyogMTg4ICovCi0JIkVSUk5PXzE4OSIsIC8qIDE4OSAqLwotCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KLQkiRVJSTk9fMTkxIiwgLyogMTkxICovCi0JIkVSUk5PXzE5MiIsIC8qIDE5MiAqLwotCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KLQkiRVJSTk9fMTk0IiwgLyogMTk0ICovCi0JIkVSUk5PXzE5NSIsIC8qIDE5NSAqLwotCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KLQkiRVJSTk9fMTk3IiwgLyogMTk3ICovCi0JIkVSUk5PXzE5OCIsIC8qIDE5OCAqLwotCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KLQkiRVJSTk9fMjAwIiwgLyogMjAwICovCi0JIkVSUk5PXzIwMSIsIC8qIDIwMSAqLwotCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KLQkiRVJSTk9fMjAzIiwgLyogMjAzICovCi0JIkVSUk5PXzIwNCIsIC8qIDIwNCAqLwotCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KLQkiRVJSTk9fMjA2IiwgLyogMjA2ICovCi0JIkVSUk5PXzIwNyIsIC8qIDIwNyAqLwotCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KLQkiRVJSTk9fMjA5IiwgLyogMjA5ICovCi0JIkVSUk5PXzIxMCIsIC8qIDIxMCAqLwotCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KLQkiRVJSTk9fMjEyIiwgLyogMjEyICovCi0JIkVSUk5PXzIxMyIsIC8qIDIxMyAqLwotCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KLQkiRVJSTk9fMjE1IiwgLyogMjE1ICovCi0JIkVSUk5PXzIxNiIsIC8qIDIxNiAqLwotCSJFUlJOT18yMTciLCAvKiAyMTcgKi8KLQkiRVJSTk9fMjE4IiwgLyogMjE4ICovCi0JIkVSUk5PXzIxOSIsIC8qIDIxOSAqLwotCSJFUlJOT18yMjAiLCAvKiAyMjAgKi8KLQkiRVJSTk9fMjIxIiwgLyogMjIxICovCi0JIkVSUk5PXzIyMiIsIC8qIDIyMiAqLwotCSJFUlJOT18yMjMiLCAvKiAyMjMgKi8KLQkiRVJSTk9fMjI0IiwgLyogMjI0ICovCi0JIkVSUk5PXzIyNSIsIC8qIDIyNSAqLwotCSJFUlJOT18yMjYiLCAvKiAyMjYgKi8KLQkiRVJSTk9fMjI3IiwgLyogMjI3ICovCi0JIkVSUk5PXzIyOCIsIC8qIDIyOCAqLwotCSJFUlJOT18yMjkiLCAvKiAyMjkgKi8KLQkiRVJSTk9fMjMwIiwgLyogMjMwICovCi0JIkVSUk5PXzIzMSIsIC8qIDIzMSAqLwotCSJFUlJOT18yMzIiLCAvKiAyMzIgKi8KLQkiRVJSTk9fMjMzIiwgLyogMjMzICovCi0JIkVSUk5PXzIzNCIsIC8qIDIzNCAqLwotCSJFUlJOT18yMzUiLCAvKiAyMzUgKi8KLQkiRVJSTk9fMjM2IiwgLyogMjM2ICovCi0JIkVSUk5PXzIzNyIsIC8qIDIzNyAqLwotCSJFUlJOT18yMzgiLCAvKiAyMzggKi8KLQkiRVJSTk9fMjM5IiwgLyogMjM5ICovCi0JIkVSUk5PXzI0MCIsIC8qIDI0MCAqLwotCSJFUlJOT18yNDEiLCAvKiAyNDEgKi8KLQkiRVJSTk9fMjQyIiwgLyogMjQyICovCi0JIkVSUk5PXzI0MyIsIC8qIDI0MyAqLwotCSJFUlJOT18yNDQiLCAvKiAyNDQgKi8KLQkiRVJSTk9fMjQ1IiwgLyogMjQ1ICovCi0JIkVSUk5PXzI0NiIsIC8qIDI0NiAqLwotCSJFUlJOT18yNDciLCAvKiAyNDcgKi8KLQkiRVJSTk9fMjQ4IiwgLyogMjQ4ICovCi0JIkVSUk5PXzI0OSIsIC8qIDI0OSAqLwotCSJFUlJOT18yNTAiLCAvKiAyNTAgKi8KLQkiRVJSTk9fMjUxIiwgLyogMjUxICovCi0JIkVSUk5PXzI1MiIsIC8qIDI1MiAqLwotCSJFUlJOT18yNTMiLCAvKiAyNTMgKi8KLQkiRVJSTk9fMjU0IiwgLyogMjU0ICovCi0JIkVSUk5PXzI1NSIsIC8qIDI1NSAqLwotCSJFUlJOT18yNTYiLCAvKiAyNTYgKi8KLQkiRVJSTk9fMjU3IiwgLyogMjU3ICovCi0JIkVSUk5PXzI1OCIsIC8qIDI1OCAqLwotCSJFUlJOT18yNTkiLCAvKiAyNTkgKi8KLQkiRVJSTk9fMjYwIiwgLyogMjYwICovCi0JIkVSUk5PXzI2MSIsIC8qIDI2MSAqLwotCSJFUlJOT18yNjIiLCAvKiAyNjIgKi8KLQkiRVJSTk9fMjYzIiwgLyogMjYzICovCi0JIkVSUk5PXzI2NCIsIC8qIDI2NCAqLwotCSJFUlJOT18yNjUiLCAvKiAyNjUgKi8KLQkiRVJSTk9fMjY2IiwgLyogMjY2ICovCi0JIkVSUk5PXzI2NyIsIC8qIDI2NyAqLwotCSJFUlJOT18yNjgiLCAvKiAyNjggKi8KLQkiRVJSTk9fMjY5IiwgLyogMjY5ICovCi0JIkVSUk5PXzI3MCIsIC8qIDI3MCAqLwotCSJFUlJOT18yNzEiLCAvKiAyNzEgKi8KLQkiRVJSTk9fMjcyIiwgLyogMjcyICovCi0JIkVSUk5PXzI3MyIsIC8qIDI3MyAqLwotCSJFUlJOT18yNzQiLCAvKiAyNzQgKi8KLQkiRVJSTk9fMjc1IiwgLyogMjc1ICovCi0JIkVSUk5PXzI3NiIsIC8qIDI3NiAqLwotCSJFUlJOT18yNzciLCAvKiAyNzcgKi8KLQkiRVJSTk9fMjc4IiwgLyogMjc4ICovCi0JIkVSUk5PXzI3OSIsIC8qIDI3OSAqLwotCSJFUlJOT18yODAiLCAvKiAyODAgKi8KLQkiRVJSTk9fMjgxIiwgLyogMjgxICovCi0JIkVSUk5PXzI4MiIsIC8qIDI4MiAqLwotCSJFUlJOT18yODMiLCAvKiAyODMgKi8KLQkiRVJSTk9fMjg0IiwgLyogMjg0ICovCi0JIkVSUk5PXzI4NSIsIC8qIDI4NSAqLwotCSJFUlJOT18yODYiLCAvKiAyODYgKi8KLQkiRVJSTk9fMjg3IiwgLyogMjg3ICovCi0JIkVSUk5PXzI4OCIsIC8qIDI4OCAqLwotCSJFUlJOT18yODkiLCAvKiAyODkgKi8KLQkiRVJSTk9fMjkwIiwgLyogMjkwICovCi0JIkVSUk5PXzI5MSIsIC8qIDI5MSAqLwotCSJFUlJOT18yOTIiLCAvKiAyOTIgKi8KLQkiRVJSTk9fMjkzIiwgLyogMjkzICovCi0JIkVSUk5PXzI5NCIsIC8qIDI5NCAqLwotCSJFUlJOT18yOTUiLCAvKiAyOTUgKi8KLQkiRVJSTk9fMjk2IiwgLyogMjk2ICovCi0JIkVSUk5PXzI5NyIsIC8qIDI5NyAqLwotCSJFUlJOT18yOTgiLCAvKiAyOTggKi8KLQkiRVJSTk9fMjk5IiwgLyogMjk5ICovCi0JIkVSUk5PXzMwMCIsIC8qIDMwMCAqLwotCSJFUlJOT18zMDEiLCAvKiAzMDEgKi8KLQkiRVJSTk9fMzAyIiwgLyogMzAyICovCi0JIkVSUk5PXzMwMyIsIC8qIDMwMyAqLwotCSJFUlJOT18zMDQiLCAvKiAzMDQgKi8KLQkiRVJSTk9fMzA1IiwgLyogMzA1ICovCi0JIkVSUk5PXzMwNiIsIC8qIDMwNiAqLwotCSJFUlJOT18zMDciLCAvKiAzMDcgKi8KLQkiRVJSTk9fMzA4IiwgLyogMzA4ICovCi0JIkVSUk5PXzMwOSIsIC8qIDMwOSAqLwotCSJFUlJOT18zMTAiLCAvKiAzMTAgKi8KLQkiRVJSTk9fMzExIiwgLyogMzExICovCi0JIkVSUk5PXzMxMiIsIC8qIDMxMiAqLwotCSJFUlJOT18zMTMiLCAvKiAzMTMgKi8KLQkiRVJSTk9fMzE0IiwgLyogMzE0ICovCi0JIkVSUk5PXzMxNSIsIC8qIDMxNSAqLwotCSJFUlJOT18zMTYiLCAvKiAzMTYgKi8KLQkiRVJSTk9fMzE3IiwgLyogMzE3ICovCi0JIkVSUk5PXzMxOCIsIC8qIDMxOCAqLwotCSJFUlJOT18zMTkiLCAvKiAzMTkgKi8KLQkiRVJSTk9fMzIwIiwgLyogMzIwICovCi0JIkVSUk5PXzMyMSIsIC8qIDMyMSAqLwotCSJFUlJOT18zMjIiLCAvKiAzMjIgKi8KLQkiRVJSTk9fMzIzIiwgLyogMzIzICovCi0JIkVSUk5PXzMyNCIsIC8qIDMyNCAqLwotCSJFUlJOT18zMjUiLCAvKiAzMjUgKi8KLQkiRVJSTk9fMzI2IiwgLyogMzI2ICovCi0JIkVSUk5PXzMyNyIsIC8qIDMyNyAqLwotCSJFUlJOT18zMjgiLCAvKiAzMjggKi8KLQkiRVJSTk9fMzI5IiwgLyogMzI5ICovCi0JIkVSUk5PXzMzMCIsIC8qIDMzMCAqLwotCSJFUlJOT18zMzEiLCAvKiAzMzEgKi8KLQkiRVJSTk9fMzMyIiwgLyogMzMyICovCi0JIkVSUk5PXzMzMyIsIC8qIDMzMyAqLwotCSJFUlJOT18zMzQiLCAvKiAzMzQgKi8KLQkiRVJSTk9fMzM1IiwgLyogMzM1ICovCi0JIkVSUk5PXzMzNiIsIC8qIDMzNiAqLwotCSJFUlJOT18zMzciLCAvKiAzMzcgKi8KLQkiRVJSTk9fMzM4IiwgLyogMzM4ICovCi0JIkVSUk5PXzMzOSIsIC8qIDMzOSAqLwotCSJFUlJOT18zNDAiLCAvKiAzNDAgKi8KLQkiRVJSTk9fMzQxIiwgLyogMzQxICovCi0JIkVSUk5PXzM0MiIsIC8qIDM0MiAqLwotCSJFUlJOT18zNDMiLCAvKiAzNDMgKi8KLQkiRVJSTk9fMzQ0IiwgLyogMzQ0ICovCi0JIkVSUk5PXzM0NSIsIC8qIDM0NSAqLwotCSJFUlJOT18zNDYiLCAvKiAzNDYgKi8KLQkiRVJSTk9fMzQ3IiwgLyogMzQ3ICovCi0JIkVSUk5PXzM0OCIsIC8qIDM0OCAqLwotCSJFUlJOT18zNDkiLCAvKiAzNDkgKi8KLQkiRVJSTk9fMzUwIiwgLyogMzUwICovCi0JIkVSUk5PXzM1MSIsIC8qIDM1MSAqLwotCSJFUlJOT18zNTIiLCAvKiAzNTIgKi8KLQkiRVJSTk9fMzUzIiwgLyogMzUzICovCi0JIkVSUk5PXzM1NCIsIC8qIDM1NCAqLwotCSJFUlJOT18zNTUiLCAvKiAzNTUgKi8KLQkiRVJSTk9fMzU2IiwgLyogMzU2ICovCi0JIkVSUk5PXzM1NyIsIC8qIDM1NyAqLwotCSJFUlJOT18zNTgiLCAvKiAzNTggKi8KLQkiRVJSTk9fMzU5IiwgLyogMzU5ICovCi0JIkVSUk5PXzM2MCIsIC8qIDM2MCAqLwotCSJFUlJOT18zNjEiLCAvKiAzNjEgKi8KLQkiRVJSTk9fMzYyIiwgLyogMzYyICovCi0JIkVSUk5PXzM2MyIsIC8qIDM2MyAqLwotCSJFUlJOT18zNjQiLCAvKiAzNjQgKi8KLQkiRVJSTk9fMzY1IiwgLyogMzY1ICovCi0JIkVSUk5PXzM2NiIsIC8qIDM2NiAqLwotCSJFUlJOT18zNjciLCAvKiAzNjcgKi8KLQkiRVJSTk9fMzY4IiwgLyogMzY4ICovCi0JIkVSUk5PXzM2OSIsIC8qIDM2OSAqLwotCSJFUlJOT18zNzAiLCAvKiAzNzAgKi8KLQkiRVJSTk9fMzcxIiwgLyogMzcxICovCi0JIkVSUk5PXzM3MiIsIC8qIDM3MiAqLwotCSJFUlJOT18zNzMiLCAvKiAzNzMgKi8KLQkiRVJSTk9fMzc0IiwgLyogMzc0ICovCi0JIkVSUk5PXzM3NSIsIC8qIDM3NSAqLwotCSJFUlJOT18zNzYiLCAvKiAzNzYgKi8KLQkiRVJSTk9fMzc3IiwgLyogMzc3ICovCi0JIkVSUk5PXzM3OCIsIC8qIDM3OCAqLwotCSJFUlJOT18zNzkiLCAvKiAzNzkgKi8KLQkiRVJSTk9fMzgwIiwgLyogMzgwICovCi0JIkVSUk5PXzM4MSIsIC8qIDM4MSAqLwotCSJFUlJOT18zODIiLCAvKiAzODIgKi8KLQkiRVJSTk9fMzgzIiwgLyogMzgzICovCi0JIkVSUk5PXzM4NCIsIC8qIDM4NCAqLwotCSJFUlJOT18zODUiLCAvKiAzODUgKi8KLQkiRVJSTk9fMzg2IiwgLyogMzg2ICovCi0JIkVSUk5PXzM4NyIsIC8qIDM4NyAqLwotCSJFUlJOT18zODgiLCAvKiAzODggKi8KLQkiRVJSTk9fMzg5IiwgLyogMzg5ICovCi0JIkVSUk5PXzM5MCIsIC8qIDM5MCAqLwotCSJFUlJOT18zOTEiLCAvKiAzOTEgKi8KLQkiRVJSTk9fMzkyIiwgLyogMzkyICovCi0JIkVSUk5PXzM5MyIsIC8qIDM5MyAqLwotCSJFUlJOT18zOTQiLCAvKiAzOTQgKi8KLQkiRVJSTk9fMzk1IiwgLyogMzk1ICovCi0JIkVSUk5PXzM5NiIsIC8qIDM5NiAqLwotCSJFUlJOT18zOTciLCAvKiAzOTcgKi8KLQkiRVJSTk9fMzk4IiwgLyogMzk4ICovCi0JIkVSUk5PXzM5OSIsIC8qIDM5OSAqLwotCSJFUlJOT180MDAiLCAvKiA0MDAgKi8KLQkiRVJSTk9fNDAxIiwgLyogNDAxICovCi0JIkVSUk5PXzQwMiIsIC8qIDQwMiAqLwotCSJFUlJOT180MDMiLCAvKiA0MDMgKi8KLQkiRVJSTk9fNDA0IiwgLyogNDA0ICovCi0JIkVSUk5PXzQwNSIsIC8qIDQwNSAqLwotCSJFUlJOT180MDYiLCAvKiA0MDYgKi8KLQkiRVJSTk9fNDA3IiwgLyogNDA3ICovCi0JIkVSUk5PXzQwOCIsIC8qIDQwOCAqLwotCSJFUlJOT180MDkiLCAvKiA0MDkgKi8KLQkiRVJSTk9fNDEwIiwgLyogNDEwICovCi0JIkVSUk5PXzQxMSIsIC8qIDQxMSAqLwotCSJFUlJOT180MTIiLCAvKiA0MTIgKi8KLQkiRVJSTk9fNDEzIiwgLyogNDEzICovCi0JIkVSUk5PXzQxNCIsIC8qIDQxNCAqLwotCSJFUlJOT180MTUiLCAvKiA0MTUgKi8KLQkiRVJSTk9fNDE2IiwgLyogNDE2ICovCi0JIkVSUk5PXzQxNyIsIC8qIDQxNyAqLwotCSJFUlJOT180MTgiLCAvKiA0MTggKi8KLQkiRVJSTk9fNDE5IiwgLyogNDE5ICovCi0JIkVSUk5PXzQyMCIsIC8qIDQyMCAqLwotCSJFUlJOT180MjEiLCAvKiA0MjEgKi8KLQkiRVJSTk9fNDIyIiwgLyogNDIyICovCi0JIkVSUk5PXzQyMyIsIC8qIDQyMyAqLwotCSJFUlJOT180MjQiLCAvKiA0MjQgKi8KLQkiRVJSTk9fNDI1IiwgLyogNDI1ICovCi0JIkVSUk5PXzQyNiIsIC8qIDQyNiAqLwotCSJFUlJOT180MjciLCAvKiA0MjcgKi8KLQkiRVJSTk9fNDI4IiwgLyogNDI4ICovCi0JIkVSUk5PXzQyOSIsIC8qIDQyOSAqLwotCSJFUlJOT180MzAiLCAvKiA0MzAgKi8KLQkiRVJSTk9fNDMxIiwgLyogNDMxICovCi0JIkVSUk5PXzQzMiIsIC8qIDQzMiAqLwotCSJFUlJOT180MzMiLCAvKiA0MzMgKi8KLQkiRVJSTk9fNDM0IiwgLyogNDM0ICovCi0JIkVSUk5PXzQzNSIsIC8qIDQzNSAqLwotCSJFUlJOT180MzYiLCAvKiA0MzYgKi8KLQkiRVJSTk9fNDM3IiwgLyogNDM3ICovCi0JIkVSUk5PXzQzOCIsIC8qIDQzOCAqLwotCSJFUlJOT180MzkiLCAvKiA0MzkgKi8KLQkiRVJSTk9fNDQwIiwgLyogNDQwICovCi0JIkVSUk5PXzQ0MSIsIC8qIDQ0MSAqLwotCSJFUlJOT180NDIiLCAvKiA0NDIgKi8KLQkiRVJSTk9fNDQzIiwgLyogNDQzICovCi0JIkVSUk5PXzQ0NCIsIC8qIDQ0NCAqLwotCSJFUlJOT180NDUiLCAvKiA0NDUgKi8KLQkiRVJSTk9fNDQ2IiwgLyogNDQ2ICovCi0JIkVSUk5PXzQ0NyIsIC8qIDQ0NyAqLwotCSJFUlJOT180NDgiLCAvKiA0NDggKi8KLQkiRVJSTk9fNDQ5IiwgLyogNDQ5ICovCi0JIkVSUk5PXzQ1MCIsIC8qIDQ1MCAqLwotCSJFUlJOT180NTEiLCAvKiA0NTEgKi8KLQkiRVJSTk9fNDUyIiwgLyogNDUyICovCi0JIkVSUk5PXzQ1MyIsIC8qIDQ1MyAqLwotCSJFUlJOT180NTQiLCAvKiA0NTQgKi8KLQkiRVJSTk9fNDU1IiwgLyogNDU1ICovCi0JIkVSUk5PXzQ1NiIsIC8qIDQ1NiAqLwotCSJFUlJOT180NTciLCAvKiA0NTcgKi8KLQkiRVJSTk9fNDU4IiwgLyogNDU4ICovCi0JIkVSUk5PXzQ1OSIsIC8qIDQ1OSAqLwotCSJFUlJOT180NjAiLCAvKiA0NjAgKi8KLQkiRVJSTk9fNDYxIiwgLyogNDYxICovCi0JIkVSUk5PXzQ2MiIsIC8qIDQ2MiAqLwotCSJFUlJOT180NjMiLCAvKiA0NjMgKi8KLQkiRVJSTk9fNDY0IiwgLyogNDY0ICovCi0JIkVSUk5PXzQ2NSIsIC8qIDQ2NSAqLwotCSJFUlJOT180NjYiLCAvKiA0NjYgKi8KLQkiRVJSTk9fNDY3IiwgLyogNDY3ICovCi0JIkVSUk5PXzQ2OCIsIC8qIDQ2OCAqLwotCSJFUlJOT180NjkiLCAvKiA0NjkgKi8KLQkiRVJSTk9fNDcwIiwgLyogNDcwICovCi0JIkVSUk5PXzQ3MSIsIC8qIDQ3MSAqLwotCSJFUlJOT180NzIiLCAvKiA0NzIgKi8KLQkiRVJSTk9fNDczIiwgLyogNDczICovCi0JIkVSUk5PXzQ3NCIsIC8qIDQ3NCAqLwotCSJFUlJOT180NzUiLCAvKiA0NzUgKi8KLQkiRVJSTk9fNDc2IiwgLyogNDc2ICovCi0JIkVSUk5PXzQ3NyIsIC8qIDQ3NyAqLwotCSJFUlJOT180NzgiLCAvKiA0NzggKi8KLQkiRVJSTk9fNDc5IiwgLyogNDc5ICovCi0JIkVSUk5PXzQ4MCIsIC8qIDQ4MCAqLwotCSJFUlJOT180ODEiLCAvKiA0ODEgKi8KLQkiRVJSTk9fNDgyIiwgLyogNDgyICovCi0JIkVSUk5PXzQ4MyIsIC8qIDQ4MyAqLwotCSJFUlJOT180ODQiLCAvKiA0ODQgKi8KLQkiRVJSTk9fNDg1IiwgLyogNDg1ICovCi0JIkVSUk5PXzQ4NiIsIC8qIDQ4NiAqLwotCSJFUlJOT180ODciLCAvKiA0ODcgKi8KLQkiRVJSTk9fNDg4IiwgLyogNDg4ICovCi0JIkVSUk5PXzQ4OSIsIC8qIDQ4OSAqLwotCSJFUlJOT180OTAiLCAvKiA0OTAgKi8KLQkiRVJSTk9fNDkxIiwgLyogNDkxICovCi0JIkVSUk5PXzQ5MiIsIC8qIDQ5MiAqLwotCSJFUlJOT180OTMiLCAvKiA0OTMgKi8KLQkiRVJSTk9fNDk0IiwgLyogNDk0ICovCi0JIkVSUk5PXzQ5NSIsIC8qIDQ5NSAqLwotCSJFUlJOT180OTYiLCAvKiA0OTYgKi8KLQkiRVJSTk9fNDk3IiwgLyogNDk3ICovCi0JIkVSUk5PXzQ5OCIsIC8qIDQ5OCAqLwotCSJFUlJOT180OTkiLCAvKiA0OTkgKi8KLQkiRVJSTk9fNTAwIiwgLyogNTAwICovCi0JIkVSUk5PXzUwMSIsIC8qIDUwMSAqLwotCSJFUlJOT181MDIiLCAvKiA1MDIgKi8KLQkiRVJSTk9fNTAzIiwgLyogNTAzICovCi0JIkVSUk5PXzUwNCIsIC8qIDUwNCAqLwotCSJFUlJOT181MDUiLCAvKiA1MDUgKi8KLQkiRVJSTk9fNTA2IiwgLyogNTA2ICovCi0JIkVSUk5PXzUwNyIsIC8qIDUwNyAqLwotCSJFUlJOT181MDgiLCAvKiA1MDggKi8KLQkiRVJSTk9fNTA5IiwgLyogNTA5ICovCi0JIkVSUk5PXzUxMCIsIC8qIDUxMCAqLwotCSJFUlJOT181MTEiLCAvKiA1MTEgKi8KLQkiRVJFU1RBUlRTWVMiLCAvKiA1MTIgKi8KLQkiRVJFU1RBUlROT0lOVFIiLCAvKiA1MTMgKi8KLQkiRVJFU1RBUlROT0hBTkQiLCAvKiA1MTQgKi8KLQkiRU5PSU9DVExDTUQiLCAvKiA1MTUgKi8KLQkiRVJSTk9fNTE2IiwgLyogNTE2ICovCi0JIkVSUk5PXzUxNyIsIC8qIDUxNyAqLwotCSJFUlJOT181MTgiLCAvKiA1MTggKi8KLQkiRVJSTk9fNTE5IiwgLyogNTE5ICovCi0JIkVSUk5PXzUyMCIsIC8qIDUyMCAqLwotCSJFQkFESEFORExFIiwgLyogNTIxICovCi0JIkVOT1RTWU5DIiwgLyogNTIyICovCi0JIkVCQURDT09LSUUiLCAvKiA1MjMgKi8KLQkiRU5PVFNVUFAiLCAvKiA1MjQgKi8KLQkiRVRPT1NNQUxMIiwgLyogNTI1ICovCi0JIkVTRVJWRVJGQVVMVCIsIC8qIDUyNiAqLwotCSJFQkFEVFlQRSIsIC8qIDUyNyAqLwotCSJFSlVLRUJPWCIsIC8qIDUyOCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaCBiL3N0cmFjZS9saW51eC9wb3dlcnBjL2lvY3RsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2MDEwZGEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDExODEgKzAsMCBAQAotCS8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8KLQl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAotCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAotCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAotCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAotCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAotCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAotCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAotCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCi0JeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfVElNRU9VVCIsCTB4MjIwMX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1RJTUVPVVQiLAkweDIyMDJ9LAotCXsic2NzaS9zZy5oIiwJIlNHX0VNVUxBVEVEX0hPU1QiLAkweDIyMDN9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9UUkFOU0ZPUk0iLAkweDIyMDR9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9UUkFOU0ZPUk0iLAkweDIyMDV9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9DT01NQU5EX1EiLAkweDIyNzB9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9DT01NQU5EX1EiLAkweDIyNzF9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwJMHgyMjcyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19TRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3NX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NDU0lfSUQiLAkweDIyNzZ9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwJMHgyMjc5fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfTE9XX0RNQSIsCTB4MjI3YX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0ZPUkNFX1BBQ0tfSUQiLAkweDIyN2J9LAotCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9QQUNLX0lEIiwJMHgyMjdjfSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfTlVNX1dBSVRJTkciLAkweDIyN2R9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9ERUJVRyIsCTB4MjI3ZX0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NHX1RBQkxFU0laRSIsCTB4MjI3Zn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1ZFUlNJT05fTlVNIiwJMHgyMjgyfSwKLQl7InNjc2kvc2cuaCIsCSJTR19ORVhUX0NNRF9MRU4iLAkweDIyODN9LAotCXsic2NzaS9zZy5oIiwJIlNHX1NDU0lfUkVTRVQiLAkweDIyODR9LAotCXsic2NzaS9zZy5oIiwJIlNHX0lPIiwJMHgyMjg1fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVRVUVTVF9UQUJMRSIsCTB4MjI4Nn0sCi0JeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg3fSwKLQl7InNjc2kvc2cuaCIsCSJTR19HRVRfS0VFUF9PUlBIQU4iLAkweDIyODh9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1JTVFJBVCIsCTB4MzIwMX0sCi0JeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9HV1NUUkFUIiwJMHgzMjAyfSwKLQl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NSU1RSQVQiLAkweDMyMDN9LAotCXsibGludXgvaTJvLmgiLAkiQkxLSTJPU1dTVFJBVCIsCTB4MzIwNH0sCi0JeyJsaW51eC9yYWRlb25mYi5oIiwJIkZCSU9fUkFERU9OX0dFVF9NSVJST1IiLAkweDQwMDN9LAotCXsibGludXgvcmFkZW9uZmIuaCIsCSJGQklPX1JBREVPTl9TRVRfTUlSUk9SIiwJMHg0MDA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HUkFCX0JBQ0tMSUdIVCIsCTB4NDIwNn0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfREVSRUdESVNLIiwJMHg0MjBjfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVHTkVXRElTSyIsCTB4NDIwZH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFR05FV0QiLAkweDQyMGV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRMVU5JTkZPIiwJMHg0MjExfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfQklHX1BBU1NUSFJVIiwJMHg0MjEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JBQiIsCTB4NDU5MH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVlNDUkVFTklORk8iLAkweDQ2MDB9LAotCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAxfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GU0NSRUVOSU5GTyIsCTB4NDYwMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRDTUFQIiwJMHg0NjA0fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVENNQVAiLAkweDQ2MDV9LAotCXsibGludXgvZmIuaCIsCSJGQklPUEFOX0RJU1BMQVkiLAkweDQ2MDZ9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0NVUlNPUiIsCTB4NDYwOH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ09OMkZCTUFQIiwJMHg0NjBmfSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DT04yRkJNQVAiLAkweDQ2MTB9LAotCXsibGludXgvZmIuaCIsCSJGQklPQkxBTksiLAkweDQ2MTF9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9fQUxMT0MiLAkweDQ2MTN9LAotCXsibGludXgvZmIuaCIsCSJGQklPX0ZSRUUiLAkweDQ2MTR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0dMWVBIIiwJMHg0NjE1fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9IV0NJTkZPIiwJMHg0NjE2fSwKLQl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9NT0RFSU5GTyIsCTB4NDYxN30sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRElTUElORk8iLAkweDQ2MTh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJGQklPX1dBSVRGT1JWU1lOQyIsCTB4NDYyMH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZMQUciLAkweDQ4MGV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU0ZMQUciLAkweDQ4MGZ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkRFWCIsCTB4NDgxMH0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHQ09MTEVDVElPTklORk8iLAkweDQ4MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAotCXsibGludXgva2QuaCIsCSJLSU9DU09VTkQiLAkweDRiMmZ9LAotCXsibGludXgva2QuaCIsCSJLRE1LVE9ORSIsCTB4NGIzMH0sCi0JeyJsaW51eC9rZC5oIiwJIktER0VUTEVEIiwJMHg0YjMxfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTRVRMRUQiLAkweDRiMzJ9LAotCXsibGludXgva2QuaCIsCSJLREdLQlRZUEUiLAkweDRiMzN9LAotCXsibGludXgva2QuaCIsCSJLREFERElPIiwJMHg0YjM0fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RERUxJTyIsCTB4NGIzNX0sCi0JeyJsaW51eC9rZC5oIiwJIktERU5BQklPIiwJMHg0YjM2fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RESVNBQklPIiwJMHg0YjM3fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTRVRNT0RFIiwJMHg0YjNhfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHRVRNT0RFIiwJMHg0YjNifSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RNQVBESVNQIiwJMHg0YjNjfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RVTk1BUERJU1AiLAkweDRiM2R9LAotCXsibGludXgva2QuaCIsCSJHSU9fU0NSTk1BUCIsCTB4NGI0MH0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19TQ1JOTUFQIiwJMHg0YjQxfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JNT0RFIiwJMHg0YjQ0fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTS0JNT0RFIiwJMHg0YjQ1fSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHS0JFTlQiLAkweDRiNDZ9LAotCXsibGludXgva2QuaCIsCSJLRFNLQkVOVCIsCTB4NGI0N30sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCU0VOVCIsCTB4NGI0OH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCU0VOVCIsCTB4NGI0OX0sCi0JeyJsaW51eC9rZC5oIiwJIktER0tCRElBQ1IiLAkweDRiNGF9LAotCXsibGludXgva2QuaCIsCSJLRFNLQkRJQUNSIiwJMHg0YjRifSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RHRVRLRVlDT0RFIiwJMHg0YjRjfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTRVRLRVlDT0RFIiwJMHg0YjRkfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RTSUdBQ0NFUFQiLAkweDRiNGV9LAotCXsibGludXgva2QuaCIsCSJLREtCRFJFUCIsCTB4NGI1Mn0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19GT05UIiwJMHg0YjYwfSwKLQl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlQiLAkweDRiNjF9LAotCXsibGludXgva2QuaCIsCSJLREdLQk1FVEEiLAkweDRiNjJ9LAotCXsibGludXgva2QuaCIsCSJLRFNLQk1FVEEiLAkweDRiNjN9LAotCXsibGludXgva2QuaCIsCSJLREdLQkxFRCIsCTB4NGI2NH0sCi0JeyJsaW51eC9rZC5oIiwJIktEU0tCTEVEIiwJMHg0YjY1fSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSU1BUCIsCTB4NGI2Nn0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVAiLAkweDRiNjd9LAotCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQQ0xSIiwJMHg0YjY4fSwKLQl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSVNDUk5NQVAiLAkweDRiNjl9LAotCXsibGludXgva2QuaCIsCSJQSU9fVU5JU0NSTk1BUCIsCTB4NGI2YX0sCi0JeyJsaW51eC9rZC5oIiwJIkdJT19GT05UWCIsCTB4NGI2Yn0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19GT05UWCIsCTB4NGI2Y30sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19GT05UUkVTRVQiLAkweDRiNmR9LAotCXsibGludXgva2QuaCIsCSJHSU9fQ01BUCIsCTB4NGI3MH0sCi0JeyJsaW51eC9rZC5oIiwJIlBJT19DTUFQIiwJMHg0YjcxfSwKLQl7ImxpbnV4L2tkLmgiLAkiS0RGT05UT1AiLAkweDRiNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfVElNRU9VVCIsCTB4NGUyMH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfREVWSUNFIiwJMHg0ZTIxfSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVVTQl9SRVNFVF9QSVBFUyIsCTB4NGUyMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBBVVNFIiwJMHg1MzAxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNVTUUiLAkweDUzMDJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlNU0YiLAkweDUzMDN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlUUktJTkQiLAkweDUzMDR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NIRFIiLAkweDUzMDV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NFTlRSWSIsCTB4NTMwNn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RPUCIsCTB4NTMwN30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RBUlQiLAkweDUzMDh9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUIiwJMHg1MzA5fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xDVFJMIiwJMHg1MzBhfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVUJDSE5MIiwJMHg1MzBifSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTIiLAkweDUzMGN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMSIsCTB4NTMwZH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFVRElPIiwJMHg1MzBlfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVF9TVyIsCTB4NTMwZn0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NTVVMVElTRVNTSU9OIiwJMHg1MzEwfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX01DTiIsCTB4NTMxMX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVTRVQiLAkweDUzMTJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTFJFQUQiLAkweDUzMTN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURSQVciLAkweDUzMTR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURDT09LRUQiLAkweDUzMTV9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFRUsiLAkweDUzMTZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlCTEsiLAkweDUzMTd9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBTEwiLAkweDUzMTh9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUNMT1NFVFJBWSIsCTB4NTMxOX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NR0VUU1BJTkRPV04iLAkweDUzMWR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFVFNQSU5ET1dOIiwJMHg1MzFlfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VUX09QVElPTlMiLAkweDUzMjB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DTEVBUl9PUFRJT05TIiwJMHg1MzIxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX1NQRUVEIiwJMHg1MzIyfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX0RJU0MiLAkweDUzMjN9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9NRURJQV9DSEFOR0VEIiwJMHg1MzI1fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRFJJVkVfU1RBVFVTIiwJMHg1MzI2fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRElTQ19TVEFUVVMiLAkweDUzMjd9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DSEFOR0VSX05TTE9UUyIsCTB4NTMyOH0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xPQ0tET09SIiwJMHg1MzI5fSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fREVCVUciLAkweDUzMzB9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsCTB4NTMzMX0sCi0JeyJzY3NpL3Njc2lfaW9jdGwuaCIsCSJTQ1NJX0lPQ1RMX0RPT1JMT0NLIiwJMHg1MzgwfSwKLQl7InNjc2kvc2NzaV9pb2N0bC5oIiwJIlNDU0lfSU9DVExfRE9PUlVOTE9DSyIsCTB4NTM4MX0sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQVVESU9CVUZTSVoiLAkweDUzODJ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfSURMVU4iLAkweDUzODJ9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9UQUdHRURfRU5BQkxFIiwJMHg1MzgzfSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLAkweDUzODR9LAotCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9QUk9CRV9IT1NUIiwJMHg1Mzg1fSwKLQl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX0JVU19OVU1CRVIiLAkweDUzODZ9LAotCXsibGludXgvY2Ryb20uaCIsCSJEVkRfUkVBRF9TVFJVQ1QiLAkweDUzOTB9LAotCXsibGludXgvY2Ryb20uaCIsCSJEVkRfV1JJVEVfU1RSVUNUIiwJMHg1MzkxfSwKLQl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX0FVVEgiLAkweDUzOTJ9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRU5EX1BBQ0tFVCIsCTB4NTM5M30sCi0JeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX05FWFRfV1JJVEFCTEUiLAkweDUzOTR9LAotCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MQVNUX1dSSVRURU4iLAkweDUzOTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX0RFVl9DUkVBVEUiLAkweDU1MDF9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfREVWX0RFU1RST1kiLAkweDU1MDJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NPTk5FQ1QiLAkweDU1MTZ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVCIsCTB4NTUxN30sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfRVZCSVQiLAkweDU1NjR9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0tFWUJJVCIsCTB4NTU2NX0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfUkVMQklUIiwJMHg1NTY2fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9BQlNCSVQiLAkweDU1Njd9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX01TQ0JJVCIsCTB4NTU2OH0sCi0JeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfTEVEQklUIiwJMHg1NTY5fSwKLQl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9TTkRCSVQiLAkweDU1NmF9LAotCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0ZGQklUIiwJMHg1NTZifSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUNBUCIsCTB4NTYwMH0sCi0JeyJsaW51eC92dC5oIiwJIlZUX09QRU5RUlkiLAkweDU2MDB9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1JFU0VSVkVEIiwJMHg1NjAxfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUTU9ERSIsCTB4NTYwMX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTV9GTVQiLAkweDU2MDJ9LAotCXsibGludXgvdnQuaCIsCSJWVF9TRVRNT0RFIiwJMHg1NjAyfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUU1RBVEUiLAkweDU2MDN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRk1UIiwJMHg1NjA0fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VORFNJRyIsCTB4NTYwNH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GTVQiLAkweDU2MDV9LAotCXsibGludXgvdnQuaCIsCSJWVF9SRUxESVNQIiwJMHg1NjA1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NPTVAiLAkweDU2MDZ9LAotCXsibGludXgvdnQuaCIsCSJWVF9BQ1RJVkFURSIsCTB4NTYwNn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DT01QIiwJMHg1NjA3fSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfV0FJVEFDVElWRSIsCTB4NTYwN30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUkVRQlVGUyIsCTB4NTYwOH0sCi0JeyJsaW51eC92dC5oIiwJIlZUX0RJU0FMTE9DQVRFIiwJMHg1NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUJVRiIsCTB4NTYwOX0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRSIsCTB4NTYwOX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GQlVGIiwJMHg1NjBhfSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFWCIsCTB4NTYwYX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GQlVGIiwJMHg1NjBifSwKLQl7ImxpbnV4L3Z0LmgiLAkiVlRfTE9DS1NXSVRDSCIsCTB4NTYwYn0sCi0JeyJsaW51eC92dC5oIiwJIlZUX1VOTE9DS1NXSVRDSCIsCTB4NTYwY30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfT1ZFUkxBWSIsCTB4NTYwZX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUUJVRiIsCTB4NTYwZn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRFFCVUYiLAkweDU2MTF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NUUkVBTU9OIiwJMHg1NjEyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TVFJFQU1PRkYiLAkweDU2MTN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfUEFSTSIsCTB4NTYxNX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19QQVJNIiwJMHg1NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1NURCIsCTB4NTYxN30sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19TVEQiLAkweDU2MTh9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1TVEQiLAkweDU2MTl9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1JTlBVVCIsCTB4NTYxYX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DVFJMIiwJMHg1NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NUUkwiLAkweDU2MWN9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfVFVORVIiLAkweDU2MWR9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfVFVORVIiLAkweDU2MWV9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQVVESU8iLAkweDU2MjF9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQVVESU8iLAkweDU2MjJ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQ1RSTCIsCTB4NTYyNH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllNRU5VIiwJMHg1NjI1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0lOUFVUIiwJMHg1NjI2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0lOUFVUIiwJMHg1NjI3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX09VVFBVVCIsCTB4NTYyZX0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19PVVRQVVQiLAkweDU2MmZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1PVVRQVVQiLAkweDU2MzB9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQVVET1VUIiwJMHg1NjMxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0FVRE9VVCIsCTB4NTYzMn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19NT0RVTEFUT1IiLAkweDU2MzZ9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfTU9EVUxBVE9SIiwJMHg1NjM3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZSRVFVRU5DWSIsCTB4NTYzOH0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GUkVRVUVOQ1kiLAkweDU2Mzl9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0NST1BDQVAiLAkweDU2M2F9LAotCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ1JPUCIsCTB4NTYzYn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DUk9QIiwJMHg1NjNjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0pQRUdDT01QIiwJMHg1NjNkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0pQRUdDT01QIiwJMHg1NjNlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWVNURCIsCTB4NTYzZn0sCi0JeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfVFJZX0ZNVCIsCTB4NTY0MH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1faGUuaCIsCSJIRV9HRVRfUkVHIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCi0JeyJsaW51eC9hdG1icjI2ODQuaCIsCSJCUjI2ODRfU0VURklMVCIsCTB4NjE5MH0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAotCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAotCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fTkVXQkFDS0VORElGIiwJMHg2MWYzfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDY2N2J9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDY2N2N9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg2NjdkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg2NjdlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NjY3Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPUVNJWkUiLAkweDY2ODB9LAotCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfRklGT19TVEFUVVMiLAkweDY3MDF9LAotCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfRklGT19GTFVTSCIsCTB4NjcwMn0sCi0JeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19DTEVBUl9IQUxUIiwJMHg2NzAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUNFSVZFX01TR19UUlVOQyIsCTB4NjkwYn0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUNFSVZFX01TRyIsCTB4NjkwY30sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRU5EX0NPTU1BTkQiLAkweDY5MGR9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVHSVNURVJfRk9SX0NNRCIsCTB4NjkwZX0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9VTlJFR0lTVEVSX0ZPUl9DTUQiLAkweDY5MGZ9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX0dFVFNfRVZFTlRTX0NNRCIsCTB4NjkxMH0sCi0JeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfTVlfQUREUkVTU19DTUQiLAkweDY5MTF9LAotCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfR0VUX01ZX0FERFJFU1NfQ01EIiwJMHg2OTEyfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9NWV9MVU5fQ01EIiwJMHg2OTEzfSwKLQl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX0dFVF9NWV9MVU5fQ01EIiwJMHg2OTE0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAotCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAotCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU0lGIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHSUYiLAkweDZkMGJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUExMX0dFVCIsCTB4NzAxMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUExMX1NFVCIsCTB4NzAxMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsiYXNtL252cmFtLmgiLAkiUE1BQ19OVlJBTV9HRVRfT0ZGU0VUIiwJMHg3MDQwfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAotCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJU0VSX0RFTEFZIiwJMHg3MGEwfSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9USU1FT1VUIiwJMHg3MGExfSwKLQl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVBBUl9ERUxBWSIsCTB4NzBhOH0sCi0JeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfVElNRU9VVCIsCTB4NzBhOX0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUSU5GTyIsCTB4NzEwMX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJQQUdFIiwJMHg3MTAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkZPVU5EIiwJMHg3MTAzfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BBR0VSRVEiLAkweDcxMDR9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUU1RBVCIsCTB4NzEwNX0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRQQUdFIiwJMHg3MTA2fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NUT1BEQVUiLAkweDcxMDd9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUUEFHRSIsCTB4NzEwOH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRESVNQIiwJMHg3MTA5fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFNUQVQiLAkweDcxMGF9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSQ0FDSEUiLAkweDcxMGJ9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VUVklSVCIsCTB4NzEwY30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUSU5GTyIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1JFU0VUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVEZSRVEiLAkweDcyMDN9LAotCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VURlJFUSIsCTB4NzIwNH0sCi0JeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRDSEFOIiwJMHg3MjA1fSwKLQl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVENIQU4iLAkweDcyMDZ9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg3MzA3fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg3MzA4fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg3MzA5fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVRQIiwJMHg3NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VUUCIsCTB4NzQwOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVE4iLAkweDc0MGF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVRDIiwJMHg3NDExfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VUQyIsCTB4NzQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg3NDEzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDc0MTR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDc0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDc0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NzQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg3NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg3NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg3NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDc0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NzQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg3NDFmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NzQ2N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NzQ2OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUQVJUIiwJMHg3NDZlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RPUCIsCTB4NzQ2Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDc0NzN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTFRDIiwJMHg3NDc0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xUQyIsCTB4NzQ3NX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg3NDc2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDc0Nzd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDg5MDF9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DU1BHUlAiLAkweDg5MDJ9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDg5MDN9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1BHUlAiLAkweDg5MDR9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg4OTA1fSwKLQl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dTVEFNUCIsCTB4ODkwNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERFJUIiwJMHg4OTBifSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMUlQiLAkweDg5MGN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NSVE1TRyIsCTB4ODkwZH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk5BTUUiLAkweDg5MTB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZMSU5LIiwJMHg4OTExfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQ09ORiIsCTB4ODkxMn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkZMQUdTIiwJMHg4OTEzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRkxBR1MiLAkweDg5MTR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZBRERSIiwJMHg4OTE1fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQUREUiIsCTB4ODkxNn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkRTVEFERFIiLAkweDg5MTd9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZEU1RBRERSIiwJMHg4OTE4fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQlJEQUREUiIsCTB4ODkxOX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkJSREFERFIiLAkweDg5MWF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZORVRNQVNLIiwJMHg4OTFifSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTkVUTUFTSyIsCTB4ODkxY30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1FVFJJQyIsCTB4ODkxZH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1FVFJJQyIsCTB4ODkxZX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1FTSIsCTB4ODkxZn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1FTSIsCTB4ODkyMH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1UVSIsCTB4ODkyMX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1UVSIsCTB4ODkyMn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5BTUUiLAkweDg5MjN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZIV0FERFIiLAkweDg5MjR9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZFTkNBUCIsCTB4ODkyNX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkVOQ0FQIiwJMHg4OTI2fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSFdBRERSIiwJMHg4OTI3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGU0xBVkUiLAkweDg5Mjl9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZTTEFWRSIsCTB4ODkzMH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERE1VTFRJIiwJMHg4OTMxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMTVVMVEkiLAkweDg5MzJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZJTkRFWCIsCTB4ODkzM30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlBGTEFHUyIsCTB4ODkzNH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlBGTEFHUyIsCTB4ODkzNX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RJRkFERFIiLAkweDg5MzZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZIV0JST0FEQ0FTVCIsCTB4ODkzN30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPVU5UIiwJMHg4OTM4fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQlIiLAkweDg5NDB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUiIsCTB4ODk0MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlRYUUxFTiIsCTB4ODk0Mn0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlRYUUxFTiIsCTB4ODk0M30sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkRJVkVSVCIsCTB4ODk0NH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkRJVkVSVCIsCTB4ODk0NX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0VUSFRPT0wiLAkweDg5NDZ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHTUlJUEhZIiwJMHg4OTQ3fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVJFRyIsCTB4ODk0OH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NNSUlSRUciLAkweDg5NDl9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NXQU5ERVYiLAkweDg5NGF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NEQVJQIiwJMHg4OTUzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0FSUCIsCTB4ODk1NH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NBUlAiLAkweDg5NTV9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NEUkFSUCIsCTB4ODk2MH0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dSQVJQIiwJMHg4OTYxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU1JBUlAiLAkweDg5NjJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNQVAiLAkweDg5NzB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNQVAiLAkweDg5NzF9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERETENJIiwJMHg4OTgwfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMRExDSSIsCTB4ODk4MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlZMQU4iLAkweDg5ODJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZWTEFOIiwJMHg4OTgzfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9OREVOU0xBVkUiLAkweDg5OTB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EUkVMRUFTRSIsCTB4ODk5MX0sCi0JeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRTRVRIV0FERFIiLAkweDg5OTJ9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0xBVkVJTkZPUVVFUlkiLAkweDg5OTN9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05ESU5GT1FVRVJZIiwJMHg4OTk0fSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORENIQU5HRUFDVElWRSIsCTB4ODk5NX0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NQUk9UT1BSSVZBVEUiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVWUFJJVkFURSIsCTB4ODlmMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0ZJUlNUIiwJMHg4YjAwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0NPTU1JVCIsCTB4OGIwMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOQU1FIiwJMHg4YjAxfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05XSUQiLAkweDhiMDJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTldJRCIsCTB4OGIwM30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkVRIiwJMHg4YjA0fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSRVEiLAkweDhiMDV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTU9ERSIsCTB4OGIwNn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdNT0RFIiwJMHg4YjA3fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NFTlMiLAkweDhiMDh9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0VOUyIsCTB4OGIwOX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQU5HRSIsCTB4OGIwYX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQU5HRSIsCTB4OGIwYn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQUklWIiwJMHg4YjBjfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BSSVYiLAkweDhiMGR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1RBVFMiLAkweDhiMGV9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU1RBVFMiLAkweDhiMGZ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1BZIiwJMHg4YjEwfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NQWSIsCTB4OGIxMX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUSFJTUFkiLAkweDhiMTJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVEhSU1BZIiwJMHg4YjEzfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0FQIiwJMHg4YjE0fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQIiwJMHg4YjE1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQTElTVCIsCTB4OGIxN30sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTQ0FOIiwJMHg4YjE4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NDQU4iLAkweDhiMTl9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRVNTSUQiLAkweDhiMWF9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRVNTSUQiLAkweDhiMWJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTklDS04iLAkweDhiMWN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTklDS04iLAkweDhiMWR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFURSIsCTB4OGIyMH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQVRFIiwJMHg4YjIxfSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JUUyIsCTB4OGIyMn0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSVFMiLAkweDhiMjN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJBRyIsCTB4OGIyNH0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkFHIiwJMHg4YjI1fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1RYUE9XIiwJMHg4YjI2fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RYUE9XIiwJMHg4YjI3fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JFVFJZIiwJMHg4YjI4fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JFVFJZIiwJMHg4YjI5fSwKLQl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VOQ09ERSIsCTB4OGIyYX0sCi0JeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFTkNPREUiLAkweDhiMmJ9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUE9XRVIiLAkweDhiMmN9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUE9XRVIiLAkweDhiMmR9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVFBSSVYiLAkweDhiZTB9LAotCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdMQVNUUFJJViIsCTB4OGJmZn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCi0JeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKLQl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX1ZFUlNJT04iLAkweGZkMDB9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9SRU1PVkVfQUxMIiwJMHhmZDAxfSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fTElTVF9ERVZJQ0VTIiwJMHhmZDAyfSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX0NSRUFURSIsCTB4ZmQwM30sCi0JeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX0RFVl9SRU1PVkUiLAkweGZkMDR9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9ERVZfUkVOQU1FIiwJMHhmZDA1fSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX1NVU1BFTkQiLAkweGZkMDZ9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9ERVZfU1RBVFVTIiwJMHhmZDA3fSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX1dBSVQiLAkweGZkMDh9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9UQUJMRV9MT0FEIiwJMHhmZDA5fSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fVEFCTEVfQ0xFQVIiLAkweGZkMGF9LAotCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9UQUJMRV9ERVBTIiwJMHhmZDBifSwKLQl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fVEFCTEVfU1RBVFVTIiwJMHhmZDBjfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9wb3dlcnBjL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3Bvd2VycGMvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0YjAwYjEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3Bvd2VycGMvc2lnbmFsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0JIlNJR18wIiwJLyogMCAqLwotCSJTSUdIVVAiLAkvKiAxICovCi0JIlNJR0lOVCIsCS8qIDIgKi8KLQkiU0lHUVVJVCIsCS8qIDMgKi8KLQkiU0lHSUxMIiwJLyogNCAqLwotCSJTSUdUUkFQIiwJLyogNSAqLwotCSJTSUdBQlJUIiwJLyogNiAqLwotCSJTSUdCVVMiLAkvKiA3ICovCi0JIlNJR0ZQRSIsCS8qIDggKi8KLQkiU0lHS0lMTCIsCS8qIDkgKi8KLQkiU0lHVVNSMSIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdVU1IyIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHU1RLRkxUIiwJLyogMTYgKi8KLQkiU0lHQ0hMRCIsCS8qIDE3ICovCi0JIlNJR0NPTlQiLAkvKiAxOCAqLwotCSJTSUdTVE9QIiwJLyogMTkgKi8KLQkiU0lHVFNUUCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHVVJHIiwJLyogMjMgKi8KLQkiU0lHWENQVSIsCS8qIDI0ICovCi0JIlNJR1hGU1oiLAkvKiAyNSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyNiAqLwotCSJTSUdQUk9GIiwJLyogMjcgKi8KLQkiU0lHV0lOQ0giLAkvKiAyOCAqLwotCSJTSUdJTyIsCS8qIDI5ICovCi0JIlNJR1BXUiIsCS8qIDMwICovCi0JIlNJR1VOVVNFRCIsCS8qIDMxICovCi0JIlNJR1JUTUlOIiwJLyogMzIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ5MjIyNy4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvcG93ZXJwYy9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudC5oLHYgMS4xOSAyMDA1LzA1LzA5IDA4OjAyOjA1IHJvbGFuZCBFeHAgJAotICovCi0KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMCIJCQl9LCAvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCQl9LCAvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCQl9LCAvKiAyICovCi0JeyAzLAlURiwJc3lzX3JlYWQsCQkicmVhZCIJCQl9LCAvKiAzICovCi0JeyAzLAlURiwJc3lzX3dyaXRlLAkJIndyaXRlIgkJCX0sIC8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJCX0sIC8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCQl9LCAvKiA2ICovCi0JeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIJCX0sIC8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQkJfSwgLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQkJfSwgLyogOSAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgkJfSwgLyogMTAgKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJCX0sIC8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJCX0sIC8qIDEyICovCi0JeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJCX0sIC8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDE2ICovCi0JeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQkJfSwgLyogMTcgKi8KLQl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0IgkJfSwgLyogMTggKi8KLQl7IDMsCVRGLAlzeXNfbHNlZWssCQkibHNlZWsiCQkJfSwgLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgkJfSwgLyogMjAgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQkJfSwgLyogMjEgKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJCX0sIC8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJCX0sIC8qIDIzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJCX0sIC8qIDI0ICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQkJfSwgLyogMjUgKi8KLQl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgkJfSwgLyogMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCQl9LCAvKiAyNyAqLwotCXsgMiwJMCwJc3lzX29sZGZzdGF0LAkJIm9sZGZzdGF0IgkJfSwgLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQkJfSwgLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQkJfSwgLyogMzAgKi8KLQl7IDIsCTAsCXN5c19zdHR5LAkJInN0dHkiCQkJfSwgLyogMzEgKi8KLQl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQkJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJCX0sIC8qIDM0ICovCi0JeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQkJfSwgLyogMzUgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJCX0sIC8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCQl9LCAvKiAzOCAqLwotCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCQl9LCAvKiAzOSAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCQl9LCAvKiA0MCAqLwotCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQkJfSwgLyogNDEgKi8KLQl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQkJfSwgLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCQl9LCAvKiA0MyAqLwotCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCQl9LCAvKiA0NCAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQkJfSwgLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgkJfSwgLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgkJfSwgLyogNDcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJCX0sIC8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgkJfSwgLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCQl9LCAvKiA1MCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQkJfSwgLyogNTEgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCQl9LCAvKiA1MiAqLwotCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQkJfSwgLyogNTUgKi8KLQl7IDAsCTAsCXN5c19tcHgsCQkic3lzX21weCIJCX0sIC8qIDU2ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgkJfSwgLyogNTcgKi8KLQl7IDIsCTAsCXN5c191bGltaXQsCQkidWxpbWl0IgkJfSwgLyogNTggKi8KLQl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgkJfSwgLyogNTkgKi8KLQl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCQl9LCAvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290IgkJfSwgLyogNjEgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCQl9LCAvKiA2MiAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCQl9LCAvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJCX0sIC8qIDY0ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgkJfSwgLyogNjUgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgkJfSwgLyogNjYgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJCX0sIC8qIDY3ICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInNnZXRtYXNrIgkJfSwgLyogNjggKi8KLQl7IDEsCVRTLAlwcmludGFyZ3MsCQkic3NldG1hc2siCQl9LCAvKiA2OSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgkJfSwgLyogNzAgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJCX0sIC8qIDcxICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJIm9sZGdldHJsaW1pdCIJCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5IgkJfSwgLyogNzggKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCQl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCQl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCQl9LCAvKiA4MSAqLwotCXsgMSwJMCwJc3lzX29sZHNlbGVjdCwJCSJvbGRzZWxlY3QiCQl9LCAvKiA4MiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCQl9LCAvKiA4MyAqLwotCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJCX0sIC8qIDg0ICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgkJfSwgLyogODUgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJCX0sIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCQl9LCAvKiA4NyAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCQl9LCAvKiA4OCAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJCX0sIC8qIDg5ICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwIgkJCX0sIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJCX0sIC8qIDkxICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgkJfSwgLyogOTIgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgkJfSwgLyogOTMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgkJfSwgLyogOTQgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgkJfSwgLyogOTUgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5IgkJfSwgLyogOTYgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5IgkJfSwgLyogOTcgKi8KLQl7IDQsCTAsCXN5c19wcm9maWwsCQkicHJvZmlsIgkJfSwgLyogOTggKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgkJfSwgLyogMTAwICovCi0JeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJCX0sIC8qIDEwMSAqLwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJCX0sIC8qIDEwMiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCQl9LCAvKiAxMDMgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgkJfSwgLyogMTA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJCX0sIC8qIDEwNSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQkJfSwgLyogMTA2ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJCX0sIC8qIDEwNyAqLwotCXsgMiwJVEYsCXN5c19mc3RhdCwJCSJmc3RhdCIJCQl9LCAvKiAxMDggKi8KLQl7IDEsCTAsCXN5c19vbGR1bmFtZSwJCSJvbGR1bmFtZSIJCX0sIC8qIDEwOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTAiCQl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCQl9LCAvKiAxMTEgKi8KLQl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQkJfSwgLyogMTEyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzExMyIJCX0sIC8qIDExMyAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCQl9LCAvKiAxMTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCQl9LCAvKiAxMTUgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCQl9LCAvKiAxMTYgKi8KLQl7IDYsCTAsCXN5c19pcGMsCQkiaXBjIgkJCX0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJCX0sIC8qIDExOCAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkic2lncmV0dXJuIgkJfSwgLyogMTE5ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJCX0sIC8qIDEyMCAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgkJfSwgLyogMTIxICovCi0JeyAxLAkwLAlzeXNfdW5hbWUsCQkidW5hbWUiCQkJfSwgLyogMTIyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMyIJCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4IgkJfSwgLyogMTI0ICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCQl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgkJfSwgLyogMTI3ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgkJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIgl9LCAvKiAxMzAgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJCX0sIC8qIDEzMiAqLwotCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgkJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgkJfSwgLyogMTM0ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQkJfSwgLyogMTM1ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCQl9LCAvKiAxMzcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJCX0sIC8qIDEzOCAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgkJfSwgLyogMTM5ICovCi0JeyA1LAlURiwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgkJfSwgLyogMTQwICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCQl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0IgkJfSwgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQkJfSwgLyogMTQzICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQkJfSwgLyogMTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQkJfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJCX0sIC8qIDE0NiAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCQl9LCAvKiAxNDcgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgkJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCQl9LCAvKiAxNDkgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCQl9LCAvKiAxNTAgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCQl9LCAvKiAxNTEgKi8KLQl7IDEsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJCX0sIC8qIDE1MiAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJCX0sIC8qIDE1MyAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0iCX0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0iCX0sIC8qIDE1NSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciIJfSwgLyogMTU2ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIgl9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIgkJfSwgLyogMTU4ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCQl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgkJfSwgLyogMTYzICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJCX0sIC8qIDE2NCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCQl9LCAvKiAxNjUgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCQl9LCAvKiAxNjYgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogMTY3ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDE2OCAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCQl9LCAvKiAxNjkgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgkJfSwgLyogMTcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQkJfSwgLyogMTcxICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJCX0sIC8qIDE3MiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCQl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayIJfSwgLyogMTc0ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgkJfSwgLyogMTc1ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCIJfSwgLyogMTc2ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywJInJ0X3NpZ3F1ZXVlaW5mbyIJfSwgLyogMTc3ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgkJfSwgLyogMTc4ICovCi0JeyA2LAlURiwJc3lzX3ByZWFkLAkJInByZWFkNjQiCQl9LCAvKiAxNzkgKi8KLQl7IDYsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZTY0IgkJfSwgLyogMTgwICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJCX0sIC8qIDE4MSAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgkJfSwgLyogMTgyICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJCX0sIC8qIDE4MyAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCQl9LCAvKiAxODQgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJCX0sIC8qIDE4NSAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJCX0sIC8qIDE4NiAqLwotCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJCX0sIC8qIDE4NyAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJCX0sIC8qIDE4OCAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCQl9LCAvKiAxODkgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0IgkJfSwgLyogMTkwICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJCX0sIC8qIDE5MCAqLwotCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcDIiCQkJfSwgLyogMTkyICovCi0JeyA0LAlURiwJc3lzX3RydW5jYXRlNjQsCQkidHJ1bmNhdGU2NCIJCX0sIC8qIDE5MyAqLwotCXsgNCwJVEYsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0IgkJfSwgLyogMTk0ICovCi0KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJCX0sIC8qIDE5NSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiAxOTYgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0IgkJfSwgLyogMTk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3JlYWQiCX0sIC8qIDE5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ193cml0ZSIJfSwgLyogMTk5ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX2lvYmFzZSIJfSwgLyogMjAwICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkiTU9MIgkJCX0sIC8qIDIwMSAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJCX0sIC8qIDIwMiAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJCX0sIC8qIDIwMyAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCQl9LCAvKiAyMDQgKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCQl9LCAvKiAyMDUgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkJIm1pbmNvcmUiCQl9LCAvKiAyMDYgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCQl9LCAvKiAyMDcgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCQl9LCAvKiAyMDggKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCQl9LCAvKiAyMDkgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgkJfSwgLyogMjEwICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJCX0sIC8qIDIxMSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJCX0sIC8qIDIxMiAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCQl9LCAvKiAyMTMgKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgkJfSwgLyogMjE0ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCQl9LCAvKiAyMTUgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCQl9LCAvKiAyMTYgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCQl9LCAvKiAyMTcgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJCX0sIC8qIDIxOCAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJCX0sIC8qIDIxOSAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJCX0sIC8qIDIyMCAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJCX0sIC8qIDIyMSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiCX0sIC8qIDIyMiAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiCX0sIC8qIDIyMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQiCQl9LCAvKiAyMjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJ0dXgiCQkJfSwgLyogMjI1ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlNjQsCQkic2VuZGZpbGU2NCIJCX0sIC8qIDIyNiAqLwotCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgkJfSwgLyogMjI3ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95IgkJfSwgLyogMjI4ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJCX0sIC8qIDIyOSAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCQl9LCAvKiAyMzAgKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgkJfSwgLyogMjMxICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIgl9LCAvKiAyMzIgKi8KLQl7IDYsCVRGLAlzeXNfZmFkdmlzZTY0LAkJImZhZHZpc2U2NCIJCX0sIC8qIDIzMyAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCQl9LCAvKiAyMzQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSIJfSwgLyogMjM1ICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgkJfSwgLyogMjM2ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJCX0sIC8qIDIzNyAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJCX0sIC8qIDIzOCAqLwotCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIgl9LCAvKiAyMzkgKi8KLQl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCQl9LCAvKiAyNDAgKi8KLQl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJCX0sIC8qIDI0MSAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgkJfSwgLyogMjQyICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwJInRpbWVyX2dldG92ZXJydW4iCX0sIC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJCX0sIC8qIDI0NCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgkJfSwgLyogMjQ1ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCQl9LCAvKiAyNDYgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCQl9LCAvKiAyNDcgKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAiCX0sIC8qIDI0OCAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJInN3YXBjb250ZXh0IgkJfSwgLyogMjQ5ICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCQl9LCAvKiAyNTAgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJCX0sIC8qIDI1MSAqLwotCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJCSJzdGF0ZnM2NCIJCX0sIC8qIDI1MiAqLwotCXsgMywJVEYsCXN5c19mc3RhdGZzNjQsCQkiZnN0YXRmczY0IgkJfSwgLyogMjUzICovCi0JeyA2LAlURiwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NF82NCIJCX0sIC8qIDI1NCAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInJ0YXMiCQkJfSwgLyogMjU1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZGVidWdfc2V0Y29udGV4dCIJfSwgLyogMjU2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJCX0sIC8qIDI1NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgiCQl9LCAvKiAyNTggKi8KLQl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCQl9LCAvKiAyNTkgKi8KLQl7IDUsCTAsCXN5c19nZXRfbWVtcG9saWN5LAkiZ2V0X21lbXBvbGljeSIJCX0sIC8qIDI2MCAqLwotCXsgMywJMCwJc3lzX3NldF9tZW1wb2xpY3ksCSJzZXRfbWVtcG9saWN5IgkJfSwgLyogMjYxICovCi0JeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgkJfSwgLyogMjYyICovCi0JeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJCX0sIC8qIDI2MyAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJCX0sIC8qIDI2NCAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIJfSwgLyogMjY1ICovCi0JeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJCX0sIC8qIDI2NiAqLwotCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgkJfSwgLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic3lzX2tleGVjX2xvYWQiCX0sIC8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFkZF9rZXkiCQl9LCAvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJyZXF1ZXN0X2tleSIJCX0sIC8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJCX0sIC8qIDI3MSAqLwotCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgkJfSwgLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJCX0sIC8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCQl9LCAvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1IgkJfSwgLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJCX0sIC8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCQl9LCAvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4IgkJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCQl9LCAvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgkJfSwgLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCQl9LCAvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg0IgkJfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJCX0sIC8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCQl9LCAvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3IgkJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJCX0sIC8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCQl9LCAvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgkJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJCX0sIC8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCQl9LCAvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgkJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJCX0sIC8qIDI5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCQl9LCAvKiAyOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk2IgkJfSwgLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJCX0sIC8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCQl9LCAvKiAyOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk5IgkJfSwgLyogMjk5ICovCi0KLQl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAzMDAgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMzAxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDMwMiAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDMwMyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAzMDQgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMzA1ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDMwNiAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAzMDcgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAzMDggKi8KLQl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMzA5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDMxMCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAzMTEgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDMxMiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMzEzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMzE0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMzE1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMzE2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMzE3ICovCi0KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzE4ICovCi0JeyA0LAlUSSwJcHJpbnRhcmdzLAkJInNlbW9wIgkJfSwgLyogMzE5ICovCi0JeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDMyMCAqLwotCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAzMjEgKi8KLQl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgl9LCAvKiAzMjIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzIzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjggKi8KLQl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogMzI5ICovCi0JeyA0LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDMzMCAqLwotCXsgNCwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAzMzEgKi8KLQl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMzMyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM4ICovCi0JeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgLyogMzM5ICovCi0JeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMzQwICovCi0JeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDM0MSAqLwotCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAzNDIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQzIgl9LCAvKiAzNDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0Igl9LCAvKiAzNDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1Igl9LCAvKiAzNDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2Igl9LCAvKiAzNDYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3Igl9LCAvKiAzNDcgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkwL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvczM5MC9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODBiNTA2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zMzkwL2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFREVBRExLIiwgLyogMzUgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogMzYgKi8KLQkiRU5PTENLIiwgLyogMzcgKi8KLQkiRU5PU1lTIiwgLyogMzggKi8KLQkiRU5PVEVNUFRZIiwgLyogMzkgKi8KLQkiRUxPT1AiLCAvKiA0MCAqLwotCSJFUlJOT180MSIsIC8qIDQxICovCi0JIkVOT01TRyIsIC8qIDQyICovCi0JIkVJRFJNIiwgLyogNDMgKi8KLQkiRUNIUk5HIiwgLyogNDQgKi8KLQkiRUwyTlNZTkMiLCAvKiA0NSAqLwotCSJFTDNITFQiLCAvKiA0NiAqLwotCSJFTDNSU1QiLCAvKiA0NyAqLwotCSJFTE5STkciLCAvKiA0OCAqLwotCSJFVU5BVENIIiwgLyogNDkgKi8KLQkiRU5PQ1NJIiwgLyogNTAgKi8KLQkiRUwySExUIiwgLyogNTEgKi8KLQkiRUJBREUiLCAvKiA1MiAqLwotCSJFQkFEUiIsIC8qIDUzICovCi0JIkVYRlVMTCIsIC8qIDU0ICovCi0JIkVOT0FOTyIsIC8qIDU1ICovCi0JIkVCQURSUUMiLCAvKiA1NiAqLwotCSJFQkFEU0xUIiwgLyogNTcgKi8KLQkiRVJSTk9fNTgiLCAvKiA1OCAqLwotCSJFQkZPTlQiLCAvKiA1OSAqLwotCSJFTk9TVFIiLCAvKiA2MCAqLwotCSJFTk9EQVRBIiwgLyogNjEgKi8KLQkiRVRJTUUiLCAvKiA2MiAqLwotCSJFTk9TUiIsIC8qIDYzICovCi0JIkVOT05FVCIsIC8qIDY0ICovCi0JIkVOT1BLRyIsIC8qIDY1ICovCi0JIkVSRU1PVEUiLCAvKiA2NiAqLwotCSJFTk9MSU5LIiwgLyogNjcgKi8KLQkiRUFEViIsIC8qIDY4ICovCi0JIkVTUk1OVCIsIC8qIDY5ICovCi0JIkVDT01NIiwgLyogNzAgKi8KLQkiRVBST1RPIiwgLyogNzEgKi8KLQkiRU1VTFRJSE9QIiwgLyogNzIgKi8KLQkiRURPVERPVCIsIC8qIDczICovCi0JIkVCQURNU0ciLCAvKiA3NCAqLwotCSJFT1ZFUkZMT1ciLCAvKiA3NSAqLwotCSJFTk9UVU5JUSIsIC8qIDc2ICovCi0JIkVCQURGRCIsIC8qIDc3ICovCi0JIkVSRU1DSEciLCAvKiA3OCAqLwotCSJFTElCQUNDIiwgLyogNzkgKi8KLQkiRUxJQkJBRCIsIC8qIDgwICovCi0JIkVMSUJTQ04iLCAvKiA4MSAqLwotCSJFTElCTUFYIiwgLyogODIgKi8KLQkiRUxJQkVYRUMiLCAvKiA4MyAqLwotCSJFSUxTRVEiLCAvKiA4NCAqLwotCSJFUkVTVEFSVCIsIC8qIDg1ICovCi0JIkVTVFJQSVBFIiwgLyogODYgKi8KLQkiRVVTRVJTIiwgLyogODcgKi8KLQkiRU5PVFNPQ0siLCAvKiA4OCAqLwotCSJFREVTVEFERFJSRVEiLCAvKiA4OSAqLwotCSJFTVNHU0laRSIsIC8qIDkwICovCi0JIkVQUk9UT1RZUEUiLCAvKiA5MSAqLwotCSJFTk9QUk9UT09QVCIsIC8qIDkyICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDkzICovCi0JIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDk0ICovCi0JIkVPUE5PVFNVUFAiLCAvKiA5NSAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiA5NiAqLwotCSJFQUZOT1NVUFBPUlQiLCAvKiA5NyAqLwotCSJFQUREUklOVVNFIiwgLyogOTggKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDk5ICovCi0JIkVORVRET1dOIiwgLyogMTAwICovCi0JIkVORVRVTlJFQUNIIiwgLyogMTAxICovCi0JIkVORVRSRVNFVCIsIC8qIDEwMiAqLwotCSJFQ09OTkFCT1JURUQiLCAvKiAxMDMgKi8KLQkiRUNPTk5SRVNFVCIsIC8qIDEwNCAqLwotCSJFTk9CVUZTIiwgLyogMTA1ICovCi0JIkVJU0NPTk4iLCAvKiAxMDYgKi8KLQkiRU5PVENPTk4iLCAvKiAxMDcgKi8KLQkiRVNIVVRET1dOIiwgLyogMTA4ICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDEwOSAqLwotCSJFVElNRURPVVQiLCAvKiAxMTAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogMTExICovCi0JIkVIT1NURE9XTiIsIC8qIDExMiAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiAxMTMgKi8KLQkiRUFMUkVBRFkiLCAvKiAxMTQgKi8KLQkiRUlOUFJPR1JFU1MiLCAvKiAxMTUgKi8KLQkiRVNUQUxFIiwgLyogMTE2ICovCi0JIkVVQ0xFQU4iLCAvKiAxMTcgKi8KLQkiRU5PVE5BTSIsIC8qIDExOCAqLwotCSJFTkFWQUlMIiwgLyogMTE5ICovCi0JIkVJU05BTSIsIC8qIDEyMCAqLwotCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KLQkiRURRVU9UIiwgLyogMTIyICovCi0JIkVOT01FRElVTSIsIC8qIDEyMyAqLwotCSJFTUVESVVNVFlQRSIsIC8qIDEyNCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3MzOTAvaW9jdGxlbnQuaCBiL3N0cmFjZS9saW51eC9zMzkwL2lvY3RsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNGZiZWIuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3MzOTAvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDk0MSArMCwwIEBACi17ImxpbnV4L2ZzLmgiLCAiRklCTUFQIiwgMHgxfSwKLXsibGludXgvZnMuaCIsICJGSUdFVEJTWiIsIDB4Mn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRDTFJQUk0iLCAweDI0MX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRNU0dPTiIsIDB4MjQ1fSwKLXsibGludXgvZmQuaCIsICJGRE1TR09GRiIsIDB4MjQ2fSwKLXsibGludXgvZmQuaCIsICJGREZNVEJFRyIsIDB4MjQ3fSwKLXsibGludXgvZmQuaCIsICJGREZNVEVORCIsIDB4MjQ5fSwKLXsibGludXgvZmQuaCIsICJGRFNFVEVNU0dUUkVTSCIsIDB4MjRhfSwKLXsibGludXgvZmQuaCIsICJGREZMVVNIIiwgMHgyNGJ9LAoteyJsaW51eC9mZC5oIiwgIkZEUkVTRVQiLCAweDI1NH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRXRVJST1JDTFIiLCAweDI1Nn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRSQVdDTUQiLCAweDI1OH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRUV0FERExFIiwgMHgyNTl9LAoteyJsaW51eC9mZC5oIiwgIkZERUpFQ1QiLCAweDI1YX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRHRU8iLCAweDMwMX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfVU5NQVNLSU5UUiIsIDB4MzAyfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9NVUxUQ09VTlQiLCAweDMwNH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19PQlNPTEVURV9JREVOVElUWSIsIDB4MzA3fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9LRUVQU0VUVElOR1MiLCAweDMwOH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfMzJCSVQiLCAweDMwOX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTk9XRVJSIiwgMHgzMGF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0RNQSIsIDB4MzBifSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9OSUNFIiwgMHgzMGN9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0lERU5USVRZIiwgMHgzMGR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfUkVTRVQiLCAweDMxY30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19UUklTVEFURV9IV0lGIiwgMHgzMWR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfVEFTSyIsIDB4MzFlfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX0NNRCIsIDB4MzFmfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9NVUxUQ09VTlQiLCAweDMyMX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfVU5NQVNLSU5UUiIsIDB4MzIyfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9LRUVQU0VUVElOR1MiLCAweDMyM30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfMzJCSVQiLCAweDMyNH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTk9XRVJSIiwgMHgzMjV9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX0RNQSIsIDB4MzI2fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9QSU9fTU9ERSIsIDB4MzI3fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NDQU5fSFdJRiIsIDB4MzI4fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9OSUNFIiwgMHgzMjl9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fVU5SRUdJU1RFUl9IV0lGIiwgMHgzMmF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUR0VPX0JJRyIsIDB4MzMwfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVEdFT19CSUdfUkFXIiwgMHgzMzF9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9ET1MiLCAweDRkMn0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRE9TIiwgMHg0ZDN9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUk1ESVJfRE9TIiwgMHg0ZDR9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfU1RBVF9ET1MiLCAweDRkNX0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19DUkVBVF9FTUQiLCAweDRkNn0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRU1EIiwgMHg0ZDd9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9FTUQiLCAweDRkOH0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19HRVRWRVJTSU9OIiwgMHg0ZDl9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfSU5JVF9FTUQiLCAweDRkYX0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19ET1NfU0VUVVAiLCAweDRkYn0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19SRU5BTUVfRE9TIiwgMHg0ZGN9LAoteyJsaW51eC9scC5oIiwgIkxQQ0hBUiIsIDB4NjAxfSwKLXsibGludXgvbHAuaCIsICJMUFRJTUUiLCAweDYwMn0sCi17ImxpbnV4L2xwLmgiLCAiTFBBQk9SVCIsIDB4NjA0fSwKLXsibGludXgvbHAuaCIsICJMUFNFVElSUSIsIDB4NjA1fSwKLXsibGludXgvYWM5N19jb2RlYy5oIiwgIkFDOTdfUkVDTVVYX01PTk9fTUlYIiwgMHg2MDZ9LAoteyJsaW51eC9scC5oIiwgIkxQR0VUSVJRIiwgMHg2MDZ9LAoteyJsaW51eC9scC5oIiwgIkxQV0FJVCIsIDB4NjA4fSwKLXsibGludXgvbHAuaCIsICJMUENBUkVGVUwiLCAweDYwOX0sCi17ImxpbnV4L2xwLmgiLCAiTFBBQk9SVE9QRU4iLCAweDYwYX0sCi17ImxpbnV4L2xwLmgiLCAiTFBHRVRTVEFUVVMiLCAweDYwYn0sCi17ImxpbnV4L2xwLmgiLCAiTFBSRVNFVCIsIDB4NjBjfSwKLXsibGludXgvbHAuaCIsICJMUEdFVFNUQVRTIiwgMHg2MGR9LAoteyJsaW51eC9scC5oIiwgIkxQR0VURkxBR1MiLCAweDYwZX0sCi17ImxpbnV4L2xwLmgiLCAiTFBTRVRUSU1FT1VUIiwgMHg2MGZ9LAoteyJsaW51eC9mcy5oIiwgIkJMS1JPU0VUIiwgMHgxMjVkfSwKLXsibGludXgvZnMuaCIsICJCTEtST0dFVCIsIDB4MTI1ZX0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUlJQQVJUIiwgMHgxMjVmfSwKLXsibGludXgvZnMuaCIsICJCTEtHRVRTSVpFIiwgMHgxMjYwfSwKLXsibGludXgvZnMuaCIsICJCTEtGTFNCVUYiLCAweDEyNjF9LAoteyJsaW51eC9mcy5oIiwgIkJMS1JBU0VUIiwgMHgxMjYyfSwKLXsibGludXgvZnMuaCIsICJCTEtSQUdFVCIsIDB4MTI2M30sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRlJBU0VUIiwgMHgxMjY0fSwKLXsibGludXgvZnMuaCIsICJCTEtGUkFHRVQiLCAweDEyNjV9LAoteyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RTRVQiLCAweDEyNjZ9LAoteyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RHRVQiLCAweDEyNjd9LAoteyJsaW51eC9mcy5oIiwgIkJMS1NTWkdFVCIsIDB4MTI2OH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUEciLCAweDEyNjl9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX1RJTUVPVVQiLCAweDIyMDF9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1RJTUVPVVQiLCAweDIyMDJ9LAoteyJzY3NpL3NnLmgiLCAiU0dfRU1VTEFURURfSE9TVCIsIDB4MjIwM30sCi17InNjc2kvc2cuaCIsICJTR19TRVRfVFJBTlNGT1JNIiwgMHgyMjA0fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9UUkFOU0ZPUk0iLCAweDIyMDV9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX0NPTU1BTkRfUSIsIDB4MjI3MH0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfQ09NTUFORF9RIiwgMHgyMjcxfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjcyfSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjc1fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9TQ1NJX0lEIiwgMHgyMjc2fSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwgMHgyMjc5fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9MT1dfRE1BIiwgMHgyMjdhfSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwgMHgyMjdifSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9QQUNLX0lEIiwgMHgyMjdjfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9OVU1fV0FJVElORyIsIDB4MjI3ZH0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfREVCVUciLCAweDIyN2V9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1NHX1RBQkxFU0laRSIsIDB4MjI3Zn0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfVkVSU0lPTl9OVU0iLCAweDIyODJ9LAoteyJzY3NpL3NnLmgiLCAiU0dfTkVYVF9DTURfTEVOIiwgMHgyMjgzfSwKLXsic2NzaS9zZy5oIiwgIlNHX1NDU0lfUkVTRVQiLCAweDIyODR9LAoteyJzY3NpL3NnLmgiLCAiU0dfSU8iLCAweDIyODV9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLCAweDIyODZ9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX0tFRVBfT1JQSEFOIiwgMHgyMjg3fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9LRUVQX09SUEhBTiIsIDB4MjI4OH0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQUNRVUlSRSIsIDB4NDEwMX0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfUkVMRUFTRSIsIDB4NDEwMn0sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfU0xFRVAiLCAweDQyMDB9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RESVNBQkxFIiwgMHg0NDAwfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNERU5BQkxFIiwgMHg0NDAxfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUlNSViIsIDB4NDQwMn0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFJMU0UiLCAweDQ0MDN9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTTENLIiwgMHg0NDA0fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSU1QiLCAweDQ0MDV9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RRVUlFU0NFIiwgMHg0NDA2fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUkVTVU1FIiwgMHg0NDA3fSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RDTUZFTkFCTEUiLCAweDQ0MjB9LAoteyJhc20vY21iLmgiLCAiQklPREFTRENNRkRJU0FCTEUiLCAweDQ0MjF9LAoteyJhc20vY21iLmgiLCAiQklPREFTRFJFU0VUQ01CIiwgMHg0NDIyfSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAwfSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAxfSwKLXsibGludXgvcHMyZXNkaS5oIiwgIkNNRF9SRUFEIiwgMHg0NjAxfSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0ZTQ1JFRU5JTkZPIiwgMHg0NjAyfSwKLXsibGludXgvcHMyZXNkaS5oIiwgIkNNRF9XUklURSIsIDB4NDYwMn0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVENNQVAiLCAweDQ2MDR9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9QVVRDTUFQIiwgMHg0NjA1fSwKLXsibGludXgvZmIuaCIsICJGQklPUEFOX0RJU1BMQVkiLCAweDQ2MDZ9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfRkNVUlNPUklORk8iLCAweDQ2MDd9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfVkNVUlNPUklORk8iLCAweDQ2MDh9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfVkNVUlNPUklORk8iLCAweDQ2MDl9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ1VSU09SU1RBVEUiLCAweDQ2MGF9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfQ1VSU09SU1RBVEUiLCAweDQ2MGJ9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ09OMkZCTUFQIiwgMHg0NjBmfSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX0NPTjJGQk1BUCIsIDB4NDYxMH0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0JMQU5LIiwgMHg0NjExfSwKLXsibGludXgvZmIuaCIsICJGQklPX0FMTE9DIiwgMHg0NjEzfSwKLXsibGludXgvZmIuaCIsICJGQklPX0ZSRUUiLCAweDQ2MTR9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfR0xZUEgiLCAweDQ2MTV9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfSFdDSU5GTyIsIDB4NDYxNn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUlGIiwgMHg0OTAxfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRESUYiLCAweDQ5MDJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVFNDRiIsIDB4NDkwM30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR0NGIiwgMHg0OTA0fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRBTk0iLCAweDQ5MDV9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEROTSIsIDB4NDkwNn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR05NIiwgMHg0OTA3fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRTRVQiLCAweDQ5MDh9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFNFVCIsIDB4NDkwOX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUVkVSIiwgMHg0OTBhfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRIVVAiLCAweDQ5MGJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVEdTVCIsIDB4NDkwY30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUQlJKIiwgMHg0OTBkfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTSUdQUkYiLCAweDQ5MGV9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVFBSRiIsIDB4NDkwZn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUUFJGIiwgMHg0OTEwfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRNQVAiLCAweDQ5MTF9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVE1BUCIsIDB4NDkxMn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQVNMIiwgMHg0OTEzfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRESUwiLCAweDQ5MTR9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVENQUyIsIDB4NDkxNX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VURFZSIiwgMHg0OTE2fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRMQ1IiLCAweDQ5MTd9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVERXUlNFVCIsIDB4NDkxOH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUxOIiwgMHg0OTIwfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRETE4iLCAweDQ5MjF9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdQTiIsIDB4NDkyMn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DREJHVkFSIiwgMHg0OTdmfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NEUlZDVEwiLCAweDQ5ODB9LAoteyJsaW51eC9rZC5oIiwgIktJT0NTT1VORCIsIDB4NGIyZn0sCi17ImxpbnV4L2tkLmgiLCAiS0RNS1RPTkUiLCAweDRiMzB9LAoteyJsaW51eC9rZC5oIiwgIktER0VUTEVEIiwgMHg0YjMxfSwKLXsibGludXgva2QuaCIsICJLRFNFVExFRCIsIDB4NGIzMn0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JUWVBFIiwgMHg0YjMzfSwKLXsibGludXgva2QuaCIsICJLREFERElPIiwgMHg0YjM0fSwKLXsibGludXgva2QuaCIsICJLRERFTElPIiwgMHg0YjM1fSwKLXsibGludXgva2QuaCIsICJLREVOQUJJTyIsIDB4NGIzNn0sCi17ImxpbnV4L2tkLmgiLCAiS0RESVNBQklPIiwgMHg0YjM3fSwKLXsibGludXgva2QuaCIsICJLRFNFVE1PREUiLCAweDRiM2F9LAoteyJsaW51eC9rZC5oIiwgIktER0VUTU9ERSIsIDB4NGIzYn0sCi17ImxpbnV4L2tkLmgiLCAiS0RNQVBESVNQIiwgMHg0YjNjfSwKLXsibGludXgva2QuaCIsICJLRFVOTUFQRElTUCIsIDB4NGIzZH0sCi17ImxpbnV4L2tkLmgiLCAiR0lPX1NDUk5NQVAiLCAweDRiNDB9LAoteyJsaW51eC9rZC5oIiwgIlBJT19TQ1JOTUFQIiwgMHg0YjQxfSwKLXsibGludXgva2QuaCIsICJLREdLQk1PREUiLCAweDRiNDR9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCTU9ERSIsIDB4NGI0NX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JFTlQiLCAweDRiNDZ9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCRU5UIiwgMHg0YjQ3fSwKLXsibGludXgva2QuaCIsICJLREdLQlNFTlQiLCAweDRiNDh9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCU0VOVCIsIDB4NGI0OX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JESUFDUiIsIDB4NGI0YX0sCi17ImxpbnV4L2tkLmgiLCAiS0RTS0JESUFDUiIsIDB4NGI0Yn0sCi17ImxpbnV4L2tkLmgiLCAiS0RHRVRLRVlDT0RFIiwgMHg0YjRjfSwKLXsibGludXgva2QuaCIsICJLRFNFVEtFWUNPREUiLCAweDRiNGR9LAoteyJsaW51eC9rZC5oIiwgIktEU0lHQUNDRVBUIiwgMHg0YjRlfSwKLXsibGludXgva2QuaCIsICJLREdIV0NMSyIsIDB4NGI1MH0sCi17ImxpbnV4L2tkLmgiLCAiS0RTSFdDTEsiLCAweDRiNTF9LAoteyJsaW51eC9rZC5oIiwgIktES0JEUkVQIiwgMHg0YjUyfSwKLXsibGludXgva2QuaCIsICJHSU9fRk9OVCIsIDB4NGI2MH0sCi17ImxpbnV4L2tkLmgiLCAiUElPX0ZPTlQiLCAweDRiNjF9LAoteyJsaW51eC9rZC5oIiwgIktER0tCTUVUQSIsIDB4NGI2Mn0sCi17ImxpbnV4L2tkLmgiLCAiS0RTS0JNRVRBIiwgMHg0YjYzfSwKLXsibGludXgva2QuaCIsICJLREdLQkxFRCIsIDB4NGI2NH0sCi17ImxpbnV4L2tkLmgiLCAiS0RTS0JMRUQiLCAweDRiNjV9LAoteyJsaW51eC9rZC5oIiwgIkdJT19VTklNQVAiLCAweDRiNjZ9LAoteyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVAiLCAweDRiNjd9LAoteyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVBDTFIiLCAweDRiNjh9LAoteyJsaW51eC9rZC5oIiwgIkdJT19VTklTQ1JOTUFQIiwgMHg0YjY5fSwKLXsibGludXgva2QuaCIsICJQSU9fVU5JU0NSTk1BUCIsIDB4NGI2YX0sCi17ImxpbnV4L2tkLmgiLCAiR0lPX0ZPTlRYIiwgMHg0YjZifSwKLXsibGludXgva2QuaCIsICJQSU9fRk9OVFgiLCAweDRiNmN9LAoteyJsaW51eC9rZC5oIiwgIlBJT19GT05UUkVTRVQiLCAweDRiNmR9LAoteyJsaW51eC9rZC5oIiwgIkdJT19DTUFQIiwgMHg0YjcwfSwKLXsibGludXgva2QuaCIsICJQSU9fQ01BUCIsIDB4NGI3MX0sCi17ImxpbnV4L2tkLmgiLCAiS0RGT05UT1AiLCAweDRiNzJ9LAoteyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfRkQiLCAweDRjMDB9LAoteyJsaW51eC9sb29wLmgiLCAiTE9PUF9DTFJfRkQiLCAweDRjMDF9LAoteyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfU1RBVFVTIiwgMHg0YzAyfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfR0VUX1NUQVRVUyIsIDB4NGMwM30sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJORFpBUEVOVENOVCIsIDB4NTIwNH0sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJORENMRUFSUE9PTCIsIDB4NTIwNn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QQVVTRSIsIDB4NTMwMX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNVTUUiLCAweDUzMDJ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUExBWU1TRiIsIDB4NTMwM30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QTEFZVFJLSU5EIiwgMHg1MzA0fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURUT0NIRFIiLCAweDUzMDV9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRFRPQ0VOVFJZIiwgMHg1MzA2fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVNUT1AiLCAweDUzMDd9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU1RBUlQiLCAweDUzMDh9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NRUpFQ1QiLCAweDUzMDl9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NVk9MQ1RSTCIsIDB4NTMwYX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TVUJDSE5MIiwgMHg1MzBifSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURNT0RFMiIsIDB4NTMwY30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFETU9ERTEiLCAweDUzMGR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFVRElPIiwgMHg1MzBlfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTUVKRUNUX1NXIiwgMHg1MzBmfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTU1VTFRJU0VTU0lPTiIsIDB4NTMxMH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fR0VUX01DTiIsIDB4NTMxMX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNFVCIsIDB4NTMxMn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01WT0xSRUFEIiwgMHg1MzEzfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURSQVciLCAweDUzMTR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRENPT0tFRCIsIDB4NTMxNX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TRUVLIiwgMHg1MzE2fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVBMQVlCTEsiLCAweDUzMTd9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFMTCIsIDB4NTMxOH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01DTE9TRVRSQVkiLCAweDUzMTl9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NR0VUU1BJTkRPV04iLCAweDUzMWR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU0VUU1BJTkRPV04iLCAweDUzMWV9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFVF9PUFRJT05TIiwgMHg1MzIwfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9DTEVBUl9PUFRJT05TIiwgMHg1MzIxfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRUxFQ1RfU1BFRUQiLCAweDUzMjJ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFTEVDVF9ESVNDIiwgMHg1MzIzfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9NRURJQV9DSEFOR0VEIiwgMHg1MzI1fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9EUklWRV9TVEFUVVMiLCAweDUzMjZ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RJU0NfU1RBVFVTIiwgMHg1MzI3fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9DSEFOR0VSX05TTE9UUyIsIDB4NTMyOH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTE9DS0RPT1IiLCAweDUzMjl9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RFQlVHIiwgMHg1MzMwfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsIDB4NTMzMX0sCi17InNjc2kvc2NzaV9pb2N0bC5oIiwgIlNDU0lfSU9DVExfRE9PUkxPQ0siLCAweDUzODB9LAoteyJzY3NpL3Njc2lfaW9jdGwuaCIsICJTQ1NJX0lPQ1RMX0RPT1JVTkxPQ0siLCAweDUzODF9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9JRExVTiIsIDB4NTM4Mn0sCi17InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0VOQUJMRSIsIDB4NTM4M30sCi17InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLCAweDUzODR9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1BST0JFX0hPU1QiLCAweDUzODV9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9CVVNfTlVNQkVSIiwgMHg1Mzg2fSwKLXsibGludXgvY2Ryb20uaCIsICJEVkRfUkVBRF9TVFJVQ1QiLCAweDUzOTB9LAoteyJsaW51eC9jZHJvbS5oIiwgIkRWRF9XUklURV9TVFJVQ1QiLCAweDUzOTF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkRWRF9BVVRIIiwgMHg1MzkyfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRU5EX1BBQ0tFVCIsIDB4NTM5M30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTkVYVF9XUklUQUJMRSIsIDB4NTM5NH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTEFTVF9XUklUVEVOIiwgMHg1Mzk1fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDR0VUUyIsIDB4NTQwMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFMiLCAweDU0MDJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRTVyIsIDB4NTQwM30sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFNGIiwgMHg1NDA0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDR0VUQSIsIDB4NTQwNX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEEiLCAweDU0MDZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRBVyIsIDB4NTQwN30sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEFGIiwgMHg1NDA4fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0JSSyIsIDB4NTQwOX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1hPTkMiLCAweDU0MGF9LAoteyJhc20vaW9jdGxzLmgiLCAiVENGTFNIIiwgMHg1NDBifSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NFWENMIiwgMHg1NDBjfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NOWENMIiwgMHg1NDBkfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTQ1RUWSIsIDB4NTQwZX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1BHUlAiLCAweDU0MGZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NQR1JQIiwgMHg1NDEwfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NPVVRRIiwgMHg1NDExfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTVEkiLCAweDU0MTJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dXSU5TWiIsIDB4NTQxM30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1dJTlNaIiwgMHg1NDE0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNR0VUIiwgMHg1NDE1fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklTIiwgMHg1NDE2fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklDIiwgMHg1NDE3fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNU0VUIiwgMHg1NDE4fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHU09GVENBUiIsIDB4NTQxOX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1NPRlRDQVIiLCAweDU0MWF9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPTlJFQUQiLCAweDU0MWJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0xJTlVYIiwgMHg1NDFjfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NDT05TIiwgMHg1NDFkfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHU0VSSUFMIiwgMHg1NDFlfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTU0VSSUFMIiwgMHg1NDFmfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NQS1QiLCAweDU0MjB9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPTkJJTyIsIDB4NTQyMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTk9UVFkiLCAweDU0MjJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFVEQiLCAweDU0MjN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dFVEQiLCAweDU0MjR9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTQlJLUCIsIDB4NTQyNX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DVFRZR1NUUlVDVCIsIDB4NTQyNn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0JSSyIsIDB4NTQyN30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DQ0JSSyIsIDB4NTQyOH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NJRCIsIDB4NTQyOX0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9OQ0xFWCIsIDB4NTQ1MH0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9DTEVYIiwgMHg1NDUxfSwKLXsiYXNtL2lvY3Rscy5oIiwgIkZJT0FTWU5DIiwgMHg1NDUyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJDT05GSUciLCAweDU0NTN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdXSUxEIiwgMHg1NDU0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJTV0lMRCIsIDB4NTQ1NX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR0xDS1RSTUlPUyIsIDB4NTQ1Nn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0xDS1RSTUlPUyIsIDB4NTQ1N30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR1NUUlVDVCIsIDB4NTQ1OH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR0VUTFNSIiwgMHg1NDU5fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJHRVRNVUxUSSIsIDB4NTQ1YX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSU0VUTVVMVEkiLCAweDU0NWJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ01JV0FJVCIsIDB4NTQ1Y30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR0lDT1VOVCIsIDB4NTQ1ZH0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9RU0laRSIsIDB4NTQ1ZX0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0RJU0NBUkRVUkIiLCAweDU1MGJ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRVNFVCIsIDB4NTUxNH0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfT1BFTlFSWSIsIDB4NTYwMH0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfR0VUTU9ERSIsIDB4NTYwMX0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfU0VUTU9ERSIsIDB4NTYwMn0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfR0VUU1RBVEUiLCAweDU2MDN9LAoteyJsaW51eC92dC5oIiwgIlZUX1NFTkRTSUciLCAweDU2MDR9LAoteyJsaW51eC92dC5oIiwgIlZUX1JFTERJU1AiLCAweDU2MDV9LAoteyJsaW51eC92dC5oIiwgIlZUX0FDVElWQVRFIiwgMHg1NjA2fSwKLXsibGludXgvdnQuaCIsICJWVF9XQUlUQUNUSVZFIiwgMHg1NjA3fSwKLXsibGludXgvdnQuaCIsICJWVF9ESVNBTExPQ0FURSIsIDB4NTYwOH0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfUkVTSVpFIiwgMHg1NjA5fSwKLXsibGludXgvdnQuaCIsICJWVF9SRVNJWkVYIiwgMHg1NjBhfSwKLXsibGludXgvdnQuaCIsICJWVF9MT0NLU1dJVENIIiwgMHg1NjBifSwKLXsibGludXgvdnQuaCIsICJWVF9VTkxPQ0tTV0lUQ0giLCAweDU2MGN9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX1NFVEZSQU1JTkciLCAweDYxMTV9LAoteyJsaW51eC9hdG1fbmljc3Rhci5oIiwgIk5TX0FESkJVRkxFViIsIDB4NjE2M30sCi17ImxpbnV4L2F0bV90Y3AuaCIsICJTSU9DU0lGQVRNVENQIiwgMHg2MTgwfSwKLXsibGludXgvYXRtX3RjcC5oIiwgIkFUTVRDUF9DUkVBVEUiLCAweDYxOGV9LAoteyJsaW51eC9hdG1fdGNwLmgiLCAiQVRNVENQX1JFTU9WRSIsIDB4NjE4Zn0sCi17ImxpbnV4L2F0bWxlYy5oIiwgIkFUTUxFQ19DVFJMIiwgMHg2MWQwfSwKLXsibGludXgvYXRtbGVjLmgiLCAiQVRNTEVDX0RBVEEiLCAweDYxZDF9LAoteyJsaW51eC9hdG1sZWMuaCIsICJBVE1MRUNfTUNBU1QiLCAweDYxZDJ9LAoteyJsaW51eC9hdG1tcGMuaCIsICJBVE1NUENfQ1RSTCIsIDB4NjFkOH0sCi17ImxpbnV4L2F0bW1wYy5oIiwgIkFUTU1QQ19EQVRBIiwgMHg2MWQ5fSwKLXsibGludXgvYXRtY2xpcC5oIiwgIlNJT0NNS0NMSVAiLCAweDYxZTB9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBEX0NUUkwiLCAweDYxZTF9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfTUtJUCIsIDB4NjFlMn0sCi17ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9TRVRFTlRSWSIsIDB4NjFlM30sCi17ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9FTkNBUCIsIDB4NjFlNX0sCi17ImxpbnV4L2F0bXN2Yy5oIiwgIkFUTVNJR0RfQ1RSTCIsIDB4NjFmMH0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVFBPUlRTVEFUUyIsIDB4NjMxZX0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0NMUlBPUlRTVEFUUyIsIDB4NjMxZn0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVEJSRFNUQVRTIiwgMHg2MzIwfSwKLXsibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBRFBPUlQiLCAweDYzMjh9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEQk9BUkQiLCAweDYzMjl9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEUEFORUwiLCAweDYzMmF9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9EVU1QIiwgMHg2NGMwfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NUWElETEUiLCAweDZkMDJ9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1RYSURMRSIsIDB4NmQwM30sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEVOQUJMRSIsIDB4NmQwNH0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NSWEVOQUJMRSIsIDB4NmQwNX0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEFCT1JUIiwgMHg2ZDA2fSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dTVEFUUyIsIDB4NmQwN30sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NMT09QVFhET05FIiwgMHg2ZDA5fSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0NMUk1PRENPVU5UIiwgMHg2ZDBmfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsIDB4NmUwM30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19BSUVfT04iLCAweDcwMDF9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUlFX09GRiIsIDB4NzAwMn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19VSUVfT04iLCAweDcwMDN9LAoteyJsaW51eC9ydGMuaCIsICJSVENfVUlFX09GRiIsIDB4NzAwNH0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19QSUVfT04iLCAweDcwMDV9LAoteyJsaW51eC9ydGMuaCIsICJSVENfUElFX09GRiIsIDB4NzAwNn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19XSUVfT04iLCAweDcwMGZ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0lFX09GRiIsIDB4NzAxMH0sCi17ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fSU5JVCIsIDB4NzA0MH0sCi17ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fU0VUQ0tTIiwgMHg3MDQxfSwKLXsibGludXgvcHBkZXYuaCIsICJQUENMQUlNIiwgMHg3MDhifSwKLXsibGludXgvcHBkZXYuaCIsICJQUFJFTEVBU0UiLCAweDcwOGN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQWUlFTEQiLCAweDcwOGR9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQRVhDTCIsIDB4NzA4Zn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFUyIsIDB4NzE4MH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkciLCAweDcxODN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9IT09LU1RBVEUiLCAweDcxODR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX1NUQVJUIiwgMHg3MTg3fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19TVE9QIiwgMHg3MTg4fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUQVJUIiwgMHg3MThhfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUT1AiLCAweDcxOGJ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfTEVWRUwiLCAweDcxOGZ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1NUQVJUIiwgMHg3MTkxfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9TVE9QIiwgMHg3MTkyfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9MRVZFTCIsIDB4NzE5NX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLCAweDcxOWV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsIDB4NzE5Zn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX1NUQVRFIiwgMHg3MWEwfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQlVTWSIsIDB4NzFhMX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkdCQUNLIiwgMHg3MWEyfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRElBTFRPTkUiLCAweDcxYTN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DUFRfU1RPUCIsIDB4NzFhNH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwgMHg3MWE1fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUFNUTl9MSU5FVEVTVCIsIDB4NzFhOH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX1JFU0VUIiwgMHg3MWMwfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfSURMRSIsIDB4NzFjNX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfVEVTVFJBTSIsIDB4NzFjNn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQUVDX1NUT1AiLCAweDcxY2N9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLCAweDcxY2R9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BTVE5fTElORVRFU1QiLCAweDcxZDN9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsIDB4NzFlN30sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9CSU5UUiIsIDB4NzMxNH0sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9CU1RBUlQiLCAweDczMTV9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQlNUT1AiLCAweDczMTZ9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQlJFU0VUIiwgMHg3MzE3fSwKLXsibGludXgvY2RrLmgiLCAiU1RMX0dFVFBGTEFHIiwgMHg3MzUwfSwKLXsibGludXgvY2RrLmgiLCAiU1RMX1NFVFBGTEFHIiwgMHg3MzUxfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DRElTQ09OTiIsIDB4NzQzOX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1hGRVJVTklUIiwgMHg3NDRlfSwKLXsibGludXgvamZmcy5oIiwgIkpGRlNfUFJJTlRfSEFTSCIsIDB4NzQ1YX0sCi17ImxpbnV4L2pmZnMuaCIsICJKRkZTX1BSSU5UX1RSRUUiLCAweDc0NWJ9LAoteyJsaW51eC9qZmZzLmgiLCAiSkZGU19HRVRfU1RBVFVTIiwgMHg3NDVjfSwKLXsiYXNtL3NvY2tpb3MuaCIsICJGSU9TRVRPV04iLCAweDg5MDF9LAoteyJhc20vc29ja2lvcy5oIiwgIlNJT0NTUEdSUCIsIDB4ODkwMn0sCi17ImFzbS9zb2NraW9zLmgiLCAiRklPR0VUT1dOIiwgMHg4OTAzfSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DR1BHUlAiLCAweDg5MDR9LAoteyJhc20vc29ja2lvcy5oIiwgIlNJT0NBVE1BUksiLCAweDg5MDV9LAoteyJhc20vc29ja2lvcy5oIiwgIlNJT0NHU1RBTVAiLCAweDg5MDZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0FERFJUIiwgMHg4OTBifSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NERUxSVCIsIDB4ODkwY30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUlRNU0ciLCAweDg5MGR9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk5BTUUiLCAweDg5MTB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkxJTksiLCAweDg5MTF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPTkYiLCAweDg5MTJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkZMQUdTIiwgMHg4OTEzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZGTEFHUyIsIDB4ODkxNH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQUREUiIsIDB4ODkxNX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQUREUiIsIDB4ODkxNn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGRFNUQUREUiIsIDB4ODkxN30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRFNUQUREUiIsIDB4ODkxOH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQlJEQUREUiIsIDB4ODkxOX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlJEQUREUiIsIDB4ODkxYX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTkVUTUFTSyIsIDB4ODkxYn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkVUTUFTSyIsIDB4ODkxY30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTUVUUklDIiwgMHg4OTFkfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNRVRSSUMiLCAweDg5MWV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk1FTSIsIDB4ODkxZn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTUVNIiwgMHg4OTIwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNVFUiLCAweDg5MjF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1UVSIsIDB4ODkyMn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkFNRSIsIDB4ODkyM30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdBRERSIiwgMHg4OTI0fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZFTkNBUCIsIDB4ODkyNX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRU5DQVAiLCAweDg5MjZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkhXQUREUiIsIDB4ODkyN30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGU0xBVkUiLCAweDg5Mjl9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRlNMQVZFIiwgMHg4OTMwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NBRERNVUxUSSIsIDB4ODkzMX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMTVVMVEkiLCAweDg5MzJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRklOREVYIiwgMHg4OTMzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZQRkxBR1MiLCAweDg5MzR9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlBGTEFHUyIsIDB4ODkzNX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DRElGQUREUiIsIDB4ODkzNn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdCUk9BRENBU1QiLCAweDg5Mzd9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPVU5UIiwgMHg4OTM4fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZCUiIsIDB4ODk0MH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlIiLCAweDg5NDF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlRYUUxFTiIsIDB4ODk0Mn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGVFhRTEVOIiwgMHg4OTQzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NEQVJQIiwgMHg4OTUzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHQVJQIiwgMHg4OTU0fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTQVJQIiwgMHg4OTU1fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NEUkFSUCIsIDB4ODk2MH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR1JBUlAiLCAweDg5NjF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NSQVJQIiwgMHg4OTYyfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNQVAiLCAweDg5NzB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1BUCIsIDB4ODk3MX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DQURERExDSSIsIDB4ODk4MH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMRExDSSIsIDB4ODk4MX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUFJPVE9QUklWQVRFIiwgMHg4OWUwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NERVZQUklWQVRFIiwgMHg4OWYwfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfUkVBRFkiLCAweDkzNjB9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19GQUlMIiwgMHg5MzYxfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwgMHg5MzYyfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TT0NLIiwgMHhhYjAwfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9CTEtTSVpFIiwgMHhhYjAxfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFIiwgMHhhYjAyfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX0RPX0lUIiwgMHhhYjAzfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX0NMRUFSX1NPQ0siLCAweGFiMDR9LAoteyJsaW51eC9uYmQuaCIsICJOQkRfQ0xFQVJfUVVFIiwgMHhhYjA1fSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1BSSU5UX0RFQlVHIiwgMHhhYjA2fSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFX0JMT0NLUyIsIDB4YWIwN30sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9ESVNDT05ORUNUIiwgMHhhYjA4fSwKLXsibGludXgvcmF3LmgiLCAiUkFXX1NFVEJJTkQiLCAweGFjMDB9LAoteyJsaW51eC9yYXcuaCIsICJSQVdfR0VUQklORCIsIDB4YWMwMX0sCi17ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NERldEIiwgMHhiMTAxfSwKLXsibGludXgvbHZtLmgiLCAiTFZfQUNUSVZBVEUiLCAweGZlMjJ9LAoteyJsaW51eC9sdm0uaCIsICJMVl9ERUFDVElWQVRFIiwgMHhmZTIzfSwKLXsibGludXgvbHZtLmgiLCAiTFZNX1JFU0VUIiwgMHhmZTk5fSwKLXsibGludXgvbHZtLmgiLCAiTFZNX0xPQ0tfTFZNIiwgMHhmZjAwfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVE1PTiIsIDB4NDM1OTAxfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRIUkVTSCIsIDB4NDM1OTAyfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFRIUkVTSCIsIDB4NDM1OTAzfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVERFRlRIUkVTSCIsIDB4NDM1OTA0fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRIUkVTSCIsIDB4NDM1OTA1fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRJTUVPVVQiLCAweDQzNTkwNn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRUSU1FT1VUIiwgMHg0MzU5MDd9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZR0VUREVGVElNRU9VVCIsIDB4NDM1OTA4fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRJTUVPVVQiLCAweDQzNTkwOX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRSRkxPVyIsIDB4NDM1OTBhfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJGTE9XIiwgMHg0MzU5MGJ9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUUlRTRFRSX0lOViIsIDB4NDM1OTBjfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJUU0RUUl9JTlYiLCAweDQzNTkwZH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1laU0VUUE9MTENZQ0xFIiwgMHg0MzU5MGV9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZWkdFVFBPTExDWUNMRSIsIDB4NDM1OTBmfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENEMTQwMFZFUiIsIDB4NDM1OTEwfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENBUkRJTkZPIiwgMHg0MzU5MTF9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUV0FJVCIsIDB4NDM1OTEyfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFdBSVQiLCAweDQzNTkxM30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfVk9MVU1FIiwgMHgyMDA0NGQwMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQkFTUyIsIDB4MjAwNDRkMDF9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1RSRUJMRSIsIDB4MjAwNDRkMDJ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NZTlRIIiwgMHgyMDA0NGQwM30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUENNIiwgMHgyMDA0NGQwNH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1BFQUtFUiIsIDB4MjAwNDRkMDV9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUiLCAweDIwMDQ0ZDA2fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9NSUMiLCAweDIwMDQ0ZDA3fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9DRCIsIDB4MjAwNDRkMDh9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0lNSVgiLCAweDIwMDQ0ZDA5fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9BTFRQQ00iLCAweDIwMDQ0ZDBhfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNMRVYiLCAweDIwMDQ0ZDBifSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9JR0FJTiIsIDB4MjAwNDRkMGN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX09HQUlOIiwgMHgyMDA0NGQwZH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTElORTEiLCAweDIwMDQ0ZDBlfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FMiIsIDB4MjAwNDRkMGZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUzIiwgMHgyMDA0NGQxMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTVVURSIsIDB4MjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0VOSEFOQ0UiLCAweDIwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MT1VEIiwgMHgyMDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1RFUkVPREVWUyIsIDB4MjAwNDRkZmJ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0NBUFMiLCAweDIwMDQ0ZGZjfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNNQVNLIiwgMHgyMDA0NGRmZH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfREVWTUFTSyIsIDB4MjAwNDRkZmV9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1JFQ1NSQyIsIDB4MjAwNDRkZmZ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQV0NPTlRST0wiLCAweDQwMDE3MDg0fSwKLXsibGludXgvcHBkZXYuaCIsICJQUFdEQVRBIiwgMHg0MDAxNzA4Nn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBXQ1RMT05JUlEiLCAweDQwMDE3MDkyfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfTUFYUklOR1MiLCAweDQwMDE3MTg1fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9UT05FIiwgMHg0MDAxNzE5Yn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBGQ09OVFJPTCIsIDB4NDAwMjcwOGV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX0NBREVOQ0UiLCAweDQwMDI3MTg2fSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19ERUFMTE9DQVRFIiwgMHg0MDA0NDEwN30sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFERFRPRU5UQ05UIiwgMHg0MDA0NTIwMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1BUTENLIiwgMHg0MDA0NTQzMX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRTQyIsIDB4NDAwNDYxZjF9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsIDB4NDAwNDY0MDJ9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwgMHg0MDA0NjQwM30sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9OT1JNIiwgMHg0MDA0NjQwM30sCi17ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwgMHg0MDA0NjQwNH0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9JTlBVVCIsIDB4NDAwNDY0MDR9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfT1VUUFVUIiwgMHg0MDA0NjQwNX0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX0VOQUJMRV9PVVRQVVQiLCAweDQwMDQ2NDA2fSwKLXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX05PUk0iLCAweDQwMDQ2NTAyfSwKLXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX0lOUFVUIiwgMHg0MDA0NjUwM30sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9PVVRQVVQiLCAweDQwMDQ2NTA0fSwKLXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsIDB4NDAwNDY1MDV9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwgMHg0MDA0NmUwMn0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwgMHg0MDA0NmUwNn0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwgMHg0MDA0NmUwY30sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBTRVRNT0RFIiwgMHg0MDA0NzA4MH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBEQVRBRElSIiwgMHg0MDA0NzA5MH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBORUdPVCIsIDB4NDAwNDcwOTF9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQU0VUUEhBU0UiLCAweDQwMDQ3MDk0fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX0NPREVDIiwgMHg0MDA0NzE4OX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19ERVBUSCIsIDB4NDAwNDcxOGN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9GUkFNRSIsIDB4NDAwNDcxOGR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfVk9MVU1FIiwgMHg0MDA0NzE4ZX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfQ09ERUMiLCAweDQwMDQ3MTkwfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9ERVBUSCIsIDB4NDAwNDcxOTN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1ZPTFVNRSIsIDB4NDAwNDcxOTR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9EVE1GX09PQiIsIDB4NDAwNDcxOTl9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwgMHg0MDA0NzE5Y30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwgMHg0MDA0NzE5ZH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwgMHg0MDA0NzFhNH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1dJTktfRFVSQVRJT04iLCAweDQwMDQ3MWE2fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLCAweDQwMDQ3MWM4fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9BRUNfU1RBUlQiLCAweDQwMDQ3MWNifSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVRfTEVEIiwgMHg0MDA0NzFjZX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfTUlYRVIiLCAweDQwMDQ3MWNmfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwgMHg0MDA0NzFkMH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUE9SVCIsIDB4NDAwNDcxZDF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RBQV9BR0FJTiIsIDB4NDAwNDcxZDJ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BPVFNfUFNUTiIsIDB4NDAwNDcxZDV9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0haIiwgMHg0MDA0NzFlMH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUkFURSIsIDB4NDAwNDcxZTF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwgMHg0MDA0NzFmZH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfSU5URVJDT01fU1RPUCIsIDB4NDAwNDcxZmV9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NBVFRDSEFOIiwgMHg0MDA0NzQzOH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0NPTk5FQ1QiLCAweDQwMDQ3NDNhfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01SUlUiLCAweDQwMDQ3NDNifSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DREVUQUNIIiwgMHg0MDA0NzQzY30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0FUVEFDSCIsIDB4NDAwNDc0M2R9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTREVCVUciLCAweDQwMDQ3NDQwfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01BWENJRCIsIDB4NDAwNDc0NTF9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTTVJVIiwgMHg0MDA0NzQ1Mn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NSQVNZTkNNQVAiLCAweDQwMDQ3NDU0fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0FTWU5DTUFQIiwgMHg0MDA0NzQ1N30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NGTEFHUyIsIDB4NDAwNDc0NTl9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0JVTkRMRSIsIDB4NDAwNDc0ODF9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUEZMQUdTIiwgMHg0MDA0NzQ4M30sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVRVIiwgMHg0MDA0NzQ4NH0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVJVIiwgMHg0MDA0NzQ4NX0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTT1IiLCAweDQwMDQ3NDg3fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NDQVBUVVJFIiwgMHg0MDA0NzYwOH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1lOQyIsIDB4NDAwNDc2MTJ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NXUklURU1PREUiLCAweDQwMDQ3NjE5fSwKLXsibGludXgvZG4uaCIsICJTSU9DU05FVEFERFIiLCAweDQwMDQ4OWUwfSwKLXsibGludXgvZG4uaCIsICJPU0lPQ1NORVRBRERSIiwgMHg0MDA0ODllMH0sCi17ImxpbnV4L2F1dG9fZnM0LmgiLCAiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLCAweDQwMDQ5MzY2fSwKLXsibGludXgvbHZtLmgiLCAiVkdfQ1JFQVRFIiwgMHg0MDA0ZmUwMH0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1JFTU9WRSIsIDB4NDAwNGZlMDF9LAoteyJsaW51eC9sdm0uaCIsICJWR19FWFRFTkQiLCAweDQwMDRmZTAzfSwKLXsibGludXgvbHZtLmgiLCAiVkdfUkVEVUNFIiwgMHg0MDA0ZmUwNH0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NFVF9FWFRFTkRBQkxFIiwgMHg0MDA0ZmUwOH0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX0NSRUFURSIsIDB4NDAwNGZlMjB9LAoteyJsaW51eC9sdm0uaCIsICJMVl9SRU1PVkUiLCAweDQwMDRmZTIxfSwKLXsibGludXgvbHZtLmgiLCAiTFZfRVhURU5EIiwgMHg0MDA0ZmUyNH0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1JFRFVDRSIsIDB4NDAwNGZlMjV9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TRVRfQUNDRVNTIiwgMHg0MDA0ZmUyOH0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9BTExPQ0FUSU9OIiwgMHg0MDA0ZmUyOX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9TVEFUVVMiLCAweDQwMDRmZTJhfSwKLXsibGludXgvbHZtLmgiLCAiTEVfUkVNQVAiLCAweDQwMDRmZTJifSwKLXsibGludXgvbHZtLmgiLCAiUFZfRkxVU0giLCAweDQwMDRmZTQyfSwKLXsibGludXgvbHZtLmgiLCAiUEVfTE9DS19VTkxPQ0siLCAweDQwMDRmZTUwfSwKLXsibGludXgvZWxldmF0b3IuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKLXsibGludXgvZnMuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19TRVRVUCIsIDB4NDAwODQxMDN9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1JFU0VSVkUiLCAweDQwMDg0MTA0fSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19QUk9URUNUIiwgMHg0MDA4NDEwNX0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQklORCIsIDB4NDAwODQxMDh9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1VOQklORCIsIDB4NDAwODQxMDl9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLCAweDQwMDg0MjAyfSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ1NSRVAiLCAweDQwMDg0NTAzfSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ1NLRVlDT0RFIiwgMHg0MDA4NDUwNH0sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFEREVOVFJPUFkiLCAweDQwMDg1MjAzfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVBUFVSQiIsIDB4NDAwODU1MGN9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwgMHg0MDA4NTUwZH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwgMHg0MDA4NTUxMX0sCi17ImxpbnV4L2V4dDJfZnMuaCIsICJFWFQyX0lPQ19TRVRGTEFHUyIsIDB4NDAwODY2MDJ9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NUT1AiLCAweDQwMDg2ZDAxfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLCAweDQwMDg2ZTAyfSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDQwMDg2ZWY4fSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLCAweDQwMDg2ZWZhfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfU0VUIiwgMHg0MDA4NzAwY30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19FUE9DSF9TRVQiLCAweDQwMDg3MDBlfSwKLXsibGludXgvc2VyaW8uaCIsICJTUElPQ1NUWVBFIiwgMHg0MDA4NzEwMX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsIDB4NDAwODcxODJ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1NFVF9GSUxURVIiLCAweDQwMDg3MWM3fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9JTklUX1RPTkUiLCAweDQwMDg3MWM5fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9UT05FX0NBREVOQ0UiLCAweDQwMDg3MWNhfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU05QTU9ERSIsIDB4NDAwODc0NGJ9LAoteyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfU0VUVkVSU0lPTiIsIDB4NDAwODc2MDJ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGUkVRIiwgMHg0MDA4NzYwZn0sCi17ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NTRldEIiwgMHg0MDA4YjEwMH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTVRUUksiLCAweDQwMGMwMjQ4fSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfUkVHSVNURVIiLCAweDQwMGM0MzAxfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT0VWVFJFRyIsIDB4NDAwYzY5MGF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFJPT1QiLCAweDQwMGM2ZTA4fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUExBWU1PREUiLCAweDQwMGM3NjE4fSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLCAweDQwMGU2NDA3fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUElDVCIsIDB4NDAwZTc2MDd9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RGTVQiLCAweDQwMTA0NDAxfSwKLXsibGludXgvYXRtX2lkdDc3MTA1LmgiLCAiSURUNzcxMDVfR0VUU1RBVCIsIDB4NDAxMDYxMzJ9LAoteyJsaW51eC9hdG1faWR0NzcxMDUuaCIsICJJRFQ3NzEwNV9HRVRTVEFUWiIsIDB4NDAxMDYxMzN9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVCIsIDB4NDAxMDYxNTB9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVFoiLCAweDQwMTA2MTUxfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExPT1AiLCAweDQwMTA2MTUyfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVExPT1AiLCAweDQwMTA2MTUzfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX1FVRVJZTE9PUCIsIDB4NDAxMDYxNTR9LAoteyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX01FTURVTVAiLCAweDQwMTA2MTYwfSwKLXsibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0wiLCAweDQwMTA2MTYxfSwKLXsibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19TRVRCVUZMRVYiLCAweDQwMTA2MTYyfSwKLXsibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0xaIiwgMHg0MDEwNjE2Mn0sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9TRVRQT09MIiwgMHg0MDEwNjE2M30sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRUSElTVCIsIDB4NDAxMDYxNjR9LAoteyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX1NFVE1VTFQiLCAweDQwMTA2MTY3fSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExJTktSQVRFIiwgMHg0MDEwNjE4MX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVROQU1FUyIsIDB4NDAxMDYxODN9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUVFlQRSIsIDB4NDAxMDYxODR9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VURVNJIiwgMHg0MDEwNjE4NX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRBRERSIiwgMHg0MDEwNjE4Nn0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9SU1RBRERSIiwgMHg0MDEwNjE4N30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9BRERBRERSIiwgMHg0MDEwNjE4OH0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9ERUxBRERSIiwgMHg0MDEwNjE4OX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRDSVJBTkdFIiwgMHg0MDEwNjE4YX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRDSVJBTkdFIiwgMHg0MDEwNjE4Yn0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRFU0kiLCAweDQwMTA2MThjfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVEVTSUYiLCAweDQwMTA2MThkfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFNFVFRJTUUiLCAweDQwMTA3MDk2fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTIiwgMHg0MDEwNzQ0ZH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DTUNBUFRVUkUiLCAweDQwMTA3NjEzfSwKLXsiYXNtL3RhcGUzOTAuaCIsICJUQVBFMzkwX0RJU1BMQVkiLCAweDQwMTE2NDAxfSwKLXsibGludXgvZmQuaCIsICJGRFNFVE1BWEVSUlMiLCAweDQwMTQwMjRjfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0FQVFVSRSIsIDB4NDAxNDc2MTd9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGQlVGIiwgMHg0MDE4NzYwY30sCi17ImxpbnV4L2ZkLmgiLCAiRkRTRVRQUk0iLCAweDQwMjAwMjQyfSwKLXsibGludXgvZmQuaCIsICJGRERFRlBSTSIsIDB4NDAyMDAyNDN9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTQVRUUiIsIDB4NDAyMDQ0MDJ9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTWEFTWU5DTUFQIiwgMHg0MDIwNzQ0Zn0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU01JQ1JPQ09ERSIsIDB4NDAyMDc2MWJ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NWQklGTVQiLCAweDQwMjA3NjFkfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ1NDT1JSIiwgMHg0MDI0NmEyMX0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fU0VUIiwgMHg0MDI0NzAwN30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19TRVRfVElNRSIsIDB4NDAyNDcwMGF9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0tBTE1fU0VUIiwgMHg0MDI4NzAwZn0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1dJTiIsIDB4NDAyODc2MGF9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NBVURJTyIsIDB4NDAyODc2MTF9LAoteyJsaW51eC9zbWJfZnMuaCIsICJTTUJfSU9DX05FV0NPTk4iLCAweDQwMmM3NTAyfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NQQVJBTVMiLCAweDQwMzA2ZDAwfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0hBTiIsIDB4NDAzMDc2MDN9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NUVU5FUiIsIDB4NDA0MDc2MDV9LAoteyJsaW51eC9mZC5oIiwgIkZEU0VURFJWUFJNIiwgMHg0MDgwMDI5MH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0dFVERSSVZFUiIsIDB4NDEwNDU1MDh9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9WT0xVTUUiLCAweDYwMDQ0ZDAwfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQkFTUyIsIDB4NjAwNDRkMDF9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9UUkVCTEUiLCAweDYwMDQ0ZDAyfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfU1lOVEgiLCAweDYwMDQ0ZDAzfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUENNIiwgMHg2MDA0NGQwNH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1NQRUFLRVIiLCAweDYwMDQ0ZDA1fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTElORSIsIDB4NjAwNDRkMDZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9NSUMiLCAweDYwMDQ0ZDA3fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQ0QiLCAweDYwMDQ0ZDA4fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfSU1JWCIsIDB4NjAwNDRkMDl9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9BTFRQQ00iLCAweDYwMDQ0ZDBhfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUkVDTEVWIiwgMHg2MDA0NGQwYn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0lHQUlOIiwgMHg2MDA0NGQwY30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX09HQUlOIiwgMHg2MDA0NGQwZH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUxIiwgMHg2MDA0NGQwZX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUyIiwgMHg2MDA0NGQwZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUzIiwgMHg2MDA0NGQxMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX01VVEUiLCAweDYwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfRU5IQU5DRSIsIDB4NjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MT1VEIiwgMHg2MDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1JFQ1NSQyIsIDB4NjAwNDRkZmZ9LAoteyJsaW51eC9qb3lzdGljay5oIiwgIkpTSU9DR0FYRVMiLCAweDgwMDE2YTExfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dCVVRUT05TIiwgMHg4MDAxNmExMn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBSU1RBVFVTIiwgMHg4MDAxNzA4MX0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBSQ09OVFJPTCIsIDB4ODAwMTcwODN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQUkRBVEEiLCAweDgwMDE3MDg1fSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX0VSUkNPREUiLCAweDgwMDI0MzIxfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfSU5TVEFMTEVEIiwgMHg4MDAyNDMyMn0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9GTEFHUyIsIDB4ODAwNDQzMjN9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9TRVRfRkxBR1MiLCAweDgwMDQ0MzI0fSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfQ0xSX0ZMQUdTIiwgMHg4MDA0NDMyNX0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfT1BFTkNPVU5UIiwgMHg4MDA0NDMyNn0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfR0VUVU5JVCIsIDB4ODAwNDQzMjd9LAoteyJhc20vZGFzZC5oIiwgIkRBU0RBUElWRVIiLCAweDgwMDQ0NDAwfSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ0dWRVJTSU9OIiwgMHg4MDA0NDUwMX0sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJOREdFVEVOVENOVCIsIDB4ODAwNDUyMDB9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dQVE4iLCAweDgwMDQ1NDMwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVTRVRFUCIsIDB4ODAwNDU1MDN9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwgMHg4MDA0NTUwNX0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwgMHg4MDA0NTUwZn0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLCAweDgwMDQ1NTEwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQ0xFQVJfSEFMVCIsIDB4ODAwNDU1MTV9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNUQVRVUyIsIDB4ODAwNDU3MDF9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVEJPT1RTVEFUVVMiLCAweDgwMDQ1NzAyfSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRURU1QIiwgMHg4MDA0NTcwM30sCi17ImxpbnV4L3dhdGNoZG9nLmgiLCAiV0RJT0NfU0VUT1BUSU9OUyIsIDB4ODAwNDU3MDR9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0tFRVBBTElWRSIsIDB4ODAwNDU3MDV9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVERJQUciLCAweDgwMDQ2MTE0fSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRGUkFNSU5HIiwgMHg4MDA0NjExNn0sCi17ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLCAweDgwMDQ2NDAwfSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfR0VUX1NUQVRVUyIsIDB4ODAwNDY0MDJ9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPVkFMSURBVEUiLCAweDgwMDQ2OTA4fSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dWRVJTSU9OIiwgMHg4MDA0NmEwMX0sCi17ImxpbnV4L3VkZl9mc19pLmgiLCAiVURGX0dFVEVBU0laRSIsIDB4ODAwNDZjNDB9LAoteyJsaW51eC96ZnRhcGUuaCIsICJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLCAweDgwMDQ2ZDY4fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TSUdOX1dBTlRFRCIsIDB4ODAwNDZlMDZ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsIDB4ODAwNDZlMGN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQQ0xSSVJRIiwgMHg4MDA0NzA5M30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0RUTUZfUkVBRFkiLCAweDgwMDQ3MTk2fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUYiLCAweDgwMDQ3MTk3fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLCAweDgwMDQ3MTk4fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRVhDRVBUSU9OIiwgMHg4MDA0NzE5YX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQ0FSRFRZUEUiLCAweDgwMDQ3MWMxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVJJQUwiLCAweDgwMDQ3MWMyfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfVFlQRSIsIDB4ODAwNDcxYzN9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RTUF9WRVJTSU9OIiwgMHg4MDA0NzFjNH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dDSEFOIiwgMHg4MDA0NzQzN30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dERUJVRyIsIDB4ODAwNDc0NDF9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHTVJVIiwgMHg4MDA0NzQ1M30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dSQVNZTkNNQVAiLCAweDgwMDQ3NDU1fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1VOSVQiLCAweDgwMDQ3NDU2fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0FTWU5DTUFQIiwgMHg4MDA0NzQ1OH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dGTEFHUyIsIDB4ODAwNDc0NWF9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dNUEZMQUdTIiwgMHg4MDA0NzQ4Mn0sCi17ImxpbnV4L3NtYl9mcy5oIiwgIlNNQl9JT0NfR0VUTU9VTlRVSUQiLCAweDgwMDQ3NTAxfSwKLXsibGludXgvc21iX2ZzLmgiLCAiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwgMHg4MDA0NzUwM30sCi17ImxpbnV4L2RuLmgiLCAiU0lPQ0dORVRBRERSIiwgMHg4MDA0ODllMX0sCi17ImxpbnV4L2RuLmgiLCAiT1NJT0NHTkVUQUREUiIsIDB4ODAwNDg5ZTF9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsIDB4ODAwNDkzNjN9LAoteyJsaW51eC9sdm0uaCIsICJMVk1fR0VUX0lPUF9WRVJTSU9OIiwgMHg4MDA0ZmU5OH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VURlJTRU5TRSIsIDB4ODAwNjYxMTd9LAoteyJsaW51eC9lbGV2YXRvci5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoteyJsaW51eC9mcy5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0lORk8iLCAweDgwMDg0MTAwfSwKLXsibGludXgvcG11LmgiLCAiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwgMHg4MDA4NDIwMX0sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfR0VUX01PREVMIiwgMHg4MDA4NDIwM30sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfSEFTX0FEQiIsIDB4ODAwODQyMDR9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0lEIiwgMHg4MDA4NDUwMn0sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHUkVQIiwgMHg4MDA4NDUwM30sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHS0VZQ09ERSIsIDB4ODAwODQ1MDR9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0tFWSIsIDB4ODAwODQ1MDV9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRHRVRQT09MIiwgMHg4MDA4NTIwMn0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsIDB4ODAwODU1MDR9LAoteyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfR0VURkxBR1MiLCAweDgwMDg2NjAxfSwKLXsibGludXgvdWRmX2ZzX2kuaCIsICJVREZfR0VURUFCTE9DSyIsIDB4ODAwODZjNDF9LAoteyJsaW51eC91ZGZfZnNfaS5oIiwgIlVERl9HRVRWT0xJREVOVCIsIDB4ODAwODZjNDJ9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NQT1MiLCAweDgwMDg2ZDAzfSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDgwMDg2ZWY4fSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLCAweDgwMDg2ZWY5fSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLCAweDgwMDg2ZWZifSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfUkVBRCIsIDB4ODAwODcwMGJ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfRVBPQ0hfUkVBRCIsIDB4ODAwODcwMGR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsIDB4ODAwODcxODF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0NJRCIsIDB4ODAwODcxZDR9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0ZSQU1FU19SRUFEIiwgMHg4MDA4NzFlMn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRlJBTUVTX1dSSVRURU4iLCAweDgwMDg3MWUzfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9SRUFEX1dBSVQiLCAweDgwMDg3MWU0fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9XUklURV9XQUlUIiwgMHg4MDA4NzFlNX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLCAweDgwMDg3MWU2fSwKLXsibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX0dFVFZFUlNJT04iLCAweDgwMDg3NjAxfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRlJFUSIsIDB4ODAwODc2MGV9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwgMHg4MDBjNjQwMX0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLCAweDgwMGM2NTAxfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRST09UIiwgMHg4MDBjNmUwOH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DS0VZIiwgMHg4MDBjNzYwZH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1BJQ1QiLCAweDgwMGU3NjA2fSwKLXsibGludXgvZmQuaCIsICJGREdFVERSVlRZUCIsIDB4ODAxMDAyMGZ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19ESVNDU0lHTkFMIiwgMHg4MDEwNTUwZX0sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ0dFVFNJWkUiLCAweDgwMTA2ZDA5fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19OQ1BSRVFVRVNUIiwgMHg4MDEwNmUwMX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLCAweDgwMTA2ZTBhfSwKLXsibGludXgvcHBkZXYuaCIsICJQUEdFVFRJTUUiLCAweDgwMTA3MDk1fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0lETEUiLCAweDgwMTA3NDNmfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHSUZOQU1FIiwgMHg4MDEwNzQ4OH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVRNQVhFUlJTIiwgMHg4MDE0MDIwZX0sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ1ZPTElORk8iLCAweDgwMTQ2ZDA4fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19MT0NLVU5MT0NLIiwgMHg4MDE0NmUwN30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1VOSVQiLCAweDgwMTQ3NjE1fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0FQVFVSRSIsIDB4ODAxNDc2MTZ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NJR05fSU5JVCIsIDB4ODAxODZlMDV9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLCAweDgwMTg2ZTA5fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRkJVRiIsIDB4ODAxODc2MGJ9LAoteyJsaW51eC9mZC5oIiwgIkZER0VUUFJNIiwgMHg4MDIwMDIwNH0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTREdBVFRSIiwgMHg4MDIwNDQwNX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9WQkxBTksiLCAweDgwMjA0NjEyfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1hBU1lOQ01BUCIsIDB4ODAyMDc0NTB9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dWQklGTVQiLCAweDgwMjA3NjFjfSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRTVEFUIiwgMHg4MDI0NjExMH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VUU1RBVFoiLCAweDgwMjQ2MTExfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dDT1JSIiwgMHg4MDI0NmEyMn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fUkVBRCIsIDB4ODAyNDcwMDh9LAoteyJsaW51eC9ydGMuaCIsICJSVENfUkRfVElNRSIsIDB4ODAyNDcwMDl9LAoteyJsaW51eC9mZC5oIiwgIkZER0VURkRDU1RBVCIsIDB4ODAyODAyMTV9LAoteyJsaW51eC9mZC5oIiwgIkZEV0VSUk9SR0VUIiwgMHg4MDI4MDIxN30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19XS0FMTV9SRCIsIDB4ODAyODcwMTB9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dXSU4iLCAweDgwMjg3NjA5fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQVVESU8iLCAweDgwMjg3NjEwfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRDSEFSU0VUUyIsIDB4ODAyYTZlMGJ9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1BBUkFNUyIsIDB4ODAzMDZkMDF9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NHRVQiLCAweDgwMzA2ZDAyfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfU1VCTUlUVVJCIiwgMHg4MDM4NTUwYX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NBUCIsIDB4ODAzYzc2MDF9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPR0VUSU9QUyIsIDB4ODA0MDY5MDB9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dDT01QUkVTU09SUyIsIDB4ODA0MDc0ODZ9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNVUFBPUlQiLCAweDgwNDg1NzAwfSwKLXsibGludXgvZmQuaCIsICJGREdFVERSVlNUQVQiLCAweDgwNTAwMjEyfSwKLXsibGludXgvZmQuaCIsICJGRFBPTExEUlZTVEFUIiwgMHg4MDUwMDIxM30sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9FVlRHRVQiLCAweDgwNjg2OTBifSwKLXsibGludXgvZmQuaCIsICJGREdFVERSVlBSTSIsIDB4ODA4MDAyMTF9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19IVUJfUE9SVElORk8iLCAweDgwODA1NTEzfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHTUJVRiIsIDB4ODA4ODc2MTR9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RQU1JEIiwgMHg4MGMwNDQwNH0sCi17ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX0VYUElSRSIsIDB4ODEwYzkzNjV9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dQTEFZSU5GTyIsIDB4ODExODc2MWF9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RJTkZPIiwgMHg4MTc4NDQwMX0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRElORk8yIiwgMHg4MWEwNDQwM30sCi17ImxpbnV4L21zZG9zX2ZzLmgiLCAiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLCAweDgyMzA3MjAxfSwKLXsibGludXgvbXNkb3NfZnMuaCIsICJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLCAweDgyMzA3MjAyfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSRCIsIDB4ODQwODQ0MDJ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwgMHhjMDA0NDMwNn0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9TRVJJQUwiLCAweGMwMDQ0MzA4fSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9TRVRESUFHIiwgMHhjMDA0NjExMn0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfQ0xSRElBRyIsIDB4YzAwNDYxMTN9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DV0FJVEVWRU5UIiwgMHhjMDA0NmQwOH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ05FV1VOSVQiLCAweGMwMDQ3NDNlfSwKLXsibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTIiwgMHhjMDA0ZmUwNX0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVU19HRVRfQ09VTlQiLCAweGMwMDRmZTA2fSwKLXsibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsIDB4YzAwNGZlMDd9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TVEFUVVNfQllOQU1FIiwgMHhjMDA0ZmUyNn0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1NUQVRVU19CWUlOREVYIiwgMHhjMDA0ZmUyN30sCi17ImxpbnV4L2x2bS5oIiwgIlBWX1NUQVRVUyIsIDB4YzAwNGZlNDB9LAoteyJsaW51eC9sdm0uaCIsICJQVl9DSEFOR0UiLCAweGMwMDRmZTQxfSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19BTExPQ0FURSIsIDB4YzAwODQxMDZ9LAoteyJhc20vY21iLmgiLCAiQklPREFTRFJFQURDTUIiLCAweGMwMDg0NDIwfSwKLXsibGludXgvY29kYS5oIiwgIkNJT0NfS0VSTkVMX1ZFUlNJT04iLCAweGMwMDg2MzBhfSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLCAweGMwMDg2ZWZhfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUVVFUllfQ09ERUMiLCAweGMwMDg3MWE3fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR05QTU9ERSIsIDB4YzAwODc0NGN9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwgMHhjMDA4OTM2NH0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9WRVJTSU9OIiwgMHhjMDEwNDMwN30sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLCAweGMwMTA0MzIwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfSU9DVEwiLCAweGMwMTA1NTEyfSwKLXsibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19HRVRQU1RBVCIsIDB4YzAxMDYxNjF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwgMHhjMDEwNmUwYX0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTlRST0wiLCAweGMwMTg1NTAwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQlVMSyIsIDB4YzAxODU1MDJ9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPSFJUR0VUIiwgMHhjMDE4NjkwMX0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9MQ1RHRVQiLCAweGMwMTg2OTAyfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DUkRGVFNFRyIsIDB4YzAxODZkMDZ9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NXUkZUU0VHIiwgMHhjMDE4NmQwN30sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ0ZURk9STUFUIiwgMHhjMDE4NmQwYX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsIDB4YzAxODZlMDl9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NGVENNRCIsIDB4YzAyMDZkMGJ9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTVNFVCIsIDB4YzAyODY5MDN9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTUdFVCIsIDB4YzAyODY5MDR9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVF9GU19JTkZPIiwgMHhjMDI4NmUwNH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLCAweGMwMmE2ZTBifSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREwiLCAweGMwMzA2OTA1fSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1NXVUwiLCAweGMwMzA2OTA2fSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREVMIiwgMHhjMDMwNjkwN30sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9IVE1MIiwgMHhjMDMwNjkwOX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLCAweGMwMzA2ZTA0fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0hBTiIsIDB4YzAzMDc2MDJ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfUFJPRklMRSIsIDB4YzA0MDQzMDl9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dUVU5FUiIsIDB4YzA0MDc2MDR9LAoteyJhc20vY21iLmgiLCAiQklPREFTRFJFQURBTExDTUIiLCAweGMwNTg0NDIxfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHQ0FMTElORk8iLCAweGMwODg3NDgwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkwL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTAvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0YjAwYjEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3MzOTAvc2lnbmFsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0JIlNJR18wIiwJLyogMCAqLwotCSJTSUdIVVAiLAkvKiAxICovCi0JIlNJR0lOVCIsCS8qIDIgKi8KLQkiU0lHUVVJVCIsCS8qIDMgKi8KLQkiU0lHSUxMIiwJLyogNCAqLwotCSJTSUdUUkFQIiwJLyogNSAqLwotCSJTSUdBQlJUIiwJLyogNiAqLwotCSJTSUdCVVMiLAkvKiA3ICovCi0JIlNJR0ZQRSIsCS8qIDggKi8KLQkiU0lHS0lMTCIsCS8qIDkgKi8KLQkiU0lHVVNSMSIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdVU1IyIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHU1RLRkxUIiwJLyogMTYgKi8KLQkiU0lHQ0hMRCIsCS8qIDE3ICovCi0JIlNJR0NPTlQiLAkvKiAxOCAqLwotCSJTSUdTVE9QIiwJLyogMTkgKi8KLQkiU0lHVFNUUCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHVVJHIiwJLyogMjMgKi8KLQkiU0lHWENQVSIsCS8qIDI0ICovCi0JIlNJR1hGU1oiLAkvKiAyNSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyNiAqLwotCSJTSUdQUk9GIiwJLyogMjcgKi8KLQkiU0lHV0lOQ0giLAkvKiAyOCAqLwotCSJTSUdJTyIsCS8qIDI5ICovCi0JIlNJR1BXUiIsCS8qIDMwICovCi0JIlNJR1VOVVNFRCIsCS8qIDMxICovCi0JIlNJR1JUTUlOIiwJLyogMzIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkwL3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9zMzkwL3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMxMjVmOC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvczM5MC9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwMCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcG9yYXRpb24KLSAqIEF1dGhvcnM6IFVscmljaCBXZWlnYW5kIDxVbHJpY2guV2VpZ2FuZEBkZS5pYm0uY29tPgotICogICAgICAgICAgRC5KLiBCYXJyb3cgIDxiYXJyb3dfZGpAbWFpbC55YWhvby5jb20sZGpiYXJyb3dAZGUuaWJtLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotCXsgMCwJMCwJc3lzX3NldHVwLAkJInNldHVwIgkJfSwgLyogMCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkJIl9leGl0IgkJfSwgLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkJImZvcmsiCQl9LCAvKiAyICovCi0JeyAzLAkwLAlzeXNfcmVhZCwJCSJyZWFkIgkJfSwgLyogMyAqLwotCXsgMywJMCwJc3lzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU183IgkJfSwgLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJCSJjcmVhdCIJCX0sIC8qIDggKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCi0JeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTYgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3Igl9LCAvKiAxNyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTgiCX0sIC8qIDE4ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDI0ICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjgiCX0sIC8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMzEiCX0sIC8qIDMxICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMiIJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMzUiCX0sIC8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU180NCIJfSwgLyogNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2Igl9LCAvKiA0NiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNDciCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDUyICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU181MyIJfSwgLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA1NSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTYiCX0sIC8qIDU2ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiA1NyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTgiCX0sIC8qIDU4ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU181OSIJfSwgLyogNTkgKi8KLQl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiA2MiAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiA2NCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNjUgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiA2NiAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgl9LCAvKiA2NyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNjgiCX0sIC8qIDY4ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU182OSIJfSwgLyogNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNzAgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogNzEgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNzQgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA3NSAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyIgl9LCAvKiA4MiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU184NCIJfSwgLyogODQgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkJInJlYWRkaXIiCX0sIC8qIDg5ICovCi0JeyA2LAkwLAlzeXNfb2xkX21tYXAsCQkibW1hcCIJCX0sIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogOTEgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5NCAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogOTYgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA5NyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfOTgiCX0sIC8qIDk4ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KLQl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiCX0sIC8qIDEwMiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTA5Igl9LCAvKiAxMDkgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExMCIJfSwgLyogMTEwICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTEgKi8KLQl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQl9LCAvKiAxMTIgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExMyIJfSwgLyogMTEzICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogMTE0ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgl9LCAvKiAxMTUgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sIC8qIDExNiAqLwotCXsgNSwJMCwJc3lzX2lwYywJCSJpcGMiCQl9LCAvKiAxMTcgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sIC8qIDExOCAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkic2lncmV0dXJuIgl9LCAvKiAxMTkgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQl9LCAvKiAxMjAgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTIxICovCi0JeyAxLAkwLAlzeXNfdW5hbWUsCQkidW5hbWUiCQl9LCAvKiAxMjIgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMyIJfSwgLyogMTIzICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sIC8qIDEyNCAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDEyNyAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiAxMjkgKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTMwICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogMTMyICovCi0JeyAxLAkwLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxNDUgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KLQl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLwotCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTY2Igl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJydF9zaWdyZXR1cm4iCX0sIC8qIDE3MyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCX0sIC8qIDE3NCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLAkicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTgwICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE4MSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE4MiAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAvKiAxODMgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxODQgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiAxODUgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogMTg2ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiAxODcgKi8KLQl7IDUsCTAsCXN5c19nZXRwbXNnLAkJImdldHBtc2ciCX0sIC8qIDE4OCAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJfSwgLyogMTg5ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkJInZmb3JrIgkJfSwgLyogMTkwICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLwotCXsgMiwJVEYsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTk4ICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMTk5ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogMjAwICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiAyMDEgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDIwMiAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiAyMDMgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogMjA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogMjA2ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogMjA3ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJfSwgLyogMjA4ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogMjA5ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMjEwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMjExICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMjEyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjEzICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogMjE0ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDIxNSAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAyMTYgKi8KLSAgICAgICAgeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiAyMTcgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkgICAgICAgICAibWluY29yZSIgICAgICB9LCAvKiAyMTggKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJfSwgLyogMjIyICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlNjQsCQkic2VuZGZpbGU2NCIJfSwgLyogMjIzICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgl9LCAvKiAyMjQgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgl9LCAvKiAyMjUgKi8KLQl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiAyMjYgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDIyNyAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDIyOCAqLwotCXsgNCwJMCwJc3lzX2ZnZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDIyOSAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiAyMzAgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDIzMSAqLwotCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCQkiZmxpc3R4YXR0ciIJfSwgLyogMjMyICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCX0sIC8qIDIzMyAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJfSwgLyogMjM0ICovCi0JeyAyLAkwLAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiAyMzUgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDIzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJInRraWxsIgkJfSwgLyogMjM3ICovCi0JeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyMzggKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDIzOSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjQwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEiCX0sIC8qIDI0MSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjQyIgl9LCAvKiAyNDIgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogMjQzICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAyNDQgKi8KLQl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCQkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyNDUgKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDYgKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyNDcgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiAyNDggKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDI0OSAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDI1MCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMjUxICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIn0sIC8qIDI1MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJImZhZHZpc2U2NCIJfSwgLyogMjUzICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAyNTQgKi8KLQl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMjU1ICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDI1NiAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDI1NyAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMjU4ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDI1OSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAyNjAgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDI2MSAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAyNjIgKi8KLQotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCX0sIC8qIDI2MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQiCX0sIC8qIDI2NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCX0sIC8qIDI2NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCX0sIC8qIDI2NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjciCX0sIC8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCX0sIC8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCX0sIC8qIDI2OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAiCX0sIC8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCX0sIC8qIDI3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCX0sIC8qIDI3MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMiCX0sIC8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCX0sIC8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCX0sIC8qIDI3NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCX0sIC8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCX0sIC8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCX0sIC8qIDI3OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCX0sIC8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCX0sIC8qIDI4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCX0sIC8qIDI4MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCX0sIC8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCX0sIC8qIDI4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCX0sIC8qIDI4NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCX0sIC8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCX0sIC8qIDI4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCX0sIC8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCX0sIC8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCX0sIC8qIDI5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCX0sIC8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCX0sIC8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCX0sIC8qIDI5MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCX0sIC8qIDI5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCX0sIC8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCX0sIC8qIDI5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCX0sIC8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCX0sIC8qIDI5OSAqLwotCi0jaWYgU1lTX3NvY2tldF9zdWJjYWxsICE9IDMwMAotICNlcnJvciBmaXggbWUKLSNlbmRpZgotCXsgOCwJMCwJcHJpbnRhcmdzLAkJInNvY2tldF9zdWJjYWxsIn0sIC8qIDMwMCAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAzMDEgKi8KLQl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMzAyICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMzAzICovCi0JeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDMwNCAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAzMDUgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMzA2ICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDMwNyAqLwotCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDMwOCAqLwotCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAzMDkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMzEwICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDMxMSAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMzEyICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAzMTMgKi8KLQl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAzMTQgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAzMTUgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAzMTYgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAzMTcgKi8KLQotI2lmIFNZU19pcGNfc3ViY2FsbCAhPSAzMTgKLSAjZXJyb3IgZml4IG1lCi0jZW5kaWYKLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzE4ICovCi0JeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJfSwgLyogMzE5ICovCi0JeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDMyMCAqLwotCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAzMjEgKi8KLQl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgl9LCAvKiAzMjIgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzIzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjggKi8KLQl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogMzI5ICovCi0JeyA0LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDMzMCAqLwotCXsgNCwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAzMzEgKi8KLQl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMzMyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM4ICovCi0JeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgLyogMzM5ICovCi0JeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMzQwICovCi0JeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDM0MSAqLwotCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAzNDIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkweC9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTB4L2Vycm5vZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MGI1MDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3MzOTB4L2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFREVBRExLIiwgLyogMzUgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogMzYgKi8KLQkiRU5PTENLIiwgLyogMzcgKi8KLQkiRU5PU1lTIiwgLyogMzggKi8KLQkiRU5PVEVNUFRZIiwgLyogMzkgKi8KLQkiRUxPT1AiLCAvKiA0MCAqLwotCSJFUlJOT180MSIsIC8qIDQxICovCi0JIkVOT01TRyIsIC8qIDQyICovCi0JIkVJRFJNIiwgLyogNDMgKi8KLQkiRUNIUk5HIiwgLyogNDQgKi8KLQkiRUwyTlNZTkMiLCAvKiA0NSAqLwotCSJFTDNITFQiLCAvKiA0NiAqLwotCSJFTDNSU1QiLCAvKiA0NyAqLwotCSJFTE5STkciLCAvKiA0OCAqLwotCSJFVU5BVENIIiwgLyogNDkgKi8KLQkiRU5PQ1NJIiwgLyogNTAgKi8KLQkiRUwySExUIiwgLyogNTEgKi8KLQkiRUJBREUiLCAvKiA1MiAqLwotCSJFQkFEUiIsIC8qIDUzICovCi0JIkVYRlVMTCIsIC8qIDU0ICovCi0JIkVOT0FOTyIsIC8qIDU1ICovCi0JIkVCQURSUUMiLCAvKiA1NiAqLwotCSJFQkFEU0xUIiwgLyogNTcgKi8KLQkiRVJSTk9fNTgiLCAvKiA1OCAqLwotCSJFQkZPTlQiLCAvKiA1OSAqLwotCSJFTk9TVFIiLCAvKiA2MCAqLwotCSJFTk9EQVRBIiwgLyogNjEgKi8KLQkiRVRJTUUiLCAvKiA2MiAqLwotCSJFTk9TUiIsIC8qIDYzICovCi0JIkVOT05FVCIsIC8qIDY0ICovCi0JIkVOT1BLRyIsIC8qIDY1ICovCi0JIkVSRU1PVEUiLCAvKiA2NiAqLwotCSJFTk9MSU5LIiwgLyogNjcgKi8KLQkiRUFEViIsIC8qIDY4ICovCi0JIkVTUk1OVCIsIC8qIDY5ICovCi0JIkVDT01NIiwgLyogNzAgKi8KLQkiRVBST1RPIiwgLyogNzEgKi8KLQkiRU1VTFRJSE9QIiwgLyogNzIgKi8KLQkiRURPVERPVCIsIC8qIDczICovCi0JIkVCQURNU0ciLCAvKiA3NCAqLwotCSJFT1ZFUkZMT1ciLCAvKiA3NSAqLwotCSJFTk9UVU5JUSIsIC8qIDc2ICovCi0JIkVCQURGRCIsIC8qIDc3ICovCi0JIkVSRU1DSEciLCAvKiA3OCAqLwotCSJFTElCQUNDIiwgLyogNzkgKi8KLQkiRUxJQkJBRCIsIC8qIDgwICovCi0JIkVMSUJTQ04iLCAvKiA4MSAqLwotCSJFTElCTUFYIiwgLyogODIgKi8KLQkiRUxJQkVYRUMiLCAvKiA4MyAqLwotCSJFSUxTRVEiLCAvKiA4NCAqLwotCSJFUkVTVEFSVCIsIC8qIDg1ICovCi0JIkVTVFJQSVBFIiwgLyogODYgKi8KLQkiRVVTRVJTIiwgLyogODcgKi8KLQkiRU5PVFNPQ0siLCAvKiA4OCAqLwotCSJFREVTVEFERFJSRVEiLCAvKiA4OSAqLwotCSJFTVNHU0laRSIsIC8qIDkwICovCi0JIkVQUk9UT1RZUEUiLCAvKiA5MSAqLwotCSJFTk9QUk9UT09QVCIsIC8qIDkyICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDkzICovCi0JIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDk0ICovCi0JIkVPUE5PVFNVUFAiLCAvKiA5NSAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiA5NiAqLwotCSJFQUZOT1NVUFBPUlQiLCAvKiA5NyAqLwotCSJFQUREUklOVVNFIiwgLyogOTggKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDk5ICovCi0JIkVORVRET1dOIiwgLyogMTAwICovCi0JIkVORVRVTlJFQUNIIiwgLyogMTAxICovCi0JIkVORVRSRVNFVCIsIC8qIDEwMiAqLwotCSJFQ09OTkFCT1JURUQiLCAvKiAxMDMgKi8KLQkiRUNPTk5SRVNFVCIsIC8qIDEwNCAqLwotCSJFTk9CVUZTIiwgLyogMTA1ICovCi0JIkVJU0NPTk4iLCAvKiAxMDYgKi8KLQkiRU5PVENPTk4iLCAvKiAxMDcgKi8KLQkiRVNIVVRET1dOIiwgLyogMTA4ICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDEwOSAqLwotCSJFVElNRURPVVQiLCAvKiAxMTAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogMTExICovCi0JIkVIT1NURE9XTiIsIC8qIDExMiAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiAxMTMgKi8KLQkiRUFMUkVBRFkiLCAvKiAxMTQgKi8KLQkiRUlOUFJPR1JFU1MiLCAvKiAxMTUgKi8KLQkiRVNUQUxFIiwgLyogMTE2ICovCi0JIkVVQ0xFQU4iLCAvKiAxMTcgKi8KLQkiRU5PVE5BTSIsIC8qIDExOCAqLwotCSJFTkFWQUlMIiwgLyogMTE5ICovCi0JIkVJU05BTSIsIC8qIDEyMCAqLwotCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KLQkiRURRVU9UIiwgLyogMTIyICovCi0JIkVOT01FRElVTSIsIC8qIDEyMyAqLwotCSJFTUVESVVNVFlQRSIsIC8qIDEyNCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3MzOTB4L2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvczM5MHgvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDE0ZmJlYi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvczM5MHgvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDk0MSArMCwwIEBACi17ImxpbnV4L2ZzLmgiLCAiRklCTUFQIiwgMHgxfSwKLXsibGludXgvZnMuaCIsICJGSUdFVEJTWiIsIDB4Mn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRDTFJQUk0iLCAweDI0MX0sCi17ImxpbnV4L2ZkLmgiLCAiRkRNU0dPTiIsIDB4MjQ1fSwKLXsibGludXgvZmQuaCIsICJGRE1TR09GRiIsIDB4MjQ2fSwKLXsibGludXgvZmQuaCIsICJGREZNVEJFRyIsIDB4MjQ3fSwKLXsibGludXgvZmQuaCIsICJGREZNVEVORCIsIDB4MjQ5fSwKLXsibGludXgvZmQuaCIsICJGRFNFVEVNU0dUUkVTSCIsIDB4MjRhfSwKLXsibGludXgvZmQuaCIsICJGREZMVVNIIiwgMHgyNGJ9LAoteyJsaW51eC9mZC5oIiwgIkZEUkVTRVQiLCAweDI1NH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRXRVJST1JDTFIiLCAweDI1Nn0sCi17ImxpbnV4L2ZkLmgiLCAiRkRSQVdDTUQiLCAweDI1OH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRUV0FERExFIiwgMHgyNTl9LAoteyJsaW51eC9mZC5oIiwgIkZERUpFQ1QiLCAweDI1YX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRHRU8iLCAweDMwMX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfVU5NQVNLSU5UUiIsIDB4MzAyfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9NVUxUQ09VTlQiLCAweDMwNH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19PQlNPTEVURV9JREVOVElUWSIsIDB4MzA3fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9LRUVQU0VUVElOR1MiLCAweDMwOH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfMzJCSVQiLCAweDMwOX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTk9XRVJSIiwgMHgzMGF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0RNQSIsIDB4MzBifSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9OSUNFIiwgMHgzMGN9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0lERU5USVRZIiwgMHgzMGR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfUkVTRVQiLCAweDMxY30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19UUklTVEFURV9IV0lGIiwgMHgzMWR9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfVEFTSyIsIDB4MzFlfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX0NNRCIsIDB4MzFmfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9NVUxUQ09VTlQiLCAweDMyMX0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfVU5NQVNLSU5UUiIsIDB4MzIyfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9LRUVQU0VUVElOR1MiLCAweDMyM30sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfMzJCSVQiLCAweDMyNH0sCi17ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTk9XRVJSIiwgMHgzMjV9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX0RNQSIsIDB4MzI2fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9QSU9fTU9ERSIsIDB4MzI3fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NDQU5fSFdJRiIsIDB4MzI4fSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9OSUNFIiwgMHgzMjl9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fVU5SRUdJU1RFUl9IV0lGIiwgMHgzMmF9LAoteyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUR0VPX0JJRyIsIDB4MzMwfSwKLXsibGludXgvaGRyZWcuaCIsICJIRElPX0dFVEdFT19CSUdfUkFXIiwgMHgzMzF9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9ET1MiLCAweDRkMn0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRE9TIiwgMHg0ZDN9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUk1ESVJfRE9TIiwgMHg0ZDR9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfU1RBVF9ET1MiLCAweDRkNX0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19DUkVBVF9FTUQiLCAweDRkNn0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRU1EIiwgMHg0ZDd9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9FTUQiLCAweDRkOH0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19HRVRWRVJTSU9OIiwgMHg0ZDl9LAoteyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfSU5JVF9FTUQiLCAweDRkYX0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19ET1NfU0VUVVAiLCAweDRkYn0sCi17ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19SRU5BTUVfRE9TIiwgMHg0ZGN9LAoteyJsaW51eC9scC5oIiwgIkxQQ0hBUiIsIDB4NjAxfSwKLXsibGludXgvbHAuaCIsICJMUFRJTUUiLCAweDYwMn0sCi17ImxpbnV4L2xwLmgiLCAiTFBBQk9SVCIsIDB4NjA0fSwKLXsibGludXgvbHAuaCIsICJMUFNFVElSUSIsIDB4NjA1fSwKLXsibGludXgvYWM5N19jb2RlYy5oIiwgIkFDOTdfUkVDTVVYX01PTk9fTUlYIiwgMHg2MDZ9LAoteyJsaW51eC9scC5oIiwgIkxQR0VUSVJRIiwgMHg2MDZ9LAoteyJsaW51eC9scC5oIiwgIkxQV0FJVCIsIDB4NjA4fSwKLXsibGludXgvbHAuaCIsICJMUENBUkVGVUwiLCAweDYwOX0sCi17ImxpbnV4L2xwLmgiLCAiTFBBQk9SVE9QRU4iLCAweDYwYX0sCi17ImxpbnV4L2xwLmgiLCAiTFBHRVRTVEFUVVMiLCAweDYwYn0sCi17ImxpbnV4L2xwLmgiLCAiTFBSRVNFVCIsIDB4NjBjfSwKLXsibGludXgvbHAuaCIsICJMUEdFVFNUQVRTIiwgMHg2MGR9LAoteyJsaW51eC9scC5oIiwgIkxQR0VURkxBR1MiLCAweDYwZX0sCi17ImxpbnV4L2xwLmgiLCAiTFBTRVRUSU1FT1VUIiwgMHg2MGZ9LAoteyJsaW51eC9mcy5oIiwgIkJMS1JPU0VUIiwgMHgxMjVkfSwKLXsibGludXgvZnMuaCIsICJCTEtST0dFVCIsIDB4MTI1ZX0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUlJQQVJUIiwgMHgxMjVmfSwKLXsibGludXgvZnMuaCIsICJCTEtHRVRTSVpFIiwgMHgxMjYwfSwKLXsibGludXgvZnMuaCIsICJCTEtGTFNCVUYiLCAweDEyNjF9LAoteyJsaW51eC9mcy5oIiwgIkJMS1JBU0VUIiwgMHgxMjYyfSwKLXsibGludXgvZnMuaCIsICJCTEtSQUdFVCIsIDB4MTI2M30sCi17ImxpbnV4L2ZzLmgiLCAiQkxLRlJBU0VUIiwgMHgxMjY0fSwKLXsibGludXgvZnMuaCIsICJCTEtGUkFHRVQiLCAweDEyNjV9LAoteyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RTRVQiLCAweDEyNjZ9LAoteyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RHRVQiLCAweDEyNjd9LAoteyJsaW51eC9mcy5oIiwgIkJMS1NTWkdFVCIsIDB4MTI2OH0sCi17ImxpbnV4L2ZzLmgiLCAiQkxLUEciLCAweDEyNjl9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX1RJTUVPVVQiLCAweDIyMDF9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1RJTUVPVVQiLCAweDIyMDJ9LAoteyJzY3NpL3NnLmgiLCAiU0dfRU1VTEFURURfSE9TVCIsIDB4MjIwM30sCi17InNjc2kvc2cuaCIsICJTR19TRVRfVFJBTlNGT1JNIiwgMHgyMjA0fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9UUkFOU0ZPUk0iLCAweDIyMDV9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX0NPTU1BTkRfUSIsIDB4MjI3MH0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfQ09NTUFORF9RIiwgMHgyMjcxfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjcyfSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjc1fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9TQ1NJX0lEIiwgMHgyMjc2fSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwgMHgyMjc5fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9MT1dfRE1BIiwgMHgyMjdhfSwKLXsic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwgMHgyMjdifSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9QQUNLX0lEIiwgMHgyMjdjfSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9OVU1fV0FJVElORyIsIDB4MjI3ZH0sCi17InNjc2kvc2cuaCIsICJTR19TRVRfREVCVUciLCAweDIyN2V9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1NHX1RBQkxFU0laRSIsIDB4MjI3Zn0sCi17InNjc2kvc2cuaCIsICJTR19HRVRfVkVSU0lPTl9OVU0iLCAweDIyODJ9LAoteyJzY3NpL3NnLmgiLCAiU0dfTkVYVF9DTURfTEVOIiwgMHgyMjgzfSwKLXsic2NzaS9zZy5oIiwgIlNHX1NDU0lfUkVTRVQiLCAweDIyODR9LAoteyJzY3NpL3NnLmgiLCAiU0dfSU8iLCAweDIyODV9LAoteyJzY3NpL3NnLmgiLCAiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLCAweDIyODZ9LAoteyJzY3NpL3NnLmgiLCAiU0dfU0VUX0tFRVBfT1JQSEFOIiwgMHgyMjg3fSwKLXsic2NzaS9zZy5oIiwgIlNHX0dFVF9LRUVQX09SUEhBTiIsIDB4MjI4OH0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQUNRVUlSRSIsIDB4NDEwMX0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfUkVMRUFTRSIsIDB4NDEwMn0sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfU0xFRVAiLCAweDQyMDB9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RESVNBQkxFIiwgMHg0NDAwfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNERU5BQkxFIiwgMHg0NDAxfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUlNSViIsIDB4NDQwMn0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRFJMU0UiLCAweDQ0MDN9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTTENLIiwgMHg0NDA0fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSU1QiLCAweDQ0MDV9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RRVUlFU0NFIiwgMHg0NDA2fSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUkVTVU1FIiwgMHg0NDA3fSwKLXsiYXNtL2NtYi5oIiwgIkJJT0RBU0RDTUZFTkFCTEUiLCAweDQ0MjB9LAoteyJhc20vY21iLmgiLCAiQklPREFTRENNRkRJU0FCTEUiLCAweDQ0MjF9LAoteyJhc20vY21iLmgiLCAiQklPREFTRFJFU0VUQ01CIiwgMHg0NDIyfSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAwfSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAxfSwKLXsibGludXgvcHMyZXNkaS5oIiwgIkNNRF9SRUFEIiwgMHg0NjAxfSwKLXsibGludXgvZmIuaCIsICJGQklPR0VUX0ZTQ1JFRU5JTkZPIiwgMHg0NjAyfSwKLXsibGludXgvcHMyZXNkaS5oIiwgIkNNRF9XUklURSIsIDB4NDYwMn0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVENNQVAiLCAweDQ2MDR9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9QVVRDTUFQIiwgMHg0NjA1fSwKLXsibGludXgvZmIuaCIsICJGQklPUEFOX0RJU1BMQVkiLCAweDQ2MDZ9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfRkNVUlNPUklORk8iLCAweDQ2MDd9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfVkNVUlNPUklORk8iLCAweDQ2MDh9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfVkNVUlNPUklORk8iLCAweDQ2MDl9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ1VSU09SU1RBVEUiLCAweDQ2MGF9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfQ1VSU09SU1RBVEUiLCAweDQ2MGJ9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ09OMkZCTUFQIiwgMHg0NjBmfSwKLXsibGludXgvZmIuaCIsICJGQklPUFVUX0NPTjJGQk1BUCIsIDB4NDYxMH0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0JMQU5LIiwgMHg0NjExfSwKLXsibGludXgvZmIuaCIsICJGQklPX0FMTE9DIiwgMHg0NjEzfSwKLXsibGludXgvZmIuaCIsICJGQklPX0ZSRUUiLCAweDQ2MTR9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfR0xZUEgiLCAweDQ2MTV9LAoteyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfSFdDSU5GTyIsIDB4NDYxNn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUlGIiwgMHg0OTAxfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRESUYiLCAweDQ5MDJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVFNDRiIsIDB4NDkwM30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR0NGIiwgMHg0OTA0fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRBTk0iLCAweDQ5MDV9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEROTSIsIDB4NDkwNn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR05NIiwgMHg0OTA3fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRTRVQiLCAweDQ5MDh9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFNFVCIsIDB4NDkwOX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUVkVSIiwgMHg0OTBhfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRIVVAiLCAweDQ5MGJ9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVEdTVCIsIDB4NDkwY30sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUQlJKIiwgMHg0OTBkfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NTSUdQUkYiLCAweDQ5MGV9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVFBSRiIsIDB4NDkwZn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUUFJGIiwgMHg0OTEwfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NHRVRNQVAiLCAweDQ5MTF9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVE1BUCIsIDB4NDkxMn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQVNMIiwgMHg0OTEzfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRESUwiLCAweDQ5MTR9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVENQUyIsIDB4NDkxNX0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VURFZSIiwgMHg0OTE2fSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRMQ1IiLCAweDQ5MTd9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVERXUlNFVCIsIDB4NDkxOH0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUxOIiwgMHg0OTIwfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NORVRETE4iLCAweDQ5MjF9LAoteyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdQTiIsIDB4NDkyMn0sCi17ImxpbnV4L2lzZG4uaCIsICJJSU9DREJHVkFSIiwgMHg0OTdmfSwKLXsibGludXgvaXNkbi5oIiwgIklJT0NEUlZDVEwiLCAweDQ5ODB9LAoteyJsaW51eC9rZC5oIiwgIktJT0NTT1VORCIsIDB4NGIyZn0sCi17ImxpbnV4L2tkLmgiLCAiS0RNS1RPTkUiLCAweDRiMzB9LAoteyJsaW51eC9rZC5oIiwgIktER0VUTEVEIiwgMHg0YjMxfSwKLXsibGludXgva2QuaCIsICJLRFNFVExFRCIsIDB4NGIzMn0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JUWVBFIiwgMHg0YjMzfSwKLXsibGludXgva2QuaCIsICJLREFERElPIiwgMHg0YjM0fSwKLXsibGludXgva2QuaCIsICJLRERFTElPIiwgMHg0YjM1fSwKLXsibGludXgva2QuaCIsICJLREVOQUJJTyIsIDB4NGIzNn0sCi17ImxpbnV4L2tkLmgiLCAiS0RESVNBQklPIiwgMHg0YjM3fSwKLXsibGludXgva2QuaCIsICJLRFNFVE1PREUiLCAweDRiM2F9LAoteyJsaW51eC9rZC5oIiwgIktER0VUTU9ERSIsIDB4NGIzYn0sCi17ImxpbnV4L2tkLmgiLCAiS0RNQVBESVNQIiwgMHg0YjNjfSwKLXsibGludXgva2QuaCIsICJLRFVOTUFQRElTUCIsIDB4NGIzZH0sCi17ImxpbnV4L2tkLmgiLCAiR0lPX1NDUk5NQVAiLCAweDRiNDB9LAoteyJsaW51eC9rZC5oIiwgIlBJT19TQ1JOTUFQIiwgMHg0YjQxfSwKLXsibGludXgva2QuaCIsICJLREdLQk1PREUiLCAweDRiNDR9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCTU9ERSIsIDB4NGI0NX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JFTlQiLCAweDRiNDZ9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCRU5UIiwgMHg0YjQ3fSwKLXsibGludXgva2QuaCIsICJLREdLQlNFTlQiLCAweDRiNDh9LAoteyJsaW51eC9rZC5oIiwgIktEU0tCU0VOVCIsIDB4NGI0OX0sCi17ImxpbnV4L2tkLmgiLCAiS0RHS0JESUFDUiIsIDB4NGI0YX0sCi17ImxpbnV4L2tkLmgiLCAiS0RTS0JESUFDUiIsIDB4NGI0Yn0sCi17ImxpbnV4L2tkLmgiLCAiS0RHRVRLRVlDT0RFIiwgMHg0YjRjfSwKLXsibGludXgva2QuaCIsICJLRFNFVEtFWUNPREUiLCAweDRiNGR9LAoteyJsaW51eC9rZC5oIiwgIktEU0lHQUNDRVBUIiwgMHg0YjRlfSwKLXsibGludXgva2QuaCIsICJLREdIV0NMSyIsIDB4NGI1MH0sCi17ImxpbnV4L2tkLmgiLCAiS0RTSFdDTEsiLCAweDRiNTF9LAoteyJsaW51eC9rZC5oIiwgIktES0JEUkVQIiwgMHg0YjUyfSwKLXsibGludXgva2QuaCIsICJHSU9fRk9OVCIsIDB4NGI2MH0sCi17ImxpbnV4L2tkLmgiLCAiUElPX0ZPTlQiLCAweDRiNjF9LAoteyJsaW51eC9rZC5oIiwgIktER0tCTUVUQSIsIDB4NGI2Mn0sCi17ImxpbnV4L2tkLmgiLCAiS0RTS0JNRVRBIiwgMHg0YjYzfSwKLXsibGludXgva2QuaCIsICJLREdLQkxFRCIsIDB4NGI2NH0sCi17ImxpbnV4L2tkLmgiLCAiS0RTS0JMRUQiLCAweDRiNjV9LAoteyJsaW51eC9rZC5oIiwgIkdJT19VTklNQVAiLCAweDRiNjZ9LAoteyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVAiLCAweDRiNjd9LAoteyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVBDTFIiLCAweDRiNjh9LAoteyJsaW51eC9rZC5oIiwgIkdJT19VTklTQ1JOTUFQIiwgMHg0YjY5fSwKLXsibGludXgva2QuaCIsICJQSU9fVU5JU0NSTk1BUCIsIDB4NGI2YX0sCi17ImxpbnV4L2tkLmgiLCAiR0lPX0ZPTlRYIiwgMHg0YjZifSwKLXsibGludXgva2QuaCIsICJQSU9fRk9OVFgiLCAweDRiNmN9LAoteyJsaW51eC9rZC5oIiwgIlBJT19GT05UUkVTRVQiLCAweDRiNmR9LAoteyJsaW51eC9rZC5oIiwgIkdJT19DTUFQIiwgMHg0YjcwfSwKLXsibGludXgva2QuaCIsICJQSU9fQ01BUCIsIDB4NGI3MX0sCi17ImxpbnV4L2tkLmgiLCAiS0RGT05UT1AiLCAweDRiNzJ9LAoteyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfRkQiLCAweDRjMDB9LAoteyJsaW51eC9sb29wLmgiLCAiTE9PUF9DTFJfRkQiLCAweDRjMDF9LAoteyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfU1RBVFVTIiwgMHg0YzAyfSwKLXsibGludXgvbG9vcC5oIiwgIkxPT1BfR0VUX1NUQVRVUyIsIDB4NGMwM30sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJORFpBUEVOVENOVCIsIDB4NTIwNH0sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJORENMRUFSUE9PTCIsIDB4NTIwNn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QQVVTRSIsIDB4NTMwMX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNVTUUiLCAweDUzMDJ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUExBWU1TRiIsIDB4NTMwM30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QTEFZVFJLSU5EIiwgMHg1MzA0fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURUT0NIRFIiLCAweDUzMDV9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRFRPQ0VOVFJZIiwgMHg1MzA2fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVNUT1AiLCAweDUzMDd9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU1RBUlQiLCAweDUzMDh9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NRUpFQ1QiLCAweDUzMDl9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NVk9MQ1RSTCIsIDB4NTMwYX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TVUJDSE5MIiwgMHg1MzBifSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURNT0RFMiIsIDB4NTMwY30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFETU9ERTEiLCAweDUzMGR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFVRElPIiwgMHg1MzBlfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTUVKRUNUX1NXIiwgMHg1MzBmfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTU1VTFRJU0VTU0lPTiIsIDB4NTMxMH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fR0VUX01DTiIsIDB4NTMxMX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNFVCIsIDB4NTMxMn0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01WT0xSRUFEIiwgMHg1MzEzfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURSQVciLCAweDUzMTR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRENPT0tFRCIsIDB4NTMxNX0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TRUVLIiwgMHg1MzE2fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTVBMQVlCTEsiLCAweDUzMTd9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFMTCIsIDB4NTMxOH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01DTE9TRVRSQVkiLCAweDUzMTl9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NR0VUU1BJTkRPV04iLCAweDUzMWR9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU0VUU1BJTkRPV04iLCAweDUzMWV9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFVF9PUFRJT05TIiwgMHg1MzIwfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9DTEVBUl9PUFRJT05TIiwgMHg1MzIxfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRUxFQ1RfU1BFRUQiLCAweDUzMjJ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFTEVDVF9ESVNDIiwgMHg1MzIzfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9NRURJQV9DSEFOR0VEIiwgMHg1MzI1fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9EUklWRV9TVEFUVVMiLCAweDUzMjZ9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RJU0NfU1RBVFVTIiwgMHg1MzI3fSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9DSEFOR0VSX05TTE9UUyIsIDB4NTMyOH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTE9DS0RPT1IiLCAweDUzMjl9LAoteyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RFQlVHIiwgMHg1MzMwfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsIDB4NTMzMX0sCi17InNjc2kvc2NzaV9pb2N0bC5oIiwgIlNDU0lfSU9DVExfRE9PUkxPQ0siLCAweDUzODB9LAoteyJzY3NpL3Njc2lfaW9jdGwuaCIsICJTQ1NJX0lPQ1RMX0RPT1JVTkxPQ0siLCAweDUzODF9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9JRExVTiIsIDB4NTM4Mn0sCi17InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0VOQUJMRSIsIDB4NTM4M30sCi17InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLCAweDUzODR9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1BST0JFX0hPU1QiLCAweDUzODV9LAoteyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9CVVNfTlVNQkVSIiwgMHg1Mzg2fSwKLXsibGludXgvY2Ryb20uaCIsICJEVkRfUkVBRF9TVFJVQ1QiLCAweDUzOTB9LAoteyJsaW51eC9jZHJvbS5oIiwgIkRWRF9XUklURV9TVFJVQ1QiLCAweDUzOTF9LAoteyJsaW51eC9jZHJvbS5oIiwgIkRWRF9BVVRIIiwgMHg1MzkyfSwKLXsibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRU5EX1BBQ0tFVCIsIDB4NTM5M30sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTkVYVF9XUklUQUJMRSIsIDB4NTM5NH0sCi17ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTEFTVF9XUklUVEVOIiwgMHg1Mzk1fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDR0VUUyIsIDB4NTQwMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFMiLCAweDU0MDJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRTVyIsIDB4NTQwM30sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFNGIiwgMHg1NDA0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDR0VUQSIsIDB4NTQwNX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEEiLCAweDU0MDZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTRVRBVyIsIDB4NTQwN30sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEFGIiwgMHg1NDA4fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRDU0JSSyIsIDB4NTQwOX0sCi17ImFzbS9pb2N0bHMuaCIsICJUQ1hPTkMiLCAweDU0MGF9LAoteyJhc20vaW9jdGxzLmgiLCAiVENGTFNIIiwgMHg1NDBifSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NFWENMIiwgMHg1NDBjfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NOWENMIiwgMHg1NDBkfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTQ1RUWSIsIDB4NTQwZX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1BHUlAiLCAweDU0MGZ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NQR1JQIiwgMHg1NDEwfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NPVVRRIiwgMHg1NDExfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTVEkiLCAweDU0MTJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dXSU5TWiIsIDB4NTQxM30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1dJTlNaIiwgMHg1NDE0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNR0VUIiwgMHg1NDE1fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklTIiwgMHg1NDE2fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklDIiwgMHg1NDE3fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NNU0VUIiwgMHg1NDE4fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHU09GVENBUiIsIDB4NTQxOX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1NPRlRDQVIiLCAweDU0MWF9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPTlJFQUQiLCAweDU0MWJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0xJTlVYIiwgMHg1NDFjfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NDT05TIiwgMHg1NDFkfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NHU0VSSUFMIiwgMHg1NDFlfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTU0VSSUFMIiwgMHg1NDFmfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NQS1QiLCAweDU0MjB9LAoteyJhc20vaW9jdGxzLmgiLCAiRklPTkJJTyIsIDB4NTQyMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DTk9UVFkiLCAweDU0MjJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFVEQiLCAweDU0MjN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dFVEQiLCAweDU0MjR9LAoteyJhc20vaW9jdGxzLmgiLCAiVENTQlJLUCIsIDB4NTQyNX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DVFRZR1NUUlVDVCIsIDB4NTQyNn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0JSSyIsIDB4NTQyN30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DQ0JSSyIsIDB4NTQyOH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NJRCIsIDB4NTQyOX0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9OQ0xFWCIsIDB4NTQ1MH0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9DTEVYIiwgMHg1NDUxfSwKLXsiYXNtL2lvY3Rscy5oIiwgIkZJT0FTWU5DIiwgMHg1NDUyfSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJDT05GSUciLCAweDU0NTN9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdXSUxEIiwgMHg1NDU0fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJTV0lMRCIsIDB4NTQ1NX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR0xDS1RSTUlPUyIsIDB4NTQ1Nn0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0xDS1RSTUlPUyIsIDB4NTQ1N30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR1NUUlVDVCIsIDB4NTQ1OH0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR0VUTFNSIiwgMHg1NDU5fSwKLXsiYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJHRVRNVUxUSSIsIDB4NTQ1YX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSU0VUTVVMVEkiLCAweDU0NWJ9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ01JV0FJVCIsIDB4NTQ1Y30sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DR0lDT1VOVCIsIDB4NTQ1ZH0sCi17ImFzbS9pb2N0bHMuaCIsICJGSU9RU0laRSIsIDB4NTQ1ZX0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0RJU0NBUkRVUkIiLCAweDU1MGJ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRVNFVCIsIDB4NTUxNH0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfT1BFTlFSWSIsIDB4NTYwMH0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfR0VUTU9ERSIsIDB4NTYwMX0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfU0VUTU9ERSIsIDB4NTYwMn0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfR0VUU1RBVEUiLCAweDU2MDN9LAoteyJsaW51eC92dC5oIiwgIlZUX1NFTkRTSUciLCAweDU2MDR9LAoteyJsaW51eC92dC5oIiwgIlZUX1JFTERJU1AiLCAweDU2MDV9LAoteyJsaW51eC92dC5oIiwgIlZUX0FDVElWQVRFIiwgMHg1NjA2fSwKLXsibGludXgvdnQuaCIsICJWVF9XQUlUQUNUSVZFIiwgMHg1NjA3fSwKLXsibGludXgvdnQuaCIsICJWVF9ESVNBTExPQ0FURSIsIDB4NTYwOH0sCi17ImxpbnV4L3Z0LmgiLCAiVlRfUkVTSVpFIiwgMHg1NjA5fSwKLXsibGludXgvdnQuaCIsICJWVF9SRVNJWkVYIiwgMHg1NjBhfSwKLXsibGludXgvdnQuaCIsICJWVF9MT0NLU1dJVENIIiwgMHg1NjBifSwKLXsibGludXgvdnQuaCIsICJWVF9VTkxPQ0tTV0lUQ0giLCAweDU2MGN9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX1NFVEZSQU1JTkciLCAweDYxMTV9LAoteyJsaW51eC9hdG1fbmljc3Rhci5oIiwgIk5TX0FESkJVRkxFViIsIDB4NjE2M30sCi17ImxpbnV4L2F0bV90Y3AuaCIsICJTSU9DU0lGQVRNVENQIiwgMHg2MTgwfSwKLXsibGludXgvYXRtX3RjcC5oIiwgIkFUTVRDUF9DUkVBVEUiLCAweDYxOGV9LAoteyJsaW51eC9hdG1fdGNwLmgiLCAiQVRNVENQX1JFTU9WRSIsIDB4NjE4Zn0sCi17ImxpbnV4L2F0bWxlYy5oIiwgIkFUTUxFQ19DVFJMIiwgMHg2MWQwfSwKLXsibGludXgvYXRtbGVjLmgiLCAiQVRNTEVDX0RBVEEiLCAweDYxZDF9LAoteyJsaW51eC9hdG1sZWMuaCIsICJBVE1MRUNfTUNBU1QiLCAweDYxZDJ9LAoteyJsaW51eC9hdG1tcGMuaCIsICJBVE1NUENfQ1RSTCIsIDB4NjFkOH0sCi17ImxpbnV4L2F0bW1wYy5oIiwgIkFUTU1QQ19EQVRBIiwgMHg2MWQ5fSwKLXsibGludXgvYXRtY2xpcC5oIiwgIlNJT0NNS0NMSVAiLCAweDYxZTB9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBEX0NUUkwiLCAweDYxZTF9LAoteyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfTUtJUCIsIDB4NjFlMn0sCi17ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9TRVRFTlRSWSIsIDB4NjFlM30sCi17ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9FTkNBUCIsIDB4NjFlNX0sCi17ImxpbnV4L2F0bXN2Yy5oIiwgIkFUTVNJR0RfQ1RSTCIsIDB4NjFmMH0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVFBPUlRTVEFUUyIsIDB4NjMxZX0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0NMUlBPUlRTVEFUUyIsIDB4NjMxZn0sCi17ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVEJSRFNUQVRTIiwgMHg2MzIwfSwKLXsibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBRFBPUlQiLCAweDYzMjh9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEQk9BUkQiLCAweDYzMjl9LAoteyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEUEFORUwiLCAweDYzMmF9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9EVU1QIiwgMHg2NGMwfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NUWElETEUiLCAweDZkMDJ9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1RYSURMRSIsIDB4NmQwM30sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEVOQUJMRSIsIDB4NmQwNH0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NSWEVOQUJMRSIsIDB4NmQwNX0sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEFCT1JUIiwgMHg2ZDA2fSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dTVEFUUyIsIDB4NmQwN30sCi17ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NMT09QVFhET05FIiwgMHg2ZDA5fSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0NMUk1PRENPVU5UIiwgMHg2ZDBmfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsIDB4NmUwM30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19BSUVfT04iLCAweDcwMDF9LAoteyJsaW51eC9ydGMuaCIsICJSVENfQUlFX09GRiIsIDB4NzAwMn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19VSUVfT04iLCAweDcwMDN9LAoteyJsaW51eC9ydGMuaCIsICJSVENfVUlFX09GRiIsIDB4NzAwNH0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19QSUVfT04iLCAweDcwMDV9LAoteyJsaW51eC9ydGMuaCIsICJSVENfUElFX09GRiIsIDB4NzAwNn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19XSUVfT04iLCAweDcwMGZ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0lFX09GRiIsIDB4NzAxMH0sCi17ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fSU5JVCIsIDB4NzA0MH0sCi17ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fU0VUQ0tTIiwgMHg3MDQxfSwKLXsibGludXgvcHBkZXYuaCIsICJQUENMQUlNIiwgMHg3MDhifSwKLXsibGludXgvcHBkZXYuaCIsICJQUFJFTEVBU0UiLCAweDcwOGN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQWUlFTEQiLCAweDcwOGR9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQRVhDTCIsIDB4NzA4Zn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFUyIsIDB4NzE4MH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkciLCAweDcxODN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9IT09LU1RBVEUiLCAweDcxODR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX1NUQVJUIiwgMHg3MTg3fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19TVE9QIiwgMHg3MTg4fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUQVJUIiwgMHg3MThhfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUT1AiLCAweDcxOGJ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfTEVWRUwiLCAweDcxOGZ9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1NUQVJUIiwgMHg3MTkxfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9TVE9QIiwgMHg3MTkyfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9MRVZFTCIsIDB4NzE5NX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLCAweDcxOWV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsIDB4NzE5Zn0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX1NUQVRFIiwgMHg3MWEwfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQlVTWSIsIDB4NzFhMX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkdCQUNLIiwgMHg3MWEyfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRElBTFRPTkUiLCAweDcxYTN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DUFRfU1RPUCIsIDB4NzFhNH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwgMHg3MWE1fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUFNUTl9MSU5FVEVTVCIsIDB4NzFhOH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX1JFU0VUIiwgMHg3MWMwfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfSURMRSIsIDB4NzFjNX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfVEVTVFJBTSIsIDB4NzFjNn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQUVDX1NUT1AiLCAweDcxY2N9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLCAweDcxY2R9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BTVE5fTElORVRFU1QiLCAweDcxZDN9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsIDB4NzFlN30sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9CSU5UUiIsIDB4NzMxNH0sCi17ImxpbnV4L2Nkay5oIiwgIlNUTF9CU1RBUlQiLCAweDczMTV9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQlNUT1AiLCAweDczMTZ9LAoteyJsaW51eC9jZGsuaCIsICJTVExfQlJFU0VUIiwgMHg3MzE3fSwKLXsibGludXgvY2RrLmgiLCAiU1RMX0dFVFBGTEFHIiwgMHg3MzUwfSwKLXsibGludXgvY2RrLmgiLCAiU1RMX1NFVFBGTEFHIiwgMHg3MzUxfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DRElTQ09OTiIsIDB4NzQzOX0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1hGRVJVTklUIiwgMHg3NDRlfSwKLXsibGludXgvamZmcy5oIiwgIkpGRlNfUFJJTlRfSEFTSCIsIDB4NzQ1YX0sCi17ImxpbnV4L2pmZnMuaCIsICJKRkZTX1BSSU5UX1RSRUUiLCAweDc0NWJ9LAoteyJsaW51eC9qZmZzLmgiLCAiSkZGU19HRVRfU1RBVFVTIiwgMHg3NDVjfSwKLXsiYXNtL3NvY2tpb3MuaCIsICJGSU9TRVRPV04iLCAweDg5MDF9LAoteyJhc20vc29ja2lvcy5oIiwgIlNJT0NTUEdSUCIsIDB4ODkwMn0sCi17ImFzbS9zb2NraW9zLmgiLCAiRklPR0VUT1dOIiwgMHg4OTAzfSwKLXsiYXNtL3NvY2tpb3MuaCIsICJTSU9DR1BHUlAiLCAweDg5MDR9LAoteyJhc20vc29ja2lvcy5oIiwgIlNJT0NBVE1BUksiLCAweDg5MDV9LAoteyJhc20vc29ja2lvcy5oIiwgIlNJT0NHU1RBTVAiLCAweDg5MDZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0FERFJUIiwgMHg4OTBifSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NERUxSVCIsIDB4ODkwY30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUlRNU0ciLCAweDg5MGR9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk5BTUUiLCAweDg5MTB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkxJTksiLCAweDg5MTF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPTkYiLCAweDg5MTJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkZMQUdTIiwgMHg4OTEzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZGTEFHUyIsIDB4ODkxNH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQUREUiIsIDB4ODkxNX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQUREUiIsIDB4ODkxNn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGRFNUQUREUiIsIDB4ODkxN30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRFNUQUREUiIsIDB4ODkxOH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQlJEQUREUiIsIDB4ODkxOX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlJEQUREUiIsIDB4ODkxYX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTkVUTUFTSyIsIDB4ODkxYn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkVUTUFTSyIsIDB4ODkxY30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTUVUUklDIiwgMHg4OTFkfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNRVRSSUMiLCAweDg5MWV9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk1FTSIsIDB4ODkxZn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTUVNIiwgMHg4OTIwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNVFUiLCAweDg5MjF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1UVSIsIDB4ODkyMn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkFNRSIsIDB4ODkyM30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdBRERSIiwgMHg4OTI0fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZFTkNBUCIsIDB4ODkyNX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRU5DQVAiLCAweDg5MjZ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkhXQUREUiIsIDB4ODkyN30sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGU0xBVkUiLCAweDg5Mjl9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRlNMQVZFIiwgMHg4OTMwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NBRERNVUxUSSIsIDB4ODkzMX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMTVVMVEkiLCAweDg5MzJ9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRklOREVYIiwgMHg4OTMzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZQRkxBR1MiLCAweDg5MzR9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlBGTEFHUyIsIDB4ODkzNX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DRElGQUREUiIsIDB4ODkzNn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdCUk9BRENBU1QiLCAweDg5Mzd9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPVU5UIiwgMHg4OTM4fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZCUiIsIDB4ODk0MH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlIiLCAweDg5NDF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlRYUUxFTiIsIDB4ODk0Mn0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGVFhRTEVOIiwgMHg4OTQzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NEQVJQIiwgMHg4OTUzfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHQVJQIiwgMHg4OTU0fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NTQVJQIiwgMHg4OTU1fSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NEUkFSUCIsIDB4ODk2MH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR1JBUlAiLCAweDg5NjF9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NSQVJQIiwgMHg4OTYyfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNQVAiLCAweDg5NzB9LAoteyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1BUCIsIDB4ODk3MX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DQURERExDSSIsIDB4ODk4MH0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMRExDSSIsIDB4ODk4MX0sCi17ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUFJPVE9QUklWQVRFIiwgMHg4OWUwfSwKLXsibGludXgvc29ja2lvcy5oIiwgIlNJT0NERVZQUklWQVRFIiwgMHg4OWYwfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfUkVBRFkiLCAweDkzNjB9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19GQUlMIiwgMHg5MzYxfSwKLXsibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwgMHg5MzYyfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TT0NLIiwgMHhhYjAwfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9CTEtTSVpFIiwgMHhhYjAxfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFIiwgMHhhYjAyfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX0RPX0lUIiwgMHhhYjAzfSwKLXsibGludXgvbmJkLmgiLCAiTkJEX0NMRUFSX1NPQ0siLCAweGFiMDR9LAoteyJsaW51eC9uYmQuaCIsICJOQkRfQ0xFQVJfUVVFIiwgMHhhYjA1fSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1BSSU5UX0RFQlVHIiwgMHhhYjA2fSwKLXsibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFX0JMT0NLUyIsIDB4YWIwN30sCi17ImxpbnV4L25iZC5oIiwgIk5CRF9ESVNDT05ORUNUIiwgMHhhYjA4fSwKLXsibGludXgvcmF3LmgiLCAiUkFXX1NFVEJJTkQiLCAweGFjMDB9LAoteyJsaW51eC9yYXcuaCIsICJSQVdfR0VUQklORCIsIDB4YWMwMX0sCi17ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NERldEIiwgMHhiMTAxfSwKLXsibGludXgvbHZtLmgiLCAiTFZfQUNUSVZBVEUiLCAweGZlMjJ9LAoteyJsaW51eC9sdm0uaCIsICJMVl9ERUFDVElWQVRFIiwgMHhmZTIzfSwKLXsibGludXgvbHZtLmgiLCAiTFZNX1JFU0VUIiwgMHhmZTk5fSwKLXsibGludXgvbHZtLmgiLCAiTFZNX0xPQ0tfTFZNIiwgMHhmZjAwfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVE1PTiIsIDB4NDM1OTAxfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRIUkVTSCIsIDB4NDM1OTAyfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFRIUkVTSCIsIDB4NDM1OTAzfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVERFRlRIUkVTSCIsIDB4NDM1OTA0fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRIUkVTSCIsIDB4NDM1OTA1fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRJTUVPVVQiLCAweDQzNTkwNn0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRUSU1FT1VUIiwgMHg0MzU5MDd9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZR0VUREVGVElNRU9VVCIsIDB4NDM1OTA4fSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRJTUVPVVQiLCAweDQzNTkwOX0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRSRkxPVyIsIDB4NDM1OTBhfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJGTE9XIiwgMHg0MzU5MGJ9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUUlRTRFRSX0lOViIsIDB4NDM1OTBjfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJUU0RUUl9JTlYiLCAweDQzNTkwZH0sCi17ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1laU0VUUE9MTENZQ0xFIiwgMHg0MzU5MGV9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZWkdFVFBPTExDWUNMRSIsIDB4NDM1OTBmfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENEMTQwMFZFUiIsIDB4NDM1OTEwfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENBUkRJTkZPIiwgMHg0MzU5MTF9LAoteyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUV0FJVCIsIDB4NDM1OTEyfSwKLXsibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFdBSVQiLCAweDQzNTkxM30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfVk9MVU1FIiwgMHgyMDA0NGQwMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQkFTUyIsIDB4MjAwNDRkMDF9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1RSRUJMRSIsIDB4MjAwNDRkMDJ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NZTlRIIiwgMHgyMDA0NGQwM30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUENNIiwgMHgyMDA0NGQwNH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1BFQUtFUiIsIDB4MjAwNDRkMDV9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUiLCAweDIwMDQ0ZDA2fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9NSUMiLCAweDIwMDQ0ZDA3fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9DRCIsIDB4MjAwNDRkMDh9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0lNSVgiLCAweDIwMDQ0ZDA5fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9BTFRQQ00iLCAweDIwMDQ0ZDBhfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNMRVYiLCAweDIwMDQ0ZDBifSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9JR0FJTiIsIDB4MjAwNDRkMGN9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX09HQUlOIiwgMHgyMDA0NGQwZH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTElORTEiLCAweDIwMDQ0ZDBlfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FMiIsIDB4MjAwNDRkMGZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUzIiwgMHgyMDA0NGQxMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTVVURSIsIDB4MjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0VOSEFOQ0UiLCAweDIwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MT1VEIiwgMHgyMDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1RFUkVPREVWUyIsIDB4MjAwNDRkZmJ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0NBUFMiLCAweDIwMDQ0ZGZjfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNNQVNLIiwgMHgyMDA0NGRmZH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfREVWTUFTSyIsIDB4MjAwNDRkZmV9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1JFQ1NSQyIsIDB4MjAwNDRkZmZ9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQV0NPTlRST0wiLCAweDQwMDE3MDg0fSwKLXsibGludXgvcHBkZXYuaCIsICJQUFdEQVRBIiwgMHg0MDAxNzA4Nn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBXQ1RMT05JUlEiLCAweDQwMDE3MDkyfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfTUFYUklOR1MiLCAweDQwMDE3MTg1fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9UT05FIiwgMHg0MDAxNzE5Yn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBGQ09OVFJPTCIsIDB4NDAwMjcwOGV9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX0NBREVOQ0UiLCAweDQwMDI3MTg2fSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19ERUFMTE9DQVRFIiwgMHg0MDA0NDEwN30sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFERFRPRU5UQ05UIiwgMHg0MDA0NTIwMX0sCi17ImFzbS9pb2N0bHMuaCIsICJUSU9DU1BUTENLIiwgMHg0MDA0NTQzMX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRTQyIsIDB4NDAwNDYxZjF9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsIDB4NDAwNDY0MDJ9LAoteyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwgMHg0MDA0NjQwM30sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9OT1JNIiwgMHg0MDA0NjQwM30sCi17ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwgMHg0MDA0NjQwNH0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9JTlBVVCIsIDB4NDAwNDY0MDR9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfT1VUUFVUIiwgMHg0MDA0NjQwNX0sCi17ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX0VOQUJMRV9PVVRQVVQiLCAweDQwMDQ2NDA2fSwKLXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX05PUk0iLCAweDQwMDQ2NTAyfSwKLXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX0lOUFVUIiwgMHg0MDA0NjUwM30sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9PVVRQVVQiLCAweDQwMDQ2NTA0fSwKLXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsIDB4NDAwNDY1MDV9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwgMHg0MDA0NmUwMn0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwgMHg0MDA0NmUwNn0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwgMHg0MDA0NmUwY30sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBTRVRNT0RFIiwgMHg0MDA0NzA4MH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBEQVRBRElSIiwgMHg0MDA0NzA5MH0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBORUdPVCIsIDB4NDAwNDcwOTF9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQU0VUUEhBU0UiLCAweDQwMDQ3MDk0fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX0NPREVDIiwgMHg0MDA0NzE4OX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19ERVBUSCIsIDB4NDAwNDcxOGN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9GUkFNRSIsIDB4NDAwNDcxOGR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfVk9MVU1FIiwgMHg0MDA0NzE4ZX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfQ09ERUMiLCAweDQwMDQ3MTkwfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9ERVBUSCIsIDB4NDAwNDcxOTN9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1ZPTFVNRSIsIDB4NDAwNDcxOTR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9EVE1GX09PQiIsIDB4NDAwNDcxOTl9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwgMHg0MDA0NzE5Y30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwgMHg0MDA0NzE5ZH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwgMHg0MDA0NzFhNH0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1dJTktfRFVSQVRJT04iLCAweDQwMDQ3MWE2fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLCAweDQwMDQ3MWM4fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9BRUNfU1RBUlQiLCAweDQwMDQ3MWNifSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVRfTEVEIiwgMHg0MDA0NzFjZX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfTUlYRVIiLCAweDQwMDQ3MWNmfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwgMHg0MDA0NzFkMH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUE9SVCIsIDB4NDAwNDcxZDF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RBQV9BR0FJTiIsIDB4NDAwNDcxZDJ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BPVFNfUFNUTiIsIDB4NDAwNDcxZDV9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0haIiwgMHg0MDA0NzFlMH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUkFURSIsIDB4NDAwNDcxZTF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwgMHg0MDA0NzFmZH0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfSU5URVJDT01fU1RPUCIsIDB4NDAwNDcxZmV9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NBVFRDSEFOIiwgMHg0MDA0NzQzOH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0NPTk5FQ1QiLCAweDQwMDQ3NDNhfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01SUlUiLCAweDQwMDQ3NDNifSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DREVUQUNIIiwgMHg0MDA0NzQzY30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0FUVEFDSCIsIDB4NDAwNDc0M2R9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTREVCVUciLCAweDQwMDQ3NDQwfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01BWENJRCIsIDB4NDAwNDc0NTF9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTTVJVIiwgMHg0MDA0NzQ1Mn0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NSQVNZTkNNQVAiLCAweDQwMDQ3NDU0fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0FTWU5DTUFQIiwgMHg0MDA0NzQ1N30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NGTEFHUyIsIDB4NDAwNDc0NTl9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0JVTkRMRSIsIDB4NDAwNDc0ODF9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUEZMQUdTIiwgMHg0MDA0NzQ4M30sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVRVIiwgMHg0MDA0NzQ4NH0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVJVIiwgMHg0MDA0NzQ4NX0sCi17ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTT1IiLCAweDQwMDQ3NDg3fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NDQVBUVVJFIiwgMHg0MDA0NzYwOH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1lOQyIsIDB4NDAwNDc2MTJ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NXUklURU1PREUiLCAweDQwMDQ3NjE5fSwKLXsibGludXgvZG4uaCIsICJTSU9DU05FVEFERFIiLCAweDQwMDQ4OWUwfSwKLXsibGludXgvZG4uaCIsICJPU0lPQ1NORVRBRERSIiwgMHg0MDA0ODllMH0sCi17ImxpbnV4L2F1dG9fZnM0LmgiLCAiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLCAweDQwMDQ5MzY2fSwKLXsibGludXgvbHZtLmgiLCAiVkdfQ1JFQVRFIiwgMHg0MDA0ZmUwMH0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1JFTU9WRSIsIDB4NDAwNGZlMDF9LAoteyJsaW51eC9sdm0uaCIsICJWR19FWFRFTkQiLCAweDQwMDRmZTAzfSwKLXsibGludXgvbHZtLmgiLCAiVkdfUkVEVUNFIiwgMHg0MDA0ZmUwNH0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NFVF9FWFRFTkRBQkxFIiwgMHg0MDA0ZmUwOH0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX0NSRUFURSIsIDB4NDAwNGZlMjB9LAoteyJsaW51eC9sdm0uaCIsICJMVl9SRU1PVkUiLCAweDQwMDRmZTIxfSwKLXsibGludXgvbHZtLmgiLCAiTFZfRVhURU5EIiwgMHg0MDA0ZmUyNH0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1JFRFVDRSIsIDB4NDAwNGZlMjV9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TRVRfQUNDRVNTIiwgMHg0MDA0ZmUyOH0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9BTExPQ0FUSU9OIiwgMHg0MDA0ZmUyOX0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9TVEFUVVMiLCAweDQwMDRmZTJhfSwKLXsibGludXgvbHZtLmgiLCAiTEVfUkVNQVAiLCAweDQwMDRmZTJifSwKLXsibGludXgvbHZtLmgiLCAiUFZfRkxVU0giLCAweDQwMDRmZTQyfSwKLXsibGludXgvbHZtLmgiLCAiUEVfTE9DS19VTkxPQ0siLCAweDQwMDRmZTUwfSwKLXsibGludXgvZWxldmF0b3IuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKLXsibGludXgvZnMuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19TRVRVUCIsIDB4NDAwODQxMDN9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1JFU0VSVkUiLCAweDQwMDg0MTA0fSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19QUk9URUNUIiwgMHg0MDA4NDEwNX0sCi17ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQklORCIsIDB4NDAwODQxMDh9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1VOQklORCIsIDB4NDAwODQxMDl9LAoteyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLCAweDQwMDg0MjAyfSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ1NSRVAiLCAweDQwMDg0NTAzfSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ1NLRVlDT0RFIiwgMHg0MDA4NDUwNH0sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFEREVOVFJPUFkiLCAweDQwMDg1MjAzfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVBUFVSQiIsIDB4NDAwODU1MGN9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwgMHg0MDA4NTUwZH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwgMHg0MDA4NTUxMX0sCi17ImxpbnV4L2V4dDJfZnMuaCIsICJFWFQyX0lPQ19TRVRGTEFHUyIsIDB4NDAwODY2MDJ9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NUT1AiLCAweDQwMDg2ZDAxfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLCAweDQwMDg2ZTAyfSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDQwMDg2ZWY4fSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLCAweDQwMDg2ZWZhfSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfU0VUIiwgMHg0MDA4NzAwY30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19FUE9DSF9TRVQiLCAweDQwMDg3MDBlfSwKLXsibGludXgvc2VyaW8uaCIsICJTUElPQ1NUWVBFIiwgMHg0MDA4NzEwMX0sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsIDB4NDAwODcxODJ9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1NFVF9GSUxURVIiLCAweDQwMDg3MWM3fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9JTklUX1RPTkUiLCAweDQwMDg3MWM5fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9UT05FX0NBREVOQ0UiLCAweDQwMDg3MWNhfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU05QTU9ERSIsIDB4NDAwODc0NGJ9LAoteyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfU0VUVkVSU0lPTiIsIDB4NDAwODc2MDJ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGUkVRIiwgMHg0MDA4NzYwZn0sCi17ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NTRldEIiwgMHg0MDA4YjEwMH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRGTVRUUksiLCAweDQwMGMwMjQ4fSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfUkVHSVNURVIiLCAweDQwMGM0MzAxfSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT0VWVFJFRyIsIDB4NDAwYzY5MGF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFJPT1QiLCAweDQwMGM2ZTA4fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUExBWU1PREUiLCAweDQwMGM3NjE4fSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLCAweDQwMGU2NDA3fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUElDVCIsIDB4NDAwZTc2MDd9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RGTVQiLCAweDQwMTA0NDAxfSwKLXsibGludXgvYXRtX2lkdDc3MTA1LmgiLCAiSURUNzcxMDVfR0VUU1RBVCIsIDB4NDAxMDYxMzJ9LAoteyJsaW51eC9hdG1faWR0NzcxMDUuaCIsICJJRFQ3NzEwNV9HRVRTVEFUWiIsIDB4NDAxMDYxMzN9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVCIsIDB4NDAxMDYxNTB9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVFoiLCAweDQwMTA2MTUxfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExPT1AiLCAweDQwMTA2MTUyfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVExPT1AiLCAweDQwMTA2MTUzfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX1FVRVJZTE9PUCIsIDB4NDAxMDYxNTR9LAoteyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX01FTURVTVAiLCAweDQwMTA2MTYwfSwKLXsibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0wiLCAweDQwMTA2MTYxfSwKLXsibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19TRVRCVUZMRVYiLCAweDQwMTA2MTYyfSwKLXsibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0xaIiwgMHg0MDEwNjE2Mn0sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9TRVRQT09MIiwgMHg0MDEwNjE2M30sCi17ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRUSElTVCIsIDB4NDAxMDYxNjR9LAoteyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX1NFVE1VTFQiLCAweDQwMTA2MTY3fSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExJTktSQVRFIiwgMHg0MDEwNjE4MX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVROQU1FUyIsIDB4NDAxMDYxODN9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUVFlQRSIsIDB4NDAxMDYxODR9LAoteyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VURVNJIiwgMHg0MDEwNjE4NX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRBRERSIiwgMHg0MDEwNjE4Nn0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9SU1RBRERSIiwgMHg0MDEwNjE4N30sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9BRERBRERSIiwgMHg0MDEwNjE4OH0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9ERUxBRERSIiwgMHg0MDEwNjE4OX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRDSVJBTkdFIiwgMHg0MDEwNjE4YX0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRDSVJBTkdFIiwgMHg0MDEwNjE4Yn0sCi17ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRFU0kiLCAweDQwMTA2MThjfSwKLXsibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVEVTSUYiLCAweDQwMTA2MThkfSwKLXsibGludXgvcHBkZXYuaCIsICJQUFNFVFRJTUUiLCAweDQwMTA3MDk2fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTIiwgMHg0MDEwNzQ0ZH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DTUNBUFRVUkUiLCAweDQwMTA3NjEzfSwKLXsiYXNtL3RhcGUzOTAuaCIsICJUQVBFMzkwX0RJU1BMQVkiLCAweDQwMTE2NDAxfSwKLXsibGludXgvZmQuaCIsICJGRFNFVE1BWEVSUlMiLCAweDQwMTQwMjRjfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0FQVFVSRSIsIDB4NDAxNDc2MTd9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGQlVGIiwgMHg0MDE4NzYwY30sCi17ImxpbnV4L2ZkLmgiLCAiRkRTRVRQUk0iLCAweDQwMjAwMjQyfSwKLXsibGludXgvZmQuaCIsICJGRERFRlBSTSIsIDB4NDAyMDAyNDN9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTQVRUUiIsIDB4NDAyMDQ0MDJ9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTWEFTWU5DTUFQIiwgMHg0MDIwNzQ0Zn0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU01JQ1JPQ09ERSIsIDB4NDAyMDc2MWJ9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NWQklGTVQiLCAweDQwMjA3NjFkfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ1NDT1JSIiwgMHg0MDI0NmEyMX0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fU0VUIiwgMHg0MDI0NzAwN30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19TRVRfVElNRSIsIDB4NDAyNDcwMGF9LAoteyJsaW51eC9ydGMuaCIsICJSVENfV0tBTE1fU0VUIiwgMHg0MDI4NzAwZn0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1dJTiIsIDB4NDAyODc2MGF9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NBVURJTyIsIDB4NDAyODc2MTF9LAoteyJsaW51eC9zbWJfZnMuaCIsICJTTUJfSU9DX05FV0NPTk4iLCAweDQwMmM3NTAyfSwKLXsibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NQQVJBTVMiLCAweDQwMzA2ZDAwfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0hBTiIsIDB4NDAzMDc2MDN9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NUVU5FUiIsIDB4NDA0MDc2MDV9LAoteyJsaW51eC9mZC5oIiwgIkZEU0VURFJWUFJNIiwgMHg0MDgwMDI5MH0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0dFVERSSVZFUiIsIDB4NDEwNDU1MDh9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9WT0xVTUUiLCAweDYwMDQ0ZDAwfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQkFTUyIsIDB4NjAwNDRkMDF9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9UUkVCTEUiLCAweDYwMDQ0ZDAyfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfU1lOVEgiLCAweDYwMDQ0ZDAzfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUENNIiwgMHg2MDA0NGQwNH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1NQRUFLRVIiLCAweDYwMDQ0ZDA1fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTElORSIsIDB4NjAwNDRkMDZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9NSUMiLCAweDYwMDQ0ZDA3fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQ0QiLCAweDYwMDQ0ZDA4fSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfSU1JWCIsIDB4NjAwNDRkMDl9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9BTFRQQ00iLCAweDYwMDQ0ZDBhfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUkVDTEVWIiwgMHg2MDA0NGQwYn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0lHQUlOIiwgMHg2MDA0NGQwY30sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX09HQUlOIiwgMHg2MDA0NGQwZH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUxIiwgMHg2MDA0NGQwZX0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUyIiwgMHg2MDA0NGQwZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUzIiwgMHg2MDA0NGQxMH0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX01VVEUiLCAweDYwMDQ0ZDFmfSwKLXsibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfRU5IQU5DRSIsIDB4NjAwNDRkMWZ9LAoteyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MT1VEIiwgMHg2MDA0NGQxZn0sCi17ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1JFQ1NSQyIsIDB4NjAwNDRkZmZ9LAoteyJsaW51eC9qb3lzdGljay5oIiwgIkpTSU9DR0FYRVMiLCAweDgwMDE2YTExfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dCVVRUT05TIiwgMHg4MDAxNmExMn0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBSU1RBVFVTIiwgMHg4MDAxNzA4MX0sCi17ImxpbnV4L3BwZGV2LmgiLCAiUFBSQ09OVFJPTCIsIDB4ODAwMTcwODN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQUkRBVEEiLCAweDgwMDE3MDg1fSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX0VSUkNPREUiLCAweDgwMDI0MzIxfSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfSU5TVEFMTEVEIiwgMHg4MDAyNDMyMn0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9GTEFHUyIsIDB4ODAwNDQzMjN9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9TRVRfRkxBR1MiLCAweDgwMDQ0MzI0fSwKLXsibGludXgvY2FwaS5oIiwgIkNBUElfQ0xSX0ZMQUdTIiwgMHg4MDA0NDMyNX0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfT1BFTkNPVU5UIiwgMHg4MDA0NDMyNn0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfR0VUVU5JVCIsIDB4ODAwNDQzMjd9LAoteyJhc20vZGFzZC5oIiwgIkRBU0RBUElWRVIiLCAweDgwMDQ0NDAwfSwKLXsibGludXgvaW5wdXQuaCIsICJFVklPQ0dWRVJTSU9OIiwgMHg4MDA0NDUwMX0sCi17ImxpbnV4L3JhbmRvbS5oIiwgIlJOREdFVEVOVENOVCIsIDB4ODAwNDUyMDB9LAoteyJhc20vaW9jdGxzLmgiLCAiVElPQ0dQVE4iLCAweDgwMDQ1NDMwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVTRVRFUCIsIDB4ODAwNDU1MDN9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwgMHg4MDA0NTUwNX0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwgMHg4MDA0NTUwZn0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLCAweDgwMDQ1NTEwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQ0xFQVJfSEFMVCIsIDB4ODAwNDU1MTV9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNUQVRVUyIsIDB4ODAwNDU3MDF9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVEJPT1RTVEFUVVMiLCAweDgwMDQ1NzAyfSwKLXsibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRURU1QIiwgMHg4MDA0NTcwM30sCi17ImxpbnV4L3dhdGNoZG9nLmgiLCAiV0RJT0NfU0VUT1BUSU9OUyIsIDB4ODAwNDU3MDR9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0tFRVBBTElWRSIsIDB4ODAwNDU3MDV9LAoteyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVERJQUciLCAweDgwMDQ2MTE0fSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRGUkFNSU5HIiwgMHg4MDA0NjExNn0sCi17ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLCAweDgwMDQ2NDAwfSwKLXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfR0VUX1NUQVRVUyIsIDB4ODAwNDY0MDJ9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPVkFMSURBVEUiLCAweDgwMDQ2OTA4fSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dWRVJTSU9OIiwgMHg4MDA0NmEwMX0sCi17ImxpbnV4L3VkZl9mc19pLmgiLCAiVURGX0dFVEVBU0laRSIsIDB4ODAwNDZjNDB9LAoteyJsaW51eC96ZnRhcGUuaCIsICJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLCAweDgwMDQ2ZDY4fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TSUdOX1dBTlRFRCIsIDB4ODAwNDZlMDZ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsIDB4ODAwNDZlMGN9LAoteyJsaW51eC9wcGRldi5oIiwgIlBQQ0xSSVJRIiwgMHg4MDA0NzA5M30sCi17ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0RUTUZfUkVBRFkiLCAweDgwMDQ3MTk2fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUYiLCAweDgwMDQ3MTk3fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLCAweDgwMDQ3MTk4fSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRVhDRVBUSU9OIiwgMHg4MDA0NzE5YX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQ0FSRFRZUEUiLCAweDgwMDQ3MWMxfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVJJQUwiLCAweDgwMDQ3MWMyfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfVFlQRSIsIDB4ODAwNDcxYzN9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RTUF9WRVJTSU9OIiwgMHg4MDA0NzFjNH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dDSEFOIiwgMHg4MDA0NzQzN30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dERUJVRyIsIDB4ODAwNDc0NDF9LAoteyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHTVJVIiwgMHg4MDA0NzQ1M30sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dSQVNZTkNNQVAiLCAweDgwMDQ3NDU1fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1VOSVQiLCAweDgwMDQ3NDU2fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0FTWU5DTUFQIiwgMHg4MDA0NzQ1OH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dGTEFHUyIsIDB4ODAwNDc0NWF9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dNUEZMQUdTIiwgMHg4MDA0NzQ4Mn0sCi17ImxpbnV4L3NtYl9mcy5oIiwgIlNNQl9JT0NfR0VUTU9VTlRVSUQiLCAweDgwMDQ3NTAxfSwKLXsibGludXgvc21iX2ZzLmgiLCAiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwgMHg4MDA0NzUwM30sCi17ImxpbnV4L2RuLmgiLCAiU0lPQ0dORVRBRERSIiwgMHg4MDA0ODllMX0sCi17ImxpbnV4L2RuLmgiLCAiT1NJT0NHTkVUQUREUiIsIDB4ODAwNDg5ZTF9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsIDB4ODAwNDkzNjN9LAoteyJsaW51eC9sdm0uaCIsICJMVk1fR0VUX0lPUF9WRVJTSU9OIiwgMHg4MDA0ZmU5OH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VURlJTRU5TRSIsIDB4ODAwNjYxMTd9LAoteyJsaW51eC9lbGV2YXRvci5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoteyJsaW51eC9mcy5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoteyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0lORk8iLCAweDgwMDg0MTAwfSwKLXsibGludXgvcG11LmgiLCAiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwgMHg4MDA4NDIwMX0sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfR0VUX01PREVMIiwgMHg4MDA4NDIwM30sCi17ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfSEFTX0FEQiIsIDB4ODAwODQyMDR9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0lEIiwgMHg4MDA4NDUwMn0sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHUkVQIiwgMHg4MDA4NDUwM30sCi17ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHS0VZQ09ERSIsIDB4ODAwODQ1MDR9LAoteyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0tFWSIsIDB4ODAwODQ1MDV9LAoteyJsaW51eC9yYW5kb20uaCIsICJSTkRHRVRQT09MIiwgMHg4MDA4NTIwMn0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsIDB4ODAwODU1MDR9LAoteyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfR0VURkxBR1MiLCAweDgwMDg2NjAxfSwKLXsibGludXgvdWRmX2ZzX2kuaCIsICJVREZfR0VURUFCTE9DSyIsIDB4ODAwODZjNDF9LAoteyJsaW51eC91ZGZfZnNfaS5oIiwgIlVERl9HRVRWT0xJREVOVCIsIDB4ODAwODZjNDJ9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NQT1MiLCAweDgwMDg2ZDAzfSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDgwMDg2ZWY4fSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLCAweDgwMDg2ZWY5fSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLCAweDgwMDg2ZWZifSwKLXsibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfUkVBRCIsIDB4ODAwODcwMGJ9LAoteyJsaW51eC9ydGMuaCIsICJSVENfRVBPQ0hfUkVBRCIsIDB4ODAwODcwMGR9LAoteyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsIDB4ODAwODcxODF9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0NJRCIsIDB4ODAwODcxZDR9LAoteyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0ZSQU1FU19SRUFEIiwgMHg4MDA4NzFlMn0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRlJBTUVTX1dSSVRURU4iLCAweDgwMDg3MWUzfSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9SRUFEX1dBSVQiLCAweDgwMDg3MWU0fSwKLXsibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9XUklURV9XQUlUIiwgMHg4MDA4NzFlNX0sCi17ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLCAweDgwMDg3MWU2fSwKLXsibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX0dFVFZFUlNJT04iLCAweDgwMDg3NjAxfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRlJFUSIsIDB4ODAwODc2MGV9LAoteyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwgMHg4MDBjNjQwMX0sCi17ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLCAweDgwMGM2NTAxfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRST09UIiwgMHg4MDBjNmUwOH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DS0VZIiwgMHg4MDBjNzYwZH0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1BJQ1QiLCAweDgwMGU3NjA2fSwKLXsibGludXgvZmQuaCIsICJGREdFVERSVlRZUCIsIDB4ODAxMDAyMGZ9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19ESVNDU0lHTkFMIiwgMHg4MDEwNTUwZX0sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ0dFVFNJWkUiLCAweDgwMTA2ZDA5fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19OQ1BSRVFVRVNUIiwgMHg4MDEwNmUwMX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLCAweDgwMTA2ZTBhfSwKLXsibGludXgvcHBkZXYuaCIsICJQUEdFVFRJTUUiLCAweDgwMTA3MDk1fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0lETEUiLCAweDgwMTA3NDNmfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHSUZOQU1FIiwgMHg4MDEwNzQ4OH0sCi17ImxpbnV4L2ZkLmgiLCAiRkRHRVRNQVhFUlJTIiwgMHg4MDE0MDIwZX0sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ1ZPTElORk8iLCAweDgwMTQ2ZDA4fSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19MT0NLVU5MT0NLIiwgMHg4MDE0NmUwN30sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1VOSVQiLCAweDgwMTQ3NjE1fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0FQVFVSRSIsIDB4ODAxNDc2MTZ9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NJR05fSU5JVCIsIDB4ODAxODZlMDV9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLCAweDgwMTg2ZTA5fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRkJVRiIsIDB4ODAxODc2MGJ9LAoteyJsaW51eC9mZC5oIiwgIkZER0VUUFJNIiwgMHg4MDIwMDIwNH0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTREdBVFRSIiwgMHg4MDIwNDQwNX0sCi17ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9WQkxBTksiLCAweDgwMjA0NjEyfSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1hBU1lOQ01BUCIsIDB4ODAyMDc0NTB9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dWQklGTVQiLCAweDgwMjA3NjFjfSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRTVEFUIiwgMHg4MDI0NjExMH0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VUU1RBVFoiLCAweDgwMjQ2MTExfSwKLXsibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dDT1JSIiwgMHg4MDI0NmEyMn0sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fUkVBRCIsIDB4ODAyNDcwMDh9LAoteyJsaW51eC9ydGMuaCIsICJSVENfUkRfVElNRSIsIDB4ODAyNDcwMDl9LAoteyJsaW51eC9mZC5oIiwgIkZER0VURkRDU1RBVCIsIDB4ODAyODAyMTV9LAoteyJsaW51eC9mZC5oIiwgIkZEV0VSUk9SR0VUIiwgMHg4MDI4MDIxN30sCi17ImxpbnV4L3J0Yy5oIiwgIlJUQ19XS0FMTV9SRCIsIDB4ODAyODcwMTB9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dXSU4iLCAweDgwMjg3NjA5fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQVVESU8iLCAweDgwMjg3NjEwfSwKLXsibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRDSEFSU0VUUyIsIDB4ODAyYTZlMGJ9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1BBUkFNUyIsIDB4ODAzMDZkMDF9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NHRVQiLCAweDgwMzA2ZDAyfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfU1VCTUlUVVJCIiwgMHg4MDM4NTUwYX0sCi17ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NBUCIsIDB4ODAzYzc2MDF9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPR0VUSU9QUyIsIDB4ODA0MDY5MDB9LAoteyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dDT01QUkVTU09SUyIsIDB4ODA0MDc0ODZ9LAoteyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNVUFBPUlQiLCAweDgwNDg1NzAwfSwKLXsibGludXgvZmQuaCIsICJGREdFVERSVlNUQVQiLCAweDgwNTAwMjEyfSwKLXsibGludXgvZmQuaCIsICJGRFBPTExEUlZTVEFUIiwgMHg4MDUwMDIxM30sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9FVlRHRVQiLCAweDgwNjg2OTBifSwKLXsibGludXgvZmQuaCIsICJGREdFVERSVlBSTSIsIDB4ODA4MDAyMTF9LAoteyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19IVUJfUE9SVElORk8iLCAweDgwODA1NTEzfSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHTUJVRiIsIDB4ODA4ODc2MTR9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RQU1JEIiwgMHg4MGMwNDQwNH0sCi17ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX0VYUElSRSIsIDB4ODEwYzkzNjV9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dQTEFZSU5GTyIsIDB4ODExODc2MWF9LAoteyJhc20vZGFzZC5oIiwgIkJJT0RBU0RJTkZPIiwgMHg4MTc4NDQwMX0sCi17ImFzbS9kYXNkLmgiLCAiQklPREFTRElORk8yIiwgMHg4MWEwNDQwM30sCi17ImxpbnV4L21zZG9zX2ZzLmgiLCAiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLCAweDgyMzA3MjAxfSwKLXsibGludXgvbXNkb3NfZnMuaCIsICJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLCAweDgyMzA3MjAyfSwKLXsiYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSRCIsIDB4ODQwODQ0MDJ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwgMHhjMDA0NDMwNn0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9TRVJJQUwiLCAweGMwMDQ0MzA4fSwKLXsibGludXgvc29uZXQuaCIsICJTT05FVF9TRVRESUFHIiwgMHhjMDA0NjExMn0sCi17ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfQ0xSRElBRyIsIDB4YzAwNDYxMTN9LAoteyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DV0FJVEVWRU5UIiwgMHhjMDA0NmQwOH0sCi17ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ05FV1VOSVQiLCAweGMwMDQ3NDNlfSwKLXsibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTIiwgMHhjMDA0ZmUwNX0sCi17ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVU19HRVRfQ09VTlQiLCAweGMwMDRmZTA2fSwKLXsibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsIDB4YzAwNGZlMDd9LAoteyJsaW51eC9sdm0uaCIsICJMVl9TVEFUVVNfQllOQU1FIiwgMHhjMDA0ZmUyNn0sCi17ImxpbnV4L2x2bS5oIiwgIkxWX1NUQVRVU19CWUlOREVYIiwgMHhjMDA0ZmUyN30sCi17ImxpbnV4L2x2bS5oIiwgIlBWX1NUQVRVUyIsIDB4YzAwNGZlNDB9LAoteyJsaW51eC9sdm0uaCIsICJQVl9DSEFOR0UiLCAweGMwMDRmZTQxfSwKLXsibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19BTExPQ0FURSIsIDB4YzAwODQxMDZ9LAoteyJhc20vY21iLmgiLCAiQklPREFTRFJFQURDTUIiLCAweGMwMDg0NDIwfSwKLXsibGludXgvY29kYS5oIiwgIkNJT0NfS0VSTkVMX1ZFUlNJT04iLCAweGMwMDg2MzBhfSwKLXsibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLCAweGMwMDg2ZWZhfSwKLXsibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUVVFUllfQ09ERUMiLCAweGMwMDg3MWE3fSwKLXsibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR05QTU9ERSIsIDB4YzAwODc0NGN9LAoteyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwgMHhjMDA4OTM2NH0sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9WRVJTSU9OIiwgMHhjMDEwNDMwN30sCi17ImxpbnV4L2NhcGkuaCIsICJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLCAweGMwMTA0MzIwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfSU9DVEwiLCAweGMwMTA1NTEyfSwKLXsibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19HRVRQU1RBVCIsIDB4YzAxMDYxNjF9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwgMHhjMDEwNmUwYX0sCi17ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTlRST0wiLCAweGMwMTg1NTAwfSwKLXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQlVMSyIsIDB4YzAxODU1MDJ9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPSFJUR0VUIiwgMHhjMDE4NjkwMX0sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9MQ1RHRVQiLCAweGMwMTg2OTAyfSwKLXsibGludXgvbXRpby5oIiwgIk1USU9DUkRGVFNFRyIsIDB4YzAxODZkMDZ9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NXUkZUU0VHIiwgMHhjMDE4NmQwN30sCi17ImxpbnV4L210aW8uaCIsICJNVElPQ0ZURk9STUFUIiwgMHhjMDE4NmQwYX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsIDB4YzAxODZlMDl9LAoteyJsaW51eC9tdGlvLmgiLCAiTVRJT0NGVENNRCIsIDB4YzAyMDZkMGJ9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTVNFVCIsIDB4YzAyODY5MDN9LAoteyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTUdFVCIsIDB4YzAyODY5MDR9LAoteyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVF9GU19JTkZPIiwgMHhjMDI4NmUwNH0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLCAweGMwMmE2ZTBifSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREwiLCAweGMwMzA2OTA1fSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1NXVUwiLCAweGMwMzA2OTA2fSwKLXsibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREVMIiwgMHhjMDMwNjkwN30sCi17ImxpbnV4L2kyby1kZXYuaCIsICJJMk9IVE1MIiwgMHhjMDMwNjkwOX0sCi17ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLCAweGMwMzA2ZTA0fSwKLXsibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0hBTiIsIDB4YzAzMDc2MDJ9LAoteyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfUFJPRklMRSIsIDB4YzA0MDQzMDl9LAoteyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dUVU5FUiIsIDB4YzA0MDc2MDR9LAoteyJhc20vY21iLmgiLCAiQklPREFTRFJFQURBTExDTUIiLCAweGMwNTg0NDIxfSwKLXsibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHQ0FMTElORk8iLCAweGMwODg3NDgwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkweC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9zMzkweC9zaWduYWxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRiMDBiMS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvczM5MHgvc2lnbmFsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0JIlNJR18wIiwJLyogMCAqLwotCSJTSUdIVVAiLAkvKiAxICovCi0JIlNJR0lOVCIsCS8qIDIgKi8KLQkiU0lHUVVJVCIsCS8qIDMgKi8KLQkiU0lHSUxMIiwJLyogNCAqLwotCSJTSUdUUkFQIiwJLyogNSAqLwotCSJTSUdBQlJUIiwJLyogNiAqLwotCSJTSUdCVVMiLAkvKiA3ICovCi0JIlNJR0ZQRSIsCS8qIDggKi8KLQkiU0lHS0lMTCIsCS8qIDkgKi8KLQkiU0lHVVNSMSIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdVU1IyIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHU1RLRkxUIiwJLyogMTYgKi8KLQkiU0lHQ0hMRCIsCS8qIDE3ICovCi0JIlNJR0NPTlQiLAkvKiAxOCAqLwotCSJTSUdTVE9QIiwJLyogMTkgKi8KLQkiU0lHVFNUUCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHVVJHIiwJLyogMjMgKi8KLQkiU0lHWENQVSIsCS8qIDI0ICovCi0JIlNJR1hGU1oiLAkvKiAyNSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyNiAqLwotCSJTSUdQUk9GIiwJLyogMjcgKi8KLQkiU0lHV0lOQ0giLAkvKiAyOCAqLwotCSJTSUdJTyIsCS8qIDI5ICovCi0JIlNJR1BXUiIsCS8qIDMwICovCi0JIlNJR1VOVVNFRCIsCS8qIDMxICovCi0JIlNJR1JUTUlOIiwJLyogMzIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkweC9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvczM5MHgvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2QwMmYzLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zMzkweC9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwMCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcG9yYXRpb24KLSAqIEF1dGhvcjogVWxyaWNoIFdlaWdhbmQgPFVscmljaC5XZWlnYW5kQGRlLmlibS5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLQl7IDAsCTAsCXN5c19zZXR1cCwJCSJzZXR1cCIJCX0sIC8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJfZXhpdCIJCX0sIC8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLwotCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNyIJCX0sIC8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTMiCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTYiCX0sIC8qIDE2ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNyIJfSwgLyogMTcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4Igl9LCAvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMyIJfSwgLyogMjMgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0Igl9LCAvKiAyNCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjUiCX0sIC8qIDI1ICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOCIJfSwgLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMSIJfSwgLyogMzEgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyIgl9LCAvKiAzMiAqLwotCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNSIJfSwgLyogMzUgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiAzOCAqLwotCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCX0sIC8qIDM5ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDAgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNDEgKi8KLQl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0Igl9LCAvKiA0NCAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0NSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNDYiCX0sIC8qIDQ2ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU180NyIJfSwgLyogNDcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDggKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5Igl9LCAvKiA0OSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTAiCX0sIC8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTMiCX0sIC8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2Igl9LCAvKiA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4Igl9LCAvKiA1OCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNTkiCX0sIC8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNjYgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJfSwgLyogNjcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4Igl9LCAvKiA2OCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfNjkiCX0sIC8qIDY5ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU183MCIJfSwgLyogNzAgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxIgl9LCAvKiA3MSAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogNzYgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA3NyAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNzggKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sIC8qIDc5ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU184MCIJfSwgLyogODAgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxIgl9LCAvKiA4MSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfODIiCX0sIC8qIDgyICovCi0JeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJfSwgLyogODMgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0Igl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfODkiCX0sIC8qIDg5ICovCi0JeyA2LAkwLAlzeXNfb2xkX21tYXAsCQkibW1hcCIJCX0sIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogOTEgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5NCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfOTUiCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogOTYgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA5NyAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfOTgiCX0sIC8qIDk4ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMSIJfSwgLyogMTAxICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiAxMDIgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAvKiAxMDMgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiAxMDQgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMDUgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTA2ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTA3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMDggKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwOSIJfSwgLyogMTA5ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTAiCX0sIC8qIDExMCAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCi0JeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTMiCX0sIC8qIDExMyAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sIC8qIDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogMTE1ICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiAxMTYgKi8KLQl7IDUsCTAsCXN5c19pcGMsCQkiaXBjIgkJfSwgLyogMTE3ICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMTggKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJfSwgLyogMTE5ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJfSwgLyogMTIwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMiCX0sIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMzUgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiAxMzYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiAxMzcgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOCIJfSwgLyogMTM4ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzkiCX0sIC8qIDEzOSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTQwIgl9LCAvKiAxNDAgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiAxNDMgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDE0NCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTQ1ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NCIJfSwgLyogMTY0ICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjUiCX0sIC8qIDE2NSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTY2Igl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTcwIgl9LCAvKiAxNzAgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MSIJfSwgLyogMTcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIJfSwgLyogMTc0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KLQl7IDUsCVRGLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxODAgKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTgxICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODIiCX0sIC8qIDE4MiAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAvKiAxODMgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxODQgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiAxODUgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogMTg2ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiAxODcgKi8KLQl7IDUsCTAsCXN5c19nZXRwbXNnLAkJImdldHBtc2ciCX0sIC8qIDE4OCAqLwotCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJfSwgLyogMTg5ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkJInZmb3JrIgkJfSwgLyogMTkwICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCi0gCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTkyIgl9LCAvKiAxOTIgKi8KLSAJeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTMiCX0sIC8qIDE5MyAqLwotIAl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NCIJfSwgLyogMTk0ICovCi0gCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMTk1Igl9LCAvKiAxOTUgKi8KLSAJeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTYiCX0sIC8qIDE5NiAqLwotIAl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NyIJfSwgLyogMTk3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTk4ICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMTk5ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogMjAwICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiAyMDEgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDIwMiAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiAyMDMgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogMjA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogMjA2ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogMjA3ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJfSwgLyogMjA4ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgLyogMjA5ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMjEwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMjExICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMjEyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjEzICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogMjE0ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDIxNSAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAyMTYgKi8KLSAgICAgICAgeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiAyMTcgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkgICAgICAgICAibWluY29yZSIgICAgICB9LCAvKiAyMTggKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCi0JeyAtMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjEiCX0sIC8qIDIyMSAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDIyMiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDIyMyAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMjI0ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMjI1ICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMjI2ICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiAyMjcgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAyMjggKi8KLQl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAyMjkgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMjMwICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAyMzEgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzMiAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzMgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNCAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMjM1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgl9LCAvKiAyMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDIzNyAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJfSwgLyogMjM4ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAyMzkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDI0MCAqLwotCXsgLTEsCTAsCXByaW50YXJncywJCSJTWVNfMjQxIgl9LCAvKiAyNDEgKi8KLQl7IC0xLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MiIJfSwgLyogMjQyICovCi0JeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjQ0ICovCi0JeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMjQ1ICovCi0JeyAzLAkwLAlzeXNfaW9fc3VibWl0LAkJImlvX3N1Ym1pdCIJfSwgLyogMjQ2ICovCi0JeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogMjQ3ICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJfSwgLyogMjQ4ICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAyNDkgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiAyNTAgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDI1MSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyJ9LCAvKiAyNTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJmYWR2aXNlNjQiCX0sIC8qIDI1MyAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjU0ICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDI1NSAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyNTYgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyNTcgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDI1OCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyNTkgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjYwICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyNjEgKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjYyICovCi0KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAyNjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY0Igl9LCAvKiAyNjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAyNjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAyNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY3Igl9LCAvKiAyNjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgl9LCAvKiAyNzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAyNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgl9LCAvKiAyNzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAyODEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgl9LCAvKiAyODIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KLQotI2lmIFNZU19zb2NrZXRfc3ViY2FsbCAhPSAzMDAKLSAjZXJyb3IgZml4IG1lCi0jZW5kaWYKLQl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAzMDAgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMzAxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDMwMiAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDMwMyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAzMDQgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMzA1ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDMwNiAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAzMDcgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAzMDggKi8KLQl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMzA5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDMxMCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAzMTEgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDMxMiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMzEzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMzE0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMzE1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMzE2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMzE3ICovCi0KLSNpZiBTWVNfaXBjX3N1YmNhbGwgIT0gMzE4Ci0gI2Vycm9yIGZpeCBtZQotI2VuZGlmCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMxOCAqLwotCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDMxOSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAzMjAgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMzIxICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMzIyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI4ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMyOSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMzAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMzMxICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMzMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzOCAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMzOSAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDM0MCAqLwotCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAzNDEgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzQyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc2gvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9zaC9lcnJub2VudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGIyYWRjLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zaC9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTI5ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRURFQURMSyIsIC8qIDM1ICovCi0JIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCi0JIkVOT0xDSyIsIC8qIDM3ICovCi0JIkVOT1NZUyIsIC8qIDM4ICovCi0JIkVOT1RFTVBUWSIsIC8qIDM5ICovCi0JIkVMT09QIiwgLyogNDAgKi8KLQkiRVJSTk9fNDEiLCAvKiA0MSAqLwotCSJFTk9NU0ciLCAvKiA0MiAqLwotCSJFSURSTSIsIC8qIDQzICovCi0JIkVDSFJORyIsIC8qIDQ0ICovCi0JIkVMMk5TWU5DIiwgLyogNDUgKi8KLQkiRUwzSExUIiwgLyogNDYgKi8KLQkiRUwzUlNUIiwgLyogNDcgKi8KLQkiRUxOUk5HIiwgLyogNDggKi8KLQkiRVVOQVRDSCIsIC8qIDQ5ICovCi0JIkVOT0NTSSIsIC8qIDUwICovCi0JIkVMMkhMVCIsIC8qIDUxICovCi0JIkVCQURFIiwgLyogNTIgKi8KLQkiRUJBRFIiLCAvKiA1MyAqLwotCSJFWEZVTEwiLCAvKiA1NCAqLwotCSJFTk9BTk8iLCAvKiA1NSAqLwotCSJFQkFEUlFDIiwgLyogNTYgKi8KLQkiRUJBRFNMVCIsIC8qIDU3ICovCi0JIkVSUk5PXzU4IiwgLyogNTggKi8KLQkiRUJGT05UIiwgLyogNTkgKi8KLQkiRU5PU1RSIiwgLyogNjAgKi8KLQkiRU5PREFUQSIsIC8qIDYxICovCi0JIkVUSU1FIiwgLyogNjIgKi8KLQkiRU5PU1IiLCAvKiA2MyAqLwotCSJFTk9ORVQiLCAvKiA2NCAqLwotCSJFTk9QS0ciLCAvKiA2NSAqLwotCSJFUkVNT1RFIiwgLyogNjYgKi8KLQkiRU5PTElOSyIsIC8qIDY3ICovCi0JIkVBRFYiLCAvKiA2OCAqLwotCSJFU1JNTlQiLCAvKiA2OSAqLwotCSJFQ09NTSIsIC8qIDcwICovCi0JIkVQUk9UTyIsIC8qIDcxICovCi0JIkVNVUxUSUhPUCIsIC8qIDcyICovCi0JIkVET1RET1QiLCAvKiA3MyAqLwotCSJFQkFETVNHIiwgLyogNzQgKi8KLQkiRU9WRVJGTE9XIiwgLyogNzUgKi8KLQkiRU5PVFVOSVEiLCAvKiA3NiAqLwotCSJFQkFERkQiLCAvKiA3NyAqLwotCSJFUkVNQ0hHIiwgLyogNzggKi8KLQkiRUxJQkFDQyIsIC8qIDc5ICovCi0JIkVMSUJCQUQiLCAvKiA4MCAqLwotCSJFTElCU0NOIiwgLyogODEgKi8KLQkiRUxJQk1BWCIsIC8qIDgyICovCi0JIkVMSUJFWEVDIiwgLyogODMgKi8KLQkiRUlMU0VRIiwgLyogODQgKi8KLQkiRVJFU1RBUlQiLCAvKiA4NSAqLwotCSJFU1RSUElQRSIsIC8qIDg2ICovCi0JIkVVU0VSUyIsIC8qIDg3ICovCi0JIkVOT1RTT0NLIiwgLyogODggKi8KLQkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KLQkiRU1TR1NJWkUiLCAvKiA5MCAqLwotCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KLQkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLwotCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLwotCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLwotCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KLQkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KLQkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KLQkiRUFERFJJTlVTRSIsIC8qIDk4ICovCi0JIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLwotCSJFTkVURE9XTiIsIC8qIDEwMCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLwotCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KLQkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCi0JIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KLQkiRU5PQlVGUyIsIC8qIDEwNSAqLwotCSJFSVNDT05OIiwgLyogMTA2ICovCi0JIkVOT1RDT05OIiwgLyogMTA3ICovCi0JIkVTSFVURE9XTiIsIC8qIDEwOCAqLwotCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KLQkiRVRJTUVET1VUIiwgLyogMTEwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLwotCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCi0JIkVBTFJFQURZIiwgLyogMTE0ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCi0JIkVTVEFMRSIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVEUVVPVCIsIC8qIDEyMiAqLwotCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KLQkiRVJSTk9fMTI1IiwgLyogMTI1ICovCi0JIkVSUk5PXzEyNiIsIC8qIDEyNiAqLwotCSJFUlJOT18xMjciLCAvKiAxMjcgKi8KLQkiRVJSTk9fMTI4IiwgLyogMTI4ICovCi0JIkVSUk5PXzEyOSIsIC8qIDEyOSAqLwotCSJFUlJOT18xMzAiLCAvKiAxMzAgKi8KLQkiRVJSTk9fMTMxIiwgLyogMTMxICovCi0JIkVSUk5PXzEzMiIsIC8qIDEzMiAqLwotCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KLQkiRVJSTk9fMTM0IiwgLyogMTM0ICovCi0JIkVSUk5PXzEzNSIsIC8qIDEzNSAqLwotCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KLQkiRVJSTk9fMTM3IiwgLyogMTM3ICovCi0JIkVSUk5PXzEzOCIsIC8qIDEzOCAqLwotCSJFUlJOT18xMzkiLCAvKiAxMzkgKi8KLQkiRVJSTk9fMTQwIiwgLyogMTQwICovCi0JIkVSUk5PXzE0MSIsIC8qIDE0MSAqLwotCSJFUlJOT18xNDIiLCAvKiAxNDIgKi8KLQkiRVJSTk9fMTQzIiwgLyogMTQzICovCi0JIkVSUk5PXzE0NCIsIC8qIDE0NCAqLwotCSJFUlJOT18xNDUiLCAvKiAxNDUgKi8KLQkiRVJSTk9fMTQ2IiwgLyogMTQ2ICovCi0JIkVSUk5PXzE0NyIsIC8qIDE0NyAqLwotCSJFUlJOT18xNDgiLCAvKiAxNDggKi8KLQkiRVJSTk9fMTQ5IiwgLyogMTQ5ICovCi0JIkVSUk5PXzE1MCIsIC8qIDE1MCAqLwotCSJFUlJOT18xNTEiLCAvKiAxNTEgKi8KLQkiRVJSTk9fMTUyIiwgLyogMTUyICovCi0JIkVSUk5PXzE1MyIsIC8qIDE1MyAqLwotCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KLQkiRVJSTk9fMTU1IiwgLyogMTU1ICovCi0JIkVSUk5PXzE1NiIsIC8qIDE1NiAqLwotCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KLQkiRVJSTk9fMTU4IiwgLyogMTU4ICovCi0JIkVSUk5PXzE1OSIsIC8qIDE1OSAqLwotCSJFUlJOT18xNjAiLCAvKiAxNjAgKi8KLQkiRVJSTk9fMTYxIiwgLyogMTYxICovCi0JIkVSUk5PXzE2MiIsIC8qIDE2MiAqLwotCSJFUlJOT18xNjMiLCAvKiAxNjMgKi8KLQkiRVJSTk9fMTY0IiwgLyogMTY0ICovCi0JIkVSUk5PXzE2NSIsIC8qIDE2NSAqLwotCSJFUlJOT18xNjYiLCAvKiAxNjYgKi8KLQkiRVJSTk9fMTY3IiwgLyogMTY3ICovCi0JIkVSUk5PXzE2OCIsIC8qIDE2OCAqLwotCSJFUlJOT18xNjkiLCAvKiAxNjkgKi8KLQkiRVJSTk9fMTcwIiwgLyogMTcwICovCi0JIkVSUk5PXzE3MSIsIC8qIDE3MSAqLwotCSJFUlJOT18xNzIiLCAvKiAxNzIgKi8KLQkiRVJSTk9fMTczIiwgLyogMTczICovCi0JIkVSUk5PXzE3NCIsIC8qIDE3NCAqLwotCSJFUlJOT18xNzUiLCAvKiAxNzUgKi8KLQkiRVJSTk9fMTc2IiwgLyogMTc2ICovCi0JIkVSUk5PXzE3NyIsIC8qIDE3NyAqLwotCSJFUlJOT18xNzgiLCAvKiAxNzggKi8KLQkiRVJSTk9fMTc5IiwgLyogMTc5ICovCi0JIkVSUk5PXzE4MCIsIC8qIDE4MCAqLwotCSJFUlJOT18xODEiLCAvKiAxODEgKi8KLQkiRVJSTk9fMTgyIiwgLyogMTgyICovCi0JIkVSUk5PXzE4MyIsIC8qIDE4MyAqLwotCSJFUlJOT18xODQiLCAvKiAxODQgKi8KLQkiRVJSTk9fMTg1IiwgLyogMTg1ICovCi0JIkVSUk5PXzE4NiIsIC8qIDE4NiAqLwotCSJFUlJOT18xODciLCAvKiAxODcgKi8KLQkiRVJSTk9fMTg4IiwgLyogMTg4ICovCi0JIkVSUk5PXzE4OSIsIC8qIDE4OSAqLwotCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KLQkiRVJSTk9fMTkxIiwgLyogMTkxICovCi0JIkVSUk5PXzE5MiIsIC8qIDE5MiAqLwotCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KLQkiRVJSTk9fMTk0IiwgLyogMTk0ICovCi0JIkVSUk5PXzE5NSIsIC8qIDE5NSAqLwotCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KLQkiRVJSTk9fMTk3IiwgLyogMTk3ICovCi0JIkVSUk5PXzE5OCIsIC8qIDE5OCAqLwotCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KLQkiRVJSTk9fMjAwIiwgLyogMjAwICovCi0JIkVSUk5PXzIwMSIsIC8qIDIwMSAqLwotCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KLQkiRVJSTk9fMjAzIiwgLyogMjAzICovCi0JIkVSUk5PXzIwNCIsIC8qIDIwNCAqLwotCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KLQkiRVJSTk9fMjA2IiwgLyogMjA2ICovCi0JIkVSUk5PXzIwNyIsIC8qIDIwNyAqLwotCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KLQkiRVJSTk9fMjA5IiwgLyogMjA5ICovCi0JIkVSUk5PXzIxMCIsIC8qIDIxMCAqLwotCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KLQkiRVJSTk9fMjEyIiwgLyogMjEyICovCi0JIkVSUk5PXzIxMyIsIC8qIDIxMyAqLwotCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KLQkiRVJSTk9fMjE1IiwgLyogMjE1ICovCi0JIkVSUk5PXzIxNiIsIC8qIDIxNiAqLwotCSJFUlJOT18yMTciLCAvKiAyMTcgKi8KLQkiRVJSTk9fMjE4IiwgLyogMjE4ICovCi0JIkVSUk5PXzIxOSIsIC8qIDIxOSAqLwotCSJFUlJOT18yMjAiLCAvKiAyMjAgKi8KLQkiRVJSTk9fMjIxIiwgLyogMjIxICovCi0JIkVSUk5PXzIyMiIsIC8qIDIyMiAqLwotCSJFUlJOT18yMjMiLCAvKiAyMjMgKi8KLQkiRVJSTk9fMjI0IiwgLyogMjI0ICovCi0JIkVSUk5PXzIyNSIsIC8qIDIyNSAqLwotCSJFUlJOT18yMjYiLCAvKiAyMjYgKi8KLQkiRVJSTk9fMjI3IiwgLyogMjI3ICovCi0JIkVSUk5PXzIyOCIsIC8qIDIyOCAqLwotCSJFUlJOT18yMjkiLCAvKiAyMjkgKi8KLQkiRVJSTk9fMjMwIiwgLyogMjMwICovCi0JIkVSUk5PXzIzMSIsIC8qIDIzMSAqLwotCSJFUlJOT18yMzIiLCAvKiAyMzIgKi8KLQkiRVJSTk9fMjMzIiwgLyogMjMzICovCi0JIkVSUk5PXzIzNCIsIC8qIDIzNCAqLwotCSJFUlJOT18yMzUiLCAvKiAyMzUgKi8KLQkiRVJSTk9fMjM2IiwgLyogMjM2ICovCi0JIkVSUk5PXzIzNyIsIC8qIDIzNyAqLwotCSJFUlJOT18yMzgiLCAvKiAyMzggKi8KLQkiRVJSTk9fMjM5IiwgLyogMjM5ICovCi0JIkVSUk5PXzI0MCIsIC8qIDI0MCAqLwotCSJFUlJOT18yNDEiLCAvKiAyNDEgKi8KLQkiRVJSTk9fMjQyIiwgLyogMjQyICovCi0JIkVSUk5PXzI0MyIsIC8qIDI0MyAqLwotCSJFUlJOT18yNDQiLCAvKiAyNDQgKi8KLQkiRVJSTk9fMjQ1IiwgLyogMjQ1ICovCi0JIkVSUk5PXzI0NiIsIC8qIDI0NiAqLwotCSJFUlJOT18yNDciLCAvKiAyNDcgKi8KLQkiRVJSTk9fMjQ4IiwgLyogMjQ4ICovCi0JIkVSUk5PXzI0OSIsIC8qIDI0OSAqLwotCSJFUlJOT18yNTAiLCAvKiAyNTAgKi8KLQkiRVJSTk9fMjUxIiwgLyogMjUxICovCi0JIkVSUk5PXzI1MiIsIC8qIDI1MiAqLwotCSJFUlJOT18yNTMiLCAvKiAyNTMgKi8KLQkiRVJSTk9fMjU0IiwgLyogMjU0ICovCi0JIkVSUk5PXzI1NSIsIC8qIDI1NSAqLwotCSJFUlJOT18yNTYiLCAvKiAyNTYgKi8KLQkiRVJSTk9fMjU3IiwgLyogMjU3ICovCi0JIkVSUk5PXzI1OCIsIC8qIDI1OCAqLwotCSJFUlJOT18yNTkiLCAvKiAyNTkgKi8KLQkiRVJSTk9fMjYwIiwgLyogMjYwICovCi0JIkVSUk5PXzI2MSIsIC8qIDI2MSAqLwotCSJFUlJOT18yNjIiLCAvKiAyNjIgKi8KLQkiRVJSTk9fMjYzIiwgLyogMjYzICovCi0JIkVSUk5PXzI2NCIsIC8qIDI2NCAqLwotCSJFUlJOT18yNjUiLCAvKiAyNjUgKi8KLQkiRVJSTk9fMjY2IiwgLyogMjY2ICovCi0JIkVSUk5PXzI2NyIsIC8qIDI2NyAqLwotCSJFUlJOT18yNjgiLCAvKiAyNjggKi8KLQkiRVJSTk9fMjY5IiwgLyogMjY5ICovCi0JIkVSUk5PXzI3MCIsIC8qIDI3MCAqLwotCSJFUlJOT18yNzEiLCAvKiAyNzEgKi8KLQkiRVJSTk9fMjcyIiwgLyogMjcyICovCi0JIkVSUk5PXzI3MyIsIC8qIDI3MyAqLwotCSJFUlJOT18yNzQiLCAvKiAyNzQgKi8KLQkiRVJSTk9fMjc1IiwgLyogMjc1ICovCi0JIkVSUk5PXzI3NiIsIC8qIDI3NiAqLwotCSJFUlJOT18yNzciLCAvKiAyNzcgKi8KLQkiRVJSTk9fMjc4IiwgLyogMjc4ICovCi0JIkVSUk5PXzI3OSIsIC8qIDI3OSAqLwotCSJFUlJOT18yODAiLCAvKiAyODAgKi8KLQkiRVJSTk9fMjgxIiwgLyogMjgxICovCi0JIkVSUk5PXzI4MiIsIC8qIDI4MiAqLwotCSJFUlJOT18yODMiLCAvKiAyODMgKi8KLQkiRVJSTk9fMjg0IiwgLyogMjg0ICovCi0JIkVSUk5PXzI4NSIsIC8qIDI4NSAqLwotCSJFUlJOT18yODYiLCAvKiAyODYgKi8KLQkiRVJSTk9fMjg3IiwgLyogMjg3ICovCi0JIkVSUk5PXzI4OCIsIC8qIDI4OCAqLwotCSJFUlJOT18yODkiLCAvKiAyODkgKi8KLQkiRVJSTk9fMjkwIiwgLyogMjkwICovCi0JIkVSUk5PXzI5MSIsIC8qIDI5MSAqLwotCSJFUlJOT18yOTIiLCAvKiAyOTIgKi8KLQkiRVJSTk9fMjkzIiwgLyogMjkzICovCi0JIkVSUk5PXzI5NCIsIC8qIDI5NCAqLwotCSJFUlJOT18yOTUiLCAvKiAyOTUgKi8KLQkiRVJSTk9fMjk2IiwgLyogMjk2ICovCi0JIkVSUk5PXzI5NyIsIC8qIDI5NyAqLwotCSJFUlJOT18yOTgiLCAvKiAyOTggKi8KLQkiRVJSTk9fMjk5IiwgLyogMjk5ICovCi0JIkVSUk5PXzMwMCIsIC8qIDMwMCAqLwotCSJFUlJOT18zMDEiLCAvKiAzMDEgKi8KLQkiRVJSTk9fMzAyIiwgLyogMzAyICovCi0JIkVSUk5PXzMwMyIsIC8qIDMwMyAqLwotCSJFUlJOT18zMDQiLCAvKiAzMDQgKi8KLQkiRVJSTk9fMzA1IiwgLyogMzA1ICovCi0JIkVSUk5PXzMwNiIsIC8qIDMwNiAqLwotCSJFUlJOT18zMDciLCAvKiAzMDcgKi8KLQkiRVJSTk9fMzA4IiwgLyogMzA4ICovCi0JIkVSUk5PXzMwOSIsIC8qIDMwOSAqLwotCSJFUlJOT18zMTAiLCAvKiAzMTAgKi8KLQkiRVJSTk9fMzExIiwgLyogMzExICovCi0JIkVSUk5PXzMxMiIsIC8qIDMxMiAqLwotCSJFUlJOT18zMTMiLCAvKiAzMTMgKi8KLQkiRVJSTk9fMzE0IiwgLyogMzE0ICovCi0JIkVSUk5PXzMxNSIsIC8qIDMxNSAqLwotCSJFUlJOT18zMTYiLCAvKiAzMTYgKi8KLQkiRVJSTk9fMzE3IiwgLyogMzE3ICovCi0JIkVSUk5PXzMxOCIsIC8qIDMxOCAqLwotCSJFUlJOT18zMTkiLCAvKiAzMTkgKi8KLQkiRVJSTk9fMzIwIiwgLyogMzIwICovCi0JIkVSUk5PXzMyMSIsIC8qIDMyMSAqLwotCSJFUlJOT18zMjIiLCAvKiAzMjIgKi8KLQkiRVJSTk9fMzIzIiwgLyogMzIzICovCi0JIkVSUk5PXzMyNCIsIC8qIDMyNCAqLwotCSJFUlJOT18zMjUiLCAvKiAzMjUgKi8KLQkiRVJSTk9fMzI2IiwgLyogMzI2ICovCi0JIkVSUk5PXzMyNyIsIC8qIDMyNyAqLwotCSJFUlJOT18zMjgiLCAvKiAzMjggKi8KLQkiRVJSTk9fMzI5IiwgLyogMzI5ICovCi0JIkVSUk5PXzMzMCIsIC8qIDMzMCAqLwotCSJFUlJOT18zMzEiLCAvKiAzMzEgKi8KLQkiRVJSTk9fMzMyIiwgLyogMzMyICovCi0JIkVSUk5PXzMzMyIsIC8qIDMzMyAqLwotCSJFUlJOT18zMzQiLCAvKiAzMzQgKi8KLQkiRVJSTk9fMzM1IiwgLyogMzM1ICovCi0JIkVSUk5PXzMzNiIsIC8qIDMzNiAqLwotCSJFUlJOT18zMzciLCAvKiAzMzcgKi8KLQkiRVJSTk9fMzM4IiwgLyogMzM4ICovCi0JIkVSUk5PXzMzOSIsIC8qIDMzOSAqLwotCSJFUlJOT18zNDAiLCAvKiAzNDAgKi8KLQkiRVJSTk9fMzQxIiwgLyogMzQxICovCi0JIkVSUk5PXzM0MiIsIC8qIDM0MiAqLwotCSJFUlJOT18zNDMiLCAvKiAzNDMgKi8KLQkiRVJSTk9fMzQ0IiwgLyogMzQ0ICovCi0JIkVSUk5PXzM0NSIsIC8qIDM0NSAqLwotCSJFUlJOT18zNDYiLCAvKiAzNDYgKi8KLQkiRVJSTk9fMzQ3IiwgLyogMzQ3ICovCi0JIkVSUk5PXzM0OCIsIC8qIDM0OCAqLwotCSJFUlJOT18zNDkiLCAvKiAzNDkgKi8KLQkiRVJSTk9fMzUwIiwgLyogMzUwICovCi0JIkVSUk5PXzM1MSIsIC8qIDM1MSAqLwotCSJFUlJOT18zNTIiLCAvKiAzNTIgKi8KLQkiRVJSTk9fMzUzIiwgLyogMzUzICovCi0JIkVSUk5PXzM1NCIsIC8qIDM1NCAqLwotCSJFUlJOT18zNTUiLCAvKiAzNTUgKi8KLQkiRVJSTk9fMzU2IiwgLyogMzU2ICovCi0JIkVSUk5PXzM1NyIsIC8qIDM1NyAqLwotCSJFUlJOT18zNTgiLCAvKiAzNTggKi8KLQkiRVJSTk9fMzU5IiwgLyogMzU5ICovCi0JIkVSUk5PXzM2MCIsIC8qIDM2MCAqLwotCSJFUlJOT18zNjEiLCAvKiAzNjEgKi8KLQkiRVJSTk9fMzYyIiwgLyogMzYyICovCi0JIkVSUk5PXzM2MyIsIC8qIDM2MyAqLwotCSJFUlJOT18zNjQiLCAvKiAzNjQgKi8KLQkiRVJSTk9fMzY1IiwgLyogMzY1ICovCi0JIkVSUk5PXzM2NiIsIC8qIDM2NiAqLwotCSJFUlJOT18zNjciLCAvKiAzNjcgKi8KLQkiRVJSTk9fMzY4IiwgLyogMzY4ICovCi0JIkVSUk5PXzM2OSIsIC8qIDM2OSAqLwotCSJFUlJOT18zNzAiLCAvKiAzNzAgKi8KLQkiRVJSTk9fMzcxIiwgLyogMzcxICovCi0JIkVSUk5PXzM3MiIsIC8qIDM3MiAqLwotCSJFUlJOT18zNzMiLCAvKiAzNzMgKi8KLQkiRVJSTk9fMzc0IiwgLyogMzc0ICovCi0JIkVSUk5PXzM3NSIsIC8qIDM3NSAqLwotCSJFUlJOT18zNzYiLCAvKiAzNzYgKi8KLQkiRVJSTk9fMzc3IiwgLyogMzc3ICovCi0JIkVSUk5PXzM3OCIsIC8qIDM3OCAqLwotCSJFUlJOT18zNzkiLCAvKiAzNzkgKi8KLQkiRVJSTk9fMzgwIiwgLyogMzgwICovCi0JIkVSUk5PXzM4MSIsIC8qIDM4MSAqLwotCSJFUlJOT18zODIiLCAvKiAzODIgKi8KLQkiRVJSTk9fMzgzIiwgLyogMzgzICovCi0JIkVSUk5PXzM4NCIsIC8qIDM4NCAqLwotCSJFUlJOT18zODUiLCAvKiAzODUgKi8KLQkiRVJSTk9fMzg2IiwgLyogMzg2ICovCi0JIkVSUk5PXzM4NyIsIC8qIDM4NyAqLwotCSJFUlJOT18zODgiLCAvKiAzODggKi8KLQkiRVJSTk9fMzg5IiwgLyogMzg5ICovCi0JIkVSUk5PXzM5MCIsIC8qIDM5MCAqLwotCSJFUlJOT18zOTEiLCAvKiAzOTEgKi8KLQkiRVJSTk9fMzkyIiwgLyogMzkyICovCi0JIkVSUk5PXzM5MyIsIC8qIDM5MyAqLwotCSJFUlJOT18zOTQiLCAvKiAzOTQgKi8KLQkiRVJSTk9fMzk1IiwgLyogMzk1ICovCi0JIkVSUk5PXzM5NiIsIC8qIDM5NiAqLwotCSJFUlJOT18zOTciLCAvKiAzOTcgKi8KLQkiRVJSTk9fMzk4IiwgLyogMzk4ICovCi0JIkVSUk5PXzM5OSIsIC8qIDM5OSAqLwotCSJFUlJOT180MDAiLCAvKiA0MDAgKi8KLQkiRVJSTk9fNDAxIiwgLyogNDAxICovCi0JIkVSUk5PXzQwMiIsIC8qIDQwMiAqLwotCSJFUlJOT180MDMiLCAvKiA0MDMgKi8KLQkiRVJSTk9fNDA0IiwgLyogNDA0ICovCi0JIkVSUk5PXzQwNSIsIC8qIDQwNSAqLwotCSJFUlJOT180MDYiLCAvKiA0MDYgKi8KLQkiRVJSTk9fNDA3IiwgLyogNDA3ICovCi0JIkVSUk5PXzQwOCIsIC8qIDQwOCAqLwotCSJFUlJOT180MDkiLCAvKiA0MDkgKi8KLQkiRVJSTk9fNDEwIiwgLyogNDEwICovCi0JIkVSUk5PXzQxMSIsIC8qIDQxMSAqLwotCSJFUlJOT180MTIiLCAvKiA0MTIgKi8KLQkiRVJSTk9fNDEzIiwgLyogNDEzICovCi0JIkVSUk5PXzQxNCIsIC8qIDQxNCAqLwotCSJFUlJOT180MTUiLCAvKiA0MTUgKi8KLQkiRVJSTk9fNDE2IiwgLyogNDE2ICovCi0JIkVSUk5PXzQxNyIsIC8qIDQxNyAqLwotCSJFUlJOT180MTgiLCAvKiA0MTggKi8KLQkiRVJSTk9fNDE5IiwgLyogNDE5ICovCi0JIkVSUk5PXzQyMCIsIC8qIDQyMCAqLwotCSJFUlJOT180MjEiLCAvKiA0MjEgKi8KLQkiRVJSTk9fNDIyIiwgLyogNDIyICovCi0JIkVSUk5PXzQyMyIsIC8qIDQyMyAqLwotCSJFUlJOT180MjQiLCAvKiA0MjQgKi8KLQkiRVJSTk9fNDI1IiwgLyogNDI1ICovCi0JIkVSUk5PXzQyNiIsIC8qIDQyNiAqLwotCSJFUlJOT180MjciLCAvKiA0MjcgKi8KLQkiRVJSTk9fNDI4IiwgLyogNDI4ICovCi0JIkVSUk5PXzQyOSIsIC8qIDQyOSAqLwotCSJFUlJOT180MzAiLCAvKiA0MzAgKi8KLQkiRVJSTk9fNDMxIiwgLyogNDMxICovCi0JIkVSUk5PXzQzMiIsIC8qIDQzMiAqLwotCSJFUlJOT180MzMiLCAvKiA0MzMgKi8KLQkiRVJSTk9fNDM0IiwgLyogNDM0ICovCi0JIkVSUk5PXzQzNSIsIC8qIDQzNSAqLwotCSJFUlJOT180MzYiLCAvKiA0MzYgKi8KLQkiRVJSTk9fNDM3IiwgLyogNDM3ICovCi0JIkVSUk5PXzQzOCIsIC8qIDQzOCAqLwotCSJFUlJOT180MzkiLCAvKiA0MzkgKi8KLQkiRVJSTk9fNDQwIiwgLyogNDQwICovCi0JIkVSUk5PXzQ0MSIsIC8qIDQ0MSAqLwotCSJFUlJOT180NDIiLCAvKiA0NDIgKi8KLQkiRVJSTk9fNDQzIiwgLyogNDQzICovCi0JIkVSUk5PXzQ0NCIsIC8qIDQ0NCAqLwotCSJFUlJOT180NDUiLCAvKiA0NDUgKi8KLQkiRVJSTk9fNDQ2IiwgLyogNDQ2ICovCi0JIkVSUk5PXzQ0NyIsIC8qIDQ0NyAqLwotCSJFUlJOT180NDgiLCAvKiA0NDggKi8KLQkiRVJSTk9fNDQ5IiwgLyogNDQ5ICovCi0JIkVSUk5PXzQ1MCIsIC8qIDQ1MCAqLwotCSJFUlJOT180NTEiLCAvKiA0NTEgKi8KLQkiRVJSTk9fNDUyIiwgLyogNDUyICovCi0JIkVSUk5PXzQ1MyIsIC8qIDQ1MyAqLwotCSJFUlJOT180NTQiLCAvKiA0NTQgKi8KLQkiRVJSTk9fNDU1IiwgLyogNDU1ICovCi0JIkVSUk5PXzQ1NiIsIC8qIDQ1NiAqLwotCSJFUlJOT180NTciLCAvKiA0NTcgKi8KLQkiRVJSTk9fNDU4IiwgLyogNDU4ICovCi0JIkVSUk5PXzQ1OSIsIC8qIDQ1OSAqLwotCSJFUlJOT180NjAiLCAvKiA0NjAgKi8KLQkiRVJSTk9fNDYxIiwgLyogNDYxICovCi0JIkVSUk5PXzQ2MiIsIC8qIDQ2MiAqLwotCSJFUlJOT180NjMiLCAvKiA0NjMgKi8KLQkiRVJSTk9fNDY0IiwgLyogNDY0ICovCi0JIkVSUk5PXzQ2NSIsIC8qIDQ2NSAqLwotCSJFUlJOT180NjYiLCAvKiA0NjYgKi8KLQkiRVJSTk9fNDY3IiwgLyogNDY3ICovCi0JIkVSUk5PXzQ2OCIsIC8qIDQ2OCAqLwotCSJFUlJOT180NjkiLCAvKiA0NjkgKi8KLQkiRVJSTk9fNDcwIiwgLyogNDcwICovCi0JIkVSUk5PXzQ3MSIsIC8qIDQ3MSAqLwotCSJFUlJOT180NzIiLCAvKiA0NzIgKi8KLQkiRVJSTk9fNDczIiwgLyogNDczICovCi0JIkVSUk5PXzQ3NCIsIC8qIDQ3NCAqLwotCSJFUlJOT180NzUiLCAvKiA0NzUgKi8KLQkiRVJSTk9fNDc2IiwgLyogNDc2ICovCi0JIkVSUk5PXzQ3NyIsIC8qIDQ3NyAqLwotCSJFUlJOT180NzgiLCAvKiA0NzggKi8KLQkiRVJSTk9fNDc5IiwgLyogNDc5ICovCi0JIkVSUk5PXzQ4MCIsIC8qIDQ4MCAqLwotCSJFUlJOT180ODEiLCAvKiA0ODEgKi8KLQkiRVJSTk9fNDgyIiwgLyogNDgyICovCi0JIkVSUk5PXzQ4MyIsIC8qIDQ4MyAqLwotCSJFUlJOT180ODQiLCAvKiA0ODQgKi8KLQkiRVJSTk9fNDg1IiwgLyogNDg1ICovCi0JIkVSUk5PXzQ4NiIsIC8qIDQ4NiAqLwotCSJFUlJOT180ODciLCAvKiA0ODcgKi8KLQkiRVJSTk9fNDg4IiwgLyogNDg4ICovCi0JIkVSUk5PXzQ4OSIsIC8qIDQ4OSAqLwotCSJFUlJOT180OTAiLCAvKiA0OTAgKi8KLQkiRVJSTk9fNDkxIiwgLyogNDkxICovCi0JIkVSUk5PXzQ5MiIsIC8qIDQ5MiAqLwotCSJFUlJOT180OTMiLCAvKiA0OTMgKi8KLQkiRVJSTk9fNDk0IiwgLyogNDk0ICovCi0JIkVSUk5PXzQ5NSIsIC8qIDQ5NSAqLwotCSJFUlJOT180OTYiLCAvKiA0OTYgKi8KLQkiRVJSTk9fNDk3IiwgLyogNDk3ICovCi0JIkVSUk5PXzQ5OCIsIC8qIDQ5OCAqLwotCSJFUlJOT180OTkiLCAvKiA0OTkgKi8KLQkiRVJSTk9fNTAwIiwgLyogNTAwICovCi0JIkVSUk5PXzUwMSIsIC8qIDUwMSAqLwotCSJFUlJOT181MDIiLCAvKiA1MDIgKi8KLQkiRVJSTk9fNTAzIiwgLyogNTAzICovCi0JIkVSUk5PXzUwNCIsIC8qIDUwNCAqLwotCSJFUlJOT181MDUiLCAvKiA1MDUgKi8KLQkiRVJSTk9fNTA2IiwgLyogNTA2ICovCi0JIkVSUk5PXzUwNyIsIC8qIDUwNyAqLwotCSJFUlJOT181MDgiLCAvKiA1MDggKi8KLQkiRVJSTk9fNTA5IiwgLyogNTA5ICovCi0JIkVSUk5PXzUxMCIsIC8qIDUxMCAqLwotCSJFUlJOT181MTEiLCAvKiA1MTEgKi8KLQkiRVJFU1RBUlRTWVMiLCAvKiA1MTIgKi8KLQkiRVJFU1RBUlROT0lOVFIiLCAvKiA1MTMgKi8KLQkiRVJFU1RBUlROT0hBTkQiLCAvKiA1MTQgKi8KLQkiRU5PSU9DVExDTUQiLCAvKiA1MTUgKi8KLQkiRVJSTk9fNTE2IiwgLyogNTE2ICovCi0JIkVSUk5PXzUxNyIsIC8qIDUxNyAqLwotCSJFUlJOT181MTgiLCAvKiA1MTggKi8KLQkiRVJSTk9fNTE5IiwgLyogNTE5ICovCi0JIkVSUk5PXzUyMCIsIC8qIDUyMCAqLwotCSJFQkFESEFORExFIiwgLyogNTIxICovCi0JIkVOT1RTWU5DIiwgLyogNTIyICovCi0JIkVCQURDT09LSUUiLCAvKiA1MjMgKi8KLQkiRU5PVFNVUFAiLCAvKiA1MjQgKi8KLQkiRVRPT1NNQUxMIiwgLyogNTI1ICovCi0JIkVTRVJWRVJGQVVMVCIsIC8qIDUyNiAqLwotCSJFQkFEVFlQRSIsIC8qIDUyNyAqLwotCSJFSlVLRUJPWCIsIC8qIDUyOCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvc2gvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWY4YmM3Yi4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc2gvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgzNiArMCwwIEBACi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKLQl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKLQl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCi0JeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCi0JeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCi0JeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKLQl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDY2N2J9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDY2N2N9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg2NjdkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg2NjdlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NjY3Zn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAotCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCi0JeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAotCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKLQl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NBVE1BUksiLAkweDczMDd9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DU1BHUlAiLAkweDczMDh9LAotCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1BHUlAiLAkweDczMDl9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHU1RBTVAiLAkweDczNjR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NzQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg3NDE4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg3NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg3NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDc0MWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NzQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg3NDFmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NzQ2N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NzQ2OH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUQVJUIiwJMHg3NDZlfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RPUCIsCTB4NzQ2Zn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDc0NzN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NzQ3Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg3NDc3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKLQl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAotCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAotCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAotCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc2gvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvc2gvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMmY3NDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NoL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHQlVTIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR1VTUjEiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHVVNSMiIsCS8qIDEyICovCi0JIlNJR1BJUEUiLAkvKiAxMyAqLwotCSJTSUdBTFJNIiwJLyogMTQgKi8KLQkiU0lHVEVSTSIsCS8qIDE1ICovCi0JIlNJR1NUS0ZMVCIsCS8qIDE2ICovCi0JIlNJR0NITEQiLAkvKiAxNyAqLwotCSJTSUdDT05UIiwJLyogMTggKi8KLQkiU0lHU1RPUCIsCS8qIDE5ICovCi0JIlNJR1RTVFAiLAkvKiAyMCAqLwotCSJTSUdUVElOIiwJLyogMjEgKi8KLQkiU0lHVFRPVSIsCS8qIDIyICovCi0JIlNJR1VSRyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHSU8iLAkvKiAyOSAqLwotCSJTSUdQV1IiLAkvKiAzMCAqLwotCSJTSUdTWVMiLAkvKiAzMSAqLwotCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc2gvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NoL3N5c2NhbGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI2M2Y3NS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc2gvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIENvcHlyaWdodCAoYykgMjAwMCBQb2NrZXRQZW5ndWlucyBJbmMuICBMaW51eCBmb3IgSGl0YWNoaSBTdXBlckgKLSAqICAgICAgICAgICAgICAgICAgICBwb3J0IGJ5IEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjQgMjAwMy8xMS8xMyAyMjozMjoyOCByb2xhbmQgRXhwICQKLSAqLwotCi0JeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sIC8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgl9LCAvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgkJfSwgLyogMTYgKi8KLQl7IDAsCTAsCXN5c19icmVhaywJCSJicmVhayIJCX0sIC8qIDE3ICovCi0JeyAyLAlURiwJc3lzX29sZHN0YXQsCQkib2xkc3RhdCIJfSwgLyogMTggKi8KLQl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogMjAgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLwotCXsgMSwJVEYsCXN5c191bW91bnQsCQkib2xkdW1vdW50Igl9LCAvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDIzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KLQl7IDEsCTAsCXN5c19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDI1ICovCi0JeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCi0JeyAyLAkwLAlzeXNfb2xkZnN0YXQsCQkib2xkZnN0YXQiCX0sIC8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLwotCXsgMiwJMCwJc3lzX3N0dHksCQkic3R0eSIJCX0sIC8qIDMxICovCi0JeyAyLAkwLAlzeXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLwotCXsgMCwJMCwJc3lzX2Z0aW1lLAkJImZ0aW1lIgkJfSwgLyogMzUgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiAzOCAqLwotCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCX0sIC8qIDM5ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDAgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNDEgKi8KLQl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KLQl7IDAsCTAsCXN5c19wcm9mLAkJInByb2YiCQl9LCAvKiA0NCAqLwotCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0NSAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDQ2ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDQ5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiA1MCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNTIgKi8KLQl7IDAsCTAsCXN5c19sb2NrLAkJImxvY2siCQl9LCAvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bCIJCX0sIC8qIDU1ICovCi0JeyAwLAkwLAlzeXNfbXB4LAkJIm1weCIJCX0sIC8qIDU2ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiA1NyAqLwotCXsgMiwJMCwJc3lzX3VsaW1pdCwJCSJ1bGltaXQiCX0sIC8qIDU4ICovCi0JeyAxLAkwLAlzeXNfb2xkb2xkdW5hbWUsCSJvbGRvbGR1bmFtZSIJfSwgLyogNTkgKi8KLQl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiA2MiAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiA2NCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNjUgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiA2NiAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgl9LCAvKiA2NyAqLwotCXsgMCwJVFMsCXN5c19zaWdnZXRtYXNrLAkJInNpZ2dldG1hc2siCX0sIC8qIDY4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3NldG1hc2ssCQkic2lnc2V0bWFzayIJfSwgLyogNjkgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNzAgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogNzEgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA3MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDczICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNzQgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA3NSAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KLQl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0Igl9LCAvKiA4MiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCi0JeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA4NCAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogODkgKi8KLQl7IDYsCTAsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIgICAJfSwgLyogOTAgKi8KLQl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA5MyAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDk0ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCi0JeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sIC8qIDEwMCAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDEwMSAqLwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJfSwgLyogMTAyICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgLyogMTA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogMTA1ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEwNiAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEwNyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTA4ICovCi0JeyAxLAkwLAlzeXNfb2xkdW5hbWUsCQkib2xkdW5hbWUiCX0sIC8qIDEwOSAqLwotCXsgMSwJMCwJc3lzX2lvcGwsCQkiaW9wbCIJCX0sIC8qIDExMCAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCi0JeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCi0JeyAxLAkwLAlzeXNfdm04Nm9sZCwJCSJ2bTg2b2xkIgl9LCAvKiAxMTMgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiAxMTQgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCi0JeyA1LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDEyMCAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLwotCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgLyogMTIzICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sIC8qIDEyNCAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDEyNyAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiAxMjkgKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTMwICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogMTMyICovCi0JeyAxLAkwLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxNDUgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCi0JeyAxLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KLQl7IDEsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLwotCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLwotCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLwotCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sIC8qIDE3NCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCi0KLQl7IDYsCVRGLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxODAgKi8KLQl7IDYsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTgxICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTgyICovCi0JeyAyLAkwLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OCIJfSwgLyogMTg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OSIJfSwgLyogMTg5ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkJInZmb3JrIgkJfSwgLyogMTkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiZ2V0cmxpbWl0Igl9LCAvKiAxOTEgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAyIgkJfSwgLyogMTkyICovCi0JeyA1LAkwLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiAxOTMgKi8KLQl7IDUsCTAsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCi0vKlRPRE8qL3sgMywJVEYsCXByaW50YXJncywJCSJsY2hvd24zMiIJfSwgLyogMTk4ICovCi0vKlRPRE8qL3sgMCwJMCwJcHJpbnRhcmdzLAkJImdldHVpZDMyIgl9LCAvKiAxOTkgKi8KLQotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGdpZDMyIgl9LCAvKiAyMDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXRldWlkMzIiCX0sIC8qIDIwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGVnaWQzMiIJfSwgLyogMjAyICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0cmV1aWQzMiIJfSwgLyogMjAzICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0cmVnaWQzMiIJfSwgLyogMjA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzMzIsCSJnZXRncm91cHMzMiIJfSwgLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzMzIsCSJzZXRncm91cHMzMiIJfSwgLyogMjA2ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkiZmNob3duMzIiCX0sIC8qIDIwNyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXN1aWQzMiIJfSwgLyogMjA5ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkic2V0cmVzZ2lkMzIiCX0sIC8qIDIxMCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldHNldGdpZDMyIgl9LCAvKiAyMTEgKi8KLQl7IDMsCVRGLAlwcmludGFyZ3MsCQkiY2hvd24zMiIJfSwgLyogMjEyICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0dWlkMzIiCX0sIC8qIDIxMyAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGdpZDMyIgl9LCAvKiAyMTQgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRmc3VpZDMyIgl9LCAvKiAyMTUgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRmc2dpZDMyIgl9LCAvKiAyMTYgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxNyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm1pbmNvcmUiCX0sIC8qIDIxOCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgLyogMjE5ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMyIJfSwgLyogMjIzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNCIJfSwgLyogMjI0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNSIJfSwgLyogMjI1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNiIJfSwgLyogMjI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNyIJfSwgLyogMjI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOCIJfSwgLyogMjI4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOSIJfSwgLyogMjI5ICovCi0KLQl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAyMzAgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMjMxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDIzMiAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDIzMyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAyMzQgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMjM1ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDIzNiAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAyMzcgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAyMzggKi8KLQl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMjM5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDI0MCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAyNDEgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDI0MiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMjQzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMjQ0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMjQ1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMjQ2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMjQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OCIJfSwgLyogMjQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJfSwgLyogMjQ5ICovCi0KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjUwICovCi0JeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJfSwgLyogMjUxICovCi0JeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDI1MiAqLwotCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAyNTMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjU0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1NSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjU3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1OCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTkgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjYwICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDI2MSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAyNjIgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMjYzICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDI2NCAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNjUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjY2ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI2NyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNjggKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjY5ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI3MCAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDI3MSAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDI3MiAqLwotCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAyNzMgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMjc0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NSIJfSwgLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJfSwgLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJfSwgLyogMjc3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OCIJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJfSwgLyogMjc5ICovCi0KLQl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAyODAgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMjgxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDI4MiAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDI4MyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAyODQgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMjg1ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDI4NiAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAyODcgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAyODggKi8KLQl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMjg5ICovCi0JeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDI5MCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAyOTEgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDI5MiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMjkzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMjk0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMjk1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMjk2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc2g2NC9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvc2g2NC9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3MDFkYTAuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NoNjQvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMiAyMDAzLzExLzEzIDIyOjMyOjI4IHJvbGFuZCBFeHAgJAotICovCi0KLQl7IDAsCTAsCXN5c19zZXR1cCwJCSJzZXR1cCIJCX0sIC8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJfZXhpdCIJCX0sIC8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLwotCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLwotCXsgMywJVFAsCXN5c193YWl0cGlkLAkJIndhaXRwaWQiCX0sIC8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE2ICovCi0JeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiAxNyAqLwotCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDE4ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDI0ICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLwotCXsgMiwJMCwJc3lzX29sZGZzdGF0LAkJIm9sZGZzdGF0Igl9LCAvKiAyOCAqLwotCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KLQl7IDIsCTAsCXN5c19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLwotCXsgMiwJMCwJc3lzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KLQl7IDAsCTAsCXN5c19mdGltZSwJCSJmdGltZSIJCX0sIC8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyAwLAkwLAlzeXNfcHJvZiwJCSJwcm9mIgkJfSwgLyogNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgl9LCAvKiA0NiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDUyICovCi0JeyAwLAkwLAlzeXNfbG9jaywJCSJsb2NrIgkJfSwgLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA1NSAqLwotCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KLQl7IDIsCTAsCXN5c191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA1OCAqLwotCXsgMSwJMCwJc3lzX29sZG9sZHVuYW1lLAkib2xkb2xkdW5hbWUiCX0sIC8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNjYgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJfSwgLyogNjcgKi8KLQl7IDAsCVRTLAlzeXNfc2lnZ2V0bWFzaywJCSJzaWdnZXRtYXNrIgl9LCAvKiA2OCAqLwotCXsgMSwJVFMsCXN5c19zaWdzZXRtYXNrLAkJInNpZ3NldG1hc2siCX0sIC8qIDY5ICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQiCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDcxICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJfSwgLyogNzIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgl9LCAvKiA3MyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogNzUgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAvKiA3NiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCX0sIC8qIDc3ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiA3OCAqLwotCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwJInNldHRpbWVvZmRheSIJfSwgLyogNzkgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgl9LCAvKiA4MCAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sIC8qIDgxICovCi0JeyAxLAkwLAlzeXNfb2xkc2VsZWN0LAkJIm9sZHNlbGVjdCIJfSwgLyogODIgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA4MyAqLwotCXsgMiwJVEYsCXN5c19vbGRsc3RhdCwJCSJvbGRsc3RhdCIJfSwgLyogODQgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sIC8qIDg1ICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDg2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDg3ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkJInJlYm9vdCIJfSwgLyogODggKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkJInJlYWRkaXIiCX0sIC8qIDg5ICovCi0JeyA2LAkwLAlzeXNfb2xkX21tYXAsCQkib2xkX21tYXAiCX0sIC8qIDkwICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogOTEgKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCX0sIC8qIDkyICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogOTMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5NCAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogOTYgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA5NyAqLwotCXsgNCwJMCwJc3lzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDk4ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiAxMDAgKi8KLQl7IDMsCTAsCXN5c19pb3Blcm0sCQkiaW9wZXJtIgl9LCAvKiAxMDEgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiCX0sIC8qIDEwMiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLwotCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KLQl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLwotCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTMiCX0sIC8qIDExMyAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sIC8qIDExNCAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogMTE1ICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiAxMTYgKi8KLQl7IDUsCTAsCXN5c19pcGMsCQkiaXBjIgkJfSwgLyogMTE3ICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMTggKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJfSwgLyogMTE5ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJfSwgLyogMTIwICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMyIJfSwgLyogMTIzICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sIC8qIDEyNCAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiAxMjUgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDEyNyAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDEyOCAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiAxMjkgKi8KLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTMwICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDEzMSAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogMTMyICovCi0JeyAxLAkwLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDEzNSAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxNDUgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCi0JeyAxLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KLQl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLwotCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjYiCX0sIC8qIDE2NiAqLwotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTY3ICovCi0JeyAzLAkwLAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogMTY4ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogMTY5ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMTcwICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMTcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KLQl7IDEsCVRTLAlwcmludGFyZ3MsCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgLyogMTc0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KLQl7IDUsCVRGLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxODAgKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTgxICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTgyICovCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLwotCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgiCX0sIC8qIDE4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkiCX0sIC8qIDE4OSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDE5MCAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLwotCXsgMiwJVEYsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93bjMyIgl9LCAvKiAxOTggKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkMzIiCX0sIC8qIDE5OSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGdpZDMyIgl9LCAvKiAyMDAgKi8KLQl7IDAsCTAsCXByaW50YXJncywJCSJnZXRldWlkMzIiCX0sIC8qIDIwMSAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGVnaWQzMiIJfSwgLyogMjAyICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0cmV1aWQzMiIJfSwgLyogMjAzICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0cmVnaWQzMiIJfSwgLyogMjA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzMzIsCSJnZXRncm91cHMzMiIJfSwgLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzMzIsCSJzZXRncm91cHMzMiIJfSwgLyogMjA2ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkiZmNob3duMzIiCX0sIC8qIDIwNyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXN1aWQzMiIJfSwgLyogMjA5ICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCQkic2V0cmVzZ2lkMzIiCX0sIC8qIDIxMCAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldHJlc2dpZDMyIgl9LCAvKiAyMTEgKi8KLQl7IDMsCVRGLAlwcmludGFyZ3MsCQkiY2hvd24zMiIJfSwgLyogMjEyICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0dWlkMzIiCX0sIC8qIDIxMyAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGdpZDMyIgl9LCAvKiAyMTQgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRmc3VpZDMyIgl9LCAvKiAyMTUgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRmc2dpZDMyIgl9LCAvKiAyMTYgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxNyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkJIm1pbmNvcmUiCX0sIC8qIDIxOCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgLyogMjE5ICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDIyMCAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAyMjEgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAyMjIgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMjIzICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDIyNCAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAyMjUgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMjI2ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMjI3ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDIyOCAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAyMjkgKi8KLQl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMjMwICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAyMzEgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDIzMiAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDIzMyAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDIzNCAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDIzNSAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDIzNiAqLwotCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDIzNyAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAyMzggKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMjM5ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDI0MCAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAyNDEgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMjQyICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDI0MyAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDI0NCAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDI0NSAqLwotCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAyNDYgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMjQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OCIJfSwgLyogMjQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJfSwgLyogMjQ5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MCIJfSwgLyogMjUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MiIJfSwgLyogMjUyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MyIJfSwgLyogMjUzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NCIJfSwgLyogMjU0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NSIJfSwgLyogMjU1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NiIJfSwgLyogMjU2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NyIJfSwgLyogMjU3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OCIJfSwgLyogMjU4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OSIJfSwgLyogMjU5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MCIJfSwgLyogMjYwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MSIJfSwgLyogMjYxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MiIJfSwgLyogMjYyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MyIJfSwgLyogMjYzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NCIJfSwgLyogMjY0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NSIJfSwgLyogMjY1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NiIJfSwgLyogMjY2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NyIJfSwgLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OCIJfSwgLyogMjY4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OSIJfSwgLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MCIJfSwgLyogMjcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MSIJfSwgLyogMjcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MiIJfSwgLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MyIJfSwgLyogMjczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NCIJfSwgLyogMjc0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NSIJfSwgLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NiIJfSwgLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJfSwgLyogMjc3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OCIJfSwgLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OSIJfSwgLyogMjc5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MCIJfSwgLyogMjgwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MSIJfSwgLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MiIJfSwgLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MyIJfSwgLyogMjgzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NCIJfSwgLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJfSwgLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJfSwgLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJfSwgLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJfSwgLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCi0JeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogMzAwICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDMwMSAqLwotCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiAzMDIgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAzMDMgKi8KLQl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogMzA0ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDMwNSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAzMDYgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogMzA3ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogMzA4ICovCi0JeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDMwOSAqLwotCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAzMTAgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMzExICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAzMTIgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDMxMyAqLwotCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDMxNCAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDMxNSAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDMxNiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDMxNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMTggKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9zaWduYWxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEyZjc0Ni4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc2lnbmFsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0JIlNJR18wIiwJLyogMCAqLwotCSJTSUdIVVAiLAkvKiAxICovCi0JIlNJR0lOVCIsCS8qIDIgKi8KLQkiU0lHUVVJVCIsCS8qIDMgKi8KLQkiU0lHSUxMIiwJLyogNCAqLwotCSJTSUdUUkFQIiwJLyogNSAqLwotCSJTSUdBQlJUIiwJLyogNiAqLwotCSJTSUdCVVMiLAkvKiA3ICovCi0JIlNJR0ZQRSIsCS8qIDggKi8KLQkiU0lHS0lMTCIsCS8qIDkgKi8KLQkiU0lHVVNSMSIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdVU1IyIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHU1RLRkxUIiwJLyogMTYgKi8KLQkiU0lHQ0hMRCIsCS8qIDE3ICovCi0JIlNJR0NPTlQiLAkvKiAxOCAqLwotCSJTSUdTVE9QIiwJLyogMTkgKi8KLQkiU0lHVFNUUCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHVVJHIiwJLyogMjMgKi8KLQkiU0lHWENQVSIsCS8qIDI0ICovCi0JIlNJR1hGU1oiLAkvKiAyNSAqLwotCSJTSUdWVEFMUk0iLAkvKiAyNiAqLwotCSJTSUdQUk9GIiwJLyogMjcgKi8KLQkiU0lHV0lOQ0giLAkvKiAyOCAqLwotCSJTSUdJTyIsCS8qIDI5ICovCi0JIlNJR1BXUiIsCS8qIDMwICovCi0JIlNJR1NZUyIsCS8qIDMxICovCi0JIlNJR1JUTUlOIiwJLyogMzIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9kdW1teTIuaCBiL3N0cmFjZS9saW51eC9zcGFyYy9kdW1teTIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzljNzc1My4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvZHVtbXkyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogZHVtbXkyLmgsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjM6MDkgd2ljaGVydCBFeHAgJAotICovCi0KLS8qIHN0aWxsIHVuZmluaXNoZWQgKi8KLQotI2RlZmluZSBzb2xhcmlzX3N5c21wIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NnaW5hcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZ2lrb3B0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c21pcHMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncmV0dXJuIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3JlY3Ztc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2VuZG1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19uZnNzdmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0ZmggcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYXN5bmNfZGFlbW9uIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2V4cG9ydGZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX0JTRF9nZXRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3Byb2MgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJvY2JsayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zcHJvY3NwIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zeW5jIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21hZHZpc2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcGFnZWxvY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcXVvdGFjdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2FjaGVmbHVzaCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jYWNoZWN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19udW5hbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncG9sbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zd2FwY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3N0YWNrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3NlbmRzZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJpb2NudGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfa3NpZ3F1ZXVlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZW1hX3dhaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbWVtY250bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNjYWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2Nsb2NhbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNzdW4gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzaTg2IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c21hY2hpbmUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcGxvY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcGF0aGNvbmYgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lndGltZWR3YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3VsaW1pdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wdHJhY2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3R0eSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfaW5mbyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcmlvY250bHN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19ocnRzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfeGVuaXggcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3RhdGZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZzdGF0ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3RhdHZmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mc3RhdHZmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mb3JrMSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzZW5kc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2d0dHkgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdnRyYWNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZwYXRoY29uZiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19ldnN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19hY2N0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2V4ZWMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3NlbWFfcG9zdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19uZnNzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnYWx0c3RhY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdWFkbWluIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Vtb3VudCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tb2RjdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYWNhbmNlbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19hc3luYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19ldnRyYXByZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NyZWF0ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfZXhpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfc3VzcGVuZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfY29udGludWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2tpbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3NlbGYgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3NldHByaXZhdGUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2dldHByaXZhdGUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3dhaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX211dGV4X3VubG9jayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfbXV0ZXhfbG9jayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfY29uZF93YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfY29uZF9icm9hZGNhc3QgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbGxzZWVrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2luc3Rfc3luYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19hdWRpdHN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcm9jZXNzb3JfYmluZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcm9jZXNzb3JfaW5mbyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wX29ubGluZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdxdWV1ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jbG9ja19nZXR0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2Nsb2NrX3NldHRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2xvY2tfZ2V0cmVzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX25hbm9zbGVlcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc190aW1lcl9jcmVhdGUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfZGVsZXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX3NldHRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfZ2V0dGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc190aW1lcl9nZXRvdmVycnVuIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ25hbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnaG9sZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdyZWxzZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdpZ25vcmUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncGF1c2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNnY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ2dldCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc2dyY3YgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNnc25kIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NobWF0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NobWN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1kdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1nZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2VtY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbWdldCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW1vcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19vbGR1bmFtZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191c3RhdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mdXNlcnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzZnMxIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2ZzMiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNmczMgcHJpbnRhcmdzCi0KLS8qIGxpa2UgYW5vdGhlciBjYWxsICovCi0jZGVmaW5lIHNvbGFyaXNfbGNob3duIHNvbGFyaXNfY2hvd24KLSNkZWZpbmUgc29sYXJpc19zZXR1aWQgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3NldGV1aWQgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3NldGdpZCBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfc2V0ZWdpZCBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfdmhhbmd1cCBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfZmRzeW5jIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19zaWdmaWxsc2V0IHNvbGFyaXNfc2lncGVuZGluZwotI2RlZmluZSBzb2xhcmlzX3Zmb3JrIHNvbGFyaXNfZm9yawotI2RlZmluZSBzb2xhcmlzX2tzaWdhY3Rpb24gc29sYXJpc19zaWdhY3Rpb24KLSNkZWZpbmUgc29sYXJpc19CU0RnZXRwZ3JwIHNvbGFyaXNfZ2V0cGdycAotI2RlZmluZSBzb2xhcmlzX0JTRHNldHBncnAgc29sYXJpc19zZXRwZ3JwCi0jZGVmaW5lIHNvbGFyaXNfd2FpdHN5cyBzb2xhcmlzX3dhaXRpZAotCi0vKiBwcmludGFyZ3MgZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8KLSNkZWZpbmUgc29sYXJpc19zeW5jIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Byb2ZpbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc195aWVsZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wYXVzZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZXRob3N0aWQgcHJpbnRhcmdzCi0KLS8qIHN1YmZ1bmN0aW9uIGVudHJ5IHBvaW50cyAqLwotI2RlZmluZSBzb2xhcmlzX3BncnBzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnY2FsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc2dzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbXN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191dHNzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3BjYWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2NvbnRleHQgcHJpbnRhcmdzCi0KLS8qIHNhbWUgYXMgbGludXggKi8KLSNkZWZpbmUgc29sYXJpc19leGl0IHN5c19leGl0Ci0jZGVmaW5lIHNvbGFyaXNfZm9yayBzeXNfZm9yawotI2RlZmluZSBzb2xhcmlzX3JlYWQgc3lzX3JlYWQKLSNkZWZpbmUgc29sYXJpc193cml0ZSBzeXNfd3JpdGUKLSNkZWZpbmUgc29sYXJpc19jbG9zZSBzeXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19jcmVhdCBzeXNfY3JlYXQKLSNkZWZpbmUgc29sYXJpc19saW5rIHN5c19saW5rCi0jZGVmaW5lIHNvbGFyaXNfdW5saW5rIHN5c191bmxpbmsKLSNkZWZpbmUgc29sYXJpc19jaGRpciBzeXNfY2hkaXIKLSNkZWZpbmUgc29sYXJpc190aW1lIHN5c190aW1lCi0jZGVmaW5lIHNvbGFyaXNfY2htb2Qgc3lzX2NobW9kCi0jZGVmaW5lIHNvbGFyaXNfbHNlZWsgc3lzX2xzZWVrCi0jZGVmaW5lIHNvbGFyaXNfc3RpbWUgc3lzX3N0aW1lCi0jZGVmaW5lIHNvbGFyaXNfYWxhcm0gc3lzX2FsYXJtCi0jZGVmaW5lIHNvbGFyaXNfdXRpbWUgc3lzX3V0aW1lCi0jZGVmaW5lIHNvbGFyaXNfYWNjZXNzIHN5c19hY2Nlc3MKLSNkZWZpbmUgc29sYXJpc19uaWNlIHN5c19uaWNlCi0jZGVmaW5lIHNvbGFyaXNfZHVwIHN5c19kdXAKLSNkZWZpbmUgc29sYXJpc19waXBlIHN5c19waXBlCi0jZGVmaW5lIHNvbGFyaXNfdGltZXMgc3lzX3RpbWVzCi0jZGVmaW5lIHNvbGFyaXNfZXhlY3ZlIHN5c19leGVjdmUKLSNkZWZpbmUgc29sYXJpc191bWFzayBzeXNfdW1hc2sKLSNkZWZpbmUgc29sYXJpc19jaHJvb3Qgc3lzX2Nocm9vdAotI2RlZmluZSBzb2xhcmlzX3JtZGlyIHN5c19ybWRpcgotI2RlZmluZSBzb2xhcmlzX21rZGlyIHN5c19ta2RpcgotI2RlZmluZSBzb2xhcmlzX2dldGRlbnRzIHN5c19nZXRkZW50cwotI2RlZmluZSBzb2xhcmlzX3BvbGwgc3lzX3BvbGwKLSNkZWZpbmUgc29sYXJpc19zeW1saW5rIHN5c19zeW1saW5rCi0jZGVmaW5lIHNvbGFyaXNfcmVhZGxpbmsgc3lzX3JlYWRsaW5rCi0jZGVmaW5lIHNvbGFyaXNfc2V0Z3JvdXBzIHN5c19zZXRncm91cHMKLSNkZWZpbmUgc29sYXJpc19nZXRncm91cHMgc3lzX2dldGdyb3VwcwotI2RlZmluZSBzb2xhcmlzX2ZjaG1vZCBzeXNfZmNobW9kCi0jZGVmaW5lIHNvbGFyaXNfZmNob3duIHN5c19mY2hvd24KLSNkZWZpbmUgc29sYXJpc19tcHJvdGVjdCBzeXNfbXByb3RlY3QKLSNkZWZpbmUgc29sYXJpc19tdW5tYXAgc3lzX211bm1hcAotI2RlZmluZSBzb2xhcmlzX3JlYWR2IHN5c19yZWFkdgotI2RlZmluZSBzb2xhcmlzX3dyaXRldiBzeXNfd3JpdGV2Ci0jZGVmaW5lIHNvbGFyaXNfY2hvd24gc3lzX2Nob3duCi0jZGVmaW5lIHNvbGFyaXNfcmVuYW1lIHN5c19yZW5hbWUKLSNkZWZpbmUgc29sYXJpc19nZXR0aW1lb2ZkYXkgc3lzX2dldHRpbWVvZmRheQotI2RlZmluZSBzb2xhcmlzX2dldGl0aW1lciBzeXNfZ2V0aXRpbWVyCi0jZGVmaW5lIHNvbGFyaXNfc2V0aXRpbWVyIHN5c19zZXRpdGltZXIKLSNkZWZpbmUgc29sYXJpc19icmsgc3lzX2JyawotI2RlZmluZSBzb2xhcmlzX21tYXAgc3lzX21tYXAKLSNkZWZpbmUgc29sYXJpc19nZXRzaWQgc3lzX2dldHNpZAotI2RlZmluZSBzb2xhcmlzX3NldHNpZCBzeXNfc2V0c2lkCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cGdpZCBzeXNfZ2V0cGdpZAotI2RlZmluZSBzb2xhcmlzX3NldHBnaWQgc3lzX3NldHBnaWQKLSNkZWZpbmUgc29sYXJpc19nZXRwZ3JwIHN5c19nZXRwZ3JwCi0KLS8qIFRoZXNlIGFyZSBoYW5kbGVkIGFjY29yZGluZyB0byBjdXJyZW50X3BlcnNvbmFsaXR5ICovCi0jZGVmaW5lIHNvbGFyaXNfeHN0YXQgc3lzX3hzdGF0Ci0jZGVmaW5lIHNvbGFyaXNfZnhzdGF0IHN5c19meHN0YXQKLSNkZWZpbmUgc29sYXJpc19seHN0YXQgc3lzX2x4c3RhdAotI2RlZmluZSBzb2xhcmlzX3hta25vZCBzeXNfeG1rbm9kCi0jZGVmaW5lIHNvbGFyaXNfc3RhdCBzeXNfc3RhdAotI2RlZmluZSBzb2xhcmlzX2ZzdGF0IHN5c19mc3RhdAotI2RlZmluZSBzb2xhcmlzX2xzdGF0IHN5c19sc3RhdAotI2RlZmluZSBzb2xhcmlzX3ByZWFkIHN5c19wcmVhZAotI2RlZmluZSBzb2xhcmlzX3B3cml0ZSBzeXNfcHdyaXRlCi0jZGVmaW5lIHNvbGFyaXNfaW9jdGwgc3lzX2lvY3RsCi0jZGVmaW5lIHNvbGFyaXNfbWtub2Qgc3lzX21rbm9kCi0KLS8qIFRvIGJlIGRvbmUgKi8KLSNkZWZpbmUgc29sYXJpc19tb3VudCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNpbmZvIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2NvbmZpZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRwbXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3B1dHBtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc193YWl0aWQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc3VzcGVuZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZXRwZ3JwIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldGNvbnRleHQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2V0Y29udGV4dCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRwaWQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0dWlkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2tpbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0Z2lkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZjbnRsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldG1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wdXRtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncHJvY21hc2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnYWN0aW9uIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3BlbmRpbmcgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbWluY29yZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mY2hkaXIgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2V0cmxpbWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldHJsaW1pdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191bmFtZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19hZGp0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2ZjaHJvb3QgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdXRpbWVzIHByaW50YXJncwotCi0jaWYgRE9ORQotI2RlZmluZSBzb2xhcmlzX29wZW4gcHJpbnRhcmdzCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL2Vycm5vZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNDM2OTkuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL2Vycm5vZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFV09VTERCTE9DSyIsIC8qIDM1ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMzYgKi8KLQkiRUFMUkVBRFkiLCAvKiAzNyAqLwotCSJFTk9UU09DSyIsIC8qIDM4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDM5ICovCi0JIkVNU0dTSVpFIiwgLyogNDAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDQxICovCi0JIkVOT1BST1RPT1BUIiwgLyogNDIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogNDMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogNDQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDQ1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDQ2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDQ3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA0OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogNDkgKi8KLQkiRU5FVERPV04iLCAvKiA1MCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDUxICovCi0JIkVORVRSRVNFVCIsIC8qIDUyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDUzICovCi0JIkVDT05OUkVTRVQiLCAvKiA1NCAqLwotCSJFTk9CVUZTIiwgLyogNTUgKi8KLQkiRUlTQ09OTiIsIC8qIDU2ICovCi0JIkVOT1RDT05OIiwgLyogNTcgKi8KLQkiRVNIVVRET1dOIiwgLyogNTggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogNTkgKi8KLQkiRVRJTUVET1VUIiwgLyogNjAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogNjEgKi8KLQkiRUxPT1AiLCAvKiA2MiAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiA2MyAqLwotCSJFSE9TVERPV04iLCAvKiA2NCAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiA2NSAqLwotCSJFTk9URU1QVFkiLCAvKiA2NiAqLwotCSJFUFJPQ0xJTSIsIC8qIDY3ICovCi0JIkVVU0VSUyIsIC8qIDY4ICovCi0JIkVEUVVPVCIsIC8qIDY5ICovCi0JIkVTVEFMRSIsIC8qIDcwICovCi0JIkVSRU1PVEUiLCAvKiA3MSAqLwotCSJFTk9TVFIiLCAvKiA3MiAqLwotCSJFVElNRSIsIC8qIDczICovCi0JIkVOT1NSIiwgLyogNzQgKi8KLQkiRU5PTVNHIiwgLyogNzUgKi8KLQkiRUJBRE1TRyIsIC8qIDc2ICovCi0JIkVJRFJNIiwgLyogNzcgKi8KLQkiRURFQURMSyIsIC8qIDc4ICovCi0JIkVOT0xDSyIsIC8qIDc5ICovCi0JIkVOT05FVCIsIC8qIDgwICovCi0JIkVSUkVNT1RFIiwgLyogODEgKi8KLQkiRU5PTElOSyIsIC8qIDgyICovCi0JIkVBRFYiLCAvKiA4MyAqLwotCSJFU1JNTlQiLCAvKiA4NCAqLwotCSJFQ09NTSIsIC8qIDg1ICovCi0JIkVQUk9UTyIsIC8qIDg2ICovCi0JIkVNVUxUSUhPUCIsIC8qIDg3ICovCi0JIkVET1RET1QiLCAvKiA4OCAqLwotCSJFUkVNQ0hHIiwgLyogODkgKi8KLQkiRU5PU1lTIiwgLyogOTAgKi8KLQkiRVNUUlBJUEUiLCAvKiA5MSAqLwotCSJFT1ZFUkZMT1ciLCAvKiA5MiAqLwotCSJFQkFERkQiLCAvKiA5MyAqLwotCSJFQ0hSTkciLCAvKiA5NCAqLwotCSJFTDJOU1lOQyIsIC8qIDk1ICovCi0JIkVMM0hMVCIsIC8qIDk2ICovCi0JIkVMM1JTVCIsIC8qIDk3ICovCi0JIkVMTlJORyIsIC8qIDk4ICovCi0JIkVVTkFUQ0giLCAvKiA5OSAqLwotCSJFTk9DU0kiLCAvKiAxMDAgKi8KLQkiRUwySExUIiwgLyogMTAxICovCi0JIkVCQURFIiwgLyogMTAyICovCi0JIkVCQURSIiwgLyogMTAzICovCi0JIkVYRlVMTCIsIC8qIDEwNCAqLwotCSJFTk9BTk8iLCAvKiAxMDUgKi8KLQkiRUJBRFJRQyIsIC8qIDEwNiAqLwotCSJFQkFEU0xUIiwgLyogMTA3ICovCi0JIkVERUFETE9DSyIsIC8qIDEwOCAqLwotCSJFQkZPTlQiLCAvKiAxMDkgKi8KLQkiRUxJQkVYRUMiLCAvKiAxMTAgKi8KLQkiRU5PREFUQSIsIC8qIDExMSAqLwotCSJFTElCQkFEIiwgLyogMTEyICovCi0JIkVOT1BLRyIsIC8qIDExMyAqLwotCSJFTElCQUNDIiwgLyogMTE0ICovCi0JIkVOT1RVTklRIiwgLyogMTE1ICovCi0JIkVSRVNUQVJUIiwgLyogMTE2ICovCi0JIkVVQ0xFQU4iLCAvKiAxMTcgKi8KLQkiRU5PVE5BTSIsIC8qIDExOCAqLwotCSJFTkFWQUlMIiwgLyogMTE5ICovCi0JIkVJU05BTSIsIC8qIDEyMCAqLwotCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KLQkiRUlMU0VRIiwgLyogMTIyICovCi0JIkVMSUJNQVgiLCAvKiAxMjMgKi8KLQkiRUxJQlNDTiIsIC8qIDEyNCAqLwotCSJFTk9NRURJVU0iLCAvKiAxMjUgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxMjYgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudDEuaCBiL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ3NTBiZC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvZXJybm9lbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jaW5jbHVkZSAiLi4vc3ZyNC9lcnJub2VudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL2dlbi5wbCBiL3N0cmFjZS9saW51eC9zcGFyYy9nZW4ucGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMzIwZWUuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL2dlbi5wbAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLW9wZW4gU1BBUkMsICJzeXNjYWxsZW50LmgiIHx8IGRpZSAibm8gcHVlZG8gYWJyaXIgZWwgZGUgbGEgc3BhcmMiOwotb3BlbiBBTFBIQSwgIi4uL2FscGhhL3N5c2NhbGxlbnQuaCIgfHwgZGllICJubyBwdWVkbyBhYnJpciBlbCBkZSBsYSBhbHBoYSI7Ci1vcGVuIFBDLCAiLi4vc3lzY2FsbGVudC5oIiB8fCBkaWUgIm5vIHB1ZWRvIGFicmlyIFBDXG4iOwotCi13aGlsZSAoPFNQQVJDPikgewotICAgIGNob3A7Ci0gICAgKCRpMSwgJGkyLCAkaTMsICRzeXNjYWxsLCAkc3lzY2FsbF9uYW1lKSA9IHNwbGl0OwotICAgICRzdHJuWyRpbmRleF0gICA9ICRzeXNjYWxsX25hbWU7Ci0gICAgJG5hbWVbJGluZGV4KytdID0gJHN5c2NhbGw7Ci19Ci0KLXdoaWxlICg8QUxQSEE+KXsKLSAgICBpZiAoL1x7LykgewotCSgkaTEsICRuLCAkcHIsICRzeXNjYWxsKSA9IHNwbGl0OwotCSRwYXJ7JHN5c2NhbGx9ID0gJG47Ci0JJHBycnskc3lzY2FsbH0gPSAkcHI7Ci0gICAgfQotfQotCi13aGlsZSAoPFBDPil7Ci0gICAgaWYgKC9cey8pIHsKLQkoJGkxLCAkbiwgJHByLCAkc3lzY2FsbCkgPSBzcGxpdDsKLQkkcGFyeyRzeXNjYWxsfSA9ICRuOwotCSRwcnJ7JHN5c2NhbGx9ID0gJHByOwotICAgIH0KLX0KLQotcHJpbnQgIm1pc3NpbmcgXG4iOwotCi1mb3IgKCRpID0gMDsgJGkgPCAkaW5kZXg7ICRpKyspewotICAgICR4ID0gJG5hbWVbJGldOwotICAgICR5ID0gJHN0cm5bJGldOwotICAgICRuID0gJHBhcnskeH07Ci0gICAgJHAgPSAkcHJyeyR4fTsKLSAgICAkaisrOwotICAgIHByaW50ICJcdHsgJG5cdCRwXHQkeFx0JHkgfSxcdCAvKiAkaiAqL1xuIjsKLX0KLQpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmMvaW9jdGxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFkNmI4YS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvaW9jdGxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDgzOCArMCwwIEBACi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDU0MDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg1NDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDU0MDl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NTQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg1NDBifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg1NDBmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDU0MTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg1NDExfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg1NDEzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg1NDE0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg1NDFifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDU0MjF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19HRVRQU1RBVCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX1NFVEJVRkxFViIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTFoiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19BREpCVUZMRVYiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX1NFVFBPT0wiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFRISVNUIiwJMHg2MTY0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAotCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAotCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCi0JeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAotCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAotCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAotCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRNT1VOVCIsCTB4NzAwM30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUUElEIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTE9TRV9KT1VSTkFMRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVF9GU0VUUk9PVCIsCTB4NzAwN30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0ZTRVRST09UIiwJMHg3MDA4fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVE9QVCIsCTB4NzAwOX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE9QVCIsCTB4NzAwYX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfS01MU0laRSIsCTB4NzAwYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX1JFQ05PIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRBVFRSIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DUkVBVEUiLAkweDcwMTF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTElOSyIsCTB4NzAxMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19VTkxJTksiLAkweDcwMTN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU1lNTElOSyIsCTB4NzAxNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS0RJUiIsCTB4NzAxNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19STURJUiIsCTB4NzAxNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS05PRCIsCTB4NzAxN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19SRU5BTUUiLAkweDcwMTh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ0xPU0UiLAkweDcwMWF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfSU9QRU4iLAkweDcwMWJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VURVhUQVRUUiIsCTB4NzAxY30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19ERUxFWFRBVFRSIiwJMHg3MDFkfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLAkweDcyMDJ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAotCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCi0JeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKLQl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCi0JeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZmMDB9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDUzNmNmLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9pb2N0bGVudDEuaAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSNpbmNsdWRlICIuLi9zdnI0L2lvY3RsZW50LmgiCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNTliNWQuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjL3NpZ25hbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVUkciLAkvKiAxNiAqLwotCSJTSUdTVE9QIiwJLyogMTcgKi8KLQkiU0lHVFNUUCIsCS8qIDE4ICovCi0JIlNJR0NPTlQiLAkvKiAxOSAqLwotCSJTSUdDSExEIiwJLyogMjAgKi8KLQkiU0lHVFRJTiIsCS8qIDIxICovCi0JIlNJR1RUT1UiLAkvKiAyMiAqLwotCSJTSUdJTyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHTE9TVCIsCS8qIDI5ICovCi0JIlNJR1VTUjEiLAkvKiAzMCAqLwotCSJTSUdVU1IyIiwJLyogMzEgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zaWduYWxlbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmU3YTI2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9zaWduYWxlbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jaW5jbHVkZSAiLi4vc3ZyNC9zaWduYWxlbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmggYi9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjU5ODQyLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGwuaCx2IDEuMTAgMjAwNS8wMi8wMiAyMDozMjoxMyByb2xhbmQgRXhwICQKLSAqLwotI2luY2x1ZGUgImR1bW15LmgiCi0KLWludAlzeXNfbm9zeXMoKTsKLWludAlzeXNfbnVsbHN5cygpOwotaW50CXN5c19lcnJzeXMoKTsKLQotLyogMS4xIHByb2Nlc3NlcyBhbmQgcHJvdGVjdGlvbiAqLwotaW50CXN5c19nZXRob3N0aWQoKSxzeXNfc2V0aG9zdG5hbWUoKSxzeXNfZ2V0aG9zdG5hbWUoKSxzeXNfZ2V0cGlkKCk7Ci1pbnQJc3lzX3NldGRvbWFpbm5hbWUoKSxzeXNfZ2V0ZG9tYWlubmFtZSgpOwotaW50CXN5c19mb3JrKCksc3lzX2Nsb25lKCksc3lzX2V4aXQoKSxzeXNfZXhlY3YoKSxzeXNfZXhlY3ZlKCksc3lzX3dhaXQ0KCksc3lzX3dhaXRwaWQoKTsKLWludAlzeXNfc2V0dWlkKCksc3lzX3NldGdpZCgpLHN5c19nZXR1aWQoKSxzeXNfc2V0cmV1aWQoKSxzeXNfZ2V0Z2lkKCksc3lzX2dldGdyb3VwcygpLHN5c19zZXRyZWdpZCgpLHN5c19zZXRncm91cHMoKTsKLWludAlzeXNfZ2V0cGdycCgpLHN5c19zZXRwZ3JwKCk7Ci1pbnQJc3lzX3NldHNpZCgpLCBzeXNfc2V0cGdpZCgpOwotaW50CXN5c191bmFtZSgpLCBzeXNfc3lzaW5mbygpOwotCi0vKiAxLjIgbWVtb3J5IG1hbmFnZW1lbnQgKi8KLWludAlzeXNfYnJrKCksc3lzX3NicmsoKSxzeXNfc3N0aygpOwotaW50CXN5c19nZXRwYWdlc2l6ZSgpLHN5c19tbWFwKCksc3lzX21jdGwoKSxzeXNfbXVubWFwKCksc3lzX21wcm90ZWN0KCksc3lzX21pbmNvcmUoKSwgc3lzX21yZW1hcCgpOwotaW50CXN5c19vbXN5bmMoKSxzeXNfb21hZHZpc2UoKSwgc3lzX21hZHZpc2UoKSxzeXNfbWxvY2thbGwoKTsKLQotLyogMS4zIHNpZ25hbHMgKi8KLWludAlzeXNfc2lndmVjKCksc3lzX3NpZ2Jsb2NrKCksc3lzX3NpZ3NldG1hc2soKSxzeXNfc2lncGF1c2UoKSxzeXNfc2lnc3RhY2soKSxzeXNfc2lnY2xlYW51cCgpLCBzeXNfc2lncmV0dXJuKCk7Ci1pbnQJc3lzX2tpbGwoKSwgc3lzX2tpbGxwZygpLCBzeXNfc2lncGVuZGluZygpLCBzeXNfc2lnbmFsKCksIHN5c19zaWdhY3Rpb24oKSwgc3lzX3NpZ3N1c3BlbmQoKSwgc3lzX3NpZ3Byb2NtYXNrKCk7Ci0KLS8qIDEuNCB0aW1pbmcgYW5kIHN0YXRpc3RpY3MgKi8KLWludAlzeXNfZ2V0dGltZW9mZGF5KCksc3lzX3NldHRpbWVvZmRheSgpOwotaW50CXN5c19hZGp0aW1lKCksIHN5c19hZGp0aW1leCgpOwotaW50CXN5c19nZXRpdGltZXIoKSxzeXNfc2V0aXRpbWVyKCk7Ci0KLS8qIDEuNSBkZXNjcmlwdG9ycyAqLwotaW50CXN5c19nZXRkdGFibGVzaXplKCksc3lzX2R1cCgpLHN5c19kdXAyKCksc3lzX2Nsb3NlKCk7Ci1pbnQJc3lzX29sZHNlbGVjdCgpLHN5c19zZWxlY3QoKSxzeXNfZ2V0ZG9wdCgpLHN5c19zZXRkb3B0KCksc3lzX2ZjbnRsKCksc3lzX2Zsb2NrKCk7Ci1pbnQJc3lzX2Vwb2xsX2NyZWF0ZSgpLCBzeXNfZXBvbGxfY3RsKCksIHN5c19lcG9sbF93YWl0KCk7Ci0KLS8qIDEuNiByZXNvdXJjZSBjb250cm9scyAqLwotaW50CXN5c19nZXRwcmlvcml0eSgpLHN5c19zZXRwcmlvcml0eSgpLHN5c19nZXRydXNhZ2UoKSxzeXNfZ2V0cmxpbWl0KCksc3lzX3NldHJsaW1pdCgpOwotaW50CXN5c19vbGRxdW90YSgpLCBzeXNfcXVvdGFjdGwoKTsKLWludAlzeXNfcnRzY2hlZHVsZSgpLCBzeXNfcGVyc29uYWxpdHkoKTsKLQotLyogMS43IHN5c3RlbSBvcGVyYXRpb24gc3VwcG9ydCAqLwotaW50CXN5c19tb3VudCgpLHN5c191bm1vdW50KCksc3lzX3N3YXBvbigpLHN5c19waXZvdHJvb3QoKTsKLWludAlzeXNfc3luYygpLHN5c19yZWJvb3QoKTsKLWludAlzeXNfc3lzYWNjdCgpOwotaW50CXN5c19hdWRpdHN5cygpOwotCi0vKiAyLjEgZ2VuZXJpYyBvcGVyYXRpb25zICovCi1pbnQJc3lzX3JlYWQoKSxzeXNfd3JpdGUoKSxzeXNfcmVhZHYoKSxzeXNfd3JpdGV2KCksc3lzX2lvY3RsKCk7Ci0KLS8qIDIuMS4xIGFzeW5jaCBvcGVyYXRpb25zICovCi1pbnQJc3lzX2Fpb3JlYWQoKSwgc3lzX2Fpb3dyaXRlKCksIHN5c19haW93YWl0KCksIHN5c19haW9jYW5jZWwoKTsKLQotLyogMi4yIGZpbGUgc3lzdGVtICovCi1pbnQJc3lzX2NoZGlyKCksc3lzX2Nocm9vdCgpOwotaW50CXN5c19mY2hkaXIoKSxzeXNfZmNocm9vdCgpOwotaW50CXN5c19ta2RpcigpLHN5c19ybWRpcigpLHN5c19nZXRkaXJlbnRyaWVzKCk7Ci1pbnQJc3lzX2dldGRlbnRzKCksIHN5c19nZXRkZW50czY0KCksIHN5c19yZWFkZGlyKCk7Ci1pbnQJc3lzX2NyZWF0KCksc3lzX29wZW4oKSxzeXNfbWtub2QoKSxzeXNfdW5saW5rKCksc3lzX3N0YXQoKSxzeXNfZnN0YXQoKSxzeXNfbHN0YXQoKTsKLWludAlzeXNfY2hvd24oKSxzeXNfZmNob3duKCksc3lzX2NobW9kKCksc3lzX2ZjaG1vZCgpLHN5c191dGltZXMoKTsKLWludAlzeXNfbGluaygpLHN5c19zeW1saW5rKCksc3lzX3JlYWRsaW5rKCksc3lzX3JlbmFtZSgpOwotaW50CXN5c19sc2VlaygpLCBzeXNfbGxzZWVrKCk7Ci1pbnQJc3lzX3RydW5jYXRlKCksc3lzX2Z0cnVuY2F0ZSgpLHN5c19hY2Nlc3MoKSxzeXNfZnN5bmMoKSxzeXNfc3lzY3RsKCk7Ci1pbnQJc3lzX3N0YXRmcygpLHN5c19mc3RhdGZzKCksc3lzX21zeW5jKCk7Ci1pbnQgc3lzX3N0YXQ2NCgpLCBzeXNfbHN0YXQ2NCgpLCBzeXNfZnN0YXQ2NCgpOwotaW50IHN5c190cnVuY2F0ZTY0KCksIHN5c19mdHJ1bmNhdGU2NCgpOwotCi0KLS8qIDIuMyBjb21tdW5pY2F0aW9ucyAqLwotaW50CXN5c19zb2NrZXQoKSxzeXNfYmluZCgpLHN5c19saXN0ZW4oKSxzeXNfYWNjZXB0KCksc3lzX2Nvbm5lY3QoKTsKLWludAlzeXNfc29ja2V0cGFpcigpLHN5c19zZW5kdG8oKSxzeXNfc2VuZCgpLHN5c19yZWN2ZnJvbSgpLHN5c19yZWN2KCk7Ci1pbnQJc3lzX3NlbmRtc2coKSxzeXNfcmVjdm1zZygpLHN5c19zaHV0ZG93bigpLHN5c19zZXRzb2Nrb3B0KCksc3lzX2dldHNvY2tvcHQoKTsKLWludAlzeXNfZ2V0c29ja25hbWUoKSxzeXNfZ2V0cGVlcm5hbWUoKSxzeXNfcGlwZSgpOwotCi1pbnQgc3lzX3NldHJlc3VpZCgpLCBzeXNfc2V0cmVzZ2lkKCksIHN5c19nZXRyZXN1aWQoKSwgc3lzX2dldHJlc2dpZCgpLCBzeXNfcHJlYWQoKTsKLWludCBzeXNfcHdyaXRlKCksIHN5c19nZXRjd2QoKTsKLWludCBzeXNfc2lnYWx0c3RhY2soKSwgc3lzX3J0X3NpZ3Byb2NtYXNrKCksIHN5c19ydF9zaWdhY3Rpb24oKTsKLWludCBzeXNfcnRfc2lncGVuZGluZygpLCBzeXNfcnRfc2lnc3VzcGVuZCgpLCBzeXNfcnRfc2lncXVldWVpbmZvKCk7Ci1pbnQgc3lzX3J0X3NpZ3RpbWVkd2FpdCgpLCBzeXNfcHJjdGwoKSwgc3lzX3BvbGwoKTsKLWludCBzeXNfc2VuZGZpbGUoKSwgc3lzX3F1ZXJ5X21vZHVsZSgpLCBzeXNfY2FwZ2V0KCksIHN5c19jYXBzZXQoKTsKLWludCBzeXNfY3JlYXRlX21vZHVsZSgpLCBzeXNfaW5pdF9tb2R1bGUoKTsKLQotaW50CXN5c191bWFzaygpOwkJLyogWFhYICovCi0KLWludCBzeXNfc2NoZWRfc2V0cGFyYW0oKSwgc3lzX3NjaGVkX2dldHBhcmFtKCk7Ci1pbnQgc3lzX3NjaGVkX3NldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyKCksIHN5c19zY2hlZF95aWVsZCgpOwotaW50IHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KCksIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKCk7Ci0KLS8qIDIuMy4xIFN5c3RlbVYtY29tcGF0aWJsZSBJUEMgKi8KLWludAlzeXNfc2Vtc3lzKCksIHN5c19zZW1jdGwoKSwgc3lzX3NlbWdldCgpOwotI2RlZmluZSBTWVNfc2Vtc3lzX3N1YmNhbGwJMjAwCi0jZGVmaW5lIFNZU19zZW1zeXNfbnN1YmNhbGxzCTMKLSNkZWZpbmUgU1lTX3NlbWN0bAkJKFNZU19zZW1zeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNZU19zZW1nZXQJCShTWVNfc2Vtc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfc2Vtb3AJCShTWVNfc2Vtc3lzX3N1YmNhbGwgKyAyKQotaW50CXN5c19tc2dzeXMoKSwgc3lzX21zZ2dldCgpLCBzeXNfbXNnY3RsKCksIHN5c19tc2dyY3YoKSwgc3lzX21zZ3NuZCgpOwotI2RlZmluZSBTWVNfbXNnc3lzX3N1YmNhbGwJMjAzCi0jZGVmaW5lIFNZU19tc2dzeXNfbnN1YmNhbGxzCTQKLSNkZWZpbmUgU1lTX21zZ2dldAkJKFNZU19tc2dzeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNZU19tc2djdGwJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfbXNncmN2CQkoU1lTX21zZ3N5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU1lTX21zZ3NuZAkJKFNZU19tc2dzeXNfc3ViY2FsbCArIDMpCi1pbnQJc3lzX3NobXN5cygpLCBzeXNfc2htYXQoKSwgc3lzX3NobWN0bCgpLCBzeXNfc2htZHQoKSwgc3lzX3NobWdldCgpOwotI2RlZmluZSBTWVNfc2htc3lzX3N1YmNhbGwJMjA3Ci0jZGVmaW5lIFNZU19zaG1zeXNfbnN1YmNhbGxzCTQKLSNkZWZpbmUJU1lTX3NobWF0CQkoU1lTX3NobXN5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU1lTX3NobWN0bAkJKFNZU19zaG1zeXNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNZU19zaG1kdAkJKFNZU19zaG1zeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNZU19zaG1nZXQJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAzKQotCi0vKiAyLjQgcHJvY2Vzc2VzICovCi1pbnQJc3lzX3B0cmFjZSgpOwotCi0vKiAyLjUgdGVybWluYWxzICovCi0KLS8qIGVtdWxhdGlvbnMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovCi1pbnQJc3lzX290aW1lKCk7CQkvKiBub3cgdXNlIGdldHRpbWVvZmRheSAqLwotaW50CXN5c19vc3RpbWUoKTsJCS8qIG5vdyB1c2Ugc2V0dGltZW9mZGF5ICovCi1pbnQJc3lzX29hbGFybSgpOwkJLyogbm93IHVzZSBzZXRpdGltZXIgKi8KLWludAlzeXNfb3V0aW1lKCk7CQkvKiBub3cgdXNlIHV0aW1lcyAqLwotaW50CXN5c19vcGF1c2UoKTsJCS8qIG5vdyB1c2Ugc2lncGF1c2UgKi8KLWludAlzeXNfb25pY2UoKTsJCS8qIG5vdyB1c2Ugc2V0cHJpb3JpdHksZ2V0cHJpb3JpdHkgKi8KLWludAlzeXNfb2Z0aW1lKCk7CQkvKiBub3cgdXNlIGdldHRpbWVvZmRheSAqLwotaW50CXN5c19vc2V0cGdycCgpOwkJLyogPz8/ICovCi1pbnQJc3lzX290aW1lcygpOwkJLyogbm93IHVzZSBnZXRydXNhZ2UgKi8KLWludAlzeXNfb3NzaWcoKTsJCS8qIG5vdyB1c2Ugc2lndmVjLCBldGMgKi8KLWludAlzeXNfb3ZsaW1pdCgpOwkJLyogbm93IHVzZSBzZXRybGltaXQsZ2V0cmxpbWl0ICovCi1pbnQJc3lzX292dGltZXMoKTsJCS8qIG5vdyB1c2UgZ2V0cnVzYWdlICovCi1pbnQJc3lzX29zZXR1aWQoKTsJCS8qIG5vdyB1c2Ugc2V0cmV1aWQgKi8KLWludAlzeXNfb3NldGdpZCgpOwkJLyogbm93IHVzZSBzZXRyZWdpZCAqLwotaW50CXN5c19vc3RhdCgpOwkJLyogbm93IHVzZSBzdGF0ICovCi1pbnQJc3lzX29mc3RhdCgpOwkJLyogbm93IHVzZSBmc3RhdCAqLwotCi0vKiBCRUdJTiBKVU5LICovCi1pbnQJc3lzX3Byb2ZpbCgpOwkJLyogJ2N1eiBzeXMgY2FsbHMgYXJlIGludGVycnVwdGlibGUgKi8KLWludAlzeXNfdmhhbmd1cCgpOwkJLyogc2hvdWxkIGp1c3QgZG8gaW4gc3lzX2V4aXQoKSAqLwotaW50CXN5c192Zm9yaygpOwkJLyogWFhYIC0gd2FzIGF3YWl0aW5nIGZvcmsgdy8gY29weSBvbiB3cml0ZSAqLwotaW50CXN5c19vdmFkdmlzZSgpOwkJLyogYXdhaXRpbmcgbmV3IG1hZHZpc2UgKi8KLWludAlzeXNfaW5kaXIoKTsJCS8qIGluZGlyZWN0IHN5c3RlbSBjYWxsICovCi1pbnQJc3lzX3VzdGF0KCk7CQkvKiBTeXN0ZW0gViBjb21wYXRpYmlsaXR5ICovCi1pbnQJc3lzX293YWl0KCk7CQkvKiBzaG91bGQgdXNlIHdhaXQ0IGludGVyZmFjZSAqLwotaW50CXN5c19vd2FpdDMoKTsJCS8qIHNob3VsZCB1c2Ugd2FpdDQgaW50ZXJmYWNlICovCi1pbnQJc3lzX3Vtb3VudCgpOwkJLyogc3RpbGwgbW9yZSBTeXMgViAoYW5kIDQuMj8pIGNvbXBhdGliaWxpdHkgKi8KLWludAlzeXNfdW1vdW50MigpOwotaW50CXN5c19wYXRoY29uZigpOwkJLyogcG9zaXggKi8KLWludAlzeXNfZnBhdGhjb25mKCk7CQkvKiBwb3NpeCAqLwotaW50CXN5c19zeXNjb25mKCk7CQkvKiBwb3NpeCAqLwotaW50ICAgICBzeXNfZGVsZXRlX21vZHVsZSgpOwotaW50IHN5c19kZWJ1ZygpOwotLyogRU5EIEpVTksgKi8KLQotaW50CXN5c192dHJhY2UoKTsJCS8qIGtlcm5lbCBldmVudCB0cmFjaW5nICovCi0KLS8qIG5mcyAqLwotaW50CXN5c19hc3luY19kYWVtb24oKTsJCS8qIGNsaWVudCBhc3luYyBkYWVtb24gKi8KLWludAlzeXNfbmZzX3N2YygpOwkJLyogcnVuIG5mcyBzZXJ2ZXIgKi8KLWludAlzeXNfbmZzX2dldGZoKCk7CQkvKiBnZXQgZmlsZSBoYW5kbGUgKi8KLWludAlzeXNfZXhwb3J0ZnMoKTsJCS8qIGV4cG9ydCBmaWxlIHN5c3RlbXMgKi8KLQotaW50ICAJc3lzX3Jmc3N5cygpOwkJLyogUkZTLXJlbGF0ZWQgY2FsbHMgKi8KLQotaW50CXN5c19nZXRtc2coKTsKLWludAlzeXNfcHV0bXNnKCk7Ci1pbnQJc3lzX3BvbGwoKTsKLQotaW50CXN5c192cGl4c3lzKCk7CQkvKiBWUC9peCBzeXN0ZW0gY2FsbHMgKi8KLQotaW50CXN5c19zZW5kZmlsZTY0KCksIHN5c19mdXRleCgpLCBzeXNfZ2V0dGlkKCksIHN5c19zY2hlZF9zZXRhZmZpbml0eSgpOwotaW50CXN5c19zY2hlZF9nZXRhZmZpbml0eSgpLCBzeXNfc2V0eGF0dHIoKSwgc3lzX2xzZXR4YXR0cigpOwotaW50CXN5c19mc2V0eGF0dHIoKSwgc3lzX2dldHhhdHRyKCksIHN5c19sZ2V0eGF0dHIoKSwgc3lzX2ZnZXR4YXR0cigpOwotaW50CXN5c19saXN0eGF0dHIoKSwgc3lzX2xsaXN0eGF0dHIoKSwgc3lzX2ZsaXN0eGF0dHIoKTsKLWludAlzeXNfcmVtb3ZleGF0dHIoKSwgc3lzX2xyZW1vdmV4YXR0cigpLCBzeXNfZnJlbW92ZXhhdHRyKCk7Ci1pbnQJc3lzX3JlbWFwX2ZpbGVfcGFnZXMoKSwgc3lzX3JlYWRhaGVhZCgpLCBzeXNfdGdraWxsKCksIHN5c19zdGF0ZnM2NCgpOwotaW50CXN5c19mc3RhdGZzNjQoKSwgc3lzX2Nsb2NrX3NldHRpbWUoKSwgc3lzX2Nsb2NrX2dldHRpbWUoKTsKLWludAlzeXNfY2xvY2tfZ2V0cmVzKCksIHN5c19jbG9ja19uYW5vc2xlZXAoKTsKLWludAlzeXNfdGltZXJfY3JlYXRlKCksIHN5c190aW1lcl9zZXR0aW1lKCksIHN5c190aW1lcl9nZXR0aW1lKCk7Ci0KLSNpbmNsdWRlICJzeXNjYWxsMS5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwuaC4yIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwuaC4yCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGMwYmNhLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmguMgorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsLmguMix2IDEuMS4xLjEgMTk5OS8wMi8xOSAwMDoyMzoxNCB3aWNoZXJ0IEV4cCAkCi0gKi8KLQotI2luY2x1ZGUgImR1bW15LmgiCi0KLS8qIHByaW1hcnkgc3lzY2FsbHMgKi8KLQotaW50IHN5c19zZXR1cCgpLCBzeXNfZXhpdCgpLCBzeXNfZm9yaygpLCBzeXNfcmVhZCgpLCBzeXNfd3JpdGUoKTsKLWludCBzeXNfb3BlbigpLCBzeXNfY2xvc2UoKSwgc3lzX3dhaXRwaWQoKSwgc3lzX2NyZWF0KCksIHN5c19saW5rKCk7Ci1pbnQgc3lzX3VubGluaygpLCBzeXNfZXhlY3ZlKCksIHN5c19jaGRpcigpLCBzeXNfdGltZSgpLCBzeXNfbWtub2QoKTsKLWludCBzeXNfY2htb2QoKSwgc3lzX2Nob3duKCksIHN5c19icmVhaygpLCBzeXNfb2xkc3RhdCgpOwotaW50IHN5c19sc2VlaygpLCBzeXNfZ2V0cGlkKCksIHN5c19tb3VudCgpLCBzeXNfdW1vdW50KCk7Ci1pbnQgc3lzX3NldHVpZCgpLCBzeXNfZ2V0dWlkKCksIHN5c19zdGltZSgpLCBzeXNfcHRyYWNlKCk7Ci1pbnQgc3lzX2FsYXJtKCksIHN5c19vbGRmc3RhdCgpLCBzeXNfcGF1c2UoKSwgc3lzX3V0aW1lKCk7Ci1pbnQgc3lzX3N0dHkoKSwgc3lzX2d0dHkoKSwgc3lzX2FjY2VzcygpLCBzeXNfbmljZSgpLCBzeXNfZnRpbWUoKTsKLWludCBzeXNfc3luYygpLCBzeXNfa2lsbCgpLCBzeXNfcmVuYW1lKCksIHN5c19ta2RpcigpLCBzeXNfcm1kaXIoKTsKLWludCBzeXNfZHVwKCksIHN5c19waXBlKCksIHN5c190aW1lcygpLCBzeXNfcHJvZigpLCBzeXNfYnJrKCk7Ci1pbnQgc3lzX3NldGdpZCgpLCBzeXNfZ2V0Z2lkKCksIHN5c19zaWduYWwoKSwgc3lzX2dldGV1aWQoKTsKLWludCBzeXNfZ2V0ZWdpZCgpLCBzeXNfYWNjdCgpLCBzeXNfcGh5cygpLCBzeXNfbG9jaygpLCBzeXNfaW9jdGwoKTsKLWludCBzeXNfZmNudGwoKSwgc3lzX21weCgpLCBzeXNfc2V0cGdpZCgpLCBzeXNfdWxpbWl0KCk7Ci1pbnQgc3lzX29sZHVuYW1lKCksIHN5c191bWFzaygpLCBzeXNfY2hyb290KCksIHN5c191c3RhdCgpOwotaW50IHN5c19kdXAyKCksIHN5c19nZXRwcGlkKCksIHN5c19nZXRwZ3JwKCksIHN5c19zZXRzaWQoKTsKLWludCBzeXNfc2lnYWN0aW9uKCksIHN5c19zaWdnZXRtYXNrKCksIHN5c19zaWdzZXRtYXNrKCk7Ci1pbnQgc3lzX3NldHJldWlkKCksIHN5c19zZXRyZWdpZCgpLCBzeXNfc2lnc3VzcGVuZCgpOwotaW50IHN5c19zaWdwZW5kaW5nKCksIHN5c19zZXRob3N0bmFtZSgpLCBzeXNfc2V0cmxpbWl0KCk7Ci1pbnQgc3lzX2dldHJsaW1pdCgpLCBzeXNfZ2V0cnVzYWdlKCksIHN5c19nZXR0aW1lb2ZkYXkoKTsKLWludCBzeXNfc2V0dGltZW9mZGF5KCksIHN5c19nZXRncm91cHMoKSwgc3lzX3NldGdyb3VwcygpOwotaW50IHN5c19vbGRzZWxlY3QoKSwgc3lzX3N5bWxpbmsoKSwgc3lzX29sZGxzdGF0KCksIHN5c19yZWFkbGluaygpOwotaW50IHN5c191c2VsaWIoKSwgc3lzX3N3YXBvbigpLCBzeXNfcmVib290KCksIHN5c19yZWFkZGlyKCk7Ci1pbnQgc3lzX21tYXAoKSwgc3lzX211bm1hcCgpLCBzeXNfdHJ1bmNhdGUoKSwgc3lzX2Z0cnVuY2F0ZSgpOwotaW50IHN5c19mY2htb2QoKSwgc3lzX2ZjaG93bigpLCBzeXNfZ2V0cHJpb3JpdHkoKTsKLWludCBzeXNfc2V0cHJpb3JpdHkoKSwgc3lzX3Byb2ZpbCgpLCBzeXNfc3RhdGZzKCksIHN5c19mc3RhdGZzKCk7Ci1pbnQgc3lzX2lvcGVybSgpLCBzeXNfc29ja2V0Y2FsbCgpLCBzeXNfc3lzbG9nKCksIHN5c19zZXRpdGltZXIoKTsKLWludCBzeXNfZ2V0aXRpbWVyKCksIHN5c19zdGF0KCksIHN5c19sc3RhdCgpLCBzeXNfZnN0YXQoKTsKLWludCBzeXNfdW5hbWUoKSwgc3lzX2lvcGwoKSwgc3lzX3ZoYW5ndXAoKSwgc3lzX2lkbGUoKSwgc3lzX3ZtODYoKTsKLWludCBzeXNfd2FpdDQoKSwgc3lzX3N3YXBvZmYoKSwgc3lzX2lwYygpLCBzeXNfc2lncmV0dXJuKCk7Ci1pbnQgc3lzX2ZzeW5jKCksIHN5c19jbG9uZSgpLCBzeXNfc2V0ZG9tYWlubmFtZSgpLCBzeXNfc3lzaW5mbygpOwotaW50IHN5c19tb2RpZnlfbGR0KCksIHN5c19hZGp0aW1leCgpLCBzeXNfbXByb3RlY3QoKTsKLWludCBzeXNfc2lncHJvY21hc2soKSwgc3lzX2NyZWF0ZV9tb2R1bGUoKSwgc3lzX2luaXRfbW9kdWxlKCk7Ci1pbnQgc3lzX2RlbGV0ZV9tb2R1bGUoKSwgc3lzX2dldF9rZXJuZWxfc3ltcygpLCBzeXNfcXVvdGFjdGwoKTsKLWludCBzeXNfZ2V0cGdpZCgpLCBzeXNfZmNoZGlyKCksIHN5c19iZGZsdXNoKCk7Ci1pbnQgc3lzX3N5c2ZzKCksIHN5c19wZXJzb25hbGl0eSgpLCBzeXNfYWZzX3N5c2NhbGwoKTsKLWludCBzeXNfc2V0ZnN1aWQoKSwgc3lzX3NldGZzZ2lkKCksIHN5c19sbHNlZWsoKTsKLWludCBzeXNfZ2V0ZGVudHMoKSwgc3lzX2Zsb2NrKCksIHN5c19tc3luYygpOwotaW50IHN5c19yZWFkdigpLCBzeXNfd3JpdGV2KCksIHN5c19zZWxlY3QoKTsKLWludCBzeXNfZ2V0c2lkKCksIHN5c19mZGF0YXN5bmMoKSwgc3lzX3N5c2N0bCgpOwotaW50IHN5c19tbG9jaygpLCBzeXNfbXVubG9jaygpLCBzeXNfbWxvY2thbGwoKSwgc3lzX211bmxvY2thbGwoKTsKLWludCBzeXNfc2NoZWRfc2V0cGFyYW0oKSwgc3lzX3NjaGVkX2dldHBhcmFtKCk7Ci1pbnQgc3lzX3NjaGVkX3NldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyKCksIHN5c19zY2hlZF95aWVsZCgpOwotaW50IHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KCksIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKCk7Ci1pbnQgc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCgpLCBzeXNfbmFub3NsZWVwKCksIHN5c19tcmVtYXAoKTsKLWludCBzeXNfc2VuZG1zZygpLCBzeXNfcmVjdm1zZygpOwotCi0vKiBzeXNfc29ja2V0Y2FsbCBzdWJjYWxscyAqLwotCi1pbnQgc3lzX3NvY2tldCgpLCBzeXNfYmluZCgpLCBzeXNfY29ubmVjdCgpLCBzeXNfbGlzdGVuKCk7Ci1pbnQgc3lzX2FjY2VwdCgpLCBzeXNfZ2V0c29ja25hbWUoKSwgc3lzX2dldHBlZXJuYW1lKCksIHN5c19zb2NrZXRwYWlyKCk7Ci1pbnQgc3lzX3NlbmQoKSwgc3lzX3JlY3YoKSwgc3lzX3NlbmR0bygpLCBzeXNfcmVjdmZyb20oKTsKLWludCBzeXNfc2h1dGRvd24oKSwgc3lzX3NldHNvY2tvcHQoKSwgc3lzX2dldHNvY2tvcHQoKTsKLQotI2lmbmRlZiBBTFBIQQotI2RlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJMTgwCi0jZGVmaW5lIFNZU19zb2NrZXQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfYmluZAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNZU19jb25uZWN0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMykKLSNkZWZpbmUgU1lTX2xpc3RlbgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNZU19hY2NlcHQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA1KQotI2RlZmluZSBTWVNfZ2V0c29ja25hbWUJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA2KQotI2RlZmluZSBTWVNfZ2V0cGVlcm5hbWUJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA3KQotI2RlZmluZSBTWVNfc29ja2V0cGFpcgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDgpCi0jZGVmaW5lIFNZU19zZW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgOSkKLSNkZWZpbmUgU1lTX3JlY3YJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMCkKLSNkZWZpbmUgU1lTX3NlbmR0bwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDExKQotI2RlZmluZSBTWVNfcmVjdmZyb20JCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMikKLSNkZWZpbmUgU1lTX3NodXRkb3duCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTMpCi0jZGVmaW5lIFNZU19zZXRzb2Nrb3B0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTQpCi0jZGVmaW5lIFNZU19nZXRzb2Nrb3B0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTUpCi0KLSNkZWZpbmUgU1lTX3NvY2tldF9uc3ViY2FsbHMJMTYKLSNlbmRpZiAvKiAhQUxQSEEgKi8KLQotLyogc3lzX2lwYyBzdWJjYWxscyAqLwotCi1pbnQgc3lzX3NlbWdldCgpLCBzeXNfc2VtY3RsKCk7Ci1pbnQgc3lzX21zZ3NuZCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpOwotaW50IHN5c19zaG1hdCgpLCBzeXNfc2htZHQoKSwgc3lzX3NobWdldCgpLCBzeXNfc2htY3RsKCk7Ci0KLSNpZm5kZWYgQUxQSEEKLSNkZWZpbmUgU1lTX2lwY19zdWJjYWxsCQkyMDAKLSNkZWZpbmUgU1lTX3NlbW9wCQkoU1lTX2lwY19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU1lTX3NlbWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNZU19zZW1jdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAzKQotI2RlZmluZSBTWVNfbXNnc25kCQkoU1lTX2lwY19zdWJjYWxsICsgMTEpCi0jZGVmaW5lIFNZU19tc2dyY3YJCShTWVNfaXBjX3N1YmNhbGwgKyAxMikKLSNkZWZpbmUgU1lTX21zZ2dldAkJKFNZU19pcGNfc3ViY2FsbCArIDEzKQotI2RlZmluZSBTWVNfbXNnY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMTQpCi0jZGVmaW5lIFNZU19zaG1hdAkJKFNZU19pcGNfc3ViY2FsbCArIDIxKQotI2RlZmluZSBTWVNfc2htZHQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMikKLSNkZWZpbmUgU1lTX3NobWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIzKQotI2RlZmluZSBTWVNfc2htY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMjQpCi0KLSNkZWZpbmUgU1lTX2lwY19uc3ViY2FsbHMJMjUKLSNlbmRpZiAvKiBBTFBIQSAqLwotCi0jaWZkZWYgQUxQSEEKLWludCBvc2Zfc3RhdGZzKCksIG9zZl9mc3RhdGZzKCksIHN5c19nZXRwYWdlc2l6ZSgpLCBzeXNfbWFkdmlzZSgpOwotaW50IHN5c19zZXRwZ3JwKCksIHN5c19nZXRob3N0bmFtZSgpLCBzeXNfZ2V0ZHRhYmxlc2l6ZSgpLCBzeXNfdXRpbWVzKCk7Ci0jZW5kaWYKLQotaW50IHN5c19fbGxzZWVrKCksIHN5c19fbmV3c2VsZWN0KCksIHN5c19fc3lzY3RsKCksIHN5c19rbG9nKCk7Ci1pbnQgc3lzX3ByZXZfZnN0YXQoKSwgc3lzX3ByZXZfbHN0YXQoKSwgc3lzX3ByZXZfbWtub2QoKSwgc3lzX3ByZXZfc3RhdCgpOwotaW50IHN5c19wcmV2X3VzdGF0KCksIHN5c19zeXNjYWxsX2Zsb2NrKCksIHN5c19zeXNjYWxsX3JlYWR2KCk7Ci1pbnQgc3lzX3N5c2NhbGxfd3JpdGV2KCk7Ci0KLSNpbmNsdWRlICJzeXNjYWxsMS5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2VkNzYyNC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbDEuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsMS5oLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIzOjE2IHdpY2hlcnQgRXhwICQKLSAqLwotCi0jZGVmaW5lCVNPTEFSSVNfc3lzY2FsbAkwCi0jZGVmaW5lCVNPTEFSSVNfZXhpdAkxCi0jZGVmaW5lCVNPTEFSSVNfZm9yawkyCi0jZGVmaW5lCVNPTEFSSVNfcmVhZAkzCi0jZGVmaW5lCVNPTEFSSVNfd3JpdGUJNAotI2RlZmluZQlTT0xBUklTX29wZW4JNQotI2RlZmluZQlTT0xBUklTX2Nsb3NlCTYKLSNkZWZpbmUJU09MQVJJU193YWl0CTcKLSNkZWZpbmUJU09MQVJJU19jcmVhdAk4Ci0jZGVmaW5lCVNPTEFSSVNfbGluawk5Ci0jZGVmaW5lCVNPTEFSSVNfdW5saW5rCTEwCi0jZGVmaW5lCVNPTEFSSVNfZXhlYwkxMQotI2RlZmluZQlTT0xBUklTX2NoZGlyCTEyCi0jZGVmaW5lCVNPTEFSSVNfdGltZQkxMwotI2RlZmluZQlTT0xBUklTX21rbm9kCTE0Ci0jZGVmaW5lCVNPTEFSSVNfY2htb2QJMTUKLSNkZWZpbmUJU09MQVJJU19jaG93bgkxNgotI2RlZmluZQlTT0xBUklTX2JyawkJMTcKLSNkZWZpbmUJU09MQVJJU19zdGF0CTE4Ci0jZGVmaW5lCVNPTEFSSVNfbHNlZWsJMTkKLSNkZWZpbmUJU09MQVJJU19nZXRwaWQJMjAKLSNkZWZpbmUJU09MQVJJU19tb3VudAkyMQotI2RlZmluZQlTT0xBUklTX3Vtb3VudAkyMgotI2RlZmluZQlTT0xBUklTX3NldHVpZAkyMwotI2RlZmluZQlTT0xBUklTX2dldHVpZAkyNAotI2RlZmluZQlTT0xBUklTX3N0aW1lCTI1Ci0jZGVmaW5lCVNPTEFSSVNfcHRyYWNlCTI2Ci0jZGVmaW5lCVNPTEFSSVNfYWxhcm0JMjcKLSNkZWZpbmUJU09MQVJJU19mc3RhdAkyOAotI2RlZmluZQlTT0xBUklTX3BhdXNlCTI5Ci0jZGVmaW5lCVNPTEFSSVNfdXRpbWUJMzAKLSNkZWZpbmUJU09MQVJJU19zdHR5CTMxCi0jZGVmaW5lCVNPTEFSSVNfZ3R0eQkzMgotI2RlZmluZQlTT0xBUklTX2FjY2VzcwkzMwotI2RlZmluZQlTT0xBUklTX25pY2UJMzQKLSNkZWZpbmUJU09MQVJJU19zdGF0ZnMJMzUKLSNkZWZpbmUJU09MQVJJU19zeW5jCTM2Ci0jZGVmaW5lCVNPTEFSSVNfa2lsbAkzNwotI2RlZmluZQlTT0xBUklTX2ZzdGF0ZnMJMzgKLSNkZWZpbmUJU09MQVJJU19wZ3Jwc3lzCTM5Ci0jZGVmaW5lCVNPTEFSSVNfeGVuaXgJNDAKLSNkZWZpbmUJU09MQVJJU19kdXAJCTQxCi0jZGVmaW5lCVNPTEFSSVNfcGlwZQk0MgotI2RlZmluZQlTT0xBUklTX3RpbWVzCTQzCi0jZGVmaW5lCVNPTEFSSVNfcHJvZmlsCTQ0Ci0jZGVmaW5lCVNPTEFSSVNfcGxvY2sJNDUKLSNkZWZpbmUJU09MQVJJU19zZXRnaWQJNDYKLSNkZWZpbmUJU09MQVJJU19nZXRnaWQJNDcKLSNkZWZpbmUJU09MQVJJU19zaWduYWwJNDgKLSNkZWZpbmUJU09MQVJJU19tc2dzeXMJNDkKLSNkZWZpbmUJU09MQVJJU19zeXNzdW4JNTAKLSNkZWZpbmUJU09MQVJJU19hY2N0CTUxCi0jZGVmaW5lCVNPTEFSSVNfc2htc3lzCTUyCi0jZGVmaW5lCVNPTEFSSVNfc2Vtc3lzCTUzCi0jZGVmaW5lCVNPTEFSSVNfaW9jdGwJNTQKLSNkZWZpbmUJU09MQVJJU191YWRtaW4JNTUKLSNkZWZpbmUJU09MQVJJU191dHNzeXMJNTcKLSNkZWZpbmUJU09MQVJJU19mZHN5bmMJNTgKLSNkZWZpbmUJU09MQVJJU19leGVjdmUJNTkKLSNkZWZpbmUJU09MQVJJU191bWFzawk2MAotI2RlZmluZQlTT0xBUklTX2Nocm9vdAk2MQotI2RlZmluZQlTT0xBUklTX2ZjbnRsCTYyCi0jZGVmaW5lCVNPTEFSSVNfdWxpbWl0CTYzCi0jZGVmaW5lCVNPTEFSSVNfcm1kaXIJNzkKLSNkZWZpbmUJU09MQVJJU19ta2Rpcgk4MAotI2RlZmluZQlTT0xBUklTX2dldGRlbnRzCTgxCi0jZGVmaW5lCVNPTEFSSVNfc3lzZnMJODQKLSNkZWZpbmUJU09MQVJJU19nZXRtc2cJODUKLSNkZWZpbmUJU09MQVJJU19wdXRtc2cJODYKLSNkZWZpbmUJU09MQVJJU19wb2xsCTg3Ci0jZGVmaW5lCVNPTEFSSVNfbHN0YXQJODgKLSNkZWZpbmUJU09MQVJJU19zeW1saW5rCTg5Ci0jZGVmaW5lCVNPTEFSSVNfcmVhZGxpbmsJOTAKLSNkZWZpbmUJU09MQVJJU19zZXRncm91cHMJOTEKLSNkZWZpbmUJU09MQVJJU19nZXRncm91cHMJOTIKLSNkZWZpbmUJU09MQVJJU19mY2htb2QJOTMKLSNkZWZpbmUJU09MQVJJU19mY2hvd24JOTQKLSNkZWZpbmUJU09MQVJJU19zaWdwcm9jbWFzawk5NQotI2RlZmluZQlTT0xBUklTX3NpZ3N1c3BlbmQJOTYKLSNkZWZpbmUJU09MQVJJU19zaWdhbHRzdGFjawk5NwotI2RlZmluZQlTT0xBUklTX3NpZ2FjdGlvbgk5OAotI2RlZmluZQlTT0xBUklTX3NpZ3BlbmRpbmcJOTkKLSNkZWZpbmUJU09MQVJJU19jb250ZXh0CTEwMAotI2RlZmluZQlTT0xBUklTX2V2c3lzCTEwMQotI2RlZmluZQlTT0xBUklTX2V2dHJhcHJldAkxMDIKLSNkZWZpbmUJU09MQVJJU19zdGF0dmZzCTEwMwotI2RlZmluZQlTT0xBUklTX2ZzdGF0dmZzCTEwNAotI2RlZmluZQlTT0xBUklTX25mc3N5cwkxMDYKLSNkZWZpbmUJU09MQVJJU193YWl0c3lzCTEwNwotI2RlZmluZQlTT0xBUklTX3NpZ3NlbmRzeXMJMTA4Ci0jZGVmaW5lCVNPTEFSSVNfaHJ0c3lzCTEwOQotI2RlZmluZQlTT0xBUklTX2FjYW5jZWwJMTEwCi0jZGVmaW5lCVNPTEFSSVNfYXN5bmMJMTExCi0jZGVmaW5lCVNPTEFSSVNfcHJpb2NudGxzeXMJMTEyCi0jZGVmaW5lCVNPTEFSSVNfcGF0aGNvbmYJMTEzCi0jZGVmaW5lCVNPTEFSSVNfbWluY29yZQkxMTQKLSNkZWZpbmUJU09MQVJJU19tbWFwCTExNQotI2RlZmluZQlTT0xBUklTX21wcm90ZWN0CTExNgotI2RlZmluZQlTT0xBUklTX211bm1hcAkxMTcKLSNkZWZpbmUJU09MQVJJU19mcGF0aGNvbmYJMTE4Ci0jZGVmaW5lCVNPTEFSSVNfdmZvcmsJMTE5Ci0jZGVmaW5lCVNPTEFSSVNfZmNoZGlyCTEyMAotI2RlZmluZQlTT0xBUklTX3JlYWR2CTEyMQotI2RlZmluZQlTT0xBUklTX3dyaXRldgkxMjIKLSNkZWZpbmUJU09MQVJJU194c3RhdAkxMjMKLSNkZWZpbmUJU09MQVJJU19seHN0YXQJMTI0Ci0jZGVmaW5lCVNPTEFSSVNfZnhzdGF0CTEyNQotI2RlZmluZQlTT0xBUklTX3hta25vZAkxMjYKLSNkZWZpbmUJU09MQVJJU19jbG9jYWwJMTI3Ci0jZGVmaW5lCVNPTEFSSVNfc2V0cmxpbWl0CTEyOAotI2RlZmluZQlTT0xBUklTX2dldHJsaW1pdAkxMjkKLSNkZWZpbmUJU09MQVJJU19sY2hvd24JMTMwCi0jZGVmaW5lCVNPTEFSSVNfbWVtY250bAkxMzEKLSNkZWZpbmUJU09MQVJJU19nZXRwbXNnCTEzMgotI2RlZmluZQlTT0xBUklTX3B1dHBtc2cJMTMzCi0jZGVmaW5lCVNPTEFSSVNfcmVuYW1lCTEzNAotI2RlZmluZQlTT0xBUklTX3VuYW1lCTEzNQotI2RlZmluZQlTT0xBUklTX3NldGVnaWQJMTM2Ci0jZGVmaW5lCVNPTEFSSVNfc3lzY29uZmlnCTEzNwotI2RlZmluZQlTT0xBUklTX2FkanRpbWUJMTM4Ci0jZGVmaW5lCVNPTEFSSVNfc3lzdGVtaW5mbwkxMzkKLSNkZWZpbmUJU09MQVJJU19zZXRldWlkCTE0MQotI2RlZmluZQlTT0xBUklTX3Z0cmFjZQkxNDIKLSNkZWZpbmUJU09MQVJJU19mb3JrMQkxNDMKLSNkZWZpbmUJU09MQVJJU19zaWd0aW1lZHdhaXQJMTQ0Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2luZm8JMTQ1Ci0jZGVmaW5lCVNPTEFSSVNfeWllbGQJMTQ2Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3NlbWFfd2FpdAkxNDcKLSNkZWZpbmUJU09MQVJJU19sd3Bfc2VtYV9wb3N0CTE0OAotI2RlZmluZQlTT0xBUklTX21vZGN0bAkxNTIKLSNkZWZpbmUJU09MQVJJU19mY2hyb290CTE1MwotI2RlZmluZQlTT0xBUklTX3V0aW1lcwkxNTQKLSNkZWZpbmUJU09MQVJJU192aGFuZ3VwCTE1NQotI2RlZmluZQlTT0xBUklTX2dldHRpbWVvZmRheQkxNTYKLSNkZWZpbmUJU09MQVJJU19nZXRpdGltZXIJCTE1NwotI2RlZmluZQlTT0xBUklTX3NldGl0aW1lcgkJMTU4Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2NyZWF0ZQkJMTU5Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2V4aXQJCTE2MAotI2RlZmluZQlTT0xBUklTX2x3cF9zdXNwZW5kCQkxNjEKLSNkZWZpbmUJU09MQVJJU19sd3BfY29udGludWUJMTYyCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2tpbGwJCTE2MwotI2RlZmluZQlTT0xBUklTX2x3cF9zZWxmCQkxNjQKLSNkZWZpbmUJU09MQVJJU19sd3Bfc2V0cHJpdmF0ZQkxNjUKLSNkZWZpbmUJU09MQVJJU19sd3BfZ2V0cHJpdmF0ZQkxNjYKLSNkZWZpbmUJU09MQVJJU19sd3Bfd2FpdAkJMTY3Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX211dGV4X3VubG9jawkxNjgKLSNkZWZpbmUJU09MQVJJU19sd3BfbXV0ZXhfbG9jawkxNjkKLSNkZWZpbmUJU09MQVJJU19sd3BfY29uZF93YWl0CTE3MAotI2RlZmluZQlTT0xBUklTX2x3cF9jb25kX3NpZ25hbAkxNzEKLSNkZWZpbmUJU09MQVJJU19sd3BfY29uZF9icm9hZGNhc3QJMTcyCi0jZGVmaW5lCVNPTEFSSVNfcHJlYWQJCTE3MwotI2RlZmluZQlTT0xBUklTX3B3cml0ZQkJMTc0Ci0jZGVmaW5lCVNPTEFSSVNfbGxzZWVrCQkxNzUKLSNkZWZpbmUJU09MQVJJU19pbnN0X3N5bmMJCTE3NgotI2RlZmluZQlTT0xBUklTX2thaW8JCTE3OAotI2RlZmluZQlTT0xBUklTX3Rzb2xzeXMJCTE4NAotI2RlZmluZQlTT0xBUklTX2FjbAkJCTE4NQotI2RlZmluZQlTT0xBUklTX2F1ZGl0c3lzCQkxODYKLSNkZWZpbmUJU09MQVJJU19wcm9jZXNzb3JfYmluZAkxODcKLSNkZWZpbmUJU09MQVJJU19wcm9jZXNzb3JfaW5mbwkxODgKLSNkZWZpbmUJU09MQVJJU19wX29ubGluZQkJMTg5Ci0jZGVmaW5lCVNPTEFSSVNfc2lncXVldWUJCTE5MAotI2RlZmluZQlTT0xBUklTX2Nsb2NrX2dldHRpbWUJMTkxCi0jZGVmaW5lCVNPTEFSSVNfY2xvY2tfc2V0dGltZQkxOTIKLSNkZWZpbmUJU09MQVJJU19jbG9ja19nZXRyZXMJMTkzCi0jZGVmaW5lCVNPTEFSSVNfdGltZXJfY3JlYXRlCTE5NAotI2RlZmluZQlTT0xBUklTX3RpbWVyX2RlbGV0ZQkxOTUKLSNkZWZpbmUJU09MQVJJU190aW1lcl9zZXR0aW1lCTE5NgotI2RlZmluZQlTT0xBUklTX3RpbWVyX2dldHRpbWUJMTk3Ci0jZGVmaW5lCVNPTEFSSVNfdGltZXJfZ2V0b3ZlcnJ1bgkxOTgKLSNkZWZpbmUJU09MQVJJU19uYW5vc2xlZXAJCTE5OQotI2RlZmluZQlTT0xBUklTX2ZhY2wJCTIwMAotI2RlZmluZQlTT0xBUklTX2Rvb3IJCTIwMQotI2RlZmluZQlTT0xBUklTX3NldHJldWlkCQkyMDIKLSNkZWZpbmUJU09MQVJJU19zZXRyZWdpZAkJMjAzCi0jZGVmaW5lCVNPTEFSSVNfc2lnbm90aWZ5d2FpdAkyMTAKLSNkZWZpbmUJU09MQVJJU19sd3Bfc2lncmVkaXJlY3QJMjExCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2FsYXJtCQkyMTIKLQotI2luY2x1ZGUgImR1bW15Mi5oIgotCi1leHRlcm4gaW50IHNvbGFyaXNfc3lzY2FsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2V4aXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mb3JrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcmVhZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3dyaXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfb3BlbigpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nsb3NlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2NyZWF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbGluaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3VubGluaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2V4ZWMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jaGRpcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ta25vZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2NobW9kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2hvd24oKTsKLWV4dGVybiBpbnQgc29sYXJpc19icmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHNlZWsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRwaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tb3VudCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Vtb3VudCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldHVpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldHVpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHRyYWNlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWxhcm0oKTsKLWV4dGVybiBpbnQgc29sYXJpc19mc3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3BhdXNlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdXRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdHR5KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ3R0eSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FjY2VzcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX25pY2UoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdGF0ZnMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfa2lsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZzdGF0ZnMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wZ3Jwc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0cGdycCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3hlbml4KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzc2dpKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZHVwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcGlwZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHJvZmlsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcGxvY2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRnaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRnaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdjYWxsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbXNnc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzc3VuKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzaTg2KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzbWlwcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c21hY2hpbmUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hY2N0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2htc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2Vtc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfaW9jdGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc191YWRtaW4oKTsKLWV4dGVybiBpbnQgc29sYXJpc191dHNzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mZHN5bmMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19leGVjdmUoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bWFzaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nocm9vdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjbnRsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdWxpbWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcm1kaXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ta2RpcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldGRlbnRzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzZnMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRtc2coKTsKLWV4dGVybiBpbnQgc29sYXJpc19wdXRtc2coKTsKLWV4dGVybiBpbnQgc29sYXJpc19wb2xsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeW1saW5rKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcmVhZGxpbmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRncm91cHMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRncm91cHMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mY2htb2QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mY2hvd24oKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdwcm9jbWFzaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3N1c3BlbmQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdhbHRzdGFjaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ2FjdGlvbigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NwY2FsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2NvbnRleHQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ldnN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2V2dHJhcHJldCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N0YXR2ZnMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mc3RhdHZmcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX25mc3N5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3dhaXRpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3NlbmRzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ocnRzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hY2FuY2VsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYXN5bmMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wcmlvY250bHN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3BhdGhjb25mKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbWluY29yZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21tYXAoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tcHJvdGVjdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX211bm1hcCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZwYXRoY29uZigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Zmb3JrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNoZGlyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcmVhZHYoKTsKLWV4dGVybiBpbnQgc29sYXJpc193cml0ZXYoKTsKLWV4dGVybiBpbnQgc29sYXJpc194c3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x4c3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Z4c3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3hta25vZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NhbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldHJsaW1pdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2dldHJsaW1pdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xjaG93bigpOwotZXh0ZXJuIGludCBzb2xhcmlzX21lbWNudGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRwbXNnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHV0cG1zZygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlbmFtZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3VuYW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0ZWdpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2NvbmZpZygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FkanRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNpbmZvKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0ZXVpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Z0cmFjZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZvcmsxKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lndGltZWR3YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2luZm8oKTsKLWV4dGVybiBpbnQgc29sYXJpc195aWVsZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZW1hX3dhaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfc2VtYV9wb3N0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbW9kY3RsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNocm9vdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3V0aW1lcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3ZoYW5ndXAoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXR0aW1lb2ZkYXkoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRpdGltZXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRpdGltZXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfY3JlYXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2V4aXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfc3VzcGVuZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb250aW51ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9raWxsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3NlbGYoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfc2V0cHJpdmF0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9nZXRwcml2YXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3dhaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfbXV0ZXhfdW5sb2NrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX211dGV4X2xvY2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfY29uZF93YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbmRfc2lnbmFsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbmRfYnJvYWRjYXN0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHJlYWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wd3JpdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sbHNlZWsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19pbnN0X3N5bmMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hdWRpdHN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Byb2Nlc3Nvcl9iaW5kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHJvY2Vzc29yX2luZm8oKTsKLWV4dGVybiBpbnQgc29sYXJpc19wX29ubGluZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3F1ZXVlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2xvY2tfZ2V0dGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NrX3NldHRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9ja19nZXRyZXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcl9jcmVhdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcl9kZWxldGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcl9zZXR0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfZ2V0dGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2dldG92ZXJydW4oKTsKLWV4dGVybiBpbnQgc29sYXJpc19uYW5vc2xlZXAoKTsKLQotLyogc29sYXJpc19wZ3Jwc3lzIHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19nZXRwZ3JwKCksIHNvbGFyaXNfc2V0cGdycCgpLCBzb2xhcmlzX2dldHNpZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldHNpZCgpLCBzb2xhcmlzX2dldHBnaWQoKSwgc29sYXJpc19zZXRwZ2lkKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwJMzAwCi0jZGVmaW5lIFNPTEFSSVNfZ2V0cGdycAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zZXRwZ3JwCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX2dldHNpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19zZXRzaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDMpCi0jZGVmaW5lIFNPTEFSSVNfZ2V0cGdpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgNCkKLSNkZWZpbmUgU09MQVJJU19zZXRwZ2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyA1KQotCi0jZGVmaW5lIFNPTEFSSVNfcGdycHN5c19uc3ViY2FsbHMJNgotCi0vKiBzb2xhcmlzX3NpZ2NhbGwgc3ViY2FsbHMgKi8KLQotI3VuZGVmIFNPTEFSSVNfc2lnbmFsCi0jZGVmaW5lIFNPTEFSSVNfc2lnY2FsbAkJNDgKLQotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ25hbCgpLCBzb2xhcmlzX3NpZ3NldCgpLCBzb2xhcmlzX3NpZ2hvbGQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdyZWxzZSgpLCBzb2xhcmlzX3NpZ2lnbm9yZSgpLCBzb2xhcmlzX3NpZ3BhdXNlKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zaWdjYWxsX3N1YmNhbGwJMzEwCi0jZGVmaW5lIFNPTEFSSVNfc2lnbmFsCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTT0xBUklTX3NpZ3NldAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zaWdob2xkCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX3NpZ3JlbHNlCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyAzKQotI2RlZmluZSBTT0xBUklTX3NpZ2lnbm9yZQkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgNCkKLSNkZWZpbmUgU09MQVJJU19zaWdwYXVzZQkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgNSkKLQotI2RlZmluZSBTT0xBUklTX3NpZ2NhbGxfbnN1YmNhbGxzCTYKLQotLyogbXNnc3lzIHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19tc2dnZXQoKSwgc29sYXJpc19tc2djdGwoKSwgc29sYXJpc19tc2dyY3YoKSwgc29sYXJpc19tc2dzbmQoKTsKLQotI2RlZmluZSBTT0xBUklTX21zZ3N5c19zdWJjYWxsCTMyMAotI2RlZmluZSBTT0xBUklTX21zZ2dldAkJKFNPTEFSSVNfbXNnc3lzX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTT0xBUklTX21zZ2N0bAkJKFNPTEFSSVNfbXNnc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX21zZ3JjdgkJKFNPTEFSSVNfbXNnc3lzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX21zZ3NuZAkJKFNPTEFSSVNfbXNnc3lzX3N1YmNhbGwgKyAzKQotCi0jZGVmaW5lIFNPTEFSSVNfbXNnc3lzX25zdWJjYWxscwk0Ci0KLS8qIHNobXN5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfc2htYXQoKSwgc29sYXJpc19zaG1jdGwoKSwgc29sYXJpc19zaG1kdCgpLCBzb2xhcmlzX3NobWdldCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfc2htc3lzX3N1YmNhbGwJMzMwCi0jZGVmaW5lIFNPTEFSSVNfc2htYXQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zaG1jdGwJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zaG1kdAkJKFNPTEFSSVNfc2htc3lzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX3NobWdldAkJKFNPTEFSSVNfc2htc3lzX3N1YmNhbGwgKyAzKQotCi0jZGVmaW5lIFNPTEFSSVNfc2htc3lzX25zdWJjYWxscwk0Ci0KLS8qIHNlbXN5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfc2VtY3RsKCksIHNvbGFyaXNfc2VtZ2V0KCksIHNvbGFyaXNfc2Vtb3AoKTsKLQotI2RlZmluZSBTT0xBUklTX3NlbXN5c19zdWJjYWxsCTM0MAotI2RlZmluZSBTT0xBUklTX3NlbWN0bAkJKFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwgKyAwKQotI2RlZmluZSBTT0xBUklTX3NlbWdldAkJKFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX3NlbW9wCQkoU09MQVJJU19zZW1zeXNfc3ViY2FsbCArIDIpCi0KLSNkZWZpbmUgU09MQVJJU19zZW1zeXNfbnN1YmNhbGxzCTMKLQotLyogdXRzc3lzIHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19vbGR1bmFtZSgpLCBzb2xhcmlzX3VzdGF0KCksIHNvbGFyaXNfZnVzZXJzKCk7Ci0KLSNkZWZpbmUgU09MQVJJU191dHNzeXNfc3ViY2FsbAkzNTAKLQotI2RlZmluZSBTT0xBUklTX29sZHVuYW1lCQkoU09MQVJJU191dHNzeXNfc3ViY2FsbCArIDApCi0JCQkJLyogMSBpcyB1bnVzZWQgKi8KLSNkZWZpbmUgU09MQVJJU191c3RhdAkJKFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX2Z1c2VycwkJKFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwgKyAzKQotCi0jZGVmaW5lIFNPTEFSSVNfdXRzc3lzX25zdWJjYWxscwk0Ci0KLS8qIHN5c2ZzIHN1YmNhbGxzICovCi0KLWV4dGVybiBpbnQgc29sYXJpc19zeXNmczEoKSwgc29sYXJpc19zeXNmczIoKSwgc29sYXJpc19zeXNmczMoKTsKLQotI2RlZmluZSBTT0xBUklTX3N5c2ZzX3N1YmNhbGwJMzYwCi0JCQkJLyogMCBpcyB1bnVzZWQgKi8KLSNkZWZpbmUgU09MQVJJU19zeXNmczEJCShTT0xBUklTX3N5c2ZzX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX3N5c2ZzMgkJKFNPTEFSSVNfc3lzZnNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfc3lzZnMzCQkoU09MQVJJU19zeXNmc19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX3N5c2ZzX25zdWJjYWxscwk0Ci0KLS8qIHNvbGFyaXNfc3BjYWxsIHN1YmNhbGxzICovCi0KLSN1bmRlZiBTT0xBUklTX3NpZ3BlbmRpbmcKLSNkZWZpbmUgU09MQVJJU19zcGNhbGwJCTk5Ci0KLWV4dGVybiBpbnQgc29sYXJpc19zaWdwZW5kaW5nKCksIHNvbGFyaXNfc2lnZmlsbHNldCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfc3BjYWxsX3N1YmNhbGwJMzcwCi0JCQkJLyogMCBpcyB1bnVzZWQgKi8KLSNkZWZpbmUgU09MQVJJU19zaWdwZW5kaW5nCQkoU09MQVJJU19zcGNhbGxfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc2lnZmlsbHNldAkJKFNPTEFSSVNfc3BjYWxsX3N1YmNhbGwgKyAyKQotCi0jZGVmaW5lIFNPTEFSSVNfc3BjYWxsX25zdWJjYWxscwkzCi0KLS8qIHNvbGFyaXNfY29udGV4dCBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfZ2V0Y29udGV4dCgpLCBzb2xhcmlzX3NldGNvbnRleHQoKTsKLQotI2RlZmluZSBTT0xBUklTX2NvbnRleHRfc3ViY2FsbAkzODAKLSNkZWZpbmUgU09MQVJJU19nZXRjb250ZXh0CQkoU09MQVJJU19jb250ZXh0X3N1YmNhbGwgKyAwKQotI2RlZmluZSBTT0xBUklTX3NldGNvbnRleHQJCShTT0xBUklTX2NvbnRleHRfc3ViY2FsbCArIDEpCi0KLSNkZWZpbmUgU09MQVJJU19jb250ZXh0X25zdWJjYWxscwkyCi0KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODcyOTQ2Li4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNTMgKzAsMCBAQAotCXsgMSwJMCwJc3lzX3NldHVwLAkic2V0dXAiIH0sCQkvKiAwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCSJleGl0IiB9LAkJLyogMSAqLwotCXsgMCwJVFAsCXN5c19mb3JrLAkiZm9yayIgfSwJCS8qIDIgKi8KLQl7IDMsCTAsCXN5c19yZWFkLAkicmVhZCIgfSwJCS8qIDMgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJIndyaXRlIiB9LAkJLyogNCAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkib3BlbiIgfSwJCS8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJImNsb3NlIiB9LAkJLyogNiAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJIndhaXQ0IiB9LAkJLyogNyAqLwotCXsgMiwJVEYsCXN5c19jcmVhdCwJImNyZWF0IiB9LAkJLyogOCAqLwotCXsgMiwJVEYsCXN5c19saW5rLAkibGluayIgfSwJCS8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkidW5saW5rIiB9LAkJLyogMTAgKi8KLQl7IDIsICAgIFRGfFRQLAlzeXNfZXhlY3YsCSJleGVjdiIgfSwJCS8qIDExICovCi0JeyAxLAlURiwJc3lzX2NoZGlyLAkiY2hkaXIiIH0sCQkvKiAxMiAqLwotICAgICAgICB7IDMsICAgIFRGLCAgICAgc3lzX2Nob3duLCAgICAgICJjaG93biJ9LAkJLyogMTMgKi8KLQl7IDMsCVRGLAlzeXNfbWtub2QsCSJta25vZCIgfSwJCS8qIDE0ICovCi0JeyAyLAlURiwJc3lzX2NobW9kLAkiY2htb2QiIH0sCQkvKiAxNSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJImxjaG93biIgfSwJCS8qIDE2ICovCi0JeyAxLAkwLAlzeXNfYnJrLAkiYnJrIiB9LAkJLyogMTcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJInBlcmZjdHIiIH0sCQkvKiAxOCAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkibHNlZWsiIH0sCQkvKiAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJImdldHBpZCIgfSwJCS8qIDIwICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkiY2FwZ2V0IiB9LAkJLyogMjEgKi8KLQl7IDIsCTAsCXN5c19jYXBzZXQsCSJjYXBzZXQiIH0sCQkvKiAyMiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJInNldHVpZCIgfSwJCS8qIDIzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkiZ2V0dWlkIiB9LAkJLyogMjQgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkidGltZSIgfSwJCS8qIDI1ICovCi0JeyA1LAkwLAlzeXNfcHRyYWNlLAkicHRyYWNlIiB9LAkJLyogMjYgKi8KLQl7IDEsCTAsCXN5c19hbGFybSwJImFsYXJtIiB9LAkJLyogMjcgKi8KLQl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssInNpZ2FsdHN0YWNrIiB9LAkvKiAyOCAqLwotCXsgMCwJVFMsCXN5c19wYXVzZSwJInBhdXNlIiB9LAkJLyogMjkgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCSJ1dGltZSIgfSwJCS8qIDMwICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkibGNob3duMzIiIH0sCQkvKiAzMSAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJImZjaG93bjMyIiB9LAkJLyogMzIgKi8KLQl7IDIsCVRGLAlzeXNfYWNjZXNzLAkiYWNjZXNzIiB9LAkJLyogMzMgKi8KLQl7IDEsCTAsCXN5c19uaWNlLAkibmljZSIgfSwJCS8qIDM0ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkiY2hvd24zMiIgfSwJCS8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJInN5bmMiIH0sCQkvKiAzNiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkia2lsbCIgfSwJCS8qIDM3ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCSJzdGF0IiB9LAkJLyogMzggKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCSJzZW5kZmlsZSIgfSwJCS8qIDM5ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiA0MCAqLwotCXsgMiwJMCwJc3lzX2R1cCwJImR1cCIgfSwJCS8qIDQxICovCi0JeyAwLAkwLAlzeXNfcGlwZSwJInBpcGUiIH0sCQkvKiA0MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkidGltZXMiIH0sCQkvKiA0MyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZDMyIiB9LAkJLyogNDQgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJInVtb3VudCIgfSwJCS8qIDQ1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkIiB9LAkJLyogNDYgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQiIH0sCQkvKiA0NyAqLwotCXsgMywJVFMsCXN5c19zaWduYWwsCSJzaWduYWwiIH0sCQkvKiA0OCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCSJnZXRldWlkIiB9LAkJLyogNDkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkiZ2V0ZWdpZCIgfSwJCS8qIDUwICovCi0JeyAxLAlURiwJc3lzX2FjY3QsCSJhY2N0IiB9LAkJLyogNTEgKi8KLQl7IDIsCTAsCXByaW50YXJncywJIm1lbW9yeV9vcmRlcmluZyIgfSwJLyogNTIgKi8KLQl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQzMiIgfSwJCS8qIDUzICovCi0JeyAzLAkwLAlzeXNfaW9jdGwsCSJpb2N0bCIgfSwJCS8qIDU0ICovCi0JeyAzLAkwLAlzeXNfcmVib290LAkicmVib290IiB9LAkJLyogNTUgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkibW1hcDIiIH0sCQkvKiA1NiAqLwotCXsgMiwJVEYsCXN5c19zeW1saW5rLAkic3ltbGluayIgfSwJCS8qIDU3ICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkicmVhZGxpbmsiIH0sCQkvKiA1OCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCSJleGVjdmUiIH0sCQkvKiA1OSAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkidW1hc2siIH0sCQkvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCSJjaHJvb3QiIH0sCQkvKiA2MSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkiZnN0YXQiIH0sCQkvKiA2MiAqLwotCXsgMiwJVEYsCXN5c19mc3RhdDY0LAkiZnN0YXQ2NCIgfSwJCS8qIDYzICovCi0JeyAwLAkwLAlzeXNfZ2V0cGFnZXNpemUsImdldHBhZ2VzaXplIiB9LAkvKiA2NCAqLwotCXsgMywJMCwJc3lzX21zeW5jLAkibXN5bmMiIH0sCQkvKiA2NSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJInZmb3JrIiB9LAkJLyogNjYgKi8KLQl7IDUsCVRGLAlzeXNfcHJlYWQsCSJwcmVhZCIgfSwJCS8qIDY3ICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJInB3cml0ZSIgfSwJCS8qIDY4ICovCi0JeyAwLCAgICAwLAlzeXNfZ2V0ZXVpZCwJImdldGV1aWQzMiIgfSwJCS8qIDY5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQzMiIgfSwJCS8qIDcwICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJIm1tYXAiIH0sCQkvKiA3MSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQzMiIgfSwJCS8qIDcyICovCi0JeyAyLAkwLAlzeXNfbXVubWFwLAkibXVubWFwIiB9LAkJLyogNzMgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJIm1wcm90ZWN0IiB9LAkJLyogNzQgKi8KLQl7IDMsCTAsCXN5c19tYWR2aXNlLAkibWFkdmlzZSIgfSwJCS8qIDc1ICovCi0JeyAwLAkwLAlzeXNfdmhhbmd1cCwJInZoYW5ndXAiIH0sCQkvKiA3NiAqLwotCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkidHJ1bmNhdGU2NCIgfSwJCS8qIDc3ICovCi0JeyAzLAkwLAlzeXNfbWluY29yZSwJIm1pbmNvcmUiIH0sCQkvKiA3OCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJImdldGdyb3VwcyIgfSwJCS8qIDc5ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzIiB9LAkJLyogODAgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkiZ2V0cGdycCIgfSwJCS8qIDgxICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzMzIiIH0sCS8qIDgyICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkic2V0aXRpbWVyIiB9LAkJLyogODMgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCSJmdHJ1bmNhdGU2NCIgfSwJLyogODQgKi8KLQl7IDEsCVRGLAlzeXNfc3dhcG9uLAkic3dhcG9uIiB9LAkJLyogODUgKi8KLQl7IDIsCTAsCXN5c19nZXRpdGltZXIsCSJnZXRpdGltZXIiIH0sCQkvKiA4NiAqLwotCXsgMSwJMCwJc3lzX3NldHVpZCwJInNldHVpZDMyIiB9LAkJLyogODcgKi8KLQl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwic2V0aG9zdG5hbWUiIH0sCS8qIDg4ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkMzIiIH0sCQkvKiA4OSAqLwotCXsgMiwJMCwJc3lzX2R1cDIsCSJkdXAyIiB9LAkJLyogOTAgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJInNldGZzdWlkMzIiIH0sCQkvKiA5MSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGwiIH0sCQkvKiA5MiAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJInNlbGVjdCIgfSwJCS8qIDkzICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCSJzZXRmc2dpZDMyIiB9LAkJLyogOTQgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJImZzeW5jIiB9LAkJLyogOTUgKi8KLQl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwic2V0cHJpb3JpdHkiIH0sCS8qIDk2ICovCi0JeyAzLAlUTiwJc3lzX3NvY2tldCwJInNvY2tldCIgfSwJCS8qIDk3ICovCi0JeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCSJjb25uZWN0IiB9LAkJLyogOTggKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkiYWNjZXB0IiB9LAkJLyogOTkgKi8KLQl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwiZ2V0cHJpb3JpdHkiIH0sCS8qIDEwMCAqLwotCXsgMSwJVFMsCXByaW50YXJncywJInJ0X3NpZ3JldHVybiIgfSwJLyogMTAxICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwicnRfc2lnYWN0aW9uIiB9LAkvKiAxMDIgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssInJ0X3NpZ3Byb2NtYXNrIiB9LAkvKiAxMDMgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywicnRfc2lncGVuZGluZyIgfSwJLyogMTA0ICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwicnRfc2lndGltZWR3YWl0IiB9LC8qIDEwNSAqLwotCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sInJ0X3NpZ3F1ZXVlaW5mbyIgfSwvKiAxMDYgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwicnRfc2lnc3VzcGVuZCIgfSwJLyogMTA3ICovCi0JeyAzLAlUUywJc3lzX3NldHJlc3VpZCwJInNldHJlc3VpZCIgfSwJCS8qIDEwOCAqLwotCXsgMywgICAgVFMsCXN5c19nZXRyZXN1aWQsCSJnZXRyZXN1aWQiIH0sCQkvKiAxMDkgKi8KLQl7IDMsCVRTLAlzeXNfc2V0cmVzZ2lkLAkic2V0cmVzZ2lkIiB9LAkJLyogMTEwICovCi0JeyAzLAlUUywJc3lzX2dldHJlc2dpZCwJImdldHJlc2dpZCIgfSwJCS8qIDExMSAqLwotCXsgMiwJVFMsCXN5c19zZXRyZXNnaWQsCSJzZXRyZXNnaWQzMiIgfSwJLyogMTEyICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCSJyZWN2bXNnIiB9LAkJLyogMTEzICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCSJzZW5kbXNnIiB9LAkJLyogMTE0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzMzIiIH0sCS8qIDExNSAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwiZ2V0dGltZW9mZGF5IiB9LAkvKiAxMTYgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCSJnZXRydXNhZ2UiIH0sCQkvKiAxMTcgKi8KLQl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJImdldHNvY2tvcHQiIH0sCQkvKiAxMTggKi8KLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkiZ2V0Y3dkIiB9LAkJLyogMTE5ICovCi0JeyAzLAkwLAlzeXNfcmVhZHYsCSJyZWFkdiIgfSwJCS8qIDEyMCAqLwotCXsgMywJMCwJc3lzX3dyaXRldiwJIndyaXRldiIgfSwJCS8qIDEyMSAqLwotCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwic2V0dGltZW9mZGF5IiB9LAkvKiAxMjIgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24iIH0sCQkvKiAxMjMgKi8KLQl7IDIsCTAsCXN5c19mY2htb2QsCSJmY2htb2QiIH0sCQkvKiAxMjQgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCSJyZWN2ZnJvbSIgfSwJCS8qIDEyNSAqLwotCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQiIH0sCQkvKiAxMjYgKi8KLQl7IDIsCTAsCXN5c19zZXRyZWdpZCwJInNldHJlZ2lkIiB9LAkJLyogMTI3ICovCi0JeyAyLAlURiwJc3lzX3JlbmFtZSwJInJlbmFtZSIgfSwJCS8qIDEyOCAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJInRydW5jYXRlIiB9LAkJLyogMTI5ICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkiZnRydW5jYXRlIiB9LAkJLyogMTMwICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCSJmbG9jayIgfSwJCS8qIDEzMSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkibHN0YXQ2NCIgfSwJCS8qIDEzMiAqLwotCXsgNiwJVE4sCXN5c19zZW5kdG8sCSJzZW5kdG8iIH0sCQkvKiAxMzMgKi8KLQl7IDIsCVROLAlzeXNfc2h1dGRvd24sCSJzaHV0ZG93biIgfSwJCS8qIDEzNCAqLwotCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkic29ja2V0cGFpciIgfSwJCS8qIDEzNSAqLwotCXsgMiwJVEYsCXN5c19ta2RpciwJIm1rZGlyIiB9LAkJLyogMTM2ICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkicm1kaXIiIH0sCQkvKiAxMzcgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWVzLAkidXRpbWVzIiB9LAkJLyogMTM4ICovCi0JeyAyLAlURiwJc3lzX3N0YXQ2NCwJInN0YXQ2NCIgfSwJCS8qIDEzOSAqLwotCXsgNCwgICAgVEYsCXN5c19zZW5kZmlsZTY0LAkic2VuZGZpbGU2NCIgfSwJCS8qIDE0MCAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwiZ2V0cGVlcm5hbWUiIH0sCS8qIDE0MSAqLwotCXsgNSwgICAgMCwJc3lzX2Z1dGV4LAkiZnV0ZXgiIH0sCQkvKiAxNDIgKi8KLQl7IDAsCTAsCXByaW50YXJncywJImdldHRpZCIgfSwJCS8qIDE0MyAqLwotCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJImdldHJsaW1pdCIgfSwJCS8qIDE0NCAqLwotCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJInNldHJsaW1pdCIgfSwJCS8qIDE0NSAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCSJwaXZvdF9yb290IiB9LAkJLyogMTQ2ICovCi0JeyA1LAkwLAlzeXNfcHJjdGwsCSJwcmN0bCIgfSwJCS8qIDE0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkicGNpY29uZmlnX3JlYWQiIH0sCS8qIDE0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkicGNpY29uZmlnX3dyaXRlIiB9LAkvKiAxNDkgKi8KLQl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsImdldHNvY2tuYW1lIiB9LAkvKiAxNTAgKi8KLQl7IDQsCVROLAlzeXNfZ2V0bXNnLAkiZ2V0bXNnIiB9LAkJLyogMTUxICovCi0JeyA0LAlUTiwJc3lzX3B1dG1zZywJInB1dG1zZyIgfSwJCS8qIDE1MiAqLwotCXsgMywJMCwJc3lzX3BvbGwsCSJwb2xsIiB9LAkJLyogMTUzICovCi0JeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJImdldGRlbnRzNjQiIH0sCQkvKiAxNTQgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJImZjbnRsNjQiIH0sCQkvKiAxNTUgKi8KLQl7IDQsCTAsCXByaW50YXJncywJImdldGRpcmVudHJpZXMiIH0sCS8qIDE1NiAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCSJzdGF0ZnMiIH0sCQkvKiAxNTcgKi8KLQl7IDIsCTAsCXN5c19mc3RhdGZzLAkiZnN0YXRmcyIgfSwJCS8qIDE1OCAqLwotCXsgMSwJVEYsCXN5c191bW91bnQsCSJvbGR1bW91bnQiIH0sCQkvKiAxNTkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDE2MCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMTYxICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCSJnZXRkb21haW5uYW1lIiB9LAkvKiAxNjIgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLCJzZXRkb21haW5uYW1lIiB9LAkvKiAxNjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJInV0cmFwX2luc3RhbGwiIH0sCS8qIDE2NCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkicXVvdGFjdGwiIH0sCQkvKiAxNjUgKi8KLQl7IDEsCTAsCXByaW50YXJncywJInNldF90aWRfYWRkcmVzcyIgfSwJLyogMTY2ICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkibW91bnQiIH0sCQkvKiAxNjcgKi8KLQl7IDIsCTAsCXN5c191c3RhdCwJInVzdGF0IiB9LAkJLyogMTY4ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkic2V0eGF0dHIiIH0sCQkvKiAxNjkgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCSJsc2V0eGF0dHIiIH0sCQkvKiAxNzAgKi8KLQl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCSJmc2V0eGF0dHIiIH0sCQkvKiAxNzEgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCSJnZXR4YXR0ciIgfSwJCS8qIDE3MiAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJImxnZXR4YXR0ciIgfSwJCS8qIDE3MyAqLwotCXsgMywJMCwJc3lzX2dldGRlbnRzLAkiZ2V0ZGVudHMiIH0sCQkvKiAxNzQgKi8KLQl7IDAsCTAsCXN5c19zZXRzaWQsCSJzZXRzaWQiIH0sCQkvKiAxNzUgKi8KLQl7IDEsCTAsCXN5c19mY2hkaXIsCSJmY2hkaXIiIH0sCQkvKiAxNzYgKi8KLQl7IDQsICAgIDAsCXN5c19mZ2V0eGF0dHIsCSJmZ2V0eGF0dHIiIH0sCQkvKiAxNzcgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkibGlzdHhhdHRyIiB9LAkJLyogMTc4ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJImxsaXN0eGF0dHIiIH0sCQkvKiAxNzkgKi8KLQl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkiZmxpc3R4YXR0ciIgfSwJCS8qIDE4MCAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwicmVtb3ZleGF0dHIiIH0sCS8qIDE4MSAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwibHJlbW92ZXhhdHRyIiB9LAkvKiAxODIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJInNpZ3BlbmRpbmciIH0sCQkvKiAxODMgKi8KLQl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsInF1ZXJ5X21vZHVsZSIgfSwJLyogMTg0ICovCi0JeyAyLAkwLAlzeXNfc2V0cGdpZCwJInNldHBnaWQiIH0sCQkvKiAxODUgKi8KLQl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsImZyZW1vdmV4YXR0ciIgfSwJLyogMTg2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCSJ0a2lsbCIgfSwJCS8qIDE4NyAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkiZXhpdF9ncm91cCIgfSwJCS8qIDE4OCAqLwotCXsgMSwJMCwJc3lzX3VuYW1lLAkidW5hbWUiIH0sCQkvKiAxODkgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwiaW5pdF9tb2R1bGUiIH0sCS8qIDE5MCAqLwotCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LCJwZXJzb25hbGl0eSIgfSwJLyogMTkxICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywicmVtYXBfZmlsZV9wYWdlcyIgfSwvKiAxOTIgKi8KLQl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsImVwb2xsX2NyZWF0ZSIgfSwJLyogMTkzICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkiZXBvbGxfY3RsIiB9LAkJLyogMTk0ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJImVwb2xsX3dhaXQiIH0sCQkvKiAxOTUgKi8KLQl7IDIsCTAsCXN5c191bGltaXQsCSJ1bGltaXQiIH0sCQkvKiAxOTYgKi8KLQl7IDAsCTAsCXN5c19nZXRwcGlkLAkiZ2V0cHBpZCIgfSwJCS8qIDE5NyAqLwotCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCSJzaWdhY3Rpb24iIH0sCQkvKiAxOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJInNnZXRtYXNrIiB9LAkJLyogMTk5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJzc2V0bWFzayIgfSwJCS8qIDIwMCAqLwotCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkic2lnc3VzcGVuZCIgfSwJCS8qIDIwMSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJImxzdGF0IiB9LAkJLyogMjAyICovCi0JeyAxLAlURiwJc3lzX3VzZWxpYiwJInVzZWxpYiIgfSwJCS8qIDIwMyAqLwotCXsgMywJMCwJc3lzX3JlYWRkaXIsCSJyZWFkZGlyIiB9LAkJLyogMjA0ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkicmVhZGFoZWFkIiB9LAkJLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJInNvY2tldGNhbGwiIH0sCQkvKiAyMDYgKi8KLQl7IDMsCTAsCXN5c19zeXNsb2csCSJzeXNsb2ciIH0sCQkvKiAyMDcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJImxvb2t1cF9kY29va2llIiB9LAkvKiAyMDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJImZhZHZpc2U2NCIgfSwJCS8qIDIwOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkiZmFkdmlzZTY0XzY0IiB9LAkvKiAyMTAgKi8KLQl7IDMsCVRTLAlzeXNfdGdraWxsLAkidGdraWxsIiB9LAkJLyogMjExICovCi0JeyAzLAlUUCwJc3lzX3dhaXRwaWQsCSJ3YWl0cGlkIiB9LAkJLyogMjEyICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJInN3YXBvZmYiIH0sCQkvKiAyMTMgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkic3lzaW5mbyIgfSwJCS8qIDIxNCAqLwotCXsgNSwJMCwJc3lzX2lwYywJImlwYyIgfSwJCS8qIDIxNSAqLwotCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCSJzaWdyZXR1cm4iIH0sCQkvKiAyMTYgKi8KLQl7IDUsCVRQLAlzeXNfY2xvbmUsCSJjbG9uZSIgfSwJCS8qIDIxNyAqLwotCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCSJtb2RpZnlfbGR0IiB9LAkJLyogMjE4ICovCi0JeyAxLAkwLAlzeXNfYWRqdGltZXgsCSJhZGp0aW1leCIgfSwJCS8qIDIxOSAqLwotCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywic2lncHJvY21hc2siIH0sCS8qIDIyMCAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsImNyZWF0ZV9tb2R1bGUiIH0sCS8qIDIyMSAqLwotCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsImRlbGV0ZV9tb2R1bGUiIH0sCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLCJnZXRfa2VybmVsX3N5bXMifSwJLyogMjIzICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJImdldHBnaWQiIH0sCQkvKiAyMjQgKi8KLQl7IDAsCTAsCXN5c19iZGZsdXNoLAkiYmRmbHVzaCIgfSwJCS8qIDIyNSAqLwotCXsgMywJMCwJc3lzX3N5c2ZzLAkic3lzZnMiIH0sCQkvKiAyMjYgKi8KLQl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwiYWZzX3N5c2NhbGwiIH0sCS8qIDIyNyAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkic2V0ZnN1aWQiIH0sCQkvKiAyMjggKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJInNldGZzZ2lkIiB9LAkJLyogMjI5ICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkic2VsZWN0IiB9LAkJLyogMjMwICovCi0JeyAxLAkwLAlzeXNfdGltZSwJInRpbWUiIH0sCQkvKiAyMzEgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJInN0YXQiIH0sCQkvKiAyMzIgKi8KLQl7IDEsCTAsCXN5c19zdGltZSwJInN0aW1lIiB9LAkJLyogMjMzICovCi0JeyAzLAlURiwJc3lzX3N0YXRmczY0LAkic3RhdGZzNjQiIH0sCQkvKiAyMzQgKi8KLQl7IDMsCTAsCXN5c19mc3RhdGZzNjQsCSJmc3RhdGZzNjQiIH0sCQkvKiAyMzUgKi8KLQl7IDUsCTAsCXN5c19sbHNlZWssCSJfbGxzZWVrIiB9LAkJLyogMjM2ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCSJtbG9jayIgfSwJCS8qIDIzNyAqLwotCXsgMiwJMCwJc3lzX211bmxvY2ssCSJtdW5sb2NrIiB9LAkJLyogMjM4ICovCi0JeyAyLAkwLAlzeXNfbWxvY2thbGwsCSJtbG9ja2FsbCIgfSwJCS8qIDIzOSAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCSJtdW5sb2NrYWxsIiB9LAkJLyogMjQwICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sInNjaGVkX3NldHBhcmFtIn0sCS8qIDI0MSAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLCJzY2hlZF9nZXRwYXJhbSJ9LAkvKiAyNDIgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsInNjaGVkX3NldHNjaGVkdWxlciJ9LC8qIDI0MyAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwic2NoZWRfZ2V0c2NoZWR1bGVyIn0sLyogMjQ0ICovCi0JeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsInNjaGVkX3lpZWxkIiB9LAkvKiAyNDUgKi8KLQl7IDEsMCxzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LC8qIDI0NiAqLwotCXsgMSwwLHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sLyogMjQ3ICovCi0JeyAyLAkwLHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LC8qIDI0OCAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJIm5hbm9zbGVlcCIgfSwJCS8qIDI0OSAqLwotCXsgNCwJMCwJc3lzX21yZW1hcCwJIm1yZW1hcCIgfSwJCS8qIDI1MCAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJIl9zeXNjdGwiIH0sCQkvKiAyNTEgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCSJnZXRzaWQiIH0sCQkvKiAyNTIgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCSJmZGF0YXN5bmMiIH0sCQkvKiAyNTMgKi8KLQl7IDMsCTAsCXByaW50YXJncywJIm5mc3NlcnZjdGwiIH0sCQkvKiAyNTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJImFwbGliIiB9LAkJLyogMjU1ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwiY2xvY2tfc2V0dGltZSIgfSwJLyogMjU2ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwiY2xvY2tfZ2V0dGltZSIgfSwJLyogMjU3ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLCJjbG9ja19nZXRyZXMiIH0sCS8qIDI1OCAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwiY2xvY2tfbmFub3NsZWVwIiB9LC8qIDI1OSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LCJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAyNjAgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjYxICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwidGltZXJfc2V0dGltZSIgfSwJLyogMjYyICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwidGltZXJfZ2V0dGltZSIgfSwJLyogMjYzICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwidGltZXJfZ2V0b3ZlcnJ1biIgfSwvKiAyNjQgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsInRpbWVyX2RlbGV0ZSIgfSwJLyogMjY1ICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLCJ0aW1lcl9jcmVhdGUiIH0sCS8qIDI2NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI2NyIgfSwJCS8qIDI2NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI2OCIgfSwJCS8qIDI2OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI2OSIgfSwJCS8qIDI2OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MCIgfSwJCS8qIDI3MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MSIgfSwJCS8qIDI3MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MiIgfSwJCS8qIDI3MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3MyIgfSwJCS8qIDI3MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NCIgfSwJCS8qIDI3NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NSIgfSwJCS8qIDI3NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NiIgfSwJCS8qIDI3NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3NyIgfSwJCS8qIDI3NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3OCIgfSwJCS8qIDI3OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI3OSIgfSwJCS8qIDI3OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MCIgfSwJCS8qIDI4MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MSIgfSwJCS8qIDI4MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MiIgfSwJCS8qIDI4MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4MyIgfSwJCS8qIDI4MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NCIgfSwJCS8qIDI4NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NSIgfSwJCS8qIDI4NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NiIgfSwJCS8qIDI4NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4NyIgfSwJCS8qIDI4NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4OCIgfSwJCS8qIDI4OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI4OSIgfSwJCS8qIDI4OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MCIgfSwJCS8qIDI5MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MSIgfSwJCS8qIDI5MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MiIgfSwJCS8qIDI5MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5MyIgfSwJCS8qIDI5MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NCIgfSwJCS8qIDI5NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NSIgfSwJCS8qIDI5NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NiIgfSwJCS8qIDI5NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5NyIgfSwJCS8qIDI5NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5OCIgfSwJCS8qIDI5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzI5OSIgfSwJCS8qIDI5OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMCIgfSwJCS8qIDMwMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMSIgfSwJCS8qIDMwMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMiIgfSwJCS8qIDMwMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwMyIgfSwJCS8qIDMwMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNCIgfSwJCS8qIDMwNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNSIgfSwJCS8qIDMwNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNiIgfSwJCS8qIDMwNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwNyIgfSwJCS8qIDMwNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwOCIgfSwJCS8qIDMwOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMwOSIgfSwJCS8qIDMwOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMCIgfSwJCS8qIDMxMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMSIgfSwJCS8qIDMxMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMiIgfSwJCS8qIDMxMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxMyIgfSwJCS8qIDMxMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNCIgfSwJCS8qIDMxNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNSIgfSwJCS8qIDMxNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNiIgfSwJCS8qIDMxNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxNyIgfSwJCS8qIDMxNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxOCIgfSwJCS8qIDMxOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMxOSIgfSwJCS8qIDMxOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMCIgfSwJCS8qIDMyMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMSIgfSwJCS8qIDMyMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMiIgfSwJCS8qIDMyMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyMyIgfSwJCS8qIDMyMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNCIgfSwJCS8qIDMyNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNSIgfSwJCS8qIDMyNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNiIgfSwJCS8qIDMyNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyNyIgfSwJCS8qIDMyNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyOCIgfSwJCS8qIDMyOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMyOSIgfSwJCS8qIDMyOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMCIgfSwJCS8qIDMzMCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMSIgfSwJCS8qIDMzMSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMiIgfSwJCS8qIDMzMiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzMyIgfSwJCS8qIDMzMyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNCIgfSwJCS8qIDMzNCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNSIgfSwJCS8qIDMzNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNiIgfSwJCS8qIDMzNiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzNyIgfSwJCS8qIDMzNyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzOCIgfSwJCS8qIDMzOCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzMzOSIgfSwJCS8qIDMzOSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MCIgfSwJCS8qIDM0MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MSIgfSwJCS8qIDM0MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MiIgfSwJCS8qIDM0MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0MyIgfSwJCS8qIDM0MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NCIgfSwJCS8qIDM0NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NSIgfSwJCS8qIDM0NSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NiIgfSwJCS8qIDM0NiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0NyIgfSwJCS8qIDM0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0OCIgfSwJCS8qIDM0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM0OSIgfSwJCS8qIDM0OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM1MCIgfSwJCS8qIDM1MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM1MSIgfSwJCS8qIDM1MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiU1lTXzM1MiIgfSwJCS8qIDM1MiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGxlbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbGVudDEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGI1YzMzNS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbGVudDEuaAorKysgL2Rldi9udWxsCkBAIC0xLDQzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsZW50MS5oLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIzOjE5IHdpY2hlcnQgRXhwICQKLSAqLwotCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2NhbGwsCSJzeXNjYWxsIgl9LCAvKiAwICovCi0JeyA2LAlUUCwJc29sYXJpc19leGl0LAkJIl9leGl0IgkJfSwgLyogMSAqLwotCXsgNiwJVFAsCXNvbGFyaXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLwotCXsgNiwJMCwJc29sYXJpc19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCi0JeyA2LAkwLAlzb2xhcmlzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogNCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KLQl7IDYsCVRQLAlzb2xhcmlzX3dhaXQsCQkid2FpdCIJCX0sIC8qIDcgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KLQl7IDYsCVRGfFRQLAlzb2xhcmlzX2V4ZWMsCQkiZXhlYyIJCX0sIC8qIDExICovCi0JeyA2LAlURiwJc29sYXJpc19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCi0JeyA2LAlURiwJc29sYXJpc19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCi0JeyA2LAlURiwJc29sYXJpc19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCi0JeyA2LAlURiwJc29sYXJpc19jaG93biwJCSJjaG93biIJCX0sIC8qIDE2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2JyaywJCSJicmsiCQl9LCAvKiAxNyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfdW1vdW50LAkJInVtb3VudCIJfSwgLyogMjIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLwotCXsgNiwJMCwJc29sYXJpc19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLwotCXsgNiwJMCwJc29sYXJpc19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMjggKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCi0JeyA2LAkwLAlzb2xhcmlzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCi0JeyA2LAlURiwJc29sYXJpc19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiAzNSAqLwotCXsgNiwJMCwJc29sYXJpc19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLwotCXsgNiwJVFMsCXNvbGFyaXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnN0YXRmcywJImZzdGF0ZnMiCX0sIC8qIDM4ICovCi0JeyA2LAkwLAlzb2xhcmlzX3BncnBzeXMsCSJwZ3Jwc3lzIgl9LCAvKiAzOSAqLwotCXsgNiwJMCwJc29sYXJpc194ZW5peCwJCSJ4ZW5peCIJCX0sIC8qIDQwICovCi0JeyA2LAkwLAlzb2xhcmlzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLwotCXsgNiwJMCwJc29sYXJpc19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyA2LAkwLAlzb2xhcmlzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDQ0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3Bsb2NrLAkJInBsb2NrIgkJfSwgLyogNDUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2lnY2FsbCwJInNpZ2NhbGwiCX0sIC8qIDQ4ICovCi0JeyA2LAlUSSwJc29sYXJpc19tc2dzeXMsCQkibXNnc3lzIgl9LCAvKiA0OSAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNzdW4sCQkic3lzc3VuIgl9LCAvKiA1MCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobXN5cywJCSJzaG1zeXMiCX0sIC8qIDUyICovCi0JeyA2LAlUSSwJc29sYXJpc19zZW1zeXMsCQkic2Vtc3lzIgl9LCAvKiA1MyAqLwotCXsgNiwJMCwJc29sYXJpc19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3VhZG1pbiwJCSJ1YWRtaW4iCX0sIC8qIDU1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c21wLAkJInN5c21wIgkJfSwgLyogNTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdXRzc3lzLAkJInV0c3N5cyIJfSwgLyogNTcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmRzeW5jLAkJImZkc3luYyIJfSwgLyogNTggKi8KLQl7IDYsCVRGfFRQLAlzb2xhcmlzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDU5ICovCi0JeyA2LAkwLAlzb2xhcmlzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNjIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjQiCX0sIC8qIDY0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1Igl9LCAvKiA2NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NiIJfSwgLyogNjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjciCX0sIC8qIDY3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4Igl9LCAvKiA2OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182OSIJfSwgLyogNjkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzAiCX0sIC8qIDcwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxIgl9LCAvKiA3MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MiIJfSwgLyogNzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzMiCX0sIC8qIDczICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0Igl9LCAvKiA3NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NSIJfSwgLyogNzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzYiCX0sIC8qIDc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3Igl9LCAvKiA3NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183OCIJfSwgLyogNzggKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNzkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogODAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIJfSwgLyogODEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2dpbmFwLAkJInNnaW5hcCIJfSwgLyogODIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2dpa29wdCwJInNnaWtvcHQiCX0sIC8qIDgzICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogODQgKi8KLQl7IDYsCVROLAlzeXNfZ2V0bXNnLAkJImdldG1zZyIJfSwgLyogODUgKi8KLQl7IDYsCVROLAlzeXNfcHV0bXNnLAkJInB1dG1zZyIJfSwgLyogODYgKi8KLQl7IDYsCVROLAlzb2xhcmlzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDg3ICovCi0JeyA2LAlURiwJc29sYXJpc19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDg4ICovCi0JeyA2LAlURiwJc29sYXJpc19zeW1saW5rLAkic3ltbGluayIJfSwgLyogODkgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3JlYWRsaW5rLAkicmVhZGxpbmsiCX0sIC8qIDkwICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGdyb3VwcywJInNldGdyb3VwcyIJfSwgLyogOTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzIgl9LCAvKiA5MiAqLwotCXsgNiwJMCwJc29sYXJpc19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5MyAqLwotCXsgNiwJMCwJc29sYXJpc19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NCAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogOTUgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIgl9LCAvKiA5NiAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogOTcgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIJfSwgLyogOTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3BjYWxsLAkJInNwY2FsbCIJfSwgLyogOTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY29udGV4dCwJImNvbnRleHQiCX0sIC8qIDEwMCAqLwotCXsgNiwJMCwJc29sYXJpc19ldnN5cywJCSJldnN5cyIJCX0sIC8qIDEwMSAqLwotCXsgNiwJMCwJc29sYXJpc19ldnRyYXByZXQsCSJldnRyYXByZXQiCX0sIC8qIDEwMiAqLwotCXsgNiwJVEYsCXNvbGFyaXNfc3RhdHZmcywJInN0YXR2ZnMiCX0sIC8qIDEwMyAqLwotCXsgNiwJMCwJc29sYXJpc19mc3RhdHZmcywJImZzdGF0dmZzIgl9LCAvKiAxMDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTA1Igl9LCAvKiAxMDUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbmZzc3lzLAkJIm5mc3N5cyIJfSwgLyogMTA2ICovCi0JeyA2LAlUUCwJc29sYXJpc193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAxMDcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2lnc2VuZHN5cywJInNpZ3NlbmRzeXMiCX0sIC8qIDEwOCAqLwotCXsgNiwJMCwJc29sYXJpc19ocnRzeXMsCQkiaHJ0c3lzIgl9LCAvKiAxMDkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYWNhbmNlbCwJImFjYW5jZWwiCX0sIC8qIDExMCAqLwotCXsgNiwJMCwJc29sYXJpc19hc3luYywJCSJhc3luYyIJCX0sIC8qIDExMSAqLwotCXsgNiwJMCwJc29sYXJpc19wcmlvY250bHN5cywJInByaW9jbnRsc3lzIgl9LCAvKiAxMTIgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3BhdGhjb25mLAkicGF0aGNvbmYiCX0sIC8qIDExMyAqLwotCXsgNiwJMCwJc29sYXJpc19taW5jb3JlLAkibWluY29yZSIJfSwgLyogMTE0ICovCi0JeyA2LAkwLAlzb2xhcmlzX21tYXAsCQkibW1hcCIJCX0sIC8qIDExNSAqLwotCXsgNiwJMCwJc29sYXJpc19tcHJvdGVjdCwJIm1wcm90ZWN0Igl9LCAvKiAxMTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogMTE3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZwYXRoY29uZiwJImZwYXRoY29uZiIJfSwgLyogMTE4ICovCi0JeyA2LAlUUCwJc29sYXJpc192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDExOSAqLwotCXsgNiwJMCwJc29sYXJpc19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMjAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxMjEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTIyICovCi0JeyA2LAlURiwJc29sYXJpc194c3RhdCwJCSJ4c3RhdCIJCX0sIC8qIDEyMyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbHhzdGF0LAkJImx4c3RhdCIJfSwgLyogMTI0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2Z4c3RhdCwJCSJmeHN0YXQiCX0sIC8qIDEyNSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfeG1rbm9kLAkJInhta25vZCIJfSwgLyogMTI2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb2NhbCwJCSJjbG9jYWwiCX0sIC8qIDEyNyAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRybGltaXQsCSJzZXRybGltaXQiCX0sIC8qIDEyOCAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRybGltaXQsCSJnZXRybGltaXQiCX0sIC8qIDEyOSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbGNob3duLAkJImxjaG93biIJfSwgLyogMTMwICovCi0JeyA2LAkwLAlzb2xhcmlzX21lbWNudGwsCSJtZW1jbnRsIgl9LCAvKiAxMzEgKi8KLQl7IDYsCVROLAlzb2xhcmlzX2dldHBtc2csCSJnZXRwbXNnIgl9LCAvKiAxMzIgKi8KLQl7IDYsCVROLAlzb2xhcmlzX3B1dHBtc2csCSJwdXRwbXNnIgl9LCAvKiAxMzMgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDEzNCAqLwotCXsgNiwJMCwJc29sYXJpc191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEzNSAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRlZ2lkLAkic2V0ZWdpZCIJfSwgLyogMTM2ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2NvbmZpZywJInN5c2NvbmZpZyIJfSwgLyogMTM3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2FkanRpbWUsCSJhZGp0aW1lIgl9LCAvKiAxMzggKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzaW5mbywJInN5c2luZm8iCX0sIC8qIDEzOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDAiCX0sIC8qIDE0MCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRldWlkLAkic2V0ZXVpZCIJfSwgLyogMTQxICovCi0JeyA2LAkwLAlzb2xhcmlzX3Z0cmFjZSwJCSJ2dHJhY2UiCX0sIC8qIDE0MiAqLwotCXsgNiwJVFAsCXNvbGFyaXNfZm9yazEsCQkiZm9yazEiCQl9LCAvKiAxNDMgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3RpbWVkd2FpdCwJInNpZ3RpbWVkd2FpdCIJfSwgLyogMTQ0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9pbmZvLAkibHdwX2luZm8iCX0sIC8qIDE0NSAqLwotCXsgNiwJMCwJc29sYXJpc195aWVsZCwJCSJ5aWVsZCIJCX0sIC8qIDE0NiAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfc2VtYV93YWl0LAkibHdwX3NlbWFfd2FpdCIJfSwgLyogMTQ3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zZW1hX3Bvc3QsCSJsd3Bfc2VtYV9wb3N0Igl9LCAvKiAxNDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5Igl9LCAvKiAxNDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTUwIgl9LCAvKiAxNTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTUxIgl9LCAvKiAxNTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbW9kY3RsLAkJIm1vZGN0bCIJfSwgLyogMTUyICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjaHJvb3QsCSJmY2hyb290Igl9LCAvKiAxNTMgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDE1NCAqLwotCXsgNiwJMCwJc29sYXJpc192aGFuZ3VwLAkidmhhbmd1cCIJfSwgLyogMTU1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogMTU2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldGl0aW1lciwJImdldGl0aW1lciIJfSwgLyogMTU3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGl0aW1lciwJInNldGl0aW1lciIJfSwgLyogMTU4ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jcmVhdGUsCSJsd3BfY3JlYXRlIgl9LCAvKiAxNTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2V4aXQsCSJsd3BfZXhpdCIJfSwgLyogMTYwICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zdXNwZW5kLAkibHdwX3N1c3BlbmQiCX0sIC8qIDE2MSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY29udGludWUsCSJsd3BfY29udGludWUiCX0sIC8qIDE2MiAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfa2lsbCwJImx3cF9raWxsIgl9LCAvKiAxNjMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3NlbGYsCSJsd3Bfc2VsZiIJfSwgLyogMTY0ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zZXRwcml2YXRlLAkibHdwX3NldHByaXZhdGUifSwgLyogMTY1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9nZXRwcml2YXRlLAkibHdwX2dldHByaXZhdGUifSwgLyogMTY2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF93YWl0LAkibHdwX3dhaXQiCX0sIC8qIDE2NyAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfbXV0ZXhfdW5sb2NrLCJsd3BfbXV0ZXhfdW5sb2NrIn0sIC8qIDE2OCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfbXV0ZXhfbG9jaywJImx3cF9tdXRleF9sb2NrIn0sIC8qIDE2OSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY29uZF93YWl0LAkibHdwX2NvbmRfd2FpdCJ9LCAvKiAxNzAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbmRfc2lnbmFsLCJsd3BfY29uZF9zaWduYWwifSwgLyogMTcxICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCwibHdwX2NvbmRfYnJvYWRjYXN0In0sIC8qIDE3MiAqLwotCXsgNiwJMCwJc29sYXJpc19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDE3MyAqLwotCXsgNiwJMCwJc29sYXJpc19wd3JpdGUsCQkicHdyaXRlIgl9LCAvKiAxNzQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbGxzZWVrLAkJImxsc2VlayIJfSwgLyogMTc1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2luc3Rfc3luYywJImluc3Rfc3luYyIJfSwgLyogMTc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NyIJfSwgLyogMTc3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OCIJfSwgLyogMTc4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OSIJfSwgLyogMTc5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MCIJfSwgLyogMTgwICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MSIJfSwgLyogMTgxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MiIJfSwgLyogMTgyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIJfSwgLyogMTgzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NCIJfSwgLyogMTg0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NSIJfSwgLyogMTg1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2F1ZGl0c3lzLAkiYXVkaXRzeXMiCX0sIC8qIDE4NiAqLwotCXsgNiwJMCwJc29sYXJpc19wcm9jZXNzb3JfYmluZCwJInByb2Nlc3Nvcl9iaW5kIn0sIC8qIDE4NyAqLwotCXsgNiwJMCwJc29sYXJpc19wcm9jZXNzb3JfaW5mbywJInByb2Nlc3Nvcl9pbmZvIn0sIC8qIDE4OCAqLwotCXsgNiwJMCwJc29sYXJpc19wX29ubGluZSwJInBfb25saW5lIgl9LCAvKiAxODkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2lncXVldWUsCSJzaWdxdWV1ZSIJfSwgLyogMTkwICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAxOTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDE5MiAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDE5MyAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDE5NCAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDE5NSAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMTk2ICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAxOTcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1biwidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAxOTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfbmFub3NsZWVwLAkibmFub3NsZWVwIgl9LCAvKiAxOTkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAwIgl9LCAvKiAyMDAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAxIgl9LCAvKiAyMDEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAyIgl9LCAvKiAyMDIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAzIgl9LCAvKiAyMDMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA0Igl9LCAvKiAyMDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA1Igl9LCAvKiAyMDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA2Igl9LCAvKiAyMDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA3Igl9LCAvKiAyMDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA4Igl9LCAvKiAyMDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA5Igl9LCAvKiAyMDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEwIgl9LCAvKiAyMTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjExIgl9LCAvKiAyMTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEyIgl9LCAvKiAyMTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEzIgl9LCAvKiAyMTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE0Igl9LCAvKiAyMTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE1Igl9LCAvKiAyMTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE2Igl9LCAvKiAyMTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE3Igl9LCAvKiAyMTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE4Igl9LCAvKiAyMTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE5Igl9LCAvKiAyMTkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIwIgl9LCAvKiAyMjAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgl9LCAvKiAyMjEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIyIgl9LCAvKiAyMjIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIzIgl9LCAvKiAyMjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI0Igl9LCAvKiAyMjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI1Igl9LCAvKiAyMjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI2Igl9LCAvKiAyMjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI3Igl9LCAvKiAyMjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI4Igl9LCAvKiAyMjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI5Igl9LCAvKiAyMjkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIgl9LCAvKiAyMzAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMxIgl9LCAvKiAyMzEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMyIgl9LCAvKiAyMzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMzIgl9LCAvKiAyMzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM0Igl9LCAvKiAyMzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM1Igl9LCAvKiAyMzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM2Igl9LCAvKiAyMzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM3Igl9LCAvKiAyMzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM4Igl9LCAvKiAyMzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM5Igl9LCAvKiAyMzkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQwIgl9LCAvKiAyNDAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQxIgl9LCAvKiAyNDEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQyIgl9LCAvKiAyNDIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQzIgl9LCAvKiAyNDMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0Igl9LCAvKiAyNDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1Igl9LCAvKiAyNDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2Igl9LCAvKiAyNDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3Igl9LCAvKiAyNDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4Igl9LCAvKiAyNDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5Igl9LCAvKiAyNDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUwIgl9LCAvKiAyNTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAyNTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUyIgl9LCAvKiAyNTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUzIgl9LCAvKiAyNTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU0Igl9LCAvKiAyNTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU1Igl9LCAvKiAyNTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU2Igl9LCAvKiAyNTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU3Igl9LCAvKiAyNTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU4Igl9LCAvKiAyNTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU5Igl9LCAvKiAyNTkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYwIgl9LCAvKiAyNjAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYxIgl9LCAvKiAyNjEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYyIgl9LCAvKiAyNjIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAyNjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY0Igl9LCAvKiAyNjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAyNjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAyNjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY3Igl9LCAvKiAyNjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAyNjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAyNjkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgl9LCAvKiAyNzAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAyNzEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAyNzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgl9LCAvKiAyNzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAyNzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAyODAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAyODEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgl9LCAvKiAyODIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAyODMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAyODQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KLQotCXsgNiwJMCwJc29sYXJpc19nZXRwZ3JwLAkiZ2V0cGdycCIJfSwgLyogMzAwICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHBncnAsCSJzZXRwZ3JwIgl9LCAvKiAzMDEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMzAyICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDMwMyAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRwZ2lkLAkiZ2V0cGdpZCIJfSwgLyogMzA0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHBnaWQsCSJzZXRwZ2lkIgl9LCAvKiAzMDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA2Igl9LCAvKiAzMDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA3Igl9LCAvKiAzMDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA4Igl9LCAvKiAzMDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA5Igl9LCAvKiAzMDkgKi8KLQotCXsgNiwJVFMsCXNvbGFyaXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogMzEwICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdzZXQsCQkic2lnc2V0Igl9LCAvKiAzMTEgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2hvbGQsCSJzaWdob2xkIgl9LCAvKiAzMTIgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3JlbHNlLAkic2lncmVsc2UiCX0sIC8qIDMxMyAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnaWdub3JlLAkic2lnaWdub3JlIgl9LCAvKiAzMTQgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3BhdXNlLAkic2lncGF1c2UiCX0sIC8qIDMxNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTYiCX0sIC8qIDMxNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTciCX0sIC8qIDMxNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgiCX0sIC8qIDMxOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkiCX0sIC8qIDMxOSAqLwotCi0JeyA2LAlUSSwJc29sYXJpc19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAzMjAgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMyMSAqLwotCXsgNiwJVEksCXNvbGFyaXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMzIyICovCi0JeyA2LAlUSSwJc29sYXJpc19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAzMjMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI0Igl9LCAvKiAzMjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI1Igl9LCAvKiAzMjUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI2Igl9LCAvKiAzMjYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI3Igl9LCAvKiAzMjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI4Igl9LCAvKiAzMjggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI5Igl9LCAvKiAzMjkgKi8KLQotCXsgNiwJVEksCXNvbGFyaXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAzMzAgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDMzMSAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAzMzIgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDMzMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQiCX0sIC8qIDMzNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzUiCX0sIC8qIDMzNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYiCX0sIC8qIDMzNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzciCX0sIC8qIDMzNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzgiCX0sIC8qIDMzOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkiCX0sIC8qIDMzOSAqLwotCi0JeyA2LAlUSSwJc29sYXJpc19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAzNDAgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDM0MSAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAzNDIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQzIgl9LCAvKiAzNDMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0Igl9LCAvKiAzNDQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1Igl9LCAvKiAzNDUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2Igl9LCAvKiAzNDYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3Igl9LCAvKiAzNDcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4Igl9LCAvKiAzNDggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5Igl9LCAvKiAzNDkgKi8KLQotCXsgNiwJMCwJc29sYXJpc19vbGR1bmFtZSwJIm9sZHVuYW1lIgl9LCAvKiAzNTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJ1dHNzeXMxIgl9LCAvKiAzNTEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiAzNTIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnVzZXJzLAkJImZ1c2VycyIJfSwgLyogMzUzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NCIJfSwgLyogMzU0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NSIJfSwgLyogMzU1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NiIJfSwgLyogMzU2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NyIJfSwgLyogMzU3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OCIJfSwgLyogMzU4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OSIJfSwgLyogMzU5ICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJzeXNmczAiCX0sIC8qIDM2MCAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNmczEsCQkic3lzZnMxIgl9LCAvKiAzNjEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzZnMyLAkJInN5c2ZzMiIJfSwgLyogMzYyICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2ZzMywJCSJzeXNmczMiCX0sIC8qIDM2MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qIDM2NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUiCX0sIC8qIDM2NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qIDM2NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qIDM2NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgiCX0sIC8qIDM2OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qIDM2OSAqLwotCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkic3BjYWxsMCIJfSwgLyogMzcwICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIJfSwgLyogMzcxICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdmaWxsc2V0LAkic2lnZmlsbHNldCIJfSwgLyogMzcyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MyIJfSwgLyogMzczICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NCIJfSwgLyogMzc0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NSIJfSwgLyogMzc1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NiIJfSwgLyogMzc2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NyIJfSwgLyogMzc3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OCIJfSwgLyogMzc4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OSIJfSwgLyogMzc5ICovCi0KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0Y29udGV4dCwJImdldGNvbnRleHQiCX0sIC8qIDM4MCAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRjb250ZXh0LAkic2V0Y29udGV4dCIJfSwgLyogMzgxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MiIJfSwgLyogMzgyICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MyIJfSwgLyogMzgzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NCIJfSwgLyogMzg0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NSIJfSwgLyogMzg1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NiIJfSwgLyogMzg2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NyIJfSwgLyogMzg3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OCIJfSwgLyogMzg4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OSIJfSwgLyogMzg5ICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkwIgl9LCAvKiAzOTAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkxIgl9LCAvKiAzOTEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkyIgl9LCAvKiAzOTIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkzIgl9LCAvKiAzOTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk0Igl9LCAvKiAzOTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk1Igl9LCAvKiAzOTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk2Igl9LCAvKiAzOTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk3Igl9LCAvKiAzOTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk4Igl9LCAvKiAzOTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk5Igl9LCAvKiAzOTkgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2R1bW15Mi5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZHVtbXkyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmMzJjNmIuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZHVtbXkyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogZHVtbXkyLmgsdiAxLjEgMjAwNC8wNy8xMiAwNzo0NDowOCByb2xhbmQgRXhwICQKLSAqLwotCi0vKiBzdGlsbCB1bmZpbmlzaGVkICovCi0KLSNkZWZpbmUgc29sYXJpc19zeXNtcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZ2luYXAgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2dpa29wdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNtaXBzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3JldHVybiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19yZWN2bXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbmRtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbmZzc3ZjIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldGZoIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FzeW5jX2RhZW1vbiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19leHBvcnRmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19CU0RfZ2V0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Nwcm9jIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Byb2NibGsgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3Byb2NzcCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc3luYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tYWR2aXNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3BhZ2Vsb2NrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3F1b3RhY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2NhY2hlZmx1c2ggcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2FjaGVjdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbnVuYW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3BvbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3dhcGN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzdGFjayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdzZW5kc2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3ByaW9jbnRsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2tzaWdxdWV1ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3Bfc2VtYV93YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21lbWNudGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzY2FsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jbG9jYWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzc3VuIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2k4NiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNtYWNoaW5lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Bsb2NrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3BhdGhjb25mIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3RpbWVkd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191bGltaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHRyYWNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N0dHkgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2luZm8gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJpb2NudGxzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfaHJ0c3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3hlbml4IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N0YXRmcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mc3RhdGZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N0YXR2ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZnN0YXR2ZnMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZm9yazEgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc2VuZHN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19ndHR5IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3Z0cmFjZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mcGF0aGNvbmYgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZXZzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYWNjdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19leGVjIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZW1hX3Bvc3QgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbmZzc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2FsdHN0YWNrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3VhZG1pbiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc191bW91bnQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbW9kY3RsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2FjYW5jZWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYXN5bmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZXZ0cmFwcmV0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9jcmVhdGUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2V4aXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX3N1c3BlbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbnRpbnVlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9raWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZWxmIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9zZXRwcml2YXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9nZXRwcml2YXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF93YWl0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2x3cF9tdXRleF91bmxvY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX211dGV4X2xvY2sgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbmRfd2FpdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19sd3BfY29uZF9zaWduYWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbHdwX2NvbmRfYnJvYWRjYXN0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2xsc2VlayBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19pbnN0X3N5bmMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYXVkaXRzeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJvY2Vzc29yX2JpbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHJvY2Vzc29yX2luZm8gcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcF9vbmxpbmUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncXVldWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfY2xvY2tfZ2V0dGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jbG9ja19zZXR0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2Nsb2NrX2dldHJlcyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19uYW5vc2xlZXAgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfY3JlYXRlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX2RlbGV0ZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc190aW1lcl9zZXR0aW1lIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3RpbWVyX2dldHRpbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1biBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWduYWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnc2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2hvbGQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lncmVsc2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2lnaWdub3JlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3BhdXNlIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ2N0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19tc2dnZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNncmN2IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21zZ3NuZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1hdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaG1jdGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htZHQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2htZ2V0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NlbWN0bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW1nZXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2Vtb3AgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfb2xkdW5hbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdXN0YXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZnVzZXJzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2ZzMSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNmczIgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzZnMzIHByaW50YXJncwotCi0vKiBsaWtlIGFub3RoZXIgY2FsbCAqLwotI2RlZmluZSBzb2xhcmlzX2xjaG93biBzb2xhcmlzX2Nob3duCi0jZGVmaW5lIHNvbGFyaXNfc2V0dWlkIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19zZXRldWlkIHNvbGFyaXNfY2xvc2UKLSNkZWZpbmUgc29sYXJpc19zZXRnaWQgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3NldGVnaWQgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX3ZoYW5ndXAgc29sYXJpc19jbG9zZQotI2RlZmluZSBzb2xhcmlzX2Zkc3luYyBzb2xhcmlzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfc2lnZmlsbHNldCBzb2xhcmlzX3NpZ3BlbmRpbmcKLSNkZWZpbmUgc29sYXJpc192Zm9yayBzb2xhcmlzX2ZvcmsKLSNkZWZpbmUgc29sYXJpc19rc2lnYWN0aW9uIHNvbGFyaXNfc2lnYWN0aW9uCi0jZGVmaW5lIHNvbGFyaXNfQlNEZ2V0cGdycCBzb2xhcmlzX2dldHBncnAKLSNkZWZpbmUgc29sYXJpc19CU0RzZXRwZ3JwIHNvbGFyaXNfc2V0cGdycAotI2RlZmluZSBzb2xhcmlzX3dhaXRzeXMgc29sYXJpc193YWl0aWQKLQotLyogcHJpbnRhcmdzIGRvZXMgdGhlIHJpZ2h0IHRoaW5nICovCi0jZGVmaW5lIHNvbGFyaXNfc3luYyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wcm9maWwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfeWllbGQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcGF1c2UgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2V0aG9zdGlkIHByaW50YXJncwotCi0vKiBzdWJmdW5jdGlvbiBlbnRyeSBwb2ludHMgKi8KLSNkZWZpbmUgc29sYXJpc19wZ3Jwc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2NhbGwgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfbXNnc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NobXN5cyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zZW1zeXMgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdXRzc3lzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3N5c2ZzIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NwY2FsbCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19jb250ZXh0IHByaW50YXJncwotCi0vKiBzYW1lIGFzIGxpbnV4ICovCi0jZGVmaW5lIHNvbGFyaXNfZXhpdCBzeXNfZXhpdAotI2RlZmluZSBzb2xhcmlzX2Zvcmsgc3lzX2ZvcmsKLSNkZWZpbmUgc29sYXJpc19yZWFkIHN5c19yZWFkCi0jZGVmaW5lIHNvbGFyaXNfd3JpdGUgc3lzX3dyaXRlCi0jZGVmaW5lIHNvbGFyaXNfY2xvc2Ugc3lzX2Nsb3NlCi0jZGVmaW5lIHNvbGFyaXNfY3JlYXQgc3lzX2NyZWF0Ci0jZGVmaW5lIHNvbGFyaXNfbGluayBzeXNfbGluawotI2RlZmluZSBzb2xhcmlzX3VubGluayBzeXNfdW5saW5rCi0jZGVmaW5lIHNvbGFyaXNfY2hkaXIgc3lzX2NoZGlyCi0jZGVmaW5lIHNvbGFyaXNfdGltZSBzeXNfdGltZQotI2RlZmluZSBzb2xhcmlzX2NobW9kIHN5c19jaG1vZAotI2RlZmluZSBzb2xhcmlzX2xzZWVrIHN5c19sc2VlawotI2RlZmluZSBzb2xhcmlzX3N0aW1lIHN5c19zdGltZQotI2RlZmluZSBzb2xhcmlzX2FsYXJtIHN5c19hbGFybQotI2RlZmluZSBzb2xhcmlzX3V0aW1lIHN5c191dGltZQotI2RlZmluZSBzb2xhcmlzX2FjY2VzcyBzeXNfYWNjZXNzCi0jZGVmaW5lIHNvbGFyaXNfbmljZSBzeXNfbmljZQotI2RlZmluZSBzb2xhcmlzX2R1cCBzeXNfZHVwCi0jZGVmaW5lIHNvbGFyaXNfcGlwZSBzeXNfcGlwZQotI2RlZmluZSBzb2xhcmlzX3RpbWVzIHN5c190aW1lcwotI2RlZmluZSBzb2xhcmlzX2V4ZWN2ZSBzeXNfZXhlY3ZlCi0jZGVmaW5lIHNvbGFyaXNfdW1hc2sgc3lzX3VtYXNrCi0jZGVmaW5lIHNvbGFyaXNfY2hyb290IHN5c19jaHJvb3QKLSNkZWZpbmUgc29sYXJpc19ybWRpciBzeXNfcm1kaXIKLSNkZWZpbmUgc29sYXJpc19ta2RpciBzeXNfbWtkaXIKLSNkZWZpbmUgc29sYXJpc19nZXRkZW50cyBzeXNfZ2V0ZGVudHMKLSNkZWZpbmUgc29sYXJpc19wb2xsIHN5c19wb2xsCi0jZGVmaW5lIHNvbGFyaXNfc3ltbGluayBzeXNfc3ltbGluawotI2RlZmluZSBzb2xhcmlzX3JlYWRsaW5rIHN5c19yZWFkbGluawotI2RlZmluZSBzb2xhcmlzX3NldGdyb3VwcyBzeXNfc2V0Z3JvdXBzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0Z3JvdXBzIHN5c19nZXRncm91cHMKLSNkZWZpbmUgc29sYXJpc19mY2htb2Qgc3lzX2ZjaG1vZAotI2RlZmluZSBzb2xhcmlzX2ZjaG93biBzeXNfZmNob3duCi0jZGVmaW5lIHNvbGFyaXNfbXByb3RlY3Qgc3lzX21wcm90ZWN0Ci0jZGVmaW5lIHNvbGFyaXNfbXVubWFwIHN5c19tdW5tYXAKLSNkZWZpbmUgc29sYXJpc19yZWFkdiBzeXNfcmVhZHYKLSNkZWZpbmUgc29sYXJpc193cml0ZXYgc3lzX3dyaXRldgotI2RlZmluZSBzb2xhcmlzX2Nob3duIHN5c19jaG93bgotI2RlZmluZSBzb2xhcmlzX3JlbmFtZSBzeXNfcmVuYW1lCi0jZGVmaW5lIHNvbGFyaXNfZ2V0dGltZW9mZGF5IHN5c19nZXR0aW1lb2ZkYXkKLSNkZWZpbmUgc29sYXJpc19nZXRpdGltZXIgc3lzX2dldGl0aW1lcgotI2RlZmluZSBzb2xhcmlzX3NldGl0aW1lciBzeXNfc2V0aXRpbWVyCi0jZGVmaW5lIHNvbGFyaXNfYnJrIHN5c19icmsKLSNkZWZpbmUgc29sYXJpc19tbWFwIHN5c19tbWFwCi0jZGVmaW5lIHNvbGFyaXNfZ2V0c2lkIHN5c19nZXRzaWQKLSNkZWZpbmUgc29sYXJpc19zZXRzaWQgc3lzX3NldHNpZAotI2RlZmluZSBzb2xhcmlzX2dldHBnaWQgc3lzX2dldHBnaWQKLSNkZWZpbmUgc29sYXJpc19zZXRwZ2lkIHN5c19zZXRwZ2lkCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cGdycCBzeXNfZ2V0cGdycAotCi0vKiBUaGVzZSBhcmUgaGFuZGxlZCBhY2NvcmRpbmcgdG8gY3VycmVudF9wZXJzb25hbGl0eSAqLwotI2RlZmluZSBzb2xhcmlzX3hzdGF0IHN5c194c3RhdAotI2RlZmluZSBzb2xhcmlzX2Z4c3RhdCBzeXNfZnhzdGF0Ci0jZGVmaW5lIHNvbGFyaXNfbHhzdGF0IHN5c19seHN0YXQKLSNkZWZpbmUgc29sYXJpc194bWtub2Qgc3lzX3hta25vZAotI2RlZmluZSBzb2xhcmlzX3N0YXQgc3lzX3N0YXQKLSNkZWZpbmUgc29sYXJpc19mc3RhdCBzeXNfZnN0YXQKLSNkZWZpbmUgc29sYXJpc19sc3RhdCBzeXNfbHN0YXQKLSNkZWZpbmUgc29sYXJpc19wcmVhZCBzeXNfcHJlYWQKLSNkZWZpbmUgc29sYXJpc19wd3JpdGUgc3lzX3B3cml0ZQotI2RlZmluZSBzb2xhcmlzX2lvY3RsIHN5c19pb2N0bAotI2RlZmluZSBzb2xhcmlzX21rbm9kIHN5c19ta25vZAotCi0vKiBUbyBiZSBkb25lICovCi0jZGVmaW5lIHNvbGFyaXNfbW91bnQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc3lzaW5mbyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zeXNjb25maWcgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cG1zZyBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19wdXRwbXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3dhaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfd2FpdGlkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3N1c3BlbmQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfc2V0cGdycCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRjb250ZXh0IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NldGNvbnRleHQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZ2V0cGlkIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldHVpZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19raWxsIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX2dldGdpZCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mY250bCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRtc2cgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfcHV0bXNnIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ3Byb2NtYXNrIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NpZ2FjdGlvbiBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19zaWdwZW5kaW5nIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX21pbmNvcmUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfZmNoZGlyIHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3NldHJsaW1pdCBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19nZXRybGltaXQgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfdW5hbWUgcHJpbnRhcmdzCi0jZGVmaW5lIHNvbGFyaXNfYWRqdGltZSBwcmludGFyZ3MKLSNkZWZpbmUgc29sYXJpc19mY2hyb290IHByaW50YXJncwotI2RlZmluZSBzb2xhcmlzX3V0aW1lcyBwcmludGFyZ3MKLQotI2lmIERPTkUKLSNkZWZpbmUgc29sYXJpc19vcGVuIHByaW50YXJncwotI2VuZGlmCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI0MzY5OS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLQkiRVJSTk9fMCIsIC8qIDAgKi8KLQkiRVBFUk0iLCAvKiAxICovCi0JIkVOT0VOVCIsIC8qIDIgKi8KLQkiRVNSQ0giLCAvKiAzICovCi0JIkVJTlRSIiwgLyogNCAqLwotCSJFSU8iLCAvKiA1ICovCi0JIkVOWElPIiwgLyogNiAqLwotCSJFMkJJRyIsIC8qIDcgKi8KLQkiRU5PRVhFQyIsIC8qIDggKi8KLQkiRUJBREYiLCAvKiA5ICovCi0JIkVDSElMRCIsIC8qIDEwICovCi0JIkVBR0FJTiIsIC8qIDExICovCi0JIkVOT01FTSIsIC8qIDEyICovCi0JIkVBQ0NFUyIsIC8qIDEzICovCi0JIkVGQVVMVCIsIC8qIDE0ICovCi0JIkVOT1RCTEsiLCAvKiAxNSAqLwotCSJFQlVTWSIsIC8qIDE2ICovCi0JIkVFWElTVCIsIC8qIDE3ICovCi0JIkVYREVWIiwgLyogMTggKi8KLQkiRU5PREVWIiwgLyogMTkgKi8KLQkiRU5PVERJUiIsIC8qIDIwICovCi0JIkVJU0RJUiIsIC8qIDIxICovCi0JIkVJTlZBTCIsIC8qIDIyICovCi0JIkVORklMRSIsIC8qIDIzICovCi0JIkVNRklMRSIsIC8qIDI0ICovCi0JIkVOT1RUWSIsIC8qIDI1ICovCi0JIkVUWFRCU1kiLCAvKiAyNiAqLwotCSJFRkJJRyIsIC8qIDI3ICovCi0JIkVOT1NQQyIsIC8qIDI4ICovCi0JIkVTUElQRSIsIC8qIDI5ICovCi0JIkVST0ZTIiwgLyogMzAgKi8KLQkiRU1MSU5LIiwgLyogMzEgKi8KLQkiRVBJUEUiLCAvKiAzMiAqLwotCSJFRE9NIiwgLyogMzMgKi8KLQkiRVJBTkdFIiwgLyogMzQgKi8KLQkiRVdPVUxEQkxPQ0siLCAvKiAzNSAqLwotCSJFSU5QUk9HUkVTUyIsIC8qIDM2ICovCi0JIkVBTFJFQURZIiwgLyogMzcgKi8KLQkiRU5PVFNPQ0siLCAvKiAzOCAqLwotCSJFREVTVEFERFJSRVEiLCAvKiAzOSAqLwotCSJFTVNHU0laRSIsIC8qIDQwICovCi0JIkVQUk9UT1RZUEUiLCAvKiA0MSAqLwotCSJFTk9QUk9UT09QVCIsIC8qIDQyICovCi0JIkVQUk9UT05PU1VQUE9SVCIsIC8qIDQzICovCi0JIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDQ0ICovCi0JIkVPUE5PVFNVUFAiLCAvKiA0NSAqLwotCSJFUEZOT1NVUFBPUlQiLCAvKiA0NiAqLwotCSJFQUZOT1NVUFBPUlQiLCAvKiA0NyAqLwotCSJFQUREUklOVVNFIiwgLyogNDggKi8KLQkiRUFERFJOT1RBVkFJTCIsIC8qIDQ5ICovCi0JIkVORVRET1dOIiwgLyogNTAgKi8KLQkiRU5FVFVOUkVBQ0giLCAvKiA1MSAqLwotCSJFTkVUUkVTRVQiLCAvKiA1MiAqLwotCSJFQ09OTkFCT1JURUQiLCAvKiA1MyAqLwotCSJFQ09OTlJFU0VUIiwgLyogNTQgKi8KLQkiRU5PQlVGUyIsIC8qIDU1ICovCi0JIkVJU0NPTk4iLCAvKiA1NiAqLwotCSJFTk9UQ09OTiIsIC8qIDU3ICovCi0JIkVTSFVURE9XTiIsIC8qIDU4ICovCi0JIkVUT09NQU5ZUkVGUyIsIC8qIDU5ICovCi0JIkVUSU1FRE9VVCIsIC8qIDYwICovCi0JIkVDT05OUkVGVVNFRCIsIC8qIDYxICovCi0JIkVMT09QIiwgLyogNjIgKi8KLQkiRU5BTUVUT09MT05HIiwgLyogNjMgKi8KLQkiRUhPU1RET1dOIiwgLyogNjQgKi8KLQkiRUhPU1RVTlJFQUNIIiwgLyogNjUgKi8KLQkiRU5PVEVNUFRZIiwgLyogNjYgKi8KLQkiRVBST0NMSU0iLCAvKiA2NyAqLwotCSJFVVNFUlMiLCAvKiA2OCAqLwotCSJFRFFVT1QiLCAvKiA2OSAqLwotCSJFU1RBTEUiLCAvKiA3MCAqLwotCSJFUkVNT1RFIiwgLyogNzEgKi8KLQkiRU5PU1RSIiwgLyogNzIgKi8KLQkiRVRJTUUiLCAvKiA3MyAqLwotCSJFTk9TUiIsIC8qIDc0ICovCi0JIkVOT01TRyIsIC8qIDc1ICovCi0JIkVCQURNU0ciLCAvKiA3NiAqLwotCSJFSURSTSIsIC8qIDc3ICovCi0JIkVERUFETEsiLCAvKiA3OCAqLwotCSJFTk9MQ0siLCAvKiA3OSAqLwotCSJFTk9ORVQiLCAvKiA4MCAqLwotCSJFUlJFTU9URSIsIC8qIDgxICovCi0JIkVOT0xJTksiLCAvKiA4MiAqLwotCSJFQURWIiwgLyogODMgKi8KLQkiRVNSTU5UIiwgLyogODQgKi8KLQkiRUNPTU0iLCAvKiA4NSAqLwotCSJFUFJPVE8iLCAvKiA4NiAqLwotCSJFTVVMVElIT1AiLCAvKiA4NyAqLwotCSJFRE9URE9UIiwgLyogODggKi8KLQkiRVJFTUNIRyIsIC8qIDg5ICovCi0JIkVOT1NZUyIsIC8qIDkwICovCi0JIkVTVFJQSVBFIiwgLyogOTEgKi8KLQkiRU9WRVJGTE9XIiwgLyogOTIgKi8KLQkiRUJBREZEIiwgLyogOTMgKi8KLQkiRUNIUk5HIiwgLyogOTQgKi8KLQkiRUwyTlNZTkMiLCAvKiA5NSAqLwotCSJFTDNITFQiLCAvKiA5NiAqLwotCSJFTDNSU1QiLCAvKiA5NyAqLwotCSJFTE5STkciLCAvKiA5OCAqLwotCSJFVU5BVENIIiwgLyogOTkgKi8KLQkiRU5PQ1NJIiwgLyogMTAwICovCi0JIkVMMkhMVCIsIC8qIDEwMSAqLwotCSJFQkFERSIsIC8qIDEwMiAqLwotCSJFQkFEUiIsIC8qIDEwMyAqLwotCSJFWEZVTEwiLCAvKiAxMDQgKi8KLQkiRU5PQU5PIiwgLyogMTA1ICovCi0JIkVCQURSUUMiLCAvKiAxMDYgKi8KLQkiRUJBRFNMVCIsIC8qIDEwNyAqLwotCSJFREVBRExPQ0siLCAvKiAxMDggKi8KLQkiRUJGT05UIiwgLyogMTA5ICovCi0JIkVMSUJFWEVDIiwgLyogMTEwICovCi0JIkVOT0RBVEEiLCAvKiAxMTEgKi8KLQkiRUxJQkJBRCIsIC8qIDExMiAqLwotCSJFTk9QS0ciLCAvKiAxMTMgKi8KLQkiRUxJQkFDQyIsIC8qIDExNCAqLwotCSJFTk9UVU5JUSIsIC8qIDExNSAqLwotCSJFUkVTVEFSVCIsIC8qIDExNiAqLwotCSJFVUNMRUFOIiwgLyogMTE3ICovCi0JIkVOT1ROQU0iLCAvKiAxMTggKi8KLQkiRU5BVkFJTCIsIC8qIDExOSAqLwotCSJFSVNOQU0iLCAvKiAxMjAgKi8KLQkiRVJFTU9URUlPIiwgLyogMTIxICovCi0JIkVJTFNFUSIsIC8qIDEyMiAqLwotCSJFTElCTUFYIiwgLyogMTIzICovCi0JIkVMSUJTQ04iLCAvKiAxMjQgKi8KLQkiRU5PTUVESVVNIiwgLyogMTI1ICovCi0JIkVNRURJVU1UWVBFIiwgLyogMTI2ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudDEuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDc1MGJkLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIi4uL3N2cjQvZXJybm9lbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNDM2OTkuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotCSJFUlJOT18wIiwgLyogMCAqLwotCSJFUEVSTSIsIC8qIDEgKi8KLQkiRU5PRU5UIiwgLyogMiAqLwotCSJFU1JDSCIsIC8qIDMgKi8KLQkiRUlOVFIiLCAvKiA0ICovCi0JIkVJTyIsIC8qIDUgKi8KLQkiRU5YSU8iLCAvKiA2ICovCi0JIkUyQklHIiwgLyogNyAqLwotCSJFTk9FWEVDIiwgLyogOCAqLwotCSJFQkFERiIsIC8qIDkgKi8KLQkiRUNISUxEIiwgLyogMTAgKi8KLQkiRUFHQUlOIiwgLyogMTEgKi8KLQkiRU5PTUVNIiwgLyogMTIgKi8KLQkiRUFDQ0VTIiwgLyogMTMgKi8KLQkiRUZBVUxUIiwgLyogMTQgKi8KLQkiRU5PVEJMSyIsIC8qIDE1ICovCi0JIkVCVVNZIiwgLyogMTYgKi8KLQkiRUVYSVNUIiwgLyogMTcgKi8KLQkiRVhERVYiLCAvKiAxOCAqLwotCSJFTk9ERVYiLCAvKiAxOSAqLwotCSJFTk9URElSIiwgLyogMjAgKi8KLQkiRUlTRElSIiwgLyogMjEgKi8KLQkiRUlOVkFMIiwgLyogMjIgKi8KLQkiRU5GSUxFIiwgLyogMjMgKi8KLQkiRU1GSUxFIiwgLyogMjQgKi8KLQkiRU5PVFRZIiwgLyogMjUgKi8KLQkiRVRYVEJTWSIsIC8qIDI2ICovCi0JIkVGQklHIiwgLyogMjcgKi8KLQkiRU5PU1BDIiwgLyogMjggKi8KLQkiRVNQSVBFIiwgLyogMjkgKi8KLQkiRVJPRlMiLCAvKiAzMCAqLwotCSJFTUxJTksiLCAvKiAzMSAqLwotCSJFUElQRSIsIC8qIDMyICovCi0JIkVET00iLCAvKiAzMyAqLwotCSJFUkFOR0UiLCAvKiAzNCAqLwotCSJFV09VTERCTE9DSyIsIC8qIDM1ICovCi0JIkVJTlBST0dSRVNTIiwgLyogMzYgKi8KLQkiRUFMUkVBRFkiLCAvKiAzNyAqLwotCSJFTk9UU09DSyIsIC8qIDM4ICovCi0JIkVERVNUQUREUlJFUSIsIC8qIDM5ICovCi0JIkVNU0dTSVpFIiwgLyogNDAgKi8KLQkiRVBST1RPVFlQRSIsIC8qIDQxICovCi0JIkVOT1BST1RPT1BUIiwgLyogNDIgKi8KLQkiRVBST1RPTk9TVVBQT1JUIiwgLyogNDMgKi8KLQkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogNDQgKi8KLQkiRU9QTk9UU1VQUCIsIC8qIDQ1ICovCi0JIkVQRk5PU1VQUE9SVCIsIC8qIDQ2ICovCi0JIkVBRk5PU1VQUE9SVCIsIC8qIDQ3ICovCi0JIkVBRERSSU5VU0UiLCAvKiA0OCAqLwotCSJFQUREUk5PVEFWQUlMIiwgLyogNDkgKi8KLQkiRU5FVERPV04iLCAvKiA1MCAqLwotCSJFTkVUVU5SRUFDSCIsIC8qIDUxICovCi0JIkVORVRSRVNFVCIsIC8qIDUyICovCi0JIkVDT05OQUJPUlRFRCIsIC8qIDUzICovCi0JIkVDT05OUkVTRVQiLCAvKiA1NCAqLwotCSJFTk9CVUZTIiwgLyogNTUgKi8KLQkiRUlTQ09OTiIsIC8qIDU2ICovCi0JIkVOT1RDT05OIiwgLyogNTcgKi8KLQkiRVNIVVRET1dOIiwgLyogNTggKi8KLQkiRVRPT01BTllSRUZTIiwgLyogNTkgKi8KLQkiRVRJTUVET1VUIiwgLyogNjAgKi8KLQkiRUNPTk5SRUZVU0VEIiwgLyogNjEgKi8KLQkiRUxPT1AiLCAvKiA2MiAqLwotCSJFTkFNRVRPT0xPTkciLCAvKiA2MyAqLwotCSJFSE9TVERPV04iLCAvKiA2NCAqLwotCSJFSE9TVFVOUkVBQ0giLCAvKiA2NSAqLwotCSJFTk9URU1QVFkiLCAvKiA2NiAqLwotCSJFUFJPQ0xJTSIsIC8qIDY3ICovCi0JIkVVU0VSUyIsIC8qIDY4ICovCi0JIkVEUVVPVCIsIC8qIDY5ICovCi0JIkVTVEFMRSIsIC8qIDcwICovCi0JIkVSRU1PVEUiLCAvKiA3MSAqLwotCSJFTk9TVFIiLCAvKiA3MiAqLwotCSJFVElNRSIsIC8qIDczICovCi0JIkVOT1NSIiwgLyogNzQgKi8KLQkiRU5PTVNHIiwgLyogNzUgKi8KLQkiRUJBRE1TRyIsIC8qIDc2ICovCi0JIkVJRFJNIiwgLyogNzcgKi8KLQkiRURFQURMSyIsIC8qIDc4ICovCi0JIkVOT0xDSyIsIC8qIDc5ICovCi0JIkVOT05FVCIsIC8qIDgwICovCi0JIkVSUkVNT1RFIiwgLyogODEgKi8KLQkiRU5PTElOSyIsIC8qIDgyICovCi0JIkVBRFYiLCAvKiA4MyAqLwotCSJFU1JNTlQiLCAvKiA4NCAqLwotCSJFQ09NTSIsIC8qIDg1ICovCi0JIkVQUk9UTyIsIC8qIDg2ICovCi0JIkVNVUxUSUhPUCIsIC8qIDg3ICovCi0JIkVET1RET1QiLCAvKiA4OCAqLwotCSJFUkVNQ0hHIiwgLyogODkgKi8KLQkiRU5PU1lTIiwgLyogOTAgKi8KLQkiRVNUUlBJUEUiLCAvKiA5MSAqLwotCSJFT1ZFUkZMT1ciLCAvKiA5MiAqLwotCSJFQkFERkQiLCAvKiA5MyAqLwotCSJFQ0hSTkciLCAvKiA5NCAqLwotCSJFTDJOU1lOQyIsIC8qIDk1ICovCi0JIkVMM0hMVCIsIC8qIDk2ICovCi0JIkVMM1JTVCIsIC8qIDk3ICovCi0JIkVMTlJORyIsIC8qIDk4ICovCi0JIkVVTkFUQ0giLCAvKiA5OSAqLwotCSJFTk9DU0kiLCAvKiAxMDAgKi8KLQkiRUwySExUIiwgLyogMTAxICovCi0JIkVCQURFIiwgLyogMTAyICovCi0JIkVCQURSIiwgLyogMTAzICovCi0JIkVYRlVMTCIsIC8qIDEwNCAqLwotCSJFTk9BTk8iLCAvKiAxMDUgKi8KLQkiRUJBRFJRQyIsIC8qIDEwNiAqLwotCSJFQkFEU0xUIiwgLyogMTA3ICovCi0JIkVERUFETE9DSyIsIC8qIDEwOCAqLwotCSJFQkZPTlQiLCAvKiAxMDkgKi8KLQkiRUxJQkVYRUMiLCAvKiAxMTAgKi8KLQkiRU5PREFUQSIsIC8qIDExMSAqLwotCSJFTElCQkFEIiwgLyogMTEyICovCi0JIkVOT1BLRyIsIC8qIDExMyAqLwotCSJFTElCQUNDIiwgLyogMTE0ICovCi0JIkVOT1RVTklRIiwgLyogMTE1ICovCi0JIkVSRVNUQVJUIiwgLyogMTE2ICovCi0JIkVVQ0xFQU4iLCAvKiAxMTcgKi8KLQkiRU5PVE5BTSIsIC8qIDExOCAqLwotCSJFTkFWQUlMIiwgLyogMTE5ICovCi0JIkVJU05BTSIsIC8qIDEyMCAqLwotCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KLQkiRUlMU0VRIiwgLyogMTIyICovCi0JIkVMSUJNQVgiLCAvKiAxMjMgKi8KLQkiRUxJQlNDTiIsIC8qIDEyNCAqLwotCSJFTk9NRURJVU0iLCAvKiAxMjUgKi8KLQkiRU1FRElVTVRZUEUiLCAvKiAxMjYgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWQ2YjhhLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MzggKzAsMCBAQAotCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAotCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAotCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAotCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAotCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAotCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAotCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAotCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCi0JeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCi0JeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAotCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAotCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKLQl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAotCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCi0JeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCi0JeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAotCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAotCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKLQl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAotCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKLQl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKLQl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAotCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAotCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKLQl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKLQl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKLQl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAotCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKLQl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAotCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAotCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAotCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKLQl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCi0JeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKLQl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAotCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCi0JeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCi0JeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCi0JeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAotCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCi0JeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCi0JeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAotCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAotCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCi0JeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCi0JeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCi0JeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAotCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAotCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAotCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAotCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAotCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAotCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkNTM2Y2YuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jaW5jbHVkZSAiLi4vc3ZyNC9pb2N0bGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudDIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFkNmI4YS4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudDIuaAorKysgL2Rldi9udWxsCkBAIC0xLDgzOCArMCwwIEBACi0JeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCi0JeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAotCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCi0JeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCi0JeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCi0JeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCi0JeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAotCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAotCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAotCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAotCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCi0JeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKLQl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAotCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKLQl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCi0JeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAotCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAotCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAotCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAotCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAotCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCi0JeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKLQl7ImxpbnV4L2VsZXZhdG9yLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKLQl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAotCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKLQl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCi0JeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAotCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCi0JeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKLQl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAotCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCi0JeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKLQl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAotCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAotCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKLQl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCi0JeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NSRVAiLAkweDQ1MDN9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTS0VZQ09ERSIsCTB4NDUwNH0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCi0JeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAotCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKLQl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCi0JeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCi0JeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAotCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKLQl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCi0JeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX09MRF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0NIQU5ORUxTIiwJMHg1MDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9XUklURV9GSUxURVIiLAkweDUwMDd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRUUklHR0VSIiwJMHg1MDEwfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVBUUiIsCTB4NTAxMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9QVFIiLAkweDUwMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBJTkJVRiIsCTB4NTAxM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUE9VVEJVRiIsCTB4NTAxNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNZTkNSTyIsCTB4NTAxNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVERVUExFWCIsCTB4NTAxNn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9ERUxBWSIsCTB4NTAxN30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BST0ZJTEUiLAkweDUwMTd9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDSEFOTkVMTUFTSyIsCTB4NTA0MH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0JJTkRfQ0hBTk5FTCIsCTB4NTA0MX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFNQRElGIiwJMHg1MDQyfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUU1BESUYiLAkweDUwNDN9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCi0JeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAotCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKLQl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVElNRUJBU0UiLAkweDU0MDF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNXIiwJMHg1NDAzfSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDU0MDV9LAotCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg1NDA2fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU09VUkNFIiwJMHg1NDA2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg1NDA3fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg1NDA4fSwKLQl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDU0MDl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NTQwYX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg1NDBifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg1NDBmfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDU0MTB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg1NDExfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg1NDEzfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg1NDE0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg1NDFifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDU0MjF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAotCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg1NDUwfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg1NDUxfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NTQ1Mn0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAotCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKLQl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCi0JeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCi0JeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKLQl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAotCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCi0JeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAotCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKLQl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAotCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKLQl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCi0JeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAotCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCi0JeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKLQl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAotCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKLQl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCi0JeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAotCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCi0JeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCi0JeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19HRVRQU1RBVCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTCIsCTB4NjE2MX0sCi0JeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX1NFVEJVRkxFViIsCTB4NjE2Mn0sCi0JeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTFoiLAkweDYxNjJ9LAotCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19BREpCVUZMRVYiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX1NFVFBPT0wiLAkweDYxNjN9LAotCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFRISVNUIiwJMHg2MTY0fSwKLQl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAotCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCi0JeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCi0JeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAotCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAotCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAotCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKLQl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCi0JeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAotCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKLQl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCi0JeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCi0JeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAotCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKLQl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCi0JeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKLQl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAotCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCi0JeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAotCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCi0JeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKLQl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAotCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCi0JeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKLQl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VURkxBR1MiLAkweDY2MDF9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKLQl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKLQl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAotCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCi0JeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAotCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAotCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCi0JeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKLQl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAotCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCi0JeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKLQl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCi0JeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKLQl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCi0JeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKLQl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAotCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKLQl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAotCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCi0JeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCi0JeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAotCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwJMHg2ZTAyfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwJMHg2ZTA0fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFJPT1QiLAkweDZlMDh9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAotCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCi0JeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVENIQVJTRVRTIiwJMHg2ZTBifSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKLQl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRNT1VOVCIsCTB4NzAwM30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUUElEIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTE9TRV9KT1VSTkFMRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVF9GU0VUUk9PVCIsCTB4NzAwN30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0ZTRVRST09UIiwJMHg3MDA4fSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVE9QVCIsCTB4NzAwOX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE9QVCIsCTB4NzAwYX0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfS01MU0laRSIsCTB4NzAwYn0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX1JFQ05PIiwJMHg3MDBjfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCi0JeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAotCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRBVFRSIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKLQl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DUkVBVEUiLAkweDcwMTF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTElOSyIsCTB4NzAxMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19VTkxJTksiLAkweDcwMTN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU1lNTElOSyIsCTB4NzAxNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS0RJUiIsCTB4NzAxNX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19STURJUiIsCTB4NzAxNn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS05PRCIsCTB4NzAxN30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19SRU5BTUUiLAkweDcwMTh9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ0xPU0UiLAkweDcwMWF9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfSU9QRU4iLAkweDcwMWJ9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VURVhUQVRUUiIsCTB4NzAxY30sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19ERUxFWFRBVFRSIiwJMHg3MDFkfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKLQl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAotCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCi0JeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCi0JeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAotCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCi0JeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAotCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKLQl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCi0JeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKLQl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAotCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCi0JeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCi0JeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKLQl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAotCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKLQl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLAkweDcyMDF9LAotCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLAkweDcyMDJ9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAotCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKLQl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAotCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKLQl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCi0JeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAotCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCi0JeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKLQl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCi0JeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKLQl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAotCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKLQl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKLQl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCi0JeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAotCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAotCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCi0JeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCi0JeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAotCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCi0JeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKLQl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAotCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKLQl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCi0JeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAotCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKLQl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAotCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAotCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKLQl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKLQl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCi0JeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKLQl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCi0JeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAotCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCi0JeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKLQl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKLQl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKLQl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKLQl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAotCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAotCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKLQl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAotCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAotCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCi0JeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAotCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAotCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKLQl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCi0JeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCi0JeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKLQl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCi0JeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZmMDB9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA1OWI1ZC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLQkiU0lHXzAiLAkvKiAwICovCi0JIlNJR0hVUCIsCS8qIDEgKi8KLQkiU0lHSU5UIiwJLyogMiAqLwotCSJTSUdRVUlUIiwJLyogMyAqLwotCSJTSUdJTEwiLAkvKiA0ICovCi0JIlNJR1RSQVAiLAkvKiA1ICovCi0JIlNJR0FCUlQiLAkvKiA2ICovCi0JIlNJR0VNVCIsCS8qIDcgKi8KLQkiU0lHRlBFIiwJLyogOCAqLwotCSJTSUdLSUxMIiwJLyogOSAqLwotCSJTSUdCVVMiLAkvKiAxMCAqLwotCSJTSUdTRUdWIiwJLyogMTEgKi8KLQkiU0lHU1lTIiwJLyogMTIgKi8KLQkiU0lHUElQRSIsCS8qIDEzICovCi0JIlNJR0FMUk0iLAkvKiAxNCAqLwotCSJTSUdURVJNIiwJLyogMTUgKi8KLQkiU0lHVVJHIiwJLyogMTYgKi8KLQkiU0lHU1RPUCIsCS8qIDE3ICovCi0JIlNJR1RTVFAiLAkvKiAxOCAqLwotCSJTSUdDT05UIiwJLyogMTkgKi8KLQkiU0lHQ0hMRCIsCS8qIDIwICovCi0JIlNJR1RUSU4iLAkvKiAyMSAqLwotCSJTSUdUVE9VIiwJLyogMjIgKi8KLQkiU0lHSU8iLAkvKiAyMyAqLwotCSJTSUdYQ1BVIiwJLyogMjQgKi8KLQkiU0lHWEZTWiIsCS8qIDI1ICovCi0JIlNJR1ZUQUxSTSIsCS8qIDI2ICovCi0JIlNJR1BST0YiLAkvKiAyNyAqLwotCSJTSUdXSU5DSCIsCS8qIDI4ICovCi0JIlNJR0xPU1QiLAkvKiAyOSAqLwotCSJTSUdVU1IxIiwJLyogMzAgKi8KLQkiU0lHVVNSMiIsCS8qIDMxICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZTdhMjYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotI2luY2x1ZGUgIi4uL3N2cjQvc2lnbmFsZW50LmgiCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNTliNWQuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotCSJTSUdfMCIsCS8qIDAgKi8KLQkiU0lHSFVQIiwJLyogMSAqLwotCSJTSUdJTlQiLAkvKiAyICovCi0JIlNJR1FVSVQiLAkvKiAzICovCi0JIlNJR0lMTCIsCS8qIDQgKi8KLQkiU0lHVFJBUCIsCS8qIDUgKi8KLQkiU0lHQUJSVCIsCS8qIDYgKi8KLQkiU0lHRU1UIiwJLyogNyAqLwotCSJTSUdGUEUiLAkvKiA4ICovCi0JIlNJR0tJTEwiLAkvKiA5ICovCi0JIlNJR0JVUyIsCS8qIDEwICovCi0JIlNJR1NFR1YiLAkvKiAxMSAqLwotCSJTSUdTWVMiLAkvKiAxMiAqLwotCSJTSUdQSVBFIiwJLyogMTMgKi8KLQkiU0lHQUxSTSIsCS8qIDE0ICovCi0JIlNJR1RFUk0iLAkvKiAxNSAqLwotCSJTSUdVUkciLAkvKiAxNiAqLwotCSJTSUdTVE9QIiwJLyogMTcgKi8KLQkiU0lHVFNUUCIsCS8qIDE4ICovCi0JIlNJR0NPTlQiLAkvKiAxOSAqLwotCSJTSUdDSExEIiwJLyogMjAgKi8KLQkiU0lHVFRJTiIsCS8qIDIxICovCi0JIlNJR1RUT1UiLAkvKiAyMiAqLwotCSJTSUdJTyIsCS8qIDIzICovCi0JIlNJR1hDUFUiLAkvKiAyNCAqLwotCSJTSUdYRlNaIiwJLyogMjUgKi8KLQkiU0lHVlRBTFJNIiwJLyogMjYgKi8KLQkiU0lHUFJPRiIsCS8qIDI3ICovCi0JIlNJR1dJTkNIIiwJLyogMjggKi8KLQkiU0lHTE9TVCIsCS8qIDI5ICovCi0JIlNJR1VTUjEiLAkvKiAzMCAqLwotCSJTSUdVU1IyIiwJLyogMzEgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGwuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjU2ZTA4ZC4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsLmgKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jaW5jbHVkZSAiLi4vc3BhcmMvc3lzY2FsbC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGwxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0MWY4ZGEuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwotICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAotICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICoJJElkOiBzeXNjYWxsMS5oLHYgMS4xIDIwMDQvMDcvMTIgMDc6NDQ6MDggcm9sYW5kIEV4cCAkCi0gKi8KLQotI2RlZmluZQlTT0xBUklTX3N5c2NhbGwJMAotI2RlZmluZQlTT0xBUklTX2V4aXQJMQotI2RlZmluZQlTT0xBUklTX2ZvcmsJMgotI2RlZmluZQlTT0xBUklTX3JlYWQJMwotI2RlZmluZQlTT0xBUklTX3dyaXRlCTQKLSNkZWZpbmUJU09MQVJJU19vcGVuCTUKLSNkZWZpbmUJU09MQVJJU19jbG9zZQk2Ci0jZGVmaW5lCVNPTEFSSVNfd2FpdAk3Ci0jZGVmaW5lCVNPTEFSSVNfY3JlYXQJOAotI2RlZmluZQlTT0xBUklTX2xpbmsJOQotI2RlZmluZQlTT0xBUklTX3VubGluawkxMAotI2RlZmluZQlTT0xBUklTX2V4ZWMJMTEKLSNkZWZpbmUJU09MQVJJU19jaGRpcgkxMgotI2RlZmluZQlTT0xBUklTX3RpbWUJMTMKLSNkZWZpbmUJU09MQVJJU19ta25vZAkxNAotI2RlZmluZQlTT0xBUklTX2NobW9kCTE1Ci0jZGVmaW5lCVNPTEFSSVNfY2hvd24JMTYKLSNkZWZpbmUJU09MQVJJU19icmsJCTE3Ci0jZGVmaW5lCVNPTEFSSVNfc3RhdAkxOAotI2RlZmluZQlTT0xBUklTX2xzZWVrCTE5Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0cGlkCTIwCi0jZGVmaW5lCVNPTEFSSVNfbW91bnQJMjEKLSNkZWZpbmUJU09MQVJJU191bW91bnQJMjIKLSNkZWZpbmUJU09MQVJJU19zZXR1aWQJMjMKLSNkZWZpbmUJU09MQVJJU19nZXR1aWQJMjQKLSNkZWZpbmUJU09MQVJJU19zdGltZQkyNQotI2RlZmluZQlTT0xBUklTX3B0cmFjZQkyNgotI2RlZmluZQlTT0xBUklTX2FsYXJtCTI3Ci0jZGVmaW5lCVNPTEFSSVNfZnN0YXQJMjgKLSNkZWZpbmUJU09MQVJJU19wYXVzZQkyOQotI2RlZmluZQlTT0xBUklTX3V0aW1lCTMwCi0jZGVmaW5lCVNPTEFSSVNfc3R0eQkzMQotI2RlZmluZQlTT0xBUklTX2d0dHkJMzIKLSNkZWZpbmUJU09MQVJJU19hY2Nlc3MJMzMKLSNkZWZpbmUJU09MQVJJU19uaWNlCTM0Ci0jZGVmaW5lCVNPTEFSSVNfc3RhdGZzCTM1Ci0jZGVmaW5lCVNPTEFSSVNfc3luYwkzNgotI2RlZmluZQlTT0xBUklTX2tpbGwJMzcKLSNkZWZpbmUJU09MQVJJU19mc3RhdGZzCTM4Ci0jZGVmaW5lCVNPTEFSSVNfcGdycHN5cwkzOQotI2RlZmluZQlTT0xBUklTX3hlbml4CTQwCi0jZGVmaW5lCVNPTEFSSVNfZHVwCQk0MQotI2RlZmluZQlTT0xBUklTX3BpcGUJNDIKLSNkZWZpbmUJU09MQVJJU190aW1lcwk0MwotI2RlZmluZQlTT0xBUklTX3Byb2ZpbAk0NAotI2RlZmluZQlTT0xBUklTX3Bsb2NrCTQ1Ci0jZGVmaW5lCVNPTEFSSVNfc2V0Z2lkCTQ2Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0Z2lkCTQ3Ci0jZGVmaW5lCVNPTEFSSVNfc2lnbmFsCTQ4Ci0jZGVmaW5lCVNPTEFSSVNfbXNnc3lzCTQ5Ci0jZGVmaW5lCVNPTEFSSVNfc3lzc3VuCTUwCi0jZGVmaW5lCVNPTEFSSVNfYWNjdAk1MQotI2RlZmluZQlTT0xBUklTX3NobXN5cwk1MgotI2RlZmluZQlTT0xBUklTX3NlbXN5cwk1MwotI2RlZmluZQlTT0xBUklTX2lvY3RsCTU0Ci0jZGVmaW5lCVNPTEFSSVNfdWFkbWluCTU1Ci0jZGVmaW5lCVNPTEFSSVNfdXRzc3lzCTU3Ci0jZGVmaW5lCVNPTEFSSVNfZmRzeW5jCTU4Ci0jZGVmaW5lCVNPTEFSSVNfZXhlY3ZlCTU5Ci0jZGVmaW5lCVNPTEFSSVNfdW1hc2sJNjAKLSNkZWZpbmUJU09MQVJJU19jaHJvb3QJNjEKLSNkZWZpbmUJU09MQVJJU19mY250bAk2MgotI2RlZmluZQlTT0xBUklTX3VsaW1pdAk2MwotI2RlZmluZQlTT0xBUklTX3JtZGlyCTc5Ci0jZGVmaW5lCVNPTEFSSVNfbWtkaXIJODAKLSNkZWZpbmUJU09MQVJJU19nZXRkZW50cwk4MQotI2RlZmluZQlTT0xBUklTX3N5c2ZzCTg0Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0bXNnCTg1Ci0jZGVmaW5lCVNPTEFSSVNfcHV0bXNnCTg2Ci0jZGVmaW5lCVNPTEFSSVNfcG9sbAk4NwotI2RlZmluZQlTT0xBUklTX2xzdGF0CTg4Ci0jZGVmaW5lCVNPTEFSSVNfc3ltbGluawk4OQotI2RlZmluZQlTT0xBUklTX3JlYWRsaW5rCTkwCi0jZGVmaW5lCVNPTEFSSVNfc2V0Z3JvdXBzCTkxCi0jZGVmaW5lCVNPTEFSSVNfZ2V0Z3JvdXBzCTkyCi0jZGVmaW5lCVNPTEFSSVNfZmNobW9kCTkzCi0jZGVmaW5lCVNPTEFSSVNfZmNob3duCTk0Ci0jZGVmaW5lCVNPTEFSSVNfc2lncHJvY21hc2sJOTUKLSNkZWZpbmUJU09MQVJJU19zaWdzdXNwZW5kCTk2Ci0jZGVmaW5lCVNPTEFSSVNfc2lnYWx0c3RhY2sJOTcKLSNkZWZpbmUJU09MQVJJU19zaWdhY3Rpb24JOTgKLSNkZWZpbmUJU09MQVJJU19zaWdwZW5kaW5nCTk5Ci0jZGVmaW5lCVNPTEFSSVNfY29udGV4dAkxMDAKLSNkZWZpbmUJU09MQVJJU19ldnN5cwkxMDEKLSNkZWZpbmUJU09MQVJJU19ldnRyYXByZXQJMTAyCi0jZGVmaW5lCVNPTEFSSVNfc3RhdHZmcwkxMDMKLSNkZWZpbmUJU09MQVJJU19mc3RhdHZmcwkxMDQKLSNkZWZpbmUJU09MQVJJU19uZnNzeXMJMTA2Ci0jZGVmaW5lCVNPTEFSSVNfd2FpdHN5cwkxMDcKLSNkZWZpbmUJU09MQVJJU19zaWdzZW5kc3lzCTEwOAotI2RlZmluZQlTT0xBUklTX2hydHN5cwkxMDkKLSNkZWZpbmUJU09MQVJJU19hY2FuY2VsCTExMAotI2RlZmluZQlTT0xBUklTX2FzeW5jCTExMQotI2RlZmluZQlTT0xBUklTX3ByaW9jbnRsc3lzCTExMgotI2RlZmluZQlTT0xBUklTX3BhdGhjb25mCTExMwotI2RlZmluZQlTT0xBUklTX21pbmNvcmUJMTE0Ci0jZGVmaW5lCVNPTEFSSVNfbW1hcAkxMTUKLSNkZWZpbmUJU09MQVJJU19tcHJvdGVjdAkxMTYKLSNkZWZpbmUJU09MQVJJU19tdW5tYXAJMTE3Ci0jZGVmaW5lCVNPTEFSSVNfZnBhdGhjb25mCTExOAotI2RlZmluZQlTT0xBUklTX3Zmb3JrCTExOQotI2RlZmluZQlTT0xBUklTX2ZjaGRpcgkxMjAKLSNkZWZpbmUJU09MQVJJU19yZWFkdgkxMjEKLSNkZWZpbmUJU09MQVJJU193cml0ZXYJMTIyCi0jZGVmaW5lCVNPTEFSSVNfeHN0YXQJMTIzCi0jZGVmaW5lCVNPTEFSSVNfbHhzdGF0CTEyNAotI2RlZmluZQlTT0xBUklTX2Z4c3RhdAkxMjUKLSNkZWZpbmUJU09MQVJJU194bWtub2QJMTI2Ci0jZGVmaW5lCVNPTEFSSVNfY2xvY2FsCTEyNwotI2RlZmluZQlTT0xBUklTX3NldHJsaW1pdAkxMjgKLSNkZWZpbmUJU09MQVJJU19nZXRybGltaXQJMTI5Ci0jZGVmaW5lCVNPTEFSSVNfbGNob3duCTEzMAotI2RlZmluZQlTT0xBUklTX21lbWNudGwJMTMxCi0jZGVmaW5lCVNPTEFSSVNfZ2V0cG1zZwkxMzIKLSNkZWZpbmUJU09MQVJJU19wdXRwbXNnCTEzMwotI2RlZmluZQlTT0xBUklTX3JlbmFtZQkxMzQKLSNkZWZpbmUJU09MQVJJU191bmFtZQkxMzUKLSNkZWZpbmUJU09MQVJJU19zZXRlZ2lkCTEzNgotI2RlZmluZQlTT0xBUklTX3N5c2NvbmZpZwkxMzcKLSNkZWZpbmUJU09MQVJJU19hZGp0aW1lCTEzOAotI2RlZmluZQlTT0xBUklTX3N5c3RlbWluZm8JMTM5Ci0jZGVmaW5lCVNPTEFSSVNfc2V0ZXVpZAkxNDEKLSNkZWZpbmUJU09MQVJJU192dHJhY2UJMTQyCi0jZGVmaW5lCVNPTEFSSVNfZm9yazEJMTQzCi0jZGVmaW5lCVNPTEFSSVNfc2lndGltZWR3YWl0CTE0NAotI2RlZmluZQlTT0xBUklTX2x3cF9pbmZvCTE0NQotI2RlZmluZQlTT0xBUklTX3lpZWxkCTE0NgotI2RlZmluZQlTT0xBUklTX2x3cF9zZW1hX3dhaXQJMTQ3Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3NlbWFfcG9zdAkxNDgKLSNkZWZpbmUJU09MQVJJU19tb2RjdGwJMTUyCi0jZGVmaW5lCVNPTEFSSVNfZmNocm9vdAkxNTMKLSNkZWZpbmUJU09MQVJJU191dGltZXMJMTU0Ci0jZGVmaW5lCVNPTEFSSVNfdmhhbmd1cAkxNTUKLSNkZWZpbmUJU09MQVJJU19nZXR0aW1lb2ZkYXkJMTU2Ci0jZGVmaW5lCVNPTEFSSVNfZ2V0aXRpbWVyCQkxNTcKLSNkZWZpbmUJU09MQVJJU19zZXRpdGltZXIJCTE1OAotI2RlZmluZQlTT0xBUklTX2x3cF9jcmVhdGUJCTE1OQotI2RlZmluZQlTT0xBUklTX2x3cF9leGl0CQkxNjAKLSNkZWZpbmUJU09MQVJJU19sd3Bfc3VzcGVuZAkJMTYxCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbnRpbnVlCTE2MgotI2RlZmluZQlTT0xBUklTX2x3cF9raWxsCQkxNjMKLSNkZWZpbmUJU09MQVJJU19sd3Bfc2VsZgkJMTY0Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3NldHByaXZhdGUJMTY1Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2dldHByaXZhdGUJMTY2Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX3dhaXQJCTE2NwotI2RlZmluZQlTT0xBUklTX2x3cF9tdXRleF91bmxvY2sJMTY4Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX211dGV4X2xvY2sJMTY5Ci0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfd2FpdAkxNzAKLSNkZWZpbmUJU09MQVJJU19sd3BfY29uZF9zaWduYWwJMTcxCi0jZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfYnJvYWRjYXN0CTE3MgotI2RlZmluZQlTT0xBUklTX3ByZWFkCQkxNzMKLSNkZWZpbmUJU09MQVJJU19wd3JpdGUJCTE3NAotI2RlZmluZQlTT0xBUklTX2xsc2VlawkJMTc1Ci0jZGVmaW5lCVNPTEFSSVNfaW5zdF9zeW5jCQkxNzYKLSNkZWZpbmUJU09MQVJJU19rYWlvCQkxNzgKLSNkZWZpbmUJU09MQVJJU190c29sc3lzCQkxODQKLSNkZWZpbmUJU09MQVJJU19hY2wJCQkxODUKLSNkZWZpbmUJU09MQVJJU19hdWRpdHN5cwkJMTg2Ci0jZGVmaW5lCVNPTEFSSVNfcHJvY2Vzc29yX2JpbmQJMTg3Ci0jZGVmaW5lCVNPTEFSSVNfcHJvY2Vzc29yX2luZm8JMTg4Ci0jZGVmaW5lCVNPTEFSSVNfcF9vbmxpbmUJCTE4OQotI2RlZmluZQlTT0xBUklTX3NpZ3F1ZXVlCQkxOTAKLSNkZWZpbmUJU09MQVJJU19jbG9ja19nZXR0aW1lCTE5MQotI2RlZmluZQlTT0xBUklTX2Nsb2NrX3NldHRpbWUJMTkyCi0jZGVmaW5lCVNPTEFSSVNfY2xvY2tfZ2V0cmVzCTE5MwotI2RlZmluZQlTT0xBUklTX3RpbWVyX2NyZWF0ZQkxOTQKLSNkZWZpbmUJU09MQVJJU190aW1lcl9kZWxldGUJMTk1Ci0jZGVmaW5lCVNPTEFSSVNfdGltZXJfc2V0dGltZQkxOTYKLSNkZWZpbmUJU09MQVJJU190aW1lcl9nZXR0aW1lCTE5NwotI2RlZmluZQlTT0xBUklTX3RpbWVyX2dldG92ZXJydW4JMTk4Ci0jZGVmaW5lCVNPTEFSSVNfbmFub3NsZWVwCQkxOTkKLSNkZWZpbmUJU09MQVJJU19mYWNsCQkyMDAKLSNkZWZpbmUJU09MQVJJU19kb29yCQkyMDEKLSNkZWZpbmUJU09MQVJJU19zZXRyZXVpZAkJMjAyCi0jZGVmaW5lCVNPTEFSSVNfc2V0cmVnaWQJCTIwMwotI2RlZmluZQlTT0xBUklTX3NpZ25vdGlmeXdhaXQJMjEwCi0jZGVmaW5lCVNPTEFSSVNfbHdwX3NpZ3JlZGlyZWN0CTIxMQotI2RlZmluZQlTT0xBUklTX2x3cF9hbGFybQkJMjEyCi0KLSNpbmNsdWRlICJkdW1teTIuaCIKLQotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2NhbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19leGl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZm9yaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlYWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc193cml0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX29wZW4oKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9zZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3dhaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jcmVhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xpbmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bmxpbmsoKTsKLWV4dGVybiBpbnQgc29sYXJpc19leGVjKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2hkaXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbWtub2QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jaG1vZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nob3duKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYnJrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3RhdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xzZWVrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cGlkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbW91bnQoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bW91bnQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXR1aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXR1aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3B0cmFjZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FsYXJtKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wYXVzZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3V0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3R0eSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2d0dHkoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hY2Nlc3MoKTsKLWV4dGVybiBpbnQgc29sYXJpc19uaWNlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3RhdGZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3luYygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2tpbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mc3RhdGZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcGdycHN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldHBncnAoKTsKLWV4dGVybiBpbnQgc29sYXJpc194ZW5peCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c3NnaSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2R1cCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3BpcGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Byb2ZpbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Bsb2NrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0Z2lkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0Z2lkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnY2FsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21zZ3N5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c3N1bigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2k4NigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c21pcHMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNtYWNoaW5lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWNjdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NobXN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NlbXN5cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2lvY3RsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdWFkbWluKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdXRzc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmRzeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXhlY3ZlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdW1hc2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19jaHJvb3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mY250bCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3VsaW1pdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JtZGlyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbWtkaXIoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRkZW50cygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3N5c2ZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0bXNnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHV0bXNnKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcG9sbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2xzdGF0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3ltbGluaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlYWRsaW5rKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0Z3JvdXBzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0Z3JvdXBzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNobW9kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZmNob3duKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lncHJvY21hc2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdzdXNwZW5kKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lnYWx0c3RhY2soKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdhY3Rpb24oKTsKLWV4dGVybiBpbnQgc29sYXJpc19zcGNhbGwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jb250ZXh0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZXZzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19ldnRyYXByZXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zdGF0dmZzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZnN0YXR2ZnMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19uZnNzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc193YWl0aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdzZW5kc3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfaHJ0c3lzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYWNhbmNlbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2FzeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHJpb2NudGxzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wYXRoY29uZigpOwotZXh0ZXJuIGludCBzb2xhcmlzX21pbmNvcmUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tbWFwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbXByb3RlY3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19tdW5tYXAoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mcGF0aGNvbmYoKTsKLWV4dGVybiBpbnQgc29sYXJpc192Zm9yaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjaGRpcigpOwotZXh0ZXJuIGludCBzb2xhcmlzX3JlYWR2KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfd3JpdGV2KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfeHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19seHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19meHN0YXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc194bWtub2QoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9jYWwoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRybGltaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19nZXRybGltaXQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sY2hvd24oKTsKLWV4dGVybiBpbnQgc29sYXJpc19tZW1jbnRsKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cG1zZygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3B1dHBtc2coKTsKLWV4dGVybiBpbnQgc29sYXJpc19yZW5hbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc191bmFtZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGVnaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zeXNjb25maWcoKTsKLWV4dGVybiBpbnQgc29sYXJpc19hZGp0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc3lzaW5mbygpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NldGV1aWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc192dHJhY2UoKTsKLWV4dGVybiBpbnQgc29sYXJpc19mb3JrMSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3RpbWVkd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9pbmZvKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfeWllbGQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfc2VtYV93YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3NlbWFfcG9zdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX21vZGN0bCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2ZjaHJvb3QoKTsKLWV4dGVybiBpbnQgc29sYXJpc191dGltZXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc192aGFuZ3VwKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0dGltZW9mZGF5KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfZ2V0aXRpbWVyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2V0aXRpbWVyKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NyZWF0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9leGl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3N1c3BlbmQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfY29udGludWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3Bfa2lsbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZWxmKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX3NldHByaXZhdGUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19sd3BfZ2V0cHJpdmF0ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF93YWl0KCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX211dGV4X3VubG9jaygpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9tdXRleF9sb2NrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbmRfd2FpdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3ByZWFkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcHdyaXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbGxzZWVrKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfaW5zdF9zeW5jKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfYXVkaXRzeXMoKTsKLWV4dGVybiBpbnQgc29sYXJpc19wcm9jZXNzb3JfYmluZCgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3Byb2Nlc3Nvcl9pbmZvKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfcF9vbmxpbmUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zaWdxdWV1ZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NrX2dldHRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc19jbG9ja19zZXR0aW1lKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfY2xvY2tfZ2V0cmVzKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfY3JlYXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfZGVsZXRlKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfdGltZXJfc2V0dGltZSgpOwotZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2dldHRpbWUoKTsKLWV4dGVybiBpbnQgc29sYXJpc190aW1lcl9nZXRvdmVycnVuKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfbmFub3NsZWVwKCk7Ci0KLS8qIHNvbGFyaXNfcGdycHN5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfZ2V0cGdycCgpLCBzb2xhcmlzX3NldHBncnAoKSwgc29sYXJpc19nZXRzaWQoKTsKLWV4dGVybiBpbnQgc29sYXJpc19zZXRzaWQoKSwgc29sYXJpc19nZXRwZ2lkKCksIHNvbGFyaXNfc2V0cGdpZCgpOwotCi0jZGVmaW5lIFNPTEFSSVNfcGdycHN5c19zdWJjYWxsCTMwMAotI2RlZmluZSBTT0xBUklTX2dldHBncnAJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2V0cGdycAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19nZXRzaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNPTEFSSVNfc2V0c2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAzKQotI2RlZmluZSBTT0xBUklTX2dldHBnaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNPTEFSSVNfc2V0cGdpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgNSkKLQotI2RlZmluZSBTT0xBUklTX3BncnBzeXNfbnN1YmNhbGxzCTYKLQotLyogc29sYXJpc19zaWdjYWxsIHN1YmNhbGxzICovCi0KLSN1bmRlZiBTT0xBUklTX3NpZ25hbAotI2RlZmluZSBTT0xBUklTX3NpZ2NhbGwJCTQ4Ci0KLWV4dGVybiBpbnQgc29sYXJpc19zaWduYWwoKSwgc29sYXJpc19zaWdzZXQoKSwgc29sYXJpc19zaWdob2xkKCk7Ci1leHRlcm4gaW50IHNvbGFyaXNfc2lncmVsc2UoKSwgc29sYXJpc19zaWdpZ25vcmUoKSwgc29sYXJpc19zaWdwYXVzZSgpOwotCi0jZGVmaW5lIFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsCTMxMAotI2RlZmluZSBTT0xBUklTX3NpZ25hbAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zaWdzZXQJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc2lnaG9sZAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19zaWdyZWxzZQkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMykKLSNkZWZpbmUgU09MQVJJU19zaWdpZ25vcmUJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDQpCi0jZGVmaW5lIFNPTEFSSVNfc2lncGF1c2UJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDUpCi0KLSNkZWZpbmUgU09MQVJJU19zaWdjYWxsX25zdWJjYWxscwk2Ci0KLS8qIG1zZ3N5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfbXNnZ2V0KCksIHNvbGFyaXNfbXNnY3RsKCksIHNvbGFyaXNfbXNncmN2KCksIHNvbGFyaXNfbXNnc25kKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19tc2dzeXNfc3ViY2FsbAkzMjAKLSNkZWZpbmUgU09MQVJJU19tc2dnZXQJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19tc2djdGwJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19tc2dyY3YJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19tc2dzbmQJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX21zZ3N5c19uc3ViY2FsbHMJNAotCi0vKiBzaG1zeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX3NobWF0KCksIHNvbGFyaXNfc2htY3RsKCksIHNvbGFyaXNfc2htZHQoKSwgc29sYXJpc19zaG1nZXQoKTsKLQotI2RlZmluZSBTT0xBUklTX3NobXN5c19zdWJjYWxsCTMzMAotI2RlZmluZSBTT0xBUklTX3NobWF0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDApCi0jZGVmaW5lIFNPTEFSSVNfc2htY3RsCQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNPTEFSSVNfc2htZHQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19zaG1nZXQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX3NobXN5c19uc3ViY2FsbHMJNAotCi0vKiBzZW1zeXMgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX3NlbWN0bCgpLCBzb2xhcmlzX3NlbWdldCgpLCBzb2xhcmlzX3NlbW9wKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zZW1zeXNfc3ViY2FsbAkzNDAKLSNkZWZpbmUgU09MQVJJU19zZW1jdGwJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zZW1nZXQJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zZW1vcAkJKFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwgKyAyKQotCi0jZGVmaW5lIFNPTEFSSVNfc2Vtc3lzX25zdWJjYWxscwkzCi0KLS8qIHV0c3N5cyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfb2xkdW5hbWUoKSwgc29sYXJpc191c3RhdCgpLCBzb2xhcmlzX2Z1c2VycygpOwotCi0jZGVmaW5lIFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwJMzUwCi0KLSNkZWZpbmUgU09MQVJJU19vbGR1bmFtZQkJKFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwgKyAwKQotCQkJCS8qIDEgaXMgdW51c2VkICovCi0jZGVmaW5lIFNPTEFSSVNfdXN0YXQJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMikKLSNkZWZpbmUgU09MQVJJU19mdXNlcnMJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMykKLQotI2RlZmluZSBTT0xBUklTX3V0c3N5c19uc3ViY2FsbHMJNAotCi0vKiBzeXNmcyBzdWJjYWxscyAqLwotCi1leHRlcm4gaW50IHNvbGFyaXNfc3lzZnMxKCksIHNvbGFyaXNfc3lzZnMyKCksIHNvbGFyaXNfc3lzZnMzKCk7Ci0KLSNkZWZpbmUgU09MQVJJU19zeXNmc19zdWJjYWxsCTM2MAotCQkJCS8qIDAgaXMgdW51c2VkICovCi0jZGVmaW5lIFNPTEFSSVNfc3lzZnMxCQkoU09MQVJJU19zeXNmc19zdWJjYWxsICsgMSkKLSNkZWZpbmUgU09MQVJJU19zeXNmczIJCShTT0xBUklTX3N5c2ZzX3N1YmNhbGwgKyAyKQotI2RlZmluZSBTT0xBUklTX3N5c2ZzMwkJKFNPTEFSSVNfc3lzZnNfc3ViY2FsbCArIDMpCi0KLSNkZWZpbmUgU09MQVJJU19zeXNmc19uc3ViY2FsbHMJNAotCi0vKiBzb2xhcmlzX3NwY2FsbCBzdWJjYWxscyAqLwotCi0jdW5kZWYgU09MQVJJU19zaWdwZW5kaW5nCi0jZGVmaW5lIFNPTEFSSVNfc3BjYWxsCQk5OQotCi1leHRlcm4gaW50IHNvbGFyaXNfc2lncGVuZGluZygpLCBzb2xhcmlzX3NpZ2ZpbGxzZXQoKTsKLQotI2RlZmluZSBTT0xBUklTX3NwY2FsbF9zdWJjYWxsCTM3MAotCQkJCS8qIDAgaXMgdW51c2VkICovCi0jZGVmaW5lIFNPTEFSSVNfc2lncGVuZGluZwkJKFNPTEFSSVNfc3BjYWxsX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTT0xBUklTX3NpZ2ZpbGxzZXQJCShTT0xBUklTX3NwY2FsbF9zdWJjYWxsICsgMikKLQotI2RlZmluZSBTT0xBUklTX3NwY2FsbF9uc3ViY2FsbHMJMwotCi0vKiBzb2xhcmlzX2NvbnRleHQgc3ViY2FsbHMgKi8KLQotZXh0ZXJuIGludCBzb2xhcmlzX2dldGNvbnRleHQoKSwgc29sYXJpc19zZXRjb250ZXh0KCk7Ci0KLSNkZWZpbmUgU09MQVJJU19jb250ZXh0X3N1YmNhbGwJMzgwCi0jZGVmaW5lIFNPTEFSSVNfZ2V0Y29udGV4dAkJKFNPTEFSSVNfY29udGV4dF9zdWJjYWxsICsgMCkKLSNkZWZpbmUgU09MQVJJU19zZXRjb250ZXh0CQkoU09MQVJJU19jb250ZXh0X3N1YmNhbGwgKyAxKQotCi0jZGVmaW5lIFNPTEFSSVNfY29udGV4dF9uc3ViY2FsbHMJMgotCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4NzI5NDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUzICswLDAgQEAKLQl7IDEsCTAsCXN5c19zZXR1cCwJInNldHVwIiB9LAkJLyogMCAqLwotCXsgMSwJVFAsCXN5c19leGl0LAkiZXhpdCIgfSwJCS8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJImZvcmsiIH0sCQkvKiAyICovCi0JeyAzLAkwLAlzeXNfcmVhZCwJInJlYWQiIH0sCQkvKiAzICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCSJ3cml0ZSIgfSwJCS8qIDQgKi8KLQl7IDMsCVRGLAlzeXNfb3BlbiwJIm9wZW4iIH0sCQkvKiA1ICovCi0JeyAxLAkwLAlzeXNfY2xvc2UsCSJjbG9zZSIgfSwJCS8qIDYgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCSJ3YWl0NCIgfSwJCS8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCSJjcmVhdCIgfSwJCS8qIDggKi8KLQl7IDIsCVRGLAlzeXNfbGluaywJImxpbmsiIH0sCQkvKiA5ICovCi0JeyAxLAlURiwJc3lzX3VubGluaywJInVubGluayIgfSwJCS8qIDEwICovCi0JeyAyLCAgICBURnxUUCwJc3lzX2V4ZWN2LAkiZXhlY3YiIH0sCQkvKiAxMSAqLwotCXsgMSwJVEYsCXN5c19jaGRpciwJImNoZGlyIiB9LAkJLyogMTIgKi8KLSAgICAgICAgeyAzLCAgICBURiwgICAgIHN5c19jaG93biwgICAgICAiY2hvd24ifSwJCS8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkibWtub2QiIH0sCQkvKiAxNCAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJImNobW9kIiB9LAkJLyogMTUgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCSJsY2hvd24iIH0sCQkvKiAxNiAqLwotCXsgMSwJMCwJc3lzX2JyaywJImJyayIgfSwJCS8qIDE3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCSJwZXJmY3RyIiB9LAkJLyogMTggKi8KLQl7IDMsCTAsCXN5c19sc2VlaywJImxzZWVrIiB9LAkJLyogMTkgKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCSJnZXRwaWQiIH0sCQkvKiAyMCAqLwotCXsgMiwJMCwJc3lzX2NhcGdldCwJImNhcGdldCIgfSwJCS8qIDIxICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkiY2Fwc2V0IiB9LAkJLyogMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCSJzZXR1aWQiIH0sCQkvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZCIgfSwJCS8qIDI0ICovCi0JeyAxLAkwLAlzeXNfdGltZSwJInRpbWUiIH0sCQkvKiAyNSAqLwotCXsgNSwJMCwJc3lzX3B0cmFjZSwJInB0cmFjZSIgfSwJCS8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCSJhbGFybSIgfSwJCS8qIDI3ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLCJzaWdhbHRzdGFjayIgfSwJLyogMjggKi8KLQl7IDAsCVRTLAlzeXNfcGF1c2UsCSJwYXVzZSIgfSwJCS8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkidXRpbWUiIH0sCQkvKiAzMCAqLwotCXsgMywJVEYsCXN5c19jaG93biwJImxjaG93bjMyIiB9LAkJLyogMzEgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24zMiIgfSwJCS8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJImFjY2VzcyIgfSwJCS8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJIm5pY2UiIH0sCQkvKiAzNCAqLwotCXsgMywJVEYsCXN5c19jaG93biwJImNob3duMzIiIH0sCQkvKiAzNSAqLwotCXsgMCwJMCwJc3lzX3N5bmMsCSJzeW5jIiB9LAkJLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJImtpbGwiIH0sCQkvKiAzNyAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDM4ICovCi0JeyA0LAlURiwJc3lzX3NlbmRmaWxlLAkic2VuZGZpbGUiIH0sCQkvKiAzOSAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJImxzdGF0IiB9LAkJLyogNDAgKi8KLQl7IDIsCTAsCXN5c19kdXAsCSJkdXAiIH0sCQkvKiA0MSAqLwotCXsgMCwJMCwJc3lzX3BpcGUsCSJwaXBlIiB9LAkJLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJInRpbWVzIiB9LAkJLyogNDMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCSJnZXR1aWQzMiIgfSwJCS8qIDQ0ICovCi0JeyAyLAlURiwJc3lzX3Vtb3VudDIsCSJ1bW91bnQiIH0sCQkvKiA0NSAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJInNldGdpZCIgfSwJCS8qIDQ2ICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkiZ2V0Z2lkIiB9LAkJLyogNDcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnbmFsLAkic2lnbmFsIiB9LAkJLyogNDggKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkiZ2V0ZXVpZCIgfSwJCS8qIDQ5ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQiIH0sCQkvKiA1MCAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkiYWNjdCIgfSwJCS8qIDUxICovCi0JeyAyLAkwLAlwcmludGFyZ3MsCSJtZW1vcnlfb3JkZXJpbmciIH0sCS8qIDUyICovCi0JeyAwLAkwLAlzeXNfZ2V0Z2lkLAkiZ2V0Z2lkMzIiIH0sCQkvKiA1MyAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkiaW9jdGwiIH0sCQkvKiA1NCAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJInJlYm9vdCIgfSwJCS8qIDU1ICovCi0JeyA2LAkwLAlzeXNfbW1hcCwJIm1tYXAyIiB9LAkJLyogNTYgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJInN5bWxpbmsiIH0sCQkvKiA1NyAqLwotCXsgMywJVEYsCXN5c19yZWFkbGluaywJInJlYWRsaW5rIiB9LAkJLyogNTggKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkiZXhlY3ZlIiB9LAkJLyogNTkgKi8KLQl7IDEsCTAsCXN5c191bWFzaywJInVtYXNrIiB9LAkJLyogNjAgKi8KLQl7IDEsCVRGLAlzeXNfY2hyb290LAkiY2hyb290IiB9LAkJLyogNjEgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJImZzdGF0IiB9LAkJLyogNjIgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJImZzdGF0NjQiIH0sCQkvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBhZ2VzaXplLCJnZXRwYWdlc2l6ZSIgfSwJLyogNjQgKi8KLQl7IDMsCTAsCXN5c19tc3luYywJIm1zeW5jIiB9LAkJLyogNjUgKi8KLQl7IDAsCVRQLAlzeXNfdmZvcmssCSJ2Zm9yayIgfSwJCS8qIDY2ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkicHJlYWQiIH0sCQkvKiA2NyAqLwotCXsgNSwJVEYsCXN5c19wd3JpdGUsCSJwd3JpdGUiIH0sCQkvKiA2OCAqLwotCXsgMCwgICAgMCwJc3lzX2dldGV1aWQsCSJnZXRldWlkMzIiIH0sCQkvKiA2OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCSJnZXRlZ2lkMzIiIH0sCQkvKiA3MCAqLwotCXsgNiwJMCwJc3lzX21tYXAsCSJtbWFwIiB9LAkJLyogNzEgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJInNldHJldWlkMzIiIH0sCQkvKiA3MiAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJIm11bm1hcCIgfSwJCS8qIDczICovCi0JeyAzLAkwLAlzeXNfbXByb3RlY3QsCSJtcHJvdGVjdCIgfSwJCS8qIDc0ICovCi0JeyAzLAkwLAlzeXNfbWFkdmlzZSwJIm1hZHZpc2UiIH0sCQkvKiA3NSAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCSJ2aGFuZ3VwIiB9LAkJLyogNzYgKi8KLQl7IDMsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJInRydW5jYXRlNjQiIH0sCQkvKiA3NyAqLwotCXsgMywJMCwJc3lzX21pbmNvcmUsCSJtaW5jb3JlIiB9LAkJLyogNzggKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCSJnZXRncm91cHMiIH0sCQkvKiA3OSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJInNldGdyb3VwcyIgfSwJCS8qIDgwICovCi0JeyAwLAkwLAlzeXNfZ2V0cGdycCwJImdldHBncnAiIH0sCQkvKiA4MSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJInNldGdyb3VwczMyIiB9LAkvKiA4MiAqLwotCXsgMywJMCwJc3lzX3NldGl0aW1lciwJInNldGl0aW1lciIgfSwJCS8qIDgzICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkiZnRydW5jYXRlNjQiIH0sCS8qIDg0ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJInN3YXBvbiIgfSwJCS8qIDg1ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkiZ2V0aXRpbWVyIiB9LAkJLyogODYgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCSJzZXR1aWQzMiIgfSwJCS8qIDg3ICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsInNldGhvc3RuYW1lIiB9LAkvKiA4OCAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJInNldGdpZDMyIiB9LAkJLyogODkgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkiZHVwMiIgfSwJCS8qIDkwICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCSJzZXRmc3VpZDMyIiB9LAkJLyogOTEgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJImZjbnRsIiB9LAkJLyogOTIgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCSJzZWxlY3QiIH0sCQkvKiA5MyAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkic2V0ZnNnaWQzMiIgfSwJCS8qIDk0ICovCi0JeyAxLAkwLAlzeXNfZnN5bmMsCSJmc3luYyIgfSwJCS8qIDk1ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksInNldHByaW9yaXR5IiB9LAkvKiA5NiAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCSJzb2NrZXQiIH0sCQkvKiA5NyAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkiY29ubmVjdCIgfSwJCS8qIDk4ICovCi0JeyAzLAlUTiwJc3lzX2FjY2VwdCwJImFjY2VwdCIgfSwJCS8qIDk5ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksImdldHByaW9yaXR5IiB9LAkvKiAxMDAgKi8KLQl7IDEsCVRTLAlwcmludGFyZ3MsCSJydF9zaWdyZXR1cm4iIH0sCS8qIDEwMSAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sInJ0X3NpZ2FjdGlvbiIgfSwJLyogMTAyICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLCJydF9zaWdwcm9jbWFzayIgfSwJLyogMTAzICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsInJ0X3NpZ3BlbmRpbmciIH0sCS8qIDEwNCAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsInJ0X3NpZ3RpbWVkd2FpdCIgfSwvKiAxMDUgKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCJydF9zaWdxdWV1ZWluZm8iIH0sLyogMTA2ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsInJ0X3NpZ3N1c3BlbmQiIH0sCS8qIDEwNyAqLwotCXsgMywJVFMsCXN5c19zZXRyZXN1aWQsCSJzZXRyZXN1aWQiIH0sCQkvKiAxMDggKi8KLQl7IDMsICAgIFRTLAlzeXNfZ2V0cmVzdWlkLAkiZ2V0cmVzdWlkIiB9LAkJLyogMTA5ICovCi0JeyAzLAlUUywJc3lzX3NldHJlc2dpZCwJInNldHJlc2dpZCIgfSwJCS8qIDExMCAqLwotCXsgMywJVFMsCXN5c19nZXRyZXNnaWQsCSJnZXRyZXNnaWQiIH0sCQkvKiAxMTEgKi8KLQl7IDIsCVRTLAlzeXNfc2V0cmVzZ2lkLAkic2V0cmVzZ2lkMzIiIH0sCS8qIDExMiAqLwotCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkicmVjdm1zZyIgfSwJCS8qIDExMyAqLwotCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkic2VuZG1zZyIgfSwJCS8qIDExNCAqLwotCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJImdldGdyb3VwczMyIiB9LAkvKiAxMTUgKi8KLQl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksImdldHRpbWVvZmRheSIgfSwJLyogMTE2ICovCi0JeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkiZ2V0cnVzYWdlIiB9LAkJLyogMTE3ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCSJnZXRzb2Nrb3B0IiB9LAkJLyogMTE4ICovCi0JeyAyLAlURiwJc3lzX2dldGN3ZCwJImdldGN3ZCIgfSwJCS8qIDExOSAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkicmVhZHYiIH0sCQkvKiAxMjAgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCSJ3cml0ZXYiIH0sCQkvKiAxMjEgKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksInNldHRpbWVvZmRheSIgfSwJLyogMTIyICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkiZmNob3duIiB9LAkJLyogMTIzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkiZmNobW9kIiB9LAkJLyogMTI0ICovCi0JeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkicmVjdmZyb20iIH0sCQkvKiAxMjUgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJInNldHJldWlkIiB9LAkJLyogMTI2ICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCSJzZXRyZWdpZCIgfSwJCS8qIDEyNyAqLwotCXsgMiwJVEYsCXN5c19yZW5hbWUsCSJyZW5hbWUiIH0sCQkvKiAxMjggKi8KLQl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCSJ0cnVuY2F0ZSIgfSwJCS8qIDEyOSAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJImZ0cnVuY2F0ZSIgfSwJCS8qIDEzMCAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkiZmxvY2siIH0sCQkvKiAxMzEgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJImxzdGF0NjQiIH0sCQkvKiAxMzIgKi8KLQl7IDYsCVROLAlzeXNfc2VuZHRvLAkic2VuZHRvIiB9LAkJLyogMTMzICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkic2h1dGRvd24iIH0sCQkvKiAxMzQgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJInNvY2tldHBhaXIiIH0sCQkvKiAxMzUgKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCSJta2RpciIgfSwJCS8qIDEzNiAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJInJtZGlyIiB9LAkJLyogMTM3ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lcywJInV0aW1lcyIgfSwJCS8qIDEzOCAqLwotCXsgMiwJVEYsCXN5c19zdGF0NjQsCSJzdGF0NjQiIH0sCQkvKiAxMzkgKi8KLQl7IDQsICAgIFRGLAlzeXNfc2VuZGZpbGU2NCwJInNlbmRmaWxlNjQiIH0sCQkvKiAxNDAgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsImdldHBlZXJuYW1lIiB9LAkvKiAxNDEgKi8KLQl7IDUsICAgIDAsCXN5c19mdXRleCwJImZ1dGV4IiB9LAkJLyogMTQyICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCSJnZXR0aWQiIH0sCQkvKiAxNDMgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCSJnZXRybGltaXQiIH0sCQkvKiAxNDQgKi8KLQl7IDIsCTAsCXN5c19zZXRybGltaXQsCSJzZXRybGltaXQiIH0sCQkvKiAxNDUgKi8KLQl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkicGl2b3Rfcm9vdCIgfSwJCS8qIDE0NiAqLwotCXsgNSwJMCwJc3lzX3ByY3RsLAkicHJjdGwiIH0sCQkvKiAxNDcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJInBjaWNvbmZpZ19yZWFkIiB9LAkvKiAxNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJInBjaWNvbmZpZ193cml0ZSIgfSwJLyogMTQ5ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLCJnZXRzb2NrbmFtZSIgfSwJLyogMTUwICovCi0JeyA0LAlUTiwJc3lzX2dldG1zZywJImdldG1zZyIgfSwJCS8qIDE1MSAqLwotCXsgNCwJVE4sCXN5c19wdXRtc2csCSJwdXRtc2ciIH0sCQkvKiAxNTIgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkicG9sbCIgfSwJCS8qIDE1MyAqLwotCXsgNCwJMCwJc3lzX2dldGRlbnRzNjQsCSJnZXRkZW50czY0IiB9LAkJLyogMTU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCSJmY250bDY0IiB9LAkJLyogMTU1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCSJnZXRkaXJlbnRyaWVzIiB9LAkvKiAxNTYgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdGZzLAkic3RhdGZzIiB9LAkJLyogMTU3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJImZzdGF0ZnMiIH0sCQkvKiAxNTggKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkib2xkdW1vdW50IiB9LAkJLyogMTU5ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAxNjAgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDE2MSAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkiZ2V0ZG9tYWlubmFtZSIgfSwJLyogMTYyICovCi0JeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwic2V0ZG9tYWlubmFtZSIgfSwJLyogMTYzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJ1dHJhcF9pbnN0YWxsIiB9LAkvKiAxNjQgKi8KLQl7IDQsCTAsCXN5c19xdW90YWN0bCwJInF1b3RhY3RsIiB9LAkJLyogMTY1ICovCi0JeyAxLAkwLAlwcmludGFyZ3MsCSJzZXRfdGlkX2FkZHJlc3MiIH0sCS8qIDE2NiAqLwotCXsgNSwJVEYsCXN5c19tb3VudCwJIm1vdW50IiB9LAkJLyogMTY3ICovCi0JeyAyLAkwLAlzeXNfdXN0YXQsCSJ1c3RhdCIgfSwJCS8qIDE2OCAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJInNldHhhdHRyIiB9LAkJLyogMTY5ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkibHNldHhhdHRyIiB9LAkJLyogMTcwICovCi0JeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkiZnNldHhhdHRyIiB9LAkJLyogMTcxICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkiZ2V0eGF0dHIiIH0sCQkvKiAxNzIgKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCSJsZ2V0eGF0dHIiIH0sCQkvKiAxNzMgKi8KLQl7IDMsCTAsCXN5c19nZXRkZW50cywJImdldGRlbnRzIiB9LAkJLyogMTc0ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkic2V0c2lkIiB9LAkJLyogMTc1ICovCi0JeyAxLAkwLAlzeXNfZmNoZGlyLAkiZmNoZGlyIiB9LAkJLyogMTc2ICovCi0JeyA0LCAgICAwLAlzeXNfZmdldHhhdHRyLAkiZmdldHhhdHRyIiB9LAkJLyogMTc3ICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJImxpc3R4YXR0ciIgfSwJCS8qIDE3OCAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCSJsbGlzdHhhdHRyIiB9LAkJLyogMTc5ICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJImZsaXN0eGF0dHIiIH0sCQkvKiAxODAgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsInJlbW92ZXhhdHRyIiB9LAkvKiAxODEgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsImxyZW1vdmV4YXR0ciIgfSwJLyogMTgyICovCi0JeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCSJzaWdwZW5kaW5nIiB9LAkJLyogMTgzICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLCJxdWVyeV9tb2R1bGUiIH0sCS8qIDE4NCAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCSJzZXRwZ2lkIiB9LAkJLyogMTg1ICovCi0JeyAyLAkwLAlzeXNfZnJlbW92ZXhhdHRyLCJmcmVtb3ZleGF0dHIiIH0sCS8qIDE4NiAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkidGtpbGwiIH0sCQkvKiAxODcgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJImV4aXRfZ3JvdXAiIH0sCQkvKiAxODggKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJInVuYW1lIiB9LAkJLyogMTg5ICovCi0JeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsImluaXRfbW9kdWxlIiB9LAkvKiAxOTAgKi8KLQl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwicGVyc29uYWxpdHkiIH0sCS8qIDE5MSAqLwotCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsInJlbWFwX2ZpbGVfcGFnZXMiIH0sLyogMTkyICovCi0JeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLCJlcG9sbF9jcmVhdGUiIH0sCS8qIDE5MyAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJImVwb2xsX2N0bCIgfSwJCS8qIDE5NCAqLwotCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCSJlcG9sbF93YWl0IiB9LAkJLyogMTk1ICovCi0JeyAyLAkwLAlzeXNfdWxpbWl0LAkidWxpbWl0IiB9LAkJLyogMTk2ICovCi0JeyAwLAkwLAlzeXNfZ2V0cHBpZCwJImdldHBwaWQiIH0sCQkvKiAxOTcgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkic2lnYWN0aW9uIiB9LAkJLyogMTk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJzZ2V0bWFzayIgfSwJCS8qIDE5OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkic3NldG1hc2siIH0sCQkvKiAyMDAgKi8KLQl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJInNpZ3N1c3BlbmQiIH0sCQkvKiAyMDEgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCSJsc3RhdCIgfSwJCS8qIDIwMiAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCSJ1c2VsaWIiIH0sCQkvKiAyMDMgKi8KLQl7IDMsCTAsCXN5c19yZWFkZGlyLAkicmVhZGRpciIgfSwJCS8qIDIwNCAqLwotCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJInJlYWRhaGVhZCIgfSwJCS8qIDIwNSAqLwotCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCSJzb2NrZXRjYWxsIiB9LAkJLyogMjA2ICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkic3lzbG9nIiB9LAkJLyogMjA3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCSJsb29rdXBfZGNvb2tpZSIgfSwJLyogMjA4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCSJmYWR2aXNlNjQiIH0sCQkvKiAyMDkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJImZhZHZpc2U2NF82NCIgfSwJLyogMjEwICovCi0JeyAzLAlUUywJc3lzX3Rna2lsbCwJInRna2lsbCIgfSwJCS8qIDIxMSAqLwotCXsgMywJVFAsCXN5c193YWl0cGlkLAkid2FpdHBpZCIgfSwJCS8qIDIxMiAqLwotCXsgMSwJMCwJc3lzX3N3YXBvZmYsCSJzd2Fwb2ZmIiB9LAkJLyogMjEzICovCi0JeyAxLAkwLAlzeXNfc3lzaW5mbywJInN5c2luZm8iIH0sCQkvKiAyMTQgKi8KLQl7IDUsCTAsCXN5c19pcGMsCSJpcGMiIH0sCQkvKiAyMTUgKi8KLQl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkic2lncmV0dXJuIiB9LAkJLyogMjE2ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkiY2xvbmUiIH0sCQkvKiAyMTcgKi8KLQl7IDMsCTAsCXN5c19tb2RpZnlfbGR0LAkibW9kaWZ5X2xkdCIgfSwJCS8qIDIxOCAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkiYWRqdGltZXgiIH0sCQkvKiAyMTkgKi8KLQl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssInNpZ3Byb2NtYXNrIiB9LAkvKiAyMjAgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLCJjcmVhdGVfbW9kdWxlIiB9LAkvKiAyMjEgKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLCJkZWxldGVfbW9kdWxlIiB9LAotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywiZ2V0X2tlcm5lbF9zeW1zIn0sCS8qIDIyMyAqLwotCXsgMSwJMCwJc3lzX2dldHBnaWQsCSJnZXRwZ2lkIiB9LAkJLyogMjI0ICovCi0JeyAwLAkwLAlzeXNfYmRmbHVzaCwJImJkZmx1c2giIH0sCQkvKiAyMjUgKi8KLQl7IDMsCTAsCXN5c19zeXNmcywJInN5c2ZzIiB9LAkJLyogMjI2ICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsImFmc19zeXNjYWxsIiB9LAkvKiAyMjcgKi8KLQl7IDEsCTAsCXN5c19zZXRmc3VpZCwJInNldGZzdWlkIiB9LAkJLyogMjI4ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCSJzZXRmc2dpZCIgfSwJCS8qIDIyOSAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJInNlbGVjdCIgfSwJCS8qIDIzMCAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCSJ0aW1lIiB9LAkJLyogMjMxICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCSJzdGF0IiB9LAkJLyogMjMyICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCSJzdGltZSIgfSwJCS8qIDIzMyAqLwotCXsgMywJVEYsCXN5c19zdGF0ZnM2NCwJInN0YXRmczY0IiB9LAkJLyogMjM0ICovCi0JeyAzLAkwLAlzeXNfZnN0YXRmczY0LAkiZnN0YXRmczY0IiB9LAkJLyogMjM1ICovCi0JeyA1LAkwLAlzeXNfbGxzZWVrLAkiX2xsc2VlayIgfSwJCS8qIDIzNiAqLwotCXsgMiwJMCwJc3lzX21sb2NrLAkibWxvY2siIH0sCQkvKiAyMzcgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkibXVubG9jayIgfSwJCS8qIDIzOCAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkibWxvY2thbGwiIH0sCQkvKiAyMzkgKi8KLQl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkibXVubG9ja2FsbCIgfSwJCS8qIDI0MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLCJzY2hlZF9zZXRwYXJhbSJ9LAkvKiAyNDEgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwic2NoZWRfZ2V0cGFyYW0ifSwJLyogMjQyICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLCJzY2hlZF9zZXRzY2hlZHVsZXIifSwvKiAyNDMgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsInNjaGVkX2dldHNjaGVkdWxlciJ9LC8qIDI0NCAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLCJzY2hlZF95aWVsZCIgfSwJLyogMjQ1ICovCi0JeyAxLDAsc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwvKiAyNDYgKi8KLQl7IDEsMCxzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LC8qIDI0NyAqLwotCXsgMiwJMCxzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwvKiAyNDggKi8KLQl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCSJuYW5vc2xlZXAiIH0sCQkvKiAyNDkgKi8KLQl7IDQsCTAsCXN5c19tcmVtYXAsCSJtcmVtYXAiIH0sCQkvKiAyNTAgKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCSJfc3lzY3RsIiB9LAkJLyogMjUxICovCi0JeyAxLAkwLAlzeXNfZ2V0c2lkLAkiZ2V0c2lkIiB9LAkJLyogMjUyICovCi0JeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkiZmRhdGFzeW5jIiB9LAkJLyogMjUzICovCi0JeyAzLAkwLAlwcmludGFyZ3MsCSJuZnNzZXJ2Y3RsIiB9LAkJLyogMjU0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJhcGxpYiIgfSwJCS8qIDI1NSAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsImNsb2NrX3NldHRpbWUiIH0sCS8qIDI1NiAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsImNsb2NrX2dldHRpbWUiIH0sCS8qIDI1NyAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywiY2xvY2tfZ2V0cmVzIiB9LAkvKiAyNTggKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsImNsb2NrX25hbm9zbGVlcCIgfSwvKiAyNTkgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjYwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDI2MSAqLwotCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsInRpbWVyX3NldHRpbWUiIH0sCS8qIDI2MiAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsInRpbWVyX2dldHRpbWUiIH0sCS8qIDI2MyAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sInRpbWVyX2dldG92ZXJydW4iIH0sLyogMjY0ICovCi0JeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLCJ0aW1lcl9kZWxldGUiIH0sCS8qIDI2NSAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwidGltZXJfY3JlYXRlIiB9LAkvKiAyNjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNjciIH0sCQkvKiAyNjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNjgiIH0sCQkvKiAyNjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNjkiIH0sCQkvKiAyNjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzAiIH0sCQkvKiAyNzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzEiIH0sCQkvKiAyNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzIiIH0sCQkvKiAyNzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzMiIH0sCQkvKiAyNzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzQiIH0sCQkvKiAyNzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzUiIH0sCQkvKiAyNzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzYiIH0sCQkvKiAyNzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzciIH0sCQkvKiAyNzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzgiIH0sCQkvKiAyNzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yNzkiIH0sCQkvKiAyNzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODAiIH0sCQkvKiAyODAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODEiIH0sCQkvKiAyODEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODIiIH0sCQkvKiAyODIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODMiIH0sCQkvKiAyODMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODQiIH0sCQkvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODUiIH0sCQkvKiAyODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODYiIH0sCQkvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODciIH0sCQkvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODgiIH0sCQkvKiAyODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yODkiIH0sCQkvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTAiIH0sCQkvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTEiIH0sCQkvKiAyOTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTIiIH0sCQkvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTMiIH0sCQkvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTQiIH0sCQkvKiAyOTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTUiIH0sCQkvKiAyOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTYiIH0sCQkvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTciIH0sCQkvKiAyOTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTgiIH0sCQkvKiAyOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18yOTkiIH0sCQkvKiAyOTkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDAiIH0sCQkvKiAzMDAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDEiIH0sCQkvKiAzMDEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDIiIH0sCQkvKiAzMDIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDMiIH0sCQkvKiAzMDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDQiIH0sCQkvKiAzMDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDUiIH0sCQkvKiAzMDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDYiIH0sCQkvKiAzMDYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDciIH0sCQkvKiAzMDcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDgiIH0sCQkvKiAzMDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDkiIH0sCQkvKiAzMDkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTAiIH0sCQkvKiAzMTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTEiIH0sCQkvKiAzMTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTIiIH0sCQkvKiAzMTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTMiIH0sCQkvKiAzMTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTQiIH0sCQkvKiAzMTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTUiIH0sCQkvKiAzMTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTYiIH0sCQkvKiAzMTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTciIH0sCQkvKiAzMTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTgiIH0sCQkvKiAzMTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTkiIH0sCQkvKiAzMTkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjAiIH0sCQkvKiAzMjAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjEiIH0sCQkvKiAzMjEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjIiIH0sCQkvKiAzMjIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjMiIH0sCQkvKiAzMjMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjQiIH0sCQkvKiAzMjQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjUiIH0sCQkvKiAzMjUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjYiIH0sCQkvKiAzMjYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjciIH0sCQkvKiAzMjcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjgiIH0sCQkvKiAzMjggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjkiIH0sCQkvKiAzMjkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzAiIH0sCQkvKiAzMzAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzEiIH0sCQkvKiAzMzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzIiIH0sCQkvKiAzMzIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzMiIH0sCQkvKiAzMzMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzQiIH0sCQkvKiAzMzQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzUiIH0sCQkvKiAzMzUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzYiIH0sCQkvKiAzMzYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzciIH0sCQkvKiAzMzcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzgiIH0sCQkvKiAzMzggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzkiIH0sCQkvKiAzMzkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDAiIH0sCQkvKiAzNDAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDEiIH0sCQkvKiAzNDEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDIiIH0sCQkvKiAzNDIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDMiIH0sCQkvKiAzNDMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDQiIH0sCQkvKiAzNDQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDUiIH0sCQkvKiAzNDUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDYiIH0sCQkvKiAzNDYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDciIH0sCQkvKiAzNDcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDgiIH0sCQkvKiAzNDggKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDkiIH0sCQkvKiAzNDkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTAiIH0sCQkvKiAzNTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTEiIH0sCQkvKiAzNTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTIiIH0sCQkvKiAzNTIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzRkODEzLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQxLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudDEuaCx2IDEuMSAyMDA0LzA3LzEyIDA3OjQ0OjA4IHJvbGFuZCBFeHAgJAotICovCi0KLQl7IDYsCTAsCXNvbGFyaXNfc3lzY2FsbCwJInN5c2NhbGwiCX0sIC8qIDAgKi8KLQl7IDYsCVRQLAlzb2xhcmlzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCi0JeyA2LAlUUCwJc29sYXJpc19mb3JrLAkJImZvcmsiCQl9LCAvKiAyICovCi0JeyA2LAkwLAlzb2xhcmlzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCi0JeyA2LAlURiwJc29sYXJpc19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLwotCXsgNiwJVFAsCXNvbGFyaXNfd2FpdCwJCSJ3YWl0IgkJfSwgLyogNyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCi0JeyA2LAlURiwJc29sYXJpc19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCi0JeyA2LAlURiwJc29sYXJpc191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLwotCXsgNiwJVEZ8VFAsCXNvbGFyaXNfZXhlYywJCSJleGVjIgkJfSwgLyogMTEgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYnJrLAkJImJyayIJCX0sIC8qIDE3ICovCi0JeyA2LAlURiwJc29sYXJpc19zdGF0LAkJInN0YXQiCQl9LCAvKiAxOCAqLwotCXsgNiwJMCwJc29sYXJpc19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDE5ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCi0JeyA2LAlURiwJc29sYXJpc19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCi0JeyA2LAlURiwJc29sYXJpc191bW91bnQsCQkidW1vdW50Igl9LCAvKiAyMiAqLwotCXsgNiwJMCwJc29sYXJpc19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLwotCXsgNiwJMCwJc29sYXJpc19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLwotCXsgNiwJMCwJc29sYXJpc19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDI1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAyOCAqLwotCXsgNiwJVFMsCXNvbGFyaXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLwotCXsgNiwJMCwJc29sYXJpc19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLwotCXsgNiwJMCwJc29sYXJpc19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLwotCXsgNiwJVEYsCXNvbGFyaXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDM1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCi0JeyA2LAlUUywJc29sYXJpc19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLwotCXsgNiwJMCwJc29sYXJpc19mc3RhdGZzLAkiZnN0YXRmcyIJfSwgLyogMzggKi8KLQl7IDYsCTAsCXNvbGFyaXNfcGdycHN5cywJInBncnBzeXMiCX0sIC8qIDM5ICovCi0JeyA2LAkwLAlzb2xhcmlzX3hlbml4LAkJInhlbml4IgkJfSwgLyogNDAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCi0JeyA2LAkwLAlzb2xhcmlzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogNDQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfcGxvY2ssCQkicGxvY2siCQl9LCAvKiA0NSAqLwotCXsgNiwJMCwJc29sYXJpc19zZXRnaWQsCQkic2V0Z2lkIgl9LCAvKiA0NiAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLwotCXsgNiwJMCwJc29sYXJpc19zaWdjYWxsLAkic2lnY2FsbCIJfSwgLyogNDggKi8KLQl7IDYsCVRJLAlzb2xhcmlzX21zZ3N5cywJCSJtc2dzeXMiCX0sIC8qIDQ5ICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c3N1biwJCSJzeXNzdW4iCX0sIC8qIDUwICovCi0JeyA2LAlURiwJc29sYXJpc19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2htc3lzLAkJInNobXN5cyIJfSwgLyogNTIgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX3NlbXN5cywJCSJzZW1zeXMiCX0sIC8qIDUzICovCi0JeyA2LAkwLAlzb2xhcmlzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdWFkbWluLAkJInVhZG1pbiIJfSwgLyogNTUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzbXAsCQkic3lzbXAiCQl9LCAvKiA1NiAqLwotCXsgNiwJMCwJc29sYXJpc191dHNzeXMsCQkidXRzc3lzIgl9LCAvKiA1NyAqLwotCXsgNiwJMCwJc29sYXJpc19mZHN5bmMsCQkiZmRzeW5jIgl9LCAvKiA1OCAqLwotCXsgNiwJVEZ8VFAsCXNvbGFyaXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogNTkgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA2MiAqLwotCXsgNiwJMCwJc29sYXJpc191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA2MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NCIJfSwgLyogNjQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjUiCX0sIC8qIDY1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2Igl9LCAvKiA2NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NyIJfSwgLyogNjcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjgiCX0sIC8qIDY4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5Igl9LCAvKiA2OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MCIJfSwgLyogNzAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzEiCX0sIC8qIDcxICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyIgl9LCAvKiA3MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MyIJfSwgLyogNzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzQiCX0sIC8qIDc0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1Igl9LCAvKiA3NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NiIJfSwgLyogNzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzciCX0sIC8qIDc3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4Igl9LCAvKiA3OCAqLwotCXsgNiwJVEYsCXNvbGFyaXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA3OSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiA4MCAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRkZW50cywJImdldGRlbnRzIgl9LCAvKiA4MSAqLwotCXsgNiwJMCwJc29sYXJpc19zZ2luYXAsCQkic2dpbmFwIgl9LCAvKiA4MiAqLwotCXsgNiwJMCwJc29sYXJpc19zZ2lrb3B0LAkic2dpa29wdCIJfSwgLyogODMgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiA4NCAqLwotCXsgNiwJVE4sCXN5c19nZXRtc2csCQkiZ2V0bXNnIgl9LCAvKiA4NSAqLwotCXsgNiwJVE4sCXN5c19wdXRtc2csCQkicHV0bXNnIgl9LCAvKiA4NiAqLwotCXsgNiwJVE4sCXNvbGFyaXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogODcgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogODggKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3N5bWxpbmssCSJzeW1saW5rIgl9LCAvKiA4OSAqLwotCXsgNiwJVEYsCXNvbGFyaXNfcmVhZGxpbmssCSJyZWFkbGluayIJfSwgLyogOTAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzIgl9LCAvKiA5MSAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRncm91cHMsCSJnZXRncm91cHMiCX0sIC8qIDkyICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDkzICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk0ICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiA5NSAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnc3VzcGVuZCwJInNpZ3N1c3BlbmQiCX0sIC8qIDk2ICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiA5NyAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnYWN0aW9uLAkic2lnYWN0aW9uIgl9LCAvKiA5OCAqLwotCXsgNiwJMCwJc29sYXJpc19zcGNhbGwsCQkic3BjYWxsIgl9LCAvKiA5OSAqLwotCXsgNiwJMCwJc29sYXJpc19jb250ZXh0LAkiY29udGV4dCIJfSwgLyogMTAwICovCi0JeyA2LAkwLAlzb2xhcmlzX2V2c3lzLAkJImV2c3lzIgkJfSwgLyogMTAxICovCi0JeyA2LAkwLAlzb2xhcmlzX2V2dHJhcHJldCwJImV2dHJhcHJldCIJfSwgLyogMTAyICovCi0JeyA2LAlURiwJc29sYXJpc19zdGF0dmZzLAkic3RhdHZmcyIJfSwgLyogMTAzICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZzdGF0dmZzLAkiZnN0YXR2ZnMiCX0sIC8qIDEwNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDUiCX0sIC8qIDEwNSAqLwotCXsgNiwJMCwJc29sYXJpc19uZnNzeXMsCQkibmZzc3lzIgl9LCAvKiAxMDYgKi8KLQl7IDYsCVRQLAlzb2xhcmlzX3dhaXRpZCwJCSJ3YWl0aWQiCX0sIC8qIDEwNyAqLwotCXsgNiwJMCwJc29sYXJpc19zaWdzZW5kc3lzLAkic2lnc2VuZHN5cyIJfSwgLyogMTA4ICovCi0JeyA2LAkwLAlzb2xhcmlzX2hydHN5cywJCSJocnRzeXMiCX0sIC8qIDEwOSAqLwotCXsgNiwJMCwJc29sYXJpc19hY2FuY2VsLAkiYWNhbmNlbCIJfSwgLyogMTEwICovCi0JeyA2LAkwLAlzb2xhcmlzX2FzeW5jLAkJImFzeW5jIgkJfSwgLyogMTExICovCi0JeyA2LAkwLAlzb2xhcmlzX3ByaW9jbnRsc3lzLAkicHJpb2NudGxzeXMiCX0sIC8qIDExMiAqLwotCXsgNiwJVEYsCXNvbGFyaXNfcGF0aGNvbmYsCSJwYXRoY29uZiIJfSwgLyogMTEzICovCi0JeyA2LAkwLAlzb2xhcmlzX21pbmNvcmUsCSJtaW5jb3JlIgl9LCAvKiAxMTQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbW1hcCwJCSJtbWFwIgkJfSwgLyogMTE1ICovCi0JeyA2LAkwLAlzb2xhcmlzX21wcm90ZWN0LAkibXByb3RlY3QiCX0sIC8qIDExNiAqLwotCXsgNiwJMCwJc29sYXJpc19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiAxMTcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnBhdGhjb25mLAkiZnBhdGhjb25mIgl9LCAvKiAxMTggKi8KLQl7IDYsCVRQLAlzb2xhcmlzX3Zmb3JrLAkJInZmb3JrIgkJfSwgLyogMTE5ICovCi0JeyA2LAkwLAlzb2xhcmlzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEyMCAqLwotCXsgNiwJMCwJc29sYXJpc19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDEyMSAqLwotCXsgNiwJMCwJc29sYXJpc193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxMjIgKi8KLQl7IDYsCVRGLAlzb2xhcmlzX3hzdGF0LAkJInhzdGF0IgkJfSwgLyogMTIzICovCi0JeyA2LAlURiwJc29sYXJpc19seHN0YXQsCQkibHhzdGF0Igl9LCAvKiAxMjQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZnhzdGF0LAkJImZ4c3RhdCIJfSwgLyogMTI1ICovCi0JeyA2LAlURiwJc29sYXJpc194bWtub2QsCQkieG1rbm9kIgl9LCAvKiAxMjYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY2xvY2FsLAkJImNsb2NhbCIJfSwgLyogMTI3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldHJsaW1pdCwJInNldHJsaW1pdCIJfSwgLyogMTI4ICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHJsaW1pdCwJImdldHJsaW1pdCIJfSwgLyogMTI5ICovCi0JeyA2LAlURiwJc29sYXJpc19sY2hvd24sCQkibGNob3duIgl9LCAvKiAxMzAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbWVtY250bCwJIm1lbWNudGwiCX0sIC8qIDEzMSAqLwotCXsgNiwJVE4sCXNvbGFyaXNfZ2V0cG1zZywJImdldHBtc2ciCX0sIC8qIDEzMiAqLwotCXsgNiwJVE4sCXNvbGFyaXNfcHV0cG1zZywJInB1dHBtc2ciCX0sIC8qIDEzMyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMTM0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTM1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGVnaWQsCSJzZXRlZ2lkIgl9LCAvKiAxMzYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzY29uZmlnLAkic3lzY29uZmlnIgl9LCAvKiAxMzcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYWRqdGltZSwJImFkanRpbWUiCX0sIC8qIDEzOCAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNpbmZvLAkic3lzaW5mbyIJfSwgLyogMTM5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MCIJfSwgLyogMTQwICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGV1aWQsCSJzZXRldWlkIgl9LCAvKiAxNDEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdnRyYWNlLAkJInZ0cmFjZSIJfSwgLyogMTQyICovCi0JeyA2LAlUUCwJc29sYXJpc19mb3JrMSwJCSJmb3JrMSIJCX0sIC8qIDE0MyAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lndGltZWR3YWl0LAkic2lndGltZWR3YWl0Igl9LCAvKiAxNDQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2luZm8sCSJsd3BfaW5mbyIJfSwgLyogMTQ1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3lpZWxkLAkJInlpZWxkIgkJfSwgLyogMTQ2ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9zZW1hX3dhaXQsCSJsd3Bfc2VtYV93YWl0Igl9LCAvKiAxNDcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3NlbWFfcG9zdCwJImx3cF9zZW1hX3Bvc3QiCX0sIC8qIDE0OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDkiCX0sIC8qIDE0OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTAiCX0sIC8qIDE1MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTEiCX0sIC8qIDE1MSAqLwotCXsgNiwJMCwJc29sYXJpc19tb2RjdGwsCQkibW9kY3RsIgl9LCAvKiAxNTIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZmNocm9vdCwJImZjaHJvb3QiCX0sIC8qIDE1MyAqLwotCXsgNiwJVEYsCXNvbGFyaXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMTU0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3ZoYW5ndXAsCSJ2aGFuZ3VwIgl9LCAvKiAxNTUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiAxNTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfZ2V0aXRpbWVyLAkiZ2V0aXRpbWVyIgl9LCAvKiAxNTcgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0aXRpbWVyLAkic2V0aXRpbWVyIgl9LCAvKiAxNTggKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2NyZWF0ZSwJImx3cF9jcmVhdGUiCX0sIC8qIDE1OSAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfZXhpdCwJImx3cF9leGl0Igl9LCAvKiAxNjAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3N1c3BlbmQsCSJsd3Bfc3VzcGVuZCIJfSwgLyogMTYxICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jb250aW51ZSwJImx3cF9jb250aW51ZSIJfSwgLyogMTYyICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9raWxsLAkibHdwX2tpbGwiCX0sIC8qIDE2MyAqLwotCXsgNiwJMCwJc29sYXJpc19sd3Bfc2VsZiwJImx3cF9zZWxmIgl9LCAvKiAxNjQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3NldHByaXZhdGUsCSJsd3Bfc2V0cHJpdmF0ZSJ9LCAvKiAxNjUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2dldHByaXZhdGUsCSJsd3BfZ2V0cHJpdmF0ZSJ9LCAvKiAxNjYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX3dhaXQsCSJsd3Bfd2FpdCIJfSwgLyogMTY3ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9tdXRleF91bmxvY2ssImx3cF9tdXRleF91bmxvY2sifSwgLyogMTY4ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9tdXRleF9sb2NrLAkibHdwX211dGV4X2xvY2sifSwgLyogMTY5ICovCi0JeyA2LAkwLAlzb2xhcmlzX2x3cF9jb25kX3dhaXQsCSJsd3BfY29uZF93YWl0In0sIC8qIDE3MCAqLwotCXsgNiwJMCwJc29sYXJpc19sd3BfY29uZF9zaWduYWwsImx3cF9jb25kX3NpZ25hbCJ9LCAvKiAxNzEgKi8KLQl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbmRfYnJvYWRjYXN0LCJsd3BfY29uZF9icm9hZGNhc3QifSwgLyogMTcyICovCi0JeyA2LAkwLAlzb2xhcmlzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTczICovCi0JeyA2LAkwLAlzb2xhcmlzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE3NCAqLwotCXsgNiwJMCwJc29sYXJpc19sbHNlZWssCQkibGxzZWVrIgl9LCAvKiAxNzUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfaW5zdF9zeW5jLAkiaW5zdF9zeW5jIgl9LCAvKiAxNzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTc3Igl9LCAvKiAxNzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTc4Igl9LCAvKiAxNzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTc5Igl9LCAvKiAxNzkgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgwIgl9LCAvKiAxODAgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgxIgl9LCAvKiAxODEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIgl9LCAvKiAxODIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgzIgl9LCAvKiAxODMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTg0Igl9LCAvKiAxODQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTg1Igl9LCAvKiAxODUgKi8KLQl7IDYsCTAsCXNvbGFyaXNfYXVkaXRzeXMsCSJhdWRpdHN5cyIJfSwgLyogMTg2ICovCi0JeyA2LAkwLAlzb2xhcmlzX3Byb2Nlc3Nvcl9iaW5kLAkicHJvY2Vzc29yX2JpbmQifSwgLyogMTg3ICovCi0JeyA2LAkwLAlzb2xhcmlzX3Byb2Nlc3Nvcl9pbmZvLAkicHJvY2Vzc29yX2luZm8ifSwgLyogMTg4ICovCi0JeyA2LAkwLAlzb2xhcmlzX3Bfb25saW5lLAkicF9vbmxpbmUiCX0sIC8qIDE4OSAqLwotCXsgNiwJMCwJc29sYXJpc19zaWdxdWV1ZSwJInNpZ3F1ZXVlIgl9LCAvKiAxOTAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCX0sIC8qIDE5MSAqLwotCXsgNiwJMCwJc29sYXJpc19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogMTkyICovCi0JeyA2LAkwLAlzb2xhcmlzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMTkzICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMTk0ICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMTk1ICovCi0JeyA2LAkwLAlzb2xhcmlzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAxOTYgKi8KLQl7IDYsCTAsCXNvbGFyaXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDE5NyAqLwotCXsgNiwJMCwJc29sYXJpc190aW1lcl9nZXRvdmVycnVuLCJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDE5OCAqLwotCXsgNiwJMCwJc29sYXJpc19uYW5vc2xlZXAsCSJuYW5vc2xlZXAiCX0sIC8qIDE5OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDAiCX0sIC8qIDIwMCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDEiCX0sIC8qIDIwMSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDIiCX0sIC8qIDIwMiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDMiCX0sIC8qIDIwMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDQiCX0sIC8qIDIwNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDUiCX0sIC8qIDIwNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDYiCX0sIC8qIDIwNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDciCX0sIC8qIDIwNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDgiCX0sIC8qIDIwOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDkiCX0sIC8qIDIwOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTAiCX0sIC8qIDIxMCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTEiCX0sIC8qIDIxMSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTIiCX0sIC8qIDIxMiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTMiCX0sIC8qIDIxMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTQiCX0sIC8qIDIxNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTUiCX0sIC8qIDIxNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTYiCX0sIC8qIDIxNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTciCX0sIC8qIDIxNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTgiCX0sIC8qIDIxOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTkiCX0sIC8qIDIxOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjAiCX0sIC8qIDIyMCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjEiCX0sIC8qIDIyMSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiCX0sIC8qIDIyMiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMiCX0sIC8qIDIyMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQiCX0sIC8qIDIyNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUiCX0sIC8qIDIyNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiCX0sIC8qIDIyNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjciCX0sIC8qIDIyNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgiCX0sIC8qIDIyOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiCX0sIC8qIDIyOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzAiCX0sIC8qIDIzMCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzEiCX0sIC8qIDIzMSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIiCX0sIC8qIDIzMiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzMiCX0sIC8qIDIzMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQiCX0sIC8qIDIzNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzUiCX0sIC8qIDIzNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzYiCX0sIC8qIDIzNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzciCX0sIC8qIDIzNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzgiCX0sIC8qIDIzOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzkiCX0sIC8qIDIzOSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDAiCX0sIC8qIDI0MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEiCX0sIC8qIDI0MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDIiCX0sIC8qIDI0MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDMiCX0sIC8qIDI0MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQiCX0sIC8qIDI0NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDUiCX0sIC8qIDI0NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDYiCX0sIC8qIDI0NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDciCX0sIC8qIDI0NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgiCX0sIC8qIDI0OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkiCX0sIC8qIDI0OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAiCX0sIC8qIDI1MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTEiCX0sIC8qIDI1MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIiCX0sIC8qIDI1MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMiCX0sIC8qIDI1MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQiCX0sIC8qIDI1NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUiCX0sIC8qIDI1NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYiCX0sIC8qIDI1NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTciCX0sIC8qIDI1NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgiCX0sIC8qIDI1OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkiCX0sIC8qIDI1OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjAiCX0sIC8qIDI2MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjEiCX0sIC8qIDI2MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIiCX0sIC8qIDI2MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCX0sIC8qIDI2MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQiCX0sIC8qIDI2NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCX0sIC8qIDI2NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCX0sIC8qIDI2NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjciCX0sIC8qIDI2NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCX0sIC8qIDI2OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCX0sIC8qIDI2OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAiCX0sIC8qIDI3MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCX0sIC8qIDI3MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCX0sIC8qIDI3MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMiCX0sIC8qIDI3MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCX0sIC8qIDI3NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCX0sIC8qIDI3NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCX0sIC8qIDI3NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCX0sIC8qIDI3NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCX0sIC8qIDI3OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCX0sIC8qIDI3OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCX0sIC8qIDI4MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCX0sIC8qIDI4MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCX0sIC8qIDI4MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCX0sIC8qIDI4MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCX0sIC8qIDI4NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qIDI4NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCX0sIC8qIDI4NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCX0sIC8qIDI4NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCX0sIC8qIDI4OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCX0sIC8qIDI4OSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCX0sIC8qIDI5MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCX0sIC8qIDI5MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCX0sIC8qIDI5MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCX0sIC8qIDI5MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCX0sIC8qIDI5NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCX0sIC8qIDI5NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCX0sIC8qIDI5NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCX0sIC8qIDI5NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qIDI5OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCX0sIC8qIDI5OSAqLwotCi0JeyA2LAkwLAlzb2xhcmlzX2dldHBncnAsCSJnZXRwZ3JwIgl9LCAvKiAzMDAgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0cGdycCwJInNldHBncnAiCX0sIC8qIDMwMSAqLwotCXsgNiwJMCwJc29sYXJpc19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAzMDIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogMzAzICovCi0JeyA2LAkwLAlzb2xhcmlzX2dldHBnaWQsCSJnZXRwZ2lkIgl9LCAvKiAzMDQgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc2V0cGdpZCwJInNldHBnaWQiCX0sIC8qIDMwNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDYiCX0sIC8qIDMwNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDciCX0sIC8qIDMwNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDgiCX0sIC8qIDMwOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDkiCX0sIC8qIDMwOSAqLwotCi0JeyA2LAlUUywJc29sYXJpc19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiAzMTAgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3NldCwJCSJzaWdzZXQiCX0sIC8qIDMxMSAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lnaG9sZCwJInNpZ2hvbGQiCX0sIC8qIDMxMiAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lncmVsc2UsCSJzaWdyZWxzZSIJfSwgLyogMzEzICovCi0JeyA2LAlUUywJc29sYXJpc19zaWdpZ25vcmUsCSJzaWdpZ25vcmUiCX0sIC8qIDMxNCAqLwotCXsgNiwJVFMsCXNvbGFyaXNfc2lncGF1c2UsCSJzaWdwYXVzZSIJfSwgLyogMzE1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNiIJfSwgLyogMzE2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNyIJfSwgLyogMzE3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOCIJfSwgLyogMzE4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOSIJfSwgLyogMzE5ICovCi0KLQl7IDYsCVRJLAlzb2xhcmlzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDMyMCAqLwotCXsgNiwJVEksCXNvbGFyaXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMzIxICovCi0JeyA2LAlUSSwJc29sYXJpc19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMjIgKi8KLQl7IDYsCVRJLAlzb2xhcmlzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMyMyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQiCX0sIC8qIDMyNCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUiCX0sIC8qIDMyNSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjYiCX0sIC8qIDMyNiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjciCX0sIC8qIDMyNyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgiCX0sIC8qIDMyOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjkiCX0sIC8qIDMyOSAqLwotCi0JeyA2LAlUSSwJc29sYXJpc19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMzMCAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzMxICovCi0JeyA2LAlUSSwJc29sYXJpc19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDMzMiAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMzMzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNCIJfSwgLyogMzM0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNSIJfSwgLyogMzM1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNiIJfSwgLyogMzM2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNyIJfSwgLyogMzM3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOCIJfSwgLyogMzM4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOSIJfSwgLyogMzM5ICovCi0KLQl7IDYsCVRJLAlzb2xhcmlzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDM0MCAqLwotCXsgNiwJVEksCXNvbGFyaXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMzQxICovCi0JeyA2LAlUSSwJc29sYXJpc19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDM0MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMiCX0sIC8qIDM0MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQiCX0sIC8qIDM0NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUiCX0sIC8qIDM0NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYiCX0sIC8qIDM0NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDciCX0sIC8qIDM0NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgiCX0sIC8qIDM0OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkiCX0sIC8qIDM0OSAqLwotCi0JeyA2LAkwLAlzb2xhcmlzX29sZHVuYW1lLAkib2xkdW5hbWUiCX0sIC8qIDM1MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJInV0c3N5czEiCX0sIC8qIDM1MSAqLwotCXsgNiwJMCwJc29sYXJpc191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDM1MiAqLwotCXsgNiwJMCwJc29sYXJpc19mdXNlcnMsCQkiZnVzZXJzIgl9LCAvKiAzNTMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU0Igl9LCAvKiAzNTQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU1Igl9LCAvKiAzNTUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU2Igl9LCAvKiAzNTYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU3Igl9LCAvKiAzNTcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU4Igl9LCAvKiAzNTggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU5Igl9LCAvKiAzNTkgKi8KLQotCXsgNiwJMCwJcHJpbnRhcmdzLAkJInN5c2ZzMCIJfSwgLyogMzYwICovCi0JeyA2LAkwLAlzb2xhcmlzX3N5c2ZzMSwJCSJzeXNmczEiCX0sIC8qIDM2MSAqLwotCXsgNiwJMCwJc29sYXJpc19zeXNmczIsCQkic3lzZnMyIgl9LCAvKiAzNjIgKi8KLQl7IDYsCTAsCXNvbGFyaXNfc3lzZnMzLAkJInN5c2ZzMyIJfSwgLyogMzYzICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NCIJfSwgLyogMzY0ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NSIJfSwgLyogMzY1ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NiIJfSwgLyogMzY2ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NyIJfSwgLyogMzY3ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OCIJfSwgLyogMzY4ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OSIJfSwgLyogMzY5ICovCi0KLQl7IDYsCTAsCXByaW50YXJncywJCSJzcGNhbGwwIgl9LCAvKiAzNzAgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ3BlbmRpbmcsCSJzaWdwZW5kaW5nIgl9LCAvKiAzNzEgKi8KLQl7IDYsCVRTLAlzb2xhcmlzX3NpZ2ZpbGxzZXQsCSJzaWdmaWxsc2V0Igl9LCAvKiAzNzIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzczIgl9LCAvKiAzNzMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc0Igl9LCAvKiAzNzQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc1Igl9LCAvKiAzNzUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc2Igl9LCAvKiAzNzYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc3Igl9LCAvKiAzNzcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc4Igl9LCAvKiAzNzggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc5Igl9LCAvKiAzNzkgKi8KLQotCXsgNiwJMCwJc29sYXJpc19nZXRjb250ZXh0LAkiZ2V0Y29udGV4dCIJfSwgLyogMzgwICovCi0JeyA2LAkwLAlzb2xhcmlzX3NldGNvbnRleHQsCSJzZXRjb250ZXh0Igl9LCAvKiAzODEgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzgyIgl9LCAvKiAzODIgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzgzIgl9LCAvKiAzODMgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg0Igl9LCAvKiAzODQgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg1Igl9LCAvKiAzODUgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg2Igl9LCAvKiAzODYgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg3Igl9LCAvKiAzODcgKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg4Igl9LCAvKiAzODggKi8KLQl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg5Igl9LCAvKiAzODkgKi8KLQotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qIDM5MCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qIDM5MSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIiCX0sIC8qIDM5MiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qIDM5MyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qIDM5NCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUiCX0sIC8qIDM5NSAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qIDM5NiAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qIDM5NyAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgiCX0sIC8qIDM5OCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qIDM5OSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4NzI5NDYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1MyArMCwwIEBACi0JeyAxLAkwLAlzeXNfc2V0dXAsCSJzZXR1cCIgfSwJCS8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJImV4aXQiIH0sCQkvKiAxICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCSJmb3JrIiB9LAkJLyogMiAqLwotCXsgMywJMCwJc3lzX3JlYWQsCSJyZWFkIiB9LAkJLyogMyAqLwotCXsgMywJMCwJc3lzX3dyaXRlLAkid3JpdGUiIH0sCQkvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCSJvcGVuIiB9LAkJLyogNSAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkiY2xvc2UiIH0sCQkvKiA2ICovCi0JeyA0LAlUUCwJc3lzX3dhaXQ0LAkid2FpdDQiIH0sCQkvKiA3ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkiY3JlYXQiIH0sCQkvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCSJsaW5rIiB9LAkJLyogOSAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCSJ1bmxpbmsiIH0sCQkvKiAxMCAqLwotCXsgMiwgICAgVEZ8VFAsCXN5c19leGVjdiwJImV4ZWN2IiB9LAkJLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCSJjaGRpciIgfSwJCS8qIDEyICovCi0gICAgICAgIHsgMywgICAgVEYsICAgICBzeXNfY2hvd24sICAgICAgImNob3duIn0sCQkvKiAxMyAqLwotCXsgMywJVEYsCXN5c19ta25vZCwJIm1rbm9kIiB9LAkJLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCSJjaG1vZCIgfSwJCS8qIDE1ICovCi0JeyAzLAlURiwJc3lzX2Nob3duLAkibGNob3duIiB9LAkJLyogMTYgKi8KLQl7IDEsCTAsCXN5c19icmssCSJicmsiIH0sCQkvKiAxNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkicGVyZmN0ciIgfSwJCS8qIDE4ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCSJsc2VlayIgfSwJCS8qIDE5ICovCi0JeyAwLAkwLAlzeXNfZ2V0cGlkLAkiZ2V0cGlkIiB9LAkJLyogMjAgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCSJjYXBnZXQiIH0sCQkvKiAyMSAqLwotCXsgMiwJMCwJc3lzX2NhcHNldCwJImNhcHNldCIgfSwJCS8qIDIyICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkic2V0dWlkIiB9LAkJLyogMjMgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCSJnZXR1aWQiIH0sCQkvKiAyNCAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCSJ0aW1lIiB9LAkJLyogMjUgKi8KLQl7IDUsCTAsCXN5c19wdHJhY2UsCSJwdHJhY2UiIH0sCQkvKiAyNiAqLwotCXsgMSwJMCwJc3lzX2FsYXJtLAkiYWxhcm0iIH0sCQkvKiAyNyAqLwotCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywic2lnYWx0c3RhY2siIH0sCS8qIDI4ICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkicGF1c2UiIH0sCQkvKiAyOSAqLwotCXsgMiwJVEYsCXN5c191dGltZSwJInV0aW1lIiB9LAkJLyogMzAgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCSJsY2hvd24zMiIgfSwJCS8qIDMxICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkiZmNob3duMzIiIH0sCQkvKiAzMiAqLwotCXsgMiwJVEYsCXN5c19hY2Nlc3MsCSJhY2Nlc3MiIH0sCQkvKiAzMyAqLwotCXsgMSwJMCwJc3lzX25pY2UsCSJuaWNlIiB9LAkJLyogMzQgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCSJjaG93bjMyIiB9LAkJLyogMzUgKi8KLQl7IDAsCTAsCXN5c19zeW5jLAkic3luYyIgfSwJCS8qIDM2ICovCi0JeyAyLAlUUywJc3lzX2tpbGwsCSJraWxsIiB9LAkJLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJInN0YXQiIH0sCQkvKiAzOCAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJInNlbmRmaWxlIiB9LAkJLyogMzkgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQsCSJsc3RhdCIgfSwJCS8qIDQwICovCi0JeyAyLAkwLAlzeXNfZHVwLAkiZHVwIiB9LAkJLyogNDEgKi8KLQl7IDAsCTAsCXN5c19waXBlLAkicGlwZSIgfSwJCS8qIDQyICovCi0JeyAxLAkwLAlzeXNfdGltZXMsCSJ0aW1lcyIgfSwJCS8qIDQzICovCi0JeyAwLAkwLAlzeXNfZ2V0dWlkLAkiZ2V0dWlkMzIiIH0sCQkvKiA0NCAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkidW1vdW50IiB9LAkJLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCSJzZXRnaWQiIH0sCQkvKiA0NiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJImdldGdpZCIgfSwJCS8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJInNpZ25hbCIgfSwJCS8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJImdldGV1aWQiIH0sCQkvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCSJnZXRlZ2lkIiB9LAkJLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJImFjY3QiIH0sCQkvKiA1MSAqLwotCXsgMiwJMCwJcHJpbnRhcmdzLAkibWVtb3J5X29yZGVyaW5nIiB9LAkvKiA1MiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJImdldGdpZDMyIiB9LAkJLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJImlvY3RsIiB9LAkJLyogNTQgKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCSJyZWJvb3QiIH0sCQkvKiA1NSAqLwotCXsgNiwJMCwJc3lzX21tYXAsCSJtbWFwMiIgfSwJCS8qIDU2ICovCi0JeyAyLAlURiwJc3lzX3N5bWxpbmssCSJzeW1saW5rIiB9LAkJLyogNTcgKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCSJyZWFkbGluayIgfSwJCS8qIDU4ICovCi0JeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJImV4ZWN2ZSIgfSwJCS8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCSJ1bWFzayIgfSwJCS8qIDYwICovCi0JeyAxLAlURiwJc3lzX2Nocm9vdCwJImNocm9vdCIgfSwJCS8qIDYxICovCi0JeyAyLAkwLAlzeXNfZnN0YXQsCSJmc3RhdCIgfSwJCS8qIDYyICovCi0JeyAyLAlURiwJc3lzX2ZzdGF0NjQsCSJmc3RhdDY0IiB9LAkJLyogNjMgKi8KLQl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwiZ2V0cGFnZXNpemUiIH0sCS8qIDY0ICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCSJtc3luYyIgfSwJCS8qIDY1ICovCi0JeyAwLAlUUCwJc3lzX3Zmb3JrLAkidmZvcmsiIH0sCQkvKiA2NiAqLwotCXsgNSwJVEYsCXN5c19wcmVhZCwJInByZWFkIiB9LAkJLyogNjcgKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkicHdyaXRlIiB9LAkJLyogNjggKi8KLQl7IDAsICAgIDAsCXN5c19nZXRldWlkLAkiZ2V0ZXVpZDMyIiB9LAkJLyogNjkgKi8KLQl7IDAsCTAsCXN5c19nZXRlZ2lkLAkiZ2V0ZWdpZDMyIiB9LAkJLyogNzAgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkibW1hcCIgfSwJCS8qIDcxICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCSJzZXRyZXVpZDMyIiB9LAkJLyogNzIgKi8KLQl7IDIsCTAsCXN5c19tdW5tYXAsCSJtdW5tYXAiIH0sCQkvKiA3MyAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkibXByb3RlY3QiIH0sCQkvKiA3NCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCSJtYWR2aXNlIiB9LAkJLyogNzUgKi8KLQl7IDAsCTAsCXN5c192aGFuZ3VwLAkidmhhbmd1cCIgfSwJCS8qIDc2ICovCi0JeyAzLAlURiwJc3lzX3RydW5jYXRlNjQsCSJ0cnVuY2F0ZTY0IiB9LAkJLyogNzcgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkibWluY29yZSIgfSwJCS8qIDc4ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzIiB9LAkJLyogNzkgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCSJzZXRncm91cHMiIH0sCQkvKiA4MCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCSJnZXRwZ3JwIiB9LAkJLyogODEgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCSJzZXRncm91cHMzMiIgfSwJLyogODIgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCSJzZXRpdGltZXIiIH0sCQkvKiA4MyAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJImZ0cnVuY2F0ZTY0IiB9LAkvKiA4NCAqLwotCXsgMSwJVEYsCXN5c19zd2Fwb24sCSJzd2Fwb24iIH0sCQkvKiA4NSAqLwotCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJImdldGl0aW1lciIgfSwJCS8qIDg2ICovCi0JeyAxLAkwLAlzeXNfc2V0dWlkLAkic2V0dWlkMzIiIH0sCQkvKiA4NyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLCJzZXRob3N0bmFtZSIgfSwJLyogODggKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCSJzZXRnaWQzMiIgfSwJCS8qIDg5ICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJImR1cDIiIH0sCQkvKiA5MCAqLwotCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkic2V0ZnN1aWQzMiIgfSwJCS8qIDkxICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCSJmY250bCIgfSwJCS8qIDkyICovCi0JeyA1LAkwLAlzeXNfc2VsZWN0LAkic2VsZWN0IiB9LAkJLyogOTMgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJInNldGZzZ2lkMzIiIH0sCQkvKiA5NCAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkiZnN5bmMiIH0sCQkvKiA5NSAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LCJzZXRwcmlvcml0eSIgfSwJLyogOTYgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkic29ja2V0IiB9LAkJLyogOTcgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJImNvbm5lY3QiIH0sCQkvKiA5OCAqLwotCXsgMywJVE4sCXN5c19hY2NlcHQsCSJhY2NlcHQiIH0sCQkvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LCJnZXRwcmlvcml0eSIgfSwJLyogMTAwICovCi0JeyAxLAlUUywJcHJpbnRhcmdzLAkicnRfc2lncmV0dXJuIiB9LAkvKiAxMDEgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLCJydF9zaWdhY3Rpb24iIH0sCS8qIDEwMiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywicnRfc2lncHJvY21hc2siIH0sCS8qIDEwMyAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLCJydF9zaWdwZW5kaW5nIiB9LAkvKiAxMDQgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LCJydF9zaWd0aW1lZHdhaXQiIH0sLyogMTA1ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywicnRfc2lncXVldWVpbmZvIiB9LC8qIDEwNiAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLCJydF9zaWdzdXNwZW5kIiB9LAkvKiAxMDcgKi8KLQl7IDMsCVRTLAlzeXNfc2V0cmVzdWlkLAkic2V0cmVzdWlkIiB9LAkJLyogMTA4ICovCi0JeyAzLCAgICBUUywJc3lzX2dldHJlc3VpZCwJImdldHJlc3VpZCIgfSwJCS8qIDEwOSAqLwotCXsgMywJVFMsCXN5c19zZXRyZXNnaWQsCSJzZXRyZXNnaWQiIH0sCQkvKiAxMTAgKi8KLQl7IDMsCVRTLAlzeXNfZ2V0cmVzZ2lkLAkiZ2V0cmVzZ2lkIiB9LAkJLyogMTExICovCi0JeyAyLAlUUywJc3lzX3NldHJlc2dpZCwJInNldHJlc2dpZDMyIiB9LAkvKiAxMTIgKi8KLQl7IDUsCVROLAlzeXNfcmVjdm1zZywJInJlY3Ztc2ciIH0sCQkvKiAxMTMgKi8KLQl7IDUsCVROLAlzeXNfc2VuZG1zZywJInNlbmRtc2ciIH0sCQkvKiAxMTQgKi8KLQl7IDIsCTAsCXN5c19nZXRncm91cHMsCSJnZXRncm91cHMzMiIgfSwJLyogMTE1ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LCJnZXR0aW1lb2ZkYXkiIH0sCS8qIDExNiAqLwotCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJImdldHJ1c2FnZSIgfSwJCS8qIDExNyAqLwotCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkiZ2V0c29ja29wdCIgfSwJCS8qIDExOCAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCSJnZXRjd2QiIH0sCQkvKiAxMTkgKi8KLQl7IDMsCTAsCXN5c19yZWFkdiwJInJlYWR2IiB9LAkJLyogMTIwICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkid3JpdGV2IiB9LAkJLyogMTIxICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LCJzZXR0aW1lb2ZkYXkiIH0sCS8qIDEyMiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJImZjaG93biIgfSwJCS8qIDEyMyAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJImZjaG1vZCIgfSwJCS8qIDEyNCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJInJlY3Zmcm9tIiB9LAkJLyogMTI1ICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCSJzZXRyZXVpZCIgfSwJCS8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkic2V0cmVnaWQiIH0sCQkvKiAxMjcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkicmVuYW1lIiB9LAkJLyogMTI4ICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkidHJ1bmNhdGUiIH0sCQkvKiAxMjkgKi8KLQl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCSJmdHJ1bmNhdGUiIH0sCQkvKiAxMzAgKi8KLQl7IDIsCTAsCXN5c19mbG9jaywJImZsb2NrIiB9LAkJLyogMTMxICovCi0JeyAyLAlURiwJc3lzX2xzdGF0NjQsCSJsc3RhdDY0IiB9LAkJLyogMTMyICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJInNlbmR0byIgfSwJCS8qIDEzMyAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJInNodXRkb3duIiB9LAkJLyogMTM0ICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCSJzb2NrZXRwYWlyIiB9LAkJLyogMTM1ICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkibWtkaXIiIH0sCQkvKiAxMzYgKi8KLQl7IDEsCVRGLAlzeXNfcm1kaXIsCSJybWRpciIgfSwJCS8qIDEzNyAqLwotCXsgMiwJVEYsCXN5c191dGltZXMsCSJ1dGltZXMiIH0sCQkvKiAxMzggKi8KLQl7IDIsCVRGLAlzeXNfc3RhdDY0LAkic3RhdDY0IiB9LAkJLyogMTM5ICovCi0JeyA0LCAgICBURiwJc3lzX3NlbmRmaWxlNjQsCSJzZW5kZmlsZTY0IiB9LAkJLyogMTQwICovCi0JeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLCJnZXRwZWVybmFtZSIgfSwJLyogMTQxICovCi0JeyA1LCAgICAwLAlzeXNfZnV0ZXgsCSJmdXRleCIgfSwJCS8qIDE0MiAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkiZ2V0dGlkIiB9LAkJLyogMTQzICovCi0JeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkiZ2V0cmxpbWl0IiB9LAkJLyogMTQ0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkic2V0cmxpbWl0IiB9LAkJLyogMTQ1ICovCi0JeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJInBpdm90X3Jvb3QiIH0sCQkvKiAxNDYgKi8KLQl7IDUsCTAsCXN5c19wcmN0bCwJInByY3RsIiB9LAkJLyogMTQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfcmVhZCIgfSwJLyogMTQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfd3JpdGUiIH0sCS8qIDE0OSAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwiZ2V0c29ja25hbWUiIH0sCS8qIDE1MCAqLwotCXsgNCwJVE4sCXN5c19nZXRtc2csCSJnZXRtc2ciIH0sCQkvKiAxNTEgKi8KLQl7IDQsCVROLAlzeXNfcHV0bXNnLAkicHV0bXNnIiB9LAkJLyogMTUyICovCi0JeyAzLAkwLAlzeXNfcG9sbCwJInBvbGwiIH0sCQkvKiAxNTMgKi8KLQl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkiZ2V0ZGVudHM2NCIgfSwJCS8qIDE1NCAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGw2NCIgfSwJCS8qIDE1NSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkiZ2V0ZGlyZW50cmllcyIgfSwJLyogMTU2ICovCi0JeyAyLAlURiwJc3lzX3N0YXRmcywJInN0YXRmcyIgfSwJCS8qIDE1NyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCSJmc3RhdGZzIiB9LAkJLyogMTU4ICovCi0JeyAxLAlURiwJc3lzX3Vtb3VudCwJIm9sZHVtb3VudCIgfSwJCS8qIDE1OSAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMTYwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAxNjEgKi8KLQl7IDIsCTAsCXByaW50YXJncywJImdldGRvbWFpbm5hbWUiIH0sCS8qIDE2MiAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsInNldGRvbWFpbm5hbWUiIH0sCS8qIDE2MyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkidXRyYXBfaW5zdGFsbCIgfSwJLyogMTY0ICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCSJxdW90YWN0bCIgfSwJCS8qIDE2NSAqLwotCXsgMSwJMCwJcHJpbnRhcmdzLAkic2V0X3RpZF9hZGRyZXNzIiB9LAkvKiAxNjYgKi8KLQl7IDUsCVRGLAlzeXNfbW91bnQsCSJtb3VudCIgfSwJCS8qIDE2NyAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkidXN0YXQiIH0sCQkvKiAxNjggKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCSJzZXR4YXR0ciIgfSwJCS8qIDE2OSAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJImxzZXR4YXR0ciIgfSwJCS8qIDE3MCAqLwotCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJImZzZXR4YXR0ciIgfSwJCS8qIDE3MSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJImdldHhhdHRyIiB9LAkJLyogMTcyICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkibGdldHhhdHRyIiB9LAkJLyogMTczICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIgfSwJCS8qIDE3NCAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJInNldHNpZCIgfSwJCS8qIDE3NSAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJImZjaGRpciIgfSwJCS8qIDE3NiAqLwotCXsgNCwgICAgMCwJc3lzX2ZnZXR4YXR0ciwJImZnZXR4YXR0ciIgfSwJCS8qIDE3NyAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCSJsaXN0eGF0dHIiIH0sCQkvKiAxNzggKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkibGxpc3R4YXR0ciIgfSwJCS8qIDE3OSAqLwotCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCSJmbGlzdHhhdHRyIiB9LAkJLyogMTgwICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJyZW1vdmV4YXR0ciIgfSwJLyogMTgxICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJscmVtb3ZleGF0dHIiIH0sCS8qIDE4MiAqLwotCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIgfSwJCS8qIDE4MyAqLwotCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwicXVlcnlfbW9kdWxlIiB9LAkvKiAxODQgKi8KLQl7IDIsCTAsCXN5c19zZXRwZ2lkLAkic2V0cGdpZCIgfSwJCS8qIDE4NSAqLwotCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwiZnJlbW92ZXhhdHRyIiB9LAkvKiAxODYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJInRraWxsIiB9LAkJLyogMTg3ICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCSJleGl0X2dyb3VwIiB9LAkJLyogMTg4ICovCi0JeyAxLAkwLAlzeXNfdW5hbWUsCSJ1bmFtZSIgfSwJCS8qIDE4OSAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLCJpbml0X21vZHVsZSIgfSwJLyogMTkwICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksInBlcnNvbmFsaXR5IiB9LAkvKiAxOTEgKi8KLQl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLCJyZW1hcF9maWxlX3BhZ2VzIiB9LC8qIDE5MiAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwiZXBvbGxfY3JlYXRlIiB9LAkvKiAxOTMgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCSJlcG9sbF9jdGwiIH0sCQkvKiAxOTQgKi8KLQl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkiZXBvbGxfd2FpdCIgfSwJCS8qIDE5NSAqLwotCXsgMiwJMCwJc3lzX3VsaW1pdCwJInVsaW1pdCIgfSwJCS8qIDE5NiAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCSJnZXRwcGlkIiB9LAkJLyogMTk3ICovCi0JeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIgfSwJCS8qIDE5OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkic2dldG1hc2siIH0sCQkvKiAxOTkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJInNzZXRtYXNrIiB9LAkJLyogMjAwICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIiB9LAkJLyogMjAxICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiAyMDIgKi8KLQl7IDEsCVRGLAlzeXNfdXNlbGliLAkidXNlbGliIiB9LAkJLyogMjAzICovCi0JeyAzLAkwLAlzeXNfcmVhZGRpciwJInJlYWRkaXIiIH0sCQkvKiAyMDQgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCSJyZWFkYWhlYWQiIH0sCQkvKiAyMDUgKi8KLQl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkic29ja2V0Y2FsbCIgfSwJCS8qIDIwNiAqLwotCXsgMywJMCwJc3lzX3N5c2xvZywJInN5c2xvZyIgfSwJCS8qIDIwNyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkibG9va3VwX2Rjb29raWUiIH0sCS8qIDIwOCAqLwotCXsgNiwJMCwJcHJpbnRhcmdzLAkiZmFkdmlzZTY0IiB9LAkJLyogMjA5ICovCi0JeyA2LAkwLAlwcmludGFyZ3MsCSJmYWR2aXNlNjRfNjQiIH0sCS8qIDIxMCAqLwotCXsgMywJVFMsCXN5c190Z2tpbGwsCSJ0Z2tpbGwiIH0sCQkvKiAyMTEgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJIndhaXRwaWQiIH0sCQkvKiAyMTIgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkic3dhcG9mZiIgfSwJCS8qIDIxMyAqLwotCXsgMSwJMCwJc3lzX3N5c2luZm8sCSJzeXNpbmZvIiB9LAkJLyogMjE0ICovCi0JeyA1LAkwLAlzeXNfaXBjLAkiaXBjIiB9LAkJLyogMjE1ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJInNpZ3JldHVybiIgfSwJCS8qIDIxNiAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJImNsb25lIiB9LAkJLyogMjE3ICovCi0JeyAzLAkwLAlzeXNfbW9kaWZ5X2xkdCwJIm1vZGlmeV9sZHQiIH0sCQkvKiAyMTggKi8KLQl7IDEsCTAsCXN5c19hZGp0aW1leCwJImFkanRpbWV4IiB9LAkJLyogMjE5ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLCJzaWdwcm9jbWFzayIgfSwJLyogMjIwICovCi0JeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwiY3JlYXRlX21vZHVsZSIgfSwJLyogMjIxICovCi0JeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwiZGVsZXRlX21vZHVsZSIgfSwKLQl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsImdldF9rZXJuZWxfc3ltcyJ9LAkvKiAyMjMgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkiZ2V0cGdpZCIgfSwJCS8qIDIyNCAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCSJiZGZsdXNoIiB9LAkJLyogMjI1ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCSJzeXNmcyIgfSwJCS8qIDIyNiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLCJhZnNfc3lzY2FsbCIgfSwJLyogMjI3ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCSJzZXRmc3VpZCIgfSwJCS8qIDIyOCAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkic2V0ZnNnaWQiIH0sCQkvKiAyMjkgKi8KLQl7IDUsCTAsCXN5c19zZWxlY3QsCSJzZWxlY3QiIH0sCQkvKiAyMzAgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkidGltZSIgfSwJCS8qIDIzMSAqLwotCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDIzMiAqLwotCXsgMSwJMCwJc3lzX3N0aW1lLAkic3RpbWUiIH0sCQkvKiAyMzMgKi8KLQl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCSJzdGF0ZnM2NCIgfSwJCS8qIDIzNCAqLwotCXsgMywJMCwJc3lzX2ZzdGF0ZnM2NCwJImZzdGF0ZnM2NCIgfSwJCS8qIDIzNSAqLwotCXsgNSwJMCwJc3lzX2xsc2VlaywJIl9sbHNlZWsiIH0sCQkvKiAyMzYgKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJIm1sb2NrIiB9LAkJLyogMjM3ICovCi0JeyAyLAkwLAlzeXNfbXVubG9jaywJIm11bmxvY2siIH0sCQkvKiAyMzggKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJIm1sb2NrYWxsIiB9LAkJLyogMjM5ICovCi0JeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJIm11bmxvY2thbGwiIH0sCQkvKiAyNDAgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwic2NoZWRfc2V0cGFyYW0ifSwJLyogMjQxICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sInNjaGVkX2dldHBhcmFtIn0sCS8qIDI0MiAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwic2NoZWRfc2V0c2NoZWR1bGVyIn0sLyogMjQzICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCJzY2hlZF9nZXRzY2hlZHVsZXIifSwvKiAyNDQgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwic2NoZWRfeWllbGQiIH0sCS8qIDI0NSAqLwotCXsgMSwwLHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sLyogMjQ2ICovCi0JeyAxLDAsc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwvKiAyNDcgKi8KLQl7IDIsCTAsc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sLyogMjQ4ICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkibmFub3NsZWVwIiB9LAkJLyogMjQ5ICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkibXJlbWFwIiB9LAkJLyogMjUwICovCi0JeyAxLAkwLAlzeXNfc3lzY3RsLAkiX3N5c2N0bCIgfSwJCS8qIDI1MSAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJImdldHNpZCIgfSwJCS8qIDI1MiAqLwotCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJImZkYXRhc3luYyIgfSwJCS8qIDI1MyAqLwotCXsgMywJMCwJcHJpbnRhcmdzLAkibmZzc2VydmN0bCIgfSwJCS8qIDI1NCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkiYXBsaWIiIH0sCQkvKiAyNTUgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLCJjbG9ja19zZXR0aW1lIiB9LAkvKiAyNTYgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLCJjbG9ja19nZXR0aW1lIiB9LAkvKiAyNTcgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsImNsb2NrX2dldHJlcyIgfSwJLyogMjU4ICovCi0JeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLCJjbG9ja19uYW5vc2xlZXAiIH0sLyogMjU5ICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI2MCAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LCJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNjEgKi8KLQl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLCJ0aW1lcl9zZXR0aW1lIiB9LAkvKiAyNjIgKi8KLQl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLCJ0aW1lcl9nZXR0aW1lIiB9LAkvKiAyNjMgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLCJ0aW1lcl9nZXRvdmVycnVuIiB9LC8qIDI2NCAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwidGltZXJfZGVsZXRlIiB9LAkvKiAyNjUgKi8KLQl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsInRpbWVyX2NyZWF0ZSIgfSwJLyogMjY2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY3IiB9LAkJLyogMjY3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY4IiB9LAkJLyogMjY4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY5IiB9LAkJLyogMjY5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcwIiB9LAkJLyogMjcwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcxIiB9LAkJLyogMjcxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcyIiB9LAkJLyogMjcyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjczIiB9LAkJLyogMjczICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc0IiB9LAkJLyogMjc0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc1IiB9LAkJLyogMjc1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc2IiB9LAkJLyogMjc2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc3IiB9LAkJLyogMjc3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc4IiB9LAkJLyogMjc4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc5IiB9LAkJLyogMjc5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgwIiB9LAkJLyogMjgwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgxIiB9LAkJLyogMjgxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgyIiB9LAkJLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgzIiB9LAkJLyogMjgzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg0IiB9LAkJLyogMjg0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg1IiB9LAkJLyogMjg1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg2IiB9LAkJLyogMjg2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg3IiB9LAkJLyogMjg3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg4IiB9LAkJLyogMjg4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg5IiB9LAkJLyogMjg5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkwIiB9LAkJLyogMjkwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkxIiB9LAkJLyogMjkxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkyIiB9LAkJLyogMjkyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkzIiB9LAkJLyogMjkzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk0IiB9LAkJLyogMjk0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk1IiB9LAkJLyogMjk1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk2IiB9LAkJLyogMjk2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk3IiB9LAkJLyogMjk3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk4IiB9LAkJLyogMjk4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk5IiB9LAkJLyogMjk5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAwIiB9LAkJLyogMzAwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAxIiB9LAkJLyogMzAxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAyIiB9LAkJLyogMzAyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAzIiB9LAkJLyogMzAzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA0IiB9LAkJLyogMzA0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA1IiB9LAkJLyogMzA1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA2IiB9LAkJLyogMzA2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA3IiB9LAkJLyogMzA3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA4IiB9LAkJLyogMzA4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA5IiB9LAkJLyogMzA5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEwIiB9LAkJLyogMzEwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzExIiB9LAkJLyogMzExICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEyIiB9LAkJLyogMzEyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEzIiB9LAkJLyogMzEzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE0IiB9LAkJLyogMzE0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE1IiB9LAkJLyogMzE1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE2IiB9LAkJLyogMzE2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE3IiB9LAkJLyogMzE3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE4IiB9LAkJLyogMzE4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE5IiB9LAkJLyogMzE5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIwIiB9LAkJLyogMzIwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIxIiB9LAkJLyogMzIxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIyIiB9LAkJLyogMzIyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIzIiB9LAkJLyogMzIzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI0IiB9LAkJLyogMzI0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI1IiB9LAkJLyogMzI1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI2IiB9LAkJLyogMzI2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI3IiB9LAkJLyogMzI3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI4IiB9LAkJLyogMzI4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI5IiB9LAkJLyogMzI5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMwIiB9LAkJLyogMzMwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMxIiB9LAkJLyogMzMxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMyIiB9LAkJLyogMzMyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMzIiB9LAkJLyogMzMzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM0IiB9LAkJLyogMzM0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM1IiB9LAkJLyogMzM1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM2IiB9LAkJLyogMzM2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM3IiB9LAkJLyogMzM3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM4IiB9LAkJLyogMzM4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM5IiB9LAkJLyogMzM5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQwIiB9LAkJLyogMzQwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQxIiB9LAkJLyogMzQxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQyIiB9LAkJLyogMzQyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQzIiB9LAkJLyogMzQzICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ0IiB9LAkJLyogMzQ0ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ1IiB9LAkJLyogMzQ1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ2IiB9LAkJLyogMzQ2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ3IiB9LAkJLyogMzQ3ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ4IiB9LAkJLyogMzQ4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ5IiB9LAkJLyogMzQ5ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUwIiB9LAkJLyogMzUwICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUxIiB9LAkJLyogMzUxICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUyIiB9LAkJLyogMzUyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3lzY2FsbC5oIGIvc3RyYWNlL2xpbnV4L3N5c2NhbGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBhNTk5My4uMDAwMDAwMAotLS0gYS9zdHJhY2UvbGludXgvc3lzY2FsbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjk2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+Ci0gKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKgkkSWQ6IHN5c2NhbGwuaCx2IDEuNDUgMjAwNS8wNi8wNyAyMzoyMToyOCByb2xhbmQgRXhwICQKLSAqLwotCi0jaW5jbHVkZSAiZHVtbXkuaCIKLQotLyogcHJpbWFyeSBzeXNjYWxscyAqLwotCi1pbnQgc3lzX3NldHVwKCksIHN5c19leGl0KCksIHN5c19mb3JrKCksIHN5c19yZWFkKCksIHN5c193cml0ZSgpOwotaW50IHN5c19vcGVuKCksIHN5c19jbG9zZSgpLCBzeXNfd2FpdHBpZCgpLCBzeXNfY3JlYXQoKSwgc3lzX2xpbmsoKTsKLWludCBzeXNfdW5saW5rKCksIHN5c19leGVjdmUoKSwgc3lzX2NoZGlyKCksIHN5c190aW1lKCksIHN5c19ta25vZCgpOwotaW50IHN5c19jaG1vZCgpLCBzeXNfY2hvd24oKSwgc3lzX2JyZWFrKCksIHN5c19vbGRzdGF0KCk7Ci1pbnQgc3lzX2xzZWVrKCksIHN5c19nZXRwaWQoKSwgc3lzX21vdW50KCksIHN5c191bW91bnQoKSwgc3lzX3Vtb3VudDIoKTsKLWludCBzeXNfc2V0dWlkKCksIHN5c19nZXR1aWQoKSwgc3lzX3N0aW1lKCksIHN5c19wdHJhY2UoKTsKLWludCBzeXNfYWxhcm0oKSwgc3lzX29sZGZzdGF0KCksIHN5c19wYXVzZSgpLCBzeXNfdXRpbWUoKTsKLWludCBzeXNfc3R0eSgpLCBzeXNfZ3R0eSgpLCBzeXNfYWNjZXNzKCksIHN5c19uaWNlKCksIHN5c19mdGltZSgpOwotaW50IHN5c19zeW5jKCksIHN5c19raWxsKCksIHN5c19yZW5hbWUoKSwgc3lzX21rZGlyKCksIHN5c19ybWRpcigpOwotaW50IHN5c19kdXAoKSwgc3lzX3BpcGUoKSwgc3lzX3RpbWVzKCksIHN5c19wcm9mKCksIHN5c19icmsoKTsKLWludCBzeXNfc2V0Z2lkKCksIHN5c19nZXRnaWQoKSwgc3lzX3NpZ25hbCgpLCBzeXNfZ2V0ZXVpZCgpOwotaW50IHN5c19nZXRlZ2lkKCksIHN5c19hY2N0KCksIHN5c19waHlzKCksIHN5c19sb2NrKCksIHN5c19pb2N0bCgpOwotaW50IHN5c19mY250bCgpLCBzeXNfbXB4KCksIHN5c19zZXRwZ2lkKCksIHN5c191bGltaXQoKTsKLWludCBzeXNfb2xkdW5hbWUoKSwgc3lzX3VtYXNrKCksIHN5c19jaHJvb3QoKSwgc3lzX3VzdGF0KCk7Ci1pbnQgc3lzX2R1cDIoKSwgc3lzX2dldHBwaWQoKSwgc3lzX2dldHBncnAoKSwgc3lzX3NldHNpZCgpOwotaW50IHN5c19zaWdhY3Rpb24oKSwgc3lzX3NpZ2dldG1hc2soKSwgc3lzX3NpZ3NldG1hc2soKTsKLWludCBzeXNfc2V0cmV1aWQoKSwgc3lzX3NldHJlZ2lkKCksIHN5c19zaWdzdXNwZW5kKCk7Ci1pbnQgc3lzX3NpZ3BlbmRpbmcoKSwgc3lzX3NldGhvc3RuYW1lKCksIHN5c19zZXRybGltaXQoKTsKLWludCBzeXNfZ2V0cmxpbWl0KCksIHN5c19nZXRydXNhZ2UoKSwgc3lzX2dldHRpbWVvZmRheSgpOwotaW50IHN5c19zZXR0aW1lb2ZkYXkoKSwgc3lzX2dldGdyb3VwcygpLCBzeXNfc2V0Z3JvdXBzKCk7Ci1pbnQgc3lzX3NldGdyb3VwczMyKCksIHN5c19nZXRncm91cHMzMigpOwotaW50IHN5c19vbGRzZWxlY3QoKSwgc3lzX3N5bWxpbmsoKSwgc3lzX29sZGxzdGF0KCksIHN5c19yZWFkbGluaygpOwotaW50IHN5c191c2VsaWIoKSwgc3lzX3N3YXBvbigpLCBzeXNfcmVib290KCksIHN5c19yZWFkZGlyKCk7Ci1pbnQgc3lzX21tYXAoKSwgc3lzX211bm1hcCgpLCBzeXNfdHJ1bmNhdGUoKSwgc3lzX2Z0cnVuY2F0ZSgpOwotaW50IHN5c19mY2htb2QoKSwgc3lzX2ZjaG93bigpLCBzeXNfZ2V0cHJpb3JpdHkoKTsKLWludCBzeXNfc2V0cHJpb3JpdHkoKSwgc3lzX3Byb2ZpbCgpLCBzeXNfc3RhdGZzKCksIHN5c19mc3RhdGZzKCk7Ci1pbnQgc3lzX2lvcGVybSgpLCBzeXNfc29ja2V0Y2FsbCgpLCBzeXNfc3lzbG9nKCksIHN5c19zZXRpdGltZXIoKTsKLWludCBzeXNfZ2V0aXRpbWVyKCksIHN5c19zdGF0KCksIHN5c19sc3RhdCgpLCBzeXNfZnN0YXQoKTsKLWludCBzeXNfdW5hbWUoKSwgc3lzX2lvcGwoKSwgc3lzX3ZoYW5ndXAoKSwgc3lzX2lkbGUoKSwgc3lzX3ZtODYoKTsKLWludCBzeXNfd2FpdDQoKSwgc3lzX3N3YXBvZmYoKSwgc3lzX2lwYygpLCBzeXNfc2lncmV0dXJuKCk7Ci1pbnQgc3lzX2ZzeW5jKCksIHN5c19jbG9uZSgpLCBzeXNfc2V0ZG9tYWlubmFtZSgpLCBzeXNfc3lzaW5mbygpOwotaW50IHN5c19tb2RpZnlfbGR0KCksIHN5c19hZGp0aW1leCgpLCBzeXNfbXByb3RlY3QoKTsKLWludCBzeXNfc2lncHJvY21hc2soKSwgc3lzX2NyZWF0ZV9tb2R1bGUoKSwgc3lzX2luaXRfbW9kdWxlKCk7Ci1pbnQgc3lzX2RlbGV0ZV9tb2R1bGUoKSwgc3lzX2dldF9rZXJuZWxfc3ltcygpLCBzeXNfcXVvdGFjdGwoKTsKLWludCBzeXNfZ2V0cGdpZCgpLCBzeXNfZmNoZGlyKCksIHN5c19iZGZsdXNoKCk7Ci1pbnQgc3lzX3N5c2ZzKCksIHN5c19wZXJzb25hbGl0eSgpLCBzeXNfYWZzX3N5c2NhbGwoKTsKLWludCBzeXNfc2V0ZnN1aWQoKSwgc3lzX3NldGZzZ2lkKCksIHN5c19sbHNlZWsoKTsKLWludCBzeXNfZ2V0ZGVudHMoKSwgc3lzX2Zsb2NrKCksIHN5c19tc3luYygpOwotaW50IHN5c19yZWFkdigpLCBzeXNfd3JpdGV2KCksIHN5c19zZWxlY3QoKTsKLWludCBzeXNfZ2V0c2lkKCksIHN5c19mZGF0YXN5bmMoKSwgc3lzX3N5c2N0bCgpOwotaW50IHN5c19tbG9jaygpLCBzeXNfbXVubG9jaygpLCBzeXNfbWxvY2thbGwoKSwgc3lzX211bmxvY2thbGwoKSwgc3lzX21hZHZpc2UoKTsKLWludCBzeXNfc2NoZWRfc2V0cGFyYW0oKSwgc3lzX3NjaGVkX2dldHBhcmFtKCk7Ci1pbnQgc3lzX3NjaGVkX3NldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyKCksIHN5c19zY2hlZF95aWVsZCgpOwotaW50IHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KCksIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKCk7Ci1pbnQgc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCgpLCBzeXNfbmFub3NsZWVwKCksIHN5c19tcmVtYXAoKTsKLWludCBzeXNfc2VuZG1zZygpLCBzeXNfcmVjdm1zZygpLCBzeXNfc2V0cmVzdWlkKCksIHN5c19zZXRyZXNnaWQoKTsKLWludCBzeXNfZ2V0cmVzdWlkKCksIHN5c19nZXRyZXNnaWQoKSwgc3lzX3ByZWFkKCksIHN5c19wd3JpdGUoKSwgc3lzX2dldGN3ZCgpOwotaW50IHN5c19zaWdhbHRzdGFjaygpLCBzeXNfcnRfc2lncHJvY21hc2soKSwgc3lzX3J0X3NpZ2FjdGlvbigpOwotaW50IHN5c19ydF9zaWdwZW5kaW5nKCksIHN5c19ydF9zaWdzdXNwZW5kKCksIHN5c19ydF9zaWdxdWV1ZWluZm8oKTsKLWludCBzeXNfcnRfc2lndGltZWR3YWl0KCksIHN5c19wcmN0bCgpLCBzeXNfcG9sbCgpLCBzeXNfdmZvcmsoKTsKLWludCBzeXNfc2VuZGZpbGUoKSwgc3lzX29sZF9tbWFwKCksIHN5c19zdGF0NjQoKSwgc3lzX2xzdGF0NjQoKSwgc3lzX2ZzdGF0NjQoKTsKLWludCBzeXNfdHJ1bmNhdGU2NCgpLCBzeXNfZnRydW5jYXRlNjQoKSwgc3lzX3Bpdm90cm9vdCgpOwotaW50IHN5c19nZXRkZW50czY0KCk7Ci1pbnQgc3lzX2dldHBtc2coKSwgc3lzX3B1dHBtc2coKSwgc3lzX3JlYWRhaGVhZCgpLCBzeXNfc2VuZGZpbGU2NCgpOwotaW50IHN5c19zZXR4YXR0cigpLCBzeXNfZnNldHhhdHRyKCksIHN5c19nZXR4YXR0cigpLCBzeXNfZmdldHhhdHRyKCk7Ci1pbnQgc3lzX2xpc3R4YXR0cigpLCBzeXNfZmxpc3R4YXR0cigpLCBzeXNfcmVtb3ZleGF0dHIoKSwgc3lzX2ZyZW1vdmV4YXR0cigpOwotaW50IHN5c19zY2hlZF9zZXRhZmZpbml0eSgpLCBzeXNfc2NoZWRfZ2V0YWZmaW5pdHkoKSwgc3lzX2Z1dGV4KCk7Ci1pbnQgc3lzX3NldF90aHJlYWRfYXJlYSgpLCBzeXNfZ2V0X3RocmVhZF9hcmVhKCksIHN5c19yZW1hcF9maWxlX3BhZ2VzKCk7Ci1pbnQgc3lzX3RpbWVyX2NyZWF0ZSgpLCBzeXNfdGltZXJfZGVsZXRlKCksIHN5c190aW1lcl9nZXRvdmVycnVuKCk7Ci1pbnQgc3lzX3RpbWVyX2dldHRpbWUoKSwgc3lzX3RpbWVyX3NldHRpbWUoKSwgc3lzX2Nsb2NrX3NldHRpbWUoKTsKLWludCBzeXNfY2xvY2tfZ2V0dGltZSgpLCBzeXNfY2xvY2tfZ2V0cmVzKCksIHN5c19jbG9ja19uYW5vc2xlZXAoKTsKLWludCBzeXNfc2VtdGltZWRvcCgpLCBzeXNfc3RhdGZzNjQoKSwgc3lzX2ZzdGF0ZnM2NCgpLCBzeXNfdGdraWxsKCk7Ci1pbnQgc3lzX21xX29wZW4oKSwgc3lzX21xX3RpbWVkc2VuZCgpLCBzeXNfbXFfdGltZWRyZWNlaXZlKCk7Ci1pbnQgc3lzX21xX25vdGlmeSgpLCBzeXNfbXFfZ2V0c2V0YXR0cigpOwotaW50IHN5c19lcG9sbF9jcmVhdGUoKSwgc3lzX2Vwb2xsX2N0bCgpLCBzeXNfZXBvbGxfd2FpdCgpOwotaW50IHN5c193YWl0aWQoKSwgc3lzX2ZhZHZpc2U2NCgpLCBzeXNfZmFkdmlzZTY0XzY0KCk7Ci1pbnQgc3lzX21iaW5kKCksIHN5c19nZXRfbWVtcG9saWN5KCksIHN5c19zZXRfbWVtcG9saWN5KCk7Ci1pbnQgc3lzX2FyY2hfcHJjdGwoKTsKLWludCBzeXNfaW9fc2V0dXAoKSwgc3lzX2lvX3N1Ym1pdCgpLCBzeXNfaW9fY2FuY2VsKCksIHN5c19pb19nZXRldmVudHMoKSwgc3lzX2lvX2Rlc3Ryb3koKTsKLQotLyogc3lzX3NvY2tldGNhbGwgc3ViY2FsbHMgKi8KLQotaW50IHN5c19zb2NrZXQoKSwgc3lzX2JpbmQoKSwgc3lzX2Nvbm5lY3QoKSwgc3lzX2xpc3RlbigpOwotaW50IHN5c19hY2NlcHQoKSwgc3lzX2dldHNvY2tuYW1lKCksIHN5c19nZXRwZWVybmFtZSgpLCBzeXNfc29ja2V0cGFpcigpOwotaW50IHN5c19zZW5kKCksIHN5c19yZWN2KCksIHN5c19zZW5kdG8oKSwgc3lzX3JlY3Zmcm9tKCk7Ci1pbnQgc3lzX3NodXRkb3duKCksIHN5c19zZXRzb2Nrb3B0KCksIHN5c19nZXRzb2Nrb3B0KCk7Ci0KLS8qIG5ldyBvbmVzICovCi1pbnQgc3lzX3F1ZXJ5X21vZHVsZSgpOwotaW50IHN5c19wb2xsKCk7Ci1pbnQgc3lzX21pbmNvcmUoKTsKLQotLyogYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNhbGxzICovCi0jaWZkZWYgQUxQSEEKLWludCBzeXNfb3NmX3NlbGVjdCgpOwotaW50IHN5c19vc2ZfZ2V0dGltZW9mZGF5KCk7Ci1pbnQgc3lzX29zZl9zZXR0aW1lb2ZkYXkoKTsKLWludCBzeXNfb3NmX2dldGl0aW1lcigpOwotaW50IHN5c19vc2Zfc2V0aXRpbWVyKCk7Ci1pbnQgc3lzX29zZl9nZXRydXNhZ2UoKTsKLWludCBzeXNfb3NmX3dhaXQ0KCk7Ci1pbnQgc3lzX29zZl91dGltZXMoKTsKLSNlbmRpZgotCi0KLSNpZm5kZWYgU1lTX3dhaXRpZAotIyBpZmRlZiBJMzg2Ci0jICBkZWZpbmUgU1lTX3dhaXRpZCAyODQKLSMgZWxpZiBkZWZpbmVkIEFMUEhBCi0jICBkZWZpbmUgU1lTX3dhaXRpZCA0MzgKLSMgZWxpZiBkZWZpbmVkIEFSTQotIyAgZGVmaW5lIFNZU193YWl0aWQgKE5SX1NZU0NBTExfQkFTRSArIDI4MCkKLSMgZWxpZiBkZWZpbmVkIElBNjQKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDEyNzAKLSMgZWxpZiBkZWZpbmVkIE02OEsKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI3NwotIyBlbGlmIGRlZmluZWQgUE9XRVJQQwotIyAgZGVmaW5lIFNZU193YWl0aWQgMjcyCi0jIGVsaWYgZGVmaW5lZCBTMzkwIHx8IGRlZmluZWQgUzM5MFgKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI4MQotIyBlbGlmIGRlZmluZWQgU0g2NAotIyAgZGVmaW5lIFNZU193YWl0aWQgMzEyCi0jIGVsaWYgZGVmaW5lZCBTSDY0Ci0jICBkZWZpbmUgU1lTX3dhaXRpZCAzMTIKLSMgZWxpZiBkZWZpbmVkIFNICi0jICBkZWZpbmUgU1lTX3dhaXRpZCAyODQKLSMgZWxpZiBkZWZpbmVkIFNQQVJDIHx8IGRlZmluZWQgU1BBUkM2NAotIyAgZGVmaW5lIFNZU193YWl0aWQgMjc5Ci0jIGVsaWYgZGVmaW5lZCBYODZfNjQKLSMgIGRlZmluZSBTWVNfd2FpdGlkIDI0NwotIyBlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChBTFBIQSkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoSFBQQSkKLSMgaWZkZWYJSUE2NAotLyoKLSAqICBJQTY0IHN5c2NhbGwgbnVtYmVycyAodGhlIG9ubHkgb25lcyBhdmFpbGFibGUgZnJvbSBzdGFuZGFyZCBoZWFkZXIKLSAqICBmaWxlcykgYXJlIGRpc2pvaW50IGZyb20gSUEzMiBzeXNjYWxsIG51bWJlcnMuICBXZSBuZWVkIHRvIGRlZmluZQotICogIHRoZSBJQTMyIHNvY2tldCBjYWxsIG51bWJlciBoZXJlLgotICovCi0jICBkZWZpbmUgU1lTX3NvY2tldGNhbGwJMTAyCi0KLSMgIHVuZGVmIFNZU19zb2NrZXQKLSMgIHVuZGVmIFNZU19iaW5kCi0jICB1bmRlZiBTWVNfY29ubmVjdAotIyAgdW5kZWYgU1lTX2xpc3RlbgotIyAgdW5kZWYgU1lTX2FjY2VwdAotIyAgdW5kZWYgU1lTX2dldHNvY2tuYW1lCi0jICB1bmRlZiBTWVNfZ2V0cGVlcm5hbWUKLSMgIHVuZGVmIFNZU19zb2NrZXRwYWlyCi0jICB1bmRlZiBTWVNfc2VuZAotIyAgdW5kZWYgU1lTX3JlY3YKLSMgIHVuZGVmIFNZU19zZW5kdG8KLSMgIHVuZGVmIFNZU19yZWN2ZnJvbQotIyAgdW5kZWYgU1lTX3NodXRkb3duCi0jICB1bmRlZiBTWVNfc2V0c29ja29wdAotIyAgdW5kZWYgU1lTX2dldHNvY2tvcHQKLSMgIHVuZGVmIFNZU19zZW5kbXNnCi0jICB1bmRlZiBTWVNfcmVjdm1zZwotIyBlbmRpZiAvKiBJQTY0ICovCi0jICBkZWZpbmUgU1lTX3NvY2tldF9zdWJjYWxsCTMwMAotI2RlZmluZSBTWVNfc3ViX3NvY2tldAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDEpCi0jZGVmaW5lIFNZU19zdWJfYmluZAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNZU19zdWJfY29ubmVjdAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDMpCi0jZGVmaW5lIFNZU19zdWJfbGlzdGVuCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgNCkKLSNkZWZpbmUgU1lTX3N1Yl9hY2NlcHQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA1KQotI2RlZmluZSBTWVNfc3ViX2dldHNvY2tuYW1lCShTWVNfc29ja2V0X3N1YmNhbGwgKyA2KQotI2RlZmluZSBTWVNfc3ViX2dldHBlZXJuYW1lCShTWVNfc29ja2V0X3N1YmNhbGwgKyA3KQotI2RlZmluZSBTWVNfc3ViX3NvY2tldHBhaXIJKFNZU19zb2NrZXRfc3ViY2FsbCArIDgpCi0jZGVmaW5lIFNZU19zdWJfc2VuZAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDkpCi0jZGVmaW5lIFNZU19zdWJfcmVjdgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDEwKQotI2RlZmluZSBTWVNfc3ViX3NlbmR0bwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDExKQotI2RlZmluZSBTWVNfc3ViX3JlY3Zmcm9tCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMikKLSNkZWZpbmUgU1lTX3N1Yl9zaHV0ZG93bgkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTMpCi0jZGVmaW5lIFNZU19zdWJfc2V0c29ja29wdAkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTQpCi0jZGVmaW5lIFNZU19zdWJfZ2V0c29ja29wdAkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTUpCi0jZGVmaW5lIFNZU19zdWJfc2VuZG1zZwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE2KQotI2RlZmluZSBTWVNfc3ViX3JlY3Ztc2cJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNykKLQotI2RlZmluZSBTWVNfc29ja2V0X25zdWJjYWxscwkxOAotI2VuZGlmIC8qICEoQUxQSEEgfHwgTUlQUyB8fCBIUFBBKSAqLwotCi0vKiBzeXNfaXBjIHN1YmNhbGxzICovCi0KLWludCBzeXNfc2VtZ2V0KCksIHN5c19zZW1jdGwoKSwgc3lzX3NlbW9wKCk7Ci1pbnQgc3lzX21zZ3NuZCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpOwotaW50IHN5c19zaG1hdCgpLCBzeXNfc2htZHQoKSwgc3lzX3NobWdldCgpLCBzeXNfc2htY3RsKCk7Ci0KLSNpZiAhZGVmaW5lZChBTFBIQSkgJiYgIWRlZmluZWQoTUlQUykgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKEhQUEEpCi0jIGlmZGVmCUlBNjQKLSAgIC8qCi0gICAgKiBJQTY0IHN5c2NhbGwgbnVtYmVycyAodGhlIG9ubHkgb25lcyBhdmFpbGFibGUgZnJvbSBzdGFuZGFyZAotICAgICogaGVhZGVyIGZpbGVzKSBhcmUgZGlzam9pbnQgZnJvbSBJQTMyIHN5c2NhbGwgbnVtYmVycy4gIFdlIG5lZWQKLSAgICAqIHRvIGRlZmluZSB0aGUgSUEzMiBzb2NrZXQgY2FsbCBudW1iZXIgaGVyZS4gIEZvcnR1bmF0ZWx5LCB0aGlzCi0gICAgKiBzeW1ib2wsIGBTWVNfaXBjJywgaXMgbm90IHVzZWQgYnkgYW55IG9mIHRoZSBJQTY0IGNvZGUgc28KLSAgICAqIHJlLWRlZmluaW5nIHRoaXMgc3ltYm9sIHdpbGwgbm90IGNhdXNlIGEgcHJvYmxlbS4KLSAgICovCi0jICB1bmRlZiBTWVNfaXBjCi0jICBkZWZpbmUgU1lTX2lwYwkJMTE3Ci0jICB1bmRlZiBTWVNfc2Vtb3AKLSMgIHVuZGVmIFNZU19zZW1nZXQKLSMgIHVuZGVmIFNZU19zZW1jdGwKLSMgIHVuZGVmIFNZU19zZW10aW1lZG9wCi0jICB1bmRlZiBTWVNfbXNnc25kCi0jICB1bmRlZiBTWVNfbXNncmN2Ci0jICB1bmRlZiBTWVNfbXNnZ2V0Ci0jICB1bmRlZiBTWVNfbXNnY3RsCi0jICB1bmRlZiBTWVNfc2htYXQKLSMgIHVuZGVmIFNZU19zaG1kdAotIyAgdW5kZWYgU1lTX3NobWdldAotIyAgdW5kZWYgU1lTX3NobWN0bAotIyBlbmRpZiAvKiBJQTY0ICovCi0jZGVmaW5lIFNZU19pcGNfc3ViY2FsbAkJKChTWVNfc29ja2V0X3N1YmNhbGwpKyhTWVNfc29ja2V0X25zdWJjYWxscykpCi0jZGVmaW5lIFNZU19zdWJfc2Vtb3AJCShTWVNfaXBjX3N1YmNhbGwgKyAxKQotI2RlZmluZSBTWVNfc3ViX3NlbWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIpCi0jZGVmaW5lIFNZU19zdWJfc2VtY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMykKLSNkZWZpbmUgU1lTX3N1Yl9zZW10aW1lZG9wCShTWVNfaXBjX3N1YmNhbGwgKyA0KQotI2RlZmluZSBTWVNfc3ViX21zZ3NuZAkJKFNZU19pcGNfc3ViY2FsbCArIDExKQotI2RlZmluZSBTWVNfc3ViX21zZ3JjdgkJKFNZU19pcGNfc3ViY2FsbCArIDEyKQotI2RlZmluZSBTWVNfc3ViX21zZ2dldAkJKFNZU19pcGNfc3ViY2FsbCArIDEzKQotI2RlZmluZSBTWVNfc3ViX21zZ2N0bAkJKFNZU19pcGNfc3ViY2FsbCArIDE0KQotI2RlZmluZSBTWVNfc3ViX3NobWF0CQkoU1lTX2lwY19zdWJjYWxsICsgMjEpCi0jZGVmaW5lIFNZU19zdWJfc2htZHQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMikKLSNkZWZpbmUgU1lTX3N1Yl9zaG1nZXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMykKLSNkZWZpbmUgU1lTX3N1Yl9zaG1jdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAyNCkKLQotI2RlZmluZSBTWVNfaXBjX25zdWJjYWxscwkyNQotI2VuZGlmIC8qICEoQUxQSEEgfHwgTUlQUyB8fCBTUEFSQyB8fCBIUFBBKSAqLwotCi0jaWYgZGVmaW5lZCBTWVNfaXBjX3N1YmNhbGwgJiYgIWRlZmluZWQgU1lTX2lwYwotIyBkZWZpbmUgU1lTX2lwYyBTWVNfaXBjX3N1YmNhbGwKLSNlbmRpZgotI2lmIGRlZmluZWQgU1lTX3NvY2tldF9zdWJjYWxsICYmICFkZWZpbmVkIFNZU19zb2NrZXRjYWxsCi0jIGRlZmluZSBTWVNfc29ja2V0Y2FsbCBTWVNfc29ja2V0X3N1YmNhbGwKLSNlbmRpZgotCi0jaWZkZWYgSUE2NAotICAvKgotICAgKiBJQTY0IHN5c2NhbGwgbnVtYmVycyAodGhlIG9ubHkgb25lcyBhdmFpbGFibGUgZnJvbSBzdGFuZGFyZCBoZWFkZXIKLSAgICogZmlsZXMpIGFyZSBkaXNqb2ludCBmcm9tIElBMzIgc3lzY2FsbCBudW1iZXJzLiAgV2UgbmVlZCB0byBkZWZpbmUKLSAgICogc29tZSBJQTMyIHNwZWNpZmljIHN5c2NhbGxzIGhlcmUuCi0gICAqLwotIyBkZWZpbmUgU1lTX2ZvcmsJMgotIyBkZWZpbmUgU1lTX3Zmb3JrCTE5MAotIyBkZWZpbmUgU1lTMzJfZXhpdAkxCi0jIGRlZmluZSBTWVNfd2FpdHBpZAk3Ci0jIGRlZmluZSBTWVMzMl93YWl0NAkxMTQKLSMgZGVmaW5lIFNZUzMyX2V4ZWN2ZQkxMQotI2VuZGlmIC8qIElBNjQgKi8KLQotI2lmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoSUE2NCkKLWludCBzeXNfZ2V0cGFnZXNpemUoKTsKLSNlbmRpZgotCi0jaWZkZWYgQUxQSEEKLWludCBvc2Zfc3RhdGZzKCksIG9zZl9mc3RhdGZzKCk7Ci0jZW5kaWYKLQotI2lmZGVmIElBNjQKLWludCBzeXNfZ2V0cG1zZygpLCBzeXNfcHV0cG1zZygpOwkvKiBTVFJFQU1TIHN0dWZmICovCi0jZW5kaWYKLQotI2lmZGVmIE1JUFMKLWludCBzeXNfc3lzbWlwcygpOwotI2VuZGlmCi0KLWludCBzeXNfc2V0cGdycCgpLCBzeXNfZ2V0aG9zdG5hbWUoKSwgc3lzX2dldGR0YWJsZXNpemUoKSwgc3lzX3V0aW1lcygpOwotaW50IHN5c19jYXBnZXQoKSwgc3lzX2NhcHNldCgpOwotCi0jaWZkZWYgTTY4SwotaW50IHN5c19jYWNoZWZsdXNoKCk7Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvc3lzY2FsbGVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODUwNWZlLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KLSAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cwotICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKLSAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKLSAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqCSRJZDogc3lzY2FsbGVudC5oLHYgMS4zNCAyMDA1LzA2LzA3IDIzOjIxOjI0IHJvbGFuZCBFeHAgJAotICovCi0KLQl7IDAsCTAsCXN5c19zZXR1cCwJCSJzZXR1cCIJCX0sIC8qIDAgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJfZXhpdCIsIFNZU19leGl0IH0sIC8qIDEgKi8KLQl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIiwgU1lTX2ZvcmsgfSwgLyogMiAqLwotCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIsIFNZU19yZWFkIH0sIC8qIDMgKi8KLQl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIsIFNZU193cml0ZSB9LCAvKiA0ICovCi0JeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KLQl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KLQl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIiwgU1lTX3dhaXQ0IH0sIC8qIDcgKi8KLQl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KLQl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KLQl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIsIFNZU19leGVjdmUgfSwgLyogMTEgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLwotCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KLQl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLwotI2lmZGVmIE02OEsKLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiAxNiAqLwotI2Vsc2UKLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgl9LCAvKiAxNiAqLwotI2VuZGlmCi0JeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiAxNyAqLwotCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDE4ICovCi0JeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLwotCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KLQl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDI0ICovCi0JeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLwotCXsgMiwJMCwJc3lzX29sZGZzdGF0LAkJIm9sZGZzdGF0Igl9LCAvKiAyOCAqLwotCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KLQl7IDIsCTAsCXN5c19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLwotCXsgMiwJMCwJc3lzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDMyICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCi0JeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KLQl7IDAsCTAsCXN5c19mdGltZSwJCSJmdGltZSIJCX0sIC8qIDM1ICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KLQl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLwotCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCi0JeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCi0JeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KLQl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCi0JeyAwLAkwLAlzeXNfcHJvZiwJCSJwcm9mIgkJfSwgLyogNDQgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDUgKi8KLQl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgl9LCAvKiA0NiAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQ3ICovCi0JeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCi0JeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNTAgKi8KLQl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KLQl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDUyICovCi0JeyAwLAkwLAlzeXNfbG9jaywJCSJsb2NrIgkJfSwgLyogNTMgKi8KLQl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCi0JeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA1NSAqLwotCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA1NiAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KLQl7IDIsCTAsCXN5c191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA1OCAqLwotCXsgMSwJMCwJc3lzX29sZG9sZHVuYW1lLAkib2xkb2xkdW5hbWUiCX0sIC8qIDU5ICovCi0JeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KLQl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA2MyAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjQgKi8KLQl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDY1ICovCi0JeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNjYgKi8KLQl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJfSwgLyogNjcgKi8KLQl7IDAsCVRTLAlzeXNfc2lnZ2V0bWFzaywJCSJzaWdnZXRtYXNrIgl9LCAvKiA2OCAqLwotCXsgMSwJVFMsCXN5c19zaWdzZXRtYXNrLAkJInNpZ3NldG1hc2siCX0sIC8qIDY5ICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQiCX0sIC8qIDcwICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDcxICovCi0JeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJfSwgLyogNzIgKi8KLQl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgl9LCAvKiA3MyAqLwotCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCX0sIC8qIDc0ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogNzUgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkib2xkX2dldHJsaW1pdCIJfSwgLyogNzYgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA3NyAqLwotCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNzggKi8KLQl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sIC8qIDc5ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogODAgKi8KLQl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiA4MSAqLwotCXsgMSwJMCwJc3lzX29sZHNlbGVjdCwJCSJvbGRzZWxlY3QiCX0sIC8qIDgyICovCi0JeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJfSwgLyogODMgKi8KLQl7IDIsCVRGLAlzeXNfb2xkbHN0YXQsCQkib2xkbHN0YXQiCX0sIC8qIDg0ICovCi0JeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiA4NSAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAvKiA4NiAqLwotCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgl9LCAvKiA4NyAqLwotCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sIC8qIDg4ICovCi0JeyAzLAkwLAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLwotCXsgNiwJMCwJc3lzX29sZF9tbWFwLAkJIm9sZF9tbWFwIgl9LCAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDkxICovCi0JeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA5MiAqLwotCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDkzICovCi0JeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KLQl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NSAqLwotCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDk2ICovCi0JeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogOTcgKi8KLQl7IDQsCTAsCXN5c19wcm9maWwsCQkicHJvZmlsIgl9LCAvKiA5OCAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA5OSAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTAwICovCi0JeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgLyogMTAxICovCi0JeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIiwgU1lTX3NvY2tldGNhbGwgfSwgLyogMTAyICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTAzICovCi0JeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgLyogMTA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogMTA1ICovCi0JeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEwNiAqLwotCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEwNyAqLwotCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTA4ICovCi0JeyAxLAkwLAlzeXNfb2xkdW5hbWUsCQkib2xkdW5hbWUiCX0sIC8qIDEwOSAqLwotCXsgMSwJMCwJc3lzX2lvcGwsCQkiaW9wbCIJCX0sIC8qIDExMCAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCi0JeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCi0JeyAxLAkwLAlzeXNfdm04Nm9sZCwJCSJ2bTg2b2xkIgl9LCAvKiAxMTMgKi8KLQl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiLCBTWVNfd2FpdDQgfSwgLyogMTE0ICovCi0JeyAxLAkwLAlzeXNfc3dhcG9mZiwJCSJzd2Fwb2ZmIgl9LCAvKiAxMTUgKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sIC8qIDExNiAqLwotCXsgNiwJMCwJc3lzX2lwYywJCSJpcGMiLCBTWVNfaXBjIH0sIC8qIDExNyAqLwotCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCi0JeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLwotCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIsIFNZU19jbG9uZSB9LCAvKiAxMjAgKi8KLQl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTIxICovCi0JeyAxLAkwLAlzeXNfdW5hbWUsCQkidW5hbWUiCQl9LCAvKiAxMjIgKi8KLSNpZmRlZiBNNjhLCi0JeyA0LAkwLAlzeXNfY2FjaGVmbHVzaCwJCSJjYWNoZWZsdXNoIgl9LCAvKiAxMjMgKi8KLSNlbHNlCi0JeyAzLAkwLAlzeXNfbW9kaWZ5X2xkdCwJCSJtb2RpZnlfbGR0Igl9LCAvKiAxMjMgKi8KLSNlbmRpZgotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KLQl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCi0JeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLwotCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KLQl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCi0JeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLwotCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KLQl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLwotCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLwotCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiLCBTWVNfc3lzZnMgfSwgLyogMTM1ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgLyogMTM2ICovCi0JeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJfSwgLyogMTM3ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDEzOCAqLwotCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMzkgKi8KLQl7IDUsCTAsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJfSwgLyogMTQwICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDE0MSAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sIC8qIDE0MiAqLwotCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJfSwgLyogMTQzICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxNDQgKi8KLQl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIsIFNZU19yZWFkdiB9LCAvKiAxNDUgKi8KLQl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2IiwgU1lTX3dyaXRldiB9LCAvKiAxNDYgKi8KLQl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KLQl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KLQl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCi0JeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLwotCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KLQl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KLQl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLwotCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLwotCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLwotCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLwotCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLwotI2lmZGVmIE02OEsKLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTY2Igl9LCAvKiAxNjYgKi8KLSNlbHNlCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkidm04NiIJCX0sIC8qIDE2NiAqLwotI2VuZGlmCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAvKiAxNjcgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiAxNjggKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAvKiAxNjkgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkIgl9LCAvKiAxNzAgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiAxNzEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJwcmN0bCIJCX0sIC8qIDE3MiAqLwotCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCX0sIC8qIDE3MyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iICB9LCAvKiAxNzQgKi8KLQl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayJ9LCAvKiAxNzUgKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywJInJ0X3NpZ3BlbmRpbmciCX0sIC8qIDE3NiAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQifSwgLyogMTc3ICovCi0JeyAzLAlUUywJc3lzX3J0X3NpZ3F1ZXVlaW5mbywgICAgInJ0X3NpZ3F1ZXVlaW5mbyJ9LCAvKiAxNzggKi8KLQl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwJInJ0X3NpZ3N1c3BlbmQiCX0sIC8qIDE3OSAqLwotCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkNjQiLCBTWVNfcmVhZCB9LCAvKiAxODAgKi8KLQl7IDUsCVRGLAlzeXNfcHdyaXRlLAkJInB3cml0ZTY0IiwgU1lTX3dyaXRlIH0sIC8qIDE4MSAqLwotI2lmZGVmIE02OEsKLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgl9LCAvKiAxODIgKi8KLSNlbHNlCi0JeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTgyICovCi0jZW5kaWYKLQl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCi0JeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCi0JeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODggKi8KLQl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4OSAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIsIFNZU192Zm9yayB9LCAvKiAxOTAgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAvKiAxOTEgKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAyIgkJfSwgLyogMTkyICovCi0JeyAzLAlURiwJc3lzX3RydW5jYXRlNjQsCQkidHJ1bmNhdGU2NCIJfSwgLyogMTkzICovCi0JeyAzLAlURiwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCX0sIC8qIDE5NCAqLwotCXsgMiwJVEYsCXN5c19zdGF0NjQsCQkic3RhdDY0Igl9LCAvKiAxOTUgKi8KLQl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJCSJsc3RhdDY0Igl9LCAvKiAxOTYgKi8KLQl7IDIsCVRGLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0Igl9LCAvKiAxOTcgKi8KLQl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duMzIiCX0sIC8qIDE5OCAqLwotCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQzMiIJfSwgLyogMTk5ICovCi0KLQl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkMzIiCX0sIC8qIDIwMCAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZDMyIgl9LCAvKiAyMDEgKi8KLQl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGVnaWQzMiIJfSwgLyogMjAyICovCi0JeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQzMiIJfSwgLyogMjAzICovCi0JeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQzMiIJfSwgLyogMjA0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzMzIsCSJnZXRncm91cHMzMiIJfSwgLyogMjA1ICovCi0JeyAyLAkwLAlzeXNfc2V0Z3JvdXBzMzIsCSJzZXRncm91cHMzMiIJfSwgLyogMjA2ICovCi0JeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93bjMyIgl9LCAvKiAyMDcgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkMzIiCX0sIC8qIDIwOCAqLwotCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQzMiIJfSwgLyogMjA5ICovCi0JeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZDMyIgl9LCAvKiAyMTAgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkMzIiCX0sIC8qIDIxMSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93bjMyIgl9LCAvKiAyMTIgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkMzIiCX0sIC8qIDIxMyAqLwotCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQzMiIJfSwgLyogMjE0ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQzMiIJfSwgLyogMjE1ICovCi0JeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQzMiIJfSwgLyogMjE2ICovCi0JeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiAyMTcgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkJIm1pbmNvcmUiCX0sIC8qIDIxOCAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgLyogMjE5ICovCi0JeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0Igl9LCAvKiAyMjAgKi8KLQl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bDY0Igl9LCAvKiAyMjEgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJTWVNfMjIyIgl9LCAvKiAyMjIgKi8KLS8qVE9ETyoveyA1LAkwLAlwcmludGFyZ3MsCQkic2VjdXJpdHkiCX0sIC8qIDIyMyAqLwotCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldHRpZCIJfSwgLyogMjI0ICovCi0JeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJfSwgLyogMjI1ICovCi0JeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgl9LCAvKiAyMjYgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgl9LCAvKiAyMjcgKi8KLQl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiAyMjggKi8KLQl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDIyOSAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDIzMCAqLwotCXsgNCwJMCwJc3lzX2ZnZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDIzMSAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiAyMzIgKi8KLQl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDIzMyAqLwotCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCQkiZmxpc3R4YXR0ciIJfSwgLyogMjM0ICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCX0sIC8qIDIzNSAqLwotCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJfSwgLyogMjM2ICovCi0JeyAyLAkwLAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiAyMzcgKi8KLQl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDIzOCAqLwotCXsgNCwJVEYsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDIzOSAqLwotCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJfSwgLyogMjQwICovCi0JeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksCSJzY2hlZF9zZXRhZmZpbml0eSIgfSwvKiAyNDEgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5IiB9LC8qIDI0MiAqLwotCXsgMSwJMCwJc3lzX3NldF90aHJlYWRfYXJlYSwJInNldF90aHJlYWRfYXJlYSIgfSwgLyogMjQzICovCi0JeyAxLAkwLAlzeXNfZ2V0X3RocmVhZF9hcmVhLAkiZ2V0X3RocmVhZF9hcmVhIiB9LCAvKiAyNDQgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogMjQ1ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAyNDYgKi8KLQl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCSJpb19nZXRldmVudHMiCX0sIC8qIDI0NyAqLwotCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDI0OCAqLwotCXsgMywJMCwJc3lzX2lvX2NhbmNlbCwJCSJpb19jYW5jZWwiCX0sIC8qIDI0OSAqLwotCXsgNSwJVEYsCXN5c19mYWR2aXNlNjQsCQkiZmFkdmlzZTY0Igl9LCAvKiAyNTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAyNTEgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIiwgX19OUl9leGl0X2dyb3VwIH0sIC8qIDI1MiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIn0sIC8qIDI1MyAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogMjU0ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogMjU1ICovCi0JeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0Igl9LCAvKiAyNTYgKi8KLQl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLAkicmVtYXBfZmlsZV9wYWdlcyJ9LCAvKiAyNTcgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMjU4ICovCi0JeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAyNTkgKi8KLQl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMjYwICovCi0JeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDI2MSAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDI2MiAqLwotCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMjYzICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDI2NCAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAyNjUgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDI2NiAqLwotCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAyNjcgKi8KLQl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCQkic3RhdGZzNjQiCX0sIC8qIDI2OCAqLwotCXsgMywJVEYsCXN5c19mc3RhdGZzNjQsCQkiZnN0YXRmczY0Igl9LCAvKiAyNjkgKi8KLQl7IDMsCVRTLAlzeXNfdGdraWxsLAkJInRna2lsbCIJfSwgLyogMjcwICovCi0JeyAyLAlURiwJc3lzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDI3MSAqLwotCXsgNiwJVEYsCXN5c19mYWR2aXNlNjRfNjQsCSJmYWR2aXNlNjRfNjQiCX0sIC8qIDI3MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZzZXJ2ZXIiCX0sIC8qIDI3MyAqLwotCXsgNiwJMCwJc3lzX21iaW5kLAkJIm1iaW5kIgkJfSwgLyogMjc0ICovCi0JeyA1LAkwLAlzeXNfZ2V0X21lbXBvbGljeSwJImdldF9tZW1wb2xpY3kiCX0sIC8qIDI3NSAqLwotCXsgMywJMCwJc3lzX3NldF9tZW1wb2xpY3ksCSJzZXRfbWVtcG9saWN5Igl9LCAvKiAyNzYgKi8KLQl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDI3NyAqLwotCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDI3OCAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMjc5ICovCi0JeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIiB9LCAvKiAyODAgKi8KLQl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiAyODEgKi8KLQl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMjgyICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkic3lzX2tleGVjX2xvYWQiIH0sIC8qIDI4MyAqLwotCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIiwgU1lTX3dhaXRpZCB9LCAvKiAyODQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KLQl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KLQotI2lmIFNZU19zb2NrZXRfc3ViY2FsbCAhPSAzMDAKLSAjZXJyb3IgZml4IG1lCi0jZW5kaWYKLQl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAzMDAgKi8KLQl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMzAxICovCi0JeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDMwMiAqLwotCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDMwMyAqLwotCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAzMDQgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMzA1ICovCi0JeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDMwNiAqLwotCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAzMDcgKi8KLQl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAzMDggKi8KLQl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIiwgU1lTX3N1Yl9zZW5kIH0sIC8qIDMwOSAqLwotCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiLCBTWVNfc3ViX3JlY3YgfSwgLyogMzEwICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iLCBTWVNfc3ViX3NlbmR0byB9LCAvKiAzMTEgKi8KLQl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iLCBTWVNfc3ViX3JlY3Zmcm9tIH0sIC8qIDMxMiAqLwotCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMzEzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMzE0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMzE1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMzE2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMzE3ICovCi0KLSNpZiBTWVNfaXBjX3N1YmNhbGwgIT0gMzE4Ci0gI2Vycm9yIGZpeCBtZQotI2VuZGlmCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMxOCAqLwotCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDMxOSAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiAzMjAgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMzIxICovCi0JeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMzIyICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyMyAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjQgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI1ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMyNiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMjcgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzI4ICovCi0JeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMyOSAqLwotCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMzAgKi8KLQl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogMzMxICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMzMiAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzMgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzNSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAzMzYgKi8KLQl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMzM3ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMzOCAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMzOSAqLwotCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDM0MCAqLwotCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiAzNDEgKi8KLQl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzQyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgveDg2XzY0L2dlbnRhYi5wbCBiL3N0cmFjZS9saW51eC94ODZfNjQvZ2VudGFiLnBsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjUxYjQzLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC94ODZfNjQvZ2VudGFiLnBsCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotIyEvdXNyL2Jpbi9wZXJsIC13Ci0jZ2VuZXJhdGUgc3lzY2FsbCB0YWJsZSBmcm9tIGEgdGVtcGxhdGUgZmlsZSAodXN1YWxseSB0aGUgbWFzdGVyIGkzODYgc3lzY2FsbAotI2VudC5oKSBhbmQgdGhlIHg4Nl82NCB1bmlzdGQuaAotJWNvbnYgPSAgKAotCSJleGl0IiA9PiAiX2V4aXQiLAotKTsgCQotCi0la25vd24gPSAoCi0JIm1tYXAiID0+ICJzeXNfbW1hcCIsCi0JInNjaGVkX3lpZWxkIiA9PiAicHJpbnRhcmdzIiwJCi0pOyAJCi0KLSMgb25seSB1c2VkIHdoZW4gdGhlIHRlbXBsYXRlIGZpbGUgaGFzIG5vIGVudHJ5Ci0lYXJncyA9ICgKLQkiYXJjaF9wcmN0bCIgPT4gMiwKLQkidGtpbGwiID0+IDIsCi0JImdldHRpZCIgPT4gMCwKLQkicmVhZGFoZWFkIiA9PiAzLAotCSMgc2hvdWxkIGRlY29kZSBhbGwgdGhlc2U6Ci0JInNldHhhdHRyIiA9PiA1LCAKLQkibHNldHhhdHRyIiA9PiA1LAotCSJmc2V0eGF0dHIiID0+IDUsCi0JImdldHhhdHRyIiA9PiA0LAotCSJsZ2V0eGF0dHIiID0+IDQsCi0JImZnZXR4YXR0ciIgPT4gNCwKLQkibGlzdHhhdHRyIiA9PiAzLAotCSJsbGlzdHhhdHRyIiA9PiAzLAotCSJmbGlzdHhhdHRyIiA9PiAzLAotCSJyZW1vdmV4YXR0ciIgPT4gMiwKLQkibHJlbW92ZXhhdHRyIiA9PiAyLAotCSJmcmVtb3ZleGF0dHIiID0+IDIsCi0JIm1tYXAiID0+IDYsCi0JInNjaGVkX3lpZWxkIiA9PiAwLCAKLSk7IAkKLQotb3BlbihGLCRBUkdWWzBdKSB8fCBkaWUgImNhbm5vdCBvcGVuIHRlbXBsYXRlIGZpbGUgJEFSR1ZbMF1cbiI7IAotCi13aGlsZSAoPEY+KSB7IAotCW5leHQgdW5sZXNzIC97LzsgCi0Jcy9cL1wqLipcKlwvLy87IAotCSgkbmFtZSkgPSAvIihbXiJdKykiLzsKLQljaG9tcDsgCi0JJGNhbGx7JG5hbWV9ID0gJF87IAotfSAKLQotb3BlbihTTCwgIj5zeXNjYWxsbnVtLmgiKSB8fCBkaWUgImNhbm5vdCBjcmVhdGUgc3lzY2FsbG51bS5oXG4iOyAKLQotCi0KLW9wZW4oUywkQVJHVlsxXSkgfHwgZGllICJjYW5ub3Qgb3BlbiBzeXNjYWxsIGZpbGUgJEFSR1ZbMV1cbiI7ICAKLXdoaWxlICg8Uz4pIHsgCi0JJG5hbWUgPSAiIjsgCi0JbmV4dCB1bmxlc3MgICgoJG5hbWUsICRudW0pID0gL2RlZmluZVxzK19fTlJfKFxTKylccysoXGQrKS8pOyAKLQluZXh0IGlmICRuYW1lIGVxICIiOyAKLQotCSRuYW1lID0gJGNvbnZ7JG5hbWV9IGlmIGRlZmluZWQoJGNvbnZ7JG5hbWV9KTsgCi0KLQlpZiAoIWRlZmluZWQoJGNhbGx7JG5hbWV9KSkgeyAKLQkJdW5sZXNzIChkZWZpbmVkKCRhcmdzeyRuYW1lfSkpIHsgCi0JCQlwcmludCBTVERFUlIgInVua25vd24gY2FsbCAkbmFtZSAkbnVtXG4iOyAKLQkJCSRuYSA9IDM7IAotCQl9IGVsc2UgeyAKLQkJCSRuYSA9ICRhcmdzeyRuYW1lfTsgCi0JCX0gCQotCQlpZiAoZGVmaW5lZCgka25vd257JG5hbWV9KSkgeyAKLQkJCSRmdW5jID0gJGtub3dueyRuYW1lfTsgCi0JCX0gZWxzZSB7IAotCQkJJGZ1bmMgPSAicHJpbnRhcmdzIjsgCi0JCX0gCQotCQlwcmludCAiXHR7ICRuYSxcdDAsXHQkZnVuYyxcdFwiJG5hbWVcIiB9LCAvKiAkbnVtICovXG4iOyAKLQl9IGVsc2UgeyAKLQkJcHJpbnQgIiRjYWxseyRuYW1lfSAvKiAkbnVtICovXG4iOyAKLQl9IAotCXByaW50IFNMICIjZGVmaW5lIFNZU18kbmFtZSAkbnVtXG4iCi19IAotCi0KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC94ODZfNjQvc3lzY2FsbGVudC5oIGIvc3RyYWNlL2xpbnV4L3g4Nl82NC9zeXNjYWxsZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZDlkOTYuLjAwMDAwMDAKLS0tIGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9zeXNjYWxsZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAsMCBAQAotCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sICAvKiAwICovCi0JeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAgLyogMSAqLwotCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAgLyogMiAqLwotCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgIC8qIDMgKi8KLQl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgIC8qIDQgKi8KLQl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sICAvKiA1ICovCi0JeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgIC8qIDYgKi8KLQl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAgLyogNyAqLwotCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgIC8qIDggKi8KLQl7IDYsCTAsCXN5c19tbWFwLAkibW1hcCIgfSwgLyogOSAqLwotCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAgLyogMTAgKi8KLQl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAgLyogMTEgKi8KLQl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgIC8qIDEyICovCi0JeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sICAvKiAxMyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sICAvKiAxNCAqLwotCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCX0sICAvKiAxNSAqLwotCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgIC8qIDE2ICovCi0JeyA1LAlURiwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgIC8qIDE3ICovCi0JeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sICAvKiAxOCAqLwotCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgIC8qIDE5ICovCi0JeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgIC8qIDIwICovCi0JeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sICAvKiAyMSAqLwotCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sICAvKiAyMiAqLwotCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sICAvKiAyMyAqLwotCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgIC8qIDI0ICovCi0JeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJfSwgIC8qIDI1ICovCi0JeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAgLyogMjYgKi8KLQl7IDMsCTAsCXN5c19taW5jb3JlLAkJIm1pbmNvcmUiCX0sICAvKiAyNyAqLwotCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgIC8qIDI4ICovCi0JeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sICAvKiAyOSAqLwotCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sICAvKiAzMCAqLwotCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAgLyogMzEgKi8KLQl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgIC8qIDMyICovCi0JeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgIC8qIDMzICovCi0JeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgIC8qIDM0ICovCi0JeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgIC8qIDM1ICovCi0JeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgIC8qIDM2ICovCi0JeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAgLyogMzcgKi8KLQl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAgLyogMzggKi8KLQl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAgLyogMzkgKi8KLQl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sICAvKiA0MCAqLwotCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAgLyogNDEgKi8KLQl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAgLyogNDIgKi8KLQl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgIC8qIDQzICovCi0JeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sICAvKiA0NCAqLwotCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgIC8qIDQ1ICovCi0JeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgIC8qIDQ2ICovCi0JeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgIC8qIDQ3ICovCi0JeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAgLyogNDggKi8KLQl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgIC8qIDQ5ICovCi0JeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sICAvKiA1MCAqLwotCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAgLyogNTEgKi8KLQl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgIC8qIDUyICovCi0JeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgIC8qIDUzICovCi0JeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgIC8qIDU0ICovCi0JeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgIC8qIDU1ICovCi0JeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJfSwgIC8qIDU2ICovCi0JeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sICAvKiA1NyAqLwotCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sICAvKiA1OCAqLwotCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAgLyogNTkgKi8KLQl7IDEsCVRQLAlzeXNfZXhpdCwJCSJfZXhpdCIJCX0sICAvKiA2MCAqLwotCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sICAvKiA2MSAqLwotCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAgLyogNjIgKi8KLQl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sICAvKiA2MyAqLwotCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAgLyogNjQgKi8KLQl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAgLyogNjUgKi8KLQl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgIC8qIDY2ICovCi0JeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgIC8qIDY3ICovCi0JeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sICAvKiA2OCAqLwotCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAgLyogNjkgKi8KLQl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgIC8qIDcwICovCi0JeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sICAvKiA3MSAqLwotCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgIC8qIDcyICovCi0JeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAgLyogNzMgKi8KLQl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sICAvKiA3NCAqLwotCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sICAvKiA3NSAqLwotCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgIC8qIDc2ICovCi0JeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgIC8qIDc3ICovCi0JeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sICAvKiA3OCAqLwotCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAgLyogNzkgKi8KLQl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAgLyogODAgKi8KLQl7IDEsCTAsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAgLyogODEgKi8KLQl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgIC8qIDgyICovCi0JeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgIC8qIDgzICovCi0JeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgIC8qIDg0ICovCi0JeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgIC8qIDg1ICovCi0JeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sICAvKiA4NiAqLwotCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAgLyogODcgKi8KLQl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAgLyogODggKi8KLQl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sICAvKiA4OSAqLwotCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sICAvKiA5MCAqLwotCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sICAvKiA5MSAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sICAvKiA5MiAqLwotCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sICAvKiA5MyAqLwotCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sICAvKiA5NCAqLwotCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgIC8qIDk1ICovCi0JeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAgLyogOTYgKi8KLQl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAgLyogOTcgKi8KLQl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAgLyogOTggKi8KLQl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sICAvKiA5OSAqLwotCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgIC8qIDEwMCAqLwotCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sICAvKiAxMDEgKi8KLQl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAgLyogMTAyICovCi0JeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgIC8qIDEwMyAqLwotCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sICAvKiAxMDQgKi8KLQl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAgLyogMTA1ICovCi0JeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgIC8qIDEwNiAqLwotCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgIC8qIDEwNyAqLwotCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgIC8qIDEwOCAqLwotCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgIC8qIDEwOSAqLwotCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgIC8qIDExMCAqLwotCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgIC8qIDExMSAqLwotCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sICAvKiAxMTIgKi8KLQl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgIC8qIDExMyAqLwotCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAgLyogMTE0ICovCi0JeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgIC8qIDExNSAqLwotCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sICAvKiAxMTYgKi8KLQl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAgLyogMTE3ICovCi0JeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgIC8qIDExOCAqLwotCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sICAvKiAxMTkgKi8KLQl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAgLyogMTIwICovCi0JeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAgLyogMTIxICovCi0JeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sICAvKiAxMjIgKi8KLQl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgIC8qIDEyMyAqLwotCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sICAvKiAxMjQgKi8KLQl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAgLyogMTI1ICovCi0JeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgIC8qIDEyNiAqLwotCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgIC8qIDEyNyAqLwotCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sICAvKiAxMjggKi8KLQl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIgl9LCAgLyogMTI5ICovCi0JeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAgLyogMTMwICovCi0JeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sICAvKiAxMzEgKi8KLQl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAgLyogMTMyICovCi0JeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgIC8qIDEzMyAqLwotCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAgLyogMTM0ICovCi0JeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgIC8qIDEzNSAqLwotCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgIC8qIDEzNiAqLwotCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAgLyogMTM3ICovCi0JeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAgLyogMTM4ICovCi0JeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAgLyogMTM5ICovCi0JeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgIC8qIDE0MCAqLwotCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sICAvKiAxNDEgKi8KLQl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIgl9LCAgLyogMTQyICovCi0JeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSIJfSwgIC8qIDE0MyAqLwotCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciIJfSwgIC8qIDE0NCAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciIJfSwgIC8qIDE0NSAqLwotCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsCSJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4Igl9LCAgLyogMTQ2ICovCi0JeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwJInNjaGVkX2dldF9wcmlvcml0eV9taW4iCX0sICAvKiAxNDcgKi8KLQl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsCSJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwiCX0sICAvKiAxNDggKi8KLQl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sICAvKiAxNDkgKi8KLQl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sICAvKiAxNTAgKi8KLQl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgIC8qIDE1MSAqLwotCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgIC8qIDE1MiAqLwotCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgIC8qIDE1MyAqLwotCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgIC8qIDE1NCAqLwotCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgIC8qIDE1NSAqLwotCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgl9LCAgLyogMTU2ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAgLyogMTU3ICovCi0JeyAyLAlUUCwJc3lzX2FyY2hfcHJjdGwsCQkiYXJjaF9wcmN0bCIJfSwgIC8qIDE1OCAqLwotCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAgLyogMTU5ICovCi0JeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgIC8qIDE2MCAqLwotCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAgLyogMTYxICovCi0JeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgIC8qIDE2MiAqLwotCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAgLyogMTYzICovCi0JeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAgLyogMTY0ICovCi0JeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgIC8qIDE2NSAqLwotCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogMTY2ICovCi0JeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sICAvKiAxNjcgKi8KLQl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sICAvKiAxNjggKi8KLQl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAgLyogMTY5ICovCi0JeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgIC8qIDE3MCAqLwotCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAgLyogMTcxICovCi0JeyAxLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgIC8qIDE3MiAqLwotCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sICAvKiAxNzMgKi8KLQl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgIC8qIDE3NCAqLwotCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sICAvKiAxNzUgKi8KLQl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgIC8qIDE3NiAqLwotCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAgLyogMTc3ICovCi0JeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAgLyogMTc4ICovCi0JeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sICAvKiAxNzkgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAgLyogMTgwICovCi0JeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODEgKi8KLQl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4MiAqLwotCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sICAvKiAxODMgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJ0dXhjYWxsIgl9LCAvKiAxODQgKi8KLQl7IDMsCTAsCXByaW50YXJncywJCSJzZWN1cml0eSIJfSwgLyogMTg1ICovCi0JeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgl9LCAvKiAxODYgKi8KLQl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAxODcgKi8KLQl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDE4OCAqLwotCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDE4OSAqLwotCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDE5MCAqLwotCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMTkxICovCi0JeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogMTkyICovCi0JeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogMTkzICovCi0JeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDE5NCAqLwotCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogMTk1ICovCi0JeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAxOTYgKi8KLQl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJfSwgLyogMTk3ICovCi0JeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiAxOTggKi8KLQl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDE5OSAqLwotCXsgMiwJMCwJc3lzX2tpbGwsCQkidGtpbGwiCQl9LCAvKiAyMDAgKi8KLQl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAgLyogMjAxICovCi0JeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyMDIgKi8KLQl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDIwMyAqLwotCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjA0ICovCi0JeyAxLAkwLAlzeXNfc2V0X3RocmVhZF9hcmVhLAkic2V0X3RocmVhZF9hcmVhIiB9LCAvKiAyMDUgKi8KLQl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogMjA2ICovCi0JeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAyMDcgKi8KLQl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCQkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyMDggKi8KLQl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyMDkgKi8KLQl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyMTAgKi8KLQl7IDEsCTAsCXN5c19nZXRfdGhyZWFkX2FyZWEsCSJnZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDIxMSAqLwotCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIn0sIC8qIDIxMiAqLwotCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogMjEzICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiZXBvbGxfY3RsX29sZCIJfSwgLyogMjE0ICovCi0JeyA0LAkwLAlwcmludGFyZ3MsCQkiZXBvbGxfd2FpdF9vbGQifSwgLyogMjE1ICovCi0JeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMifSwgLyogMjE2ICovCi0JeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0Igl9LCAvKiAyMTcgKi8KLQl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMjE4ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkicmVzdGFydF9zeXNjYWxsIn0sIC8qIDIxOSAqLwotCXsgNSwJVEksCXN5c19zZW10aW1lZG9wLAkJInNlbXRpbWVkb3AiCX0sIC8qIDIyMCAqLwotCXsgNCwJVEYsCXN5c19mYWR2aXNlNjRfNjQsCSJmYWR2aXNlNjQiCX0sIC8qIDIyMSAqLwotCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjIyICovCi0JeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDIyMyAqLwotCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyMjQgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyMjUgKi8KLQl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDIyNiAqLwotCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyMjcgKi8KLQl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjI4ICovCi0JeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyMjkgKi8KLQl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjMwICovCi0JeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJfSwgLyogMjMxICovCi0JeyA1LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0Igl9LCAvKiAyMzIgKi8KLQl7IDUsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgl9LCAvKiAyMzMgKi8KLQl7IDMsCVRTLAlzeXNfdGdraWxsLAkJInRna2lsbCIJfSwgLyogMjM0ICovCi0JeyAyLAlURiwJc3lzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDIzNSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZzZXJ2ZXIiCX0sIC8qIDIzNiAqLwotCXsgNiwJMCwJc3lzX21iaW5kLAkJIm1iaW5kIgkJfSwgLyogMjM3ICovCi0JeyAzLAkwLAlzeXNfc2V0X21lbXBvbGljeSwJInNldF9tZW1wb2xpY3kiCX0sIC8qIDIzOCAqLwotCXsgNSwJMCwJc3lzX2dldF9tZW1wb2xpY3ksCSJnZXRfbWVtcG9saWN5Igl9LCAvKiAyMzkgKi8KLQl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDI0MCAqLwotCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDI0MSAqLwotCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMjQyICovCi0JeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIiB9LCAvKiAyNDMgKi8KLQl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiAyNDQgKi8KLQl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMjQ1ICovCi0JeyA1LAkwLAlwcmludGFyZ3MsCQkia2V4ZWNfbG9hZCIJfSwgLyogMjQ2ICovCi0JeyA1LAlUUCwJc3lzX3dhaXRpZCwJCSJ3YWl0aWQiCX0sIC8qIDI0NyAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgiCX0sIC8qIDI0OCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkiCX0sIC8qIDI0OSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAiCX0sIC8qIDI1MCAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTEiCX0sIC8qIDI1MSAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIiCX0sIC8qIDI1MiAqLwotCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMiCX0sIC8qIDI1MyAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9zeXNjYWxsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3g4Nl82NC9zeXNjYWxsZW50MS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmJmMTQzLi4wMDAwMDAwCi0tLSBhL3N0cmFjZS9saW51eC94ODZfNjQvc3lzY2FsbGVudDEuaAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotLyogT3VyIHNlY29uZCBzZXQgY29tZXMgZnJvbSB0aGUgaTM4NiBmaWxlcy4KLSAgIE9ubHkgYSBjb3VwbGUgb2YgY2FsbHMgd2UgY2Fubm90IHN1cHBvcnQgd2l0aG91dCB0aGUgaTM4NiBoZWFkZXJzLiAgKi8KLQotI2RlZmluZSBzeXNfb2xkc3RhdCBwcmludGFyZ3MKLSNkZWZpbmUgc3lzX29sZGZzdGF0IHByaW50YXJncwotI2RlZmluZSBzeXNfb2xkbHN0YXQgcHJpbnRhcmdzCi0jaW5jbHVkZSAiLi4vc3lzY2FsbGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyZWFtLmMgYi9zdHJlYW0uYwppbmRleCAwMDI5YzNkLi5lYjRlMzk2IDEwMDY0NAotLS0gYS9zdHJlYW0uYworKysgYi9zdHJlYW0uYwpAQCAtMjUsNyArMjUsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogc3RyZWFtLmMsdiAxLjI0IDIwMDUvMDYvMDEgMTk6MjI6MDcgcm9sYW5kIEV4cCAkCisgKgkkSWQkCiAgKi8KIAogI2luY2x1ZGUgImRlZnMuaCIKQEAgLTU1LDkgKzU1LDkgQEAKICNpZm5kZWYgSEFWRV9TVFJPUFRTX0gKICNkZWZpbmUgUlNfSElQUkkgMQogc3RydWN0IHN0cmJ1ZiB7Ci0gICAgICAgIGludCAgICAgbWF4bGVuOyAgICAgICAgICAgICAgICAgLyogbm8uIG9mIGJ5dGVzIGluIGJ1ZmZlciAqLwotICAgICAgICBpbnQgICAgIGxlbjsgICAgICAgICAgICAgICAgICAgIC8qIG5vLiBvZiBieXRlcyByZXR1cm5lZCAqLwotICAgICAgICBjaGFyICAgICpidWY7ICAgICAgICAgICAgICAgICAgIC8qIHBvaW50ZXIgdG8gZGF0YSAqLworCWludCAgICAgbWF4bGVuOyAgICAgICAgICAgICAgICAgLyogbm8uIG9mIGJ5dGVzIGluIGJ1ZmZlciAqLworCWludCAgICAgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogbm8uIG9mIGJ5dGVzIHJldHVybmVkICovCisJY29uc3QgY2hhciAqYnVmOyAgICAgICAgICAgICAgICAvKiBwb2ludGVyIHRvIGRhdGEgKi8KIH07CiAjZGVmaW5lIE1PUkVDVEwgMQogI2RlZmluZSBNT1JFREFUQSAyCkBAIC0xMjksNiArMTI5LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmIGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkgfHwgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoU1ZSNCkKIGludAogc3lzX2dldG1zZyh0Y3ApCiBzdHJ1Y3QgdGNiICp0Y3A7CkBAIC0xNzUsNiArMTc2LDcgQEAKIAl9CiAJcmV0dXJuIFJWQUxfSEVYIHwgUlZBTF9TVFI7CiB9CisjZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCB8fCBTVU5PUzQgfHwgU1ZSNCAqLwogCiAjaWYgZGVmaW5lZCBTWVNfcHV0cG1zZyB8fCBkZWZpbmVkIFNZU19nZXRwbXNnCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcG1zZ2ZsYWdzW10gPSB7CkBAIC0yOTQsNzkgKzI5NiwxODEgQEAKIAl7IDAsCQlOVUxMCQl9LAogfTsKIAotaW50Ci1zeXNfcG9sbCh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitzdGF0aWMgaW50CitkZWNvZGVfcG9sbChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgcHRzKQogewogCXN0cnVjdCBwb2xsZmQgZmRzOwogCXVuc2lnbmVkIG5mZHM7CiAJdW5zaWduZWQgbG9uZyBzaXplLCBzdGFydCwgY3VyLCBlbmQsIGFiYnJldl9lbmQ7CiAJaW50IGZhaWxlZCA9IDA7CiAKLQlpZiAoZW50ZXJpbmcodGNwKSkKLQkJcmV0dXJuIDA7Ci0KLQluZmRzID0gdGNwLT51X2FyZ1sxXTsKLQlzaXplID0gc2l6ZW9mKGZkcykgKiBuZmRzOwotCXN0YXJ0ID0gdGNwLT51X2FyZ1swXTsKLQllbmQgPSBzdGFydCArIHNpemU7Ci0JaWYgKG5mZHMgPT0gMCB8fCBzaXplIC8gc2l6ZW9mKGZkcykgIT0gbmZkcyB8fCBlbmQgPCBzdGFydCkgewotCQl0cHJpbnRmKCIlI2x4LCAlZCwgJWxkIiwKLQkJCXRjcC0+dV9hcmdbMF0sIG5mZHMsIHRjcC0+dV9hcmdbMl0pOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKGFiYnJldih0Y3ApKSB7Ci0JCWFiYnJldl9lbmQgPSBzdGFydCArIG1heF9zdHJsZW4gKiBzaXplb2YoZmRzKTsKLQkJaWYgKGFiYnJldl9lbmQgPCBzdGFydCkKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQluZmRzID0gdGNwLT51X2FyZ1sxXTsKKwkJc2l6ZSA9IHNpemVvZihmZHMpICogbmZkczsKKwkJc3RhcnQgPSB0Y3AtPnVfYXJnWzBdOworCQllbmQgPSBzdGFydCArIHNpemU7CisJCWlmIChuZmRzID09IDAgfHwgc2l6ZSAvIHNpemVvZihmZHMpICE9IG5mZHMgfHwgZW5kIDwgc3RhcnQpIHsKKwkJCXRwcmludGYoIiUjbHgsICVkLCAiLAorCQkJCXRjcC0+dV9hcmdbMF0sIG5mZHMpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJaWYgKGFiYnJldih0Y3ApKSB7CisJCQlhYmJyZXZfZW5kID0gc3RhcnQgKyBtYXhfc3RybGVuICogc2l6ZW9mKGZkcyk7CisJCQlpZiAoYWJicmV2X2VuZCA8IHN0YXJ0KQorCQkJCWFiYnJldl9lbmQgPSBlbmQ7CisJCX0gZWxzZSB7CiAJCQlhYmJyZXZfZW5kID0gZW5kOworCQl9CisJCXRwcmludGYoIlsiKTsKKwkJZm9yIChjdXIgPSBzdGFydDsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mKGZkcykpIHsKKwkJCWlmIChjdXIgPiBzdGFydCkKKwkJCQl0cHJpbnRmKCIsICIpOworCQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7CisJCQkJdHByaW50ZigiLi4uIik7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmVuKHRjcCwgY3VyLCBzaXplb2YgZmRzLCAoY2hhciAqKSAmZmRzKSA8IDApIHsKKwkJCQl0cHJpbnRmKCI/Iik7CisJCQkJZmFpbGVkID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChmZHMuZmQgPCAwKSB7CisJCQkJdHByaW50Zigie2ZkPSVkfSIsIGZkcy5mZCk7CisJCQkJY29udGludWU7CisJCQl9CisJCQl0cHJpbnRmKCJ7ZmQ9Iik7CisJCQlwcmludGZkKHRjcCwgZmRzLmZkKTsKKwkJCXRwcmludGYoIiwgZXZlbnRzPSIpOworCQkJcHJpbnRmbGFncyhwb2xsZmxhZ3MsIGZkcy5ldmVudHMsICJQT0xMPz8/Iik7CisJCQl0cHJpbnRmKCJ9Iik7CisJCX0KKwkJdHByaW50ZigiXSIpOworCQlpZiAoZmFpbGVkKQorCQkJdHByaW50ZigiICUjbHgiLCBzdGFydCk7CisJCXRwcmludGYoIiwgJWQsICIsIG5mZHMpOworCQlyZXR1cm4gMDsKIAl9IGVsc2UgewotCQlhYmJyZXZfZW5kID0gZW5kOworCQlzdGF0aWMgY2hhciBvdXRzdHJbMTAyNF07CisJCWNoYXIgc3RyWzY0XTsKKwkJY29uc3QgY2hhciAqZmxhZ3N0cjsKKwkJdW5zaWduZWQgaW50IGN1bWxlbjsKKworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXJldHVybiAwOworCQlpZiAodGNwLT51X3J2YWwgPT0gMCkgeworCQkJdGNwLT5hdXhzdHIgPSAiVGltZW91dCI7CisJCQlyZXR1cm4gUlZBTF9TVFI7CisJCX0KKworCQluZmRzID0gdGNwLT51X2FyZ1sxXTsKKwkJc2l6ZSA9IHNpemVvZihmZHMpICogbmZkczsKKwkJc3RhcnQgPSB0Y3AtPnVfYXJnWzBdOworCQllbmQgPSBzdGFydCArIHNpemU7CisJCWlmIChuZmRzID09IDAgfHwgc2l6ZSAvIHNpemVvZihmZHMpICE9IG5mZHMgfHwgZW5kIDwgc3RhcnQpCisJCQlyZXR1cm4gMDsKKwkJaWYgKGFiYnJldih0Y3ApKSB7CisJCQlhYmJyZXZfZW5kID0gc3RhcnQgKyBtYXhfc3RybGVuICogc2l6ZW9mKGZkcyk7CisJCQlpZiAoYWJicmV2X2VuZCA8IHN0YXJ0KQorCQkJCWFiYnJldl9lbmQgPSBlbmQ7CisJCX0gZWxzZSB7CisJCQlhYmJyZXZfZW5kID0gZW5kOworCQl9CisKKwkJb3V0c3RyWzBdID0gJ1wwJzsKKwkJY3VtbGVuID0gMDsKKworCQlmb3IgKGN1ciA9IHN0YXJ0OyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YoZmRzKSkgeworCQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mIGZkcywgKGNoYXIgKikgJmZkcykgPCAwKSB7CisJCQkJKytjdW1sZW47CisJCQkJaWYgKGN1bWxlbiA8IHNpemVvZihvdXRzdHIpKQorCQkJCQlzdHJjYXQob3V0c3RyLCAiPyIpOworCQkJCWZhaWxlZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoIWZkcy5yZXZlbnRzKQorCQkJCWNvbnRpbnVlOworCQkJaWYgKCFjdW1sZW4pIHsKKwkJCQkrK2N1bWxlbjsKKwkJCQlzdHJjYXQob3V0c3RyLCAiWyIpOworCQkJfSBlbHNlIHsKKwkJCQljdW1sZW4gKz0gMjsKKwkJCQlpZiAoY3VtbGVuIDwgc2l6ZW9mKG91dHN0cikpCisJCQkJCXN0cmNhdChvdXRzdHIsICIsICIpOworCQkJfQorCQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7CisJCQkJY3VtbGVuICs9IDM7CisJCQkJaWYgKGN1bWxlbiA8IHNpemVvZihvdXRzdHIpKQorCQkJCQlzdHJjYXQob3V0c3RyLCAiLi4uIik7CisJCQkJYnJlYWs7CisJCQl9CisJCQlzcHJpbnRmKHN0ciwgIntmZD0lZCwgcmV2ZW50cz0iLCBmZHMuZmQpOworCQkJZmxhZ3N0cj1zcHJpbnRmbGFncygiIiwgcG9sbGZsYWdzLCBmZHMucmV2ZW50cyk7CisJCQljdW1sZW4gKz0gc3RybGVuKHN0cikgKyBzdHJsZW4oZmxhZ3N0cikgKyAxOworCQkJaWYgKGN1bWxlbiA8IHNpemVvZihvdXRzdHIpKSB7CisJCQkJc3RyY2F0KG91dHN0ciwgc3RyKTsKKwkJCQlzdHJjYXQob3V0c3RyLCBmbGFnc3RyKTsKKwkJCQlzdHJjYXQob3V0c3RyLCAifSIpOworCQkJfQorCQl9CisJCWlmIChmYWlsZWQpCisJCQlyZXR1cm4gMDsKKworCQlpZiAoY3VtbGVuICYmICsrY3VtbGVuIDwgc2l6ZW9mKG91dHN0cikpCisJCQlzdHJjYXQob3V0c3RyLCAiXSIpOworCisJCWlmIChwdHMpIHsKKwkJCWNoYXIgc3RyWzEyOF07CisKKwkJCXNwcmludGYoc3RyLCAiJXNsZWZ0ICIsIGN1bWxlbiA/ICIsICIgOiAiIik7CisJCQlzcHJpbnRfdGltZXNwZWMoc3RyICsgc3RybGVuKHN0ciksIHRjcCwgcHRzKTsKKwkJCWlmICgoY3VtbGVuICs9IHN0cmxlbihzdHIpKSA8IHNpemVvZihvdXRzdHIpKQorCQkJCXN0cmNhdChvdXRzdHIsIHN0cik7CisJCX0KKworCQlpZiAoIW91dHN0clswXSkKKwkJCXJldHVybiAwOworCisJCXRjcC0+YXV4c3RyID0gb3V0c3RyOworCQlyZXR1cm4gUlZBTF9TVFI7CiAJfQotCXRwcmludGYoIlsiKTsKLQlmb3IgKGN1ciA9IHN0YXJ0OyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YoZmRzKSkgewotCQlpZiAoY3VyID4gc3RhcnQpCi0JCQl0cHJpbnRmKCIsICIpOwotCQlpZiAoY3VyID49IGFiYnJldl9lbmQpIHsKLQkJCXRwcmludGYoIi4uLiIpOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mIGZkcywgKGNoYXIgKikgJmZkcykgPCAwKSB7Ci0JCQl0cHJpbnRmKCI/Iik7Ci0JCQlmYWlsZWQgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKGZkcy5mZCA8IDApIHsKLQkJCXRwcmludGYoIntmZD0lZH0iLCBmZHMuZmQpOwotCQkJY29udGludWU7Ci0JCX0KLQkJdHByaW50Zigie2ZkPSVkLCBldmVudHM9IiwgZmRzLmZkKTsKLQkJcHJpbnRmbGFncyhwb2xsZmxhZ3MsIGZkcy5ldmVudHMsICJQT0xMPz8/Iik7Ci0JCWlmICghc3lzZXJyb3IodGNwKSAmJiBmZHMucmV2ZW50cykgewotCQkJdHByaW50ZigiLCByZXZlbnRzPSIpOwotCQkJcHJpbnRmbGFncyhwb2xsZmxhZ3MsIGZkcy5yZXZlbnRzLCAiUE9MTD8/PyIpOwotCQl9Ci0JCXRwcmludGYoIn0iKTsKLQl9Ci0JdHByaW50ZigiXSIpOwotCWlmIChmYWlsZWQpCi0JCXRwcmludGYoIiAlI2x4Iiwgc3RhcnQpOwotCXRwcmludGYoIiwgJWQsICIsIG5mZHMpOwotI2lmZGVmIElORlRJTQotCWlmICh0Y3AtPnVfYXJnWzJdID09IElORlRJTSkKLQkJdHByaW50ZigiSU5GVElNIik7Ci0JZWxzZQotI2VuZGlmCi0JCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbMl0pOwotCXJldHVybiAwOwogfQogCitpbnQKK3N5c19wb2xsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpbnQgcmMgPSBkZWNvZGVfcG9sbCh0Y3AsIDApOworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisjaWZkZWYgSU5GVElNCisJCWlmICh0Y3AtPnVfYXJnWzJdID09IElORlRJTSkKKwkJCXRwcmludGYoIklORlRJTSIpOworCQllbHNlCisjZW5kaWYKKwkJCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gcmM7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfcHBvbGwoc3RydWN0IHRjYiAqdGNwKQoreworCWludCByYyA9IGRlY29kZV9wb2xsKHRjcCwgdGNwLT51X2FyZ1syXSk7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfdGltZXNwZWModGNwLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRfc2lnc2V0KHRjcCwgdGNwLT51X2FyZ1szXSwgMCk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1s0XSk7CisJfQorCXJldHVybiByYzsKK30KKyNlbmRpZgogCiAjZWxzZSAvKiAhSEFWRV9TWVNfUE9MTF9IICovCiBpbnQKIHN5c19wb2xsKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKLSAgICAJcmV0dXJuIDA7CisJcmV0dXJuIDA7CiB9CiAjZW5kaWYKIApAQCAtOTMxLDEwICsxMDM1LDcgQEAKICNlbmRpZiAvKiBUSV9CSU5EICovCiAKIAotc3RhdGljIGludAotaW50ZXJuYWxfc3RyZWFtX2lvY3RsKHRjcCwgYXJnKQotc3RydWN0IHRjYiAqdGNwOwotaW50IGFyZzsKK3N0YXRpYyBpbnQgaW50ZXJuYWxfc3RyZWFtX2lvY3RsKHN0cnVjdCB0Y2IgKnRjcCwgaW50IGFyZykKIHsKIAlzdHJ1Y3Qgc3RyaW9jdGwgc2k7CiAJc3RydWN0IGlvY3RsZW50ICppb3A7CkBAIC0xMDQ5LDkgKzExNTAsNiBAQAogCWNhc2UgU0lfR0VUVURBVEE6CiAJCWlmIChlbnRlcmluZyh0Y3ApKQogCQkJYnJlYWs7Ci0jaWYgMAotCQl0cHJpbnRmKCJzdHJ1Y3Qgc2lfdWRhdGEgIik7Ci0jZW5kaWYKIAkJaWYgKHVtb3ZlKHRjcCwgKGludCkgc2kuaWNfZHAsICZ1ZGF0YSkgPCAwKQogCQkJdHByaW50Zigiey4uLn0iKTsKIAkJZWxzZSB7CkBAIC0xMDYyLDkgKzExNjAsNiBAQAogCQkJdHByaW50Zigic2VydnR5cGU9JWQsIHNvX3N0YXRlPSVkLCAiLAogCQkJCXVkYXRhLnNlcnZ0eXBlLCB1ZGF0YS5zb19zdGF0ZSk7CiAJCQl0cHJpbnRmKCJzb19vcHRpb25zPSVkIiwgdWRhdGEuc29fb3B0aW9ucyk7Ci0jaWYgMAotCQkJdHByaW50ZigiLCB0c2R1c2l6ZT0lZCIsIHVkYXRhLnRzZHVzaXplKTsKLSNlbmRpZgogCQkJdHByaW50ZigifSIpOwogCQl9CiAJCWJyZWFrOwpAQCAtMTA3NSw3ICsxMTcwLDcgQEAKIAl9CiAJaWYgKGV4aXRpbmcodGNwKSkgewogCQl0cHJpbnRmKCJ9Iik7Ci0JCWlmICh0aW1vZCAmJiB0Y3AtPnVfcnZhbCkgeworCQlpZiAodGltb2QgJiYgdGNwLT51X3J2YWwgJiYgIXN5c2Vycm9yKHRjcCkpIHsKIAkJCXRjcC0+YXV4c3RyID0geGxvb2t1cCAodGxpX2Vycm9ycywgdGNwLT51X3J2YWwpOwogCQkJcmV0dXJuIFJWQUxfU1RSICsgMTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3lzY2FsbC5jIGIvc3lzY2FsbC5jCmluZGV4IGZhOWM0NTQuLjM0YWYyMTcgMTAwNjQ0Ci0tLSBhL3N5c2NhbGwuYworKysgYi9zeXNjYWxsLmMKQEAgLTMwLDcgKzMwLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IHN5c2NhbGwuYyx2IDEuNzkgMjAwNS8wNi8wOCAyMDo0NToyOCByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtNDQsMTggKzQ0LDggQEAKICNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgogI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogCi0jaWYgSEFWRV9BU01fUkVHX0gKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLSMgIGRlZmluZSBmcHEga2VybmVsX2ZwcQotIyAgZGVmaW5lIGZxIGtlcm5lbF9mcQotIyAgZGVmaW5lIGZwdSBrZXJuZWxfZnB1Ci0jZW5kaWYKLSNpbmNsdWRlIDxhc20vcmVnLmg+Ci0jaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0jICB1bmRlZiBmcHEKLSMgIHVuZGVmIGZxCi0jICB1bmRlZiBmcHUKLSNlbmRpZgorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2luY2x1ZGUgInN5c2NhbGwtYW5kcm9pZC5oIgogI2VuZGlmCiAKICNpZmRlZiBIQVZFX1NZU19SRUdfSApAQCAtNzcsNyArNjcsNiBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkIChMSU5VWCkgJiYgZGVmaW5lZCAoU1BBUkM2NCkKLSMgZGVmaW5lIHJfcGMgcl90cGMKICMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKICMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKICMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKQEAgLTExNywyNiArMTA2LDI5IEBACiAjZW5kaWYKICNlbmRpZiAvKiBMSU5VWCAqLwogCi0jaW5jbHVkZSAic3lzY2FsbC1hbmRyb2lkLmgiCiAjaW5jbHVkZSAic3lzY2FsbC5oIgogCiAvKiBEZWZpbmUgdGhlc2Ugc2hvcnRoYW5kIG5vdGF0aW9ucyB0byBzaW1wbGlmeSB0aGUgc3lzY2FsbGVudCBmaWxlcy4gKi8KKyNkZWZpbmUgVEQgVFJBQ0VfREVTQwogI2RlZmluZSBURiBUUkFDRV9GSUxFCiAjZGVmaW5lIFRJIFRSQUNFX0lQQwogI2RlZmluZSBUTiBUUkFDRV9ORVRXT1JLCiAjZGVmaW5lIFRQIFRSQUNFX1BST0NFU1MKICNkZWZpbmUgVFMgVFJBQ0VfU0lHTkFMCisjZGVmaW5lIE5GIFNZU0NBTExfTkVWRVJfRkFJTFMKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNlbnQgc3lzZW50MFtdID0gewogI2luY2x1ZGUgInN5c2NhbGxlbnQuaCIKIH07CiBzdGF0aWMgY29uc3QgaW50IG5zeXNjYWxsczAgPSBzaXplb2Ygc3lzZW50MCAvIHNpemVvZiBzeXNlbnQwWzBdOworaW50IHF1YWxfZmxhZ3MwW01BWF9RVUFMU107CiAKICNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCiBzdGF0aWMgY29uc3Qgc3RydWN0IHN5c2VudCBzeXNlbnQxW10gPSB7CiAjaW5jbHVkZSAic3lzY2FsbGVudDEuaCIKIH07CiBzdGF0aWMgY29uc3QgaW50IG5zeXNjYWxsczEgPSBzaXplb2Ygc3lzZW50MSAvIHNpemVvZiBzeXNlbnQxWzBdOworaW50IHF1YWxfZmxhZ3MxW01BWF9RVUFMU107CiAjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLwogCiAjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMwpAQCAtMTQ0LDE3ICsxMzYsMjEgQEAKICNpbmNsdWRlICJzeXNjYWxsZW50Mi5oIgogfTsKIHN0YXRpYyBjb25zdCBpbnQgbnN5c2NhbGxzMiA9IHNpemVvZiBzeXNlbnQyIC8gc2l6ZW9mIHN5c2VudDJbMF07CitpbnQgcXVhbF9mbGFnczJbTUFYX1FVQUxTXTsKICNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCiAKIGNvbnN0IHN0cnVjdCBzeXNlbnQgKnN5c2VudDsKK2ludCAqcXVhbF9mbGFnczsKIGludCBuc3lzY2FsbHM7CiAKIC8qIE5vdyB1bmRlZiB0aGVtIHNpbmNlIHNob3J0IGRlZmluZXMgY2F1c2Ugd2lja2VkIG5hbWVzcGFjZSBwb2xsdXRpb24uICovCisjdW5kZWYgVEQKICN1bmRlZiBURgogI3VuZGVmIFRJCiAjdW5kZWYgVE4KICN1bmRlZiBUUAogI3VuZGVmIFRTCisjdW5kZWYgTkYKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGVycm5vZW50MFtdID0gewogI2luY2x1ZGUgImVycm5vZW50LmgiCkBAIC0xODAsOSArMTc2LDIxIEBACiAKIGludCBjdXJyZW50X3BlcnNvbmFsaXR5OwogCisjaWZuZGVmIFBFUlNPTkFMSVRZMF9XT1JEU0laRQorIyBkZWZpbmUgUEVSU09OQUxJVFkwX1dPUkRTSVpFIHNpemVvZihsb25nKQorI2VuZGlmCitjb25zdCBpbnQgcGVyc29uYWxpdHlfd29yZHNpemVbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVNdID0geworCVBFUlNPTkFMSVRZMF9XT1JEU0laRSwKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwlQRVJTT05BTElUWTFfV09SRFNJWkUsCisjZW5kaWYKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDIKKwlQRVJTT05BTElUWTJfV09SRFNJWkUsCisjZW5kaWYKK307OworCiBpbnQKLXNldF9wZXJzb25hbGl0eShwZXJzb25hbGl0eSkKLWludCBwZXJzb25hbGl0eTsKK3NldF9wZXJzb25hbGl0eShpbnQgcGVyc29uYWxpdHkpCiB7CiAJc3dpdGNoIChwZXJzb25hbGl0eSkgewogCWNhc2UgMDoKQEAgLTE5NCw2ICsyMDIsNyBAQAogCQluaW9jdGxlbnRzID0gbmlvY3RsZW50czA7CiAJCXNpZ25hbGVudCA9IHNpZ25hbGVudDA7CiAJCW5zaWduYWxzID0gbnNpZ25hbHMwOworCQlxdWFsX2ZsYWdzID0gcXVhbF9mbGFnczA7CiAJCWJyZWFrOwogCiAjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgpAQCAtMjA2LDYgKzIxNSw3IEBACiAJCW5pb2N0bGVudHMgPSBuaW9jdGxlbnRzMTsKIAkJc2lnbmFsZW50ID0gc2lnbmFsZW50MTsKIAkJbnNpZ25hbHMgPSBuc2lnbmFsczE7CisJCXF1YWxfZmxhZ3MgPSBxdWFsX2ZsYWdzMTsKIAkJYnJlYWs7CiAjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLwogCkBAIC0yMTksNiArMjI5LDcgQEAKIAkJbmlvY3RsZW50cyA9IG5pb2N0bGVudHMyOwogCQlzaWduYWxlbnQgPSBzaWduYWxlbnQyOwogCQluc2lnbmFscyA9IG5zaWduYWxzMjsKKwkJcXVhbF9mbGFncyA9IHF1YWxfZmxhZ3MyOwogCQlicmVhazsKICNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCiAKQEAgLTIzMCwyNSArMjQxLDE0IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBxdWFsX2ZsYWdzW01BWF9RVUFMU107Ci0KLQotc3RydWN0IGNhbGxfY291bnRzIHsKLQlzdHJ1Y3QgdGltZXZhbCB0aW1lOwotCWludCBjYWxscywgZXJyb3JzOwotfTsKLQotc3RhdGljIHN0cnVjdCBjYWxsX2NvdW50cyAqY291bnRzOwotCi1zdGF0aWMgc3RydWN0IHRpbWV2YWwgc2hvcnRlc3QgPSB7IDEwMDAwMDAsIDAgfTsKIAogc3RhdGljIGludCBxdWFsX3N5c2NhbGwoKSwgcXVhbF9zaWduYWwoKSwgcXVhbF9mYXVsdCgpLCBxdWFsX2Rlc2MoKTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgewogCWludCBiaXRmbGFnOwotCWNoYXIgKm9wdGlvbl9uYW1lOwotCWludCAoKnF1YWxpZnkpKCk7Ci0JY2hhciAqYXJndW1lbnRfbmFtZTsKKwljb25zdCBjaGFyICpvcHRpb25fbmFtZTsKKwlpbnQgKCpxdWFsaWZ5KShjb25zdCBjaGFyICosIGludCwgaW50KTsKKwljb25zdCBjaGFyICphcmd1bWVudF9uYW1lOwogfSBxdWFsX29wdGlvbnNbXSA9IHsKIAl7IFFVQUxfVFJBQ0UsCSJ0cmFjZSIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAogCXsgUVVBTF9UUkFDRSwJInQiLAkJcXVhbF9zeXNjYWxsLAkic3lzdGVtIGNhbGwiCX0sCkBAIC0yNzQsOTUgKzI3NCwxMjAgQEAKIH07CiAKIHN0YXRpYyB2b2lkCi1xdWFsaWZ5X29uZShuLCBvcHQsIG5vdCkKLQlpbnQgbjsKLQljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7Ci0JaW50IG5vdDsKK3F1YWxpZnlfb25lKGludCBuLCBpbnQgYml0ZmxhZywgaW50IG5vdCwgaW50IHBlcnMpCiB7Ci0JaWYgKG5vdCkKLQkJcXVhbF9mbGFnc1tuXSAmPSB+b3B0LT5iaXRmbGFnOwotCWVsc2UKLQkJcXVhbF9mbGFnc1tuXSB8PSBvcHQtPmJpdGZsYWc7CisJaWYgKHBlcnMgPT0gMCB8fCBwZXJzIDwgMCkgeworCQlpZiAobm90KQorCQkJcXVhbF9mbGFnczBbbl0gJj0gfmJpdGZsYWc7CisJCWVsc2UKKwkJCXF1YWxfZmxhZ3MwW25dIHw9IGJpdGZsYWc7CisJfQorCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgorCWlmIChwZXJzID09IDEgfHwgcGVycyA8IDApIHsKKwkJaWYgKG5vdCkKKwkJCXF1YWxfZmxhZ3MxW25dICY9IH5iaXRmbGFnOworCQllbHNlCisJCQlxdWFsX2ZsYWdzMVtuXSB8PSBiaXRmbGFnOworCX0KKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyICovCisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzCisJaWYgKHBlcnMgPT0gMiB8fCBwZXJzIDwgMCkgeworCQlpZiAobm90KQorCQkJcXVhbF9mbGFnczJbbl0gJj0gfmJpdGZsYWc7CisJCWVsc2UKKwkJCXF1YWxfZmxhZ3MyW25dIHw9IGJpdGZsYWc7CisJfQorI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMgKi8KIH0KIAogc3RhdGljIGludAotcXVhbF9zeXNjYWxsKHMsIG9wdCwgbm90KQotCWNoYXIgKnM7Ci0JY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyAqb3B0OwotCWludCBub3Q7CitxdWFsX3N5c2NhbGwoY29uc3QgY2hhciAqcywgaW50IGJpdGZsYWcsIGludCBub3QpCiB7CiAJaW50IGk7CiAJaW50IHJjID0gLTE7CiAKLQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyBpKyspIHsKLQkJaWYgKHN0cmNtcChzLCBzeXNlbnRbaV0uc3lzX25hbWUpID09IDApIHsKLQkJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90KTsKKwlpZiAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikqcykpIHsKKwkJaW50IGkgPSBhdG9pKHMpOworCQlpZiAoaSA8IDAgfHwgaSA+PSBNQVhfUVVBTFMpCisJCQlyZXR1cm4gLTE7CisJCXF1YWxpZnlfb25lKGksIGJpdGZsYWcsIG5vdCwgLTEpOworCQlyZXR1cm4gMDsKKwl9CisJZm9yIChpID0gMDsgaSA8IG5zeXNjYWxsczA7IGkrKykKKwkJaWYgKHN0cmNtcChzLCBzeXNlbnQwW2ldLnN5c19uYW1lKSA9PSAwKSB7CisJCQlxdWFsaWZ5X29uZShpLCBiaXRmbGFnLCBub3QsIDApOwogCQkJcmMgPSAwOwogCQl9Ci0JfQorCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgorCWZvciAoaSA9IDA7IGkgPCBuc3lzY2FsbHMxOyBpKyspCisJCWlmIChzdHJjbXAocywgc3lzZW50MVtpXS5zeXNfbmFtZSkgPT0gMCkgeworCQkJcXVhbGlmeV9vbmUoaSwgYml0ZmxhZywgbm90LCAxKTsKKwkJCXJjID0gMDsKKwkJfQorI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKKwlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzMjsgaSsrKQorCQlpZiAoc3RyY21wKHMsIHN5c2VudDJbaV0uc3lzX25hbWUpID09IDApIHsKKwkJCXF1YWxpZnlfb25lKGksIGJpdGZsYWcsIG5vdCwgMik7CisJCQlyYyA9IDA7CisJCX0KKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCisKIAlyZXR1cm4gcmM7CiB9CiAKIHN0YXRpYyBpbnQKLXF1YWxfc2lnbmFsKHMsIG9wdCwgbm90KQotCWNoYXIgKnM7Ci0JY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyAqb3B0OwotCWludCBub3Q7CitxdWFsX3NpZ25hbChjb25zdCBjaGFyICpzLCBpbnQgYml0ZmxhZywgaW50IG5vdCkKIHsKIAlpbnQgaTsKIAljaGFyIGJ1ZlszMl07CiAKLSAgCWlmIChzICYmICpzICYmIGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKnMpKSB7Ci0gCQlpbnQgc2lnbm8gPSBhdG9pKHMpOwotIAkJaWYgKHNpZ25vIDwgMCB8fCBzaWdubyA+PSBNQVhfUVVBTFMpCi0gCQkJcmV0dXJuIC0xOwotIAkJcXVhbGlmeV9vbmUoc2lnbm8sIG9wdCwgbm90KTsKLSAJCXJldHVybiAwOworCWlmIChpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSpzKSkgeworCQlpbnQgc2lnbm8gPSBhdG9pKHMpOworCQlpZiAoc2lnbm8gPCAwIHx8IHNpZ25vID49IE1BWF9RVUFMUykKKwkJCXJldHVybiAtMTsKKwkJcXVhbGlmeV9vbmUoc2lnbm8sIGJpdGZsYWcsIG5vdCwgLTEpOworCQlyZXR1cm4gMDsKIAl9CiAJaWYgKHN0cmxlbihzKSA+PSBzaXplb2YgYnVmKQogCQlyZXR1cm4gLTE7CiAJc3RyY3B5KGJ1Ziwgcyk7CiAJcyA9IGJ1ZjsKLQlmb3IgKGkgPSAwOyBzW2ldOyBpKyspCi0JCXNbaV0gPSB0b3VwcGVyKCh1bnNpZ25lZCBjaGFyKShzW2ldKSk7Ci0JaWYgKHN0cm5jbXAocywgIlNJRyIsIDMpID09IDApCisJaWYgKHN0cm5jYXNlY21wKHMsICJTSUciLCAzKSA9PSAwKQogCQlzICs9IDM7CiAJZm9yIChpID0gMDsgaSA8PSBOU0lHOyBpKyspCi0JCWlmIChzdHJjbXAocywgc2lnbmFtZShpKSArIDMpID09IDApIHsKLQkJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90KTsKKwkJaWYgKHN0cmNhc2VjbXAocywgc2lnbmFtZShpKSArIDMpID09IDApIHsKKwkJCXF1YWxpZnlfb25lKGksIGJpdGZsYWcsIG5vdCwgLTEpOwogCQkJcmV0dXJuIDA7CiAJCX0KIAlyZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBpbnQKLXF1YWxfZmF1bHQocywgb3B0LCBub3QpCi0JY2hhciAqczsKLQljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7Ci0JaW50IG5vdDsKK3F1YWxfZmF1bHQoY29uc3QgY2hhciAqcywgaW50IGJpdGZsYWcsIGludCBub3QpCiB7CiAJcmV0dXJuIC0xOwogfQogCiBzdGF0aWMgaW50Ci1xdWFsX2Rlc2Mocywgb3B0LCBub3QpCi0JY2hhciAqczsKLQljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7Ci0JaW50IG5vdDsKK3F1YWxfZGVzYyhjb25zdCBjaGFyICpzLCBpbnQgYml0ZmxhZywgaW50IG5vdCkKIHsKLQlpZiAocyAmJiAqcyAmJiBpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSpzKSkgeworCWlmIChpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSpzKSkgewogCQlpbnQgZGVzYyA9IGF0b2kocyk7CiAJCWlmIChkZXNjIDwgMCB8fCBkZXNjID49IE1BWF9RVUFMUykKIAkJCXJldHVybiAtMTsKLQkJcXVhbGlmeV9vbmUoZGVzYywgb3B0LCBub3QpOworCQlxdWFsaWZ5X29uZShkZXNjLCBiaXRmbGFnLCBub3QsIC0xKTsKIAkJcmV0dXJuIDA7CiAJfQogCXJldHVybiAtMTsKIH0KIAogc3RhdGljIGludAotbG9va3VwX2NsYXNzKHMpCi0JY2hhciAqczsKK2xvb2t1cF9jbGFzcyhjb25zdCBjaGFyICpzKQogewogCWlmIChzdHJjbXAocywgImZpbGUiKSA9PSAwKQogCQlyZXR1cm4gVFJBQ0VfRklMRTsKQEAgLTM3NCwxNiArMzk5LDE4IEBACiAJCXJldHVybiBUUkFDRV9QUk9DRVNTOwogCWlmIChzdHJjbXAocywgInNpZ25hbCIpID09IDApCiAJCXJldHVybiBUUkFDRV9TSUdOQUw7CisJaWYgKHN0cmNtcChzLCAiZGVzYyIpID09IDApCisJCXJldHVybiBUUkFDRV9ERVNDOwogCXJldHVybiAtMTsKIH0KIAogdm9pZAotcXVhbGlmeShzKQotY2hhciAqczsKK3F1YWxpZnkoY29uc3QgY2hhciAqcykKIHsKIAljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7CiAJaW50IG5vdDsKLQljaGFyICpwOworCWNoYXIgKmNvcHk7CisJY29uc3QgY2hhciAqcDsKIAlpbnQgaSwgbjsKIAogCW9wdCA9ICZxdWFsX29wdGlvbnNbMF07CkBAIC00MDYsMTAyICs0MzMsNzkgQEAKIAl9CiAJaWYgKHN0cmNtcChzLCAiYWxsIikgPT0gMCkgewogCQlmb3IgKGkgPSAwOyBpIDwgTUFYX1FVQUxTOyBpKyspIHsKLQkJCWlmIChub3QpCi0JCQkJcXVhbF9mbGFnc1tpXSAmPSB+b3B0LT5iaXRmbGFnOwotCQkJZWxzZQotCQkJCXF1YWxfZmxhZ3NbaV0gfD0gb3B0LT5iaXRmbGFnOworCQkJcXVhbGlmeV9vbmUoaSwgb3B0LT5iaXRmbGFnLCBub3QsIC0xKTsKIAkJfQogCQlyZXR1cm47CiAJfQogCWZvciAoaSA9IDA7IGkgPCBNQVhfUVVBTFM7IGkrKykgewotCQlpZiAobm90KQotCQkJcXVhbF9mbGFnc1tpXSB8PSBvcHQtPmJpdGZsYWc7Ci0JCWVsc2UKLQkJCXF1YWxfZmxhZ3NbaV0gJj0gfm9wdC0+Yml0ZmxhZzsKKwkJcXVhbGlmeV9vbmUoaSwgb3B0LT5iaXRmbGFnLCAhbm90LCAtMSk7CiAJfQotCWZvciAocCA9IHN0cnRvayhzLCAiLCIpOyBwOyBwID0gc3RydG9rKE5VTEwsICIsIikpIHsKKwlpZiAoIShjb3B5ID0gc3RyZHVwKHMpKSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCQlleGl0KDEpOworCX0KKwlmb3IgKHAgPSBzdHJ0b2soY29weSwgIiwiKTsgcDsgcCA9IHN0cnRvayhOVUxMLCAiLCIpKSB7CiAJCWlmIChvcHQtPmJpdGZsYWcgPT0gUVVBTF9UUkFDRSAmJiAobiA9IGxvb2t1cF9jbGFzcyhwKSkgPiAwKSB7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgTUFYX1FVQUxTOyBpKyspIHsKLQkJCQlpZiAoc3lzZW50W2ldLnN5c19mbGFncyAmIG4pIHsKLQkJCQkJaWYgKG5vdCkKLQkJCQkJCXF1YWxfZmxhZ3NbaV0gJj0gfm9wdC0+Yml0ZmxhZzsKLQkJCQkJZWxzZQotCQkJCQkJcXVhbF9mbGFnc1tpXSB8PSBvcHQtPmJpdGZsYWc7Ci0JCQkJfQotCQkJfQorCQkJZm9yIChpID0gMDsgaSA8IG5zeXNjYWxsczA7IGkrKykKKwkJCQlpZiAoc3lzZW50MFtpXS5zeXNfZmxhZ3MgJiBuKQorCQkJCQlxdWFsaWZ5X29uZShpLCBvcHQtPmJpdGZsYWcsIG5vdCwgMCk7CisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCisJCQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzMTsgaSsrKQorCQkJCWlmIChzeXNlbnQxW2ldLnN5c19mbGFncyAmIG4pCisJCQkJCXF1YWxpZnlfb25lKGksIG9wdC0+Yml0ZmxhZywgbm90LCAxKTsKKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyICovCisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzCisJCQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzMjsgaSsrKQorCQkJCWlmIChzeXNlbnQyW2ldLnN5c19mbGFncyAmIG4pCisJCQkJCXF1YWxpZnlfb25lKGksIG9wdC0+Yml0ZmxhZywgbm90LCAyKTsKKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCisKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCWlmIChvcHQtPnF1YWxpZnkocCwgb3B0LCBub3QpKSB7CisJCWlmIChvcHQtPnF1YWxpZnkocCwgb3B0LT5iaXRmbGFnLCBub3QpKSB7CiAJCQlmcHJpbnRmKHN0ZGVyciwgInN0cmFjZTogaW52YWxpZCAlcyBgJXMnXG4iLAogCQkJCW9wdC0+YXJndW1lbnRfbmFtZSwgcCk7CiAJCQlleGl0KDEpOwogCQl9CiAJfQorCWZyZWUoY29weSk7CiAJcmV0dXJuOwogfQogCiBzdGF0aWMgdm9pZAotZHVtcGlvKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2R1bXBpbyhzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaWYgKHN5c2Vycm9yKHRjcCkpCiAJCXJldHVybjsKIAlpZiAodGNwLT51X2FyZ1swXSA8IDAgfHwgdGNwLT51X2FyZ1swXSA+PSBNQVhfUVVBTFMpCiAJCXJldHVybjsKLQlzd2l0Y2ggKGtub3duX3Njbm8odGNwKSkgewotCWNhc2UgU1lTX3JlYWQ6Ci0jaWZkZWYgU1lTX3ByZWFkNjQKLQljYXNlIFNZU19wcmVhZDY0OgotI2VuZGlmCi0jaWYgZGVmaW5lZCBTWVNfcHJlYWQgJiYgU1lTX3ByZWFkNjQgIT0gU1lTX3ByZWFkCi0JY2FzZSBTWVNfcHJlYWQ6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfcmVjdgotCWNhc2UgU1lTX3JlY3Y6Ci0jZWxpZiBkZWZpbmVkIFNZU19zdWJfcmVjdgotCWNhc2UgU1lTX3N1Yl9yZWN2OgotI2VuZGlmCi0jaWZkZWYgU1lTX3JlY3Zmcm9tCi0JY2FzZSBTWVNfcmVjdmZyb206Ci0jZWxpZiBkZWZpbmVkIFNZU19zdWJfcmVjdmZyb20KLQljYXNlIFNZU19zdWJfcmVjdmZyb206Ci0jZW5kaWYKLQkJaWYgKHF1YWxfZmxhZ3NbdGNwLT51X2FyZ1swXV0gJiBRVUFMX1JFQUQpCisJaWYgKHRjcC0+c2NubyA8IDAgfHwgdGNwLT5zY25vID49IG5zeXNjYWxscykKKwkJcmV0dXJuOworCWlmIChzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyA9PSBwcmludGFyZ3MpCisJCXJldHVybjsKKwlpZiAocXVhbF9mbGFnc1t0Y3AtPnVfYXJnWzBdXSAmIFFVQUxfUkVBRCkgeworCQlpZiAoc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMgPT0gc3lzX3JlYWQgfHwKKwkJICAgIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jID09IHN5c19wcmVhZCB8fAorCQkgICAgc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMgPT0gc3lzX3ByZWFkNjQgfHwKKwkJICAgIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jID09IHN5c19yZWN2IHx8CisJCSAgICBzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyA9PSBzeXNfcmVjdmZyb20pCiAJCQlkdW1wc3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X3J2YWwpOwotCQlicmVhazsKLQljYXNlIFNZU193cml0ZToKLSNpZmRlZiBTWVNfcHdyaXRlNjQKLQljYXNlIFNZU19wd3JpdGU2NDoKLSNlbmRpZgotI2lmIGRlZmluZWQgU1lTX3B3cml0ZSAmJiBTWVNfcHdyaXRlNjQgIT0gU1lTX3B3cml0ZQotCWNhc2UgU1lTX3B3cml0ZToKLSNlbmRpZgotI2lmZGVmIFNZU19zZW5kCi0JY2FzZSBTWVNfc2VuZDoKLSNlbGlmIGRlZmluZWQgU1lTX3N1Yl9zZW5kCi0JY2FzZSBTWVNfc3ViX3NlbmQ6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfc2VuZHRvCi0JY2FzZSBTWVNfc2VuZHRvOgotI2VsaWYgZGVmaW5lZCBTWVNfc3ViX3NlbmR0bwotCWNhc2UgU1lTX3N1Yl9zZW5kdG86Ci0jZW5kaWYKLQkJaWYgKHF1YWxfZmxhZ3NbdGNwLT51X2FyZ1swXV0gJiBRVUFMX1dSSVRFKQorCQllbHNlIGlmIChzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyA9PSBzeXNfcmVhZHYpCisJCQlkdW1waW92KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7CisJCXJldHVybjsKKwl9CisJaWYgKHF1YWxfZmxhZ3NbdGNwLT51X2FyZ1swXV0gJiBRVUFMX1dSSVRFKSB7CisJCWlmIChzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyA9PSBzeXNfd3JpdGUgfHwKKwkJICAgIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jID09IHN5c19wd3JpdGUgfHwKKwkJICAgIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jID09IHN5c19wd3JpdGU2NCB8fAorCQkgICAgc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMgPT0gc3lzX3NlbmQgfHwKKwkJICAgIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jID09IHN5c19zZW5kdG8pCiAJCQlkdW1wc3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7Ci0JCWJyZWFrOwotI2lmZGVmIFNZU19yZWFkdgotICAgICAgICBjYXNlIFNZU19yZWFkdjoKLSAgICAgICAgICAgICAgICBpZiAocXVhbF9mbGFnc1t0Y3AtPnVfYXJnWzBdXSAmIFFVQUxfUkVBRCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGR1bXBpb3YodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmZGVmIFNZU193cml0ZXYKLSAgICAgICAgY2FzZSBTWVNfd3JpdGV2OgotCi0gICAgICAgICAgICAgICAgaWYgKHF1YWxfZmxhZ3NbdGNwLT51X2FyZ1swXV0gJiBRVUFMX1dSSVRFKQotICAgICAgICAgICAgICAgICAgICAgICAgZHVtcGlvdih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbMV0pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCisJCWVsc2UgaWYgKHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jID09IHN5c193cml0ZXYpCisJCQlkdW1waW92KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7CisJCXJldHVybjsKIAl9CiB9CiAKQEAgLTUyNyw1MSArNTMxLDcgQEAKIH07CiAjZW5kaWYgLyogRlJFRUJTRCAqLwogCi0jaWYgIShkZWZpbmVkKExJTlVYKSAmJiAoIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoTUlQUykgKSkKLQotc3RhdGljIGNvbnN0IGludCBzb2NrZXRfbWFwIFtdID0gewotCSAgICAgICAvKiBTWVNfU09DS0VUICAgICAgKi8gOTcsCi0JICAgICAgIC8qIFNZU19CSU5EICAgICAgICAqLyAxMDQsCi0JICAgICAgIC8qIFNZU19DT05ORUNUICAgICAqLyA5OCwKLQkgICAgICAgLyogU1lTX0xJU1RFTiAgICAgICovIDEwNiwKLQkgICAgICAgLyogU1lTX0FDQ0VQVCAgICAgICovIDk5LAotCSAgICAgICAvKiBTWVNfR0VUU09DS05BTUUgKi8gMTUwLAotCSAgICAgICAvKiBTWVNfR0VUUEVFUk5BTUUgKi8gMTQxLAotCSAgICAgICAvKiBTWVNfU09DS0VUUEFJUiAgKi8gMTM1LAotCSAgICAgICAvKiBTWVNfU0VORCAgICAgICAgKi8gMTAxLAotCSAgICAgICAvKiBTWVNfUkVDViAgICAgICAgKi8gMTAyLAotCSAgICAgICAvKiBTWVNfU0VORFRPICAgICAgKi8gMTMzLAotCSAgICAgICAvKiBTWVNfUkVDVkZST00gICAgKi8gMTI1LAotCSAgICAgICAvKiBTWVNfU0hVVERPV04gICAgKi8gMTM0LAotCSAgICAgICAvKiBTWVNfU0VUU09DS09QVCAgKi8gMTA1LAotCSAgICAgICAvKiBTWVNfR0VUU09DS09QVCAgKi8gMTE4LAotCSAgICAgICAvKiBTWVNfU0VORE1TRyAgICAgKi8gMTE0LAotCSAgICAgICAvKiBTWVNfUkVDVk1TRyAgICAgKi8gMTEzCi19OwotCi0jaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi1zdGF0aWMgdm9pZAotc3BhcmNfc29ja2V0X2RlY29kZSAodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXZvbGF0aWxlIGxvbmcgYWRkcjsKLQl2b2xhdGlsZSBpbnQgaSwgbjsKLQotCWlmICh0Y3AtPnVfYXJnIFswXSA8IDEgfHwgdGNwLT51X2FyZyBbMF0gPiBzaXplb2Yoc29ja2V0X21hcCkvc2l6ZW9mKGludCkrMSl7Ci0JCXJldHVybjsKLQl9Ci0JdGNwLT5zY25vID0gc29ja2V0X21hcCBbdGNwLT51X2FyZyBbMF0tMV07Ci0JbiA9IHRjcC0+dV9uYXJncyA9IHN5c2VudCBbdGNwLT5zY25vXS5uYXJnczsKLQlhZGRyID0gdGNwLT51X2FyZyBbMV07Ci0JZm9yIChpID0gMDsgaSA8IG47IGkrKyl7Ci0JICAgICAgICBpbnQgYXJnOwotCQlpZiAodW1vdmVuICh0Y3AsIGFkZHIsIHNpemVvZiAoYXJnKSwgKHZvaWQgKikgJmFyZykgPCAwKQotCQkJYXJnID0gMDsKLQkJdGNwLT51X2FyZyBbaV0gPSBhcmc7Ci0JCWFkZHIgKz0gc2l6ZW9mIChhcmcpOwotCX0KLX0KLSNlbmRpZgorI2lmICEoZGVmaW5lZChMSU5VWCkgJiYgKCBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKE1JUFMpIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSApKQogCiBzdGF0aWMgdm9pZAogZGVjb2RlX3N1YmNhbGwodGNwLCBzdWJjYWxsLCBuc3ViY2FsbHMsIHN0eWxlKQpAQCAtNTgwLDggKzU0MCw5IEBACiBpbnQgbnN1YmNhbGxzOwogZW51bSBzdWJjYWxsX3N0eWxlIHN0eWxlOwogewotCWxvbmcgYWRkciwgbWFzaywgYXJnOworCXVuc2lnbmVkIGxvbmcgYWRkciwgbWFzazsKIAlpbnQgaTsKKwlpbnQgc2l6ZSA9IHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldOwogCiAJc3dpdGNoIChzdHlsZSkgewogCWNhc2Ugc2hpZnRfc3R5bGU6CkBAIC02MDEsMTAgKzU2MiwyMSBAQAogCQl0Y3AtPnNjbm8gPSBzdWJjYWxsICsgdGNwLT51X2FyZ1swXTsKIAkJYWRkciA9IHRjcC0+dV9hcmdbMV07CiAJCWZvciAoaSA9IDA7IGkgPCBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsgaSsrKSB7Ci0JCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmYXJnKSA8IDApCi0JCQkJYXJnID0gMDsKLQkJCXRjcC0+dV9hcmdbaV0gPSBhcmc7Ci0JCQlhZGRyICs9IHNpemVvZihhcmcpOworCQkJaWYgKHNpemUgPT0gc2l6ZW9mKGludCkpIHsKKwkJCQl1bnNpZ25lZCBpbnQgYXJnOworCQkJCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZhcmcpIDwgMCkKKwkJCQkJYXJnID0gMDsKKwkJCQl0Y3AtPnVfYXJnW2ldID0gYXJnOworCQkJfQorCQkJZWxzZSBpZiAoc2l6ZSA9PSBzaXplb2YobG9uZykpIHsKKwkJCQl1bnNpZ25lZCBsb25nIGFyZzsKKwkJCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmYXJnKSA8IDApCisJCQkJCWFyZyA9IDA7CisJCQkJdGNwLT51X2FyZ1tpXSA9IGFyZzsKKwkJCX0KKwkJCWVsc2UKKwkJCQlhYm9ydCgpOworCQkJYWRkciArPSBzaXplOwogCQl9CiAJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwogCQlicmVhazsKQEAgLTY1MSw5OCArNjIzLDYyIEBACiBzdHJ1Y3QgdGNiICp0Y3BfbGFzdCA9IE5VTEw7CiAKIHN0YXRpYyBpbnQKLWludGVybmFsX3N5c2NhbGwodGNwKQotc3RydWN0IHRjYiAqdGNwOworaW50ZXJuYWxfc3lzY2FsbChzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJLyoKIAkgKiBXZSBtdXN0IGFsd2F5cyB0cmFjZSBhIGZldyBjcml0aWNhbCBzeXN0ZW0gY2FsbHMgaW4gb3JkZXIgdG8KIAkgKiBjb3JyZWN0bHkgc3VwcG9ydCBmb2xsb3dpbmcgZm9ya3MgaW4gdGhlIHByZXNlbmNlIG9mIHRyYWNpbmcKIAkgKiBxdWFsaWZpZXJzLgogCSAqLwotCXN3aXRjaCAoa25vd25fc2Nubyh0Y3ApKSB7Ci0jaWZkZWYgU1lTX2ZvcmsKLQljYXNlIFNZU19mb3JrOgotI2VuZGlmCi0jaWZkZWYgU1lTX3Zmb3JrCi0JY2FzZSBTWVNfdmZvcms6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfZm9yazEKLQljYXNlIFNZU19mb3JrMToKLSNlbmRpZgotI2lmZGVmIFNZU19mb3JrYWxsCi0JY2FzZSBTWVNfZm9ya2FsbDoKLSNlbmRpZgotI2lmZGVmIFNZU19yZm9yazEKLQljYXNlIFNZU19yZm9yazE6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfcmZvcmthbGwKLQljYXNlIFNZU19yZm9ya2FsbDoKLSNlbmRpZgotI2lmZGVmIFNZU19yZm9yawotCWNhc2UgU1lTX3Jmb3JrOgotI2VuZGlmCi0JCWludGVybmFsX2ZvcmsodGNwKTsKLQkJYnJlYWs7Ci0jaWZkZWYgU1lTX2Nsb25lCi0JY2FzZSBTWVNfY2xvbmU6Ci0JCWludGVybmFsX2Nsb25lKHRjcCk7Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgU1lTX2Nsb25lMgotCWNhc2UgU1lTX2Nsb25lMjoKLQkJaW50ZXJuYWxfY2xvbmUodGNwKTsKLQkJYnJlYWs7Ci0jZW5kaWYKLSNpZmRlZiBTWVNfZXhlY3YKLQljYXNlIFNZU19leGVjdjoKLSNlbmRpZgotI2lmZGVmIFNZU19leGVjdmUKLQljYXNlIFNZU19leGVjdmU6Ci0jZW5kaWYKLSNpZmRlZiBTWVNfcmV4ZWN2ZQotCWNhc2UgU1lTX3JleGVjdmU6Ci0jZW5kaWYKLQkJaW50ZXJuYWxfZXhlYyh0Y3ApOwotCQlicmVhazsKKwlpbnQJKCpmdW5jKSgpOwogCi0jaWZkZWYgU1lTX3dhaXQKLQljYXNlIFNZU193YWl0OgorCWlmICh0Y3AtPnNjbm8gPCAwIHx8IHRjcC0+c2NubyA+PSBuc3lzY2FsbHMpCisJCXJldHVybiAwOworCisJZnVuYyA9IHN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jOworCisJaWYgKHN5c19leGl0ID09IGZ1bmMpCisJCXJldHVybiBpbnRlcm5hbF9leGl0KHRjcCk7CisKKwlpZiAoICAgc3lzX2ZvcmsgPT0gZnVuYworI2lmIGRlZmluZWQoRlJFRUJTRCkgfHwgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChTVU5PUzQpCisJICAgIHx8IHN5c192Zm9yayA9PSBmdW5jCiAjZW5kaWYKLSNpZmRlZiBTWVNfd2FpdDQKLQljYXNlIFNZU193YWl0NDoKKyNpZmRlZiBMSU5VWAorCSAgICB8fCBzeXNfY2xvbmUgPT0gZnVuYwogI2VuZGlmCi0jaWZkZWYgU1lTMzJfd2FpdDQKLQljYXNlIFNZUzMyX3dhaXQ0OgorI2lmIFVOSVhXQVJFID4gMgorCSAgICB8fCBzeXNfcmZvcmsgPT0gZnVuYwogI2VuZGlmCi0jaWZkZWYgU1lTX3dhaXRwaWQKLQljYXNlIFNZU193YWl0cGlkOgorCSAgICkKKwkJcmV0dXJuIGludGVybmFsX2ZvcmsodGNwKTsKKworCWlmICggICBzeXNfZXhlY3ZlID09IGZ1bmMKKyNpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpIHx8IGRlZmluZWQoU1VOT1M0KQorCSAgICB8fCBzeXNfZXhlY3YgPT0gZnVuYwogI2VuZGlmCi0jaWZkZWYgU1lTX3dhaXRzeXMKLQljYXNlIFNZU193YWl0c3lzOgorI2lmIFVOSVhXQVJFID4gMgorCSAgICB8fCBzeXNfcmV4ZWN2ZSA9PSBmdW5jCiAjZW5kaWYKLQkJaW50ZXJuYWxfd2FpdCh0Y3AsIDIpOwotCQlicmVhazsKLSNpZmRlZiBTWVNfd2FpdGlkCi0JY2FzZSBTWVNfd2FpdGlkOgotCQlpbnRlcm5hbF93YWl0KHRjcCwgMyk7Ci0JCWJyZWFrOworCSAgICkKKwkJcmV0dXJuIGludGVybmFsX2V4ZWModGNwKTsKKworCWlmICggICBzeXNfd2FpdHBpZCA9PSBmdW5jCisJICAgIHx8IHN5c193YWl0NCA9PSBmdW5jCisjaWYgZGVmaW5lZChTVlI0KSB8fCBkZWZpbmVkKEZSRUVCU0QpIHx8IGRlZmluZWQoU1VOT1M0KQorCSAgICB8fCBzeXNfd2FpdCA9PSBmdW5jCisjZW5kaWYKKyNpZmRlZiBBTFBIQQorCSAgICB8fCBzeXNfb3NmX3dhaXQ0ID09IGZ1bmMKKyNlbmRpZgorCSAgICkKKwkJcmV0dXJuIGludGVybmFsX3dhaXQodGNwLCAyKTsKKworI2lmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoU1ZSNCkKKwlpZiAoc3lzX3dhaXRpZCA9PSBmdW5jKQorCQlyZXR1cm4gaW50ZXJuYWxfd2FpdCh0Y3AsIDMpOwogI2VuZGlmCiAKLSNpZmRlZiBTWVNfZXhpdAotCWNhc2UgU1lTX2V4aXQ6Ci0jZW5kaWYKLSNpZmRlZiBTWVMzMl9leGl0Ci0JY2FzZSBTWVMzMl9leGl0OgotI2VuZGlmCi0jaWZkZWYgX19OUl9leGl0X2dyb3VwCi0JY2FzZSBfX05SX2V4aXRfZ3JvdXA6Ci0jZW5kaWYKLSNpZmRlZiBJQTY0Ci0JY2FzZSAyNTI6IC8qIElBLTMyIF9fTlJfZXhpdF9ncm91cCAqLwotI2VuZGlmCi0JCWludGVybmFsX2V4aXQodGNwKTsKLQkJYnJlYWs7Ci0JfQogCXJldHVybiAwOwogfQogCkBAIC03NTYsMTUgKzY5MiwyMiBAQAogI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKIAlzdGF0aWMgbG9uZyByZXN1bHQsZmxhZ3M7CiAjZWxpZiBkZWZpbmVkIChNNjhLKQotCXN0YXRpYyBpbnQgZDA7CisJc3RhdGljIGxvbmcgZDA7CisjZWxpZiBkZWZpbmVkKEJGSU4pCisJc3RhdGljIGxvbmcgcjA7CiAjZWxpZiBkZWZpbmVkIChBUk0pCiAJc3RhdGljIHN0cnVjdCBwdF9yZWdzIHJlZ3M7CiAjZWxpZiBkZWZpbmVkIChBTFBIQSkKIAlzdGF0aWMgbG9uZyByMDsKIAlzdGF0aWMgbG9uZyBhMzsKKyNlbGlmIGRlZmluZWQoQVZSMzIpCisJc3RhdGljIHN0cnVjdCBwdF9yZWdzIHJlZ3M7CiAjZWxpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQlzdGF0aWMgc3RydWN0IHJlZ3MgcmVnczsKKwlzdGF0aWMgc3RydWN0IHB0X3JlZ3MgcmVnczsKIAlzdGF0aWMgdW5zaWduZWQgbG9uZyB0cmFwOworI2VsaWYgZGVmaW5lZChMSU5VWF9NSVBTTjMyKQorCXN0YXRpYyBsb25nIGxvbmcgYTM7CisJc3RhdGljIGxvbmcgbG9uZyByMjsKICNlbGlmIGRlZmluZWQoTUlQUykKIAlzdGF0aWMgbG9uZyBhMzsKIAlzdGF0aWMgbG9uZyByMjsKQEAgLTc3NSwxMSArNzE4LDE1IEBACiAjZWxpZiBkZWZpbmVkKEhQUEEpCiAJc3RhdGljIGxvbmcgcjI4OwogI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICBzdGF0aWMgbG9uZyByMDsKKwlzdGF0aWMgbG9uZyByMDsKICNlbGlmIGRlZmluZWQoU0g2NCkKLSAgICAgICBzdGF0aWMgbG9uZyByOTsKKwlzdGF0aWMgbG9uZyByOTsKICNlbGlmIGRlZmluZWQoWDg2XzY0KQotICAgICAgIHN0YXRpYyBsb25nIHJheDsKKwlzdGF0aWMgbG9uZyByYXg7CisjZWxpZiBkZWZpbmVkKENSSVNWMTApIHx8IGRlZmluZWQoQ1JJU1YzMikKKwlzdGF0aWMgbG9uZyByMTA7CisjZWxpZiBkZWZpbmVkKE1JQ1JPQkxBWkUpCisJc3RhdGljIGxvbmcgcjM7CiAjZW5kaWYKICNlbmRpZiAvKiBMSU5VWCAqLwogI2lmZGVmIEZSRUVCU0QKQEAgLTc4NywxNiArNzM0LDEyIEBACiAjZW5kaWYgLyogRlJFRUJTRCAqLwogCiBpbnQKLWdldF9zY25vKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK2dldF9zY25vKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlsb25nIHNjbm8gPSAwOwotI2lmbmRlZiBVU0VfUFJPQ0ZTCi0JaW50IHBpZCA9IHRjcC0+cGlkOwotI2VuZGlmIC8qICFQUk9DRlMgKi8KIAogI2lmZGVmIExJTlVYCi0jaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQorIyBpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCiAJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgewogCQkvKgogCQkgKiBXaGVuIHRoZSBleGVjdmUgc3lzdGVtIGNhbGwgY29tcGxldGVzIHN1Y2Nlc3NmdWxseSwgdGhlCkBAIC04MTcsMTYgKzc2MCwxNiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAodXBlZWsocGlkLCBQVF9HUFIyLCAmc3lzY2FsbF9tb2RlKSA8IDApCisJaWYgKHVwZWVrKHRjcCwgUFRfR1BSMiwgJnN5c2NhbGxfbW9kZSkgPCAwKQogCQkJcmV0dXJuIC0xOwogCiAJaWYgKHN5c2NhbGxfbW9kZSAhPSAtRU5PU1lTKSB7CiAJCS8qCi0gCQkgKiBTaW5jZSBrZXJuZWwgdmVyc2lvbiAyLjUuNDQgdGhlIHNjbm8gZ2V0cyBwYXNzZWQgaW4gZ3ByMi4KKwkJICogU2luY2Uga2VybmVsIHZlcnNpb24gMi41LjQ0IHRoZSBzY25vIGdldHMgcGFzc2VkIGluIGdwcjIuCiAJCSAqLwogCQlzY25vID0gc3lzY2FsbF9tb2RlOwogCX0gZWxzZSB7Ci0JICAgICAgIAkvKgorCQkvKgogCQkgKiBPbGQgc3R5bGUgb2YgInBhc3NpbmciIHRoZSBzY25vIHZpYSB0aGUgU1ZDIGluc3RydWN0aW9uLgogCQkgKi8KIApAQCAtODM3LDEwICs3ODAsMTAgQEAKIAkJCQkgICAgICBQVF9HUFI4LCAgUFRfR1BSOSwgIFBUX0dQUjEwLCAgICBQVF9HUFIxMSwKIAkJCQkgICAgICBQVF9HUFIxMiwgUFRfR1BSMTMsIFBUX0dQUjE0LCAgICBQVF9HUFIxNX07CiAKLQkJaWYgKHVwZWVrKHBpZCwgUFRfUFNXQUREUiwgJnBjKSA8IDApCisJCWlmICh1cGVlayh0Y3AsIFBUX1BTV0FERFIsICZwYykgPCAwKQogCQkJcmV0dXJuIC0xOwogCQllcnJubyA9IDA7Ci0JCW9wY29kZSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKGNoYXIgKikocGMtc2l6ZW9mKGxvbmcpKSwgMCk7CisJCW9wY29kZSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHRjcC0+cGlkLCAoY2hhciAqKShwYy1zaXplb2YobG9uZykpLCAwKTsKIAkJaWYgKGVycm5vKSB7CiAJCQlwZXJyb3IoInBlZWt0ZXh0KHBjLW9uZXdvcmQpIik7CiAJCQlyZXR1cm4gLTE7CkBAIC04NzEsMzQgKzgxNCwzNCBAQAogCiAJCQl0bXAgPSAwOwogCQkJb2Zmc2V0X3JlZyA9IChvcGNvZGUgJiAweDAwMGYwMDAwKSA+PiAxNjsKLQkJCWlmIChvZmZzZXRfcmVnICYmICh1cGVlayhwaWQsIGdwcl9vZmZzZXRbb2Zmc2V0X3JlZ10sICZ0bXApIDwgMCkpCisJCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsodGNwLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQogCQkJCXJldHVybiAtMTsKIAkJCXN2Y19hZGRyICs9IHRtcDsKIAogCQkJdG1wID0gMDsKIAkJCW9mZnNldF9yZWcgPSAob3Bjb2RlICYgMHgwMDAwZjAwMCkgPj4gMTI7Ci0JCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsocGlkLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQorCQkJaWYgKG9mZnNldF9yZWcgJiYgKHVwZWVrKHRjcCwgZ3ByX29mZnNldFtvZmZzZXRfcmVnXSwgJnRtcCkgPCAwKSkKIAkJCQlyZXR1cm4gLTE7CiAJCQlzdmNfYWRkciArPSB0bXA7CiAKLQkJCXNjbm8gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCBwaWQsIHN2Y19hZGRyLCAwKTsKKwkJCXNjbm8gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCB0Y3AtPnBpZCwgc3ZjX2FkZHIsIDApOwogCQkJaWYgKGVycm5vKQogCQkJCXJldHVybiAtMTsKLSNpZiBkZWZpbmVkKFMzOTBYKQorIyAgaWYgZGVmaW5lZChTMzkwWCkKIAkJCXNjbm8gPj49IDQ4OwotI2Vsc2UKKyMgIGVsc2UKIAkJCXNjbm8gPj49IDE2OwotI2VuZGlmCisjICBlbmRpZgogCQkJdG1wID0gMDsKIAkJCW9mZnNldF9yZWcgPSAob3Bjb2RlICYgMHgwMGYwMDAwMCkgPj4gMjA7Ci0JCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsocGlkLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQorCQkJaWYgKG9mZnNldF9yZWcgJiYgKHVwZWVrKHRjcCwgZ3ByX29mZnNldFtvZmZzZXRfcmVnXSwgJnRtcCkgPCAwKSkKIAkJCQlyZXR1cm4gLTE7CiAKIAkJCXNjbm8gPSAoc2NubyB8IHRtcCkgJiAweGZmOwogCQl9CiAJfQotI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKLQlpZiAodXBlZWsocGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjAsICZzY25vKSA8IDApCisjIGVsaWYgZGVmaW5lZCAoUE9XRVJQQykKKwlpZiAodXBlZWsodGNwLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjAsICZzY25vKSA8IDApCiAJCXJldHVybiAtMTsKIAlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKIAkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLwpAQCAtOTA3LDE2ICs4NTAsNjIgQEAKIAkJCXJldHVybiAwOwogCQl9CiAJfQotI2VsaWYgZGVmaW5lZCAoSTM4NikKLQlpZiAodXBlZWsocGlkLCA0Kk9SSUdfRUFYLCAmc2NubykgPCAwKQorCisjICBpZmRlZiBQT1dFUlBDNjQKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJc3RhdGljIGludCBjdXJycGVycyA9IC0xOworCQlsb25nIHZhbDsKKwkJaW50IHBpZCA9IHRjcC0+cGlkOworCisJCS8qIENoZWNrIGZvciA2NC8zMiBiaXQgbW9kZS4gKi8KKwkJaWYgKHVwZWVrKHRjcCwgc2l6ZW9mICh1bnNpZ25lZCBsb25nKSpQVF9NU1IsICZ2YWwpIDwgMCkKKwkJCXJldHVybiAtMTsKKwkJLyogU0YgaXMgYml0IDAgb2YgTVNSICovCisJCWlmICh2YWwgPCAwKQorCQkJY3VycnBlcnMgPSAwOworCQllbHNlCisJCQljdXJycGVycyA9IDE7CisJCWlmIChjdXJycGVycyAhPSBjdXJyZW50X3BlcnNvbmFsaXR5KSB7CisJCQlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsiNjQgYml0IiwgIjMyIGJpdCJ9OworCQkJc2V0X3BlcnNvbmFsaXR5KGN1cnJwZXJzKTsKKwkJCWZwcmludGYoc3RkZXJyLCAiWyBQcm9jZXNzIFBJRD0lZCBydW5zIGluICVzIG1vZGUuIF1cbiIsCisJCQkJCXBpZCwgbmFtZXNbY3VycmVudF9wZXJzb25hbGl0eV0pOworCQl9CisJfQorIyAgZW5kaWYKKyMgZWxpZiBkZWZpbmVkKEFWUjMyKQorCS8qCisJICogUmVhZCBjb21wbGV0ZSByZWdpc3RlciBzZXQgaW4gb25lIGdvLgorCSAqLworCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCBOVUxMLCAmcmVncykgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkIChYODZfNjQpCi0JaWYgKHVwZWVrKHBpZCwgOCpPUklHX1JBWCwgJnNjbm8pIDwgMCkKKworCS8qCisJICogV2Ugb25seSBuZWVkIHRvIGdyYWIgdGhlIHN5c2NhbGwgbnVtYmVyIG9uIHN5c2NhbGwgZW50cnkuCisJICovCisJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CisJCXNjbm8gPSByZWdzLnI4OworCisJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgeworCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKyMgZWxpZiBkZWZpbmVkKEJGSU4pCisJaWYgKHVwZWVrKHRjcCwgUFRfT1JJR19QMCwgJnNjbm8pKQorCQlyZXR1cm4gLTE7CisjIGVsaWYgZGVmaW5lZCAoSTM4NikKKwlpZiAodXBlZWsodGNwLCA0Kk9SSUdfRUFYLCAmc2NubykgPCAwKQorCQlyZXR1cm4gLTE7CisjIGVsaWYgZGVmaW5lZCAoWDg2XzY0KQorCWlmICh1cGVlayh0Y3AsIDgqT1JJR19SQVgsICZzY25vKSA8IDApCiAJCXJldHVybiAtMTsKIAogCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgewotCSAgCXN0YXRpYyBpbnQgY3VycnBlcnM9LTE7CisJCXN0YXRpYyBpbnQgY3VycnBlcnMgPSAtMTsKIAkJbG9uZyB2YWw7CisJCWludCBwaWQgPSB0Y3AtPnBpZDsKIAogCQkvKiBDaGVjayBDUyByZWdpc3RlciB2YWx1ZS4gT24geDg2LTY0IGxpbnV4IGl0IGlzOgogCQkgKiAJMHgzMwlmb3IgbG9uZyBtb2RlICg2NCBiaXQpCkBAIC05MjQsMTAgKzkxMyw5IEBACiAJCSAqIEl0IHRha2VzIG9ubHkgb25lIHB0cmFjZSBhbmQgdGh1cyBkb2Vzbid0IG5lZWQKIAkJICogdG8gYmUgY2FjaGVkLgogCQkgKi8KLQkJaWYgKHVwZWVrKHBpZCwgOCpDUywgJnZhbCkgPCAwKQorCQlpZiAodXBlZWsodGNwLCA4KkNTLCAmdmFsKSA8IDApCiAJCQlyZXR1cm4gLTE7Ci0JCXN3aXRjaCh2YWwpCi0JCXsKKwkJc3dpdGNoICh2YWwpIHsKIAkJCWNhc2UgMHgyMzogY3VycnBlcnMgPSAxOyBicmVhazsKIAkJCWNhc2UgMHgzMzogY3VycnBlcnMgPSAwOyBicmVhazsKIAkJCWRlZmF1bHQ6CkBAIC05MzcsMjYgKzkyNSwyNSBAQAogCQkJCWN1cnJwZXJzID0gY3VycmVudF9wZXJzb25hbGl0eTsKIAkJCQlicmVhazsKIAkJfQotI2lmIDAKKyMgIGlmIDAKIAkJLyogVGhpcyB2ZXJzaW9uIGFuYWx5emVzIHRoZSBvcGNvZGUgb2YgYSBzeXNjYWxsIGluc3RydWN0aW9uLgogCQkgKiAoaW50IDB4ODAgb24gaTM4NiB2cy4gc3lzY2FsbCBvbiB4ODYtNjQpCiAJCSAqIEl0IHdvcmtzLCBidXQgaXMgdG9vIGNvbXBsaWNhdGVkLgogCQkgKi8KIAkJdW5zaWduZWQgbG9uZyB2YWwsIHJpcCwgaTsKIAotCQlpZih1cGVlayhwaWQsIDgqUklQLCAmcmlwKTwwKQorCQlpZiAodXBlZWsodGNwLCA4KlJJUCwgJnJpcCkgPCAwKQogCQkJcGVycm9yKCJ1cGVlayhSSVApIik7CiAKIAkJLyogc2l6ZW9mKHN5c2NhbGwpID09IHNpemVvZihpbnQgMHg4MCkgPT0gMiAqLwotCQlyaXAtPTI7CisJCXJpcCAtPSAyOwogCQllcnJubyA9IDA7CiAKLQkJY2FsbCA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQscGlkLChjaGFyICopcmlwLDApOworCQljYWxsID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgcGlkLCAoY2hhciAqKXJpcCwgKGNoYXIgKikwKTsKIAkJaWYgKGVycm5vKQotCQkJcHJpbnRmKCJwdHJhY2VfcGVla3RleHQgZmFpbGVkOiAlc1xuIiwKKwkJCWZwcmludGYoc3RkZXJyLCAicHRyYWNlX3BlZWt0ZXh0IGZhaWxlZDogJXNcbiIsCiAJCQkJCXN0cmVycm9yKGVycm5vKSk7Ci0JCXN3aXRjaCAoY2FsbCAmIDB4ZmZmZikKLQkJeworCQlzd2l0Y2ggKGNhbGwgJiAweGZmZmYpIHsKIAkJCS8qIHg4Ni02NDogc3lzY2FsbCA9IDB4MGYgMHgwNSAqLwogCQkJY2FzZSAweDA1MGY6IGN1cnJwZXJzID0gMDsgYnJlYWs7CiAJCQkvKiBpMzg2OiBpbnQgMHg4MCA9IDB4Y2QgMHg4MCAqLwpAQCAtOTY5LDI1ICs5NTYsMjQgQEAKIAkJCQkJIlBJRD0lZFxuIiwgKGludCljYWxsLCBwaWQpOwogCQkJCWJyZWFrOwogCQl9Ci0jZW5kaWYKLQkJaWYoY3VycnBlcnMgIT0gY3VycmVudF9wZXJzb25hbGl0eSkKLQkJewotCQkJY2hhciAqbmFtZXNbXT17IjY0IGJpdCIsICIzMiBiaXQifTsKKyMgIGVuZGlmCisJCWlmIChjdXJycGVycyAhPSBjdXJyZW50X3BlcnNvbmFsaXR5KSB7CisJCQlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsiNjQgYml0IiwgIjMyIGJpdCJ9OwogCQkJc2V0X3BlcnNvbmFsaXR5KGN1cnJwZXJzKTsKLQkJCXByaW50ZigiWyBQcm9jZXNzIFBJRD0lZCBydW5zIGluICVzIG1vZGUuIF1cbiIsCisJCQlmcHJpbnRmKHN0ZGVyciwgIlsgUHJvY2VzcyBQSUQ9JWQgcnVucyBpbiAlcyBtb2RlLiBdXG4iLAogCQkJCQlwaWQsIG5hbWVzW2N1cnJlbnRfcGVyc29uYWxpdHldKTsKIAkJfQogCX0KLSNlbGlmIGRlZmluZWQoSUE2NCkKKyMgZWxpZiBkZWZpbmVkKElBNjQpCiAjCWRlZmluZSBJQTY0X1BTUl9JUwkoKGxvbmcpMSA8PCAzNCkKLQlpZiAodXBlZWsgKHBpZCwgUFRfQ1JfSVBTUiwgJnBzcikgPj0gMCkKKwlpZiAodXBlZWsgKHRjcCwgUFRfQ1JfSVBTUiwgJnBzcikgPj0gMCkKIAkJaWEzMiA9IChwc3IgJiBJQTY0X1BTUl9JUykgIT0gMDsKIAlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKIAkJaWYgKGlhMzIpIHsKLQkJCWlmICh1cGVlayhwaWQsIFBUX1IxLCAmc2NubykgPCAwKQkvKiBvcmlnIGVheCAqLworCQkJaWYgKHVwZWVrKHRjcCwgUFRfUjEsICZzY25vKSA8IDApCS8qIG9yaWcgZWF4ICovCiAJCQkJcmV0dXJuIC0xOwogCQl9IGVsc2UgewotCQkJaWYgKHVwZWVrIChwaWQsIFBUX1IxNSwgJnNjbm8pIDwgMCkKKwkJCWlmICh1cGVlayAodGNwLCBQVF9SMTUsICZzY25vKSA8IDApCiAJCQkJcmV0dXJuIC0xOwogCQl9CiAJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KQEAgLTk5NywxNiArOTgzLDE2IEBACiAJCX0KIAl9IGVsc2UgewogCQkvKiBzeXNjYWxsIGluIHByb2dyZXNzICovCi0JCWlmICh1cGVlayAocGlkLCBQVF9SOCwgJnI4KSA8IDApCisJCWlmICh1cGVlayAodGNwLCBQVF9SOCwgJnI4KSA8IDApCiAJCQlyZXR1cm4gLTE7Ci0JCWlmICh1cGVlayAocGlkLCBQVF9SMTAsICZyMTApIDwgMCkKKwkJaWYgKHVwZWVrICh0Y3AsIFBUX1IxMCwgJnIxMCkgPCAwKQogCQkJcmV0dXJuIC0xOwogCX0KLSNlbGlmIGRlZmluZWQgKEFSTSkKKyMgZWxpZiBkZWZpbmVkIChBUk0pCiAJLyoKIAkgKiBSZWFkIGNvbXBsZXRlIHJlZ2lzdGVyIHNldCBpbiBvbmUgZ28uCiAJICovCi0JaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgcGlkLCBOVUxMLCAodm9pZCAqKSZyZWdzKSA9PSAtMSkKKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgTlVMTCwgKHZvaWQgKikmcmVncykgPT0gLTEpCiAJCXJldHVybiAtMTsKIAogCS8qCkBAIC0xMDM0LDcgKzEwMjAsNyBAQAogCQkJICogR2V0IHRoZSBBUk0tbW9kZSBzeXN0ZW0gY2FsbCBudW1iZXIKIAkJCSAqLwogCQkJZXJybm8gPSAwOwotCQkJc2NubyA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKHZvaWQgKikocmVncy5BUk1fcGMgLSA0KSwgTlVMTCk7CisJCQlzY25vID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgdGNwLT5waWQsICh2b2lkICopKHJlZ3MuQVJNX3BjIC0gNCksIE5VTEwpOwogCQkJaWYgKGVycm5vKQogCQkJCXJldHVybiAtMTsKIApAQCAtMTA2Myw2ICsxMDQ5LDE0IEBACiAJCQkJc2NubyAmPSAweDAwMGZmZmZmOwogCQkJfQogCQl9CisJCWlmIChzY25vICYgMHgwZjAwMDApIHsKKwkJCS8qCisJCQkgKiBIYW5kbGUgQVJNIHNwZWNpZmljIHN5c2NhbGwKKwkJCSAqLworCQkJc2V0X3BlcnNvbmFsaXR5KDEpOworCQkJc2NubyAmPSAweDAwMDBmZmZmOworCQl9IGVsc2UKKwkJCXNldF9wZXJzb25hbGl0eSgwKTsKIAogCQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpIHsKIAkJCWZwcmludGYoc3RkZXJyLCAicGlkICVkIHN0cmF5IHN5c2NhbGwgZW50cnlcbiIsIHRjcC0+cGlkKTsKQEAgLTEwNzQsMTYgKzEwNjgsNDYgQEAKIAkJCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKIAkJfQogCX0KLSNlbGlmIGRlZmluZWQgKE02OEspCi0JaWYgKHVwZWVrKHBpZCwgNCpQVF9PUklHX0QwLCAmc2NubykgPCAwKQorIyBlbGlmIGRlZmluZWQgKE02OEspCisJaWYgKHVwZWVrKHRjcCwgNCpQVF9PUklHX0QwLCAmc2NubykgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkIChNSVBTKQotCWlmICh1cGVlayhwaWQsIFJFR19BMywgJmEzKSA8IDApCi0JICAJcmV0dXJuIC0xOworIyBlbGlmIGRlZmluZWQgKExJTlVYX01JUFNOMzIpCisJdW5zaWduZWQgbG9uZyBsb25nIHJlZ3NbMzhdOworCisJaWYgKHB0cmFjZSAoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCBOVUxMLCAobG9uZykgJnJlZ3MpIDwgMCkKKwkJcmV0dXJuIC0xOworCWEzID0gcmVnc1tSRUdfQTNdOworCXIyID0gcmVnc1tSRUdfVjBdOwogCiAJaWYoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKLQkgIAlpZiAodXBlZWsocGlkLCBSRUdfVjAsICZzY25vKSA8IDApCi0JCSAgCXJldHVybiAtMTsKKwkJc2NubyA9IHIyOworCisJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KKwkJaWYgKHNjbm8gPT0gMCAmJiB0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpIHsKKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlpZiAoc2NubyA8IDAgfHwgc2NubyA+IG5zeXNjYWxscykgeworCQkJaWYoYTMgPT0gMCB8fCBhMyA9PSAtMSkgeworCQkJCWlmKGRlYnVnKQorCQkJCQlmcHJpbnRmIChzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IHYwID0gJWxkXG4iLCBzY25vKTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorCX0KKyMgZWxpZiBkZWZpbmVkIChNSVBTKQorCWlmICh1cGVlayh0Y3AsIFJFR19BMywgJmEzKSA8IDApCisJCXJldHVybiAtMTsKKwlpZighKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCQlpZiAodXBlZWsodGNwLCBSRUdfVjAsICZzY25vKSA8IDApCisJCQlyZXR1cm4gLTE7CisKKwkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLworCQlpZiAoc2NubyA9PSAwICYmIHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgeworCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJCQlyZXR1cm4gMDsKKwkJfQogCiAJCWlmIChzY25vIDwgMCB8fCBzY25vID4gbnN5c2NhbGxzKSB7CiAJCQlpZihhMyA9PSAwIHx8IGEzID09IC0xKSB7CkBAIC0xMDkzLDE1ICsxMTE3LDE1IEBACiAJCQl9CiAJCX0KIAl9IGVsc2UgewotCSAgCWlmICh1cGVlayhwaWQsIFJFR19WMCwgJnIyKSA8IDApCi0JICAgIAkJcmV0dXJuIC0xOworCQlpZiAodXBlZWsodGNwLCBSRUdfVjAsICZyMikgPCAwKQorCQkJcmV0dXJuIC0xOwogCX0KLSNlbGlmIGRlZmluZWQgKEFMUEhBKQotCWlmICh1cGVlayhwaWQsIFJFR19BMywgJmEzKSA8IDApCisjIGVsaWYgZGVmaW5lZCAoQUxQSEEpCisJaWYgKHVwZWVrKHRjcCwgUkVHX0EzLCAmYTMpIDwgMCkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0JCWlmICh1cGVlayhwaWQsIFJFR19SMCwgJnNjbm8pIDwgMCkKKwkJaWYgKHVwZWVrKHRjcCwgUkVHX1IwLCAmc2NubykgPCAwKQogCQkJcmV0dXJuIC0xOwogCiAJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KQEAgLTExMjMsMjIgKzExNDcsMjQgQEAKIAkJfQogCX0KIAllbHNlIHsKLQkJaWYgKHVwZWVrKHBpZCwgUkVHX1IwLCAmcjApIDwgMCkKKwkJaWYgKHVwZWVrKHRjcCwgUkVHX1IwLCAmcjApIDwgMCkKIAkJCXJldHVybiAtMTsKIAl9Ci0jZWxpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKyMgZWxpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKIAkvKiBFdmVyeXRoaW5nIHdlIG5lZWQgaXMgaW4gdGhlIGN1cnJlbnQgcmVnaXN0ZXIgc2V0LiAqLwotCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MscGlkLChjaGFyICopJnJlZ3MsMCkgPCAwKQorCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApCiAJCXJldHVybiAtMTsKIAotICAgICAgICAvKiBJZiB3ZSBhcmUgZW50ZXJpbmcsIHRoZW4gZGlzYXNzZW1ibGUgdGhlIHN5c2NhbGwgdHJhcC4gKi8KKwkvKiBJZiB3ZSBhcmUgZW50ZXJpbmcsIHRoZW4gZGlzYXNzZW1ibGUgdGhlIHN5c2NhbGwgdHJhcC4gKi8KIAlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKIAkJLyogUmV0cmlldmUgdGhlIHN5c2NhbGwgdHJhcCBpbnN0cnVjdGlvbi4gKi8KIAkJZXJybm8gPSAwOwotCQl0cmFwID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCxwaWQsKGNoYXIgKilyZWdzLnJfcGMsMCk7Ci0jaWYgZGVmaW5lZChTUEFSQzY0KQorIyAgaWYgZGVmaW5lZChTUEFSQzY0KQorCQl0cmFwID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgdGNwLT5waWQsIChjaGFyICopcmVncy50cGMsIDApOwogCQl0cmFwID4+PSAzMjsKLSNlbmRpZgorIyAgZWxzZQorCQl0cmFwID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgdGNwLT5waWQsIChjaGFyICopcmVncy5wYywgMCk7CisjICBlbmRpZgogCQlpZiAoZXJybm8pCiAJCQlyZXR1cm4gLTE7CiAKQEAgLTExNzQsMTEgKzEyMDAsMTEgQEAKIAkJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKIAkJCQlyZXR1cm4gMDsKIAkJCX0KLSNpZiBkZWZpbmVkIChTUEFSQzY0KQotCQkJZnByaW50ZihzdGRlcnIsInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwICUwOGx4ICUwMTZseFxuIiwgdHJhcCwgcmVncy5yX3RwYyk7Ci0jZWxzZQotCQkJZnByaW50ZihzdGRlcnIsInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwICUwOHggJTA4eFxuIiwgdHJhcCwgcmVncy5yX3BjKTsKLSNlbmRpZgorIyAgaWYgZGVmaW5lZCAoU1BBUkM2NCkKKwkJCWZwcmludGYoc3RkZXJyLCJzeXNjYWxsOiB1bmtub3duIHN5c2NhbGwgdHJhcCAlMDhseCAlMDE2bHhcbiIsIHRyYXAsIHJlZ3MudHBjKTsKKyMgIGVsc2UKKwkJCWZwcmludGYoc3RkZXJyLCJzeXNjYWxsOiB1bmtub3duIHN5c2NhbGwgdHJhcCAlMDhseCAlMDhseFxuIiwgdHJhcCwgcmVncy5wYyk7CisjICBlbmRpZgogCQkJcmV0dXJuIC0xOwogCQl9CiAKQEAgLTExODYsMTQgKzEyMTIsMTQgQEAKIAkJaWYgKHRyYXAgPT0gMHg5MWQwMjAyNykKIAkJCXNjbm8gPSAxNTY7CiAJCWVsc2UKLQkJCXNjbm8gPSByZWdzLnJfZzE7CisJCQlzY25vID0gcmVncy51X3JlZ3NbVV9SRUdfRzFdOwogCQlpZiAoc2NubyA9PSAwKSB7Ci0JCQlzY25vID0gcmVncy5yX28wOwotCQkJbWVtbW92ZSAoJnJlZ3Mucl9vMCwgJnJlZ3Mucl9vMSwgNypzaXplb2YocmVncy5yX28wKSk7CisJCQlzY25vID0gcmVncy51X3JlZ3NbVV9SRUdfTzBdOworCQkJbWVtbW92ZSAoJnJlZ3MudV9yZWdzW1VfUkVHX08wXSwgJnJlZ3MudV9yZWdzW1VfUkVHX08xXSwgNypzaXplb2YocmVncy51X3JlZ3NbMF0pKTsKIAkJfQogCX0KLSNlbGlmIGRlZmluZWQoSFBQQSkKLQlpZiAodXBlZWsocGlkLCBQVF9HUjIwLCAmc2NubykgPCAwKQorIyBlbGlmIGRlZmluZWQoSFBQQSkKKwlpZiAodXBlZWsodGNwLCBQVF9HUjIwLCAmc2NubykgPCAwKQogCQlyZXR1cm4gLTE7CiAJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CiAJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KQEAgLTEyMDIsMzkgKzEyMjgsMzggQEAKIAkJCXJldHVybiAwOwogCQl9CiAJfQotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICAvKgotICAgICAgICAqIEluIHRoZSBuZXcgc3lzY2FsbCBBQkksIHRoZSBzeXN0ZW0gY2FsbCBudW1iZXIgaXMgaW4gUjMuCi0gICAgICAgICovCi0gICAgICAgaWYgKHVwZWVrKHBpZCwgNCooUkVHX1JFRzArMyksICZzY25vKSA8IDApCi0gICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICAgICBpZiAoc2NubyA8IDApIHsKLSAgICAgICAgICAgLyogT2RkIGFzIGl0IG1heSBzZWVtLCBhIGdsaWJjIGJ1ZyBoYXMgYmVlbiBrbm93biB0byBjYXVzZQotICAgICAgICAgICAgICBnbGliYyB0byBpc3N1ZSBib2d1cyBuZWdhdGl2ZSBzeXNjYWxsIG51bWJlcnMuICBTbyBmb3IKLSAgICAgICAgICAgICAgb3VyIHB1cnBvc2VzLCBtYWtlIHN0cmFjZSBwcmludCB3aGF0IGl0ICpzaG91bGQqIGhhdmUgYmVlbiAqLwotICAgICAgICAgICBsb25nIGNvcnJlY3Rfc2NubyA9IChzY25vICYgMHhmZik7Ci0gICAgICAgICAgIGlmIChkZWJ1ZykKLSAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAgICJEZXRlY3RlZCBnbGliYyBidWc6IGJvZ3VzIHN5c3RlbSBjYWxsIG51bWJlciA9ICVsZCwgIgotCQkgICAiY29ycmVjdGluZyB0byAlbGRcbiIsCi0gICAgICAgICAgICAgICAgICAgc2NubywKLSAgICAgICAgICAgICAgICAgICBjb3JyZWN0X3Njbm8pOwotICAgICAgICAgICBzY25vID0gY29ycmVjdF9zY25vOwotICAgICAgIH0KLQotCi0gICAgICAgaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7Ci0gICAgICAgICAgICAgICAvKiBDaGVjayBpZiB3ZSByZXR1cm4gZnJvbSBleGVjdmUuICovCi0gICAgICAgICAgICAgICBpZiAoc2NubyA9PSAwICYmIHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgewotICAgICAgICAgICAgICAgICAgICAgICB0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgICB9Ci0gICAgICAgfQotI2VsaWYgZGVmaW5lZChTSDY0KQotCWlmICh1cGVlayhwaWQsIFJFR19TWVNDQUxMLCAmc2NubykgPCAwKQorIyBlbGlmIGRlZmluZWQoU0gpCisJLyoKKwkgKiBJbiB0aGUgbmV3IHN5c2NhbGwgQUJJLCB0aGUgc3lzdGVtIGNhbGwgbnVtYmVyIGlzIGluIFIzLgorCSAqLworCWlmICh1cGVlayh0Y3AsIDQqKFJFR19SRUcwKzMpLCAmc2NubykgPCAwKQogCQlyZXR1cm4gLTE7Ci0gICAgICAgIHNjbm8gJj0gMHhGRkZGOworCisJaWYgKHNjbm8gPCAwKSB7CisJCS8qIE9kZCBhcyBpdCBtYXkgc2VlbSwgYSBnbGliYyBidWcgaGFzIGJlZW4ga25vd24gdG8gY2F1c2UKKwkJICAgZ2xpYmMgdG8gaXNzdWUgYm9ndXMgbmVnYXRpdmUgc3lzY2FsbCBudW1iZXJzLiAgU28gZm9yCisJCSAgIG91ciBwdXJwb3NlcywgbWFrZSBzdHJhY2UgcHJpbnQgd2hhdCBpdCAqc2hvdWxkKiBoYXZlIGJlZW4gKi8KKwkJbG9uZyBjb3JyZWN0X3Njbm8gPSAoc2NubyAmIDB4ZmYpOworCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiRGV0ZWN0ZWQgZ2xpYmMgYnVnOiBib2d1cyBzeXN0ZW0gY2FsbCIKKwkJCQkiIG51bWJlciA9ICVsZCwgY29ycmVjdGluZyB0byAlbGRcbiIsCisJCQkJc2NubywKKwkJCQljb3JyZWN0X3Njbm8pOworCQlzY25vID0gY29ycmVjdF9zY25vOworCX0KKworCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCQkvKiBDaGVjayBpZiB3ZSByZXR1cm4gZnJvbSBleGVjdmUuICovCisJCWlmIChzY25vID09IDAgJiYgdGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSB7CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKKwkJCXJldHVybiAwOworCQl9CisJfQorIyBlbGlmIGRlZmluZWQoU0g2NCkKKwlpZiAodXBlZWsodGNwLCBSRUdfU1lTQ0FMTCwgJnNjbm8pIDwgMCkKKwkJcmV0dXJuIC0xOworCXNjbm8gJj0gMHhGRkZGOwogCiAJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CiAJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KQEAgLTEyNDMsNDQgKzEyNjgsNjMgQEAKIAkJCXJldHVybiAwOwogCQl9CiAJfQotI2VuZGlmIC8qIFNINjQgKi8KKyMgZWxpZiBkZWZpbmVkKENSSVNWMTApIHx8IGRlZmluZWQoQ1JJU1YzMikKKwlpZiAodXBlZWsodGNwLCA0KlBUX1I5LCAmc2NubykgPCAwKQorCQlyZXR1cm4gLTE7CisjIGVsaWYgZGVmaW5lZChUSUxFKQorCWlmICh1cGVlayh0Y3AsIFBUUkVHU19PRkZTRVRfUkVHKDEwKSwgJnNjbm8pIDwgMCkKKwkJcmV0dXJuIC0xOworCisJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CisJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgeworCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKyMgZWxpZiBkZWZpbmVkKE1JQ1JPQkxBWkUpCisJaWYgKHVwZWVrKHRjcCwgMCwgJnNjbm8pIDwgMCkKKwkJcmV0dXJuIC0xOworIyBlbmRpZgogI2VuZGlmIC8qIExJTlVYICovCisKICNpZmRlZiBTVU5PUzQKLQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfYXJnWzddKSwgJnNjbm8pIDwgMCkKKwlpZiAodXBlZWsodGNwLCB1b2ZmKHVfYXJnWzddKSwgJnNjbm8pIDwgMCkKIAkJcmV0dXJuIC0xOwogI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICAgLyogbmV3IHN5c2NhbGwgQUJJIHJldHVybnMgcmVzdWx0IGluIFIwICovCi0gICAgICAgIGlmICh1cGVlayhwaWQsIDQqUkVHX1JFRzAsIChsb25nICopJnIwKSA8IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOworCS8qIG5ldyBzeXNjYWxsIEFCSSByZXR1cm5zIHJlc3VsdCBpbiBSMCAqLworCWlmICh1cGVlayh0Y3AsIDQqUkVHX1JFRzAsIChsb25nICopJnIwKSA8IDApCisJCXJldHVybiAtMTsKICNlbGlmIGRlZmluZWQoU0g2NCkKLSAgICAgICAgLyogQUJJIGRlZmluZXMgcmVzdWx0IHJldHVybmVkIGluIHI5ICovCi0gICAgICAgIGlmICh1cGVlayhwaWQsIFJFR19HRU5FUkFMKDkpLCAobG9uZyAqKSZyOSkgPCAwKQotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLQorCS8qIEFCSSBkZWZpbmVzIHJlc3VsdCByZXR1cm5lZCBpbiByOSAqLworCWlmICh1cGVlayh0Y3AsIFJFR19HRU5FUkFMKDkpLCAobG9uZyAqKSZyOSkgPCAwKQorCQlyZXR1cm4gLTE7CiAjZW5kaWYKKwogI2lmZGVmIFVTRV9QUk9DRlMKLSNpZmRlZiBIQVZFX1BSX1NZU0NBTEwKKyMgaWZkZWYgSEFWRV9QUl9TWVNDQUxMCiAJc2NubyA9IHRjcC0+c3RhdHVzLlBSX1NZU0NBTEw7Ci0jZWxzZSAvKiAhSEFWRV9QUl9TWVNDQUxMICovCi0jaWZuZGVmIEZSRUVCU0QKKyMgZWxzZQorIyAgaWZuZGVmIEZSRUVCU0QKIAlzY25vID0gdGNwLT5zdGF0dXMuUFJfV0hBVDsKLSNlbHNlIC8qIEZSRUVCU0QgKi8KKyMgIGVsc2UKIAlpZiAocHJlYWQodGNwLT5wZmRfcmVnLCAmcmVncywgc2l6ZW9mKHJlZ3MpLCAwKSA8IDApIHsKLQkgICAgICAgIHBlcnJvcigicHJlYWQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KKwkJcGVycm9yKCJwcmVhZCIpOworCQlyZXR1cm4gLTE7CisJfQogCXN3aXRjaCAocmVncy5yX2VheCkgewogCWNhc2UgU1lTX3N5c2NhbGw6CiAJY2FzZSBTWVNfX19zeXNjYWxsOgotICAgIAkgICAgICAgIHByZWFkKHRjcC0+cGZkLCAmc2Nubywgc2l6ZW9mKHNjbm8pLCByZWdzLnJfZXNwICsgc2l6ZW9mKGludCkpOwotCSAgICAgICAgYnJlYWs7CisJCXByZWFkKHRjcC0+cGZkLCAmc2Nubywgc2l6ZW9mKHNjbm8pLCByZWdzLnJfZXNwICsgc2l6ZW9mKGludCkpOworCQlicmVhazsKIAlkZWZhdWx0OgotCSAgICAgICAgc2NubyA9IHJlZ3Mucl9lYXg7Ci0JICAgICAgICBicmVhazsKKwkJc2NubyA9IHJlZ3Mucl9lYXg7CisJCWJyZWFrOwogCX0KLSNlbmRpZiAvKiBGUkVFQlNEICovCi0jZW5kaWYgLyogIUhBVkVfUFJfU1lTQ0FMTCAqLworIyAgZW5kaWYgLyogRlJFRUJTRCAqLworIyBlbmRpZiAvKiAhSEFWRV9QUl9TWVNDQUxMICovCiAjZW5kaWYgLyogVVNFX1BST0NGUyAqLworCiAJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKQogCQl0Y3AtPnNjbm8gPSBzY25vOwogCXJldHVybiAxOwpAQCAtMTI4OCwyNCArMTMzMiwyOSBAQAogCiAKIGxvbmcKLWtub3duX3Njbm8odGNwKQotc3RydWN0IHRjYiAqdGNwOwora25vd25fc2NubyhzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJbG9uZyBzY25vID0gdGNwLT5zY25vOworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMQogCWlmIChzY25vID49IDAgJiYgc2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbc2Nub10ubmF0aXZlX3Njbm8gIT0gMCkKIAkJc2NubyA9IHN5c2VudFtzY25vXS5uYXRpdmVfc2NubzsKIAllbHNlCisjZW5kaWYKIAkJc2NubyArPSBOUl9TWVNDQUxMX0JBU0U7CiAJcmV0dXJuIHNjbm87CiB9CiAKKy8qIENhbGxlZCBpbiB0cmFjZV9zeXNjYWxsKCkgYXQgZWFjaCBzeXNjYWxsIGVudHJ5IGFuZCBleGl0LgorICogUmV0dXJuczoKKyAqIDA6ICJpZ25vcmUgdGhpcyBzeXNjYWxsIiwgYmFpbCBvdXQgb2YgdHJhY2Vfc3lzY2FsbCgpIHNpbGVudGx5LgorICogMTogb2ssIGNvbnRpbnVlIGluIHRyYWNlX3N5c2NhbGwoKS4KKyAqIG90aGVyOiBlcnJvciwgdHJhY2Vfc3lzY2FsbCgpIHNob3VsZCBwcmludCBlcnJvciBpbmRpY2F0b3IKKyAqICAgICgiPz8/PyIgZXRjKSBhbmQgYmFpbCBvdXQuCisgKi8KIHN0YXRpYyBpbnQKLXN5c2NhbGxfZml4dXAodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzY2FsbF9maXh1cChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0jaWZuZGVmIFVTRV9QUk9DRlMKLQlpbnQgcGlkID0gdGNwLT5waWQ7Ci0jZWxzZSAvKiBVU0VfUFJPQ0ZTICovCisjaWZkZWYgVVNFX1BST0NGUwogCWludCBzY25vID0ga25vd25fc2Nubyh0Y3ApOwogCiAJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CkBAIC0xMzY5LDcgKzE0MTgsNyBAQAogI2VuZGlmIC8qIFNVTk9TNCAqLwogI2lmZGVmIExJTlVYCiAjaWYgZGVmaW5lZCAoSTM4NikKLQlpZiAodXBlZWsocGlkLCA0KkVBWCwgJmVheCkgPCAwKQorCWlmICh1cGVlayh0Y3AsIDQqRUFYLCAmZWF4KSA8IDApCiAJCXJldHVybiAtMTsKIAlpZiAoZWF4ICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKIAkJaWYgKGRlYnVnKQpAQCAtMTM3Nyw3ICsxNDI2LDcgQEAKIAkJcmV0dXJuIDA7CiAJfQogI2VsaWYgZGVmaW5lZCAoWDg2XzY0KQotCWlmICh1cGVlayhwaWQsIDgqUkFYLCAmcmF4KSA8IDApCisJaWYgKHVwZWVrKHRjcCwgOCpSQVgsICZyYXgpIDwgMCkKIAkJcmV0dXJuIC0xOwogCWlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDEpCiAJCXJheCA9IChsb25nIGludCkoaW50KXJheDsgLyogc2lnbiBleHRlbmQgZnJvbSAzMiBiaXRzICovCkBAIC0xMzg3LDcgKzE0MzYsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAjZWxpZiBkZWZpbmVkIChTMzkwKSB8fCBkZWZpbmVkIChTMzkwWCkKLQlpZiAodXBlZWsocGlkLCBQVF9HUFIyLCAmZ3ByMikgPCAwKQorCWlmICh1cGVlayh0Y3AsIFBUX0dQUjIsICZncHIyKSA8IDApCiAJCXJldHVybiAtMTsKIAlpZiAoc3lzY2FsbF9tb2RlICE9IC1FTk9TWVMpCiAJCXN5c2NhbGxfbW9kZSA9IHRjcC0+c2NubzsKQEAgLTE0MDcsMTQgKzE0NTYsMTQgQEAKIAl9CiAjZWxpZiBkZWZpbmVkIChQT1dFUlBDKQogIyBkZWZpbmUgU09fTUFTSyAweDEwMDAwMDAwCi0JaWYgKHVwZWVrKHBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX0NDUiwgJmZsYWdzKSA8IDApCisJaWYgKHVwZWVrKHRjcCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX0NDUiwgJmZsYWdzKSA8IDApCiAJCXJldHVybiAtMTsKLQlpZiAodXBlZWsocGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjMsICZyZXN1bHQpIDwgMCkKKwlpZiAodXBlZWsodGNwLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjMsICZyZXN1bHQpIDwgMCkKIAkJcmV0dXJuIC0xOwogCWlmIChmbGFncyAmIFNPX01BU0spCiAJCXJlc3VsdCA9IC1yZXN1bHQ7CiAjZWxpZiBkZWZpbmVkIChNNjhLKQotCWlmICh1cGVlayhwaWQsIDQqUFRfRDAsICZkMCkgPCAwKQorCWlmICh1cGVlayh0Y3AsIDQqUFRfRDAsICZkMCkgPCAwKQogCQlyZXR1cm4gLTE7CiAJaWYgKGQwICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKIAkJaWYgKGRlYnVnKQpAQCAtMTQyNSw5NCArMTQ3NCwxMjkgQEAKIAkvKgogCSAqIE5vdGhpbmcgcmVxdWlyZWQKIAkgKi8KKyNlbGlmIGRlZmluZWQoQkZJTikKKwlpZiAodXBlZWsodGNwLCBQVF9SMCwgJnIwKSA8IDApCisJCXJldHVybiAtMTsKICNlbGlmIGRlZmluZWQgKEhQUEEpCi0JaWYgKHVwZWVrKHBpZCwgUFRfR1IyOCwgJnIyOCkgPCAwKQorCWlmICh1cGVlayh0Y3AsIFBUX0dSMjgsICZyMjgpIDwgMCkKIAkJcmV0dXJuIC0xOwogI2VsaWYgZGVmaW5lZChJQTY0KQotCWlmICh1cGVlayhwaWQsIFBUX1IxMCwgJnIxMCkgPCAwKQorCWlmICh1cGVlayh0Y3AsIFBUX1IxMCwgJnIxMCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0JaWYgKHVwZWVrKHBpZCwgUFRfUjgsICZyOCkgPCAwKQorCWlmICh1cGVlayh0Y3AsIFBUX1I4LCAmcjgpIDwgMCkKIAkJcmV0dXJuIC0xOwogCWlmIChpYTMyICYmIHI4ICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKIAkJaWYgKGRlYnVnKQogCQkJZnByaW50ZihzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IHI4ID0gJWxkXG4iLCByOCk7CiAJCXJldHVybiAwOwogCX0KKyNlbGlmIGRlZmluZWQoQ1JJU1YxMCkgfHwgZGVmaW5lZChDUklTVjMyKQorCWlmICh1cGVlayh0Y3AsIDQqUFRfUjEwLCAmcjEwKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAocjEwICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJaWYgKGRlYnVnKQorCQkJZnByaW50ZihzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IHIxMCA9ICVsZFxuIiwgcjEwKTsKKwkJcmV0dXJuIDA7CisJfQorI2VsaWYgZGVmaW5lZChNSUNST0JMQVpFKQorCWlmICh1cGVlayh0Y3AsIDMgKiA0LCAmcjMpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChyMyAhPSAtRU5PU1lTICYmICEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAic3RyYXkgc3lzY2FsbCBleGl0OiByMyA9ICVsZFxuIiwgcjMpOworCQlyZXR1cm4gMDsKKwl9CiAjZW5kaWYKICNlbmRpZiAvKiBMSU5VWCAqLwogCXJldHVybiAxOwogfQogCisjaWZkZWYgTElOVVgKKy8qCisgKiBDaGVjayB0aGUgc3lzY2FsbCByZXR1cm4gdmFsdWUgcmVnaXN0ZXIgdmFsdWUgZm9yIHdoZXRoZXIgaXQgaXMKKyAqIGEgbmVnYXRlZCBlcnJubyBjb2RlIGluZGljYXRpbmcgYW4gZXJyb3IsIG9yIGEgc3VjY2VzcyByZXR1cm4gdmFsdWUuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50Citpc19uZWdhdGVkX2Vycm5vKHVuc2lnbmVkIGxvbmcgaW50IHZhbCkKK3sKKwl1bnNpZ25lZCBsb25nIGludCBtYXggPSAtKGxvbmcgaW50KSBuZXJybm9zOworCWlmIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA8IHNpemVvZih2YWwpKSB7CisJCXZhbCA9ICh1bnNpZ25lZCBpbnQpIHZhbDsKKwkJbWF4ID0gKHVuc2lnbmVkIGludCkgbWF4OworCX0KKwlyZXR1cm4gdmFsID4gbWF4OworfQorI2VuZGlmCisKIHN0YXRpYyBpbnQKLWdldF9lcnJvcih0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7CitnZXRfZXJyb3Ioc3RydWN0IHRjYiAqdGNwKQogewogCWludCB1X2Vycm9yID0gMDsKICNpZmRlZiBMSU5VWAotI2lmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKLQkJaWYgKGdwcjIgJiYgKHVuc2lnbmVkKSAtZ3ByMiA8IG5lcnJub3MpIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gLWdwcjI7Ci0JCX0KLQkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IGdwcjI7Ci0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2Vsc2UgLyogIVMzOTAgJiYgIVMzOTBYICovCi0jaWZkZWYgSTM4NgotCQlpZiAoZWF4IDwgMCAmJiAtZWF4IDwgbmVycm5vcykgewotCQkJdGNwLT51X3J2YWwgPSAtMTsKLQkJCXVfZXJyb3IgPSAtZWF4OwotCQl9Ci0JCWVsc2UgewotCQkJdGNwLT51X3J2YWwgPSBlYXg7Ci0JCQl1X2Vycm9yID0gMDsKLQkJfQotI2Vsc2UgLyogIUkzODYgKi8KLSNpZmRlZiBYODZfNjQKLQkJaWYgKHJheCA8IDAgJiYgLXJheCA8IG5lcnJub3MpIHsKLQkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gLXJheDsKLQkJfQotCQllbHNlIHsKLQkJCXRjcC0+dV9ydmFsID0gcmF4OwotCQkJdV9lcnJvciA9IDA7Ci0JCX0KLSNlbHNlCi0jaWZkZWYgSUE2NAotCQlpZiAoaWEzMikgewotCQkJaW50IGVycjsKKwlpbnQgY2hlY2tfZXJybm8gPSAxOworCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYKKwkgICAgc3lzZW50W3RjcC0+c2Nub10uc3lzX2ZsYWdzICYgU1lTQ0FMTF9ORVZFUl9GQUlMUykgeworCQljaGVja19lcnJubyA9IDA7CisJfQorIyBpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCisJaWYgKGNoZWNrX2Vycm5vICYmIGlzX25lZ2F0ZWRfZXJybm8oZ3ByMikpIHsKKwkJdGNwLT51X3J2YWwgPSAtMTsKKwkJdV9lcnJvciA9IC1ncHIyOworCX0KKwllbHNlIHsKKwkJdGNwLT51X3J2YWwgPSBncHIyOworCQl1X2Vycm9yID0gMDsKKwl9CisjIGVsaWYgZGVmaW5lZChJMzg2KQorCWlmIChjaGVja19lcnJubyAmJiBpc19uZWdhdGVkX2Vycm5vKGVheCkpIHsKKwkJdGNwLT51X3J2YWwgPSAtMTsKKwkJdV9lcnJvciA9IC1lYXg7CisJfQorCWVsc2UgeworCQl0Y3AtPnVfcnZhbCA9IGVheDsKKwkJdV9lcnJvciA9IDA7CisJfQorIyBlbGlmIGRlZmluZWQoWDg2XzY0KQorCWlmIChjaGVja19lcnJubyAmJiBpc19uZWdhdGVkX2Vycm5vKHJheCkpIHsKKwkJdGNwLT51X3J2YWwgPSAtMTsKKwkJdV9lcnJvciA9IC1yYXg7CisJfQorCWVsc2UgeworCQl0Y3AtPnVfcnZhbCA9IHJheDsKKwkJdV9lcnJvciA9IDA7CisJfQorIyBlbGlmIGRlZmluZWQoSUE2NCkKKwlpZiAoaWEzMikgeworCQlpbnQgZXJyOwogCi0JCQllcnIgPSAoaW50KXI4OwotCQkJaWYgKGVyciA8IDAgJiYgLWVyciA8IG5lcnJub3MpIHsKLQkJCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJCXVfZXJyb3IgPSAtZXJyOwotCQkJfQotCQkJZWxzZSB7Ci0JCQkJdGNwLT51X3J2YWwgPSBlcnI7Ci0JCQkJdV9lcnJvciA9IDA7Ci0JCQl9Ci0JCX0gZWxzZSB7Ci0JCQlpZiAocjEwKSB7Ci0JCQkJdGNwLT51X3J2YWwgPSAtMTsKLQkJCQl1X2Vycm9yID0gcjg7Ci0JCQl9IGVsc2UgewotCQkJCXRjcC0+dV9ydmFsID0gcjg7Ci0JCQkJdV9lcnJvciA9IDA7Ci0JCQl9CisJCWVyciA9IChpbnQpcjg7CisJCWlmIChjaGVja19lcnJubyAmJiBpc19uZWdhdGVkX2Vycm5vKGVycikpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gLWVycjsKIAkJfQotI2Vsc2UgLyogIUlBNjQgKi8KLSNpZmRlZiBNSVBTCi0JCWlmIChhMykgewotCQkgIAl0Y3AtPnVfcnZhbCA9IC0xOworCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gZXJyOworCQkJdV9lcnJvciA9IDA7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoY2hlY2tfZXJybm8gJiYgcjEwKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJdV9lcnJvciA9IHI4OworCQl9IGVsc2UgeworCQkJdGNwLT51X3J2YWwgPSByODsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisJfQorIyBlbGlmIGRlZmluZWQoTUlQUykKKwkJaWYgKGNoZWNrX2Vycm5vICYmIGEzKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOwogCQkJdV9lcnJvciA9IHIyOwogCQl9IGVsc2UgewotCQkgIAl0Y3AtPnVfcnZhbCA9IHIyOworCQkJdGNwLT51X3J2YWwgPSByMjsKIAkJCXVfZXJyb3IgPSAwOwogCQl9Ci0jZWxzZQotI2lmZGVmIFBPV0VSUEMKLQkJaWYgKHJlc3VsdCAmJiAodW5zaWduZWQgbG9uZykgLXJlc3VsdCA8IG5lcnJub3MpIHsKKyMgZWxpZiBkZWZpbmVkKFBPV0VSUEMpCisJCWlmIChjaGVja19lcnJubyAmJiBpc19uZWdhdGVkX2Vycm5vKHJlc3VsdCkpIHsKIAkJCXRjcC0+dV9ydmFsID0gLTE7CiAJCQl1X2Vycm9yID0gLXJlc3VsdDsKIAkJfQpAQCAtMTUyMCw5ICsxNjA0LDggQEAKIAkJCXRjcC0+dV9ydmFsID0gcmVzdWx0OwogCQkJdV9lcnJvciA9IDA7CiAJCX0KLSNlbHNlIC8qICFQT1dFUlBDICovCi0jaWZkZWYgTTY4SwotCQlpZiAoZDAgJiYgKHVuc2lnbmVkKSAtZDAgPCBuZXJybm9zKSB7CisjIGVsaWYgZGVmaW5lZChNNjhLKQorCQlpZiAoY2hlY2tfZXJybm8gJiYgaXNfbmVnYXRlZF9lcnJubyhkMCkpIHsKIAkJCXRjcC0+dV9ydmFsID0gLTE7CiAJCQl1X2Vycm9yID0gLWQwOwogCQl9CkBAIC0xNTMwLDkgKzE2MTMsOCBAQAogCQkJdGNwLT51X3J2YWwgPSBkMDsKIAkJCXVfZXJyb3IgPSAwOwogCQl9Ci0jZWxzZSAvKiAhTTY4SyAqLwotI2lmZGVmIEFSTQotCQlpZiAocmVncy5BUk1fcjAgJiYgKHVuc2lnbmVkKSAtcmVncy5BUk1fcjAgPCBuZXJybm9zKSB7CisjIGVsaWYgZGVmaW5lZChBUk0pCisJCWlmIChjaGVja19lcnJubyAmJiBpc19uZWdhdGVkX2Vycm5vKHJlZ3MuQVJNX3IwKSkgewogCQkJdGNwLT51X3J2YWwgPSAtMTsKIAkJCXVfZXJyb3IgPSAtcmVncy5BUk1fcjA7CiAJCX0KQEAgLTE1NDAsOSArMTYyMiwyNSBAQAogCQkJdGNwLT51X3J2YWwgPSByZWdzLkFSTV9yMDsKIAkJCXVfZXJyb3IgPSAwOwogCQl9Ci0jZWxzZSAvKiAhQVJNICovCi0jaWZkZWYgQUxQSEEKLQkJaWYgKGEzKSB7CisjIGVsaWYgZGVmaW5lZChBVlIzMikKKwkJaWYgKGNoZWNrX2Vycm5vICYmIHJlZ3MucjEyICYmICh1bnNpZ25lZCkgLXJlZ3MucjEyIDwgbmVycm5vcykgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSAtcmVncy5yMTI7CisJCX0KKwkJZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IHJlZ3MucjEyOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyMgZWxpZiBkZWZpbmVkKEJGSU4pCisJCWlmIChjaGVja19lcnJubyAmJiBpc19uZWdhdGVkX2Vycm5vKHIwKSkgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSAtcjA7CisJCX0gZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IHIwOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyMgZWxpZiBkZWZpbmVkKEFMUEhBKQorCQlpZiAoY2hlY2tfZXJybm8gJiYgYTMpIHsKIAkJCXRjcC0+dV9ydmFsID0gLTE7CiAJCQl1X2Vycm9yID0gcjA7CiAJCX0KQEAgLTE1NTAsMjkgKzE2NDgsMjYgQEAKIAkJCXRjcC0+dV9ydmFsID0gcjA7CiAJCQl1X2Vycm9yID0gMDsKIAkJfQotI2Vsc2UgLyogIUFMUEhBICovCi0jaWZkZWYgU1BBUkMKLQkJaWYgKHJlZ3Mucl9wc3IgJiBQU1JfQykgeworIyBlbGlmIGRlZmluZWQoU1BBUkMpCisJCWlmIChjaGVja19lcnJubyAmJiByZWdzLnBzciAmIFBTUl9DKSB7CiAJCQl0Y3AtPnVfcnZhbCA9IC0xOwotCQkJdV9lcnJvciA9IHJlZ3Mucl9vMDsKKwkJCXVfZXJyb3IgPSByZWdzLnVfcmVnc1tVX1JFR19PMF07CiAJCX0KIAkJZWxzZSB7Ci0JCQl0Y3AtPnVfcnZhbCA9IHJlZ3Mucl9vMDsKKwkJCXRjcC0+dV9ydmFsID0gcmVncy51X3JlZ3NbVV9SRUdfTzBdOwogCQkJdV9lcnJvciA9IDA7CiAJCX0KLSNlbHNlIC8qICFTUEFSQyAqLwotI2lmZGVmIFNQQVJDNjQKLQkJaWYgKHJlZ3Mucl90c3RhdGUgJiAweDExMDAwMDAwMDBVTCkgeworIyBlbGlmIGRlZmluZWQoU1BBUkM2NCkKKwkJaWYgKGNoZWNrX2Vycm5vICYmIHJlZ3MudHN0YXRlICYgMHgxMTAwMDAwMDAwVUwpIHsKIAkJCXRjcC0+dV9ydmFsID0gLTE7Ci0JCQl1X2Vycm9yID0gcmVncy5yX28wOworCQkJdV9lcnJvciA9IHJlZ3MudV9yZWdzW1VfUkVHX08wXTsKIAkJfQogCQllbHNlIHsKLQkJCXRjcC0+dV9ydmFsID0gcmVncy5yX28wOworCQkJdGNwLT51X3J2YWwgPSByZWdzLnVfcmVnc1tVX1JFR19PMF07CiAJCQl1X2Vycm9yID0gMDsKIAkJfQotI2Vsc2UgLyogIVNQQVJDNjQgKi8KLSNpZmRlZiBIUFBBCi0JCWlmIChyMjggJiYgKHVuc2lnbmVkKSAtcjI4IDwgbmVycm5vcykgeworIyBlbGlmIGRlZmluZWQoSFBQQSkKKwkJaWYgKGNoZWNrX2Vycm5vICYmIGlzX25lZ2F0ZWRfZXJybm8ocjI4KSkgewogCQkJdGNwLT51X3J2YWwgPSAtMTsKIAkJCXVfZXJyb3IgPSAtcjI4OwogCQl9CkBAIC0xNTgwLDUxICsxNjc1LDY4IEBACiAJCQl0Y3AtPnVfcnZhbCA9IHIyODsKIAkJCXVfZXJyb3IgPSAwOwogCQl9Ci0jZWxzZQotI2lmZGVmIFNICi0gICAgICAgICAgICAgICAvKiBpbnRlcnByZXQgUjAgYXMgcmV0dXJuIHZhbHVlIG9yIGVycm9yIG51bWJlciAqLwotICAgICAgICAgICAgICAgaWYgKHIwICYmICh1bnNpZ25lZCkgLXIwIDwgbmVycm5vcykgewotICAgICAgICAgICAgICAgICAgICAgICB0Y3AtPnVfcnZhbCA9IC0xOwotICAgICAgICAgICAgICAgICAgICAgICB1X2Vycm9yID0gLXIwOwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHRjcC0+dV9ydmFsID0gcjA7Ci0gICAgICAgICAgICAgICAgICAgICAgIHVfZXJyb3IgPSAwOwotICAgICAgICAgICAgICAgfQotI2Vsc2UKLSNpZmRlZiBTSDY0Ci0gICAgICAgICAgICAgICAgLyogaW50ZXJwcmV0IHJlc3VsdCBhcyByZXR1cm4gdmFsdWUgb3IgZXJyb3IgbnVtYmVyICovCi0gICAgICAgICAgICAgICAgaWYgKHI5ICYmICh1bnNpZ25lZCkgLXI5IDwgbmVycm5vcykgewotCSAgICAgICAgICAgICAgICB0Y3AtPnVfcnZhbCA9IC0xOwotCSAgICAgICAgICAgICAgICB1X2Vycm9yID0gLXI5OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRjcC0+dV9ydmFsID0gcjk7Ci0JICAgICAgICAgICAgICAgIHVfZXJyb3IgPSAwOwotICAgICAgICAgICAgICAgIH0KLSNlbmRpZiAvKiBTSDY0ICovCi0jZW5kaWYgLyogU0ggKi8KLSNlbmRpZiAvKiBIUFBBICovCi0jZW5kaWYgLyogU1BBUkMgKi8KLSNlbmRpZiAvKiBTUEFSQzY0ICovCi0jZW5kaWYgLyogQUxQSEEgKi8KLSNlbmRpZiAvKiBBUk0gKi8KLSNlbmRpZiAvKiBNNjhLICovCi0jZW5kaWYgLyogUE9XRVJQQyAqLwotI2VuZGlmIC8qIE1JUFMgKi8KLSNlbmRpZiAvKiBJQTY0ICovCi0jZW5kaWYgLyogWDg2XzY0ICovCi0jZW5kaWYgLyogSTM4NiAqLwotI2VuZGlmIC8qIFMzOTAgfHwgUzM5MFggKi8KKyMgZWxpZiBkZWZpbmVkKFNIKQorCQkvKiBpbnRlcnByZXQgUjAgYXMgcmV0dXJuIHZhbHVlIG9yIGVycm9yIG51bWJlciAqLworCQlpZiAoY2hlY2tfZXJybm8gJiYgaXNfbmVnYXRlZF9lcnJubyhyMCkpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gLXIwOworCQl9CisJCWVsc2UgeworCQkJdGNwLT51X3J2YWwgPSByMDsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjIGVsaWYgZGVmaW5lZChTSDY0KQorCQkvKiBpbnRlcnByZXQgcmVzdWx0IGFzIHJldHVybiB2YWx1ZSBvciBlcnJvciBudW1iZXIgKi8KKwkJaWYgKGNoZWNrX2Vycm5vICYmIGlzX25lZ2F0ZWRfZXJybm8ocjkpKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJdV9lcnJvciA9IC1yOTsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gcjk7CisJCQl1X2Vycm9yID0gMDsKKwkJfQorIyBlbGlmIGRlZmluZWQoQ1JJU1YxMCkgfHwgZGVmaW5lZChDUklTVjMyKQorCQlpZiAoY2hlY2tfZXJybm8gJiYgcjEwICYmICh1bnNpZ25lZCkgLXIxMCA8IG5lcnJub3MpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gLXIxMDsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gcjEwOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyMgZWxpZiBkZWZpbmVkKFRJTEUpCisJCWxvbmcgcnZhbDsKKwkJLyogaW50ZXJwcmV0IHJlc3VsdCBhcyByZXR1cm4gdmFsdWUgb3IgZXJyb3IgbnVtYmVyICovCisJCWlmICh1cGVlayh0Y3AsIFBUUkVHU19PRkZTRVRfUkVHKDApLCAmcnZhbCkgPCAwKQorCQkJcmV0dXJuIC0xOworCQlpZiAoY2hlY2tfZXJybm8gJiYgcnZhbCA8IDAgJiYgcnZhbCA+IC1uZXJybm9zKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJdV9lcnJvciA9IC1ydmFsOworCQl9CisJCWVsc2UgeworCQkJdGNwLT51X3J2YWwgPSBydmFsOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyMgZWxpZiBkZWZpbmVkKE1JQ1JPQkxBWkUpCisJCS8qIGludGVycHJldCByZXN1bHQgYXMgcmV0dXJuIHZhbHVlIG9yIGVycm9yIG51bWJlciAqLworCQlpZiAoY2hlY2tfZXJybm8gJiYgaXNfbmVnYXRlZF9lcnJubyhyMykpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gLXIzOworCQl9CisJCWVsc2UgeworCQkJdGNwLT51X3J2YWwgPSByMzsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjIGVuZGlmCiAjZW5kaWYgLyogTElOVVggKi8KICNpZmRlZiBTVU5PUzQKIAkJLyogZ2V0IGVycm9yIGNvZGUgZnJvbSB1c2VyIHN0cnVjdCAqLwotCQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfZXJyb3IpLCAmdV9lcnJvcikgPCAwKQorCQlpZiAodXBlZWsodGNwLCB1b2ZmKHVfZXJyb3IpLCAmdV9lcnJvcikgPCAwKQogCQkJcmV0dXJuIC0xOwogCQl1X2Vycm9yID4+PSAyNDsgLyogdV9lcnJvciBpcyBhIGNoYXIgKi8KIAogCQkvKiBnZXQgc3lzdGVtIGNhbGwgcmV0dXJuIHZhbHVlICovCi0JCWlmICh1cGVlayhwaWQsIHVvZmYodV9ydmFsMSksICZ0Y3AtPnVfcnZhbCkgPCAwKQorCQlpZiAodXBlZWsodGNwLCB1b2ZmKHVfcnZhbDEpLCAmdGNwLT51X3J2YWwpIDwgMCkKIAkJCXJldHVybiAtMTsKICNlbmRpZiAvKiBTVU5PUzQgKi8KICNpZmRlZiBTVlI0CkBAIC0xNjc5LDEwICsxNzkxLDEwIEBACiAjZW5kaWYgLyogU1ZSNCAqLwogI2lmZGVmIEZSRUVCU0QKIAkJaWYgKHJlZ3Mucl9lZmxhZ3MgJiBQU0xfQykgewotIAkJICAgICAgICB0Y3AtPnVfcnZhbCA9IC0xOworCQkJdGNwLT51X3J2YWwgPSAtMTsKIAkJICAgICAgICB1X2Vycm9yID0gcmVncy5yX2VheDsKIAkJfSBlbHNlIHsKLQkJICAgICAgICB0Y3AtPnVfcnZhbCA9IHJlZ3Mucl9lYXg7CisJCQl0Y3AtPnVfcnZhbCA9IHJlZ3Mucl9lYXg7CiAJCQl0Y3AtPnVfbHJ2YWwgPQogCQkJICAoKHVuc2lnbmVkIGxvbmcgbG9uZykgcmVncy5yX2VkeCA8PCAzMikgKyAgcmVncy5yX2VheDsKIAkJICAgICAgICB1X2Vycm9yID0gMDsKQEAgLTE2OTksMjIgKzE4MTEsMTkgQEAKIAlsb25nIHJ2YWw7CiB7CiAjaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCisjIGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKIAlncHIyID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOwogCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKVBUX0dQUjIsIGdwcjIpIDwgMCkKIAkJcmV0dXJuIC0xOwotI2Vsc2UgLyogIVMzOTAgJiYgIVMzOTBYICovCi0jaWZkZWYgSTM4NgorIyBlbGlmIGRlZmluZWQoSTM4NikKIAllYXggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKEVBWCAqIDQpLCBlYXgpIDwgMCkKIAkJcmV0dXJuIC0xOwotI2Vsc2UgLyogIUkzODYgKi8KLSNpZmRlZiBYODZfNjQKKyMgZWxpZiBkZWZpbmVkKFg4Nl82NCkKIAlyYXggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJBWCAqIDgpLCByYXgpIDwgMCkKIAkJcmV0dXJuIC0xOwotI2Vsc2UKLSNpZmRlZiBJQTY0CisjIGVsaWYgZGVmaW5lZChJQTY0KQogCWlmIChpYTMyKSB7CiAJCXI4ID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOwogCQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUFRfUjgpLCByOCkgPCAwKQpAQCAtMTczMyw4ICsxODQyLDExIEBACiAJCSAgICBwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9SMTApLCByMTApIDwgMCkKIAkJCXJldHVybiAtMTsKIAl9Ci0jZWxzZSAvKiAhSUE2NCAqLwotI2lmZGVmIE1JUFMKKyMgZWxpZiBkZWZpbmVkKEJGSU4pCisJcjAgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopUFRfUjAsIHIwKSA8IDApCisJCXJldHVybiAtMTsKKyMgZWxpZiBkZWZpbmVkKE1JUFMpCiAJaWYgKGVycm9yKSB7CiAJCXIyID0gZXJyb3I7CiAJCWEzID0gLTE7CkBAIC0xNzQzLDEyICsxODU1LDEyIEBACiAJCXIyID0gcnZhbDsKIAkJYTMgPSAwOwogCX0KKwkvKiBQVFJBQ0VfUE9LRVVTRVIgaXMgT0sgZXZlbiBmb3IgbjMyIHNpbmNlIHJ2YWwgaXMgb25seSBhIGxvbmcuICAqLwogCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfQTMpLCBhMykgPCAwIHx8CiAJICAgIHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19WMCksIHIyKSA8IDApCi0JICAgIAlyZXR1cm4gLTE7Ci0jZWxzZQotI2lmZGVmIFBPV0VSUEMKLQlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9DQ1IsICZmbGFncykgPCAwKQorCQlyZXR1cm4gLTE7CisjIGVsaWYgZGVmaW5lZChQT1dFUlBDKQorCWlmICh1cGVlayh0Y3AsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9DQ1IsICZmbGFncykgPCAwKQogCQlyZXR1cm4gLTE7CiAJaWYgKGVycm9yKSB7CiAJCWZsYWdzIHw9IFNPX01BU0s7CkBAIC0xNzYxLDE4ICsxODczLDE5IEBACiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9DQ1IpLCBmbGFncykgPCAwIHx8CiAJICAgIHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMyksIHJlc3VsdCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhUE9XRVJQQyAqLwotI2lmZGVmIE02OEsKKyMgZWxpZiBkZWZpbmVkKE02OEspCiAJZDAgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqUFRfRDApLCBkMCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhTTY4SyAqLwotI2lmZGVmIEFSTQotICAgICAgIHJlZ3MuQVJNX3IwID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOwotICAgICAgIGlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg0KjApLCByZWdzLkFSTV9yMCkgPCAwKQorIyBlbGlmIGRlZmluZWQoQVJNKQorCXJlZ3MuQVJNX3IwID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOworCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg0KjApLCByZWdzLkFSTV9yMCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhQVJNICovCi0jaWZkZWYgQUxQSEEKKyMgZWxpZiBkZWZpbmVkKEFWUjMyKQorCXJlZ3MucjEyID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOworCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKVJFR19SMTIsIHJlZ3MucjEyKSA8IDApCisJCXJldHVybiAtMTsKKyMgZWxpZiBkZWZpbmVkKEFMUEhBKQogCWlmIChlcnJvcikgewogCQlhMyA9IC0xOwogCQlyMCA9IGVycm9yOwpAQCAtMTc4NCw3OSArMTg5Nyw2NCBAQAogCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfQTMpLCBhMykgPCAwIHx8CiAJICAgIHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19SMCksIHIwKSA8IDApCiAJCXJldHVybiAtMTsKLSNlbHNlIC8qICFBTFBIQSAqLwotI2lmZGVmIFNQQVJDCisjIGVsaWYgZGVmaW5lZChTUEFSQykKIAlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKQogCQlyZXR1cm4gLTE7CiAJaWYgKGVycm9yKSB7Ci0JCXJlZ3Mucl9wc3IgfD0gUFNSX0M7Ci0JCXJlZ3Mucl9vMCA9IGVycm9yOworCQlyZWdzLnBzciB8PSBQU1JfQzsKKwkJcmVncy51X3JlZ3NbVV9SRUdfTzBdID0gZXJyb3I7CiAJfQogCWVsc2UgewotCQlyZWdzLnJfcHNyICY9IH5QU1JfQzsKLQkJcmVncy5yX28wID0gcnZhbDsKKwkJcmVncy5wc3IgJj0gflBTUl9DOworCQlyZWdzLnVfcmVnc1tVX1JFR19PMF0gPSBydmFsOwogCX0KIAlpZiAocHRyYWNlKFBUUkFDRV9TRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxzZSAvKiAhU1BBUkMgKi8KLSNpZmRlZiBTUEFSQzY0CisjIGVsaWYgZGVmaW5lZChTUEFSQzY0KQogCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApCiAJCXJldHVybiAtMTsKIAlpZiAoZXJyb3IpIHsKLQkJcmVncy5yX3RzdGF0ZSB8PSAweDExMDAwMDAwMDBVTDsKLQkJcmVncy5yX28wID0gZXJyb3I7CisJCXJlZ3MudHN0YXRlIHw9IDB4MTEwMDAwMDAwMFVMOworCQlyZWdzLnVfcmVnc1tVX1JFR19PMF0gPSBlcnJvcjsKIAl9CiAJZWxzZSB7Ci0JCXJlZ3Mucl90c3RhdGUgJj0gfjB4MTEwMDAwMDAwMFVMOwotCQlyZWdzLnJfbzAgPSBydmFsOworCQlyZWdzLnRzdGF0ZSAmPSB+MHgxMTAwMDAwMDAwVUw7CisJCXJlZ3MudV9yZWdzW1VfUkVHX08wXSA9IHJ2YWw7CiAJfQogCWlmIChwdHJhY2UoUFRSQUNFX1NFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApCiAJCXJldHVybiAtMTsKLSNlbHNlIC8qICFTUEFSQzY0ICovCi0jaWZkZWYgSFBQQQorIyBlbGlmIGRlZmluZWQoSFBQQSkKIAlyMjggPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX0dSMjgpLCByMjgpIDwgMCkKIAkJcmV0dXJuIC0xOwotI2Vsc2UKLSNpZmRlZiBTSAorIyBlbGlmIGRlZmluZWQoU0gpCiAJcjAgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CiAJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqUkVHX1JFRzApLCByMCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZWxzZQotI2lmZGVmIFNINjQKLSAgICAgICAgcjkgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CisjIGVsaWYgZGVmaW5lZChTSDY0KQorCXI5ID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOwogCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKVJFR19HRU5FUkFMKDkpLCByOSkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZW5kaWYgLyogU0g2NCAqLwotI2VuZGlmIC8qIFNIICovCi0jZW5kaWYgLyogSFBQQSAqLwotI2VuZGlmIC8qIFNQQVJDICovCi0jZW5kaWYgLyogU1BBUkM2NCAqLwotI2VuZGlmIC8qIEFMUEhBICovCi0jZW5kaWYgLyogQVJNICovCi0jZW5kaWYgLyogTTY4SyAqLwotI2VuZGlmIC8qIFBPV0VSUEMgKi8KLSNlbmRpZiAvKiBNSVBTICovCi0jZW5kaWYgLyogSUE2NCAqLwotI2VuZGlmIC8qIFg4Nl82NCAqLwotI2VuZGlmIC8qIEkzODYgKi8KLSNlbmRpZiAvKiBTMzkwIHx8IFMzOTBYICovCisjIGVuZGlmCiAjZW5kaWYgLyogTElOVVggKi8KKwogI2lmZGVmIFNVTk9TNAogCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKXVvZmYodV9lcnJvciksCiAJCSAgIGVycm9yIDw8IDI0KSA8IDAgfHwKIAkgICAgcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKil1b2ZmKHVfcnZhbDEpLCBydmFsKSA8IDApCiAJCXJldHVybiAtMTsKICNlbmRpZiAvKiBTVU5PUzQgKi8KKwogI2lmZGVmIFNWUjQKIAkvKiBYWFggbm8gY2x1ZSAqLwogCXJldHVybiAtMTsKICNlbmRpZiAvKiBTVlI0ICovCisKICNpZmRlZiBGUkVFQlNECiAJaWYgKHByZWFkKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCkgPCAwKSB7Ci0JICAgICAgICBwZXJyb3IoInByZWFkIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9CisJCXBlcnJvcigicHJlYWQiKTsKKwkJcmV0dXJuIC0xOworCX0KIAlpZiAoZXJyb3IpIHsKIAkJcmVncy5yX2VmbGFncyB8PSBQU0xfQzsKIAkJcmVncy5yX2VheCA9IGVycm9yOwpAQCAtMTg2Niw5ICsxOTY0LDkgQEAKIAkJcmVncy5yX2VheCA9IHJ2YWw7CiAJfQogCWlmIChwd3JpdGUodGNwLT5wZmRfcmVnLCAmcmVncywgc2l6ZW9mKHJlZ3MpLCAwKSA8IDApIHsKLQkgICAgICAgIHBlcnJvcigicHdyaXRlIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9CisJCXBlcnJvcigicHdyaXRlIik7CisJCXJldHVybiAtMTsKKwl9CiAjZW5kaWYgLyogRlJFRUJTRCAqLwogCiAJLyogQWxsIGJyYW5jaGVzIHJlYWNoIGhlcmUgb24gc3VjY2VzcyAob25seSkuICAqLwpAQCAtMTg3OCwxMiArMTk3Niw4IEBACiB9CiAKIHN0YXRpYyBpbnQKLXN5c2NhbGxfZW50ZXIodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzY2FsbF9lbnRlcihzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0jaWZuZGVmIFVTRV9QUk9DRlMKLQlpbnQgcGlkID0gdGNwLT5waWQ7Ci0jZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KICNpZmRlZiBMSU5VWAogI2lmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKIAl7CkBAIC0xODkxLDkgKzE5ODUsOSBAQAogCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQogCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CiAJCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CiAJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCxpPT0wID8gUFRfT1JJR0dQUjI6UFRfR1BSMitpKnNpemVvZihsb25nKSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCWlmICh1cGVlayh0Y3AsaT09MCA/IFBUX09SSUdHUFIyOlBUX0dQUjIraSpzaXplb2YobG9uZyksICZ0Y3AtPnVfYXJnW2ldKSA8IDApCiAJCQkJcmV0dXJuIC0xOwogCQl9CiAJfQpAQCAtMTkwMywzMiArMTk5NywzMyBAQAogCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQogCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CiAJCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CiAJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewogCQkJLyogV1RBOiBpZiBzY25vIGlzIG91dC1vZi1ib3VuZHMgdGhpcyB3aWxsIGJvbWIuIEFkZCByYW5nZS1jaGVjawogCQkJICogZm9yIHNjbm8gc29tZXdoZXJlIGFib3ZlIGhlcmUhCiAJCQkgKi8KLQkJCWlmICh1cGVlayhwaWQsIFJFR19BMCtpLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJaWYgKHVwZWVrKHRjcCwgUkVHX0EwK2ksICZ0Y3AtPnVfYXJnW2ldKSA8IDApCiAJCQkJcmV0dXJuIC0xOwogCQl9CiAJfQogI2VsaWYgZGVmaW5lZCAoSUE2NCkKIAl7CiAJCWlmICghaWEzMikgewotCQkJdW5zaWduZWQgbG9uZyAqb3V0MCwgKnJic19lbmQsIGNmbSwgc29mLCBzb2wsIGk7CisJCQl1bnNpZ25lZCBsb25nICpvdXQwLCBjZm0sIHNvZiwgc29sLCBpOworCQkJbG9uZyByYnNfZW5kOwogCQkJLyogYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBrZXJuZWwgPCAyLjQuNC4uLiAqLwogIwkJCWlmbmRlZiBQVF9SQlNfRU5ECiAjCQkJICBkZWZpbmUgUFRfUkJTX0VORAlQVF9BUl9CU1AKICMJCQllbmRpZgogCi0JCQlpZiAodXBlZWsocGlkLCBQVF9SQlNfRU5ELCAobG9uZyAqKSAmcmJzX2VuZCkgPCAwKQorCQkJaWYgKHVwZWVrKHRjcCwgUFRfUkJTX0VORCwgJnJic19lbmQpIDwgMCkKIAkJCQlyZXR1cm4gLTE7Ci0JCQlpZiAodXBlZWsocGlkLCBQVF9DRk0sIChsb25nICopICZjZm0pIDwgMCkKKwkJCWlmICh1cGVlayh0Y3AsIFBUX0NGTSwgKGxvbmcgKikgJmNmbSkgPCAwKQogCQkJCXJldHVybiAtMTsKIAogCQkJc29mID0gKGNmbSA+PiAwKSAmIDB4N2Y7CiAJCQlzb2wgPSAoY2ZtID4+IDcpICYgMHg3ZjsKLQkJCW91dDAgPSBpYTY0X3JzZV9za2lwX3JlZ3MocmJzX2VuZCwgLXNvZiArIHNvbCk7CisJCQlvdXQwID0gaWE2NF9yc2Vfc2tpcF9yZWdzKCh1bnNpZ25lZCBsb25nICopIHJic19lbmQsIC1zb2YgKyBzb2wpOwogCiAJCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzCiAJCQkgICAgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCkBAIC0xOTQ0LDE3ICsyMDM5LDE3IEBACiAJCQlpbnQgaTsKIAogCQkJaWYgKC8qIEVCWCA9IG91dDAgKi8KLQkJCSAgICB1cGVlayhwaWQsIFBUX1IxMSwgKGxvbmcgKikgJnRjcC0+dV9hcmdbMF0pIDwgMAorCQkJICAgIHVwZWVrKHRjcCwgUFRfUjExLCAobG9uZyAqKSAmdGNwLT51X2FyZ1swXSkgPCAwCiAJCQkgICAgLyogRUNYID0gb3V0MSAqLwotCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjksICAobG9uZyAqKSAmdGNwLT51X2FyZ1sxXSkgPCAwCisJCQkgICAgfHwgdXBlZWsodGNwLCBQVF9SOSwgIChsb25nICopICZ0Y3AtPnVfYXJnWzFdKSA8IDAKIAkJCSAgICAvKiBFRFggPSBvdXQyICovCi0JCQkgICAgfHwgdXBlZWsocGlkLCBQVF9SMTAsIChsb25nICopICZ0Y3AtPnVfYXJnWzJdKSA8IDAKKwkJCSAgICB8fCB1cGVlayh0Y3AsIFBUX1IxMCwgKGxvbmcgKikgJnRjcC0+dV9hcmdbMl0pIDwgMAogCQkJICAgIC8qIEVTSSA9IG91dDMgKi8KLQkJCSAgICB8fCB1cGVlayhwaWQsIFBUX1IxNCwgKGxvbmcgKikgJnRjcC0+dV9hcmdbM10pIDwgMAorCQkJICAgIHx8IHVwZWVrKHRjcCwgUFRfUjE0LCAobG9uZyAqKSAmdGNwLT51X2FyZ1szXSkgPCAwCiAJCQkgICAgLyogRURJID0gb3V0NCAqLwotCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjE1LCAobG9uZyAqKSAmdGNwLT51X2FyZ1s0XSkgPCAwCisJCQkgICAgfHwgdXBlZWsodGNwLCBQVF9SMTUsIChsb25nICopICZ0Y3AtPnVfYXJnWzRdKSA8IDAKIAkJCSAgICAvKiBFQlAgPSBvdXQ1ICovCi0JCQkgICAgfHwgdXBlZWsocGlkLCBQVF9SMTMsIChsb25nICopICZ0Y3AtPnVfYXJnWzVdKSA8IDApCisJCQkgICAgfHwgdXBlZWsodGNwLCBQVF9SMTMsIChsb25nICopICZ0Y3AtPnVfYXJnWzVdKSA8IDApCiAJCQkJcmV0dXJuIC0xOwogCiAJCQlmb3IgKGkgPSAwOyBpIDwgNjsgKytpKQpAQCAtMTk2OCw0MyArMjA2Myw2NCBAQAogCQkJCXRjcC0+dV9uYXJncyA9IDU7CiAJCX0KIAl9Ci0jZWxpZiBkZWZpbmVkIChNSVBTKQorI2VsaWYgZGVmaW5lZCAoTElOVVhfTUlQU04zMikgfHwgZGVmaW5lZCAoTElOVVhfTUlQU042NCkKKwkvKiBOMzIgYW5kIE42NCBib3RoIHVzZSB1cCB0byBzaXggcmVnaXN0ZXJzLiAgKi8KIAl7Ci0JICAJbG9uZyBzcDsKLQkgIAlpbnQgaSwgbmFyZ3M7CisJCXVuc2lnbmVkIGxvbmcgbG9uZyByZWdzWzM4XTsKKwkJaW50IGksIG5hcmdzOwogCiAJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCiAJCQluYXJncyA9IHRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwogCQllbHNlCi0gICAgIAkgICAgICAgIAluYXJncyA9IHRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQkJbmFyZ3MgPSB0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKworCQlpZiAocHRyYWNlIChQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIE5VTEwsIChsb25nKSAmcmVncykgPCAwKQorCQkJcmV0dXJuIC0xOworCisJCWZvcihpID0gMDsgaSA8IG5hcmdzOyBpKyspIHsKKwkJCXRjcC0+dV9hcmdbaV0gPSByZWdzW1JFR19BMCArIGldOworIyBpZiBkZWZpbmVkIChMSU5VWF9NSVBTTjMyKQorCQkJdGNwLT5leHRfYXJnW2ldID0gcmVnc1tSRUdfQTAgKyBpXTsKKyMgZW5kaWYKKwkJfQorCX0KKyNlbGlmIGRlZmluZWQgKE1JUFMpCisJeworCQlsb25nIHNwOworCQlpbnQgaSwgbmFyZ3M7CisKKwkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCW5hcmdzID0gdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJCWVsc2UKKwkJCW5hcmdzID0gdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CiAJCWlmKG5hcmdzID4gNCkgewotCQkgIAlpZih1cGVlayhwaWQsIFJFR19TUCwgJnNwKSA8IDApCi0JCQkgIAlyZXR1cm4gLTE7CisJCQlpZih1cGVlayh0Y3AsIFJFR19TUCwgJnNwKSA8IDApCisJCQkJcmV0dXJuIC0xOwogCQkJZm9yKGkgPSAwOyBpIDwgNDsgaSsrKSB7Ci0JCQkgIAlpZiAodXBlZWsocGlkLCBSRUdfQTAgKyBpLCAmdGNwLT51X2FyZ1tpXSk8MCkKLQkJCQkgIAlyZXR1cm4gLTE7CisJCQkJaWYgKHVwZWVrKHRjcCwgUkVHX0EwICsgaSwgJnRjcC0+dV9hcmdbaV0pPDApCisJCQkJCXJldHVybiAtMTsKIAkJCX0KIAkJCXVtb3Zlbih0Y3AsIHNwKzE2LCAobmFyZ3MtNCkgKiBzaXplb2YodGNwLT51X2FyZ1swXSksCiAJCQkgICAgICAgKGNoYXIgKikodGNwLT51X2FyZyArIDQpKTsKIAkJfSBlbHNlIHsKLQkJICAJZm9yKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykgewotCQkJICAJaWYgKHVwZWVrKHBpZCwgUkVHX0EwICsgaSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKLQkJCQkgIAlyZXR1cm4gLTE7CisJCQlmb3IoaSA9IDA7IGkgPCBuYXJnczsgaSsrKSB7CisJCQkJaWYgKHVwZWVrKHRjcCwgUkVHX0EwICsgaSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQkJcmV0dXJuIC0xOwogCQkJfQogCQl9CiAJfQogI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKLSNpZm5kZWYgUFRfT1JJR19SMwotI2RlZmluZSBQVF9PUklHX1IzIDM0Ci0jZW5kaWYKKyMgaWZuZGVmIFBUX09SSUdfUjMKKyMgIGRlZmluZSBQVF9PUklHX1IzIDM0CisjIGVuZGlmCiAJewogCQlpbnQgaTsKIAkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKIAkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwogCQllbHNlCi0gICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOwogCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKLQkJCWlmICh1cGVlayhwaWQsIChpPT0wKSA/CisJCQlpZiAodXBlZWsodGNwLCAoaT09MCkgPwogCQkJCShzaXplb2YodW5zaWduZWQgbG9uZykqUFRfT1JJR19SMykgOgogCQkJCSgoaStQVF9SMykqc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSwKIAkJCQkJJnRjcC0+dV9hcmdbaV0pIDwgMCkKQEAgLTIwMTgsOSArMjEzNCw5IEBACiAJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCiAJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKIAkJZWxzZQotICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CisJCQl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKIAkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKQotCQkJdGNwLT51X2FyZ1tpXSA9ICooKCZyZWdzLnJfbzApICsgaSk7CisJCQl0Y3AtPnVfYXJnW2ldID0gcmVncy51X3JlZ3NbVV9SRUdfTzAgKyBpXTsKIAl9CiAjZWxpZiBkZWZpbmVkIChIUFBBKQogCXsKQEAgLTIwMjksOSArMjE0NSw5IEBACiAJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCiAJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKIAkJZWxzZQotICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CisJCQl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKIAkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7Ci0JCQlpZiAodXBlZWsocGlkLCBQVF9HUjI2LTQqaSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCWlmICh1cGVlayh0Y3AsIFBUX0dSMjYtNCppLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQogCQkJCXJldHVybiAtMTsKIAkJfQogCX0KQEAgLTIwNDUsMjUgKzIxNjEsNDcgQEAKIAkJCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOwogCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCiAJCQl0Y3AtPnVfYXJnW2ldID0gcmVncy51cmVnc1tpXTsKLSAJfQotI2VsaWYgZGVmaW5lZChTSCkKLSAgICAgICB7Ci0gICAgICAgICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgICAgIHN0YXRpYyBpbnQgc3lzY2FsbF9yZWdzW10gPSB7Ci0gICAgICAgICAgICAgICAgICAgUkVHX1JFRzArNCwgUkVHX1JFRzArNSwgUkVHX1JFRzArNiwgUkVHX1JFRzArNywKLSAgICAgICAgICAgICAgICAgICBSRUdfUkVHMCwgUkVHX1JFRzArMSwgUkVHX1JFRzArMgotICAgICAgICAgICAgICAgICAgIH07CisJfQorI2VsaWYgZGVmaW5lZChBVlIzMikKKwl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwl0Y3AtPnVfYXJnWzBdID0gcmVncy5yMTI7CisJdGNwLT51X2FyZ1sxXSA9IHJlZ3MucjExOworCXRjcC0+dV9hcmdbMl0gPSByZWdzLnIxMDsKKwl0Y3AtPnVfYXJnWzNdID0gcmVncy5yOTsKKwl0Y3AtPnVfYXJnWzRdID0gcmVncy5yNTsKKwl0Y3AtPnVfYXJnWzVdID0gcmVncy5yMzsKKyNlbGlmIGRlZmluZWQoQkZJTikKKwl7CisJCWludCBpOworCQlpbnQgYXJncmVnW10gPSB7UFRfUjAsIFBUX1IxLCBQVF9SMiwgUFRfUjMsIFBUX1I0LCBQVF9SNX07CiAKLSAgICAgICAgICAgICAgIHRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwotICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIGlmICh1cGVlayhwaWQsIDQqc3lzY2FsbF9yZWdzW2ldLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgIH0KLSAgICAgICAgfQorCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJCWVsc2UKKwkJCXRjcC0+dV9uYXJncyA9IHNpemVvZihhcmdyZWcpIC8gc2l6ZW9mKGFyZ3JlZ1swXSk7CisKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgKytpKQorCQkJaWYgKHVwZWVrKHRjcCwgYXJncmVnW2ldLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCXJldHVybiAtMTsKKwl9CisjZWxpZiBkZWZpbmVkKFNIKQorCXsKKwkJaW50IGk7CisJCXN0YXRpYyBpbnQgc3lzY2FsbF9yZWdzW10gPSB7CisJCQlSRUdfUkVHMCs0LCBSRUdfUkVHMCs1LCBSRUdfUkVHMCs2LCBSRUdfUkVHMCs3LAorCQkJUkVHX1JFRzAsIFJFR19SRUcwKzEsIFJFR19SRUcwKzIKKwkJfTsKKworCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7CisJCQlpZiAodXBlZWsodGNwLCA0KnN5c2NhbGxfcmVnc1tpXSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwl9CiAjZWxpZiBkZWZpbmVkKFNINjQpCiAJewogCQlpbnQgaTsKLSAgICAgICAgICAgICAgICAvKiBSZWdpc3RlcnMgdXNlZCBieSBTSDUgTGludXggc3lzdGVtIGNhbGxzIGZvciBwYXJhbWV0ZXJzICovCisJCS8qIFJlZ2lzdGVycyB1c2VkIGJ5IFNINSBMaW51eCBzeXN0ZW0gY2FsbHMgZm9yIHBhcmFtZXRlcnMgKi8KIAkJc3RhdGljIGludCBzeXNjYWxsX3JlZ3NbXSA9IHsgMiwgMywgNCwgNSwgNiwgNyB9OwogCiAJCS8qCkBAIC0yMDcxLDEzICsyMjA5LDEzIEBACiAJCSAqICAgICAgIGluIHRoZSB0cmFwIG51bWJlciBtYXRjaGVzIHRoZSBudW1iZXIgc3RyYWNlIGV4cGVjdHMuCiAJCSAqLwogCQkvKgotCQkgICAgYXNzZXJ0KHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzIDwKLQkJICAgIAlzaXplb2Yoc3lzY2FsbF9yZWdzKS9zaXplb2Yoc3lzY2FsbF9yZWdzWzBdKSk7CisJCWFzc2VydChzeXNlbnRbdGNwLT5zY25vXS5uYXJncyA8CisJCSAgICAgICBzaXplb2Yoc3lzY2FsbF9yZWdzKS9zaXplb2Yoc3lzY2FsbF9yZWdzWzBdKSk7CiAJCSAqLwogCiAJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwogCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKLQkJCWlmICh1cGVlayhwaWQsIFJFR19HRU5FUkFMKHN5c2NhbGxfcmVnc1tpXSksICZ0Y3AtPnVfYXJnW2ldKSA8IDApCisJCQlpZiAodXBlZWsodGNwLCBSRUdfR0VORVJBTChzeXNjYWxsX3JlZ3NbaV0pLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQogCQkJCXJldHVybiAtMTsKIAkJfQogCX0KQEAgLTIwOTMsOSArMjIzMSw2MiBAQAogCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQogCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CiAJCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CiAJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCwgYXJncmVnW2N1cnJlbnRfcGVyc29uYWxpdHldW2ldKjgsICZ0Y3AtPnVfYXJnW2ldKSA8IDApCisJCQlpZiAodXBlZWsodGNwLCBhcmdyZWdbY3VycmVudF9wZXJzb25hbGl0eV1baV0qOCwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisjZWxpZiBkZWZpbmVkKE1JQ1JPQkxBWkUpCisJeworCQlpbnQgaTsKKwkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscykKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQllbHNlCisJCQl0Y3AtPnVfbmFyZ3MgPSAwOworCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKKwkJCWlmICh1cGVlayh0Y3AsICg1ICsgaSkgKiA0LCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKyNlbGlmIGRlZmluZWQoQ1JJU1YxMCkgfHwgZGVmaW5lZChDUklTVjMyKQorCXsKKwkJaW50IGk7CisJCXN0YXRpYyBjb25zdCBpbnQgY3Jpc3JlZ3NbXSA9IHsKKwkJCTQqUFRfT1JJR19SMTAsIDQqUFRfUjExLCA0KlBUX1IxMiwKKwkJCTQqUFRfUjEzLCA0KlBUX01PRiwgNCpQVF9TUlAKKwkJfTsKKworCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzKQorCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJCWVsc2UKKwkJCXRjcC0+dV9uYXJncyA9IDA7CisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgeworCQkJaWYgKHVwZWVrKHRjcCwgY3Jpc3JlZ3NbaV0sICZ0Y3AtPnVfYXJnW2ldKSA8IDApCisJCQkJcmV0dXJuIC0xOworCQl9CisJfQorI2VsaWYgZGVmaW5lZChUSUxFKQorCXsKKwkJaW50IGk7CisJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCisJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZWxzZQorCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7ICsraSkgeworCQkJaWYgKHVwZWVrKHRjcCwgUFRSRUdTX09GRlNFVF9SRUcoaSksICZ0Y3AtPnVfYXJnW2ldKSA8IDApCisJCQkJcmV0dXJuIC0xOworCQl9CisJfQorI2VsaWYgZGVmaW5lZCAoTTY4SykKKwl7CisJCWludCBpOworCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJCWVsc2UKKwkJCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKKwkJCWlmICh1cGVlayh0Y3AsIChpIDwgNSA/IGkgOiBpICsgMikqNCwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKIAkJCQlyZXR1cm4gLTE7CiAJCX0KIAl9CkBAIC0yMTA1LDkgKzIyOTYsOSBAQAogCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQogCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CiAJCWVsc2UKLSAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQkJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CiAJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgewotCQkJaWYgKHVwZWVrKHBpZCwgaSo0LCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJaWYgKHVwZWVrKHRjcCwgaSo0LCAmdGNwLT51X2FyZ1tpXSkgPCAwKQogCQkJCXJldHVybiAtMTsKIAkJfQogCX0KQEAgLTIxMTksMTEgKzIzMTAsMTEgQEAKIAkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKIAkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOwogCQllbHNlCi0gICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOwogCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKIAkJCXN0cnVjdCB1c2VyICp1OwogCi0JCQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfYXJnWzBdKSArCisJCQlpZiAodXBlZWsodGNwLCB1b2ZmKHVfYXJnWzBdKSArCiAJCQkgICAgKGkqc2l6ZW9mKHUtPnVfYXJnWzBdKSksICZ0Y3AtPnVfYXJnW2ldKSA8IDApCiAJCQkJcmV0dXJuIC0xOwogCQl9CkBAIC0yMTg1LDcgKzIzNzYsNyBAQAogCSAgICBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyA+IHRjcC0+c3RhdHVzLnZhbCkKIAkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CiAJZWxzZQotCSAgCXRjcC0+dV9uYXJncyA9IHRjcC0+c3RhdHVzLnZhbDsKKwkJdGNwLT51X25hcmdzID0gdGNwLT5zdGF0dXMudmFsOwogCWlmICh0Y3AtPnVfbmFyZ3MgPCAwKQogCQl0Y3AtPnVfbmFyZ3MgPSAwOwogCWlmICh0Y3AtPnVfbmFyZ3MgPiBNQVhfQVJHUykKQEAgLTIxOTQsMjM0ICsyMzg1LDI0MSBAQAogCWNhc2UgU1lTX19fc3lzY2FsbDoKIAkJcHJlYWQodGNwLT5wZmQsICZ0Y3AtPnVfYXJnLCB0Y3AtPnVfbmFyZ3MgKiBzaXplb2YodW5zaWduZWQgbG9uZyksCiAJCSAgICAgIHJlZ3Mucl9lc3AgKyBzaXplb2YoaW50KSArIHNpemVvZihxdWFkX3QpKTsKLQkgIGJyZWFrOwotICAgICAgICBjYXNlIFNZU19zeXNjYWxsOgorCQlicmVhazsKKwljYXNlIFNZU19zeXNjYWxsOgogCQlwcmVhZCh0Y3AtPnBmZCwgJnRjcC0+dV9hcmcsIHRjcC0+dV9uYXJncyAqIHNpemVvZih1bnNpZ25lZCBsb25nKSwKIAkJICAgICAgcmVncy5yX2VzcCArIDIgKiBzaXplb2YoaW50KSk7Ci0JICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJZGVmYXVsdDoKIAkJcHJlYWQodGNwLT5wZmQsICZ0Y3AtPnVfYXJnLCB0Y3AtPnVfbmFyZ3MgKiBzaXplb2YodW5zaWduZWQgbG9uZyksCiAJCSAgICAgIHJlZ3Mucl9lc3AgKyBzaXplb2YoaW50KSk7Ci0JICBicmVhazsKKwkJYnJlYWs7CiAJfQogI2VuZGlmIC8qIEZSRUVCU0QgKi8KIAlyZXR1cm4gMTsKIH0KIAotaW50Ci10cmFjZV9zeXNjYWxsKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N0YXRpYyBpbnQKK3RyYWNlX3N5c2NhbGxfZXhpdGluZyhzdHJ1Y3QgdGNiICp0Y3ApCiB7CiAJaW50IHN5c19yZXM7CiAJc3RydWN0IHRpbWV2YWwgdHY7Ci0JaW50IHJlczsKKwlpbnQgcmVzLCBzY25vX2dvb2Q7CisJbG9uZyB1X2Vycm9yOwogCiAJLyogTWVhc3VyZSB0aGUgZXhpdCB0aW1lIGFzIGVhcmx5IGFzIHBvc3NpYmxlIHRvIGF2b2lkIGVycm9ycy4gKi8KLQlpZiAoZHRpbWUgJiYgKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkKKwlpZiAoZHRpbWUgfHwgY2ZsYWcpCiAJCWdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwogCi0JcmVzID0gZ2V0X3Njbm8odGNwKTsKLQlpZiAocmVzICE9IDEpCisJLyogQlRXLCB3aHkgd2UgZG9uJ3QganVzdCBtZW1vcml6ZSBzeXNjYWxsIG5vLiBvbiBlbnRyeQorCSAqIGluIHRjcC0+c29tZXRoaW5nPworCSAqLworCXNjbm9fZ29vZCA9IHJlcyA9IGdldF9zY25vKHRjcCk7CisJaWYgKHJlcyA9PSAwKQogCQlyZXR1cm4gcmVzOwotCi0JcmVzID0gc3lzY2FsbF9maXh1cCh0Y3ApOwotCWlmIChyZXMgIT0gMSkKKwlpZiAocmVzID09IDEpCisJCXJlcyA9IHN5c2NhbGxfZml4dXAodGNwKTsKKwlpZiAocmVzID09IDApCiAJCXJldHVybiByZXM7Ci0KLQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpIHsKLQkJbG9uZyB1X2Vycm9yOworCWlmIChyZXMgPT0gMSkKIAkJcmVzID0gZ2V0X2Vycm9yKHRjcCk7Ci0JCWlmIChyZXMgIT0gMSkKLQkJCXJldHVybiByZXM7Ci0KKwlpZiAocmVzID09IDApCisJCXJldHVybiByZXM7CisJaWYgKHJlcyA9PSAxKQogCQlpbnRlcm5hbF9zeXNjYWxsKHRjcCk7Ci0JCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYKLQkJICAgICEocXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9UUkFDRSkpIHsKLQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7Ci0JCQlyZXR1cm4gMDsKLQkJfQogCi0JCWlmICh0Y3AtPmZsYWdzICYgVENCX1JFUFJJTlQpIHsKLQkJCXByaW50bGVhZGVyKHRjcCk7Ci0JCQl0cHJpbnRmKCI8Li4uICIpOwotCQkJaWYgKHRjcC0+c2NubyA+PSBuc3lzY2FsbHMgfHwgdGNwLT5zY25vIDwgMCkKLQkJCQl0cHJpbnRmKCJzeXNjYWxsXyVsdSIsIHRjcC0+c2Nubyk7Ci0JCQllbHNlCi0JCQkJdHByaW50ZigiJXMiLCBzeXNlbnRbdGNwLT5zY25vXS5zeXNfbmFtZSk7Ci0JCQl0cHJpbnRmKCIgcmVzdW1lZD4gIik7Ci0JCX0KLQotCQlpZiAoY2ZsYWcgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHRjcC0+c2NubyA+PSAwKSB7Ci0JCQlpZiAoY291bnRzID09IE5VTEwpIHsKLQkJCQljb3VudHMgPSBjYWxsb2Moc2l6ZW9mICpjb3VudHMsIG5zeXNjYWxscyk7Ci0JCQkJaWYgKGNvdW50cyA9PSBOVUxMKSB7Ci0JCQkJCWZwcmludGYoc3RkZXJyLCAiXAotc3RyYWNlOiBvdXQgb2YgbWVtb3J5IGZvciBjYWxsIGNvdW50c1xuIik7Ci0JCQkJCWV4aXQoMSk7Ci0JCQkJfQotCQkJfQotCi0JCQljb3VudHNbdGNwLT5zY25vXS5jYWxscysrOwotCQkJaWYgKHRjcC0+dV9lcnJvcikKLQkJCQljb3VudHNbdGNwLT5zY25vXS5lcnJvcnMrKzsKLQkJCXR2X3N1YigmdHYsICZ0diwgJnRjcC0+ZXRpbWUpOwotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSNpZmRlZiBMSU5VWAotCQkJaWYgKHR2X2NtcCgmdHYsICZ0Y3AtPmR0aW1lKSA+IDApIHsKLQkJCQlzdGF0aWMgc3RydWN0IHRpbWV2YWwgb25lX3RpY2s7Ci0JCQkJaWYgKG9uZV90aWNrLnR2X3VzZWMgPT0gMCkgewotCQkJCQkvKiBJbml0aWFsaXplIGl0LiAgKi8KLQkJCQkJc3RydWN0IGl0aW1lcnZhbCBpdDsKLQkJCQkJbWVtc2V0KCZpdCwgMCwgc2l6ZW9mIGl0KTsKLQkJCQkJaXQuaXRfaW50ZXJ2YWwudHZfdXNlYyA9IDE7Ci0JCQkJCXNldGl0aW1lcihJVElNRVJfUkVBTCwgJml0LCBOVUxMKTsKLQkJCQkJZ2V0aXRpbWVyKElUSU1FUl9SRUFMLCAmaXQpOwotCQkJCQlvbmVfdGljayA9IGl0Lml0X2ludGVydmFsOwotCQkJCX0KLQotCQkJCWlmICh0dl9ueigmdGNwLT5kdGltZSkpCi0JCQkJCXR2ID0gdGNwLT5kdGltZTsKLQkJCQllbHNlIGlmICh0dl9jbXAoJnR2LCAmb25lX3RpY2spID4gMCkgewotCQkJCQlpZiAodHZfY21wKCZzaG9ydGVzdCwgJm9uZV90aWNrKSA8IDApCi0JCQkJCQl0diA9IHNob3J0ZXN0OwotCQkJCQllbHNlCi0JCQkJCQl0diA9IG9uZV90aWNrOwotCQkJCX0KLQkJCX0KLSNlbmRpZiAvKiBMSU5VWCAqLwotI2VuZGlmCi0JCQlpZiAodHZfY21wKCZ0diwgJnNob3J0ZXN0KSA8IDApCi0JCQkJc2hvcnRlc3QgPSB0djsKLQkJCXR2X2FkZCgmY291bnRzW3RjcC0+c2Nub10udGltZSwKLQkJCQkmY291bnRzW3RjcC0+c2Nub10udGltZSwgJnR2KTsKLQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCi0JCWlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDAKLQkJICAgIHx8IChxdWFsX2ZsYWdzW3RjcC0+c2Nub10gJiBRVUFMX1JBVykpCi0JCQlzeXNfcmVzID0gcHJpbnRhcmdzKHRjcCk7Ci0JCWVsc2UgewotCQkJaWYgKG5vdF9mYWlsaW5nX29ubHkgJiYgdGNwLT51X2Vycm9yKQotCQkJCXJldHVybiAwOwkvKiBpZ25vcmUgZmFpbGVkIHN5c2NhbGxzICovCi0JCQlzeXNfcmVzID0gKCpzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYykodGNwKTsKLQkJfQotCQl1X2Vycm9yID0gdGNwLT51X2Vycm9yOwotCQl0cHJpbnRmKCIpICIpOwotCQl0YWJ0byhhY29sdW1uKTsKLQkJaWYgKHRjcC0+c2NubyA+PSBuc3lzY2FsbHMgfHwgdGNwLT5zY25vIDwgMCB8fAotCQkgICAgcXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9SQVcpIHsKLQkJCWlmICh1X2Vycm9yKQotCQkJCXRwcmludGYoIj0gLTEgKGVycm5vICVsZCkiLCB1X2Vycm9yKTsKLQkJCWVsc2UKLQkJCQl0cHJpbnRmKCI9ICUjbHgiLCB0Y3AtPnVfcnZhbCk7Ci0JCX0KLQkJZWxzZSBpZiAoIShzeXNfcmVzICYgUlZBTF9OT05FKSAmJiB1X2Vycm9yKSB7Ci0JCQlzd2l0Y2ggKHVfZXJyb3IpIHsKLSNpZmRlZiBMSU5VWAotCQkJY2FzZSBFUkVTVEFSVFNZUzoKLQkJCQl0cHJpbnRmKCI9ID8gRVJFU1RBUlRTWVMgKFRvIGJlIHJlc3RhcnRlZCkiKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgRVJFU1RBUlROT0lOVFI6Ci0JCQkJdHByaW50ZigiPSA/IEVSRVNUQVJUTk9JTlRSIChUbyBiZSByZXN0YXJ0ZWQpIik7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIEVSRVNUQVJUTk9IQU5EOgotCQkJCXRwcmludGYoIj0gPyBFUkVTVEFSVE5PSEFORCAoVG8gYmUgcmVzdGFydGVkKSIpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBFUkVTVEFSVF9SRVNUQVJUQkxPQ0s6Ci0JCQkJdHByaW50ZigiPSA/IEVSRVNUQVJUX1JFU1RBUlRCTE9DSyAoVG8gYmUgcmVzdGFydGVkKSIpOwotCQkJCWJyZWFrOwotI2VuZGlmIC8qIExJTlVYICovCi0JCQlkZWZhdWx0OgotCQkJCXRwcmludGYoIj0gLTEgIik7Ci0JCQkJaWYgKHVfZXJyb3IgPCAwKQotCQkJCQl0cHJpbnRmKCJFPz8/IChlcnJubyAlbGQpIiwgdV9lcnJvcik7Ci0JCQkJZWxzZSBpZiAodV9lcnJvciA8IG5lcnJub3MpCi0JCQkJCXRwcmludGYoIiVzICglcykiLCBlcnJub2VudFt1X2Vycm9yXSwKLQkJCQkJCXN0cmVycm9yKHVfZXJyb3IpKTsKLQkJCQllbHNlCi0JCQkJCXRwcmludGYoIkVSUk5PXyVsZCAoJXMpIiwgdV9lcnJvciwKLQkJCQkJCXN0cmVycm9yKHVfZXJyb3IpKTsKLQkJCQlicmVhazsKLQkJCX0KLQkJfQotCQllbHNlIHsKLQkJCWlmIChzeXNfcmVzICYgUlZBTF9OT05FKQotCQkJCXRwcmludGYoIj0gPyIpOwotCQkJZWxzZSB7Ci0JCQkJc3dpdGNoIChzeXNfcmVzICYgUlZBTF9NQVNLKSB7Ci0JCQkJY2FzZSBSVkFMX0hFWDoKLQkJCQkJdHByaW50ZigiPSAlI2x4IiwgdGNwLT51X3J2YWwpOwotCQkJCQlicmVhazsKLQkJCQljYXNlIFJWQUxfT0NUQUw6Ci0JCQkJCXRwcmludGYoIj0gJSNsbyIsIHRjcC0+dV9ydmFsKTsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBSVkFMX1VERUNJTUFMOgotCQkJCQl0cHJpbnRmKCI9ICVsdSIsIHRjcC0+dV9ydmFsKTsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBSVkFMX0RFQ0lNQUw6Ci0JCQkJCXRwcmludGYoIj0gJWxkIiwgdGNwLT51X3J2YWwpOwotCQkJCQlicmVhazsKLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotCQkJCWNhc2UgUlZBTF9MSEVYOgotCQkJCQl0cHJpbnRmKCI9ICUjbGx4IiwgdGNwLT51X2xydmFsKTsKLQkJCQkJYnJlYWs7Ci0JCQkJY2FzZSBSVkFMX0xPQ1RBTDoKLQkJCQkJdHByaW50ZigiPSAlI2xsbyIsIHRjcC0+dV9scnZhbCk7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgUlZBTF9MVURFQ0lNQUw6Ci0JCQkJCXRwcmludGYoIj0gJWxsdSIsIHRjcC0+dV9scnZhbCk7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgUlZBTF9MREVDSU1BTDoKLQkJCQkJdHByaW50ZigiPSAlbGxkIiwgdGNwLT51X2xydmFsKTsKLQkJCQkJYnJlYWs7Ci0jZW5kaWYKLQkJCQlkZWZhdWx0OgotCQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJCSJpbnZhbGlkIHJ2YWwgZm9ybWF0XG4iKTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQotCQkJaWYgKChzeXNfcmVzICYgUlZBTF9TVFIpICYmIHRjcC0+YXV4c3RyKQotCQkJCXRwcmludGYoIiAoJXMpIiwgdGNwLT5hdXhzdHIpOwotCQl9Ci0JCWlmIChkdGltZSkgewotCQkJdHZfc3ViKCZ0diwgJnR2LCAmdGNwLT5ldGltZSk7Ci0JCQl0cHJpbnRmKCIgPCVsZC4lMDZsZD4iLAotCQkJCShsb25nKSB0di50dl9zZWMsIChsb25nKSB0di50dl91c2VjKTsKLQkJfQotCQlwcmludHRyYWlsZXIodGNwKTsKLQotCQlkdW1waW8odGNwKTsKLQkJaWYgKGZmbHVzaCh0Y3AtPm91dGYpID09IEVPRikKLQkJCXJldHVybiAtMTsKKwlpZiAocmVzID09IDEgJiYgdGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmCisJICAgICEocXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9UUkFDRSkpIHsKIAkJdGNwLT5mbGFncyAmPSB+VENCX0lOU1lTQ0FMTDsKIAkJcmV0dXJuIDA7CiAJfQogCi0JLyogRW50ZXJpbmcgc3lzdGVtIGNhbGwgKi8KLQlyZXMgPSBzeXNjYWxsX2VudGVyKHRjcCk7Ci0JaWYgKHJlcyAhPSAxKQorCWlmICh0Y3AtPmZsYWdzICYgVENCX1JFUFJJTlQpIHsKKwkJcHJpbnRsZWFkZXIodGNwKTsKKwkJdHByaW50ZigiPC4uLiAiKTsKKwkJaWYgKHNjbm9fZ29vZCAhPSAxKQorCQkJdHByaW50ZigiPz8/PyIpOworCQllbHNlIGlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDApCisJCQl0cHJpbnRmKCJzeXNjYWxsXyVsdSIsIHRjcC0+c2Nubyk7CisJCWVsc2UKKwkJCXRwcmludGYoIiVzIiwgc3lzZW50W3RjcC0+c2Nub10uc3lzX25hbWUpOworCQl0cHJpbnRmKCIgcmVzdW1lZD4gIik7CisJfQorCisJaWYgKGNmbGFnKSB7CisJCXN0cnVjdCB0aW1ldmFsIHQgPSB0djsKKwkJaW50IHJjID0gY291bnRfc3lzY2FsbCh0Y3AsICZ0KTsKKwkJaWYgKGNmbGFnID09IENGTEFHX09OTFlfU1RBVFMpCisJCXsKKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7CisJCQlyZXR1cm4gcmM7CisJCX0KKwl9CisKKwlpZiAocmVzICE9IDEpIHsKKwkJdHByaW50ZigiKSAiKTsKKwkJdGFidG8oYWNvbHVtbik7CisJCXRwcmludGYoIj0gPyA8dW5hdmFpbGFibGU+Iik7CisJCXByaW50dHJhaWxlcigpOworCQl0Y3AtPmZsYWdzICY9IH5UQ0JfSU5TWVNDQUxMOworCQlyZXR1cm4gcmVzOworCX0KKworCWlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDAKKwkgICAgfHwgKHF1YWxfZmxhZ3NbdGNwLT5zY25vXSAmIFFVQUxfUkFXKSkKKwkJc3lzX3JlcyA9IHByaW50YXJncyh0Y3ApOworCWVsc2UgeworCQlpZiAobm90X2ZhaWxpbmdfb25seSAmJiB0Y3AtPnVfZXJyb3IpCisJCQlyZXR1cm4gMDsJLyogaWdub3JlIGZhaWxlZCBzeXNjYWxscyAqLworCQlzeXNfcmVzID0gKCpzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYykodGNwKTsKKwl9CisKKwl1X2Vycm9yID0gdGNwLT51X2Vycm9yOworCXRwcmludGYoIikgIik7CisJdGFidG8oYWNvbHVtbik7CisJaWYgKHRjcC0+c2NubyA+PSBuc3lzY2FsbHMgfHwgdGNwLT5zY25vIDwgMCB8fAorCSAgICBxdWFsX2ZsYWdzW3RjcC0+c2Nub10gJiBRVUFMX1JBVykgeworCQlpZiAodV9lcnJvcikKKwkJCXRwcmludGYoIj0gLTEgKGVycm5vICVsZCkiLCB1X2Vycm9yKTsKKwkJZWxzZQorCQkJdHByaW50ZigiPSAlI2x4IiwgdGNwLT51X3J2YWwpOworCX0KKwllbHNlIGlmICghKHN5c19yZXMgJiBSVkFMX05PTkUpICYmIHVfZXJyb3IpIHsKKwkJc3dpdGNoICh1X2Vycm9yKSB7CisjaWZkZWYgTElOVVgKKwkJY2FzZSBFUkVTVEFSVFNZUzoKKwkJCXRwcmludGYoIj0gPyBFUkVTVEFSVFNZUyAoVG8gYmUgcmVzdGFydGVkKSIpOworCQkJYnJlYWs7CisJCWNhc2UgRVJFU1RBUlROT0lOVFI6CisJCQl0cHJpbnRmKCI9ID8gRVJFU1RBUlROT0lOVFIgKFRvIGJlIHJlc3RhcnRlZCkiKTsKKwkJCWJyZWFrOworCQljYXNlIEVSRVNUQVJUTk9IQU5EOgorCQkJdHByaW50ZigiPSA/IEVSRVNUQVJUTk9IQU5EIChUbyBiZSByZXN0YXJ0ZWQpIik7CisJCQlicmVhazsKKwkJY2FzZSBFUkVTVEFSVF9SRVNUQVJUQkxPQ0s6CisJCQl0cHJpbnRmKCI9ID8gRVJFU1RBUlRfUkVTVEFSVEJMT0NLIChUbyBiZSByZXN0YXJ0ZWQpIik7CisJCQlicmVhazsKKyNlbmRpZiAvKiBMSU5VWCAqLworCQlkZWZhdWx0OgorCQkJdHByaW50ZigiPSAtMSAiKTsKKwkJCWlmICh1X2Vycm9yIDwgMCkKKwkJCQl0cHJpbnRmKCJFPz8/IChlcnJubyAlbGQpIiwgdV9lcnJvcik7CisJCQllbHNlIGlmICh1X2Vycm9yIDwgbmVycm5vcykKKwkJCQl0cHJpbnRmKCIlcyAoJXMpIiwgZXJybm9lbnRbdV9lcnJvcl0sCisJCQkJCXN0cmVycm9yKHVfZXJyb3IpKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCJFUlJOT18lbGQgKCVzKSIsIHVfZXJyb3IsCisJCQkJCXN0cmVycm9yKHVfZXJyb3IpKTsKKwkJCWJyZWFrOworCQl9CisJCWlmICgoc3lzX3JlcyAmIFJWQUxfU1RSKSAmJiB0Y3AtPmF1eHN0cikKKwkJCXRwcmludGYoIiAoJXMpIiwgdGNwLT5hdXhzdHIpOworCX0KKwllbHNlIHsKKwkJaWYgKHN5c19yZXMgJiBSVkFMX05PTkUpCisJCQl0cHJpbnRmKCI9ID8iKTsKKwkJZWxzZSB7CisJCQlzd2l0Y2ggKHN5c19yZXMgJiBSVkFMX01BU0spIHsKKwkJCWNhc2UgUlZBTF9IRVg6CisJCQkJdHByaW50ZigiPSAlI2x4IiwgdGNwLT51X3J2YWwpOworCQkJCWJyZWFrOworCQkJY2FzZSBSVkFMX09DVEFMOgorCQkJCXRwcmludGYoIj0gJSNsbyIsIHRjcC0+dV9ydmFsKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUlZBTF9VREVDSU1BTDoKKwkJCQl0cHJpbnRmKCI9ICVsdSIsIHRjcC0+dV9ydmFsKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUlZBTF9ERUNJTUFMOgorCQkJCXRwcmludGYoIj0gJWxkIiwgdGNwLT51X3J2YWwpOworCQkJCWJyZWFrOworI2lmZGVmIEhBVkVfTE9OR19MT05HCisJCQljYXNlIFJWQUxfTEhFWDoKKwkJCQl0cHJpbnRmKCI9ICUjbGx4IiwgdGNwLT51X2xydmFsKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUlZBTF9MT0NUQUw6CisJCQkJdHByaW50ZigiPSAlI2xsbyIsIHRjcC0+dV9scnZhbCk7CisJCQkJYnJlYWs7CisJCQljYXNlIFJWQUxfTFVERUNJTUFMOgorCQkJCXRwcmludGYoIj0gJWxsdSIsIHRjcC0+dV9scnZhbCk7CisJCQkJYnJlYWs7CisJCQljYXNlIFJWQUxfTERFQ0lNQUw6CisJCQkJdHByaW50ZigiPSAlbGxkIiwgdGNwLT51X2xydmFsKTsKKwkJCQlicmVhazsKKyNlbmRpZgorCQkJZGVmYXVsdDoKKwkJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkJImludmFsaWQgcnZhbCBmb3JtYXRcbiIpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmICgoc3lzX3JlcyAmIFJWQUxfU1RSKSAmJiB0Y3AtPmF1eHN0cikKKwkJCXRwcmludGYoIiAoJXMpIiwgdGNwLT5hdXhzdHIpOworCX0KKwlpZiAoZHRpbWUpIHsKKwkJdHZfc3ViKCZ0diwgJnR2LCAmdGNwLT5ldGltZSk7CisJCXRwcmludGYoIiA8JWxkLiUwNmxkPiIsCisJCQkobG9uZykgdHYudHZfc2VjLCAobG9uZykgdHYudHZfdXNlYyk7CisJfQorCXByaW50dHJhaWxlcigpOworCisJZHVtcGlvKHRjcCk7CisJaWYgKGZmbHVzaCh0Y3AtPm91dGYpID09IEVPRikKKwkJcmV0dXJuIC0xOworCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3RyYWNlX3N5c2NhbGxfZW50ZXJpbmcoc3RydWN0IHRjYiAqdGNwKQoreworCWludCBzeXNfcmVzOworCWludCByZXMsIHNjbm9fZ29vZDsKKworCXNjbm9fZ29vZCA9IHJlcyA9IGdldF9zY25vKHRjcCk7CisJaWYgKHJlcyA9PSAwKQorCQlyZXR1cm4gcmVzOworCWlmIChyZXMgPT0gMSkKKwkJcmVzID0gc3lzY2FsbF9maXh1cCh0Y3ApOworCWlmIChyZXMgPT0gMCkKKwkJcmV0dXJuIHJlczsKKwlpZiAocmVzID09IDEpCisJCXJlcyA9IHN5c2NhbGxfZW50ZXIodGNwKTsKKwlpZiAocmVzID09IDApCiAJCXJldHVybiByZXM7CiAKKwlpZiAocmVzICE9IDEpIHsKKwkJcHJpbnRsZWFkZXIodGNwKTsKKwkJdGNwLT5mbGFncyAmPSB+VENCX1JFUFJJTlQ7CisJCXRjcF9sYXN0ID0gdGNwOworCQlpZiAoc2Nub19nb29kICE9IDEpCisJCQl0cHJpbnRmKCI/Pz8/IiAvKiBhbnRpLXRyaWdyYXBoIGdhcCAqLyAiKCIpOworCQllbHNlIGlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDApCisJCQl0cHJpbnRmKCJzeXNjYWxsXyVsdSgiLCB0Y3AtPnNjbm8pOworCQllbHNlCisJCQl0cHJpbnRmKCIlcygiLCBzeXNlbnRbdGNwLT5zY25vXS5zeXNfbmFtZSk7CisJCS8qCisJCSAqICIgPHVuYXZhaWxhYmxlPiIgd2lsbCBiZSBhZGRlZCBsYXRlciBieSB0aGUgY29kZSB3aGljaAorCQkgKiBkZXRlY3RzIHB0cmFjZSBlcnJvcnMuCisJCSAqLworCQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7CisJCXJldHVybiByZXM7CisJfQorCiAJc3dpdGNoIChrbm93bl9zY25vKHRjcCkpIHsKLSNpZmRlZiBMSU5VWAotI2lmICFkZWZpbmVkIChBTFBIQSkgJiYgIWRlZmluZWQoU1BBUkMpICYmICFkZWZpbmVkKFNQQVJDNjQpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKEhQUEEpICYmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgLy9BTkRST0lECisjaWZuZGVmIF9fQVJNX0VBQklfXworI2lmZGVmIFNZU19zb2NrZXRfc3ViY2FsbAogCWNhc2UgU1lTX3NvY2tldGNhbGw6CiAJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3NvY2tldF9zdWJjYWxsLAogCQkJU1lTX3NvY2tldF9uc3ViY2FsbHMsIGRlcmVmX3N0eWxlKTsKIAkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBTWVNfaXBjX3N1YmNhbGwKIAljYXNlIFNZU19pcGM6CiAJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX2lwY19zdWJjYWxsLAogCQkJU1lTX2lwY19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKIAkJYnJlYWs7Ci0jZW5kaWYgLyogIUFMUEhBICYmICFNSVBTICYmICFTUEFSQyAmJiAhU1BBUkM2NCAmJiAhSFBQQSAqLwotI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotCWNhc2UgU1lTX3NvY2tldGNhbGw6Ci0JCXNwYXJjX3NvY2tldF9kZWNvZGUgKHRjcCk7Ci0JCWJyZWFrOwogI2VuZGlmCi0jZW5kaWYgLyogTElOVVggKi8KKyNlbmRpZgogI2lmZGVmIFNWUjQKICNpZmRlZiBTWVNfcGdycHN5c19zdWJjYWxsCiAJY2FzZSBTWVNfcGdycHN5czoKQEAgLTI0NDcsMTIgKzI2NDUsNiBAQAogCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zZW1zeXNfc3ViY2FsbCwKIAkJCVNZU19zZW1zeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CiAJCWJyZWFrOwotI2lmIDAgLyogYnJva2VuICovCi0JY2FzZSBTWVNfdXRzc3lzOgotCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU191dHNzeXNfc3ViY2FsbCwKLQkJCVNZU191dHNzeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7Ci0JCWJyZWFrOwotI2VuZGlmCiAJY2FzZSBTWVNfc3lzZnM6CiAJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3N5c2ZzX3N1YmNhbGwsCiAJCQlTWVNfc3lzZnNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CkBAIC0yNTA5LDkgKzI3MDEsOSBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoY2ZsYWcpIHsKLQkJZ2V0dGltZW9mZGF5KCZ0Y3AtPmV0aW1lLCBOVUxMKTsKKwlpZiAoY2ZsYWcgPT0gQ0ZMQUdfT05MWV9TVEFUUykgewogCQl0Y3AtPmZsYWdzIHw9IFRDQl9JTlNZU0NBTEw7CisJCWdldHRpbWVvZmRheSgmdGNwLT5ldGltZSwgTlVMTCk7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMjUyMyw3ICsyNzE1LDggQEAKIAllbHNlCiAJCXRwcmludGYoIiVzKCIsIHN5c2VudFt0Y3AtPnNjbm9dLnN5c19uYW1lKTsKIAlpZiAodGNwLT5zY25vID49IG5zeXNjYWxscyB8fCB0Y3AtPnNjbm8gPCAwIHx8Ci0JICAgICgocXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9SQVcpICYmIHRjcC0+c2NubyAhPSBTWVNfZXhpdCkpCisJICAgICgocXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9SQVcpICYmCisJICAgICBzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyAhPSBzeXNfZXhpdCkpCiAJCXN5c19yZXMgPSBwcmludGFyZ3ModGNwKTsKIAllbHNlCiAJCXN5c19yZXMgPSAoKnN5c2VudFt0Y3AtPnNjbm9dLnN5c19mdW5jKSh0Y3ApOwpAQCAtMjUzMSwxMiArMjcyNCwxOSBAQAogCQlyZXR1cm4gLTE7CiAJdGNwLT5mbGFncyB8PSBUQ0JfSU5TWVNDQUxMOwogCS8qIE1lYXN1cmUgdGhlIGVudHJhbmNlIHRpbWUgYXMgbGF0ZSBhcyBwb3NzaWJsZSB0byBhdm9pZCBlcnJvcnMuICovCi0JaWYgKGR0aW1lKQorCWlmIChkdGltZSB8fCBjZmxhZykKIAkJZ2V0dGltZW9mZGF5KCZ0Y3AtPmV0aW1lLCBOVUxMKTsKIAlyZXR1cm4gc3lzX3JlczsKIH0KIAogaW50Cit0cmFjZV9zeXNjYWxsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZXhpdGluZyh0Y3ApID8KKwkJdHJhY2Vfc3lzY2FsbF9leGl0aW5nKHRjcCkgOiB0cmFjZV9zeXNjYWxsX2VudGVyaW5nKHRjcCk7Cit9CisKK2ludAogcHJpbnRhcmdzKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKQEAgLTI1NTcsMjEgKzI3NTcsMjEgQEAKIAogI2lmZGVmIExJTlVYCiAjaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCi0Jc3RydWN0IHJlZ3MgcmVnczsKKwlzdHJ1Y3QgcHRfcmVncyByZWdzOwogCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsdGNwLT5waWQsKGNoYXIgKikmcmVncywwKSA8IDApCiAJCXJldHVybiAtMTsKLQl2YWwgPSByZWdzLnJfbzE7CisJdmFsID0gcmVncy51X3JlZ3NbVV9SRUdfTzFdOwogI2VsaWYgZGVmaW5lZChTSCkKLQlpZiAodXBlZWsodGNwLT5waWQsIDQqKFJFR19SRUcwKzEpLCAmdmFsKSA8IDApCisJaWYgKHVwZWVrKHRjcCwgNCooUkVHX1JFRzArMSksICZ2YWwpIDwgMCkKIAkJcmV0dXJuIC0xOwogI2VsaWYgZGVmaW5lZChJQTY0KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfUjksICZ2YWwpIDwgMCkKKwlpZiAodXBlZWsodGNwLCBQVF9SOSwgJnZhbCkgPCAwKQogCQlyZXR1cm4gLTE7Ci0jZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLworI2VuZGlmCiAjZW5kaWYgLyogTElOVVggKi8KIAogI2lmZGVmIFNVTk9TNAotCWlmICh1cGVlayh0Y3AtPnBpZCwgdW9mZih1X3J2YWwyKSwgJnZhbCkgPCAwKQorCWlmICh1cGVlayh0Y3AsIHVvZmYodV9ydmFsMiksICZ2YWwpIDwgMCkKIAkJcmV0dXJuIC0xOwogI2VuZGlmIC8qIFNVTk9TNCAqLwogCkBAIC0yNTg5LDYgKzI3ODksNyBAQAogCXZhbCA9IHRjcC0+c3RhdHVzLlBSX1JFR1tDVFhfVjFdOwogI2VuZGlmIC8qIE1JUFMgKi8KICNlbmRpZiAvKiBTVlI0ICovCisKICNpZmRlZiBGUkVFQlNECiAJc3RydWN0IHJlZyByZWdzOwogCXByZWFkKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCk7CkBAIC0yNTk3LDYgKzI3OTgsNyBAQAogCXJldHVybiB2YWw7CiB9CiAKKyNpZmRlZiBTVU5PUzQKIC8qCiAgKiBBcHBhcmVudGx5LCBpbmRpcmVjdCBzeXN0ZW0gY2FsbHMgaGF2ZSBhbHJlYWR5IGJlIGNvbnZlcnRlZCBieSBwdHJhY2UoMiksCiAgKiBzbyBpZiB5b3Ugc2VlICJpbmRpciIgdGhpcyBwcm9ncmFtIGhhcyBnb25lIGFzdHJheS4KQEAgLTI2MTksMTI3ICsyODIxLDIzIEBACiAJfQogCXJldHVybiAwOwogfQorI2VuZGlmIC8qIFNVTk9TNCAqLwogCi1zdGF0aWMgaW50Ci10aW1lX2NtcChhLCBiKQotdm9pZCAqYTsKLXZvaWQgKmI7CitpbnQKK2lzX3Jlc3RhcnRfZXJyb3Ioc3RydWN0IHRjYiAqdGNwKQogewotCXJldHVybiAtdHZfY21wKCZjb3VudHNbKigoaW50ICopIGEpXS50aW1lLCAmY291bnRzWyooKGludCAqKSBiKV0udGltZSk7Ci19Ci0KLXN0YXRpYyBpbnQKLXN5c2NhbGxfY21wKGEsIGIpCi12b2lkICphOwotdm9pZCAqYjsKLXsKLQlyZXR1cm4gc3RyY21wKHN5c2VudFsqKChpbnQgKikgYSldLnN5c19uYW1lLAotCQlzeXNlbnRbKigoaW50ICopIGIpXS5zeXNfbmFtZSk7Ci19Ci0KLXN0YXRpYyBpbnQKLWNvdW50X2NtcChhLCBiKQotdm9pZCAqYTsKLXZvaWQgKmI7Ci17Ci0JaW50IG0gPSBjb3VudHNbKigoaW50ICopIGEpXS5jYWxscywgbiA9IGNvdW50c1sqKChpbnQgKikgYildLmNhbGxzOwotCi0JcmV0dXJuIChtIDwgbikgPyAxIDogKG0gPiBuKSA/IC0xIDogMDsKLX0KLQotc3RhdGljIGludCAoKnNvcnRmdW4pKCk7Ci1zdGF0aWMgc3RydWN0IHRpbWV2YWwgb3ZlcmhlYWQgPSB7IC0xLCAtMSB9OwotCi12b2lkCi1zZXRfc29ydGJ5KHNvcnRieSkKLWNoYXIgKnNvcnRieTsKLXsKLQlpZiAoc3RyY21wKHNvcnRieSwgInRpbWUiKSA9PSAwKQotCQlzb3J0ZnVuID0gdGltZV9jbXA7Ci0JZWxzZSBpZiAoc3RyY21wKHNvcnRieSwgImNhbGxzIikgPT0gMCkKLQkJc29ydGZ1biA9IGNvdW50X2NtcDsKLQllbHNlIGlmIChzdHJjbXAoc29ydGJ5LCAibmFtZSIpID09IDApCi0JCXNvcnRmdW4gPSBzeXNjYWxsX2NtcDsKLQllbHNlIGlmIChzdHJjbXAoc29ydGJ5LCAibm90aGluZyIpID09IDApCi0JCXNvcnRmdW4gPSBOVUxMOwotCWVsc2UgewotCQlmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgc29ydGJ5OiBgJXMnXG4iLCBzb3J0YnkpOwotCQlleGl0KDEpOworI2lmZGVmIExJTlVYCisJaWYgKCFzeXNlcnJvcih0Y3ApKQorCQlyZXR1cm4gMDsKKwlzd2l0Y2ggKHRjcC0+dV9lcnJvcikgeworCQljYXNlIEVSRVNUQVJUU1lTOgorCQljYXNlIEVSRVNUQVJUTk9JTlRSOgorCQljYXNlIEVSRVNUQVJUTk9IQU5EOgorCQljYXNlIEVSRVNUQVJUX1JFU1RBUlRCTE9DSzoKKwkJCXJldHVybiAxOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CiAJfQotfQotCi12b2lkIHNldF9vdmVyaGVhZChuKQotaW50IG47Ci17Ci0Jb3ZlcmhlYWQudHZfc2VjID0gbiAvIDEwMDAwMDA7Ci0Jb3ZlcmhlYWQudHZfdXNlYyA9IG4gJSAxMDAwMDAwOwotfQotCi12b2lkCi1jYWxsX3N1bW1hcnkob3V0ZikKLUZJTEUgKm91dGY7Ci17Ci0JaW50IGksIGo7Ci0JaW50IGNhbGxfY3VtLCBlcnJvcl9jdW07Ci0Jc3RydWN0IHRpbWV2YWwgdHZfY3VtLCBkdHY7Ci0JZG91YmxlIHBlcmNlbnQ7Ci0JY2hhciAqZGFzaGVzID0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iOwotCWNoYXIgZXJyb3Jfc3RyWzE2XTsKLQotCWludCAqc29ydGVkX2NvdW50ID0gbWFsbG9jKG5zeXNjYWxscyAqIHNpemVvZihpbnQpKTsKLQotCWNhbGxfY3VtID0gZXJyb3JfY3VtID0gdHZfY3VtLnR2X3NlYyA9IHR2X2N1bS50dl91c2VjID0gMDsKLQlpZiAob3ZlcmhlYWQudHZfc2VjID09IC0xKSB7Ci0JCXR2X211bCgmb3ZlcmhlYWQsICZzaG9ydGVzdCwgOCk7Ci0JCXR2X2Rpdigmb3ZlcmhlYWQsICZvdmVyaGVhZCwgMTApOwotCX0KLQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyBpKyspIHsKLQkJc29ydGVkX2NvdW50W2ldID0gaTsKLQkJaWYgKGNvdW50cyA9PSBOVUxMIHx8IGNvdW50c1tpXS5jYWxscyA9PSAwKQotCQkJY29udGludWU7Ci0JCXR2X211bCgmZHR2LCAmb3ZlcmhlYWQsIGNvdW50c1tpXS5jYWxscyk7Ci0JCXR2X3N1YigmY291bnRzW2ldLnRpbWUsICZjb3VudHNbaV0udGltZSwgJmR0dik7Ci0JCWNhbGxfY3VtICs9IGNvdW50c1tpXS5jYWxsczsKLQkJZXJyb3JfY3VtICs9IGNvdW50c1tpXS5lcnJvcnM7Ci0JCXR2X2FkZCgmdHZfY3VtLCAmdHZfY3VtLCAmY291bnRzW2ldLnRpbWUpOwotCX0KLQlpZiAoY291bnRzICYmIHNvcnRmdW4pCi0JCXFzb3J0KCh2b2lkICopIHNvcnRlZF9jb3VudCwgbnN5c2NhbGxzLCBzaXplb2YoaW50KSwgc29ydGZ1bik7Ci0JZnByaW50ZihvdXRmLCAiJTYuNnMgJTExLjExcyAlMTEuMTFzICU5LjlzICU5LjlzICVzXG4iLAotCQkiJSB0aW1lIiwgInNlY29uZHMiLCAidXNlY3MvY2FsbCIsCi0JCSJjYWxscyIsICJlcnJvcnMiLCAic3lzY2FsbCIpOwotCWZwcmludGYob3V0ZiwgIiU2LjZzICUxMS4xMXMgJTExLjExcyAlOS45cyAlOS45cyAlLTE2LjE2c1xuIiwKLQkJZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcyk7Ci0JaWYgKGNvdW50cykgewotCQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyBpKyspIHsKLQkJCWogPSBzb3J0ZWRfY291bnRbaV07Ci0JCQlpZiAoY291bnRzW2pdLmNhbGxzID09IDApCi0JCQkJY29udGludWU7Ci0JCQl0dl9kaXYoJmR0diwgJmNvdW50c1tqXS50aW1lLCBjb3VudHNbal0uY2FsbHMpOwotCQkJaWYgKGNvdW50c1tqXS5lcnJvcnMpCi0JCQkJc3ByaW50ZihlcnJvcl9zdHIsICIlZCIsIGNvdW50c1tqXS5lcnJvcnMpOwotCQkJZWxzZQotCQkJCWVycm9yX3N0clswXSA9ICdcMCc7Ci0JCQlwZXJjZW50ID0gKDEwMC4wICogdHZfZmxvYXQoJmNvdW50c1tqXS50aW1lKQotCQkJCSAgIC8gdHZfZmxvYXQoJnR2X2N1bSkpOwotCQkJZnByaW50ZihvdXRmLCAiJTYuMmYgJTRsZC4lMDZsZCAlMTFsZCAlOWQgJTkuOXMgJXNcbiIsCi0JCQkJcGVyY2VudCwgKGxvbmcpIGNvdW50c1tqXS50aW1lLnR2X3NlYywKLQkJCQkobG9uZykgY291bnRzW2pdLnRpbWUudHZfdXNlYywKLQkJCQkobG9uZykgMTAwMDAwMCAqIGR0di50dl9zZWMgKyBkdHYudHZfdXNlYywKLQkJCQljb3VudHNbal0uY2FsbHMsCi0JCQkJZXJyb3Jfc3RyLCBzeXNlbnRbal0uc3lzX25hbWUpOwotCQl9Ci0JfQotCWZyZWUoc29ydGVkX2NvdW50KTsKLQotCWZwcmludGYob3V0ZiwgIiU2LjZzICUxMS4xMXMgJTExLjExcyAlOS45cyAlOS45cyAlLTE2LjE2c1xuIiwKLQkJZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcyk7Ci0JaWYgKGVycm9yX2N1bSkKLQkJc3ByaW50ZihlcnJvcl9zdHIsICIlZCIsIGVycm9yX2N1bSk7Ci0JZWxzZQotCQllcnJvcl9zdHJbMF0gPSAnXDAnOwotCWZwcmludGYob3V0ZiwgIiU2LjZzICU0bGQuJTA2bGQgJTExLjExcyAlOWQgJTkuOXMgJXNcbiIsCi0JCSIxMDAuMDAiLCAobG9uZykgdHZfY3VtLnR2X3NlYywgKGxvbmcpIHR2X2N1bS50dl91c2VjLCAiIiwKLQkJY2FsbF9jdW0sIGVycm9yX3N0ciwgInRvdGFsIik7Ci0KKyNlbmRpZiAvKiBMSU5VWCAqLworCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc3lzY2FsbGVudC5zaCBiL3N5c2NhbGxlbnQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmMDg3MDEuLjAwMDAwMDAKLS0tIGEvc3lzY2FsbGVudC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLSMhL2Jpbi9zaAotIyBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCi0jICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgotIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCi0jIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCi0jIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0jIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0jIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0jCi0jCSRJZDogc3lzY2FsbGVudC5zaCx2IDEuMyAyMDAzLzAzLzMxIDAxOjAzOjM0IHJvbGFuZCBFeHAgJAotCi1jYXQgJHsxKyIkQCJ9IHwKLQlzZWQgLW4gJ3MvXiNbIAldKmRlZmluZVsgCV1bIAldKlNZU19cKFteIAldKlwpWyAJXSpbXjAtOV0qXChbMC05XSpcKS4qJC9cMSBcMi9wCi1zL14jWyAJXSpkZWZpbmVbIAldWyAJXSpfX05SX1woW14gCV0qXClbIAldKlteMC05XSpcKFswLTldKlwpLiokL1wxIFwyL3AKLXMvXiNbIF0qZGVmaW5lWyBdWyBdKl9fTlJfXChbXiBdKlwpWyBdKlteMC05KCldKihfX05SX0xpbnV4ICsgXChbMC05XSpcKSkkL1wxIFwyL3AnIHwKLQlzb3J0ICsxbiB8IHVuaXEgfAotCWF3ayAnCi0JQkVHSU4gewotCQl0YWJzID0gIlx0XHRcdFx0XHRcdFx0XHQiCi0JCWNhbGwgPSAtMTsKLQl9Ci0JewotCQl3aGlsZSAoKytjYWxsIDwgJDIpIHsKLQkJCWYgPSAicHJpbnRhcmdzIgotCQkJbiA9ICJTWVNfIiBjYWxsCi0JCQlzID0gIlx0eyAtMSxcdDAsXHQiCi0JCQlzID0gcyBmICIsIgotCQkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDI0LzggLSBpbnQoKGxlbmd0aChmKSArIDEpLzgpKQotCQkJcyA9IHMgIlwiIiBuICJcIiIKLQkJCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAxNi84IC0gaW50KChsZW5ndGgobikgKyAyKS84KSkKLQkJCXMgPSBzICJ9LCAvKiAiIGNhbGwgIiAqLyIKLQkJCXByaW50IHMKLQkJfQotCQlmID0gInN5c18iICQxCi0JCW4gPSAkMQotCQlzID0gIlx0eyAtMSxcdDAsXHQiCi0JCXMgPSBzIGYgIiwiCi0JCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAyNC84IC0gaW50KChsZW5ndGgoZikgKyAxKS84KSkKLQkJcyA9IHMgIlwiIiBuICJcIiIKLQkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDE2LzggLSBpbnQoKGxlbmd0aChuKSArIDIpLzgpKQotCQlzID0gcyAifSwgLyogIiBjYWxsICIgKi8iCi0JCXByaW50IHMKLQl9Ci0JRU5EIHsKLQkJbGltaXQgPSBjYWxsICsgMTAwCi0JCXdoaWxlICgrK2NhbGwgPCBsaW1pdCkgewotCQkJZiA9ICJwcmludGFyZ3MiCi0JCQluID0gIlNZU18iIGNhbGwKLQkJCXMgPSAiXHR7IC0xLFx0MCxcdCIKLQkJCXMgPSBzIGYgIiwiCi0JCQlzID0gcyBzdWJzdHIodGFicywgMSwgMjQvOCAtIGludCgobGVuZ3RoKGYpICsgMSkvOCkpCi0JCQlzID0gcyAiXCIiIG4gIlwiIgotCQkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDE2LzggLSBpbnQoKGxlbmd0aChuKSArIDIpLzgpKQotCQkJcyA9IHMgIn0sIC8qICIgY2FsbCAiICovIgotCQkJcHJpbnQgcwotCQl9Ci0JfQotCScKZGlmZiAtLWdpdCBhL3N5c3RlbS5jIGIvc3lzdGVtLmMKaW5kZXggZThlYjViZS4uMDFiZDk5NSAxMDA2NDQKLS0tIGEvc3lzdGVtLmMKKysrIGIvc3lzdGVtLmMKQEAgLTI3LDIwICsyNywxNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogc3lzdGVtLmMsdiAxLjM3IDIwMDUvMDYvMDEgMTk6MjI6MDYgcm9sYW5kIEV4cCAkCisgKgkkSWQkCiAgKi8KIAogI2luY2x1ZGUgImRlZnMuaCIKIAotI2lmZGVmIExJTlVYCi0KICNpZmRlZiBIQVZFX0FORFJPSURfT1MKICN1bmRlZiBfX3VudXNlZAotI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgotI2luY2x1ZGUgPHN5cy9tb3VudC5oPgotI2RlZmluZSBDVExfUFJPQyA0CisjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CisjZW5kaWYKIAotI2Vsc2UKKyNpZmRlZiBMSU5VWAogI2RlZmluZSBfTElOVVhfU09DS0VUX0gKICNkZWZpbmUgX0xJTlVYX0ZTX0gKIApAQCAtNTcsMTEgKzU0LDIxIEBACiAjZGVmaW5lIE1TX0JJTkQJCTQwOTYKICNkZWZpbmUgTVNfTU9WRQkJODE5MgogI2RlZmluZSBNU19SRUMJCTE2Mzg0Ci0jZGVmaW5lIE1TX1ZFUkJPU0UJMzI3NjgKKyNkZWZpbmUgTVNfU0lMRU5UCTMyNzY4CiAjZGVmaW5lIE1TX1BPU0lYQUNMCSgxPDwxNikJLyogVkZTIGRvZXMgbm90IGFwcGx5IHRoZSB1bWFzayAqLworI2RlZmluZSBNU19VTkJJTkRBQkxFCSgxPDwxNykJLyogY2hhbmdlIHRvIHVuYmluZGFibGUgKi8KKyNkZWZpbmUgTVNfUFJJVkFURQkoMTw8MTgpCS8qIGNoYW5nZSB0byBwcml2YXRlICovCisjZGVmaW5lIE1TX1NMQVZFCSgxPDwxOSkJLyogY2hhbmdlIHRvIHNsYXZlICovCisjZGVmaW5lIE1TX1NIQVJFRAkoMTw8MjApCS8qIGNoYW5nZSB0byBzaGFyZWQgKi8KKyNkZWZpbmUgTVNfUkVMQVRJTUUJKDE8PDIxKQorI2RlZmluZSBNU19LRVJOTU9VTlQJKDE8PDIyKQorI2RlZmluZSBNU19JX1ZFUlNJT04JKDE8PDIzKQorI2RlZmluZSBNU19TVFJJQ1RBVElNRQkoMTw8MjQpCisjZGVmaW5lIE1TX0JPUk4JCSgxPDwyOSkKICNkZWZpbmUgTVNfQUNUSVZFCSgxPDwzMCkKICNkZWZpbmUgTVNfTk9VU0VSCSgxPDwzMSkKLSNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KKyNkZWZpbmUgTVNfTUdDX1ZBTAkweGMwZWQwMDAwCS8qIE1hZ2ljIGZsYWcgbnVtYmVyICovCisjZGVmaW5lIE1TX01HQ19NU0sJMHhmZmZmMDAwMAkvKiBNYWdpYyBmbGFnIG1hc2sgKi8KIAogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CkBAIC02OSwxMSArNzYsMTEgQEAKIAogI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CiAKLSNpZmRlZiBTWVNfY2FwZ2V0CisjaWZkZWYgSEFWRV9MSU5VWF9DQVBBQklMSVRZX0gKICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CiAjZW5kaWYKIAotI2lmZGVmIFNZU19jYWNoZWZsdXNoCisjaWZkZWYgSEFWRV9BU01fQ0FDSEVDVExfSAogI2luY2x1ZGUgPGFzbS9jYWNoZWN0bC5oPgogI2VuZGlmCiAKQEAgLTgxLDYzICs4OCw5OSBAQAogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KICNlbmRpZgogCi0jaWZkZWYgTUlQUworI2lmZGVmIEhBVkVfQVNNX1NZU01JUFNfSAogI2luY2x1ZGUgPGFzbS9zeXNtaXBzLmg+CiAjZW5kaWYKIAogI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW91bnRfZmxhZ3NbXSA9IHsKKwl7IE1TX01HQ19WQUwsCSJNU19NR0NfVkFMIgl9LAogCXsgTVNfUkRPTkxZLAkiTVNfUkRPTkxZIgl9LAogCXsgTVNfTk9TVUlELAkiTVNfTk9TVUlEIgl9LAogCXsgTVNfTk9ERVYsCSJNU19OT0RFViIJfSwKIAl7IE1TX05PRVhFQywJIk1TX05PRVhFQyIJfSwKIAl7IE1TX1NZTkNIUk9OT1VTLCJNU19TWU5DSFJPTk9VUyJ9LAogCXsgTVNfUkVNT1VOVCwJIk1TX1JFTU9VTlQiCX0sCisJeyBNU19SRUxBVElNRSwJIk1TX1JFTEFUSU1FIgl9LAorCXsgTVNfS0VSTk1PVU5ULAkiTVNfS0VSTk1PVU5UIgl9LAorCXsgTVNfSV9WRVJTSU9OLAkiTVNfSV9WRVJTSU9OIgl9LAorCXsgTVNfU1RSSUNUQVRJTUUsIk1TX1NUUklDVEFUSU1FIn0sCisJeyBNU19CT1JOLAkiTVNfQk9STiIJfSwKIAl7IE1TX01BTkRMT0NLLAkiTVNfTUFORExPQ0siCX0sCiAJeyBNU19OT0FUSU1FLAkiTVNfTk9BVElNRSIJfSwKIAl7IE1TX05PRElSQVRJTUUsIk1TX05PRElSQVRJTUUiCX0sCiAJeyBNU19CSU5ELAkiTVNfQklORCIJfSwKIAl7IE1TX01PVkUsCSJNU19NT1ZFIgl9LAogCXsgTVNfUkVDLAkiTVNfUkVDIgl9LAotCXsgTVNfVkVSQk9TRSwJIk1TX1ZFUkJPU0UiCX0sCisJeyBNU19TSUxFTlQsCSJNU19TSUxFTlQiCX0sCiAJeyBNU19QT1NJWEFDTCwJIk1TX1BPU0lYQUNMIgl9LAorCXsgTVNfVU5CSU5EQUJMRSwiTVNfVU5CSU5EQUJMRSIJfSwKKwl7IE1TX1BSSVZBVEUsCSJNU19QUklWQVRFIgl9LAorCXsgTVNfU0xBVkUsCSJNU19TTEFWRSIJfSwKKwl7IE1TX1NIQVJFRCwJIk1TX1NIQVJFRCIJfSwKIAl7IE1TX0FDVElWRSwJIk1TX0FDVElWRSIJfSwKIAl7IE1TX05PVVNFUiwJIk1TX05PVVNFUiIJfSwKIAl7IDAsCQlOVUxMCQl9LAogfTsKIAogaW50Ci1zeXNfbW91bnQodGNwKQotc3RydWN0IHRjYiAqdGNwOworc3lzX21vdW50KHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpbnQgaWdub3JlX3R5cGUgPSAwLCBpZ25vcmVfZGF0YSA9IDA7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSB0Y3AtPnVfYXJnWzNdOworCisJCS8qIERpc2NhcmQgbWFnaWMgKi8KKwkJaWYgKChmbGFncyAmIE1TX01HQ19NU0spID09IE1TX01HQ19WQUwpCisJCQlmbGFncyAmPSB+TVNfTUdDX01TSzsKKworCQlpZiAoZmxhZ3MgJiBNU19SRU1PVU5UKQorCQkJaWdub3JlX3R5cGUgPSAxOworCQllbHNlIGlmIChmbGFncyAmIChNU19CSU5EIHwgTVNfTU9WRSkpCisJCQlpZ25vcmVfdHlwZSA9IGlnbm9yZV9kYXRhID0gMTsKKwogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKIAkJdHByaW50ZigiLCAiKTsKKwogCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKIAkJdHByaW50ZigiLCAiKTsKLQkJaWYgKCh0Y3AtPnVfYXJnWzNdICYgKE1TX0JJTkR8TVNfTU9WRXxNU19SRU1PVU5UKSkgPT0gMCkKLQkJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlCisKKwkJaWYgKGlnbm9yZV90eXBlICYmIHRjcC0+dV9hcmdbMl0pCiAJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKwkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1syXSwgLTEpOwogCQl0cHJpbnRmKCIsICIpOworCiAJCXByaW50ZmxhZ3MobW91bnRfZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJNU18/Pz8iKTsKLQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s0XSk7CisJCXRwcmludGYoIiwgIik7CisKKwkJaWYgKGlnbm9yZV9kYXRhICYmIHRjcC0+dV9hcmdbNF0pCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1s0XSk7CisJCWVsc2UKKwkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1s0XSwgLTEpOwogCX0KIAlyZXR1cm4gMDsKIH0KIAorI2RlZmluZSBNTlRfRk9SQ0UJMHgwMDAwMDAwMQkvKiBBdHRlbXB0IHRvIGZvcmNpYmlseSB1bW91bnQgKi8KKyNkZWZpbmUgTU5UX0RFVEFDSAkweDAwMDAwMDAyCS8qIEp1c3QgZGV0YWNoIGZyb20gdGhlIHRyZWUgKi8KKyNkZWZpbmUgTU5UX0VYUElSRQkweDAwMDAwMDA0CS8qIE1hcmsgZm9yIGV4cGlyeSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdW1vdW50X2ZsYWdzW10gPSB7CisJeyBNTlRfRk9SQ0UsCSJNTlRfRk9SQ0UiCX0sCisJeyBNTlRfREVUQUNILAkiTU5UX0RFVEFDSCIJfSwKKwl7IE1OVF9FWFBJUkUsCSJNTlRfRVhQSVJFIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCiBpbnQKLXN5c191bW91bnQyKHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3N5c191bW91bnQyKHN0cnVjdCB0Y2IgKnRjcCkKIHsKIAlpZiAoZW50ZXJpbmcodGNwKSkgewogCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKIAkJdHByaW50ZigiLCAiKTsKLQkJaWYgKHRjcC0+dV9hcmdbMV0gJiAxKQotCQkJdHByaW50ZigiTU5UX0ZPUkNFIik7Ci0JCWVsc2UKLQkJCXRwcmludGYoIjAiKTsKKwkJcHJpbnRmbGFncyh1bW91bnRfZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJNTlRfPz8/Iik7CiAJfQogCXJldHVybiAwOwogfQpAQCAtMjY1LDYgKzMwOCw4OCBAQAogfQogI2VuZGlmIC8qIE02OEsgKi8KIAorI2lmZGVmIEJGSU4KKworI2luY2x1ZGUgPGJmaW5fc3JhbS5oPgorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3JhbV9hbGxvY19mbGFnc1tdID0geworCXsgTDFfSU5TVF9TUkFNLAkJIkwxX0lOU1RfU1JBTSIgfSwKKwl7IEwxX0RBVEFfQV9TUkFNLAkiTDFfREFUQV9BX1NSQU0iIH0sCisJeyBMMV9EQVRBX0JfU1JBTSwJIkwxX0RBVEFfQl9TUkFNIiB9LAorCXsgTDFfREFUQV9TUkFNLAkJIkwxX0RBVEFfU1JBTSIgfSwKKwl7IEwyX1NSQU0sCQkiTDJfU1JBTSIgfSwKKwl7IDAsCQkJTlVMTCB9LAorfTsKKworaW50CitzeXNfc3JhbV9hbGxvYyhzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJLyogc2l6ZSAqLworCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCQkvKiBmbGFncyAqLworCQlwcmludHh2YWwoc3JhbV9hbGxvY19mbGFncywgdGNwLT51X2FyZ1sxXSwgIj8/P19TUkFNIik7CisJfQorCXJldHVybiAxOworfQorCisjaW5jbHVkZSA8YXNtL2NhY2hlY3RsLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBjYWNoZWZsdXNoX2ZsYWdzW10gPSB7CisJeyBJQ0FDSEUsCSJJQ0FDSEUiIH0sCisJeyBEQ0FDSEUsCSJEQ0FDSEUiIH0sCisJeyBCQ0FDSEUsCSJCQ0FDSEUiIH0sCisJeyAwLAkJTlVMTCB9LAorfTsKKworaW50CitzeXNfY2FjaGVmbHVzaChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJLyogc3RhcnQgYWRkciAqLworCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJLyogbGVuZ3RoICovCisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1sxXSk7CisJCS8qIGZsYWdzICovCisJCXByaW50eHZhbChjYWNoZWZsdXNoX2ZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiP0NBQ0hFIik7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYKKworI2lmZGVmIFNICitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgY2FjaGVmbHVzaF9mbGFnc1tdID0geworI2lmZGVmIENBQ0hFRkxVU0hfRF9JTlZBTAorCXsgQ0FDSEVGTFVTSF9EX0lOVkFMLAkiQ0FDSEVGTFVTSF9EX0lOVkFMIiB9LAorI2VuZGlmCisjaWZkZWYgQ0FDSEVGTFVTSF9EX1dCCisJeyBDQUNIRUZMVVNIX0RfV0IsCSJDQUNIRUZMVVNIX0RfV0IiIH0sCisjZW5kaWYKKyNpZmRlZiBDQUNIRUZMVVNIX0RfUFVSR0UKKwl7IENBQ0hFRkxVU0hfRF9QVVJHRSwJIkNBQ0hFRkxVU0hfRF9QVVJHRSIgfSwKKyNlbmRpZgorI2lmZGVmIENBQ0hFRkxVU0hfSQorCXsgQ0FDSEVGTFVTSF9JLAkJIkNBQ0hFRkxVU0hfSSIgfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMIH0sCit9OworCitpbnQKK3N5c19jYWNoZWZsdXNoKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQkvKiBhZGRyICovCisJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMF0pOworCQkvKiBsZW4gKi8KKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJLyogZmxhZ3MgKi8KKwkJcHJpbnRmbGFncyhjYWNoZWZsdXNoX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiQ0FDSEVGTFVTSF8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogU0ggKi8KKwogI2VuZGlmIC8qIExJTlVYICovCiAKICNpZmRlZiBTVU5PUzQKQEAgLTE0NTIsNiArMTU3NywyMSBAQAogCXsgMTw8Q0FQX1NZU19SRVNPVVJDRSwJIkNBUF9TWVNfUkVTT1VSQ0UifSwKIAl7IDE8PENBUF9TWVNfVElNRSwJIkNBUF9TWVNfVElNRSIJfSwKIAl7IDE8PENBUF9TWVNfVFRZX0NPTkZJRywiQ0FQX1NZU19UVFlfQ09ORklHIn0sCisjaWZkZWYgQ0FQX01LTk9ECisJeyAxPDxDQVBfTUtOT0QsCQkiQ0FQX01LTk9EIgl9LAorI2VuZGlmCisjaWZkZWYgQ0FQX0xFQVNFCisJeyAxPDxDQVBfTEVBU0UsCQkiQ0FQX0xFQVNFIgl9LAorI2VuZGlmCisjaWZkZWYgQ0FQX0FVRElUX1dSSVRFCisJeyAxPDxDQVBfQVVESVRfV1JJVEUsCSJDQVBfQVVESVRfV1JJVEUifSwKKyNlbmRpZgorI2lmZGVmIENBUF9BVURJVF9DT05UUk9MCisJeyAxPDxDQVBfQVVESVRfQ09OVFJPTCwJIkNBUF9BVURJVF9DT05UUk9MIn0sCisjZW5kaWYKKyNpZmRlZiBDQVBfU0VURkNBUAorCXsgMTw8Q0FQX1NFVEZDQVAsCSJDQVBfU0VURkNBUCIJfSwKKyNlbmRpZgogCXsgMCwgICAgICAgICAgICAgICAgICAgIE5VTEwgICAgICAgICAgICB9LAogfTsKIApAQCAtMTU3Nyw2ICsxNzE3LDkgQEAKICNlbmRpZgogCiAjaWZkZWYgTElOVVgKKy8qIExpbnV4IDIuNi4xOCsgaGVhZGVycyByZW1vdmVkIENUTF9QUk9DIGVudW0uICAqLworIyBkZWZpbmUgQ1RMX1BST0MgNAorIyBkZWZpbmUgQ1RMX0NQVSAxMAkJLyogb2xkZXIgaGVhZGVycyBsYWNrICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzY3RsX3Jvb3RbXSA9IHsKIAl7IENUTF9LRVJOLCAiQ1RMX0tFUk4iIH0sCiAJeyBDVExfVk0sICJDVExfVk0iIH0sCkBAIC0xNTg1LDYgKzE3MjgsOSBAQAogCXsgQ1RMX0ZTLCAiQ1RMX0ZTIiB9LAogCXsgQ1RMX0RFQlVHLCAiQ1RMX0RFQlVHIiB9LAogCXsgQ1RMX0RFViwgIkNUTF9ERVYiIH0sCisJeyBDVExfQlVTLCAiQ1RMX0JVUyIgfSwKKwl7IENUTF9BQkksICJDVExfQUJJIiB9LAorCXsgQ1RMX0NQVSwgIkNUTF9DUFUiIH0sCiAJeyAwLCBOVUxMIH0KIH07CiAKQEAgLTE5MzAsNyArMjA3Niw5IEBACiAJCQlnb3RvIG91dDsKIAkJfQogCW91dDoKLQkJbWF4X2NudCA9IGFiYnJldih0Y3ApID8gbWF4X3N0cmxlbiA6IGluZm8ubmxlbjsKKwkJbWF4X2NudCA9IGluZm8ubmxlbjsKKwkJaWYgKGFiYnJldih0Y3ApICYmIG1heF9jbnQgPiBtYXhfc3RybGVuKQorCQkJbWF4X2NudCA9IG1heF9zdHJsZW47CiAJCXdoaWxlIChjbnQgPCBtYXhfY250KQogCQkJdHByaW50ZigiLCAleCIsIG5hbWVbY250KytdKTsKIAkJaWYgKGNudCA8IGluZm8ubmxlbikKZGlmZiAtLWdpdCBhL3Rlcm0uYyBiL3Rlcm0uYwppbmRleCAyYTY4YWY4Li4yM2QyMzE3IDEwMDY0NAotLS0gYS90ZXJtLmMKKysrIGIvdGVybS5jCkBAIC0yNCw3ICsyNCw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKgotICoJJElkOiB0ZXJtLmMsdiAxLjggMjAwNS8wNi8wMSAxOTowMjozOCByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMTc4LDEwICsxNzgsNyBAQAogfTsKIAogCi1pbnQKLXRlcm1faW9jdGwodGNwLCBjb2RlLCBhcmcpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGNvZGUsIGFyZzsKK2ludCB0ZXJtX2lvY3RsKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBjb2RlLCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgdGVybWlvcyB0aW9zOwogI2lmbmRlZiBGUkVFQlNECkBAIC0zMzcsMTAgKzMzNCwxMCBAQAogCWNhc2UgVElPQ01CSVM6CiAJY2FzZSBUSU9DTUJJQzoKIAljYXNlIFRJT0NNU0VUOgotCQlpZiAodW1vdmUodGNwLCBhcmcsICZhcmcpIDwgMCkKKwkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmaSkgPCAwKQogCQkJcmV0dXJuIDA7CiAJCXRwcmludGYoIiwgWyIpOwotCQlwcmludGZsYWdzKG1vZGVtX2ZsYWdzLCBhcmcsICJUSU9DTV8/Pz8iKTsKKwkJcHJpbnRmbGFncyhtb2RlbV9mbGFncywgaSwgIlRJT0NNXz8/PyIpOwogCQl0cHJpbnRmKCJdIik7CiAJCXJldHVybiAxOwogI2VuZGlmIC8qIFRJT0NNR0VUICovCkBAIC00MTQsMTcgKzQxMSw5IEBACiAJY2FzZSBUSU9DR1BUTjoKICNlbmRpZgogCQl0cHJpbnRmKCIsICIpOwotCQlwcmludG51bSh0Y3AsIGFyZywgIiVkIik7CisJCXByaW50bnVtX2ludCh0Y3AsIGFyZywgIiVkIik7CiAJCXJldHVybiAxOwogCi0jaWYgMAotCS8qIGlvY3RscyB3aXRoIGFuIGluZGlyZWN0IHBhcmFtZXRlciBkaXNwbGF5ZWQgaW4gaGV4ICovCi0KLQkJdHByaW50ZigiLCAiKTsKLQkJcHJpbnRudW0odGNwLCBhcmcsICIlI3giKTsKLQkJcmV0dXJuIDE7Ci0jZW5kaWYKLQogCS8qIGlvY3RscyB3aXRoIGFuIGluZGlyZWN0IHBhcmFtZXRlciBkaXNwbGF5ZWQgYXMgYSBjaGFyICovCiAKICNpZmRlZiBUSU9DU1RJCmRpZmYgLS1naXQgYS90aW1lLmMgYi90aW1lLmMKaW5kZXggMTVlYzdjMC4uYjRiYjk3YyAxMDA2NDQKLS0tIGEvdGltZS5jCisrKyBiL3RpbWUuYwpAQCAtMjYsNyArMjYsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICoKLSAqCSRJZDogdGltZS5jLHYgMS4xMiAyMDA1LzA2LzAxIDE5OjAyOjM4IHJvbGFuZCBFeHAgJAorICoJJElkJAogICovCiAKICNpbmNsdWRlICJkZWZzLmgiCkBAIC00MCw1MCArNDAsMTc1IEBACiAjZW5kaWYKICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorCisjaWZuZGVmIFVUSU1FX05PVworI2RlZmluZSBVVElNRV9OT1cgKCgxbCA8PCAzMCkgLSAxbCkKKyNlbmRpZgorI2lmbmRlZiBVVElNRV9PTUlUCisjZGVmaW5lIFVUSU1FX09NSVQgKCgxbCA8PCAzMCkgLSAybCkKKyNlbmRpZgogI2VuZGlmIC8qIExJTlVYICovCiAKLXZvaWQKLXByaW50dHYodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOworc3RydWN0IHRpbWV2YWwzMgogewotCXN0cnVjdCB0aW1ldmFsIHR2OworCXVfaW50MzJfdCB0dl9zZWMsIHR2X3VzZWM7Cit9OwogCitzdGF0aWMgdm9pZAordHByaW50X3RpbWV2YWwzMihzdHJ1Y3QgdGNiICp0Y3AsIGNvbnN0IHN0cnVjdCB0aW1ldmFsMzIgKnR2KQoreworCXRwcmludGYoInsldSwgJXV9IiwgdHYtPnR2X3NlYywgdHYtPnR2X3VzZWMpOworfQorCitzdGF0aWMgdm9pZAordHByaW50X3RpbWV2YWwoc3RydWN0IHRjYiAqdGNwLCBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqdHYpCit7CisJdHByaW50ZigieyVsdSwgJWx1fSIsCisJCSh1bnNpZ25lZCBsb25nKSB0di0+dHZfc2VjLCAodW5zaWduZWQgbG9uZykgdHYtPnR2X3VzZWMpOworfQorCit2b2lkCitwcmludHR2X2JpdG5lc3Moc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGVudW0gYml0bmVzc190IGJpdG5lc3MsIGludCBzcGVjaWFsKQorewogCWlmIChhZGRyID09IDApCiAJCXRwcmludGYoIk5VTEwiKTsKIAllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQogCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JZWxzZSBpZiAodW1vdmUodGNwLCBhZGRyLCAmdHYpIDwgMCkKLQkJdHByaW50Zigiey4uLn0iKTsKLQllbHNlCi0JCXRwcmludGYoInslbHUsICVsdX0iLCAobG9uZykgdHYudHZfc2VjLCAobG9uZykgdHYudHZfdXNlYyk7Ci19CisJZWxzZSB7CisJCWludCByYzsKIAotI2lmZGVmIEFMUEhBCi1zdHJ1Y3QgdGltZXZhbDMyCi17Ci0gICAgdW5zaWduZWQgdHZfc2VjOwotICAgIHVuc2lnbmVkIHR2X3VzZWM7Ci19OworCQlpZiAoYml0bmVzcyA9PSBCSVRORVNTXzMyCisjaWYgZGVmaW5lZChMSU5VWCkgJiYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCisJCSAgICB8fCBwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0CisjZW5kaWYKKwkJCSkKKwkJeworCQkJc3RydWN0IHRpbWV2YWwzMiB0djsKKworCQkJaWYgKChyYyA9IHVtb3ZlKHRjcCwgYWRkciwgJnR2KSkgPj0gMCkgeworCQkJCWlmIChzcGVjaWFsICYmIHR2LnR2X3NlYyA9PSAwICYmCisJCQkJICAgIHR2LnR2X3VzZWMgPT0gVVRJTUVfTk9XKQorCQkJCQl0cHJpbnRmKCJVVElNRV9OT1ciKTsKKwkJCQllbHNlIGlmIChzcGVjaWFsICYmIHR2LnR2X3NlYyA9PSAwICYmCisJCQkJCSB0di50dl91c2VjID09IFVUSU1FX09NSVQpCisJCQkJCXRwcmludGYoIlVUSU1FX09NSVQiKTsKKwkJCQllbHNlCisJCQkJCXRwcmludF90aW1ldmFsMzIodGNwLCAmdHYpOworCQkJfQorCQl9IGVsc2UgeworCQkJc3RydWN0IHRpbWV2YWwgdHY7CisKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZ0dikpID49IDApIHsKKwkJCQlpZiAoc3BlY2lhbCAmJiB0di50dl9zZWMgPT0gMCAmJgorCQkJCSAgICB0di50dl91c2VjID09IFVUSU1FX05PVykKKwkJCQkJdHByaW50ZigiVVRJTUVfTk9XIik7CisJCQkJZWxzZSBpZiAoc3BlY2lhbCAmJiB0di50dl9zZWMgPT0gMCAmJgorCQkJCQkgdHYudHZfdXNlYyA9PSBVVElNRV9PTUlUKQorCQkJCQl0cHJpbnRmKCJVVElNRV9PTUlUIik7CisJCQkJZWxzZQorCQkJCQl0cHJpbnRfdGltZXZhbCh0Y3AsICZ0dik7CisJCQl9CisJCX0KKwkJaWYgKHJjIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJfQorfQogCiB2b2lkCi1wcmludHR2MzIodGNwLCBhZGRyKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOworc3ByaW50dHYoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGVudW0gYml0bmVzc190IGJpdG5lc3MsIGNoYXIgKmJ1ZikKIHsKLSAgICBzdHJ1Y3QgdGltZXZhbDMyICB0djsKKwlpZiAoYWRkciA9PSAwKQorCQlzdHJjcHkoYnVmLCAiTlVMTCIpOworCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCisJCXNwcmludGYoYnVmLCAiJSNseCIsIGFkZHIpOworCWVsc2UgeworCQlpbnQgcmM7CiAKLSAgICBpZiAoYWRkciA9PSAwKQotCXRwcmludGYoIk5VTEwiKTsKLSAgICBlbHNlIGlmICghdmVyYm9zZSh0Y3ApKQotCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLSAgICBlbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZ0dikgPCAwKQotCXRwcmludGYoInsuLi59Iik7Ci0gICAgZWxzZQotCXRwcmludGYoInsldSwgJXV9IiwgdHYudHZfc2VjLCB0di50dl91c2VjKTsKLX0KKwkJaWYgKGJpdG5lc3MgPT0gQklUTkVTU18zMgorI2lmIGRlZmluZWQoTElOVVgpICYmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMQorCQkgICAgfHwgcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNAogI2VuZGlmCisJCQkpCisJCXsKKwkJCXN0cnVjdCB0aW1ldmFsMzIgdHY7CiAKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZ0dikpID49IDApCisJCQkJc3ByaW50ZihidWYsICJ7JXUsICV1fSIsCisJCQkJCXR2LnR2X3NlYywgdHYudHZfdXNlYyk7CisJCX0gZWxzZSB7CisJCQlzdHJ1Y3QgdGltZXZhbCB0djsKKworCQkJaWYgKChyYyA9IHVtb3ZlKHRjcCwgYWRkciwgJnR2KSkgPj0gMCkKKwkJCQlzcHJpbnRmKGJ1ZiwgInslbHUsICVsdX0iLAorCQkJCQkodW5zaWduZWQgbG9uZykgdHYudHZfc2VjLAorCQkJCQkodW5zaWduZWQgbG9uZykgdHYudHZfdXNlYyk7CisJCX0KKwkJaWYgKHJjIDwgMCkKKwkJCXN0cmNweShidWYsICJ7Li4ufSIpOworCX0KK30KKwordm9pZCBwcmludF90aW1lc3BlYyhzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKK3sKKwlpZiAoYWRkciA9PSAwKQorCQl0cHJpbnRmKCJOVUxMIik7CisJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCWVsc2UgeworCQlpbnQgcmM7CisKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwkJaWYgKHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldID09IDQpIHsKKwkJCXN0cnVjdCB0aW1ldmFsMzIgdHY7CisKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZ0dikpID49IDApCisJCQkJdHByaW50ZigieyV1LCAldX0iLAorCQkJCQl0di50dl9zZWMsIHR2LnR2X3VzZWMpOworCQl9IGVsc2UKKyNlbmRpZgorCQl7CisJCQlzdHJ1Y3QgdGltZXNwZWMgdHM7CisKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZ0cykpID49IDApCisJCQkJdHByaW50ZigieyVsdSwgJWx1fSIsCisJCQkJCSh1bnNpZ25lZCBsb25nKSB0cy50dl9zZWMsCisJCQkJCSh1bnNpZ25lZCBsb25nKSB0cy50dl9uc2VjKTsKKwkJfQorCQlpZiAocmMgPCAwKQorCQkJdHByaW50Zigiey4uLn0iKTsKKwl9Cit9CisKK3ZvaWQgc3ByaW50X3RpbWVzcGVjKGNoYXIgKmJ1Ziwgc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIpCit7CisJaWYgKGFkZHIgPT0gMCkKKwkJc3RyY3B5KGJ1ZiwgIk5VTEwiKTsKKwllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQorCQlzcHJpbnRmKGJ1ZiwgIiUjbHgiLCBhZGRyKTsKKwllbHNlIHsKKwkJaW50IHJjOworCisjaWYgZGVmaW5lZChMSU5VWCkgJiYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCisJCWlmIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0KSB7CisJCQlzdHJ1Y3QgdGltZXZhbDMyIHR2OworCisJCQlpZiAoKHJjID0gdW1vdmUodGNwLCBhZGRyLCAmdHYpKSA+PSAwKQorCQkJCXNwcmludGYoYnVmLCAieyV1LCAldX0iLAorCQkJCQl0di50dl9zZWMsIHR2LnR2X3VzZWMpOworCQl9IGVsc2UKKyNlbmRpZgorCQl7CisJCQlzdHJ1Y3QgdGltZXNwZWMgdHM7CisKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZ0cykpID49IDApCisJCQkJc3ByaW50ZihidWYsICJ7JWx1LCAlbHV9IiwKKwkJCQkJKHVuc2lnbmVkIGxvbmcpIHRzLnR2X3NlYywKKwkJCQkJKHVuc2lnbmVkIGxvbmcpIHRzLnR2X25zZWMpOworCQl9CisJCWlmIChyYyA8IDApCisJCQlzdHJjcHkoYnVmLCAiey4uLn0iKTsKKwl9Cit9CiAKIGludAogc3lzX3RpbWUodGNwKQpAQCAtMTMyLDE5ICsyNTcsMTggQEAKIHN5c19vc2ZfZ2V0dGltZW9mZGF5KHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKLSAgICBpZiAoZXhpdGluZyh0Y3ApKSB7Ci0JaWYgKHN5c2Vycm9yKHRjcCkpIHsKLQkgICAgdHByaW50ZigiJSNseCwgJSNseCIsCi0JCSAgICB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKLQkgICAgcmV0dXJuIDA7Ci0JfQotCXByaW50dHYzMih0Y3AsIHRjcC0+dV9hcmdbMF0pOworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgsICUjbHgiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXJldHVybiAwOworCQl9CisJCXByaW50dHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMF0sIEJJVE5FU1NfMzIsIDApOwogI2lmbmRlZiBTVlI0Ci0JdHByaW50ZigiLCAiKTsKLQlwcmludHR2MzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR0dl9iaXRuZXNzKHRjcCwgdGNwLT51X2FyZ1sxXSwgQklUTkVTU18zMiwgMCk7CiAjZW5kaWYgLyogIVNWUjQgKi8KLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJfQorCXJldHVybiAwOwogfQogI2VuZGlmCiAKQEAgLTE2NywxNCArMjkxLDE0IEBACiBzeXNfb3NmX3NldHRpbWVvZmRheSh0Y3ApCiBzdHJ1Y3QgdGNiICp0Y3A7CiB7Ci0gICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKLQlwcmludHR2MzIodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHR2X2JpdG5lc3ModGNwLCB0Y3AtPnVfYXJnWzBdLCBCSVRORVNTXzMyLCAwKTsKICNpZm5kZWYgU1ZSNAotCXRwcmludGYoIiwgIik7Ci0JcHJpbnR0djMyKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50dHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIEJJVE5FU1NfMzIsIDApOwogI2VuZGlmIC8qICFTVlI0ICovCi0gICAgfQotICAgIHJldHVybiAwOworCX0KKwlyZXR1cm4gMDsKIH0KICNlbmRpZgogCkBAIC0xOTQsNiArMzE4LDIxIEBACiAJcmV0dXJuIDA7CiB9CiAKK2ludAorc3lzX25hbm9zbGVlcChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfdGltZXNwZWModGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworCQlpZiAoIXRjcC0+dV9hcmdbMV0gfHwgaXNfcmVzdGFydF9lcnJvcih0Y3ApKQorCQkJcHJpbnRfdGltZXNwZWModGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHdoaWNoW10gPSB7CiAJeyBJVElNRVJfUkVBTCwJIklUSU1FUl9SRUFMIgl9LAogCXsgSVRJTUVSX1ZJUlRVQUwsIklUSU1FUl9WSVJUVUFMIn0sCkBAIC0yMDIsNTEgKzM0MSw1MCBAQAogfTsKIAogc3RhdGljIHZvaWQKLXByaW50aXR2KHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKK3ByaW50aXR2X2JpdG5lc3Moc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGVudW0gYml0bmVzc190IGJpdG5lc3MpCiB7Ci0Jc3RydWN0IGl0aW1lcnZhbCBpdHY7Ci0KIAlpZiAoYWRkciA9PSAwKQogCQl0cHJpbnRmKCJOVUxMIik7CiAJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKIAkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJml0dikgPCAwKQotCQl0cHJpbnRmKCJ7Li4ufSIpOwogCWVsc2UgewotCQl0cHJpbnRmKCJ7aXRfaW50ZXJ2YWw9eyVsdSwgJWx1fSwgaXRfdmFsdWU9eyVsdSwgJWx1fX0iLAotCQkobG9uZykgaXR2Lml0X2ludGVydmFsLnR2X3NlYywgKGxvbmcpIGl0di5pdF9pbnRlcnZhbC50dl91c2VjLAotCQkobG9uZykgaXR2Lml0X3ZhbHVlLnR2X3NlYywgKGxvbmcpIGl0di5pdF92YWx1ZS50dl91c2VjKTsKKwkJaW50IHJjOworCisJCWlmIChiaXRuZXNzID09IEJJVE5FU1NfMzIKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwkJICAgIHx8IHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldID09IDQKKyNlbmRpZgorCQkJKQorCQl7CisJCQlzdHJ1Y3QgeworCQkJCXN0cnVjdCB0aW1ldmFsMzIgaXRfaW50ZXJ2YWwsIGl0X3ZhbHVlOworCQkJfSBpdHY7CisKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZpdHYpKSA+PSAwKSB7CisJCQkJdHByaW50Zigie2l0X2ludGVydmFsPSIpOworCQkJCXRwcmludF90aW1ldmFsMzIodGNwLCAmaXR2Lml0X2ludGVydmFsKTsKKwkJCQl0cHJpbnRmKCIsIGl0X3ZhbHVlPSIpOworCQkJCXRwcmludF90aW1ldmFsMzIodGNwLCAmaXR2Lml0X3ZhbHVlKTsKKwkJCQl0cHJpbnRmKCJ9Iik7CisJCQl9CisJCX0gZWxzZSB7CisJCQlzdHJ1Y3QgaXRpbWVydmFsIGl0djsKKworCQkJaWYgKChyYyA9IHVtb3ZlKHRjcCwgYWRkciwgJml0dikpID49IDApCXsKKwkJCQl0cHJpbnRmKCJ7aXRfaW50ZXJ2YWw9Iik7CisJCQkJdHByaW50X3RpbWV2YWwodGNwLCAmaXR2Lml0X2ludGVydmFsKTsKKwkJCQl0cHJpbnRmKCIsIGl0X3ZhbHVlPSIpOworCQkJCXRwcmludF90aW1ldmFsKHRjcCwgJml0di5pdF92YWx1ZSk7CisJCQkJdHByaW50ZigifSIpOworCQkJfQorCQl9CisJCWlmIChyYyA8IDApCisJCQl0cHJpbnRmKCJ7Li4ufSIpOwogCX0KIH0KIAotCi0jaWZkZWYgQUxQSEEKLXN0YXRpYyB2b2lkCi1wcmludGl0djMyKHRjcCwgYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLXsKLSAgICBzdHJ1Y3QgaXRpbWVydmFsMzIKLSAgICB7Ci0Jc3RydWN0IHRpbWV2YWwzMiBpdF9pbnRlcnZhbDsKLQlzdHJ1Y3QgdGltZXZhbDMyIGl0X3ZhbHVlOwotICAgIH0gaXR2OwotCi0gICAgaWYgKGFkZHIgPT0gMCkKLQl0cHJpbnRmKCJOVUxMIik7Ci0gICAgZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKLQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0gICAgZWxzZSBpZiAodW1vdmUodGNwLCBhZGRyLCAmaXR2KSA8IDApCi0JdHByaW50Zigiey4uLn0iKTsKLSAgICBlbHNlIHsKLQl0cHJpbnRmKCJ7aXRfaW50ZXJ2YWw9eyV1LCAldX0sIGl0X3ZhbHVlPXsldSwgJXV9fSIsCi0JCWl0di5pdF9pbnRlcnZhbC50dl9zZWMsIGl0di5pdF9pbnRlcnZhbC50dl91c2VjLAotCQlpdHYuaXRfdmFsdWUudHZfc2VjLCBpdHYuaXRfdmFsdWUudHZfdXNlYyk7Ci0gICAgfQotfQotI2VuZGlmCisjZGVmaW5lIHByaW50aXR2KHRjcCwgYWRkcikJXAorCXByaW50aXR2X2JpdG5lc3MoKHRjcCksIChhZGRyKSwgQklUTkVTU19DVVJSRU5UKQogCiBpbnQKIHN5c19nZXRpdGltZXIodGNwKQpAQCAtMjcwLDE2ICs0MDgsMTYgQEAKIHN5c19vc2ZfZ2V0aXRpbWVyKHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKLSAgICBpZiAoZW50ZXJpbmcodGNwKSkgewotCXByaW50eHZhbCh3aGljaCwgdGNwLT51X2FyZ1swXSwgIklUSU1FUl8/Pz8iKTsKLQl0cHJpbnRmKCIsICIpOwotICAgIH0gZWxzZSB7Ci0JaWYgKHN5c2Vycm9yKHRjcCkpCi0JICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKLQllbHNlCi0JICAgIHByaW50aXR2MzIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHdoaWNoLCB0Y3AtPnVfYXJnWzBdLCAiSVRJTUVSXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlCisJCQlwcmludGl0dl9iaXRuZXNzKHRjcCwgdGNwLT51X2FyZ1sxXSwgQklUTkVTU18zMik7CisJfQorCXJldHVybiAwOwogfQogI2VuZGlmCiAKQEAgLTMwNiw2MSArNDQ0LDIyNSBAQAogc3lzX29zZl9zZXRpdGltZXIodGNwKQogc3RydWN0IHRjYiAqdGNwOwogewotICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7Ci0JcHJpbnR4dmFsKHdoaWNoLCB0Y3AtPnVfYXJnWzBdLCAiSVRJTUVSXz8/PyIpOwotCXRwcmludGYoIiwgIik7Ci0JcHJpbnRpdHYzMih0Y3AsIHRjcC0+dV9hcmdbMV0pOwotCXRwcmludGYoIiwgIik7Ci0gICAgfSBlbHNlIHsKLQlpZiAoc3lzZXJyb3IodGNwKSkKLQkgICAgdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCWVsc2UKLQkgICAgcHJpbnRpdHYzMih0Y3AsIHRjcC0+dV9hcmdbMl0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwod2hpY2gsIHRjcC0+dV9hcmdbMF0sICJJVElNRVJfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50aXR2X2JpdG5lc3ModGNwLCB0Y3AtPnVfYXJnWzFdLCBCSVRORVNTXzMyKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorCQkJcHJpbnRpdHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMl0sIEJJVE5FU1NfMzIpOworCX0KKwlyZXR1cm4gMDsKIH0KICNlbmRpZgogCiAjaWZkZWYgTElOVVgKIAotaW50Ci1zeXNfYWRqdGltZXgodGNwKQotc3RydWN0IHRjYiAqdGNwOwotewotCXN0cnVjdCB0aW1leCB0eGM7CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYWRqdGltZXhfbW9kZXNbXSA9IHsKKyAgeyAwLCAiMCIgfSwKKyNpZmRlZiBBREpfT0ZGU0VUCisgIHsgQURKX09GRlNFVCwgIkFESl9PRkZTRVQiIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfRlJFUVVFTkNZCisgIHsgQURKX0ZSRVFVRU5DWSwgIkFESl9GUkVRVUVOQ1kiIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfTUFYRVJST1IKKyAgeyBBREpfTUFYRVJST1IsICJBREpfTUFYRVJST1IiIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfRVNURVJST1IKKyAgeyBBREpfRVNURVJST1IsICJBREpfRVNURVJST1IiIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfU1RBVFVTCisgIHsgQURKX1NUQVRVUywgIkFESl9TVEFUVVMiIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfVElNRUNPTlNUCisgIHsgQURKX1RJTUVDT05TVCwgIkFESl9USU1FQ09OU1QiIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfVElDSworICB7IEFESl9USUNLLCAiQURKX1RJQ0siIH0sCisjZW5kaWYKKyNpZmRlZiBBREpfT0ZGU0VUX1NJTkdMRVNIT1QKKyAgeyBBREpfT0ZGU0VUX1NJTkdMRVNIT1QsICJBREpfT0ZGU0VUX1NJTkdMRVNIT1QiIH0sCisjZW5kaWYKKyAgeyAwLCAgICAgICAgICAgICBOVUxMIH0KK307CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhZGp0aW1leF9zdGF0dXNbXSA9IHsKKyNpZmRlZiBTVEFfUExMCisgIHsgU1RBX1BMTCwgIlNUQV9QTEwiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfUFBTRlJFUQorICB7IFNUQV9QUFNGUkVRLCAiU1RBX1BQU0ZSRVEiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfUFBTVElNRQorICB7IFNUQV9QUFNUSU1FLCAiU1RBX1BQU1RJTUUiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfRkxMCisgIHsgU1RBX0ZMTCwgIlNUQV9GTEwiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfSU5TCisgIHsgU1RBX0lOUywgIlNUQV9JTlMiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfREVMCisgIHsgU1RBX0RFTCwgIlNUQV9ERUwiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfVU5TWU5DCisgIHsgU1RBX1VOU1lOQywgIlNUQV9VTlNZTkMiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfRlJFUUhPTEQKKyAgeyBTVEFfRlJFUUhPTEQsICJTVEFfRlJFUUhPTEQiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfUFBTU0lHTkFMCisgIHsgU1RBX1BQU1NJR05BTCwgIlNUQV9QUFNTSUdOQUwiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfUFBTSklUVEVSCisgIHsgU1RBX1BQU0pJVFRFUiwgIlNUQV9QUFNKSVRURVIiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfUFBTV0FOREVSCisgIHsgU1RBX1BQU1dBTkRFUiwgIlNUQV9QUFNXQU5ERVIiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfUFBTRVJST1IKKyAgeyBTVEFfUFBTRVJST1IsICJTVEFfUFBTRVJST1IiIH0sCisjZW5kaWYKKyNpZmRlZiBTVEFfQ0xPQ0tFUlIKKyAgeyBTVEFfQ0xPQ0tFUlIsICJTVEFfQ0xPQ0tFUlIiIH0sCisjZW5kaWYKKyAgeyAwLCAgICAgICAgICAgICBOVUxMIH0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhZGp0aW1leF9zdGF0ZVtdID0geworI2lmZGVmIFRJTUVfT0sKKyAgeyBUSU1FX09LLCAiVElNRV9PSyIgfSwKKyNlbmRpZgorI2lmZGVmIFRJTUVfSU5TCisgIHsgVElNRV9JTlMsICJUSU1FX0lOUyIgfSwKKyNlbmRpZgorI2lmZGVmIFRJTUVfREVMCisgIHsgVElNRV9ERUwsICJUSU1FX0RFTCIgfSwKKyNlbmRpZgorI2lmZGVmIFRJTUVfT09QCisgIHsgVElNRV9PT1AsICJUSU1FX09PUCIgfSwKKyNlbmRpZgorI2lmZGVmIFRJTUVfV0FJVAorICB7IFRJTUVfV0FJVCwgIlRJTUVfV0FJVCIgfSwKKyNlbmRpZgorI2lmZGVmIFRJTUVfRVJST1IKKyAgeyBUSU1FX0VSUk9SLCAiVElNRV9FUlJPUiIgfSwKKyNlbmRpZgorICB7IDAsICAgICAgICAgICAgIE5VTEwgfQorfTsKKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMQorc3RhdGljIGludAordHByaW50X3RpbWV4MzIoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIpCit7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgaW50IG1vZGVzOworCQlpbnQgICAgIG9mZnNldDsKKwkJaW50ICAgICBmcmVxOworCQlpbnQgICAgIG1heGVycm9yOworCQlpbnQgICAgIGVzdGVycm9yOworCQlpbnQgICAgIHN0YXR1czsKKwkJaW50ICAgICBjb25zdGFudDsKKwkJaW50ICAgICBwcmVjaXNpb247CisJCWludCAgICAgdG9sZXJhbmNlOworCQlzdHJ1Y3QgdGltZXZhbDMyIHRpbWU7CisJCWludCAgICAgdGljazsKKwkJaW50ICAgICBwcHNmcmVxOworCQlpbnQgICAgIGppdHRlcjsKKwkJaW50ICAgICBzaGlmdDsKKwkJaW50ICAgICBzdGFiaWw7CisJCWludCAgICAgaml0Y250OworCQlpbnQgICAgIGNhbGNudDsKKwkJaW50ICAgICBlcnJjbnQ7CisJCWludCAgICAgc3RiY250OworCX0gdHg7CisKKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmdHgpIDwgMCkKKwkJcmV0dXJuIC0xOworCisJdHByaW50Zigie21vZGVzPSIpOworCXByaW50ZmxhZ3MoYWRqdGltZXhfbW9kZXMsIHR4Lm1vZGVzLCAiQURKXz8/PyIpOworCXRwcmludGYoIiwgb2Zmc2V0PSVkLCBmcmVxPSVkLCBtYXhlcnJvcj0lZCwgIiwKKwkJdHgub2Zmc2V0LCB0eC5mcmVxLCB0eC5tYXhlcnJvcik7CisJdHByaW50ZigiZXN0ZXJyb3I9JXUsIHN0YXR1cz0iLCB0eC5lc3RlcnJvcik7CisJcHJpbnRmbGFncyhhZGp0aW1leF9zdGF0dXMsIHR4LnN0YXR1cywgIlNUQV8/Pz8iKTsKKwl0cHJpbnRmKCIsIGNvbnN0YW50PSVkLCBwcmVjaXNpb249JXUsICIsCisJCXR4LmNvbnN0YW50LCB0eC5wcmVjaXNpb24pOworCXRwcmludGYoInRvbGVyYW5jZT0lZCwgdGltZT0iLCB0eC50b2xlcmFuY2UpOworCXRwcmludF90aW1ldmFsMzIodGNwLCAmdHgudGltZSk7CisJdHByaW50ZigiLCB0aWNrPSVkLCBwcHNmcmVxPSVkLCBqaXR0ZXI9JWQiLAorCQl0eC50aWNrLCB0eC5wcHNmcmVxLCB0eC5qaXR0ZXIpOworCXRwcmludGYoIiwgc2hpZnQ9JWQsIHN0YWJpbD0lZCwgaml0Y250PSVkIiwKKwkJdHguc2hpZnQsIHR4LnN0YWJpbCwgdHguaml0Y250KTsKKwl0cHJpbnRmKCIsIGNhbGNudD0lZCwgZXJyY250PSVkLCBzdGJjbnQ9JWQiLAorCQl0eC5jYWxjbnQsIHR4LmVycmNudCwgdHguc3RiY250KTsKKwl0cHJpbnRmKCJ9Iik7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxICovCisKK3N0YXRpYyBpbnQKK3RwcmludF90aW1leChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKK3sKKwlzdHJ1Y3QgdGltZXggdHg7CisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwlpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCkKKwkJcmV0dXJuIHRwcmludF90aW1leDMyKHRjcCwgYWRkcik7CisjZW5kaWYKKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmdHgpIDwgMCkKKwkJcmV0dXJuIC0xOworCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgNjYzMzIKKwl0cHJpbnRmKCJ7bW9kZT0lZCwgb2Zmc2V0PSVsZCwgZnJlcXVlbmN5PSVsZCwgIiwKKwkJdHgubW9kZSwgdHgub2Zmc2V0LCB0eC5mcmVxdWVuY3kpOworCXRwcmludGYoIm1heGVycm9yPSVsZCwgZXN0ZXJyb3I9JWx1LCBzdGF0dXM9JXUsICIsCisJCXR4Lm1heGVycm9yLCB0eC5lc3RlcnJvciwgdHguc3RhdHVzKTsKKwl0cHJpbnRmKCJ0aW1lX2NvbnN0YW50PSVsZCwgcHJlY2lzaW9uPSVsdSwgIiwKKwkJdHgudGltZV9jb25zdGFudCwgdHgucHJlY2lzaW9uKTsKKwl0cHJpbnRmKCJ0b2xlcmFuY2U9JWxkLCB0aW1lPSIsIHR4LnRvbGVyYW5jZSk7CisJdHByaW50X3RpbWV2YWwodGNwLCAmdHgudGltZSk7CisjZWxzZQorCXRwcmludGYoInttb2Rlcz0iKTsKKwlwcmludGZsYWdzKGFkanRpbWV4X21vZGVzLCB0eC5tb2RlcywgIkFESl8/Pz8iKTsKKwl0cHJpbnRmKCIsIG9mZnNldD0lbGQsIGZyZXE9JWxkLCBtYXhlcnJvcj0lbGQsICIsCisJCXR4Lm9mZnNldCwgdHguZnJlcSwgdHgubWF4ZXJyb3IpOworCXRwcmludGYoImVzdGVycm9yPSVsdSwgc3RhdHVzPSIsIHR4LmVzdGVycm9yKTsKKwlwcmludGZsYWdzKGFkanRpbWV4X3N0YXR1cywgdHguc3RhdHVzLCAiU1RBXz8/PyIpOworCXRwcmludGYoIiwgY29uc3RhbnQ9JWxkLCBwcmVjaXNpb249JWx1LCAiLAorCQl0eC5jb25zdGFudCwgdHgucHJlY2lzaW9uKTsKKwl0cHJpbnRmKCJ0b2xlcmFuY2U9JWxkLCB0aW1lPSIsIHR4LnRvbGVyYW5jZSk7CisJdHByaW50X3RpbWV2YWwodGNwLCAmdHgudGltZSk7CisJdHByaW50ZigiLCB0aWNrPSVsZCwgcHBzZnJlcT0lbGQsIGppdHRlcj0lbGQiLAorCQl0eC50aWNrLCB0eC5wcHNmcmVxLCB0eC5qaXR0ZXIpOworCXRwcmludGYoIiwgc2hpZnQ9JWQsIHN0YWJpbD0lbGQsIGppdGNudD0lbGQiLAorCQl0eC5zaGlmdCwgdHguc3RhYmlsLCB0eC5qaXRjbnQpOworCXRwcmludGYoIiwgY2FsY250PSVsZCwgZXJyY250PSVsZCwgc3RiY250PSVsZCIsCisJCXR4LmNhbGNudCwgdHguZXJyY250LCB0eC5zdGJjbnQpOworI2VuZGlmCisJdHByaW50ZigifSIpOworCXJldHVybiAwOworfQorCitpbnQKK3N5c19hZGp0aW1leChzdHJ1Y3QgdGNiICp0Y3ApCit7CiAJaWYgKGV4aXRpbmcodGNwKSkgewogCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQogCQkJdHByaW50ZigiTlVMTCIpOwogCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCiAJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7Ci0JCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnR4YykgPCAwKQorCQllbHNlIGlmICh0cHJpbnRfdGltZXgodGNwLCB0Y3AtPnVfYXJnWzBdKSA8IDApCiAJCQl0cHJpbnRmKCJ7Li4ufSIpOwotCQllbHNlIHsKLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCA2NjMzMgotCQkJdHByaW50Zigie21vZGU9JWQsIG9mZnNldD0lbGQsIGZyZXF1ZW5jeT0lbGQsICIsCi0JCQkJdHhjLm1vZGUsIHR4Yy5vZmZzZXQsIHR4Yy5mcmVxdWVuY3kpOwotCQkJdHByaW50ZigibWF4ZXJyb3I9JWxkLCBlc3RlcnJvcj0lbHUsIHN0YXR1cz0ldSwgIiwKLQkJCQl0eGMubWF4ZXJyb3IsIHR4Yy5lc3RlcnJvciwgdHhjLnN0YXR1cyk7Ci0JCQl0cHJpbnRmKCJ0aW1lX2NvbnN0YW50PSVsZCwgcHJlY2lzaW9uPSVsdSwgIiwKLQkJCQl0eGMudGltZV9jb25zdGFudCwgdHhjLnByZWNpc2lvbik7Ci0JCQl0cHJpbnRmKCJ0b2xlcmFuY2U9JWxkLCB0aW1lPXslbHUsICVsdX19IiwKLQkJCQl0eGMudG9sZXJhbmNlLCAobG9uZykgdHhjLnRpbWUudHZfc2VjLAotCQkJCShsb25nKSB0eGMudGltZS50dl91c2VjKTsKLSNlbHNlCi0JCQl0cHJpbnRmKCJ7bW9kZXM9JWQsIG9mZnNldD0lbGQsIGZyZXE9JWxkLCAiLAotCQkJCXR4Yy5tb2RlcywgdHhjLm9mZnNldCwgdHhjLmZyZXEpOwotCQkJdHByaW50ZigibWF4ZXJyb3I9JWxkLCBlc3RlcnJvcj0lbHUsIHN0YXR1cz0ldSwgIiwKLQkJCQl0eGMubWF4ZXJyb3IsIHR4Yy5lc3RlcnJvciwgdHhjLnN0YXR1cyk7Ci0JCQl0cHJpbnRmKCJjb25zdGFudD0lbGQsIHByZWNpc2lvbj0lbHUsICIsCi0JCQkJdHhjLmNvbnN0YW50LCB0eGMucHJlY2lzaW9uKTsKLQkJCXRwcmludGYoInRvbGVyYW5jZT0lbGQsIHRpbWU9eyVsdSwgJWx1fX0iLAotCQkJCXR4Yy50b2xlcmFuY2UsIChsb25nKSB0eGMudGltZS50dl9zZWMsCi0JCQkJKGxvbmcpIHR4Yy50aW1lLnR2X3VzZWMpOwotCQkJLyogdGhlcmUncyBhIGJ1bmNoIG9mIG90aGVyIHN0dWZmLCBidXQgaXQncyBub3QKLQkJCSAqIHdvcnRoIHRoZSB0aW1lIG9yIHRoZSB0cm91YmxlIHRvIGluY2x1ZGUgKi8KLSNlbmRpZgotCQl9CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0geGxvb2t1cChhZGp0aW1leF9zdGF0ZSwgdGNwLT51X3J2YWwpOworCQlpZiAodGNwLT5hdXhzdHIpCisJCQlyZXR1cm4gUlZBTF9TVFI7CiAJfQogCXJldHVybiAwOwogfQpAQCAtMzc3LDcgKzY3OSwyMiBAQAogI2lmZGVmIENMT0NLX01PTk9UT05JQwogICB7IENMT0NLX01PTk9UT05JQywgIkNMT0NLX01PTk9UT05JQyIgfSwKICNlbmRpZgotICB7IDAsICAgICAgICAgICAgIE5VTEwgfQorI2lmZGVmIENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRAorICB7IENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCwgIkNMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCIgfSwKKyNlbmRpZgorI2lmZGVmIENMT0NLX1RIUkVBRF9DUFVUSU1FX0lECisgIHsgQ0xPQ0tfVEhSRUFEX0NQVVRJTUVfSUQsICJDTE9DS19USFJFQURfQ1BVVElNRV9JRCIgfSwKKyNlbmRpZgorI2lmZGVmIENMT0NLX01PTk9UT05JQ19SQVcKKyAgeyBDTE9DS19NT05PVE9OSUNfUkFXLCAiQ0xPQ0tfTU9OT1RPTklDX1JBVyIgfSwKKyNlbmRpZgorI2lmZGVmIENMT0NLX1JFQUxUSU1FX0NPQVJTRQorICB7IENMT0NLX1JFQUxUSU1FX0NPQVJTRSwgIkNMT0NLX1JFQUxUSU1FX0NPQVJTRSIgfSwKKyNlbmRpZgorI2lmZGVmIENMT0NLX01PTk9UT05JQ19DT0FSU0UKKyAgeyBDTE9DS19NT05PVE9OSUNfQ09BUlNFLCAiQ0xPQ0tfTU9OT1RPTklDX0NPQVJTRSIgfSwKKyNlbmRpZgorICB7IDAsIE5VTEwgfQogfTsKIAogaW50CkBAIC00MzksMTIgKzc1Niw1OCBAQAogCXsgMCwgTlVMTCB9CiB9OwogCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCitzdGF0aWMgdm9pZAorcHJpbnRzaWdldmVudDMyKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhcmcpCit7CisJc3RydWN0IHsKKwkJaW50ICAgICBzaWdldl92YWx1ZTsKKwkJaW50ICAgICBzaWdldl9zaWdubzsKKwkJaW50ICAgICBzaWdldl9ub3RpZnk7CisKKwkJdW5pb24geworCQkJaW50ICAgICB0aWQ7CisJCQlzdHJ1Y3QgeworCQkJCWludCAgICAgZnVuY3Rpb24sIGF0dHJpYnV0ZTsKKwkJCX0gdGhyZWFkOworCQl9IHVuOworCX0gc2V2OworCisJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmc2V2KSA8IDApCisJCXRwcmludGYoInsuLi59Iik7CisJZWxzZSB7CisJCXRwcmludGYoInslI3gsICIsIHNldi5zaWdldl92YWx1ZSk7CisJCWlmIChzZXYuc2lnZXZfbm90aWZ5ID09IFNJR0VWX1NJR05BTCkKKwkJCXRwcmludGYoIiVzLCAiLCBzaWduYW1lKHNldi5zaWdldl9zaWdubykpOworCQllbHNlCisJCQl0cHJpbnRmKCIldSwgIiwgc2V2LnNpZ2V2X3NpZ25vKTsKKwkJcHJpbnR4dmFsKHNpZ2V2X3ZhbHVlLCBzZXYuc2lnZXZfbm90aWZ5ICsgMSwgIlNJR0VWXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlpZiAoc2V2LnNpZ2V2X25vdGlmeSA9PSBTSUdFVl9USFJFQURfSUQpCisJCQl0cHJpbnRmKCJ7JWR9Iiwgc2V2LnVuLnRpZCk7CisJCWVsc2UgaWYgKHNldi5zaWdldl9ub3RpZnkgPT0gU0lHRVZfVEhSRUFEKQorCQkJdHByaW50ZigieyUjeCwgJSN4fSIsCisJCQkJc2V2LnVuLnRocmVhZC5mdW5jdGlvbiwKKwkJCQlzZXYudW4udGhyZWFkLmF0dHJpYnV0ZSk7CisJCWVsc2UKKwkJCXRwcmludGYoInsuLi59Iik7CisJCXRwcmludGYoIn0iKTsKKwl9Cit9CisjZW5kaWYKKwogdm9pZAotcHJpbnRzaWdldmVudCh0Y3AsIGFyZykKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYXJnOworcHJpbnRzaWdldmVudChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYXJnKQogewogCXN0cnVjdCBzaWdldmVudCBzZXY7CisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwlpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCkKKwl7CisJCXByaW50c2lnZXZlbnQzMih0Y3AsIGFyZyk7CisJCXJldHVybjsKKwl9CisjZW5kaWYKIAlpZiAodW1vdmUgKHRjcCwgYXJnLCAmc2V2KSA8IDApCiAJCXRwcmludGYoInsuLi59Iik7CiAJZWxzZSB7CkBAIC00NzksMTMgKzg0MiwxMiBAQAogCQlwcmludHNpZ2V2ZW50KHRjcCwgdGNwLT51X2FyZ1sxXSk7CiAJCXRwcmludGYoIiwgIik7CiAJfSBlbHNlIHsKLQkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCXZvaWQgKnA7CisKKwkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmcCkgPCAwKQogCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOwotCQllbHNlIHsKLQkJCXZvaWQgKnA7Ci0JCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZwKTsKKwkJZWxzZQogCQkJdHByaW50ZigieyVwfSIsIHApOwotCQl9CiAJfQogCXJldHVybiAwOwogfQpAQCAtNjE0LDQgKzk3Niw2NyBAQAogCX0KIAlyZXR1cm4gMTsKIH0KKworI2lmbmRlZiBURkRfVElNRVJfQUJTVElNRQorI2RlZmluZSBURkRfVElNRVJfQUJTVElNRSAoMSA8PCAwKQorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB0aW1lcmZkZmxhZ3NbXSA9IHsKKwl7IFRGRF9USU1FUl9BQlNUSU1FLAkiVEZEX1RJTUVSX0FCU1RJTUUiCX0sCisJeyAwLAkJCU5VTEwJCQl9Cit9OworCitpbnQKK3N5c190aW1lcmZkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQkvKiBJdCBkb2VzIG5vdCBtYXR0ZXIgdGhhdCB0aGUga2VybmVsIHVzZXMgaXRpbWVyc3BlYy4gICovCisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50eHZhbChjbG9ja25hbWVzLCB0Y3AtPnVfYXJnWzFdLCAiQ0xPQ0tfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3ModGltZXJmZGZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiVEZEXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdGltZXJmZF9jcmVhdGUoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChjbG9ja25hbWVzLCB0Y3AtPnVfYXJnWzBdLCAiQ0xPQ0tfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3ModGltZXJmZGZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiVEZEXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdGltZXJmZF9zZXR0aW1lKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3ModGltZXJmZGZsYWdzLCB0Y3AtPnVfYXJnWzFdLCAiVEZEXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdGltZXJmZF9nZXR0aW1lKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZkKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50aXR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCiAjZW5kaWYgLyogTElOVVggKi8KZGlmZiAtLWdpdCBhL3V0aWwuYyBiL3V0aWwuYwppbmRleCA4ZGZjMGE0Li44MWY2ODAxIDEwMDY0NAotLS0gYS91dGlsLmMKKysrIGIvdXRpbC5jCkBAIC0zMCwxMSArMzAsMTAgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKgkkSWQ6IHV0aWwuYyx2IDEuNjIgMjAwNS8wNi8wOCAyMDo0NToyOCByb2xhbmQgRXhwICQKKyAqCSRJZCQKICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgotI2luY2x1ZGUgIi4uL3N5c2NhbGwtYW5kcm9pZC5oIgogCiAjaW5jbHVkZSA8c2lnbmFsLmg+CiAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KQEAgLTUyLDYgKzUxLDEwIEBACiAjaW5jbHVkZSA8bGluay5oPgogI2VuZGlmIC8qIFNVTk9TNCAqLwogCisjaWZkZWYgSEFWRV9BTkRST0lEX09TCisjaW5jbHVkZSAic3lzY2FsbC1hbmRyb2lkLmgiCisjZW5kaWYKKwogI2lmIGRlZmluZWQobGludXgpICYmIChfX0dMSUJDX18gPCAyIHx8IChfX0dMSUJDX18gPT0gMiAmJiBfX0dMSUJDX01JTk9SX18gPCAxKSkKICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KICNlbmRpZgpAQCAtODEsNjYgKzg0LDExIEBACiAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KICNlbmRpZiAvKiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFICovCiAKLSNpZiBkZWZpbmVkKExJTlVYU1BBUkMpCi0KLSMgZGVmaW5lIGZwcSBrZXJuZWxfZnBxCi0jIGRlZmluZSBmcSBrZXJuZWxfZnEKLSMgZGVmaW5lIGZwdSBrZXJuZWxfZnB1Ci0jIGluY2x1ZGUgPGFzbS9yZWcuaD4KLSMgdW5kZWYgZnBxCi0jIHVuZGVmIGZxCi0jIHVuZGVmIGZwdQotCi0jaWYgZGVmaW5lZCAoU1BBUkM2NCkKLSMgZGVmaW5lIHJfcGMgcl90cGMKKyNpZiBkZWZpbmVkKExJTlVYU1BBUkMpICYmIGRlZmluZWQgKFNQQVJDNjQpCiAjIHVuZGVmIFBUUkFDRV9HRVRSRUdTCiAjIGRlZmluZSBQVFJBQ0VfR0VUUkVHUyBQVFJBQ0VfR0VUUkVHUzY0CiAjIHVuZGVmIFBUUkFDRV9TRVRSRUdTCiAjIGRlZmluZSBQVFJBQ0VfU0VUUkVHUyBQVFJBQ0VfU0VUUkVHUzY0Ci0jZW5kaWYgLyogU1BBUkM2NCAqLwotCi0jaWYgIWRlZmluZWQoX19HTElCQ19fKQotCi0jaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+Ci0KLSNkZWZpbmUgX2hhY2tfc3lzY2FsbDUodHlwZSxuYW1lLHR5cGUxLGFyZzEsdHlwZTIsYXJnMix0eXBlMyxhcmczLHR5cGU0LGFyZzQsXAotICAgICAgICAgIHR5cGU1LGFyZzUsc3lzY2FsbCkgXAotdHlwZSBuYW1lICh0eXBlMSBhcmcxLHR5cGUyIGFyZzIsdHlwZTMgYXJnMyx0eXBlNCBhcmc0LHR5cGU1IGFyZzUpIFwKLXsgXAotICAgICAgbG9uZyBfX3JlczsgXAotXAotX19hc21fXyB2b2xhdGlsZSAoIm9yICUlZzAsICUxLCAlJW8wXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICUyLCAlJW8xXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICUzLCAlJW8yXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICU0LCAlJW8zXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICU1LCAlJW80XG5cdCIgXAotICAgICAgICAgICAgICAgICAgIm9yICUlZzAsICU2LCAlJWcxXG5cdCIgXAotI2lmIGRlZmluZWQgKFNQQVJDNjQpCi0gICAgICAgICAgICAgICAgICAidCAweDZkXG5cdCIgXAotI2Vsc2UKLSAgICAgICAgICAgICAgICAgICJ0IDB4MTBcblx0IiBcCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICJiY2MgMWZcblx0IiBcCi0gICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJSVvMCwgJTBcblx0IiBcCi0gICAgICAgICAgICAgICAgICAic3ViICUlZzAsICUlbzAsICUwXG5cdCIgXAotICAgICAgICAgICAgICAgICAgIjE6XG5cdCIgXAotICAgICAgICAgICAgICAgICAgOiAiPXIiIChfX3JlcykgXAotICAgICAgICAgICAgICAgICAgOiAiMCIgKChsb25nKShhcmcxKSksIjEiICgobG9uZykoYXJnMikpLCBcCi0gICAgICAgICAgICAgICAgICAgICIyIiAoKGxvbmcpKGFyZzMpKSwiMyIgKChsb25nKShhcmc0KSksIjQiICgobG9uZykoYXJnNSkpLCBcCi0gICAgICAgICAgICAgICAgICAgICJpIiAoX19OUl8jI3N5c2NhbGwpICBcCi0gICAgICAgICAgICAgICAgICA6ICJnMSIsICJvMCIsICJvMSIsICJvMiIsICJvMyIsICJvNCIpOyBcCi1pZiAoX19yZXM+PTApIFwKLSAgICAgICAgcmV0dXJuICh0eXBlKSBfX3JlczsgXAotZXJybm8gPSAtX19yZXM7IFwKLXJldHVybiAtMTsgXAotfQotCi1zdGF0aWMgX2hhY2tfc3lzY2FsbDUoaW50LF9wdHJhY2UsaW50LF9fcmVxdWVzdCxpbnQsX19waWQsaW50LF9fYWRkcixpbnQsX19kYXRhLGludCxfX2FkZHIyLHB0cmFjZSkKLQotI2RlZmluZSBfcHRyYWNlCi0KLSNlbmRpZgotCiAjZW5kaWYKIAogLyogbWFjcm9zICovCkBAIC0xNTEsMTggKzk5LDYgQEAKICNkZWZpbmUgTUlOKGEsYikJCSgoKGEpIDwgKGIpKSA/IChhKSA6IChiKSkKICNlbmRpZgogCi0jaWYgMAotdm9pZAotdHZfdHYodHYsIGEsIGIpCi1zdHJ1Y3QgdGltZXZhbCAqdHY7Ci1pbnQgYTsKLWludCBiOwotewotCXR2LT50dl9zZWMgPSBhOwotCXR2LT50dl91c2VjID0gYjsKLX0KLSNlbmRpZgotCiBpbnQKIHR2X256KGEpCiBzdHJ1Y3QgdGltZXZhbCAqYTsKQEAgLTE5Niw3ICsxMzIsNyBAQAogewogCXR2LT50dl9zZWMgPSBhLT50dl9zZWMgKyBiLT50dl9zZWM7CiAJdHYtPnR2X3VzZWMgPSBhLT50dl91c2VjICsgYi0+dHZfdXNlYzsKLQlpZiAodHYtPnR2X3VzZWMgPiAxMDAwMDAwKSB7CisJaWYgKHR2LT50dl91c2VjID49IDEwMDAwMDApIHsKIAkJdHYtPnR2X3NlYysrOwogCQl0di0+dHZfdXNlYyAtPSAxMDAwMDAwOwogCX0KQEAgLTIzMCwxNCArMTY2LDEyIEBACiBpbnQgbjsKIHsKIAl0di0+dHZfdXNlYyA9IGEtPnR2X3VzZWMgKiBuOwotCXR2LT50dl9zZWMgPSBhLT50dl9zZWMgKiBuICsgYS0+dHZfdXNlYyAvIDEwMDAwMDA7CisJdHYtPnR2X3NlYyA9IGEtPnR2X3NlYyAqIG4gKyB0di0+dHZfdXNlYyAvIDEwMDAwMDA7CiAJdHYtPnR2X3VzZWMgJT0gMTAwMDAwMDsKIH0KIAotY2hhciAqCi14bG9va3VwKHhsYXQsIHZhbCkKLWNvbnN0IHN0cnVjdCB4bGF0ICp4bGF0OwotaW50IHZhbDsKK2NvbnN0IGNoYXIgKgoreGxvb2t1cChjb25zdCBzdHJ1Y3QgeGxhdCAqeGxhdCwgaW50IHZhbCkKIHsKIAlmb3IgKDsgeGxhdC0+c3RyICE9IE5VTEw7IHhsYXQrKykKIAkJaWYgKHhsYXQtPnZhbCA9PSB2YWwpCkBAIC0yNDYsMTUgKzE4MCw2NyBAQAogfQogCiAvKgorICogR2VuZXJpYyBwdHJhY2Ugd3JhcHBlciB3aGljaCB0cmFja3MgRVNSQ0ggZXJyb3JzCisgKiBieSBzZXR0aW5nIHRjcC0+cHRyYWNlX2Vycm5vIHRvIEVTUkNILgorICoKKyAqIFdlIGFzc3VtZSB0aGF0IEVTUkNIIGluZGljYXRlcyBsaWtlbHkgcHJvY2VzcyBkZWF0aCAoU0lHS0lMTD8pLAorICogbW9kdWxvIGJ1Z3Mgd2hlcmUgcHJvY2VzcyBzb21laG93IGVuZGVkIHVwIG5vdCBzdG9wcGVkLgorICogVW5mb3J0dW5hdGVseSBrZXJuZWwgdXNlcyBFU1JDSCBmb3IgdGhhdCBjYXNlIHRvby4gT2ggd2VsbC4KKyAqCisgKiBDdXJyZW50bHkgdXNlZCBieSB1cGVlaygpIG9ubHkuCisgKiBUT0RPOiB1c2UgdGhpcyBpbiBhbGwgb3RoZXIgcHRyYWNlKCkgY2FsbHMgd2hpbGUgZGVjb2RpbmcuCisgKi8KK2xvbmcKK2RvX3B0cmFjZShpbnQgcmVxdWVzdCwgc3RydWN0IHRjYiAqdGNwLCB2b2lkICphZGRyLCB2b2lkICpkYXRhKQoreworCWxvbmcgbDsKKworCWVycm5vID0gMDsKKwlsID0gcHRyYWNlKHJlcXVlc3QsIHRjcC0+cGlkLCBhZGRyLCAobG9uZykgZGF0YSk7CisJLyogTm9uLUVTUkNIIGVycm9ycyBtaWdodCBiZSBvdXIgaW52YWxpZCByZWcvbWVtIGFjY2Vzc2VzLAorCSAqIHdlIGRvIG5vdCByZWNvcmQgdGhlbS4gKi8KKwlpZiAoZXJybm8gPT0gRVNSQ0gpCisJCXRjcC0+cHRyYWNlX2Vycm5vID0gRVNSQ0g7CisJcmV0dXJuIGw7Cit9CisKKy8qCisgKiBVc2VkIHdoZW4gd2Ugd2FudCB0byB1bmJsb2NrIHN0b3BwZWQgdHJhY2VkIHByb2Nlc3MuCisgKiBTaG91bGQgYmUgb25seSB1c2VkIHdpdGggUFRSQUNFX0NPTlQsIFBUUkFDRV9ERVRBQ0ggYW5kIFBUUkFDRV9TWVNDQUxMLgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgaWYgZXJyb3Igd2FzIEVTUkNICisgKiAocHJlc3VtYWJseSBwcm9jZXNzIHdhcyBraWxsZWQgd2hpbGUgd2UgdGFsayB0byBpdCkuCisgKiBPdGhlcndpc2UgcHJpbnRzIGVycm9yIG1lc3NhZ2UgYW5kIHJldHVybnMgLTEuCisgKi8KK2ludAorcHRyYWNlX3Jlc3RhcnQoaW50IG9wLCBzdHJ1Y3QgdGNiICp0Y3AsIGludCBzaWcpCit7CisJaW50IGVycjsKKwljb25zdCBjaGFyICptc2c7CisKKwllcnJubyA9IDA7CisJcHRyYWNlKG9wLCB0Y3AtPnBpZCwgKHZvaWQgKikgMSwgKGxvbmcpIHNpZyk7CisJZXJyID0gZXJybm87CisJaWYgKCFlcnIgfHwgZXJyID09IEVTUkNIKQorCQlyZXR1cm4gMDsKKworCXRjcC0+cHRyYWNlX2Vycm5vID0gZXJyOworCW1zZyA9ICJTWVNDQUxMIjsKKwlpZiAob3AgPT0gUFRSQUNFX0NPTlQpCisJCW1zZyA9ICJDT05UIjsKKwlpZiAob3AgPT0gUFRSQUNFX0RFVEFDSCkKKwkJbXNnID0gIkRFVEFDSCI7CisJZnByaW50ZihzdGRlcnIsICJzdHJhY2U6IHB0cmFjZShQVFJBQ0VfJXMsMSwlZCk6ICVzXG4iLAorCQkJbXNnLCBzaWcsIHN0cmVycm9yKGVycikpOworCXJldHVybiAtMTsKK30KKworLyoKICAqIFByaW50IGVudHJ5IGluIHN0cnVjdCB4bGF0IHRhYmxlLCBpZiB0aGVyZS4KICAqLwogdm9pZAotcHJpbnR4dmFsKHhsYXQsIHZhbCwgZGZsdCkKLWNvbnN0IHN0cnVjdCB4bGF0ICp4bGF0OwotaW50IHZhbDsKLWNvbnN0IGNoYXIgKmRmbHQ7CitwcmludHh2YWwoY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQsIGludCB2YWwsIGNvbnN0IGNoYXIgKmRmbHQpCiB7Ci0JY2hhciAqc3RyID0geGxvb2t1cCh4bGF0LCB2YWwpOworCWNvbnN0IGNoYXIgKnN0ciA9IHhsb29rdXAoeGxhdCwgdmFsKTsKIAogCWlmIChzdHIpCiAJCXRwcmludGYoIiVzIiwgc3RyKTsKQEAgLTI2Miw2ICsyNDgsNDYgQEAKIAkJdHByaW50ZigiJSN4IC8qICVzICovIiwgdmFsLCBkZmx0KTsKIH0KIAorI2lmIEhBVkVfTE9OR19MT05HCisvKgorICogUHJpbnQgNjRiaXQgYXJndW1lbnQgYXQgcG9zaXRpb24gbGxhcmcgYW5kIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIG5leHQKKyAqIGFyZ3VtZW50LgorICovCitpbnQKK3ByaW50bGx2YWwoc3RydWN0IHRjYiAqdGNwLCBjb25zdCBjaGFyICpmb3JtYXQsIGludCBsbGFyZykKK3sKKyMgaWYgZGVmaW5lZChGUkVFQlNEKSBcCisgICAgIHx8IChkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKFBPV0VSUEMpICYmICFkZWZpbmVkKFBPV0VSUEM2NCkpIFwKKyAgICAgfHwgZGVmaW5lZCAoTElOVVhfTUlQU08zMikKKwkvKiBBbGlnbiA2NGJpdCBhcmd1bWVudCB0byA2NGJpdCBib3VuZGFyeS4gICovCisJaWYgKGxsYXJnICUgMikgbGxhcmcrKzsKKyMgZW5kaWYKKyMgaWYgZGVmaW5lZCBMSU5VWCAmJiAoZGVmaW5lZCBYODZfNjQgfHwgZGVmaW5lZCBQT1dFUlBDNjQpCisJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMCkgeworCQl0cHJpbnRmKGZvcm1hdCwgdGNwLT51X2FyZ1tsbGFyZ10pOworCQlsbGFyZysrOworCX0gZWxzZSB7CisjICBpZmRlZiBQT1dFUlBDNjQKKwkJLyogQWxpZ24gNjRiaXQgYXJndW1lbnQgdG8gNjRiaXQgYm91bmRhcnkuICAqLworCQlpZiAobGxhcmcgJSAyKSBsbGFyZysrOworIyAgZW5kaWYKKwkJdHByaW50Zihmb3JtYXQsIExPTkdfTE9ORyh0Y3AtPnVfYXJnW2xsYXJnXSwgdGNwLT51X2FyZ1tsbGFyZyArIDFdKSk7CisJCWxsYXJnICs9IDI7CisJfQorIyBlbGlmIGRlZmluZWQgSUE2NCB8fCBkZWZpbmVkIEFMUEhBCisJdHByaW50Zihmb3JtYXQsIHRjcC0+dV9hcmdbbGxhcmddKTsKKwlsbGFyZysrOworIyBlbGlmIGRlZmluZWQgTElOVVhfTUlQU04zMgorCXRwcmludGYoZm9ybWF0LCB0Y3AtPmV4dF9hcmdbbGxhcmddKTsKKwlsbGFyZysrOworIyBlbHNlCisJdHByaW50Zihmb3JtYXQsIExPTkdfTE9ORyh0Y3AtPnVfYXJnW2xsYXJnXSwgdGNwLT51X2FyZ1tsbGFyZyArIDFdKSk7CisJbGxhcmcgKz0gMjsKKyMgZW5kaWYKKwlyZXR1cm4gbGxhcmc7Cit9CisjZW5kaWYKKwogLyoKICAqIEludGVycHJldCBgeGxhdCcgYXMgYW4gYXJyYXkgb2YgZmxhZ3MKICAqIHByaW50IHRoZSBlbnRyaWVzIHdob3NlIGJpdHMgYXJlIG9uIGluIGBmbGFncycKQEAgLTI4OCwxNCArMzE0LDQyIEBACiAJcmV0dXJuIG47CiB9CiAKKy8qCisgKiBJbnRlcnByZXQgYHhsYXQnIGFzIGFuIGFycmF5IG9mIGZsYWdzLworICogUHJpbnQgdG8gc3RhdGljIHN0cmluZyB0aGUgZW50cmllcyB3aG9zZSBiaXRzIGFyZSBvbiBpbiBgZmxhZ3MnCisgKiBSZXR1cm4gc3RhdGljIHN0cmluZy4KKyAqLworY29uc3QgY2hhciAqCitzcHJpbnRmbGFncyhjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IHN0cnVjdCB4bGF0ICp4bGF0LCBpbnQgZmxhZ3MpCit7CisJc3RhdGljIGNoYXIgb3V0c3RyWzEwMjRdOworCWludCBmb3VuZCA9IDA7CisKKwlzdHJjcHkob3V0c3RyLCBwcmVmaXgpOworCisJZm9yICg7IHhsYXQtPnN0cjsgeGxhdCsrKSB7CisJCWlmICgoZmxhZ3MgJiB4bGF0LT52YWwpID09IHhsYXQtPnZhbCkgeworCQkJaWYgKGZvdW5kKQorCQkJCXN0cmNhdChvdXRzdHIsICJ8Iik7CisJCQlzdHJjYXQob3V0c3RyLCB4bGF0LT5zdHIpOworCQkJZmxhZ3MgJj0gfnhsYXQtPnZhbDsKKwkJCWZvdW5kID0gMTsKKwkJfQorCX0KKwlpZiAoZmxhZ3MpIHsKKwkJaWYgKGZvdW5kKQorCQkJc3RyY2F0KG91dHN0ciwgInwiKTsKKwkJc3ByaW50ZihvdXRzdHIgKyBzdHJsZW4ob3V0c3RyKSwgIiUjeCIsIGZsYWdzKTsKKwl9CisKKwlyZXR1cm4gb3V0c3RyOworfQorCiBpbnQKLXByaW50ZmxhZ3MoeGxhdCwgZmxhZ3MsIGRmbHQpCi1jb25zdCBzdHJ1Y3QgeGxhdCAqeGxhdDsKLWludCBmbGFnczsKLWNvbnN0IGNoYXIgKmRmbHQ7CitwcmludGZsYWdzKGNvbnN0IHN0cnVjdCB4bGF0ICp4bGF0LCBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRmbHQpCiB7CiAJaW50IG47Ci0JY2hhciAqc2VwOworCWNvbnN0IGNoYXIgKnNlcDsKIAogCWlmIChmbGFncyA9PSAwICYmIHhsYXQtPnZhbCA9PSAwKSB7CiAJCXRwcmludGYoIiVzIiwgeGxhdC0+c3RyKTsKQEAgLTMzMiwxMCArMzg2LDcgQEAKIH0KIAogdm9pZAotcHJpbnRudW0odGNwLCBhZGRyLCBmbXQpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1jaGFyICpmbXQ7CitwcmludG51bShzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgY29uc3QgY2hhciAqZm10KQogewogCWxvbmcgbnVtOwogCkBAIC0zNTMsNiArNDA0LDMwIEBACiB9CiAKIHZvaWQKK3ByaW50bnVtX2ludChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgY29uc3QgY2hhciAqZm10KQoreworCWludCBudW07CisKKwlpZiAoIWFkZHIpIHsKKwkJdHByaW50ZigiTlVMTCIpOworCQlyZXR1cm47CisJfQorCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZudW0pIDwgMCkgeworCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCXJldHVybjsKKwl9CisJdHByaW50ZigiWyIpOworCXRwcmludGYoZm10LCBudW0pOworCXRwcmludGYoIl0iKTsKK30KKwordm9pZAorcHJpbnRmZChzdHJ1Y3QgdGNiICp0Y3AsIGludCBmZCkKK3sKKwl0cHJpbnRmKCIlZCIsIGZkKTsKK30KKwordm9pZAogcHJpbnR1aWQodGV4dCwgdWlkKQogY29uc3QgY2hhciAqdGV4dDsKIHVuc2lnbmVkIGxvbmcgdWlkOwpAQCAtMzYzLDEwNiArNDM4LDM0IEBACiAKIHN0YXRpYyBjaGFyIHBhdGhbTUFYUEFUSExFTiArIDFdOwogCi1zdGF0aWMgdm9pZAotc3RyaW5nX3F1b3RlKHN0cikKLWNvbnN0IGNoYXIgKnN0cjsKKy8qCisgKiBRdW90ZSBzdHJpbmcgYGluc3RyJyBvZiBsZW5ndGggYHNpemUnCisgKiBXcml0ZSB1cCB0byAoMyArIGBzaXplJyAqIDQpIGJ5dGVzIHRvIGBvdXRzdHInIGJ1ZmZlci4KKyAqIElmIGBsZW4nIDwgMCwgdHJlYXQgYGluc3RyJyBhcyBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZworICogYW5kIHF1b3RlIGF0IG1vc3QgKGBzaXplJyAtIDEpIGJ5dGVzLgorICovCitzdGF0aWMgaW50CitzdHJpbmdfcXVvdGUoY29uc3QgY2hhciAqaW5zdHIsIGNoYXIgKm91dHN0ciwgaW50IGxlbiwgaW50IHNpemUpCiB7Ci0JY2hhciBidWZbMiAqIE1BWFBBVEhMRU4gKyAxXTsKLQljaGFyICpzOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnVzdHIgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBpbnN0cjsKKwljaGFyICpzID0gb3V0c3RyOworCWludCB1c2VoZXggPSAwLCBjLCBpOwogCi0JaWYgKCFzdHJwYnJrKHN0ciwgIlwiXCdcXCIpKSB7Ci0JCXRwcmludGYoIlwiJXNcIiIsIHN0cik7Ci0JCXJldHVybjsKLQl9Ci0JZm9yIChzID0gYnVmOyAqc3RyOyBzdHIrKykgewotCQlzd2l0Y2ggKCpzdHIpIHsKLQkJY2FzZSAnXCInOiBjYXNlICdcJyc6IGNhc2UgJ1xcJzoKLQkJCSpzKysgPSAnXFwnOyAqcysrID0gKnN0cjsgYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQkqcysrID0gKnN0cjsgYnJlYWs7Ci0JCX0KLQl9Ci0JKnMgPSAnXDAnOwotCXRwcmludGYoIlwiJXNcIiIsIGJ1Zik7Ci19Ci0KLXZvaWQKLXByaW50cGF0aCh0Y3AsIGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci17Ci0JaWYgKGFkZHIgPT0gMCkKLQkJdHByaW50ZigiTlVMTCIpOwotCWVsc2UgaWYgKHVtb3Zlc3RyKHRjcCwgYWRkciwgTUFYUEFUSExFTiwgcGF0aCkgPCAwKQotCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7Ci0JZWxzZQotCQlzdHJpbmdfcXVvdGUocGF0aCk7Ci0JcmV0dXJuOwotfQotCi12b2lkCi1wcmludHBhdGhuKHRjcCwgYWRkciwgbikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLWludCBuOwotewotCWlmIChhZGRyID09IDApCi0JCXRwcmludGYoIk5VTEwiKTsKLQllbHNlIAlpZiAodW1vdmVzdHIodGNwLCBhZGRyLCBuLCBwYXRoKSA8IDApCi0JCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQllbHNlIHsKLQkJcGF0aFtuXSA9ICdcMCc7Ci0JCXN0cmluZ19xdW90ZShwYXRoKTsKLQl9Ci19Ci0KLXZvaWQKLXByaW50c3RyKHRjcCwgYWRkciwgbGVuKQotc3RydWN0IHRjYiAqdGNwOwotbG9uZyBhZGRyOwotaW50IGxlbjsKLXsKLQlzdGF0aWMgdW5zaWduZWQgY2hhciAqc3RyID0gTlVMTDsKLQlzdGF0aWMgY2hhciAqb3V0c3RyOwotCWludCBpLCBuLCBjLCB1c2VoZXg7Ci0JY2hhciAqcywgKm91dGVuZDsKLQotCWlmICghYWRkcikgewotCQl0cHJpbnRmKCJOVUxMIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKCFzdHIpIHsKLQkJaWYgKChzdHIgPSBtYWxsb2MobWF4X3N0cmxlbikpID09IE5VTEwKLQkJICAgIHx8IChvdXRzdHIgPSBtYWxsb2MoMiptYXhfc3RybGVuKSkgPT0gTlVMTCkgewotCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKLQkJCXJldHVybjsKLQkJfQotCX0KLQlvdXRlbmQgPSBvdXRzdHIgKyBtYXhfc3RybGVuICogMiAtIDEwOwotCWlmIChsZW4gPCAwKSB7Ci0JCW4gPSBtYXhfc3RybGVuOwotCQlpZiAodW1vdmVzdHIodGNwLCBhZGRyLCBuLCAoY2hhciAqKSBzdHIpIDwgMCkgewotCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCWVsc2UgewotCQluID0gTUlOKGxlbiwgbWF4X3N0cmxlbik7Ci0JCWlmICh1bW92ZW4odGNwLCBhZGRyLCBuLCAoY2hhciAqKSBzdHIpIDwgMCkgewotCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOwotCQkJcmV0dXJuOwotCQl9Ci0JfQotCi0JdXNlaGV4ID0gMDsKIAlpZiAoeGZsYWcgPiAxKQogCQl1c2VoZXggPSAxOwogCWVsc2UgaWYgKHhmbGFnKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLQkJCWMgPSBzdHJbaV07Ci0JCQlpZiAobGVuIDwgMCAmJiBjID09ICdcMCcpCi0JCQkJYnJlYWs7CisJCS8qIENoZWNrIGZvciBwcmVzZW5jZSBvZiBzeW1ib2wgd2hpY2ggcmVxdWlyZQorCQkgICB0byBoZXgtcXVvdGUgdGhlIHdob2xlIHN0cmluZy4gKi8KKwkJZm9yIChpID0gMDsgaSA8IHNpemU7ICsraSkgeworCQkJYyA9IHVzdHJbaV07CisJCQkvKiBDaGVjayBmb3IgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLiAqLworCQkJaWYgKGxlbiA8IDApIHsKKwkJCQlpZiAoYyA9PSAnXDAnKQorCQkJCQlicmVhazsKKwkJCQkvKiBRdW90ZSBhdCBtb3N0IHNpemUgLSAxIGJ5dGVzLiAqLworCQkJCWlmIChpID09IHNpemUgLSAxKQorCQkJCQljb250aW51ZTsKKwkJCX0KIAkJCWlmICghaXNwcmludChjKSAmJiAhaXNzcGFjZShjKSkgewogCQkJCXVzZWhleCA9IDE7CiAJCQkJYnJlYWs7CkBAIC00NzAsNjEgKzQ3MywxNzMgQEAKIAkJfQogCX0KIAotCXMgPSBvdXRzdHI7CiAJKnMrKyA9ICdcIic7CiAKIAlpZiAodXNlaGV4KSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLQkJCWMgPSBzdHJbaV07Ci0JCQlpZiAobGVuIDwgMCAmJiBjID09ICdcMCcpCi0JCQkJYnJlYWs7CisJCS8qIEhleC1xdW90ZSB0aGUgd2hvbGUgc3RyaW5nLiAqLworCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisJCQljID0gdXN0cltpXTsKKwkJCS8qIENoZWNrIGZvciBOVUwtdGVybWluYXRlZCBzdHJpbmcuICovCisJCQlpZiAobGVuIDwgMCkgeworCQkJCWlmIChjID09ICdcMCcpCisJCQkJCWJyZWFrOworCQkJCS8qIFF1b3RlIGF0IG1vc3Qgc2l6ZSAtIDEgYnl0ZXMuICovCisJCQkJaWYgKGkgPT0gc2l6ZSAtIDEpCisJCQkJCWNvbnRpbnVlOworCQkJfQogCQkJc3ByaW50ZihzLCAiXFx4JTAyeCIsIGMpOwogCQkJcyArPSA0OwotCQkJaWYgKHMgPiBvdXRlbmQpCi0JCQkJYnJlYWs7CiAJCX0KLQl9Ci0JZWxzZSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLQkJCWMgPSBzdHJbaV07Ci0JCQlpZiAobGVuIDwgMCAmJiBjID09ICdcMCcpCi0JCQkJYnJlYWs7Ci0JCQlzd2l0Y2ggKGMpIHsKLQkJCWNhc2UgJ1wiJzogY2FzZSAnXCcnOiBjYXNlICdcXCc6Ci0JCQkJKnMrKyA9ICdcXCc7ICpzKysgPSBjOyBicmVhazsKLQkJCWNhc2UgJ1xmJzoKLQkJCQkqcysrID0gJ1xcJzsgKnMrKyA9ICdmJzsgYnJlYWs7Ci0JCQljYXNlICdcbic6Ci0JCQkJKnMrKyA9ICdcXCc7ICpzKysgPSAnbic7IGJyZWFrOwotCQkJY2FzZSAnXHInOgotCQkJCSpzKysgPSAnXFwnOyAqcysrID0gJ3InOyBicmVhazsKLQkJCWNhc2UgJ1x0JzoKLQkJCQkqcysrID0gJ1xcJzsgKnMrKyA9ICd0JzsgYnJlYWs7Ci0JCQljYXNlICdcdic6Ci0JCQkJKnMrKyA9ICdcXCc7ICpzKysgPSAndic7IGJyZWFrOwotCQkJZGVmYXVsdDoKLQkJCQlpZiAoaXNwcmludChjKSkKLQkJCQkJKnMrKyA9IGM7Ci0JCQkJZWxzZSBpZiAoaSA8IG4gLSAxICYmIGlzZGlnaXQoc3RyW2kgKyAxXSkpIHsKLQkJCQkJc3ByaW50ZihzLCAiXFwlMDNvIiwgYyk7Ci0JCQkJCXMgKz0gNDsKLQkJCQl9Ci0JCQkJZWxzZSB7Ci0JCQkJCXNwcmludGYocywgIlxcJW8iLCBjKTsKLQkJCQkJcyArPSBzdHJsZW4ocyk7Ci0JCQkJfQotCQkJCWJyZWFrOworCX0gZWxzZSB7CisJCWZvciAoaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKwkJCWMgPSB1c3RyW2ldOworCQkJLyogQ2hlY2sgZm9yIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4gKi8KKwkJCWlmIChsZW4gPCAwKSB7CisJCQkJaWYgKGMgPT0gJ1wwJykKKwkJCQkJYnJlYWs7CisJCQkJLyogUXVvdGUgYXQgbW9zdCBzaXplIC0gMSBieXRlcy4gKi8KKwkJCQlpZiAoaSA9PSBzaXplIC0gMSkKKwkJCQkJY29udGludWU7CiAJCQl9Ci0JCQlpZiAocyA+IG91dGVuZCkKLQkJCQlicmVhazsKKwkJCXN3aXRjaCAoYykgeworCQkJCWNhc2UgJ1wiJzogY2FzZSAnXFwnOgorCQkJCQkqcysrID0gJ1xcJzsKKwkJCQkJKnMrKyA9IGM7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1xmJzoKKwkJCQkJKnMrKyA9ICdcXCc7CisJCQkJCSpzKysgPSAnZic7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1xuJzoKKwkJCQkJKnMrKyA9ICdcXCc7CisJCQkJCSpzKysgPSAnbic7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1xyJzoKKwkJCQkJKnMrKyA9ICdcXCc7CisJCQkJCSpzKysgPSAncic7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1x0JzoKKwkJCQkJKnMrKyA9ICdcXCc7CisJCQkJCSpzKysgPSAndCc7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ1x2JzoKKwkJCQkJKnMrKyA9ICdcXCc7CisJCQkJCSpzKysgPSAndic7CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWlmIChpc3ByaW50KGMpKQorCQkJCQkJKnMrKyA9IGM7CisJCQkJCWVsc2UgaWYgKGkgKyAxIDwgc2l6ZQorCQkJCQkJICYmIGlzZGlnaXQodXN0cltpICsgMV0pKSB7CisJCQkJCQlzcHJpbnRmKHMsICJcXCUwM28iLCBjKTsKKwkJCQkJCXMgKz0gNDsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJCXNwcmludGYocywgIlxcJW8iLCBjKTsKKwkJCQkJCXMgKz0gc3RybGVuKHMpOworCQkJCQl9CisJCQkJCWJyZWFrOworCQkJfQogCQl9CiAJfQogCiAJKnMrKyA9ICdcIic7Ci0JaWYgKGkgPCBsZW4gfHwgKGxlbiA8IDAgJiYgKGkgPT0gbiB8fCBzID4gb3V0ZW5kKSkpIHsKLQkJKnMrKyA9ICcuJzsgKnMrKyA9ICcuJzsgKnMrKyA9ICcuJzsKLQl9CiAJKnMgPSAnXDAnOworCisJLyogUmV0dXJuIG5vbnplcm8gaWYgdGhlIHN0cmluZyB3YXMgdW50ZXJtaW5hdGVkLiAgKi8KKwlyZXR1cm4gaSA9PSBzaXplOworfQorCisvKgorICogUHJpbnQgcGF0aCBzdHJpbmcgc3BlY2lmaWVkIGJ5IGFkZHJlc3MgYGFkZHInIGFuZCBsZW5ndGggYG4nLgorICogSWYgcGF0aCBsZW5ndGggZXhjZWVkcyBgbicsIGFwcGVuZCBgLi4uJyB0byB0aGUgb3V0cHV0LgorICovCit2b2lkCitwcmludHBhdGhuKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCBpbnQgbikKK3sKKwlpZiAoIWFkZHIpIHsKKwkJdHByaW50ZigiTlVMTCIpOworCQlyZXR1cm47CisJfQorCisJLyogQ2FwIHBhdGggbGVuZ3RoIHRvIHRoZSBwYXRoIGJ1ZmZlciBzaXplLAorCSAgIGFuZCBOVUwtdGVybWluYXRlIHRoZSBidWZmZXIuICovCisJaWYgKG4gPiBzaXplb2YgcGF0aCAtIDEpCisJCW4gPSBzaXplb2YgcGF0aCAtIDE7CisJcGF0aFtuXSA9ICdcMCc7CisKKwkvKiBGZXRjaCBvbmUgYnl0ZSBtb3JlIHRvIGZpbmQgb3V0IHdoZXRoZXIgcGF0aCBsZW5ndGggPiBuLiAqLworCWlmICh1bW92ZXN0cih0Y3AsIGFkZHIsIG4gKyAxLCBwYXRoKSA8IDApCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlIHsKKwkJc3RhdGljIGNoYXIgb3V0c3RyWzQqKHNpemVvZiBwYXRoIC0gMSkgKyBzaXplb2YgIlwiLi4uXCIiXTsKKwkJaW50IHRydW5jID0gKHBhdGhbbl0gIT0gJ1wwJyk7CisKKwkJaWYgKHRydW5jKQorCQkJcGF0aFtuXSA9ICdcMCc7CisJCSh2b2lkKSBzdHJpbmdfcXVvdGUocGF0aCwgb3V0c3RyLCAtMSwgbiArIDEpOworCQlpZiAodHJ1bmMpCisJCQlzdHJjYXQob3V0c3RyLCAiLi4uIik7CisJCXRwcmludGYoIiVzIiwgb3V0c3RyKTsKKwl9Cit9CisKK3ZvaWQKK3ByaW50cGF0aChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKK3sKKwlwcmludHBhdGhuKHRjcCwgYWRkciwgc2l6ZW9mIHBhdGggLSAxKTsKK30KKworLyoKKyAqIFByaW50IHN0cmluZyBzcGVjaWZpZWQgYnkgYWRkcmVzcyBgYWRkcicgYW5kIGxlbmd0aCBgbGVuJy4KKyAqIElmIGBsZW4nIDwgMCwgdHJlYXQgdGhlIHN0cmluZyBhcyBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqIElmIHN0cmluZyBsZW5ndGggZXhjZWVkcyBgbWF4X3N0cmxlbicsIGFwcGVuZCBgLi4uJyB0byB0aGUgb3V0cHV0LgorICovCit2b2lkCitwcmludHN0cihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgaW50IGxlbikKK3sKKwlzdGF0aWMgY2hhciAqc3RyID0gTlVMTDsKKwlzdGF0aWMgY2hhciAqb3V0c3RyOworCWludCBzaXplOworCisJaWYgKCFhZGRyKSB7CisJCXRwcmludGYoIk5VTEwiKTsKKwkJcmV0dXJuOworCX0KKwkvKiBBbGxvY2F0ZSBzdGF0aWMgYnVmZmVycyBpZiB0aGV5IGFyZSBub3QgYWxsb2NhdGVkIHlldC4gKi8KKwlpZiAoIXN0cikKKwkJc3RyID0gbWFsbG9jKG1heF9zdHJsZW4gKyAxKTsKKwlpZiAoIW91dHN0cikKKwkJb3V0c3RyID0gbWFsbG9jKDQgKiBtYXhfc3RybGVuICsgc2l6ZW9mICJcIi4uLlwiIik7CisJaWYgKCFzdHIgfHwgIW91dHN0cikgeworCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCXJldHVybjsKKwl9CisKKwlpZiAobGVuIDwgMCkgeworCQkvKgorCQkgKiBUcmVhdCBhcyBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZzogZmV0Y2ggb25lIGJ5dGUgbW9yZQorCQkgKiBiZWNhdXNlIHN0cmluZ19xdW90ZSgpIHF1b3RlcyBvbmUgYnl0ZSBsZXNzLgorCQkgKi8KKwkJc2l6ZSA9IG1heF9zdHJsZW4gKyAxOworCQlzdHJbbWF4X3N0cmxlbl0gPSAnXDAnOworCQlpZiAodW1vdmVzdHIodGNwLCBhZGRyLCBzaXplLCBzdHIpIDwgMCkgeworCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQkJcmV0dXJuOworCQl9CisJfQorCWVsc2UgeworCQlzaXplID0gTUlOKGxlbiwgbWF4X3N0cmxlbik7CisJCWlmICh1bW92ZW4odGNwLCBhZGRyLCBzaXplLCBzdHIpIDwgMCkgeworCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQkJcmV0dXJuOworCQl9CisJfQorCisJaWYgKHN0cmluZ19xdW90ZShzdHIsIG91dHN0ciwgbGVuLCBzaXplKSAmJgorCSAgICAobGVuIDwgMCB8fCBsZW4gPiBtYXhfc3RybGVuKSkKKwkJc3RyY2F0KG91dHN0ciwgIi4uLiIpOworCiAJdHByaW50ZigiJXMiLCBvdXRzdHIpOwogfQogCkBAIC01MzUsMjggKzY1MCw1MSBAQAogaW50IGxlbjsKIGxvbmcgYWRkcjsKIHsKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwl1bmlvbiB7CisJCXN0cnVjdCB7IHVfaW50MzJfdCBiYXNlOyB1X2ludDMyX3QgbGVuOyB9ICppb3YzMjsKKwkJc3RydWN0IHsgdV9pbnQ2NF90IGJhc2U7IHVfaW50NjRfdCBsZW47IH0gKmlvdjY0OworCX0gaW92dTsKKyNkZWZpbmUgaW92IGlvdnUuaW92NjQKKyNkZWZpbmUgc2l6ZW9mX2lvdiBcCisgIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0IFwKKyAgID8gc2l6ZW9mKCppb3Z1LmlvdjMyKSA6IHNpemVvZigqaW92dS5pb3Y2NCkpCisjZGVmaW5lIGlvdl9pb3ZfYmFzZShpKSBcCisgIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0IFwKKyAgID8gKHVfaW50NjRfdCkgaW92dS5pb3YzMltpXS5iYXNlIDogaW92dS5pb3Y2NFtpXS5iYXNlKQorI2RlZmluZSBpb3ZfaW92X2xlbihpKSBcCisgIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0IFwKKyAgID8gKHVfaW50NjRfdCkgaW92dS5pb3YzMltpXS5sZW4gOiBpb3Z1LmlvdjY0W2ldLmxlbikKKyNlbHNlCiAJc3RydWN0IGlvdmVjICppb3Y7CisjZGVmaW5lIHNpemVvZl9pb3Ygc2l6ZW9mKCppb3YpCisjZGVmaW5lIGlvdl9pb3ZfYmFzZShpKSBpb3ZbaV0uaW92X2Jhc2UKKyNkZWZpbmUgaW92X2lvdl9sZW4oaSkgaW92W2ldLmlvdl9sZW4KKyNlbmRpZgogCWludCBpOwogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAotCXNpemUgPSBzaXplb2YoKmlvdikgKiAodW5zaWduZWQgbG9uZykgbGVuOwotCWlmIChzaXplIC8gc2l6ZW9mKCppb3YpICE9IGxlbgotCSAgICB8fCAoaW92ID0gKHN0cnVjdCBpb3ZlYyAqKSBtYWxsb2Moc2l6ZSkpID09IE5VTEwpIHsKKwlzaXplID0gc2l6ZW9mX2lvdiAqICh1bnNpZ25lZCBsb25nKSBsZW47CisJaWYgKHNpemUgLyBzaXplb2ZfaW92ICE9IGxlbgorCSAgICB8fCAoaW92ID0gbWFsbG9jKHNpemUpKSA9PSBOVUxMKSB7CiAJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CiAJCXJldHVybjsKIAl9CiAJaWYgKHVtb3Zlbih0Y3AsIGFkZHIsIHNpemUsIChjaGFyICopIGlvdikgPj0gMCkgewogCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluY2x1ZGUgdGhlIGJ1ZmZlciBudW1iZXIgdG8gbWFrZSBpdCBlYXN5IHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXRjaCB1cCB0aGUgdHJhY2Ugd2l0aCB0aGUgc291cmNlICovCi0gICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCIgKiAlbHUgYnl0ZXMgaW4gYnVmZmVyICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylpb3ZbaV0uaW92X2xlbiwgaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkdW1wc3RyKHRjcCwgKGxvbmcpIGlvdltpXS5pb3ZfYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW92W2ldLmlvdl9sZW4pOwotICAgICAgICAgICAgICAgIH0KKwkJCS8qIGluY2x1ZGUgdGhlIGJ1ZmZlciBudW1iZXIgdG8gbWFrZSBpdCBlYXN5IHRvCisJCQkgKiBtYXRjaCB1cCB0aGUgdHJhY2Ugd2l0aCB0aGUgc291cmNlICovCisJCQl0cHJpbnRmKCIgKiAlbHUgYnl0ZXMgaW4gYnVmZmVyICVkXG4iLAorCQkJCSh1bnNpZ25lZCBsb25nKWlvdl9pb3ZfbGVuKGkpLCBpKTsKKwkJCWR1bXBzdHIodGNwLCAobG9uZykgaW92X2lvdl9iYXNlKGkpLAorCQkJCWlvdl9pb3ZfbGVuKGkpKTsKKwkJfQogCX0KIAlmcmVlKChjaGFyICopIGlvdik7Ci0KKyN1bmRlZiBzaXplb2ZfaW92CisjdW5kZWYgaW92X2lvdl9iYXNlCisjdW5kZWYgaW92X2lvdl9sZW4KKyN1bmRlZiBpb3YKIH0KICNlbmRpZgogCkBAIC02MjMsMTMgKzc2MSw4IEBACiAgKiBhdCBhZGRyZXNzIGBhZGRyJyB0byBvdXIgc3BhY2UgYXQgYGxhZGRyJwogICovCiBpbnQKLXVtb3Zlbih0Y3AsIGFkZHIsIGxlbiwgbGFkZHIpCi1zdHJ1Y3QgdGNiICp0Y3A7Ci1sb25nIGFkZHI7Ci1pbnQgbGVuOwotY2hhciAqbGFkZHI7Cit1bW92ZW4oc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGludCBsZW4sIGNoYXIgKmxhZGRyKQogewotCiAjaWZkZWYgTElOVVgKIAlpbnQgcGlkID0gdGNwLT5waWQ7CiAJaW50IG4sIG07CkBAIC02NTEsNyArNzg0LDggQEAKIAkJCQlyZXR1cm4gMDsKIAkJCX0KIAkJCS8qIEJ1dCBpZiBub3Qgc3RhcnRlZCwgd2UgaGFkIGEgYm9ndXMgYWRkcmVzcy4gKi8KLQkJCXBlcnJvcigicHRyYWNlOiB1bW92ZW4iKTsKKwkJCWlmIChhZGRyICE9IDAgJiYgZXJybm8gIT0gRUlPICYmIGVycm5vICE9IEVTUkNIKQorCQkJCXBlcnJvcigicHRyYWNlOiB1bW92ZW4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQogCQlzdGFydGVkID0gMTsKQEAgLTY2Niw3ICs4MDAsNyBAQAogCQkJCS8qIFJhbiBpbnRvICdlbmQgb2YgbWVtb3J5JyAtIHN0dXBpZCAicHJpbnRwYXRoIiAqLwogCQkJCXJldHVybiAwOwogCQkJfQotCQkJaWYgKGFkZHIgIT0gMCkKKwkJCWlmIChhZGRyICE9IDAgJiYgZXJybm8gIT0gRUlPICYmIGVycm5vICE9IEVTUkNIKQogCQkJCXBlcnJvcigicHRyYWNlOiB1bW92ZW4iKTsKIAkJCXJldHVybiAtMTsKIAkJfQpAQCAtNjc4LDM3ICs4MTIsNiBAQAogCiAjaWZkZWYgU1VOT1M0CiAJaW50IHBpZCA9IHRjcC0+cGlkOwotI2lmIDAKLQlpbnQgbiwgbTsKLQl1bmlvbiB7Ci0JCWxvbmcgdmFsOwotCQljaGFyIHhbc2l6ZW9mKGxvbmcpXTsKLQl9IHU7Ci0KLQlpZiAoYWRkciAmIChzaXplb2YobG9uZykgLSAxKSkgewotCQkvKiBhZGRyIG5vdCBhIG11bHRpcGxlIG9mIHNpemVvZihsb25nKSAqLwotCQluID0gYWRkciAtIChhZGRyICYgLXNpemVvZihsb25nKSk7IC8qIHJlc2lkdWUgKi8KLQkJYWRkciAmPSAtc2l6ZW9mKGxvbmcpOyAvKiByZXNpZHVlICovCi0JCWVycm5vID0gMDsKLQkJdS52YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtEQVRBLCBwaWQsIChjaGFyICopIGFkZHIsIDApOwotCQlpZiAoZXJybm8pIHsKLQkJCXBlcnJvcigidW1vdmVuIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJbWVtY3B5KGxhZGRyLCAmdS54W25dLCBtID0gTUlOKHNpemVvZihsb25nKSAtIG4sIGxlbikpOwotCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07Ci0JfQotCXdoaWxlIChsZW4pIHsKLQkJZXJybm8gPSAwOwotCQl1LnZhbCA9IHB0cmFjZShQVFJBQ0VfUEVFS0RBVEEsIHBpZCwgKGNoYXIgKikgYWRkciwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJ1bW92ZW4iKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQltZW1jcHkobGFkZHIsIHUueCwgbSA9IE1JTihzaXplb2YobG9uZyksIGxlbikpOwotCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07Ci0JfQotI2Vsc2UgLyogIW9sZHdheSAqLwogCWludCBuOwogCiAJd2hpbGUgKGxlbikgewpAQCAtNzE2LDE1ICs4MTksMTYgQEAKIAkJbiA9IE1JTihuLCAoKGFkZHIgKyBQQUdTSVopICYgUEFHTUFTSykgLSBhZGRyKTsKIAkJaWYgKHB0cmFjZShQVFJBQ0VfUkVBRERBVEEsIHBpZCwKIAkJCSAgIChjaGFyICopIGFkZHIsIGxlbiwgbGFkZHIpIDwgMCkgewotCQkJcGVycm9yKCJ1bW92ZW46IHB0cmFjZShQVFJBQ0VfUkVBRERBVEEsIC4uLikiKTsKLQkJCWFib3J0KCk7CisJCQlpZiAoZXJybm8gIT0gRVNSQ0gpIHsKKwkJCQlwZXJyb3IoInVtb3ZlbjogcHRyYWNlKFBUUkFDRV9SRUFEREFUQSwgLi4uKSIpOworCQkJCWFib3J0KCk7CisJCQl9CiAJCQlyZXR1cm4gLTE7CiAJCX0KIAkJbGVuIC09IG47CiAJCWFkZHIgKz0gbjsKIAkJbGFkZHIgKz0gbjsKIAl9Ci0jZW5kaWYgLyogIW9sZHdheSAqLwogI2VuZGlmIC8qIFNVTk9TNCAqLwogCiAjaWZkZWYgVVNFX1BST0NGUwpAQCAtNzQ2LDExICs4NTAsNyBAQAogICogZm9yIGEgdGVybWluYXRpbmcgemVybyBieXRlLgogICovCiBpbnQKLXVtb3Zlc3RyKHRjcCwgYWRkciwgbGVuLCBsYWRkcikKLXN0cnVjdCB0Y2IgKnRjcDsKLWxvbmcgYWRkcjsKLWludCBsZW47Ci1jaGFyICpsYWRkcjsKK3Vtb3Zlc3RyKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCBpbnQgbGVuLCBjaGFyICpsYWRkcikKIHsKICNpZmRlZiBVU0VfUFJPQ0ZTCiAjaWZkZWYgSEFWRV9NUF9QUk9DRlMKQEAgLTgwMSw3ICs5MDEsOCBAQAogCQkJCS8qIFJhbiBpbnRvICdlbmQgb2YgbWVtb3J5JyAtIHN0dXBpZCAicHJpbnRwYXRoIiAqLwogCQkJCXJldHVybiAwOwogCQkJfQotCQkJcGVycm9yKCJ1bW92ZXN0ciIpOworCQkJaWYgKGFkZHIgIT0gMCAmJiBlcnJubyAhPSBFSU8gJiYgZXJybm8gIT0gRVNSQ0gpCisJCQkJcGVycm9yKCJ1bW92ZXN0ciIpOwogCQkJcmV0dXJuIC0xOwogCQl9CiAJCXN0YXJ0ZWQgPSAxOwpAQCAtODE5LDcgKzkyMCw4IEBACiAJCQkJLyogUmFuIGludG8gJ2VuZCBvZiBtZW1vcnknIC0gc3R1cGlkICJwcmludHBhdGgiICovCiAJCQkJcmV0dXJuIDA7CiAJCQl9Ci0JCQlwZXJyb3IoInVtb3Zlc3RyIik7CisJCQlpZiAoYWRkciAhPSAwICYmIGVycm5vICE9IEVJTyAmJiBlcnJubyAhPSBFU1JDSCkKKwkJCQlwZXJyb3IoInVtb3Zlc3RyIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0KIAkJc3RhcnRlZCA9IDE7CkBAIC04MzUsMTAgKzkzNywxMCBAQAogfQogCiAjaWZkZWYgTElOVVgKLSNpZiAhZGVmaW5lZCAoU1BBUkMpICYmICFkZWZpbmVkKFNQQVJDNjQpCi0jZGVmaW5lIFBUUkFDRV9XUklURVRFWFQJMTAxCi0jZGVmaW5lIFBUUkFDRV9XUklURURBVEEJMTAyCi0jZW5kaWYgLyogIVNQQVJDICYmICFTUEFSQzY0ICovCisjIGlmICFkZWZpbmVkIChTUEFSQykgJiYgIWRlZmluZWQoU1BBUkM2NCkKKyMgIGRlZmluZSBQVFJBQ0VfV1JJVEVURVhUCTEwMQorIyAgZGVmaW5lIFBUUkFDRV9XUklURURBVEEJMTAyCisjIGVuZGlmIC8qICFTUEFSQyAmJiAhU1BBUkM2NCAqLwogI2VuZGlmIC8qIExJTlVYICovCiAKICNpZmRlZiBTVU5PUzQKQEAgLTg1MSwyMSArOTUzLDYgQEAKIGludCBsZW47CiBjaGFyICpsYWRkcjsKIHsKLSNpZiAwCi0JaW50IG47Ci0KLQl3aGlsZSAobGVuKSB7Ci0JCW4gPSBNSU4obGVuLCBQQUdTSVopOwotCQluID0gTUlOKG4sICgoYWRkciArIFBBR1NJWikgJiBQQUdNQVNLKSAtIGFkZHIpOwotCQlpZiAocHRyYWNlKGNtZCwgcGlkLCAoY2hhciAqKWFkZHIsIG4sIGxhZGRyKSA8IDApIHsKLQkJCXBlcnJvcigidWxvYWQ6IHB0cmFjZShQVFJBQ0VfV1JJVEUsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlsZW4gLT0gbjsKLQkJYWRkciArPSBuOwotCQlsYWRkciArPSBuOwotCX0KLSNlbHNlCiAJaW50IHBlZWssIHBva2U7CiAJaW50IG4sIG07CiAJdW5pb24gewpAQCAtOTA4LDcgKzk5NSw2IEBACiAJCX0KIAkJYWRkciArPSBzaXplb2YobG9uZyksIGxhZGRyICs9IG0sIGxlbiAtPSBtOwogCX0KLSNlbmRpZgogCXJldHVybiAwOwogfQogCkBAIC05MzYsMTQgKzEwMjIsMTQgQEAKICNpZm5kZWYgVVNFX1BST0NGUwogCiBpbnQKLXVwZWVrKHBpZCwgb2ZmLCByZXMpCi1pbnQgcGlkOwordXBlZWsodGNwLCBvZmYsIHJlcykKK3N0cnVjdCB0Y2IgKnRjcDsKIGxvbmcgb2ZmOwogbG9uZyAqcmVzOwogewogCWxvbmcgdmFsOwogCi0jaWZkZWYgU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRQorIyBpZmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFCiAJewogCQlzdGF0aWMgaW50IGlzX3N1bjRtID0gLTE7CiAJCXN0cnVjdCB1dHNuYW1lIG5hbWU7CkBAIC05NTYsNyArMTA0Miw2IEBACiAJCQl9CiAJCQlpc19zdW40bSA9IHN0cmNtcChuYW1lLm1hY2hpbmUsICJzdW40bSIpID09IDA7CiAJCQlpZiAoaXNfc3VuNG0pIHsKLQkJCQlleHRlcm4gY29uc3Qgc3RydWN0IHhsYXQgc3RydWN0X3VzZXJfb2Zmc2V0c1tdOwogCQkJCWNvbnN0IHN0cnVjdCB4bGF0ICp4OwogCiAJCQkJZm9yICh4ID0gc3RydWN0X3VzZXJfb2Zmc2V0czsgeC0+c3RyOyB4KyspCkBAIC05NjYsMTMgKzEwNTEsMTUgQEAKIAkJaWYgKGlzX3N1bjRtKQogCQkJb2ZmICs9IDEwMjQ7CiAJfQotI2VuZGlmIC8qIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgKi8KKyMgZW5kaWYgLyogU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSAqLwogCWVycm5vID0gMDsKLQl2YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtVU0VSLCBwaWQsIChjaGFyICopIG9mZiwgMCk7CisJdmFsID0gZG9fcHRyYWNlKFBUUkFDRV9QRUVLVVNFUiwgdGNwLCAoY2hhciAqKSBvZmYsIDApOwogCWlmICh2YWwgPT0gLTEgJiYgZXJybm8pIHsKLQkJY2hhciBidWZbNjBdOwotCQlzcHJpbnRmKGJ1ZiwidXBlZWs6IHB0cmFjZShQVFJBQ0VfUEVFS1VTRVIsJWQsJWx1LDApIixwaWQsb2ZmKTsKLQkJcGVycm9yKGJ1Zik7CisJCWlmIChlcnJubyAhPSBFU1JDSCkgeworCQkJY2hhciBidWZbNjBdOworCQkJc3ByaW50ZihidWYsInVwZWVrOiBwdHJhY2UoUFRSQUNFX1BFRUtVU0VSLCVkLCVsdSwwKSIsIHRjcC0+cGlkLCBvZmYpOworCQkJcGVycm9yKGJ1Zik7CisJCX0KIAkJcmV0dXJuIC0xOwogCX0KIAkqcmVzID0gdmFsOwpAQCAtOTgxLDIwNCArMTA2OCwxNjMgQEAKIAogI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCiAKLSNpZiAwCi1sb25nCi1nZXRwYyh0Y3ApCi1zdHJ1Y3QgdGNiICp0Y3A7Ci17Ci0KLSNpZmRlZiBMSU5VWAotCWxvbmcgcGM7Ci0jaWYgZGVmaW5lZChJMzg2KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpFSVAsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKFg4Nl82NCkKLQlpZiAodXBlZWsodGNwLT5waWQsIDgqUklQLCAmcGMpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChJQTY0KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQjAsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKEFSTSkKLQlpZiAodXBlZWsodGNwLT5waWQsIDQqMTUsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKFBPV0VSUEMpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfTklQLCAmcGMpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChNNjhLKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9QQywgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQoQUxQSEEpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfUEMsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKE1JUFMpCi0gCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX0VQQywgJnBjKSA8IDApCi0gCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCi0Jc3RydWN0IHJlZ3MgcmVnczsKLQlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLHRjcC0+cGlkLChjaGFyICopJnJlZ3MsMCkgPCAwKQotCQlyZXR1cm4gLTE7Ci0JcGMgPSByZWdzLnJfcGM7Ci0jZWxpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCi0JaWYodXBlZWsodGNwLT5waWQsUFRfUFNXQUREUiwmcGMpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChIUFBBKQotCWlmKHVwZWVrKHRjcC0+cGlkLFBUX0lBT1EwLCZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgNCpSRUdfUEMgLCZwYykgPCAwKQotICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChTSDY0KQotICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1BDICwmcGMpIDwgMCkKLSAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSNlbmRpZgotCXJldHVybiBwYzsKLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0JLyoKLQkgKiBSZXR1cm4gY3VycmVudCBwcm9ncmFtIGNvdW50ZXIgZm9yIGBwaWQnCi0JICogQXNzdW1lcyBQQyBpcyBuZXZlciAweGZmZmZmZmZmCi0JICovCi0Jc3RydWN0IHJlZ3MgcmVnczsKLQotCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSAmcmVncywgMCkgPCAwKSB7Ci0JCXBlcnJvcigiZ2V0cGM6IHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXJldHVybiByZWdzLnJfcGM7Ci0jZW5kaWYgLyogU1VOT1M0ICovCi0KLSNpZmRlZiBTVlI0Ci0JLyogWFhYICovCi0JcmV0dXJuIDA7Ci0jZW5kaWYgLyogU1ZSNCAqLwotCi0jaWZkZWYgRlJFRUJTRAotCXN0cnVjdCByZWcgcmVnczsKLQlwcmVhZCh0Y3AtPnBmZF9yZWcsICZyZWdzLCBzaXplb2YocmVncyksIDApOwotCXJldHVybiByZWdzLnJfZWlwOwotI2VuZGlmIC8qIEZSRUVCU0QgKi8KLX0KLSNlbmRpZgotCiB2b2lkCi1wcmludGNhbGwodGNwKQotc3RydWN0IHRjYiAqdGNwOworcHJpbnRjYWxsKHN0cnVjdCB0Y2IgKnRjcCkKIHsKICNkZWZpbmUgUFJJTlRCQURQQyB0cHJpbnRmKHNpemVvZihsb25nKSA9PSA0ID8gIls/Pz8/Pz8/P10gIiA6IFwKIAkJCSAgIHNpemVvZihsb25nKSA9PSA4ID8gIls/Pz8/Pz8/Pz8/Pz8/Pz8/XSAiIDogXAogCQkJICAgTlVMTCAvKiBjcmFzaCAqLykKIAogI2lmZGVmIExJTlVYCi0jaWZkZWYgSTM4NgorIyBpZmRlZiBJMzg2CiAJbG9uZyBlaXA7CiAKLQlpZiAodXBlZWsodGNwLT5waWQsIDQqRUlQLCAmZWlwKSA8IDApIHsKKwlpZiAodXBlZWsodGNwLCA0KkVJUCwgJmVpcCkgPCAwKSB7CiAJCVBSSU5UQkFEUEM7CiAJCXJldHVybjsKIAl9CiAJdHByaW50ZigiWyUwOGx4XSAiLCBlaXApOwogCi0jZWxpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCi0gICAgICAgICBsb25nIHBzdzsKLSAgICAgICAgIGlmKHVwZWVrKHRjcC0+cGlkLFBUX1BTV0FERFIsJnBzdykgPCAwKSB7Ci0gICAgICAgICAgICAgICAgIFBSSU5UQkFEUEM7Ci0gICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0KLSNpZmRlZiBTMzkwCi0gICAgICAgICB0cHJpbnRmKCJbJTA4bHhdICIsIHBzdyk7Ci0jZWxpZiBTMzkwWAotICAgICAgIHRwcmludGYoIlslMTZseF0gIiwgcHN3KTsKLSNlbmRpZgorIyBlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKKwlsb25nIHBzdzsKKwlpZih1cGVlayh0Y3AsUFRfUFNXQUREUiwmcHN3KSA8IDApIHsKKwkJUFJJTlRCQURQQzsKKwkJcmV0dXJuOworCX0KKyMgIGlmZGVmIFMzOTAKKwl0cHJpbnRmKCJbJTA4bHhdICIsIHBzdyk7CisjICBlbGlmIFMzOTBYCisJdHByaW50ZigiWyUxNmx4XSAiLCBwc3cpOworIyAgZW5kaWYKIAotI2VsaWYgZGVmaW5lZChYODZfNjQpCisjIGVsaWYgZGVmaW5lZChYODZfNjQpCiAJbG9uZyByaXA7CiAKLQlpZiAodXBlZWsodGNwLT5waWQsIDgqUklQLCAmcmlwKSA8IDApIHsKKwlpZiAodXBlZWsodGNwLCA4KlJJUCwgJnJpcCkgPCAwKSB7CiAJCVBSSU5UQkFEUEM7CiAJCXJldHVybjsKIAl9CiAJdHByaW50ZigiWyUxNmx4XSAiLCByaXApOwotI2VsaWYgZGVmaW5lZChJQTY0KQorIyBlbGlmIGRlZmluZWQoSUE2NCkKIAlsb25nIGlwOwogCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9CMCwgJmlwKSA8IDApIHsKKwlpZiAodXBlZWsodGNwLCBQVF9CMCwgJmlwKSA8IDApIHsKIAkJUFJJTlRCQURQQzsKIAkJcmV0dXJuOwogCX0KIAl0cHJpbnRmKCJbJTA4bHhdICIsIGlwKTsKLSNlbGlmIGRlZmluZWQoUE9XRVJQQykKKyMgZWxpZiBkZWZpbmVkKFBPV0VSUEMpCiAJbG9uZyBwYzsKIAotCWlmICh1cGVlayh0Y3AtPnBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX05JUCwgJnBjKSA8IDApIHsKKwlpZiAodXBlZWsodGNwLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfTklQLCAmcGMpIDwgMCkgeworCQlQUklOVEJBRFBDOworCQlyZXR1cm47CisJfQorIyAgaWZkZWYgUE9XRVJQQzY0CisJdHByaW50ZigiWyUwMTZseF0gIiwgcGMpOworIyAgZWxzZQorCXRwcmludGYoIlslMDhseF0gIiwgcGMpOworIyAgZW5kaWYKKyMgZWxpZiBkZWZpbmVkKE02OEspCisJbG9uZyBwYzsKKworCWlmICh1cGVlayh0Y3AsIDQqUFRfUEMsICZwYykgPCAwKSB7CiAJCXRwcmludGYgKCJbPz8/Pz8/Pz9dICIpOwogCQlyZXR1cm47CiAJfQogCXRwcmludGYoIlslMDhseF0gIiwgcGMpOwotI2VsaWYgZGVmaW5lZChNNjhLKQorIyBlbGlmIGRlZmluZWQoQUxQSEEpCiAJbG9uZyBwYzsKIAotCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9QQywgJnBjKSA8IDApIHsKLQkJdHByaW50ZiAoIls/Pz8/Pz8/P10gIik7Ci0JCXJldHVybjsKLQl9Ci0JdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKEFMUEhBKQotCWxvbmcgcGM7Ci0KLQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19QQywgJnBjKSA8IDApIHsKKwlpZiAodXBlZWsodGNwLCBSRUdfUEMsICZwYykgPCAwKSB7CiAJCXRwcmludGYgKCJbPz8/Pz8/Pz8/Pz8/Pz8/P10gIik7CiAJCXJldHVybjsKIAl9CiAJdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCi0Jc3RydWN0IHJlZ3MgcmVnczsKKyMgZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCisJc3RydWN0IHB0X3JlZ3MgcmVnczsKIAlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLHRjcC0+cGlkLChjaGFyICopJnJlZ3MsMCkgPCAwKSB7CiAJCVBSSU5UQkFEUEM7CiAJCXJldHVybjsKIAl9Ci0JdHByaW50ZigiWyUwOGx4XSAiLCByZWdzLnJfcGMpOwotI2VsaWYgZGVmaW5lZChIUFBBKQorIyAgaWYgZGVmaW5lZChTUEFSQzY0KQorCXRwcmludGYoIlslMDhseF0gIiwgcmVncy50cGMpOworIyAgZWxzZQorCXRwcmludGYoIlslMDhseF0gIiwgcmVncy5wYyk7CisjICBlbmRpZgorIyBlbGlmIGRlZmluZWQoSFBQQSkKIAlsb25nIHBjOwogCi0JaWYodXBlZWsodGNwLT5waWQsUFRfSUFPUTAsJnBjKSA8IDApIHsKKwlpZih1cGVlayh0Y3AsUFRfSUFPUTAsJnBjKSA8IDApIHsKIAkJdHByaW50ZiAoIls/Pz8/Pz8/P10gIik7CiAJCXJldHVybjsKIAl9CiAJdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKE1JUFMpCisjIGVsaWYgZGVmaW5lZChNSVBTKQogCWxvbmcgcGM7CiAKLQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19FUEMsICZwYykgPCAwKSB7CisJaWYgKHVwZWVrKHRjcCwgUkVHX0VQQywgJnBjKSA8IDApIHsKIAkJdHByaW50ZiAoIls/Pz8/Pz8/P10gIik7CiAJCXJldHVybjsKIAl9CiAJdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGxvbmcgcGM7Ci0KLSAgICAgICBpZiAodXBlZWsodGNwLT5waWQsIDQqUkVHX1BDLCAmcGMpIDwgMCkgewotICAgICAgICAgICAgICAgdHByaW50ZiAoIls/Pz8/Pz8/P10gIik7Ci0gICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgfQotICAgICAgIHRwcmludGYoIlslMDhseF0gIiwgcGMpOwotI2VsaWYgZGVmaW5lZChTSDY0KQorIyBlbGlmIGRlZmluZWQoU0gpCiAJbG9uZyBwYzsKIAotCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1BDLCAmcGMpIDwgMCkgeworCWlmICh1cGVlayh0Y3AsIDQqUkVHX1BDLCAmcGMpIDwgMCkgeworCQl0cHJpbnRmICgiWz8/Pz8/Pz8/XSAiKTsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKKyMgZWxpZiBkZWZpbmVkKFNINjQpCisJbG9uZyBwYzsKKworCWlmICh1cGVlayh0Y3AsIFJFR19QQywgJnBjKSA8IDApIHsKIAkJdHByaW50ZiAoIls/Pz8/Pz8/Pz8/Pz8/Pz8/XSAiKTsKIAkJcmV0dXJuOwogCX0KIAl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKLSNlbGlmIGRlZmluZWQoQVJNKQorIyBlbGlmIGRlZmluZWQoQVJNKQogCWxvbmcgcGM7CiAKLQlpZiAodXBlZWsodGNwLT5waWQsIDQqMTUsICZwYykgPCAwKSB7CisJaWYgKHVwZWVrKHRjcCwgNCoxNSwgJnBjKSA8IDApIHsKIAkJUFJJTlRCQURQQzsKIAkJcmV0dXJuOwogCX0KIAl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKLSNlbmRpZiAvKiAhYXJjaGl0ZWN0dXJlICovCisjIGVsaWYgZGVmaW5lZChBVlIzMikKKwlsb25nIHBjOworCisJaWYgKHVwZWVrKHRjcCwgUkVHX1BDLCAmcGMpIDwgMCkgeworCQl0cHJpbnRmKCJbPz8/Pz8/Pz9dICIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlslMDhseF0gIiwgcGMpOworIyBlbGlmIGRlZmluZWQoQkZJTikKKwlsb25nIHBjOworCisJaWYgKHVwZWVrKHRjcCwgUFRfUEMsICZwYykgPCAwKSB7CisJCVBSSU5UQkFEUEM7CisJCXJldHVybjsKKwl9CisJdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7CisjZWxpZiBkZWZpbmVkKENSSVNWMTApCisJbG9uZyBwYzsKKworCWlmICh1cGVlayh0Y3AsIDQqUFRfSVJQLCAmcGMpIDwgMCkgeworCQlQUklOVEJBRFBDOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlslMDhseF0gIiwgcGMpOworI2VsaWYgZGVmaW5lZChDUklTVjMyKQorCWxvbmcgcGM7CisKKwlpZiAodXBlZWsodGNwLCA0KlBUX0VSUCwgJnBjKSA8IDApIHsKKwkJUFJJTlRCQURQQzsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKKyMgZW5kaWYgLyogYXJjaGl0ZWN0dXJlICovCiAjZW5kaWYgLyogTElOVVggKi8KIAogI2lmZGVmIFNVTk9TNApAQCAtMTIwNCw1OCArMTI1MCw3NSBAQAogI2VuZGlmIC8qIEZSRUVCU0QgKi8KIH0KIAorCisvKgorICogVGhlc2UgI2lmJ3MgYXJlIGh1Z2UsIHBsZWFzZSBpbmRlbnQgdGhlbSBjb3JyZWN0bHkuCisgKiBJdCdzIGVhc3kgdG8gZ2V0IGNvbmZ1c2VkIG90aGVyd2lzZS4KKyAqLwogI2lmbmRlZiBVU0VfUFJPQ0ZTCiAKLSNpZiBkZWZpbmVkIExJTlVYCisjaWZkZWYgTElOVVgKIAotI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+Ci0jaWZuZGVmIENMT05FX1BUUkFDRQotIyBkZWZpbmUgQ0xPTkVfUFRSQUNFICAgIDB4MDAwMDIwMDAKLSNlbmRpZgotI2lmbmRlZiBDTE9ORV9TVE9QUEVECi0jIGRlZmluZSBDTE9ORV9TVE9QUEVEICAgMHgwMjAwMDAwMAotI2VuZGlmCisjICBpbmNsdWRlICJzeXNjYWxsLmgiCiAKLSNpZmRlZiBJQTY0CisjICBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorIyAgaWZuZGVmIENMT05FX1BUUkFDRQorIyAgIGRlZmluZSBDTE9ORV9QVFJBQ0UgICAgMHgwMDAwMjAwMAorIyAgZW5kaWYKKyMgIGlmbmRlZiBDTE9ORV9WRk9SSworIyAgIGRlZmluZSBDTE9ORV9WRk9SSyAgICAgMHgwMDAwNDAwMAorIyAgZW5kaWYKKyMgIGlmbmRlZiBDTE9ORV9WTQorIyAgIGRlZmluZSBDTE9ORV9WTSAgICAgICAgMHgwMDAwMDEwMAorIyAgZW5kaWYKKyMgIGlmbmRlZiBDTE9ORV9TVE9QUEVECisjICAgZGVmaW5lIENMT05FX1NUT1BQRUQgICAweDAyMDAwMDAwCisjICBlbmRpZgorCisjICBpZmRlZiBJQTY0CiAKIC8qIFdlIGRvbid0IGhhdmUgZm9yaygpL3Zmb3JrKCkgc3lzY2FsbHMgb24gaWE2NCBpdHNlbGYsIGJ1dCB0aGUgaWEzMgogICAgc3Vic3lzdGVtIGhhcyB0aGVtIGZvciB4ODYuLi4gKi8KLSNkZWZpbmUgU1lTX2ZvcmsJMgotI2RlZmluZSBTWVNfdmZvcmsJMTkwCisjICAgZGVmaW5lIFNZU19mb3JrCTIKKyMgICBkZWZpbmUgU1lTX3Zmb3JrCTE5MAogCiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgKmFyZ19zZXR1cF9zdGF0ZTsKIAogc3RhdGljIGludAogYXJnX3NldHVwKHN0cnVjdCB0Y2IgKnRjcCwgYXJnX3NldHVwX3N0YXRlICpzdGF0ZSkKIHsKLQl1bnNpZ25lZCBsb25nICpic3AsIGNmbSwgc29mLCBzb2w7CisJdW5zaWduZWQgbG9uZyBjZm0sIHNvZiwgc29sOworCWxvbmcgYnNwOwogCi0JaWYgKGlhMzIpCisJaWYgKGlhMzIpIHsKKwkJLyogU2F0aXNmeSBhIGZhbHNlIEdDQyB3YXJuaW5nLiAgKi8KKwkJKnN0YXRlID0gTlVMTDsKIAkJcmV0dXJuIDA7CisJfQogCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9BUl9CU1AsIChsb25nICopICZic3ApIDwgMCkKKwlpZiAodXBlZWsodGNwLCBQVF9BUl9CU1AsICZic3ApIDwgMCkKIAkJcmV0dXJuIC0xOwotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQ0ZNLCAobG9uZyAqKSAmY2ZtKSA8IDApCisJaWYgKHVwZWVrKHRjcCwgUFRfQ0ZNLCAobG9uZyAqKSAmY2ZtKSA8IDApCiAJCXJldHVybiAtMTsKIAogCXNvZiA9IChjZm0gPj4gMCkgJiAweDdmOwogCXNvbCA9IChjZm0gPj4gNykgJiAweDdmOwotCWJzcCA9IGlhNjRfcnNlX3NraXBfcmVncyhic3AsIC1zb2YgKyBzb2wpOworCWJzcCA9IChsb25nKSBpYTY0X3JzZV9za2lwX3JlZ3MoKHVuc2lnbmVkIGxvbmcgKikgYnNwLCAtc29mICsgc29sKTsKIAotCSpzdGF0ZSA9IGJzcDsKKwkqc3RhdGUgPSAodW5zaWduZWQgbG9uZyAqKSBic3A7CiAJcmV0dXJuIDA7CiB9CiAKLSMgZGVmaW5lIGFyZ19maW5pc2hfY2hhbmdlKHRjcCwgc3RhdGUpCTAKKyMgICBkZWZpbmUgYXJnX2ZpbmlzaF9jaGFuZ2UodGNwLCBzdGF0ZSkJMAogCi0jaWZkZWYgU1lTX2ZvcmsKKyMgICBpZmRlZiBTWVNfZm9yawogc3RhdGljIGludAogZ2V0X2FyZzAgKHN0cnVjdCB0Y2IgKnRjcCwgYXJnX3NldHVwX3N0YXRlICpzdGF0ZSwgbG9uZyAqdmFscCkKIHsKIAlpbnQgcmV0OwogCiAJaWYgKGlhMzIpCi0JCXJldCA9IHVwZWVrICh0Y3AtPnBpZCwgUFRfUjExLCB2YWxwKTsKKwkJcmV0ID0gdXBlZWsgKHRjcCwgUFRfUjExLCB2YWxwKTsKIAllbHNlCiAJCXJldCA9IHVtb3ZlbiAodGNwLAogCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIGlhNjRfcnNlX3NraXBfcmVncygqc3RhdGUsIDApLApAQCAtMTI2OSwxNCArMTMzMiwxNCBAQAogCWludCByZXQ7CiAKIAlpZiAoaWEzMikKLQkJcmV0ID0gdXBlZWsgKHRjcC0+cGlkLCBQVF9SOSwgdmFscCk7CisJCXJldCA9IHVwZWVrICh0Y3AsIFBUX1I5LCB2YWxwKTsKIAllbHNlCiAJCXJldCA9IHVtb3ZlbiAodGNwLAogCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIGlhNjRfcnNlX3NraXBfcmVncygqc3RhdGUsIDEpLAogCQkJICAgICAgc2l6ZW9mKGxvbmcpLCAodm9pZCAqKSB2YWxwKTsKIAlyZXR1cm4gcmV0OwogfQotI2VuZGlmCisjICAgZW5kaWYKIAogc3RhdGljIGludAogc2V0X2FyZzAgKHN0cnVjdCB0Y2IgKnRjcCwgYXJnX3NldHVwX3N0YXRlICpzdGF0ZSwgbG9uZyB2YWwpCkBAIC0xMzEwLDcxICsxMzczLDg3IEBACiAJcmV0dXJuIGVycm5vID8gLTEgOiAwOwogfQogCi0jZWxpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKy8qIGlhNjQgZG9lcyBub3QgcmV0dXJuIHRoZSBpbnB1dCBhcmd1bWVudHMgZnJvbSBmdW5jdGlvbnMgKGFuZCBzeXNjYWxscykKKyAgIGFjY29yZGluZyB0byBpYTY0IFJTRSAoUmVnaXN0ZXIgU3RhY2sgRW5naW5lKSBiZWhhdmlvci4gICovCiAKLXR5cGVkZWYgc3RydWN0IHJlZ3MgYXJnX3NldHVwX3N0YXRlOworIyAgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAoKHZvaWQpIChzdGF0ZSksIDApCisjICAgZGVmaW5lIHJlc3RvcmVfYXJnMSh0Y3AsIHN0YXRlLCB2YWwpICgodm9pZCkgKHN0YXRlKSwgMCkKIAotIyBkZWZpbmUgYXJnX3NldHVwKHRjcCwgc3RhdGUpIFwKLSAgKHB0cmFjZSAoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSAoc3RhdGUpLCAwKSkKLSMgZGVmaW5lIGFyZ19maW5pc2hfY2hhbmdlKHRjcCwgc3RhdGUpIFwKLSAgKHB0cmFjZSAoUFRSQUNFX1NFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSAoc3RhdGUpLCAwKSkKKyMgIGVsaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCiAKLSMgZGVmaW5lIGdldF9hcmcwKHRjcCwgc3RhdGUsIHZhbHApICgqKHZhbHApID0gKHN0YXRlKS0+cl9vMCwgMCkKLSMgZGVmaW5lIGdldF9hcmcxKHRjcCwgc3RhdGUsIHZhbHApICgqKHZhbHApID0gKHN0YXRlKS0+cl9vMSwgMCkKLSMgZGVmaW5lIHNldF9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgKChzdGF0ZSktPnJfbzAgPSAodmFsKSwgMCkKLSMgZGVmaW5lIHNldF9hcmcxKHRjcCwgc3RhdGUsIHZhbCkgKChzdGF0ZSktPnJfbzEgPSAodmFsKSwgMCkKLSMgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIDAKK3R5cGVkZWYgc3RydWN0IHB0X3JlZ3MgYXJnX3NldHVwX3N0YXRlOwogCi0jZWxzZQorIyAgIGRlZmluZSBhcmdfc2V0dXAodGNwLCBzdGF0ZSkgXAorICAgIChwdHJhY2UgKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikgKHN0YXRlKSwgMCkpCisjICAgZGVmaW5lIGFyZ19maW5pc2hfY2hhbmdlKHRjcCwgc3RhdGUpIFwKKyAgICAocHRyYWNlIChQVFJBQ0VfU0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopIChzdGF0ZSksIDApKQogCi0jIGlmIGRlZmluZWQgUzM5MCB8fCBkZWZpbmVkIFMzOTBYCisjICAgZGVmaW5lIGdldF9hcmcwKHRjcCwgc3RhdGUsIHZhbHApICgqKHZhbHApID0gKHN0YXRlKS0+dV9yZWdzW1VfUkVHX08wXSwgMCkKKyMgICBkZWZpbmUgZ2V0X2FyZzEodGNwLCBzdGF0ZSwgdmFscCkgKCoodmFscCkgPSAoc3RhdGUpLT51X3JlZ3NbVV9SRUdfTzFdLCAwKQorIyAgIGRlZmluZSBzZXRfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpICgoc3RhdGUpLT51X3JlZ3NbVV9SRUdfTzBdID0gKHZhbCksIDApCisjICAgZGVmaW5lIHNldF9hcmcxKHRjcCwgc3RhdGUsIHZhbCkgKChzdGF0ZSktPnVfcmVnc1tVX1JFR19PMV0gPSAodmFsKSwgMCkKKyMgICBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgMAorCisjICBlbHNlIC8qIG90aGVyIGFyY2hpdGVjdHVyZXMgKi8KKworIyAgIGlmIGRlZmluZWQgUzM5MCB8fCBkZWZpbmVkIFMzOTBYCiAvKiBOb3RlOiB0aGlzIGlzIG9ubHkgdHJ1ZSBmb3IgdGhlIGBjbG9uZScgc3lzdGVtIGNhbGwsIHdoaWNoIGhhbmRsZXMKICAgIGFyZ3VtZW50cyBzcGVjaWFsbHkuICBXZSBjb3VsZCBhcyB3ZWxsIHNheSB0aGF0IGl0cyBmaXJzdCB0d28gYXJndW1lbnRzCiAgICBhcmUgc3dhcHBlZCByZWxhdGl2ZSB0byBvdGhlciBhcmNoaXRlY3R1cmVzLCBidXQgdGhhdCB3b3VsZCBqdXN0IGJlCiAgICBhbm90aGVyICNpZmRlZiBpbiB0aGUgY2FsbHMuICAqLwotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CVBUX0dQUjMKLSMgIGRlZmluZSBhcmcxX29mZnNldAlQVF9PUklHR1BSMgotIyAgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpICgodm9pZCkgKHN0YXRlKSwgMCkKLSMgIGRlZmluZSByZXN0b3JlX2FyZzEodGNwLCBzdGF0ZSwgdmFsKSAoKHZvaWQpIChzdGF0ZSksIDApCi0jICBkZWZpbmUgYXJnMF9pbmRleAkxCi0jICBkZWZpbmUgYXJnMV9pbmRleAkwCi0jIGVsaWYgZGVmaW5lZCAoQUxQSEEpIHx8IGRlZmluZWQgKE1JUFMpCi0jICBkZWZpbmUgYXJnMF9vZmZzZXQJUkVHX0EwCi0jICBkZWZpbmUgYXJnMV9vZmZzZXQJKFJFR19BMCsxKQotIyBlbGlmIGRlZmluZWQgKFBPV0VSUEMpCi0jICBkZWZpbmUgYXJnMF9vZmZzZXQJKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMykKLSMgIGRlZmluZSBhcmcxX29mZnNldAkoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX1I0KQotIyAgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpICgodm9pZCkgKHN0YXRlKSwgMCkKLSMgZWxpZiBkZWZpbmVkIChIUFBBKQotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CSBQVF9HUjI2Ci0jICBkZWZpbmUgYXJnMV9vZmZzZXQJIChQVF9HUjI2LTQpCi0jIGVsaWYgZGVmaW5lZCAoWDg2XzY0KQotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CSgobG9uZykoOCooY3VycmVudF9wZXJzb25hbGl0eSA/IFJCWCA6IFJESSkpKQotIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CSgobG9uZykoOCooY3VycmVudF9wZXJzb25hbGl0eSA/IFJDWCA6IFJTSSkpKQotIyBlbGlmIGRlZmluZWQgKFNIKQotIyAgZGVmaW5lIGFyZzBfb2Zmc2V0CSg0KihSRUdfUkVHMCs0KSkKLSMgIGRlZmluZSBhcmcxX29mZnNldAkoNCooUkVHX1JFRzArNSkpCi0jIGVsaWYgZGVmaW5lZCAoU0g2NCkKLSAgIC8qIEFCSSBkZWZpbmVzIGFyZzAgJiAxIGluIHIyICYgcjMgKi8KLSMgIGRlZmluZSBhcmcwX29mZnNldCAgIChSRUdfT0ZGU0VUKzE2KQotIyAgZGVmaW5lIGFyZzFfb2Zmc2V0ICAgKFJFR19PRkZTRVQrMjQpCi0jICBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgMAotIyBlbHNlCi0jICBkZWZpbmUgYXJnMF9vZmZzZXQJMAotIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CTQKLSMgIGlmIGRlZmluZWQgQVJNCi0jICAgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIDAKLSMgIGVuZGlmCi0jIGVuZGlmCisjICAgIGRlZmluZSBhcmcwX29mZnNldAlQVF9HUFIzCisjICAgIGRlZmluZSBhcmcxX29mZnNldAlQVF9PUklHR1BSMgorIyAgICBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgKCh2b2lkKSAoc3RhdGUpLCAwKQorIyAgICBkZWZpbmUgcmVzdG9yZV9hcmcxKHRjcCwgc3RhdGUsIHZhbCkgKCh2b2lkKSAoc3RhdGUpLCAwKQorIyAgICBkZWZpbmUgYXJnMF9pbmRleAkxCisjICAgIGRlZmluZSBhcmcxX2luZGV4CTAKKyMgICBlbGlmIGRlZmluZWQgKEFMUEhBKSB8fCBkZWZpbmVkIChNSVBTKQorIyAgICBkZWZpbmUgYXJnMF9vZmZzZXQJUkVHX0EwCisjICAgIGRlZmluZSBhcmcxX29mZnNldAkoUkVHX0EwKzEpCisjICAgZWxpZiBkZWZpbmVkIChBVlIzMikKKyMgICAgZGVmaW5lIGFyZzBfb2Zmc2V0CShSRUdfUjEyKQorIyAgICBkZWZpbmUgYXJnMV9vZmZzZXQJKFJFR19SMTEpCisjICAgZWxpZiBkZWZpbmVkIChQT1dFUlBDKQorIyAgICBkZWZpbmUgYXJnMF9vZmZzZXQJKHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMykKKyMgICAgZGVmaW5lIGFyZzFfb2Zmc2V0CShzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjQpCisjICAgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAoKHZvaWQpIChzdGF0ZSksIDApCisjICAgZWxpZiBkZWZpbmVkIChIUFBBKQorIyAgICBkZWZpbmUgYXJnMF9vZmZzZXQJIFBUX0dSMjYKKyMgICAgZGVmaW5lIGFyZzFfb2Zmc2V0CSAoUFRfR1IyNi00KQorIyAgIGVsaWYgZGVmaW5lZCAoWDg2XzY0KQorIyAgICBkZWZpbmUgYXJnMF9vZmZzZXQJKChsb25nKSg4KihjdXJyZW50X3BlcnNvbmFsaXR5ID8gUkJYIDogUkRJKSkpCisjICAgIGRlZmluZSBhcmcxX29mZnNldAkoKGxvbmcpKDgqKGN1cnJlbnRfcGVyc29uYWxpdHkgPyBSQ1ggOiBSU0kpKSkKKyMgICBlbGlmIGRlZmluZWQgKFNIKQorIyAgICBkZWZpbmUgYXJnMF9vZmZzZXQJKDQqKFJFR19SRUcwKzQpKQorIyAgICBkZWZpbmUgYXJnMV9vZmZzZXQJKDQqKFJFR19SRUcwKzUpKQorIyAgIGVsaWYgZGVmaW5lZCAoU0g2NCkKKyAgICAvKiBBQkkgZGVmaW5lcyBhcmcwICYgMSBpbiByMiAmIHIzICovCisjICAgIGRlZmluZSBhcmcwX29mZnNldCAgIChSRUdfT0ZGU0VUKzE2KQorIyAgICBkZWZpbmUgYXJnMV9vZmZzZXQgICAoUkVHX09GRlNFVCsyNCkKKyMgICAgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIDAKKyMgICBlbGlmIGRlZmluZWQgQ1JJU1YxMCB8fCBkZWZpbmVkIENSSVNWMzIKKyMgICAgZGVmaW5lIGFyZzBfb2Zmc2V0ICAgKDQqUFRfUjExKQorIyAgICBkZWZpbmUgYXJnMV9vZmZzZXQgICAoNCpQVF9PUklHX1IxMCkKKyMgICAgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIDAKKyMgICAgZGVmaW5lIHJlc3RvcmVfYXJnMSh0Y3AsIHN0YXRlLCB2YWwpIDAKKyMgICAgZGVmaW5lIGFyZzBfaW5kZXggICAxCisjICAgIGRlZmluZSBhcmcxX2luZGV4ICAgMAorIyAgIGVsc2UKKyMgICAgZGVmaW5lIGFyZzBfb2Zmc2V0CTAKKyMgICAgZGVmaW5lIGFyZzFfb2Zmc2V0CTQKKyMgICAgaWYgZGVmaW5lZCBBUk0KKyMgICAgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAwCisjICAgIGVuZGlmCisjICAgZW5kaWYKIAogdHlwZWRlZiBpbnQgYXJnX3NldHVwX3N0YXRlOwogCi0jIGRlZmluZSBhcmdfc2V0dXAodGNwLCBzdGF0ZSkgKDApCi0jIGRlZmluZSBhcmdfZmluaXNoX2NoYW5nZSh0Y3AsIHN0YXRlKQkwCi0jIGRlZmluZSBnZXRfYXJnMCh0Y3AsIGNvb2tpZSwgdmFscCkgXAotICAodXBlZWsgKCh0Y3ApLT5waWQsIGFyZzBfb2Zmc2V0LCAodmFscCkpKQotIyBkZWZpbmUgZ2V0X2FyZzEodGNwLCBjb29raWUsIHZhbHApIFwKLSAgKHVwZWVrICgodGNwKS0+cGlkLCBhcmcxX29mZnNldCwgKHZhbHApKSkKKyMgICBkZWZpbmUgYXJnX3NldHVwKHRjcCwgc3RhdGUpICgwKQorIyAgIGRlZmluZSBhcmdfZmluaXNoX2NoYW5nZSh0Y3AsIHN0YXRlKQkwCisjICAgZGVmaW5lIGdldF9hcmcwKHRjcCwgY29va2llLCB2YWxwKSBcCisgICAgKHVwZWVrICgodGNwKSwgYXJnMF9vZmZzZXQsICh2YWxwKSkpCisjICAgZGVmaW5lIGdldF9hcmcxKHRjcCwgY29va2llLCB2YWxwKSBcCisgICAgKHVwZWVrICgodGNwKSwgYXJnMV9vZmZzZXQsICh2YWxwKSkpCiAKIHN0YXRpYyBpbnQKIHNldF9hcmcwIChzdHJ1Y3QgdGNiICp0Y3AsIHZvaWQgKmNvb2tpZSwgbG9uZyB2YWwpCkBAIC0xMzg4LDI1ICsxNDY3LDI0IEBACiAJcmV0dXJuIHB0cmFjZSAoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKWFyZzFfb2Zmc2V0LCB2YWwpOwogfQogCi0jZW5kaWYKKyMgIGVuZGlmIC8qIGFyY2hpdGVjdHVyZXMgKi8KIAotI2lmbmRlZiByZXN0b3JlX2FyZzAKLSMgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIHNldF9hcmcwKCh0Y3ApLCAoc3RhdGUpLCAodmFsKSkKLSNlbmRpZgotI2lmbmRlZiByZXN0b3JlX2FyZzEKLSMgZGVmaW5lIHJlc3RvcmVfYXJnMSh0Y3AsIHN0YXRlLCB2YWwpIHNldF9hcmcxKCh0Y3ApLCAoc3RhdGUpLCAodmFsKSkKLSNlbmRpZgorIyAgaWZuZGVmIHJlc3RvcmVfYXJnMAorIyAgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSBzZXRfYXJnMCgodGNwKSwgKHN0YXRlKSwgKHZhbCkpCisjICBlbmRpZgorIyAgaWZuZGVmIHJlc3RvcmVfYXJnMQorIyAgIGRlZmluZSByZXN0b3JlX2FyZzEodGNwLCBzdGF0ZSwgdmFsKSBzZXRfYXJnMSgodGNwKSwgKHN0YXRlKSwgKHZhbCkpCisjICBlbmRpZgogCi0jaWZuZGVmIGFyZzBfaW5kZXgKLSMgZGVmaW5lIGFyZzBfaW5kZXggMAotIyBkZWZpbmUgYXJnMV9pbmRleCAxCi0jZW5kaWYKKyMgIGlmbmRlZiBhcmcwX2luZGV4CisjICAgZGVmaW5lIGFyZzBfaW5kZXggMAorIyAgIGRlZmluZSBhcmcxX2luZGV4IDEKKyMgIGVuZGlmCiAKIGludAotc2V0YnB0KHRjcCkKLXN0cnVjdCB0Y2IgKnRjcDsKK3NldGJwdChzdHJ1Y3QgdGNiICp0Y3ApCiB7Ci0JZXh0ZXJuIGludCBjaGFuZ2Vfc3lzY2FsbChzdHJ1Y3QgdGNiICosIGludCk7CisJc3RhdGljIGludCBjbG9uZV9zY25vW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTXSA9IHsgU1lTX2Nsb25lIH07CiAJYXJnX3NldHVwX3N0YXRlIHN0YXRlOwogCiAJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7CkBAIC0xNDE0LDE4ICsxNDkyLDMyIEBACiAJCXJldHVybiAtMTsKIAl9CiAKKwkvKgorCSAqIEl0J3MgYSBzaWxseSBrbHVkZ2UgdG8gaW5pdGlhbGl6ZSB0aGlzIHdpdGggYSBzZWFyY2ggYXQgcnVudGltZS4KKwkgKiBCdXQgaXQncyBiZXR0ZXIgdGhhbiBtYWludGFpbmluZyBhbm90aGVyIG1hZ2ljIHRoaW5nIGluIHRoZQorCSAqIGdvZGZvcnNha2VuIHRhYmxlcy4KKwkgKi8KKwlpZiAoY2xvbmVfc2Nub1tjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSAwKSB7CisJCWludCBpOworCQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzOyArK2kpCisJCQlpZiAoc3lzZW50W2ldLnN5c19mdW5jID09IHN5c19jbG9uZSkgeworCQkJCWNsb25lX3Njbm9bY3VycmVudF9wZXJzb25hbGl0eV0gPSBpOworCQkJCWJyZWFrOworCQkJfQorCX0KKwogCXN3aXRjaCAoa25vd25fc2Nubyh0Y3ApKSB7Ci0jaWZkZWYgU1lTX3Zmb3JrCisjICBpZmRlZiBTWVNfdmZvcmsKIAljYXNlIFNZU192Zm9yazoKLSNlbmRpZgotI2lmZGVmIFNZU19mb3JrCisjICBlbmRpZgorIyAgaWZkZWYgU1lTX2ZvcmsKIAljYXNlIFNZU19mb3JrOgotI2VuZGlmCi0jaWYgZGVmaW5lZCBTWVNfZm9yayB8fCBkZWZpbmVkIFNZU192Zm9yaworIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQgU1lTX2ZvcmsgfHwgZGVmaW5lZCBTWVNfdmZvcmsKIAkJaWYgKGFyZ19zZXR1cCAodGNwLCAmc3RhdGUpIDwgMAogCQkgICAgfHwgZ2V0X2FyZzAgKHRjcCwgJnN0YXRlLCAmdGNwLT5pbnN0WzBdKSA8IDAKIAkJICAgIHx8IGdldF9hcmcxICh0Y3AsICZzdGF0ZSwgJnRjcC0+aW5zdFsxXSkgPCAwCi0JCSAgICB8fCBjaGFuZ2Vfc3lzY2FsbCh0Y3AsIFNZU19jbG9uZSkgPCAwCisJCSAgICB8fCBjaGFuZ2Vfc3lzY2FsbCh0Y3AsIGNsb25lX3Njbm9bY3VycmVudF9wZXJzb25hbGl0eV0pIDwgMAogCQkgICAgfHwgc2V0X2FyZzAgKHRjcCwgJnN0YXRlLCBDTE9ORV9QVFJBQ0V8U0lHQ0hMRCkgPCAwCiAJCSAgICB8fCBzZXRfYXJnMSAodGNwLCAmc3RhdGUsIDApIDwgMAogCQkgICAgfHwgYXJnX2ZpbmlzaF9jaGFuZ2UgKHRjcCwgJnN0YXRlKSA8IDApCkBAIC0xNDM0LDE3ICsxNTI2LDI2IEBACiAJCXRjcC0+dV9hcmdbYXJnMV9pbmRleF0gPSAwOwogCQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7CiAJCXJldHVybiAwOwotI2VuZGlmCisjICBlbmRpZgogCiAJY2FzZSBTWVNfY2xvbmU6Ci0jaWZkZWYgU1lTX2Nsb25lMgorIyAgaWZkZWYgU1lTX2Nsb25lMgogCWNhc2UgU1lTX2Nsb25lMjoKLSNlbmRpZgotCQlpZiAoKHRjcC0+dV9hcmdbYXJnMF9pbmRleF0gJiBDTE9ORV9QVFJBQ0UpID09IDAKLQkJICAgICYmIChhcmdfc2V0dXAgKHRjcCwgJnN0YXRlKSA8IDAKLQkJCXx8IHNldF9hcmcwICh0Y3AsICZzdGF0ZSwKLQkJCQkgICAgIHRjcC0+dV9hcmdbYXJnMF9pbmRleF0gfCBDTE9ORV9QVFJBQ0UpIDwgMAotCQkJfHwgYXJnX2ZpbmlzaF9jaGFuZ2UgKHRjcCwgJnN0YXRlKSA8IDApKQorIyAgZW5kaWYKKwkJLyogaWE2NCBjYWxscyBkaXJlY3RseSBgY2xvbmUgKENMT05FX1ZGT1JLIHwgQ0xPTkVfVk0pJworCQkgICBjb250cmFyeSB0byB4ODYgU1lTX3Zmb3JrIGFib3ZlLiAgRXZlbiBvbiB4ODYgd2UgdHVybiB0aGUKKwkJICAgdmZvcmsgc2VtYW50aWNzIGludG8gcGxhaW4gZm9yayAtIGVhY2ggYXBwbGljYXRpb24gbXVzdCBub3QKKwkJICAgZGVwZW5kIG9uIHRoZSB2Zm9yayBzcGVjaWZpY3MgYWNjb3JkaW5nIHRvIFBPU0lYLiAgV2Ugd291bGQKKwkJICAgaGFuZyB3YWl0aW5nIGZvciB0aGUgcGFyZW50IHJlc3VtZSBvdGhlcndpc2UuICBXZSBuZWVkIHRvCisJCSAgIGNsZWFyIGFsc28gQ0xPTkVfVk0gYnV0IG9ubHkgaW4gdGhlIENMT05FX1ZGT1JLIGNhc2UgYXMKKwkJICAgb3RoZXJ3aXNlIHdlIHdvdWxkIGJyZWFrIHB0aHJlYWRfY3JlYXRlLiAgKi8KKworCQlpZiAoKGFyZ19zZXR1cCAodGNwLCAmc3RhdGUpIDwgMAorCQkgICAgfHwgc2V0X2FyZzAgKHRjcCwgJnN0YXRlLAorCQkJCSAodGNwLT51X2FyZ1thcmcwX2luZGV4XSB8IENMT05FX1BUUkFDRSkKKwkJCQkgJiB+KHRjcC0+dV9hcmdbYXJnMF9pbmRleF0gJiBDTE9ORV9WRk9SSworCQkJCSAgICAgPyBDTE9ORV9WRk9SSyB8IENMT05FX1ZNIDogMCkpIDwgMAorCQkgICAgfHwgYXJnX2ZpbmlzaF9jaGFuZ2UgKHRjcCwgJnN0YXRlKSA8IDApKQogCQkJcmV0dXJuIC0xOwogCQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7CiAJCXRjcC0+aW5zdFswXSA9IHRjcC0+dV9hcmdbYXJnMF9pbmRleF07CkBAIC0xNDY5LDIzMCArMTU3MCwzMCBAQAogCSAgICB8fCByZXN0b3JlX2FyZzAgKHRjcCwgJnN0YXRlLCB0Y3AtPmluc3RbMF0pIDwgMAogCSAgICB8fCByZXN0b3JlX2FyZzEgKHRjcCwgJnN0YXRlLCB0Y3AtPmluc3RbMV0pIDwgMAogCSAgICB8fCBhcmdfZmluaXNoX2NoYW5nZSAodGNwLCAmc3RhdGUpKQotCQlyZXR1cm4gLTE7CisJCWlmIChlcnJubyAhPSBFU1JDSCkgcmV0dXJuIC0xOwogCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7CiAJcmV0dXJuIDA7CiB9CiAKLSNlbHNlCisjIGVsc2UgLyogIWRlZmluZWQgTElOVVggKi8KIAogaW50CiBzZXRicHQodGNwKQogc3RydWN0IHRjYiAqdGNwOwogewotCi0jaWZkZWYgTElOVVgKLSNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKLQkvKiBXZSBzaW1wbHkgdXNlIHRoZSBTdW5PUyBicmVha3BvaW50IGNvZGUuICovCisjICBpZmRlZiBTVU5PUzQKKyMgICBpZmRlZiBTUEFSQwkvKiBUaGlzIGNvZGUgaXMgc2xpZ2h0bHkgc3BhcmMgc3BlY2lmaWMgKi8KIAogCXN0cnVjdCByZWdzIHJlZ3M7Ci0JdW5zaWduZWQgbG9uZyBpbnN0OwotI2RlZmluZSBMT09QQQkweDMwODAwMDAwCS8qIGJhLGEJMCAqLwotCi0JaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBhbHJlYWR5IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKLQkJcmV0dXJuIC0xOwotCX0KLQlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKSB7Ci0JCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQl0Y3AtPmJhZGRyID0gcmVncy5yX283ICsgODsKLQllcnJubyA9IDA7Ci0JdGNwLT5pbnN0WzBdID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgdGNwLT5waWQsIChjaGFyICopdGNwLT5iYWRkciwgMCk7Ci0JaWYoZXJybm8pIHsKLQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCS8qCi0JICogWFhYIC0gQlJVVEFMIE1PREUgT04KLQkgKiBXZSBjYW5ub3Qgc2V0IGEgcmVhbCBCUFQgaW4gdGhlIGNoaWxkLCBzaW5jZSBpdCB3aWxsIG5vdCBiZQotCSAqIHRyYWNlZCBhdCB0aGUgbW9tZW50IGl0IHdpbGwgcmVhY2ggdGhlIHRyYXAgYW5kIHdvdWxkIHByb2JhYmx5Ci0JICogZGllIHdpdGggYSBjb3JlIGR1bXAuCi0JICogVGh1cywgd2UgYXJlIGZvcmNlIG91ciB3YXkgaW4gYnkgdGFraW5nIG91dCB0d28gaW5zdHJ1Y3Rpb25zCi0JICogYW5kIGluc2VydCBhbiBldGVybmFsIGxvb3AgaW5zdGVhZCwgaW4gZXhwZWN0YW5jZSBvZiB0aGUgU0lHU1RPUAotCSAqIGdlbmVyYXRlZCBieSBvdXQgUFRSQUNFX0FUVEFDSC4KLQkgKiBPZiBjYXVzZSwgaWYgd2UgZXZhcG9yYXRlIG91cnNlbHZlcyBpbiB0aGUgbWlkZGxlIG9mIGFsbCB0aGlzLi4uCi0JICovCi0JZXJybm8gPSAwOwotCWluc3QgPSBMT09QQTsKLSNpZiBkZWZpbmVkIChTUEFSQzY0KQotCWluc3QgPDw9IDMyOwotCWluc3QgfD0gKHRjcC0+aW5zdFswXSAmIDB4ZmZmZmZmZmZVTCk7Ci0jZW5kaWYKLQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgaW5zdCk7Ci0JaWYoZXJybm8pIHsKLQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7Ci0KLSNlbHNlIC8qICFTUEFSQyAmJiAhU1BBUkM2NCAqLwotI2lmZGVmIElBNjQKLQlpZiAoaWEzMikgewotIwkJZGVmaW5lIExPT1AJMHgwMDAwZmVlYgotCQlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IGJwdCBhbHJlYWR5IHNldCBpbiBwaWQgJXVcbiIsCi0JCQkJdGNwLT5waWQpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQ1JfSUlQLCAmdGNwLT5iYWRkcikgPCAwKQotCQkJcmV0dXJuIC0xOwotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIlslZF0gc2V0dGluZyBicHQgYXQgJWx4XG4iLAotCQkJCXRjcC0+cGlkLCB0Y3AtPmJhZGRyKTsKLQkJdGNwLT5pbnN0WzBdID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgdGNwLT5waWQsCi0JCQkJICAgICAgKGNoYXIgKikgdGNwLT5iYWRkciwgMCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgTE9PUCk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7Ci0JfSBlbHNlIHsKLQkJLyoKLQkJICogT3VyIHN0cmF0ZWd5IGhlcmUgaXMgdG8gcmVwbGFjZSB0aGUgYnVuZGxlIHRoYXQKLQkJICogY29udGFpbmVkIHRoZSBjbG9uZSgpIHN5c2NhbGwgd2l0aCBhIGJ1bmRsZSBvZiB0aGUKLQkJICogZm9ybToKLQkJICoKLQkJICoJeyAxOiBiciAxYjsgYnIgMWI7IGJyIDFiIH0KLQkJICoKLQkJICogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIG5ld2x5IGZvcmtlZCBjaGlsZCB3aWxsIGxvb3AKLQkJICogZW5kbGVzc2x5IHVudGlsIHdlJ3ZlIGdvdCBhIGNoYW5jZSB0byBhdHRhY2ggdG8gaXQuCi0JCSAqLwotIwkJZGVmaW5lIExPT1AwCTB4MDAwMDEwMDAwMDAwMDAxNwotIwkJZGVmaW5lIExPT1AxCTB4NDAwMDAwMDAwMDIwMDAwMAotCQl1bnNpZ25lZCBsb25nIGFkZHIsIGlwc3I7Ci0JCXBpZF90IHBpZDsKLQotCQlwaWQgPSB0Y3AtPnBpZDsKLQkJaWYgKHVwZWVrKHBpZCwgUFRfQ1JfSVBTUiwgJmlwc3IpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJaWYgKHVwZWVrKHBpZCwgUFRfQ1JfSUlQLCAmYWRkcikgPCAwKQotCQkJcmV0dXJuIC0xOwotCQkvKiBzdG9yZSAicmkiIGluIGxvdyB0d28gYml0cyAqLwotCQl0Y3AtPmJhZGRyID0gYWRkciB8ICgoaXBzciA+PiA0MSkgJiAweDMpOwotCi0JCWVycm5vID0gMDsKLQkJdGNwLT5pbnN0WzBdID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgcGlkLCAoY2hhciAqKSBhZGRyICsgMCwKLQkJCQkgICAgICAwKTsKLQkJdGNwLT5pbnN0WzFdID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgcGlkLCAoY2hhciAqKSBhZGRyICsgOCwKLQkJCQkgICAgICAwKTsKLQkJaWYgKGVycm5vKSB7Ci0JCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgLi4uKSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0KLQkJZXJybm8gPSAwOwotCQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCBwaWQsIChjaGFyICopIGFkZHIgKyAwLCBMT09QMCk7Ci0JCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHBpZCwgKGNoYXIgKikgYWRkciArIDgsIExPT1AxKTsKLQkJaWYgKGVycm5vKSB7Ci0JCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCXRjcC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKLQl9Ci0jZWxzZSAvKiAhSUE2NCAqLwotCi0jaWYgZGVmaW5lZCAoSTM4NikgfHwgZGVmaW5lZChYODZfNjQpCi0jZGVmaW5lIExPT1AJMHgwMDAwZmVlYgotI2VsaWYgZGVmaW5lZCAoTTY4SykKLSNkZWZpbmUgTE9PUAkweDYwZmUwMDAwCi0jZWxpZiBkZWZpbmVkIChBTFBIQSkKLSNkZWZpbmUgTE9PUAkweGMzZmZmZmZmCi0jZWxpZiBkZWZpbmVkIChQT1dFUlBDKQotI2RlZmluZSBMT09QCTB4NDgwMDAwMDAKLSNlbGlmIGRlZmluZWQoQVJNKQotI2RlZmluZSBMT09QCTB4RUFGRkZGRkUKLSNlbGlmIGRlZmluZWQoTUlQUykKLSNkZWZpbmUgTE9PUAkweDEwMDBmZmZmCi0jZWxpZiBkZWZpbmVkKFMzOTApCi0jZGVmaW5lIExPT1AJMHhhN2Y0MDAwMAkvKiBCUkMgMTUsMCAqLwotI2VsaWYgZGVmaW5lZChTMzkwWCkKLSNkZWZpbmUgTE9PUCAgIDB4YTdmNDAwMDAwMDAwMDAwMFVMIC8qIEJSQyAxNSwwICovCi0jZWxpZiBkZWZpbmVkKEhQUEEpCi0jZGVmaW5lIExPT1AJMHhlODFmMWZmNwkvKiBiLGwsbiA8bG9jPixyMCAqLwotI2VsaWYgZGVmaW5lZChTSCkKLSNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwotI2RlZmluZSBMT09QICAgMHgwMDAwYWZmZQotI2Vsc2UKLSNkZWZpbmUgTE9PUCAgIDB4ZmVhZjAwMDAKLSNlbmRpZgotI2Vsc2UKLSNlcnJvciB1bmtub3duIGFyY2hpdGVjdHVyZQotI2VuZGlmCi0KLQlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpIHsKLQkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogYnB0IGFscmVhZHkgc2V0IGluIHBpZCAldVxuIiwgdGNwLT5waWQpOwotCQlyZXR1cm4gLTE7Ci0JfQotI2lmIGRlZmluZWQgKEkzODYpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KkVJUCwgJnRjcC0+YmFkZHIpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZCAoWDg2XzY0KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgOCpSSVAsICZ0Y3AtPmJhZGRyKSA8IDApCi0JCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQgKE02OEspCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlBUX1BDLCAmdGNwLT5iYWRkcikgPCAwKQotCSAgcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZCAoQUxQSEEpCi0JcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZCAoQVJNKQotCXJldHVybiAtMTsKLSNlbGlmIGRlZmluZWQgKE1JUFMpCi0JcmV0dXJuIC0xOwkJLyogRklYTUU6IEkgZG8gbm90IGtub3cgd2hhdCBpIGRvIC0gRmxvICovCi0jZWxpZiBkZWZpbmVkIChQT1dFUlBDKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX05JUCwgJnRjcC0+YmFkZHIpIDwgMCkKLQkJcmV0dXJuIC0xOwotI2VsaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQotCWlmICh1cGVlayh0Y3AtPnBpZCxQVF9QU1dBRERSLCAmdGNwLT5iYWRkcikgPCAwKQotCQlyZXR1cm4gLTE7Ci0jZWxpZiBkZWZpbmVkKEhQUEEpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9JQU9RMCwgJnRjcC0+YmFkZHIpIDwgMCkKLQkJcmV0dXJuIC0xOwotCXRjcC0+YmFkZHIgJj0gfjB4MDM7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgNCpSRUdfUEMsICZ0Y3AtPmJhZGRyKSA8IDApCi0gICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0jZWxzZQotI2Vycm9yIHVua25vd24gYXJjaGl0ZWN0dXJlCi0jZW5kaWYKLQlpZiAoZGVidWcpCi0JCWZwcmludGYoc3RkZXJyLCAiWyVkXSBzZXR0aW5nIGJwdCBhdCAlbHhcbiIsIHRjcC0+cGlkLCB0Y3AtPmJhZGRyKTsKLQl0Y3AtPmluc3RbMF0gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgMCk7Ci0JaWYgKGVycm5vKSB7Ci0JCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIExPT1ApOwotCWlmIChlcnJubykgewotCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOwotCQlyZXR1cm4gLTE7Ci0JfQotCXRjcC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKLQotI2VuZGlmIC8qICFJQTY0ICovCi0jZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLwotI2VuZGlmIC8qIExJTlVYICovCi0KLSNpZmRlZiBTVU5PUzQKLSNpZmRlZiBTUEFSQwkvKiBUaGlzIGNvZGUgaXMgc2xpZ2h0bHkgc3BhcmMgc3BlY2lmaWMgKi8KLQotCXN0cnVjdCByZWdzIHJlZ3M7Ci0jZGVmaW5lIEJQVAkweDkxZDAyMDAxCS8qIHRhCTEgKi8KLSNkZWZpbmUgTE9PUAkweDEwODAwMDAwCS8qIGJhCTAgKi8KLSNkZWZpbmUgTE9PUEEJMHgzMDgwMDAwMAkvKiBiYSxhCTAgKi8KLSNkZWZpbmUgTk9QCTB4MDEwMDAwMDAKLSNpZiBMT09QQQorIyAgICBkZWZpbmUgQlBUCTB4OTFkMDIwMDEJLyogdGEJMSAqLworIyAgICBkZWZpbmUgTE9PUAkweDEwODAwMDAwCS8qIGJhCTAgKi8KKyMgICAgZGVmaW5lIExPT1BBCTB4MzA4MDAwMDAJLyogYmEsYQkwICovCisjICAgIGRlZmluZSBOT1AJMHgwMTAwMDAwMAorIyAgICBpZiBMT09QQQogCXN0YXRpYyBpbnQgbG9vcGRlbG9vcFsxXSA9IHtMT09QQX07Ci0jZWxzZQorIyAgICBlbHNlCiAJc3RhdGljIGludCBsb29wZGVsb29wWzJdID0ge0xPT1AsIE5PUH07Ci0jZW5kaWYKKyMgICAgZW5kaWYKIAogCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgewogCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0IgYWxyZWFkeSBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7CkBAIC0xNzI2LDggKzE2MjcsOCBAQAogCX0KIAl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7CiAKLSNlbmRpZiAvKiBTUEFSQyAqLwotI2VuZGlmIC8qIFNVTk9TNCAqLworIyAgIGVuZGlmIC8qIFNQQVJDICovCisjICBlbmRpZiAvKiBTVU5PUzQgKi8KIAogCXJldHVybiAwOwogfQpAQCAtMTczNiwyMDkgKzE2MzcsMTIgQEAKIGNsZWFyYnB0KHRjcCkKIHN0cnVjdCB0Y2IgKnRjcDsKIHsKKyMgIGlmZGVmIFNVTk9TNAorIyAgIGlmZGVmIFNQQVJDCiAKLSNpZmRlZiBMSU5VWAotI2lmIGRlZmluZWQoSTM4NikgfHwgZGVmaW5lZChYODZfNjQpCi0JbG9uZyBlaXA7Ci0jZWxpZiBkZWZpbmVkKFBPV0VSUEMpCi0JbG9uZyBwYzsKLSNlbGlmIGRlZmluZWQoTTY4SykKLQlsb25nIHBjOwotI2VsaWYgZGVmaW5lZChBTFBIQSkKLQlsb25nIHBjOwotI2VsaWYgZGVmaW5lZChIUFBBKQotCWxvbmcgaWFvcTsKLSNlbGlmIGRlZmluZWQoU0gpCi0gICAgICAgbG9uZyBwYzsKLSNlbmRpZiAvKiBhcmNoaXRlY3R1cmUgKi8KLQotI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQotCS8qIEFnYWluLCB3ZSBib3Jyb3cgdGhlIFN1bk9TIGJyZWFrcG9pbnQgY29kZS4gKi8KLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkpIHsKLQkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogVENCIG5vdCBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7Ci0JCXJldHVybiAtMTsKLQl9Ci0JZXJybm8gPSAwOwotCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCB0Y3AtPmluc3RbMF0pOwotCWlmKGVycm5vKSB7Ci0JCXBlcnJvcigiY2xlYXJidHA6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKLQkJcmV0dXJuIC0xOwotCX0KLQl0Y3AtPmZsYWdzICY9IH5UQ0JfQlBUU0VUOwotI2VsaWYgZGVmaW5lZChJQTY0KQotCWlmIChpYTMyKSB7Ci0JCXVuc2lnbmVkIGxvbmcgYWRkcjsKLQotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIlslZF0gY2xlYXJpbmcgYnB0XG4iLCB0Y3AtPnBpZCk7Ci0JCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSkgewotCQkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogVENCIG5vdCBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJZXJybm8gPSAwOwotCQlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgdGNwLT5pbnN0WzBdKTsKLQkJaWYgKGVycm5vKSB7Ci0JCQlwZXJyb3IoImNsZWFyYnRwOiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KLQkJdGNwLT5mbGFncyAmPSB+VENCX0JQVFNFVDsKLQotCQlpZiAodXBlZWsodGNwLT5waWQsIFBUX0NSX0lJUCwgJmFkZHIpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJaWYgKGFkZHIgIT0gdGNwLT5iYWRkcikgewotCQkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJCWlmIChkZWJ1ZykKLQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJCQlhZGRyLCB0Y3AtPmJhZGRyKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfSBlbHNlIHsKLQkJdW5zaWduZWQgbG9uZyBhZGRyLCBpcHNyOwotCQlwaWRfdCBwaWQ7Ci0KLQkJcGlkID0gdGNwLT5waWQ7Ci0KLQkJaWYgKHVwZWVrKHBpZCwgUFRfQ1JfSVBTUiwgJmlwc3IpIDwgMCkKLQkJCXJldHVybiAtMTsKLQkJaWYgKHVwZWVrKHBpZCwgUFRfQ1JfSUlQLCAmYWRkcikgPCAwKQotCQkJcmV0dXJuIC0xOwotCi0JCS8qIHJlc3RvcmUgb3JpZ2luYWwgYnVuZGxlOiAqLwotCQllcnJubyA9IDA7Ci0JCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHBpZCwgKGNoYXIgKikgYWRkciArIDAsIHRjcC0+aW5zdFswXSk7Ci0JCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHBpZCwgKGNoYXIgKikgYWRkciArIDgsIHRjcC0+aW5zdFsxXSk7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJjbGVhcmJwdDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0KLQkJLyogcmVzdG9yZSBvcmlnaW5hbCAicmkiIGluIGlwc3I6ICovCi0JCWlwc3IgPSAoaXBzciAmIH4oMHgzdWwgPDwgNDEpKSB8ICgodGNwLT5iYWRkciAmIDB4MykgPDwgNDEpOwotCQllcnJubyA9IDA7Ci0JCXB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHBpZCwgKGNoYXIgKikgUFRfQ1JfSVBTUiwgaXBzcik7Ci0JCWlmIChlcnJubykgewotCQkJcGVycm9yKCJjbHJicHQ6IHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIC4uLikiKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCi0JCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7Ci0KLQkJaWYgKGFkZHIgIT0gKHRjcC0+YmFkZHIgJiB+MHgzKSkgewotCQkJLyogdGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJCWlmIChkZWJ1ZykKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJCWFkZHIsIHRjcC0+YmFkZHIpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0jZWxzZSAvKiAhSUE2NCAgJiYgIVNQQVJDICYmICFTUEFSQzY0ICovCi0KLQlpZiAoZGVidWcpCi0JCWZwcmludGYoc3RkZXJyLCAiWyVkXSBjbGVhcmluZyBicHRcbiIsIHRjcC0+cGlkKTsKLQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkpIHsKLQkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogVENCIG5vdCBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7Ci0JCXJldHVybiAtMTsKLQl9Ci0JZXJybm8gPSAwOwotCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCB0Y3AtPmluc3RbMF0pOwotCWlmIChlcnJubykgewotCQlwZXJyb3IoImNsZWFyYnRwOiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0JdGNwLT5mbGFncyAmPSB+VENCX0JQVFNFVDsKLQotI2lmZGVmIEkzODYKLQlpZiAodXBlZWsodGNwLT5waWQsIDQqRUlQLCAmZWlwKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAoZWlwICE9IHRjcC0+YmFkZHIpIHsKLQkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsCi0JCQkJIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJCWVpcCwgdGNwLT5iYWRkcik7Ci0JCXJldHVybiAwOwotCX0KLSNlbGlmIGRlZmluZWQoWDg2XzY0KQotCWlmICh1cGVlayh0Y3AtPnBpZCwgOCpSSVAsICZlaXApIDwgMCkKLQkJcmV0dXJuIC0xOwotCWlmIChlaXAgIT0gdGNwLT5iYWRkcikgewotCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLwotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKLQkJCQkJZWlwLCB0Y3AtPmJhZGRyKTsKLQkJcmV0dXJuIDA7Ci0JfQotI2VsaWYgZGVmaW5lZChQT1dFUlBDKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX05JUCwgJnBjKSA8IDApCi0JCXJldHVybiAtMTsKLQlpZiAocGMgIT0gdGNwLT5iYWRkcikgewotCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLwotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCi0JCQkJcGMsIHRjcC0+YmFkZHIpOwotCQlyZXR1cm4gMDsKLQl9Ci0jZWxpZiBkZWZpbmVkKE02OEspCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlBUX1BDLCAmcGMpIDwgMCkKLQkJcmV0dXJuIC0xOwotCWlmIChwYyAhPSB0Y3AtPmJhZGRyKSB7Ci0JCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCi0JCWlmIChkZWJ1ZykKLQkJCWZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKLQkJCQlwYywgdGNwLT5iYWRkcik7Ci0JCXJldHVybiAwOwotCX0KLSNlbGlmIGRlZmluZWQoQUxQSEEpCi0JaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfUEMsICZwYykgPCAwKQotCQlyZXR1cm4gLTE7Ci0JaWYgKHBjICE9IHRjcC0+YmFkZHIpIHsKLQkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KLQkJaWYgKGRlYnVnKQotCQkJZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAotCQkJCXBjLCB0Y3AtPmJhZGRyKTsKLQkJcmV0dXJuIDA7Ci0JfQotI2VsaWYgZGVmaW5lZChIUFBBKQotCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfSUFPUTAsICZpYW9xKSA8IDApCi0JCXJldHVybiAtMTsKLQlpYW9xICY9IH4weDAzOwotCWlmIChpYW9xICE9IHRjcC0+YmFkZHIgJiYgaWFvcSAhPSB0Y3AtPmJhZGRyICsgNCkgewotCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLwotCQlpZiAoZGVidWcpCi0JCQlmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IFBDIG5vdCBhdCBicHQgKGlhb3EgJSNseCBiYWRkciAlI2x4KVxuIiwKLQkJCQlpYW9xLCB0Y3AtPmJhZGRyKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlhb3EgPSB0Y3AtPmJhZGRyIHwgMzsKLQkvKiBXZSBzaG91bGQgYmUgcG9pbnRpbmcgYXQgYSAnbGRpIC0xMDAwLHIxJyBpbiBnbGliYywgc28gaXQgaXMKLQkgKiBzYWZlIHRvIHNldCBib3RoIElBT1EwIGFuZCBJQU9RMSB0byB0aGF0IHNvIHRoZSBQU1cgTiBiaXQKLQkgKiBoYXMgbm8gc2lnbmlmaWNhbnQgZWZmZWN0LgotCSAqLwotCXB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAodm9pZCAqKVBUX0lBT1EwLCBpYW9xKTsKLQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKHZvaWQgKilQVF9JQU9RMSwgaWFvcSk7Ci0jZWxpZiBkZWZpbmVkKFNIKQotICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgNCpSRUdfUEMsICZwYykgPCAwKQotICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBpZiAocGMgIT0gdGNwLT5iYWRkcikgewotICAgICAgICAgICAgICAgIC8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCi0gICAgICAgICAgICAgICAgaWYgKGRlYnVnKQotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYywgdGNwLT5iYWRkcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotI2VuZGlmIC8qIGFyY2ggKi8KLSNlbmRpZiAvKiAhU1BBUkMgJiYgIVNQQVJDNjQgJiYgIUlBNjQgKi8KLSNlbmRpZiAvKiBMSU5VWCAqLwotCi0jaWZkZWYgU1VOT1M0Ci0jaWZkZWYgU1BBUkMKLQotI2lmICFMT09QQQorIyAgICBpZiAhTE9PUEEKIAlzdHJ1Y3QgcmVncyByZWdzOwotI2VuZGlmCisjICAgIGVuZGlmCiAKIAlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkpIHsKIAkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogVENCIG5vdCBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7CkBAIC0xOTUxLDEwICsxNjU1LDEwIEBACiAJfQogCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7CiAKLSNpZiAhTE9PUEEKKyMgICAgaWYgIUxPT1BBCiAJLyoKIAkgKiBTaW5jZSB3ZSBkb24ndCBoYXZlIGEgc2luZ2xlIGluc3RydWN0aW9uIGJyZWFrcG9pbnQsIHdlIG1heSBoYXZlCi0JICogdG8gYWRqdXN0IHRoZSBwcm9ncmFtIGNvdW50ZXIgYWZ0ZXIgcmVtb3ZpbmcgdGhlIG91ciBgYnJlYWtwb2ludCcuCisJICogdG8gYWRqdXN0IHRoZSBwcm9ncmFtIGNvdW50ZXIgYWZ0ZXIgcmVtb3Zpbmcgb3VyIGBicmVha3BvaW50Jy4KIAkgKi8KIAlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKSB7CiAJCXBlcnJvcigiY2xlYXJicHQ6IHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgLi4uKSIpOwpAQCAtMTk2Niw3ICsxNjcwLDcgQEAKIAkJaWYgKGRlYnVnKQogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjeCBiYWRkciAlI3gpXG4iLAotCQkJCQlyZWdzLnJfcGMsIHRjcC0+cGFyZW50LT5iYWRkcik7CisJCQkJCXJlZ3Mucl9wYywgdGNwLT5iYWRkcik7CiAJCXJldHVybiAwOwogCX0KIAlpZiAocmVncy5yX3BjICE9IHRjcC0+YmFkZHIpCkBAIC0xOTc5LDI5ICsxNjgzLDMwIEBACiAJCXBlcnJvcigiY2xlYXJicHQ6IHB0cmFjZShQVFJBQ0VfU0VUUkVHUywgLi4uKSIpOwogCQlyZXR1cm4gLTE7CiAJfQotI2VuZGlmIC8qIExPT1BBICovCi0jZW5kaWYgLyogU1BBUkMgKi8KLSNlbmRpZiAvKiBTVU5PUzQgKi8KKyMgICAgZW5kaWYgLyogTE9PUEEgKi8KKyMgICBlbmRpZiAvKiBTUEFSQyAqLworIyAgZW5kaWYgLyogU1VOT1M0ICovCiAKIAlyZXR1cm4gMDsKIH0KIAotI2VuZGlmCisjIGVuZGlmIC8qICFkZWZpbmVkIExJTlVYICovCiAKICNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLwogCisKICNpZmRlZiBTVU5PUzQKIAogc3RhdGljIGludAotZ2V0ZXgocGlkLCBoZHIpCi1pbnQgcGlkOworZ2V0ZXgodGNwLCBoZHIpCitzdHJ1Y3QgdGNiICp0Y3A7CiBzdHJ1Y3QgZXhlYyAqaGRyOwogewogCWludCBuOwogCiAJZm9yIChuID0gMDsgbiA8IHNpemVvZiAqaGRyOyBuICs9IDQpIHsKIAkJbG9uZyByZXM7Ci0JCWlmICh1cGVlayhwaWQsIHVvZmYodV9leGRhdGEpICsgbiwgJnJlcykgPCAwKQorCQlpZiAodXBlZWsodGNwLCB1b2ZmKHVfZXhkYXRhKSArIG4sICZyZXMpIDwgMCkKIAkJCXJldHVybiAtMTsKIAkJbWVtY3B5KCgoY2hhciAqKSBoZHIpICsgbiwgJnJlcywgNCk7CiAJfQpAQCAtMjAyOSw3ICsxNzM0LDcgQEAKIAlzdHJ1Y3QgbGlua19keW5hbWljXzIgbGQ7CiAJY2hhciAqc3RydGFiLCAqY3A7CiAKLQlpZiAoZ2V0ZXgocGlkLCAmaGRyKSA8IDApCisJaWYgKGdldGV4KHRjcCwgJmhkcikgPCAwKQogCQlyZXR1cm4gLTE7CiAJaWYgKCFoZHIuYV9keW5hbWljKQogCQlyZXR1cm4gLTE7CkBAIC0yMDUwLDEzICsxNzU1LDYgQEAKIAkJCQkJKGludClsZC5sZF9zeW1iX3NpemUsIHN0cnRhYikgPCAwKQogCQlnb3RvIGVycjsKIAotI2lmIDAKLQlmb3IgKGNwID0gc3RydGFiOyBjcCA8IHN0cnRhYiArIGxkLmxkX3N5bWJfc2l6ZTsgKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiW3N5bWJvbDogJXNdXG4iLCBjcCk7Ci0JCWNwICs9IHN0cmxlbihjcCkrMTsKLQl9Ci0JcmV0dXJuIDA7Ci0jZW5kaWYKIAlmb3IgKGNwID0gc3RydGFiOyBjcCA8IHN0cnRhYiArIGxkLmxkX3N5bWJfc2l6ZTsgKSB7CiAJCWlmIChzdHJjbXAoY3AsICJfdmZvcmsiKSA9PSAwKSB7CiAJCQlpZiAoZGVidWcpCg==