ZGlmZiAtLWdpdCBhLy53YWYtdG9vbHMvYm9vc3QucHkgYi8ud2FmLXRvb2xzL2Jvb3N0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNTk0NWEKLS0tIC9kZXYvbnVsbAorKysgYi8ud2FmLXRvb2xzL2Jvb3N0LnB5CkBAIC0wLDAgKzEsMzc4IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgZW5jb2Rpbmc6IHV0Zi04CisjCisjIHBhcnRpYWxseSBiYXNlZCBvbiBib29zdC5weSB3cml0dGVuIGJ5IEdlcm5vdCBWb3JtYXlyCisjIHdyaXR0ZW4gYnkgUnVlZGlnZXIgU29uZGVyZmVsZCA8cnVlZGlnZXJAYy1wbHVzcGx1cy5kZT4sIDIwMDgKKyMgbW9kaWZpZWQgYnkgQmpvZXJuIE1pY2hhZWxzZW4sIDIwMDgKKyMgbW9kaWZpZWQgYnkgTHVjYSBGb3NzYXRpLCAyMDA4CisjIHJld3JpdHRlbiBmb3Igd2FmIDEuNS4xLCBUaG9tYXMgTmFneSwgMjAwOAorIyByZXdyaXR0ZW4gZm9yIHdhZiAxLjYuMiwgU3lsdmFpbiBSb3VxdWV0dGUsIDIwMTEKKworJycnCisKK1RoaXMgaXMgYW4gZXh0cmEgdG9vbCwgbm90IGJ1bmRsZWQgd2l0aCB0aGUgZGVmYXVsdCB3YWYgYmluYXJ5LgorVG8gYWRkIHRoZSBib29zdCB0b29sIHRvIHRoZSB3YWYgZmlsZToKKyQgLi93YWYtbGlnaHQgLS10b29scz1jb21wYXQxNSxib29zdAorCW9yLCBpZiB5b3UgaGF2ZSB3YWYgPj0gMS42LjIKKyQgLi93YWYgdXBkYXRlIC0tZmlsZXM9Ym9vc3QKKworV2hlbiB1c2luZyB0aGlzIHRvb2wsIHRoZSB3c2NyaXB0IHdpbGwgbG9vayBsaWtlOgorCisJZGVmIG9wdGlvbnMob3B0KToKKwkJb3B0LmxvYWQoJ2NvbXBpbGVyX2N4eCBib29zdCcpCisKKwlkZWYgY29uZmlndXJlKGNvbmYpOgorCQljb25mLmxvYWQoJ2NvbXBpbGVyX2N4eCBib29zdCcpCisJCWNvbmYuY2hlY2tfYm9vc3QobGliPSdzeXN0ZW0gZmlsZXN5c3RlbScpCisKKwlkZWYgYnVpbGQoYmxkKToKKwkJYmxkKHNvdXJjZT0nbWFpbi5jcHAnLCB0YXJnZXQ9J2FwcCcsIHVzZT0nQk9PU1QnKQorCitPcHRpb25zIGFyZSBnZW5lcmF0ZWQsIGluIG9yZGVyIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGJvb3N0IGluY2x1ZGVzL2xpYnJhcmllcy4KK1RoZSBgY2hlY2tfYm9vc3RgIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb24gYWxsb3dzIHRvIHNwZWNpZnkgdGhlIHVzZWQgYm9vc3QgbGlicmFyaWVzLgorSXQgY2FuIGFsc28gcHJvdmlkZSBkZWZhdWx0IGFyZ3VtZW50cyB0byB0aGUgLS1ib29zdC1zdGF0aWMgYW5kIC0tYm9vc3QtbXQgY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KK0V2ZXJ5dGhpbmcgd2lsbCBiZSBwYWNrYWdlZCB0b2dldGhlciBpbiBhIEJPT1NUIGNvbXBvbmVudCB0aGF0IHlvdSBjYW4gdXNlLgorCitXaGVuIHVzaW5nIE1TVkMsIGEgbG90IG9mIGNvbXBpbGF0aW9uIGZsYWdzIG5lZWQgdG8gbWF0Y2ggeW91ciBCT09TVCBidWlsZCBjb25maWd1cmF0aW9uOgorIC0geW91IG1heSBoYXZlIHRvIGFkZCAvRUhzYyB0byB5b3VyIENYWEZMQUdTIG9yIGRlZmluZSBib29zdDo6dGhyb3dfZXhjZXB0aW9uIGlmIEJPT1NUX05PX0VYQ0VQVElPTlMgaXMgZGVmaW5lZC4KKyAgIEVycm9yczogQzQ1MzAKKyAtIGJvb3N0IGxpYnJhcmllcyB3aWxsIHRyeSB0byBiZSBzbWFydCBhbmQgdXNlIHRoZSAocHJldHR5IGJ1dCBvZnRlbiBub3QgdXNlZnVsKSBhdXRvLWxpbmtpbmcgZmVhdHVyZSBvZiBNU1ZDCisgICBTbyBiZWZvcmUgY2FsbGluZyBgY29uZi5jaGVja19ib29zdGAgeW91IG1pZ2h0IHdhbnQgdG8gZGlzYWJsaW5nIGJ5IGFkZGluZzoKKyAgIAljb25mLmVudi5ERUZJTkVTX0JPT1NUICs9IFsnQk9PU1RfQUxMX05PX0xJQiddCisgICBFcnJvcnM6CisgLSBib29zdCBtaWdodCBhbHNvIGJlIGNvbXBpbGVkIHdpdGggL01ULCB3aGljaCBsaW5rcyB0aGUgcnVudGltZSBzdGF0aWNhbGx5LgorICAgSWYgeW91IGhhdmUgcHJvYmxlbXMgd2l0aCByZWRlZmluZWQgc3ltYm9scywKKwkJc2VsZi5lbnZbJ0RFRklORVNfJXMnICUgdmFyXSArPSBbJ0JPT1NUX0FMTF9OT19MSUInXQorCQlzZWxmLmVudlsnQ1hYRkxBR1NfJXMnICUgdmFyXSArPSBbJy9NRCcsICcvRUhzYyddCitQYXNzaW5nIGAtLWJvb3N0LWxpbmthZ2VfYXV0b2RldGVjdGAgbWlnaHQgaGVscCBlbnN1cmluZyBoYXZpbmcgYSBjb3JyZWN0IGxpbmthZ2UgaW4gc29tZSBiYXNpYyBjYXNlcy4KKworJycnCisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQorZnJvbSB3YWZsaWIgaW1wb3J0IFV0aWxzLCBMb2dzLCBFcnJvcnMKK2Zyb20gd2FmbGliLkNvbmZpZ3VyZSBpbXBvcnQgY29uZgorCitCT09TVF9MSUJTID0gWycvdXNyL2xpYicsICcvdXNyL2xvY2FsL2xpYicsICcvb3B0L2xvY2FsL2xpYicsICcvc3cvbGliJywgJy9saWInLCAnL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudScsICcvdXNyL2xpYi9pMzg2LWxpbnV4LWdudScsICcvdXNyL2xvY2FsL25kbi9saWInXQorQk9PU1RfSU5DTFVERVMgPSBbJy91c3IvaW5jbHVkZScsICcvdXNyL2xvY2FsL2luY2x1ZGUnLCAnL29wdC9sb2NhbC9pbmNsdWRlJywgJy9zdy9pbmNsdWRlJywgJy91c3IvbG9jYWwvbmRuL2luY2x1ZGUnXQorQk9PU1RfVkVSU0lPTl9GSUxFID0gJ2Jvb3N0L3ZlcnNpb24uaHBwJworQk9PU1RfVkVSU0lPTl9DT0RFID0gJycnCisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CitpbnQgbWFpbigpIHsgc3RkOjpjb3V0IDw8IEJPT1NUX0xJQl9WRVJTSU9OIDw8ICI6IiA8PCBCT09TVF9WRVJTSU9OIDw8IHN0ZDo6ZW5kbDsgfQorJycnCitCT09TVF9TWVNURU1fQ09ERSA9ICcnJworI2luY2x1ZGUgPGJvb3N0L3N5c3RlbS9lcnJvcl9jb2RlLmhwcD4KK2ludCBtYWluKCkgeyBib29zdDo6c3lzdGVtOjplcnJvcl9jb2RlIGM7IH0KKycnJworQk9PU1RfVEhSRUFEX0NPREUgPSAnJycKKyNpbmNsdWRlIDxib29zdC90aHJlYWQuaHBwPgoraW50IG1haW4oKSB7IGJvb3N0Ojp0aHJlYWQgdDsgfQorJycnCisKKyMgdG9vbHNldHMgZnJvbSB7Ym9vc3RfZGlyfS90b29scy9idWlsZC92Mi90b29scy9jb21tb24uamFtCitQTEFURk9STSA9IFV0aWxzLnVudmVyc2lvbmVkX3N5c19wbGF0Zm9ybSgpCitkZXRlY3RfaW50ZWwgPSBsYW1iZGEgZW52OiAoUExBVEZPUk0gPT0gJ3dpbjMyJykgYW5kICdpdycgb3IgJ2lsJworZGV0ZWN0X2NsYW5nID0gbGFtYmRhIGVudjogKFBMQVRGT1JNID09ICdkYXJ3aW4nKSBhbmQgJ2NsYW5nLWRhcndpbicgb3IgJ2NsYW5nJworZGV0ZWN0X21pbmd3ID0gbGFtYmRhIGVudjogKHJlLnNlYXJjaCgnTWluR1cnLCBlbnYuQ1hYWzBdKSkgYW5kICdtZ3cnIG9yICdnY2MnCitCT09TVF9UT09MU0VUUyA9IHsKKwknYm9ybGFuZCc6ICAnYmNiJywKKwknY2xhbmcnOglkZXRlY3RfY2xhbmcsCisJJ2NvbW8nOgkgJ2NvbW8nLAorCSdjdyc6CSAgICdjdycsCisJJ2Rhcndpbic6ICAgJ3hnY2MnLAorCSdlZGcnOgkgICdlZGcnLAorCSdnKysnOgkgIGRldGVjdF9taW5ndywKKwknZ2NjJzoJICBkZXRlY3RfbWluZ3csCisJJ2ljcGMnOgkgZGV0ZWN0X2ludGVsLAorCSdpbnRlbCc6CWRldGVjdF9pbnRlbCwKKwkna2NjJzoJICAna2NjJywKKwkna3lsaXgnOgknYmNrJywKKwknbWlwc3Bybyc6ICAnbXAnLAorCSdtaW5ndyc6CSdtZ3cnLAorCSdtc3ZjJzoJICd2YycsCisJJ3FjYyc6CSAgJ3FjYycsCisJJ3N1bic6CSAgJ3N3JywKKwknc3VuYysrJzogICAnc3cnLAorCSd0cnU2NGN4eCc6ICd0cnUnLAorCSd2YWNwcCc6CSd4bGMnCit9CisKKworZGVmIG9wdGlvbnMob3B0KToKKwlvcHQgPSBvcHQuYWRkX29wdGlvbl9ncm91cCgnQm9vc3QgT3B0aW9ucycpCisKKwlvcHQuYWRkX29wdGlvbignLS1ib29zdC1pbmNsdWRlcycsIHR5cGU9J3N0cmluZycsCisJCQkJICAgZGVmYXVsdD0nJywgZGVzdD0nYm9vc3RfaW5jbHVkZXMnLAorCQkJCSAgIGhlbHA9JycncGF0aCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBib29zdCBpbmNsdWRlcyBhcmUsIGUuZy4sIC9wYXRoL3RvL2Jvb3N0XzFfNTVfMC9zdGFnZS9pbmNsdWRlJycnKQorCW9wdC5hZGRfb3B0aW9uKCctLWJvb3N0LWxpYnMnLCB0eXBlPSdzdHJpbmcnLAorCQkJCSAgIGRlZmF1bHQ9JycsIGRlc3Q9J2Jvb3N0X2xpYnMnLAorCQkJCSAgIGhlbHA9JycncGF0aCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBib29zdCBsaWJzIGFyZSwgZS5nLiwgL3BhdGgvdG8vYm9vc3RfMV81NV8wL3N0YWdlL2xpYicnJykKKwlvcHQuYWRkX29wdGlvbignLS1ib29zdC1zdGF0aWMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorCQkJCSAgIGRlZmF1bHQ9RmFsc2UsIGRlc3Q9J2Jvb3N0X3N0YXRpYycsCisJCQkJICAgaGVscD0nbGluayB3aXRoIHN0YXRpYyBib29zdCBsaWJyYXJpZXMgKC5saWIvLmEpJykKKwlvcHQuYWRkX29wdGlvbignLS1ib29zdC1tdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisJCQkJICAgZGVmYXVsdD1GYWxzZSwgZGVzdD0nYm9vc3RfbXQnLAorCQkJCSAgIGhlbHA9J3NlbGVjdCBtdWx0aS10aHJlYWRlZCBsaWJyYXJpZXMnKQorCW9wdC5hZGRfb3B0aW9uKCctLWJvb3N0LWFiaScsIHR5cGU9J3N0cmluZycsIGRlZmF1bHQ9JycsIGRlc3Q9J2Jvb3N0X2FiaScsCisJCQkJICAgaGVscD0nJydzZWxlY3QgbGlicmFyaWVzIHdpdGggdGFncyAoZGdzeXAsIGQgZm9yIGRlYnVnKSwgc2VlIGRvYyBCb29zdCwgR2V0dGluZyBTdGFydGVkLCBjaGFwdGVyIDYuMScnJykKKwlvcHQuYWRkX29wdGlvbignLS1ib29zdC1saW5rYWdlX2F1dG9kZXRlY3QnLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSdib29zdF9saW5rYWdlX2F1dG9kZXRlY3QnLAorCQkJCSAgIGhlbHA9ImF1dG8tZGV0ZWN0IGJvb3N0IGxpbmthZ2Ugb3B0aW9ucyAoZG9uJ3QgZ2V0IHVzZWQgdG8gaXQgLyBtaWdodCBicmVhayBvdGhlciBzdHVmZikiKQorCW9wdC5hZGRfb3B0aW9uKCctLWJvb3N0LXRvb2xzZXQnLCB0eXBlPSdzdHJpbmcnLAorCQkJCSAgIGRlZmF1bHQ9JycsIGRlc3Q9J2Jvb3N0X3Rvb2xzZXQnLAorCQkJCSAgIGhlbHA9J2ZvcmNlIGEgdG9vbHNldCBlLmcuIG1zdmMsIHZjOTAsIGdjYywgbWluZ3csIG1ndzQ1IChkZWZhdWx0OiBhdXRvKScpCisJcHlfdmVyc2lvbiA9ICclZCVkJyAlIChzeXMudmVyc2lvbl9pbmZvWzBdLCBzeXMudmVyc2lvbl9pbmZvWzFdKQorCW9wdC5hZGRfb3B0aW9uKCctLWJvb3N0LXB5dGhvbicsIHR5cGU9J3N0cmluZycsCisJCQkJICAgZGVmYXVsdD1weV92ZXJzaW9uLCBkZXN0PSdib29zdF9weXRob24nLAorCQkJCSAgIGhlbHA9J3NlbGVjdCB0aGUgbGliIHB5dGhvbiB3aXRoIHRoaXMgdmVyc2lvbiAoZGVmYXVsdDogJXMpJyAlIHB5X3ZlcnNpb24pCisKKworQGNvbmYKK2RlZiBfX2Jvb3N0X2dldF92ZXJzaW9uX2ZpbGUoc2VsZiwgZCk6CisJZG5vZGUgPSBzZWxmLnJvb3QuZmluZF9kaXIoZCkKKwlpZiBkbm9kZToKKwkJcmV0dXJuIGRub2RlLmZpbmRfbm9kZShCT09TVF9WRVJTSU9OX0ZJTEUpCisJcmV0dXJuIE5vbmUKKworQGNvbmYKK2RlZiBib29zdF9nZXRfdmVyc2lvbihzZWxmLCBkKToKKwkiIiJzaWxlbnRseSByZXRyaWV2ZSB0aGUgYm9vc3QgdmVyc2lvbiBudW1iZXIiIiIKKwlub2RlID0gc2VsZi5fX2Jvb3N0X2dldF92ZXJzaW9uX2ZpbGUoZCkKKwlpZiBub2RlOgorCQl0cnk6CisJCQl0eHQgPSBub2RlLnJlYWQoKQorCQlleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorCQkJTG9ncy5lcnJvcigiQ291bGQgbm90IHJlYWQgdGhlIGZpbGUgJXIiICUgbm9kZS5hYnNwYXRoKCkpCisJCWVsc2U6CisJCQlyZV9idXQxID0gcmUuY29tcGlsZSgnXiNkZWZpbmVcXHMrQk9PU1RfTElCX1ZFUlNJT05cXHMrIiguKykiJywgcmUuTSkKKwkJCW0xID0gcmVfYnV0MS5zZWFyY2godHh0KQorCisJCQlyZV9idXQyID0gcmUuY29tcGlsZSgnXiNkZWZpbmVcXHMrQk9PU1RfVkVSU0lPTlxccysoXFxkKyknLCByZS5NKQorCQkJbTIgPSByZV9idXQyLnNlYXJjaCh0eHQpCisKKwkJCWlmIG0xIGFuZCBtMjoKKwkJCQlyZXR1cm4gKG0xLmdyb3VwKDEpLCBtMi5ncm91cCgxKSkKKworCXJldHVybiBzZWxmLmNoZWNrX2N4eChmcmFnbWVudD1CT09TVF9WRVJTSU9OX0NPREUsIGluY2x1ZGVzPVtkXSwgZXhlY3V0ZT1UcnVlLCBkZWZpbmVfcmV0PVRydWUpLnNwbGl0KCI6IikKKworQGNvbmYKK2RlZiBib29zdF9nZXRfaW5jbHVkZXMoc2VsZiwgKmssICoqa3cpOgorCWluY2x1ZGVzID0gayBhbmQga1swXSBvciBrdy5nZXQoJ2luY2x1ZGVzJywgTm9uZSkKKwlpZiBpbmNsdWRlcyBhbmQgc2VsZi5fX2Jvb3N0X2dldF92ZXJzaW9uX2ZpbGUoaW5jbHVkZXMpOgorCQlyZXR1cm4gaW5jbHVkZXMKKwlmb3IgZCBpbiBVdGlscy50b19saXN0KHNlbGYuZW52aXJvbi5nZXQoJ0lOQ0xVREUnLCAnJykpICsgQk9PU1RfSU5DTFVERVM6CisJCWlmIHNlbGYuX19ib29zdF9nZXRfdmVyc2lvbl9maWxlKGQpOgorCQkJcmV0dXJuIGQKKwlpZiBpbmNsdWRlczoKKwkJc2VsZi5lbmRfbXNnKCdoZWFkZXJzIG5vdCBmb3VuZCBpbiAlcycgJSBpbmNsdWRlcykKKwkJc2VsZi5mYXRhbCgnVGhlIGNvbmZpZ3VyYXRpb24gZmFpbGVkJykKKwllbHNlOgorCQlzZWxmLmVuZF9tc2coJ2hlYWRlcnMgbm90IGZvdW5kLCBwbGVhc2UgcHJvdmlkZSBhIC0tYm9vc3QtaW5jbHVkZXMgYXJndW1lbnQgKHNlZSBoZWxwKScpCisJCXNlbGYuZmF0YWwoJ1RoZSBjb25maWd1cmF0aW9uIGZhaWxlZCcpCisKKworQGNvbmYKK2RlZiBib29zdF9nZXRfdG9vbHNldChzZWxmLCBjYyk6CisJdG9vbHNldCA9IGNjCisJaWYgbm90IGNjOgorCQlidWlsZF9wbGF0Zm9ybSA9IFV0aWxzLnVudmVyc2lvbmVkX3N5c19wbGF0Zm9ybSgpCisJCWlmIGJ1aWxkX3BsYXRmb3JtIGluIEJPT1NUX1RPT0xTRVRTOgorCQkJY2MgPSBidWlsZF9wbGF0Zm9ybQorCQllbHNlOgorCQkJY2MgPSBzZWxmLmVudi5DWFhfTkFNRQorCWlmIGNjIGluIEJPT1NUX1RPT0xTRVRTOgorCQl0b29sc2V0ID0gQk9PU1RfVE9PTFNFVFNbY2NdCisJcmV0dXJuIGlzaW5zdGFuY2UodG9vbHNldCwgc3RyKSBhbmQgdG9vbHNldCBvciB0b29sc2V0KHNlbGYuZW52KQorCisKK0Bjb25mCitkZWYgX19ib29zdF9nZXRfbGlic19wYXRoKHNlbGYsICprLCAqKmt3KToKKwknJycgcmV0dXJuIHRoZSBsaWIgcGF0aCBhbmQgYWxsIHRoZSBmaWxlcyBpbiBpdCAnJycKKwlpZiAnZmlsZXMnIGluIGt3OgorCQlyZXR1cm4gc2VsZi5yb290LmZpbmRfZGlyKCcuJyksIFV0aWxzLnRvX2xpc3Qoa3dbJ2ZpbGVzJ10pCisJbGlicyA9IGsgYW5kIGtbMF0gb3Iga3cuZ2V0KCdsaWJzJywgTm9uZSkKKwlpZiBsaWJzOgorCQlwYXRoID0gc2VsZi5yb290LmZpbmRfZGlyKGxpYnMpCisJCWZpbGVzID0gcGF0aC5hbnRfZ2xvYignKmJvb3N0XyonKQorCWlmIG5vdCBsaWJzIG9yIG5vdCBmaWxlczoKKwkJZm9yIGQgaW4gVXRpbHMudG9fbGlzdChzZWxmLmVudmlyb24uZ2V0KCdMSUInLCBbXSkpICsgQk9PU1RfTElCUzoKKwkJCXBhdGggPSBzZWxmLnJvb3QuZmluZF9kaXIoZCkKKwkJCWlmIHBhdGg6CisJCQkJZmlsZXMgPSBwYXRoLmFudF9nbG9iKCcqYm9vc3RfKicpCisJCQkJaWYgZmlsZXM6CisJCQkJCWJyZWFrCisJCQlwYXRoID0gc2VsZi5yb290LmZpbmRfZGlyKGQgKyAnNjQnKQorCQkJaWYgcGF0aDoKKwkJCQlmaWxlcyA9IHBhdGguYW50X2dsb2IoJypib29zdF8qJykKKwkJCQlpZiBmaWxlczoKKwkJCQkJYnJlYWsKKwlpZiBub3QgcGF0aDoKKwkJaWYgbGliczoKKwkJCXNlbGYuZW5kX21zZygnbGlicyBub3QgZm91bmQgaW4gJXMnICUgbGlicykKKwkJCXNlbGYuZmF0YWwoJ1RoZSBjb25maWd1cmF0aW9uIGZhaWxlZCcpCisJCWVsc2U6CisJCQlzZWxmLmVuZF9tc2coJ2xpYnMgbm90IGZvdW5kLCBwbGVhc2UgcHJvdmlkZSBhIC0tYm9vc3QtbGlicyBhcmd1bWVudCAoc2VlIGhlbHApJykKKwkJCXNlbGYuZmF0YWwoJ1RoZSBjb25maWd1cmF0aW9uIGZhaWxlZCcpCisKKwlzZWxmLnRvX2xvZygnRm91bmQgdGhlIGJvb3N0IHBhdGggaW4gJXIgd2l0aCB0aGUgbGlicmFyaWVzOicgJSBwYXRoKQorCWZvciB4IGluIGZpbGVzOgorCQlzZWxmLnRvX2xvZygnICAgICVyJyAlIHgpCisJcmV0dXJuIHBhdGgsIGZpbGVzCisKK0Bjb25mCitkZWYgYm9vc3RfZ2V0X2xpYnMoc2VsZiwgKmssICoqa3cpOgorCScnJworCXJldHVybiB0aGUgbGliIHBhdGggYW5kIHRoZSByZXF1aXJlZCBsaWJzCisJYWNjb3JkaW5nIHRvIHRoZSBwYXJhbWV0ZXJzCisJJycnCisJcGF0aCwgZmlsZXMgPSBzZWxmLl9fYm9vc3RfZ2V0X2xpYnNfcGF0aCgqKmt3KQorCXQgPSBbXQorCWlmIGt3LmdldCgnbXQnLCBGYWxzZSk6CisJCXQuYXBwZW5kKCdtdCcpCisJaWYga3cuZ2V0KCdhYmknLCBOb25lKToKKwkJdC5hcHBlbmQoa3dbJ2FiaSddKQorCXRhZ3MgPSB0IGFuZCAnKC0lcykrJyAlICctJy5qb2luKHQpIG9yICcnCisJdG9vbHNldCA9IHNlbGYuYm9vc3RfZ2V0X3Rvb2xzZXQoa3cuZ2V0KCd0b29sc2V0JywgJycpKQorCXRvb2xzZXRfcGF0ID0gJygtJXNbMC05XXswLDN9KSsnICUgdG9vbHNldAorCXZlcnNpb24gPSAnKC0lcykrJyAlIHNlbGYuZW52LkJPT1NUX1ZFUlNJT04KKworCWRlZiBmaW5kX2xpYihyZV9saWIsIGZpbGVzKToKKwkJZm9yIGZpbGUgaW4gZmlsZXM6CisJCQlpZiByZV9saWIuc2VhcmNoKGZpbGUubmFtZSk6CisJCQkJc2VsZi50b19sb2coJ0ZvdW5kIGJvb3N0IGxpYiAlcycgJSBmaWxlKQorCQkJCXJldHVybiBmaWxlCisJCXJldHVybiBOb25lCisKKwlkZWYgZm9ybWF0X2xpYl9uYW1lKG5hbWUpOgorCQlpZiBuYW1lLnN0YXJ0c3dpdGgoJ2xpYicpIGFuZCBzZWxmLmVudi5DQ19OQU1FICE9ICdtc3ZjJzoKKwkJCW5hbWUgPSBuYW1lWzM6XQorCQlyZXR1cm4gbmFtZVs6bmFtZS5yZmluZCgnLicpXQorCisJbGlicyA9IFtdCisJZm9yIGxpYiBpbiBVdGlscy50b19saXN0KGsgYW5kIGtbMF0gb3Iga3cuZ2V0KCdsaWInLCBOb25lKSk6CisJCXB5ID0gKGxpYiA9PSAncHl0aG9uJykgYW5kICcoLXB5JXMpKycgJSBrd1sncHl0aG9uJ10gb3IgJycKKwkJIyBUcnlpbmcgbGlicmFyaWVzLCBmcm9tIG1vc3Qgc3RyaWN0IG1hdGNoIHRvIGxlYXN0IG9uZQorCQlmb3IgcGF0dGVybiBpbiBbJ2Jvb3N0XyVzJXMlcyVzJXMnICUgKGxpYiwgdG9vbHNldF9wYXQsIHRhZ3MsIHB5LCB2ZXJzaW9uKSwKKwkJCQkJCSdib29zdF8lcyVzJXMlcycgJSAobGliLCB0YWdzLCBweSwgdmVyc2lvbiksCisJCQkJCQknYm9vc3RfJXMlcyVzJyAlIChsaWIsIHRhZ3MsIHZlcnNpb24pLAorCQkJCQkJIyBHaXZlIHVwIHRyeWluZyB0byBmaW5kIHRoZSByaWdodCB2ZXJzaW9uCisJCQkJCQknYm9vc3RfJXMlcyVzJXMnICUgKGxpYiwgdG9vbHNldF9wYXQsIHRhZ3MsIHB5KSwKKwkJCQkJCSdib29zdF8lcyVzJXMnICUgKGxpYiwgdGFncywgcHkpLAorCQkJCQkJJ2Jvb3N0XyVzJXMnICUgKGxpYiwgdGFncyldOgorCQkJc2VsZi50b19sb2coJ1RyeWluZyBwYXR0ZXJuICVzJyAlIHBhdHRlcm4pCisJCQlmaWxlID0gZmluZF9saWIocmUuY29tcGlsZShwYXR0ZXJuKSwgZmlsZXMpCisJCQlpZiBmaWxlOgorCQkJCWxpYnMuYXBwZW5kKGZvcm1hdF9saWJfbmFtZShmaWxlLm5hbWUpKQorCQkJCWJyZWFrCisJCWVsc2U6CisJCQlzZWxmLmVuZF9tc2coJ2xpYiAlcyBub3QgZm91bmQgaW4gJXMnICUgKGxpYiwgcGF0aC5hYnNwYXRoKCkpKQorCQkJc2VsZi5mYXRhbCgnVGhlIGNvbmZpZ3VyYXRpb24gZmFpbGVkJykKKworCXJldHVybiBwYXRoLmFic3BhdGgoKSwgbGlicworCisKK0Bjb25mCitkZWYgY2hlY2tfYm9vc3Qoc2VsZiwgKmssICoqa3cpOgorCSIiIgorCUluaXRpYWxpemUgYm9vc3QgbGlicmFyaWVzIHRvIGJlIHVzZWQuCisKKwlLZXl3b3JkczogeW91IGNhbiBwYXNzIHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgd2l0aCB0aGUgY29tbWFuZCBsaW5lICh3aXRob3V0ICItLWJvb3N0LSIpLgorCU5vdGUgdGhhdCB0aGUgY29tbWFuZCBsaW5lIGhhcyB0aGUgcHJpb3JpdHksIGFuZCBzaG91bGQgcHJlZmVyYWJseSBiZSB1c2VkLgorCSIiIgorCWlmIG5vdCBzZWxmLmVudlsnQ1hYJ106CisJCXNlbGYuZmF0YWwoJ2xvYWQgYSBjKysgY29tcGlsZXIgZmlyc3QsIGNvbmYubG9hZCgiY29tcGlsZXJfY3h4IiknKQorCisJcGFyYW1zID0geydsaWInOiBrIGFuZCBrWzBdIG9yIGt3LmdldCgnbGliJywgTm9uZSl9CisJZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5vcHRpb25zLl9fZGljdF9fLml0ZW1zKCk6CisJCWlmIG5vdCBrZXkuc3RhcnRzd2l0aCgnYm9vc3RfJyk6CisJCQljb250aW51ZQorCQlrZXkgPSBrZXlbbGVuKCdib29zdF8nKTpdCisJCXBhcmFtc1trZXldID0gdmFsdWUgYW5kIHZhbHVlIG9yIGt3LmdldChrZXksICcnKQorCisJdmFyID0ga3cuZ2V0KCd1c2VsaWJfc3RvcmUnLCAnQk9PU1QnKQorCisJc2VsZi5zdGFydF9tc2coJ0NoZWNraW5nIGJvb3N0IGluY2x1ZGVzJykKKwlzZWxmLmVudlsnSU5DTFVERVNfJXMnICUgdmFyXSA9IGluYyA9IHNlbGYuYm9vc3RfZ2V0X2luY2x1ZGVzKCoqcGFyYW1zKQorCXZlcnNpb25zID0gc2VsZi5ib29zdF9nZXRfdmVyc2lvbihpbmMpCisJc2VsZi5lbnYuQk9PU1RfVkVSU0lPTiA9IHZlcnNpb25zWzBdCisJc2VsZi5lbnYuQk9PU1RfVkVSU0lPTl9OVU1CRVIgPSBpbnQodmVyc2lvbnNbMV0pCisJc2VsZi5lbmRfbXNnKCIlZC4lZC4lZCIgJSAoaW50KHZlcnNpb25zWzFdKSAvIDEwMDAwMCwKKwkJCQkgICBpbnQodmVyc2lvbnNbMV0pIC8gMTAwICUgMTAwMCwKKwkJCQkgICBpbnQodmVyc2lvbnNbMV0pICUgMTAwKSkKKwlpZiBMb2dzLnZlcmJvc2U6CisJCUxvZ3MucHByaW50KCdDWUFOJywgJwlwYXRoIDogJXMnICUgc2VsZi5lbnZbJ0lOQ0xVREVTXyVzJyAlIHZhcl0pCisKKwlpZiBub3QgcGFyYW1zWydsaWInXToKKwkJcmV0dXJuCisJc2VsZi5zdGFydF9tc2coJ0NoZWNraW5nIGJvb3N0IGxpYnMnKQorCXN1ZmZpeCA9IHBhcmFtcy5nZXQoJ3N0YXRpYycsIE5vbmUpIGFuZCAnU1QnIG9yICcnCisJcGF0aCwgbGlicyA9IHNlbGYuYm9vc3RfZ2V0X2xpYnMoKipwYXJhbXMpCisJc2VsZi5lbnZbJyVzTElCUEFUSF8lcycgJSAoc3VmZml4LCB2YXIpXSA9IFtwYXRoXQorCXNlbGYuZW52Wyclc0xJQl8lcycgJSAoc3VmZml4LCB2YXIpXSA9IGxpYnMKKwlzZWxmLmVuZF9tc2coJ29rJykKKwlpZiBMb2dzLnZlcmJvc2U6CisJCUxvZ3MucHByaW50KCdDWUFOJywgJwlwYXRoIDogJXMnICUgcGF0aCkKKwkJTG9ncy5wcHJpbnQoJ0NZQU4nLCAnCWxpYnMgOiAlcycgJSBsaWJzKQorCisKKwlkZWYgdHJ5X2xpbmsoKToKKwkJaWYgJ3N5c3RlbScgaW4gcGFyYW1zWydsaWInXToKKwkJCXNlbGYuY2hlY2tfY3h4KAorCQkJIGZyYWdtZW50PUJPT1NUX1NZU1RFTV9DT0RFLAorCQkJIHVzZT12YXIsCisJCQkgZXhlY3V0ZT1GYWxzZSwKKwkJCSkKKwkJaWYgJ3RocmVhZCcgaW4gcGFyYW1zWydsaWInXToKKwkJCXNlbGYuY2hlY2tfY3h4KAorCQkJIGZyYWdtZW50PUJPT1NUX1RIUkVBRF9DT0RFLAorCQkJIHVzZT12YXIsCisJCQkgZXhlY3V0ZT1GYWxzZSwKKwkJCSkKKworCWlmIHBhcmFtcy5nZXQoJ2xpbmthZ2VfYXV0b2RldGVjdCcsIEZhbHNlKToKKwkJc2VsZi5zdGFydF9tc2coIkF0dGVtcHRpbmcgdG8gZGV0ZWN0IGJvb3N0IGxpbmthZ2UgZmxhZ3MiKQorCQl0b29sc2V0ID0gc2VsZi5ib29zdF9nZXRfdG9vbHNldChrdy5nZXQoJ3Rvb2xzZXQnLCAnJykpCisJCWlmIHRvb2xzZXQgaW4gWyd2YyddOgorCQkJIyBkaXNhYmxlIGF1dG8tbGlua2luZyBmZWF0dXJlLCBjYXVzaW5nIGVycm9yIExOSzExODEKKwkJCSMgYmVjYXVzZSB0aGUgY29kZSB3YW50cyB0byBiZSBsaW5rZWQgYWdhaW5zdAorCQkJc2VsZi5lbnZbJ0RFRklORVNfJXMnICUgdmFyXSArPSBbJ0JPT1NUX0FMTF9OT19MSUInXQorCisJCQkjIGlmIG5vIGRsbHMgYXJlIHByZXNlbnQsIHdlIGd1ZXNzIHRoZSAubGliIGZpbGVzIGFyZSBub3Qgc3R1YnMKKwkJCWhhc19kbGxzID0gRmFsc2UKKwkJCWZvciB4IGluIFV0aWxzLmxpc3RkaXIocGF0aCk6CisJCQkJaWYgeC5lbmRzd2l0aChzZWxmLmVudi5jeHhzaGxpYl9QQVRURVJOICUgJycpOgorCQkJCQloYXNfZGxscyA9IFRydWUKKwkJCQkJYnJlYWsKKwkJCWlmIG5vdCBoYXNfZGxsczoKKwkJCQlzZWxmLmVudlsnU1RMSUJQQVRIXyVzJyAlIHZhcl0gPSBbcGF0aF0KKwkJCQlzZWxmLmVudlsnU1RMSUJfJXMnICUgdmFyXSA9IGxpYnMKKwkJCQlkZWwgc2VsZi5lbnZbJ0xJQl8lcycgJSB2YXJdCisJCQkJZGVsIHNlbGYuZW52WydMSUJQQVRIXyVzJyAlIHZhcl0KKworCQkJIyB3ZSBhdHRlbXB0IHRvIHBsYXkgd2l0aCBzb21lIGtub3duLXRvLXdvcmsgQ1hYRkxBR1MgY29tYmluYXRpb25zCisJCQlmb3IgY3h4ZmxhZ3MgaW4gKFsnL01EJywgJy9FSHNjJ10sIFtdKToKKwkJCQlzZWxmLmVudi5zdGFzaCgpCisJCQkJc2VsZi5lbnZbIkNYWEZMQUdTXyVzIiAlIHZhcl0gKz0gY3h4ZmxhZ3MKKwkJCQl0cnk6CisJCQkJCXRyeV9saW5rKCkKKwkJCQkJc2VsZi5lbmRfbXNnKCJvazogd2lubmluZyBjeHhmbGFncyBjb21iaW5hdGlvbjogJXMiICUgKHNlbGYuZW52WyJDWFhGTEFHU18lcyIgJSB2YXJdKSkKKwkJCQkJZSA9IE5vbmUKKwkJCQkJYnJlYWsKKwkJCQlleGNlcHQgRXJyb3JzLkNvbmZpZ3VyYXRpb25FcnJvciBhcyBleGM6CisJCQkJCXNlbGYuZW52LnJldmVydCgpCisJCQkJCWUgPSBleGMKKworCQkJaWYgZSBpcyBub3QgTm9uZToKKwkJCQlzZWxmLmVuZF9tc2coIkNvdWxkIG5vdCBhdXRvLWRldGVjdCBib29zdCBsaW5raW5nIGZsYWdzIGNvbWJpbmF0aW9uLCB5b3UgbWF5IHJlcG9ydCBpdCB0byBib29zdC5weSBhdXRob3IiLCBleD1lKQorCQkJCXNlbGYuZmF0YWwoJ1RoZSBjb25maWd1cmF0aW9uIGZhaWxlZCcpCisJCWVsc2U6CisJCQlzZWxmLmVuZF9tc2coIkJvb3N0IGxpbmthZ2UgZmxhZ3MgYXV0by1kZXRlY3Rpb24gbm90IGltcGxlbWVudGVkIChuZWVkZWQgPykgZm9yIHRoaXMgdG9vbGNoYWluIikKKwkJCXNlbGYuZmF0YWwoJ1RoZSBjb25maWd1cmF0aW9uIGZhaWxlZCcpCisJZWxzZToKKwkJc2VsZi5zdGFydF9tc2coJ0NoZWNraW5nIGZvciBib29zdCBsaW5rYWdlJykKKwkJdHJ5OgorCQkJdHJ5X2xpbmsoKQorCQlleGNlcHQgRXJyb3JzLkNvbmZpZ3VyYXRpb25FcnJvciBhcyBlOgorCQkJc2VsZi5lbmRfbXNnKCJDb3VsZCBub3QgbGluayBhZ2FpbnN0IGJvb3N0IGxpYnJhcmllcyB1c2luZyBzdXBwbGllZCBvcHRpb25zIikKKwkJCXNlbGYuZmF0YWwoJ1RoZSBjb25maWd1cmF0aW9uIGZhaWxlZCcpCisJCXNlbGYuZW5kX21zZygnb2snKQpkaWZmIC0tZ2l0IGEvLndhZi10b29scy9jb21waWxlci1mZWF0dXJlcy5weSBiLy53YWYtdG9vbHMvY29tcGlsZXItZmVhdHVyZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM0NDkzOQotLS0gL2Rldi9udWxsCisrKyBiLy53YWYtdG9vbHMvY29tcGlsZXItZmVhdHVyZXMucHkKQEAgLTAsMCArMSwyNyBAQAorIyAtKi0gTW9kZTogcHl0aG9uOyBweS1pbmRlbnQtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IGNvZGluZzogdXRmLTg7IC0qLQorCitmcm9tIHdhZmxpYi5Db25maWd1cmUgaW1wb3J0IGNvbmYKKworT1ZFUlJJREUgPSAnJycKK2NsYXNzIEJhc2UKK3sKKyAgdmlydHVhbCB2b2lkCisgIGYoaW50IGEpOworfTsKKworY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlCit7CisgIHZpcnR1YWwgdm9pZAorICBmKGludCBhKSBvdmVycmlkZTsKK307CisnJycKKworQGNvbmYKK2RlZiBjaGVja19vdmVycmlkZShzZWxmKToKKyAgICBpZiBzZWxmLmNoZWNrX2N4eChtc2c9J0NoZWNraW5nIGZvciBvdmVycmlkZSBzcGVjaWZpZXInLAorICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50PU9WRVJSSURFLAorICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVzPSdjeHgnLCBtYW5kYXRvcnk9RmFsc2UpOgorICAgICAgICBzZWxmLmRlZmluZSgnSEFWRV9DWFhfT1ZFUlJJREUnLCAxKQorCitkZWYgY29uZmlndXJlKGNvbmYpOgorICAgIGNvbmYuY2hlY2tfb3ZlcnJpZGUoKQpkaWZmIC0tZ2l0IGEvLndhZi10b29scy9kZWZhdWx0LWNvbXBpbGVyLWZsYWdzLnB5IGIvLndhZi10b29scy9kZWZhdWx0LWNvbXBpbGVyLWZsYWdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ZDBkOGEKLS0tIC9kZXYvbnVsbAorKysgYi8ud2FmLXRvb2xzL2RlZmF1bHQtY29tcGlsZXItZmxhZ3MucHkKQEAgLTAsMCArMSwxNTEgQEAKKyMgLSotIE1vZGU6IHB5dGhvbjsgcHktaW5kZW50LW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjb2Rpbmc6IHV0Zi04OyAtKi0KKworZnJvbSB3YWZsaWIgaW1wb3J0IExvZ3MsIENvbmZpZ3VyZSwgVXRpbHMKKworZGVmIG9wdGlvbnMob3B0KToKKyAgICBvcHQuYWRkX29wdGlvbignLS1kZWJ1ZycsICctLXdpdGgtZGVidWcnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLCBkZXN0PSdkZWJ1ZycsCisgICAgICAgICAgICAgICAgICAgaGVscD0nJydDb21waWxlIGluIGRlYnVnZ2luZyBtb2RlIHdpdGhvdXQgb3B0aW1pemF0aW9ucyAoLU8wIG9yIC1PZyknJycpCisKK2RlZiBjb25maWd1cmUoY29uZik6CisgICAgY3h4ID0gY29uZi5lbnZbJ0NYWF9OQU1FJ10gIyBDWFhfTkFNRSByZXByZXNlbnRzIGdlbmVyaWMgbmFtZSBvZiB0aGUgY29tcGlsZXIKKyAgICBpZiBjeHggPT0gJ2djYyc6CisgICAgICAgIGZsYWdzID0gR2NjRmxhZ3MoKQorICAgIGVsaWYgY3h4ID09ICdjbGFuZyc6CisgICAgICAgIGZsYWdzID0gQ2xhbmdGbGFncygpCisgICAgZWxzZToKKyAgICAgICAgZmxhZ3MgPSBDb21waWxlckZsYWdzKCkKKyAgICAgICAgTG9ncy53YXJuKCdUaGUgY29kZSBoYXMgbm90IGJlZW4geWV0IHRlc3RlZCB3aXRoICVzIGNvbXBpbGVyJyAlIGN4eCkKKworICAgIGFyZUN1c3RvbUN4eGZsYWdzUHJlc2VudCA9IChsZW4oY29uZi5lbnYuQ1hYRkxBR1MpID4gMCkKKworICAgICMgR2VuZXJhbCBmbGFncyB3aWxsIGFsd2F5IGJlIGFwcGxpZWQgKGUuZy4sIHNlbGVjdGluZyBDKysxMSBtb2RlKQorICAgIGdlbmVyYWxGbGFncyA9IGZsYWdzLmdldEdlbmVyYWxGbGFncyhjb25mKQorICAgIGNvbmYuYWRkX3N1cHBvcnRlZF9jeHhmbGFncyhnZW5lcmFsRmxhZ3NbJ0NYWEZMQUdTJ10pCisgICAgY29uZi5hZGRfc3VwcG9ydGVkX2xpbmtmbGFncyhnZW5lcmFsRmxhZ3NbJ0xJTktGTEFHUyddKQorICAgIGNvbmYuZW52LkRFRklORVMgKz0gZ2VuZXJhbEZsYWdzWydERUZJTkVTJ10KKworICAgICMgRGVidWcgb3Igb3B0aW1pemF0aW9uIENYWEZMQUdTIGFuZCBMSU5LRkxBR1MgIHdpbGwgYmUgYXBwbGllZCBvbmx5IGlmIHRoZQorICAgICMgY29ycmVzcG9uZGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG5vdCBzZXQuCisgICAgIyBERUZJTkVTIHdpbGwgYmUgYWx3YXlzIGFwcGxpZWQKKyAgICBpZiBjb25mLm9wdGlvbnMuZGVidWc6CisgICAgICAgIGV4dHJhRmxhZ3MgPSBmbGFncy5nZXREZWJ1Z0ZsYWdzKGNvbmYpCisKKyAgICAgICAgaWYgYXJlQ3VzdG9tQ3h4ZmxhZ3NQcmVzZW50OgorICAgICAgICAgICAgbWlzc2luZ0ZsYWdzID0gW3ggZm9yIHggaW4gZXh0cmFGbGFnc1snQ1hYRkxBR1MnXSBpZiB4IG5vdCBpbiBjb25mLmVudi5DWFhGTEFHU10KKyAgICAgICAgICAgIGlmIGxlbihtaXNzaW5nRmxhZ3MpID4gMDoKKyAgICAgICAgICAgICAgICBMb2dzLndhcm4oIlNlbGVjdGVkIGRlYnVnIG1vZGUsIGJ1dCBDWFhGTEFHUyBpcyBzZXQgdG8gYSBjdXN0b20gdmFsdWUgJyVzJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJSAiICIuam9pbihjb25mLmVudi5DWFhGTEFHUykpCisgICAgICAgICAgICAgICAgTG9ncy53YXJuKCJEZWZhdWx0IGZsYWdzICclcycgYXJlIG5vdCBhY3RpdmF0ZWQiICUgIiAiLmpvaW4obWlzc2luZ0ZsYWdzKSkKKyAgICBlbHNlOgorICAgICAgICBleHRyYUZsYWdzID0gZmxhZ3MuZ2V0T3B0aW1pemVkRmxhZ3MoY29uZikKKworICAgIGlmIG5vdCBhcmVDdXN0b21DeHhmbGFnc1ByZXNlbnQ6CisgICAgICAgIGNvbmYuYWRkX3N1cHBvcnRlZF9jeHhmbGFncyhleHRyYUZsYWdzWydDWFhGTEFHUyddKQorICAgICAgICBjb25mLmFkZF9zdXBwb3J0ZWRfY3h4ZmxhZ3MoZXh0cmFGbGFnc1snTElOS0ZMQUdTJ10pCisKKyAgICBjb25mLmVudi5ERUZJTkVTICs9IGV4dHJhRmxhZ3NbJ0RFRklORVMnXQorCitAQ29uZmlndXJlLmNvbmYKK2RlZiBhZGRfc3VwcG9ydGVkX2N4eGZsYWdzKHNlbGYsIGN4eGZsYWdzKToKKyAgICAiIiIKKyAgICBDaGVjayB3aGljaCBjeHhmbGFncyBhcmUgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIGFuZCBhZGQgdGhlbSB0byBlbnYuQ1hYRkxBR1MgdmFyaWFibGUKKyAgICAiIiIKKyAgICBpZiBsZW4oY3h4ZmxhZ3MpID09IDA6CisgICAgICAgIHJldHVybgorCisgICAgc2VsZi5zdGFydF9tc2coJ0NoZWNraW5nIHN1cHBvcnRlZCBDWFhGTEFHUycpCisKKyAgICBzdXBwb3J0ZWRGbGFncyA9IFtdCisgICAgZm9yIGZsYWcgaW4gY3h4ZmxhZ3M6CisgICAgICAgIGlmIHNlbGYuY2hlY2tfY3h4KGN4eGZsYWdzPVsnLVdlcnJvcicsIGZsYWddLCBtYW5kYXRvcnk9RmFsc2UpOgorICAgICAgICAgICAgc3VwcG9ydGVkRmxhZ3MgKz0gW2ZsYWddCisKKyAgICBzZWxmLmVuZF9tc2coJyAnLmpvaW4oc3VwcG9ydGVkRmxhZ3MpKQorICAgIHNlbGYuZW52LkNYWEZMQUdTID0gc3VwcG9ydGVkRmxhZ3MgKyBzZWxmLmVudi5DWFhGTEFHUworCitAQ29uZmlndXJlLmNvbmYKK2RlZiBhZGRfc3VwcG9ydGVkX2xpbmtmbGFncyhzZWxmLCBsaW5rZmxhZ3MpOgorICAgICIiIgorICAgIENoZWNrIHdoaWNoIGxpbmtmbGFncyBhcmUgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIGFuZCBhZGQgdGhlbSB0byBlbnYuTElOS0ZMQUdTIHZhcmlhYmxlCisgICAgIiIiCisgICAgaWYgbGVuKGxpbmtmbGFncykgPT0gMDoKKyAgICAgICAgcmV0dXJuCisKKyAgICBzZWxmLnN0YXJ0X21zZygnQ2hlY2tpbmcgc3VwcG9ydGVkIExJTktGTEFHUycpCisKKyAgICBzdXBwb3J0ZWRGbGFncyA9IFtdCisgICAgZm9yIGZsYWcgaW4gbGlua2ZsYWdzOgorICAgICAgICBpZiBzZWxmLmNoZWNrX2N4eChsaW5rZmxhZ3M9WyctV2Vycm9yJywgZmxhZ10sIG1hbmRhdG9yeT1GYWxzZSk6CisgICAgICAgICAgICBzdXBwb3J0ZWRGbGFncyArPSBbZmxhZ10KKworICAgIHNlbGYuZW5kX21zZygnICcuam9pbihzdXBwb3J0ZWRGbGFncykpCisgICAgc2VsZi5lbnYuTElOS0ZMQUdTID0gc3VwcG9ydGVkRmxhZ3MgKyBzZWxmLmVudi5MSU5LRkxBR1MKKworCitjbGFzcyBDb21waWxlckZsYWdzKG9iamVjdCk6CisgICAgZGVmIGdldEdlbmVyYWxGbGFncyhzZWxmLCBjb25mKToKKyAgICAgICAgIiIiR2V0IGRpY3QgeydDWFhGTEFHUyc6Wy4uLl0sIExJTktGTEFHUzpbLi4uXSwgREVGSU5FUzpbLi4uXX0gdGhhdCBhcmUgYWx3YXlzIG5lZWRlZCIiIgorICAgICAgICByZXR1cm4geydDWFhGTEFHUyc6IFtdLCAnTElOS0ZMQUdTJzogW10sICdERUZJTkVTJzogW119CisKKyAgICBkZWYgZ2V0RGVidWdGbGFncyhzZWxmLCBjb25mKToKKyAgICAgICAgIiIiR2V0IHR1cGxlIHtDWFhGTEFHUywgTElOS0ZMQUdTLCBERUZJTkVTfSB0aGF0IGFyZSBuZWVkZWQgaW4gZGVidWcgbW9kZSIiIgorICAgICAgICByZXR1cm4geydDWFhGTEFHUyc6IFtdLCAnTElOS0ZMQUdTJzogW10sICdERUZJTkVTJzogWydfREVCVUcnXX0KKworICAgIGRlZiBnZXRPcHRpbWl6ZWRGbGFncyhzZWxmLCBjb25mKToKKyAgICAgICAgIiIiR2V0IHR1cGxlIHtDWFhGTEFHUywgTElOS0ZMQUdTLCBERUZJTkVTfSB0aGF0IGFyZSBuZWVkZWQgaW4gb3B0aW1pemVkIG1vZGUiIiIKKyAgICAgICAgcmV0dXJuIHsnQ1hYRkxBR1MnOiBbXSwgJ0xJTktGTEFHUyc6IFtdLCAnREVGSU5FUyc6IFsnTkRFQlVHJ119CisKK2NsYXNzIEdjY0Jhc2ljRmxhZ3MoQ29tcGlsZXJGbGFncyk6CisgICAgIiIiVGhpcyBjbGFzcyBkZWZpbmVzIGJhc2UgZmxhZ3MgdGhhdCB3b3JrIGZvciBnY2MgYW5kIGNsYW5nIGNvbXBpbGVyIiIiCisgICAgZGVmIGdldERlYnVnRmxhZ3Moc2VsZiwgY29uZik6CisgICAgICAgIGZsYWdzID0gc3VwZXIoR2NjQmFzaWNGbGFncywgc2VsZikuZ2V0RGVidWdGbGFncyhjb25mKQorICAgICAgICBmbGFnc1snQ1hYRkxBR1MnXSArPSBbJy1wZWRhbnRpYycsICctV2FsbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLU8wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctZzMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1XZXJyb3InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1Xbm8tZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZCcsICMgQnVnICMxNjE1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgcmV0dXJuIGZsYWdzCisKKyAgICBkZWYgZ2V0T3B0aW1pemVkRmxhZ3Moc2VsZiwgY29uZik6CisgICAgICAgIGZsYWdzID0gc3VwZXIoR2NjQmFzaWNGbGFncywgc2VsZikuZ2V0T3B0aW1pemVkRmxhZ3MoY29uZikKKyAgICAgICAgZmxhZ3NbJ0NYWEZMQUdTJ10gKz0gWyctcGVkYW50aWMnLCAnLVdhbGwnLCAnLU8yJywgJy1nJ10KKyAgICAgICAgcmV0dXJuIGZsYWdzCisKK2NsYXNzIEdjY0ZsYWdzKEdjY0Jhc2ljRmxhZ3MpOgorICAgIGRlZiBnZXRHZW5lcmFsRmxhZ3Moc2VsZiwgY29uZik6CisgICAgICAgIGZsYWdzID0gc3VwZXIoR2NjRmxhZ3MsIHNlbGYpLmdldEdlbmVyYWxGbGFncyhjb25mKQorICAgICAgICB2ZXJzaW9uID0gdHVwbGUoaW50KGkpIGZvciBpIGluIGNvbmYuZW52WydDQ19WRVJTSU9OJ10pCisgICAgICAgIGlmIHZlcnNpb24gPCAoNCwgNiwgMCk6CisgICAgICAgICAgICBjb25mLmZhdGFsKCdUaGUgdmVyc2lvbiBvZiBnY2MgeW91IGFyZSB1c2luZyAoJXMpIGlzIHRvbyBvbGQuXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgJy4nLmpvaW4oY29uZi5lbnZbJ0NDX1ZFUlNJT04nXSkgKworICAgICAgICAgICAgICAgICAgICAgICAnVGhlIG1pbmltdW0gc3VwcG9ydGVkIGdjYyB2ZXJzaW9uIGlzIDQuNi4wLicpCisgICAgICAgIGVsaWYgdmVyc2lvbiA8ICg0LCA3LCAwKToKKyAgICAgICAgICAgIGZsYWdzWydDWFhGTEFHUyddICs9IFsnLXN0ZD1jKysweCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmbGFnc1snQ1hYRkxBR1MnXSArPSBbJy1zdGQ9YysrMTEnXQorICAgICAgICByZXR1cm4gZmxhZ3MKKworICAgIGRlZiBnZXREZWJ1Z0ZsYWdzKHNlbGYsIGNvbmYpOgorICAgICAgICBmbGFncyA9IHN1cGVyKEdjY0ZsYWdzLCBzZWxmKS5nZXREZWJ1Z0ZsYWdzKGNvbmYpCisgICAgICAgIGZsYWdzWydDWFhGTEFHUyddICs9IFsnLU9nJywgIyBnY2MgPj0gNC44CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLWZkaWFnbm9zdGljcy1jb2xvcicsICMgZ2NjID49IDQuOQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgIHJldHVybiBmbGFncworCitjbGFzcyBDbGFuZ0ZsYWdzKEdjY0Jhc2ljRmxhZ3MpOgorICAgIGRlZiBnZXRHZW5lcmFsRmxhZ3Moc2VsZiwgY29uZik6CisgICAgICAgIGZsYWdzID0gc3VwZXIoQ2xhbmdGbGFncywgc2VsZikuZ2V0R2VuZXJhbEZsYWdzKGNvbmYpCisgICAgICAgIGZsYWdzWydDWFhGTEFHUyddICs9IFsnLXN0ZD1jKysxMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLVduby1lcnJvcj11bm5lZWRlZC1pbnRlcm5hbC1kZWNsYXJhdGlvbicsICMgQnVnICMxNTg4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLVduby1lcnJvcj1kZXByZWNhdGVkLXJlZ2lzdGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgaWYgVXRpbHMudW52ZXJzaW9uZWRfc3lzX3BsYXRmb3JtKCkgPT0gImRhcndpbiI6CisgICAgICAgICAgICBmbGFnc1snQ1hYRkxBR1MnXSArPSBbJy1zdGRsaWI9bGliYysrJ10KKyAgICAgICAgICAgIGZsYWdzWydMSU5LRkxBR1MnXSArPSBbJy1zdGRsaWI9bGliYysrJ10KKyAgICAgICAgcmV0dXJuIGZsYWdzCisKKyAgICBkZWYgZ2V0RGVidWdGbGFncyhzZWxmLCBjb25mKToKKyAgICAgICAgZmxhZ3MgPSBzdXBlcihDbGFuZ0ZsYWdzLCBzZWxmKS5nZXREZWJ1Z0ZsYWdzKGNvbmYpCisgICAgICAgIGZsYWdzWydDWFhGTEFHUyddICs9IFsnLWZjb2xvci1kaWFnbm9zdGljcyddCisgICAgICAgIHJldHVybiBmbGFncwpkaWZmIC0tZ2l0IGEvLndhZi10b29scy9kZXBlbmRlbmN5LWNoZWNrZXIucHkgYi8ud2FmLXRvb2xzL2RlcGVuZGVuY3ktY2hlY2tlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjlmYmZkCi0tLSAvZGV2L251bGwKKysrIGIvLndhZi10b29scy9kZXBlbmRlbmN5LWNoZWNrZXIucHkKQEAgLTAsMCArMSwyOCBAQAorIyBlbmNvZGluZzogdXRmLTgKKworZnJvbSB3YWZsaWIgaW1wb3J0IE9wdGlvbnMsIExvZ3MKK2Zyb20gd2FmbGliLkNvbmZpZ3VyZSBpbXBvcnQgY29uZgorCitkZWYgYWRkRGVwZW5kZW5jeU9wdGlvbnMoc2VsZiwgb3B0LCBuYW1lLCBleHRyYUhlbHA9JycpOgorICAgIG9wdC5hZGRfb3B0aW9uKCctLXdpdGgtJXMnICUgbmFtZSwgdHlwZT0nc3RyaW5nJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dpdGhfJXMnICUgbmFtZSwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSdQYXRoIHRvICVzLCBlLmcuLCAvdXNyL2xvY2FsICVzJyAlIChuYW1lLCBleHRyYUhlbHApKQorc2V0YXR0cihPcHRpb25zLk9wdGlvbnNDb250ZXh0LCAiYWRkRGVwZW5kZW5jeU9wdGlvbnMiLCBhZGREZXBlbmRlbmN5T3B0aW9ucykKKworQGNvbmYKK2RlZiBjaGVja0RlcGVuZGVuY3koc2VsZiwgbmFtZSwgKiprdyk6CisgICAgcm9vdCA9IGt3LmdldCgncGF0aCcsIGdldGF0dHIoT3B0aW9ucy5vcHRpb25zLCAnd2l0aF8lcycgJSBuYW1lKSkKKyAgICBrd1snbXNnJ10gPSBrdy5nZXQoJ21zZycsICdDaGVja2luZyBmb3IgJXMgbGlicmFyeScgJSBuYW1lKQorICAgIGt3Wyd1c2VsaWJfc3RvcmUnXSA9IGt3LmdldCgndXNlbGliX3N0b3JlJywgbmFtZS51cHBlcigpKQorICAgIGt3WydkZWZpbmVfbmFtZSddID0ga3cuZ2V0KCdkZWZpbmVfbmFtZScsICdIQVZFXyVzJyAlIGt3Wyd1c2VsaWJfc3RvcmUnXSkKKyAgICBrd1snbWFuZGF0b3J5J10gPSBrdy5nZXQoJ21hbmRhdG9yeScsIFRydWUpCisKKyAgICBpZiByb290OgorICAgICAgICBpc09rID0gc2VsZi5jaGVja19jeHgoaW5jbHVkZXM9IiVzL2luY2x1ZGUiICUgcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnBhdGg9IiVzL2xpYiIgJSByb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprdykKKyAgICBlbHNlOgorICAgICAgICBpc09rID0gc2VsZi5jaGVja19jeHgoKiprdykKKworICAgIGlmIGlzT2s6CisgICAgICAgIHNlbGYuZW52W2t3WydkZWZpbmVfbmFtZSddXSA9IFRydWUKZGlmZiAtLWdpdCBhL0FVVEhPUlMubWQgYi9BVVRIT1JTLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YTVhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9BVVRIT1JTLm1kCkBAIC0wLDAgKzEsMTggQEAKK25kbi1hdG1vcyBBdXRob3JzCis9PT09PT09PT09PT09PT09PQorCituZG4tYXRtb3MgaXMgYW4gb3BlbiBzb3VyY2UgcHJvamVjdCBzdGFydGVkIGluIDIwMTMuCisKKworIyMgVGVjaG5pY2FsIGFkdmlzb3JzOgorCisgICogQ2hyaXN0b3MgUGFwYWRvcG91bG9zCisKKworIyMgTWFpbiBwcm9qZWN0IGF1dGhvcnM6CisKKyAgKiBBbGlzb24gQ3JhaWcKKyAgKiBTdGV2ZSBEaUJlbmVkZXR0bworICAqIENoZW5neXUgRmFuCisgICogU3VzbWl0IFNoYW5uaWdyYWhpCisKZGlmZiAtLWdpdCBhL0NPUFlJTkcgYi9DT1BZSU5HCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YTllZDAKLS0tIC9kZXYvbnVsbAorKysgYi9DT1BZSU5HCkBAIC0wLDAgKzEsNjc0IEBACisgICAgICAgICAgICAgICAgICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCisgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CisKKyBDb3B5cmlnaHQgKEMpIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIDxodHRwOi8vZnNmLm9yZy8+CisgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCisgb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQorCisgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBhIGZyZWUsIGNvcHlsZWZ0IGxpY2Vuc2UgZm9yCitzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCisKKyAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFuZCBvdGhlciBwcmFjdGljYWwgd29ya3MgYXJlIGRlc2lnbmVkCit0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCit0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0bworc2hhcmUgYW5kIGNoYW5nZSBhbGwgdmVyc2lvbnMgb2YgYSBwcm9ncmFtLS10byBtYWtlIHN1cmUgaXQgcmVtYWlucyBmcmVlCitzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCitHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9zdCBvZiBvdXIgc29mdHdhcmU7IGl0IGFwcGxpZXMgYWxzbyB0bworYW55IG90aGVyIHdvcmsgcmVsZWFzZWQgdGhpcyB3YXkgYnkgaXRzIGF1dGhvcnMuICBZb3UgY2FuIGFwcGx5IGl0IHRvCit5b3VyIHByb2dyYW1zLCB0b28uCisKKyAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20sIG5vdAorcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQoraGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgordGhlbSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdCBpZiB5b3UKK3dhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CitmcmVlIHByb2dyYW1zLCBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4KKworICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKK3RoZXNlIHJpZ2h0cyBvciBhc2tpbmcgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLiAgVGhlcmVmb3JlLCB5b3UgaGF2ZQorY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmCit5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgorCisgIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKK2dyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKK2ZyZWVkb21zIHRoYXQgeW91IHJlY2VpdmVkLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlCitvciBjYW4gZ2V0IHRoZSBzb3VyY2UgY29kZS4gIEFuZCB5b3UgbXVzdCBzaG93IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleQora25vdyB0aGVpciByaWdodHMuCisKKyAgRGV2ZWxvcGVycyB0aGF0IHVzZSB0aGUgR05VIEdQTCBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOgorKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKK2dpdmluZyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQuCisKKyAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCit0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUgc29mdHdhcmUuICBGb3IgYm90aCB1c2VycycgYW5kCithdXRob3JzJyBzYWtlLCB0aGUgR1BMIHJlcXVpcmVzIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgYmUgbWFya2VkIGFzCitjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KK2F1dGhvcnMgb2YgcHJldmlvdXMgdmVyc2lvbnMuCisKKyAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgorbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJlIGluc2lkZSB0aGVtLCBhbHRob3VnaCB0aGUgbWFudWZhY3R1cmVyCitjYW4gZG8gc28uICBUaGlzIGlzIGZ1bmRhbWVudGFsbHkgaW5jb21wYXRpYmxlIHdpdGggdGhlIGFpbSBvZgorcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKK3BhdHRlcm4gb2Ygc3VjaCBhYnVzZSBvY2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJvZHVjdHMgZm9yIGluZGl2aWR1YWxzIHRvCit1c2UsIHdoaWNoIGlzIHByZWNpc2VseSB3aGVyZSBpdCBpcyBtb3N0IHVuYWNjZXB0YWJsZS4gIFRoZXJlZm9yZSwgd2UKK2hhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQorcHJvZHVjdHMuICBJZiBzdWNoIHByb2JsZW1zIGFyaXNlIHN1YnN0YW50aWFsbHkgaW4gb3RoZXIgZG9tYWlucywgd2UKK3N0YW5kIHJlYWR5IHRvIGV4dGVuZCB0aGlzIHByb3Zpc2lvbiB0byB0aG9zZSBkb21haW5zIGluIGZ1dHVyZSB2ZXJzaW9ucworb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCisKKyAgRmluYWxseSwgZXZlcnkgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUgcGF0ZW50cy4KK1N0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgorc29mdHdhcmUgb24gZ2VuZXJhbC1wdXJwb3NlIGNvbXB1dGVycywgYnV0IGluIHRob3NlIHRoYXQgZG8sIHdlIHdpc2ggdG8KK2F2b2lkIHRoZSBzcGVjaWFsIGRhbmdlciB0aGF0IHBhdGVudHMgYXBwbGllZCB0byBhIGZyZWUgcHJvZ3JhbSBjb3VsZAorbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKK3BhdGVudHMgY2Fubm90IGJlIHVzZWQgdG8gcmVuZGVyIHRoZSBwcm9ncmFtIG5vbi1mcmVlLgorCisgIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCittb2RpZmljYXRpb24gZm9sbG93LgorCisgICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgMC4gRGVmaW5pdGlvbnMuCisKKyAgIlRoaXMgTGljZW5zZSIgcmVmZXJzIHRvIHZlcnNpb24gMyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisKKyAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKK3dvcmtzLCBzdWNoIGFzIHNlbWljb25kdWN0b3IgbWFza3MuCisKKyAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCitMaWNlbnNlLiAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuICAiTGljZW5zZWVzIiBhbmQKKyJyZWNpcGllbnRzIiBtYXkgYmUgaW5kaXZpZHVhbHMgb3Igb3JnYW5pemF0aW9ucy4KKworICBUbyAibW9kaWZ5IiBhIHdvcmsgbWVhbnMgdG8gY29weSBmcm9tIG9yIGFkYXB0IGFsbCBvciBwYXJ0IG9mIHRoZSB3b3JrCitpbiBhIGZhc2hpb24gcmVxdWlyaW5nIGNvcHlyaWdodCBwZXJtaXNzaW9uLCBvdGhlciB0aGFuIHRoZSBtYWtpbmcgb2YgYW4KK2V4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQorZWFybGllciB3b3JrIG9yIGEgd29yayAiYmFzZWQgb24iIHRoZSBlYXJsaWVyIHdvcmsuCisKKyAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKK29uIHRoZSBQcm9ncmFtLgorCisgIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKK3Blcm1pc3Npb24sIHdvdWxkIG1ha2UgeW91IGRpcmVjdGx5IG9yIHNlY29uZGFyaWx5IGxpYWJsZSBmb3IKK2luZnJpbmdlbWVudCB1bmRlciBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXcsIGV4Y2VwdCBleGVjdXRpbmcgaXQgb24gYQorY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKK2Rpc3RyaWJ1dGlvbiAod2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiksIG1ha2luZyBhdmFpbGFibGUgdG8gdGhlCitwdWJsaWMsIGFuZCBpbiBzb21lIGNvdW50cmllcyBvdGhlciBhY3Rpdml0aWVzIGFzIHdlbGwuCisKKyAgVG8gImNvbnZleSIgYSB3b3JrIG1lYW5zIGFueSBraW5kIG9mIHByb3BhZ2F0aW9uIHRoYXQgZW5hYmxlcyBvdGhlcgorcGFydGllcyB0byBtYWtlIG9yIHJlY2VpdmUgY29waWVzLiAgTWVyZSBpbnRlcmFjdGlvbiB3aXRoIGEgdXNlciB0aHJvdWdoCithIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgorCisgIEFuIGludGVyYWN0aXZlIHVzZXIgaW50ZXJmYWNlIGRpc3BsYXlzICJBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzIgordG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQorZmVhdHVyZSB0aGF0ICgxKSBkaXNwbGF5cyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlLCBhbmQgKDIpCit0ZWxscyB0aGUgdXNlciB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGUgd29yayAoZXhjZXB0IHRvIHRoZQorZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQord29yayB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiAgSWYKK3RoZSBpbnRlcmZhY2UgcHJlc2VudHMgYSBsaXN0IG9mIHVzZXIgY29tbWFuZHMgb3Igb3B0aW9ucywgc3VjaCBhcyBhCittZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgorCisgIDEuIFNvdXJjZSBDb2RlLgorCisgIFRoZSAic291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrCitmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICAiT2JqZWN0IGNvZGUiIG1lYW5zIGFueSBub24tc291cmNlCitmb3JtIG9mIGEgd29yay4KKworICBBICJTdGFuZGFyZCBJbnRlcmZhY2UiIG1lYW5zIGFuIGludGVyZmFjZSB0aGF0IGVpdGhlciBpcyBhbiBvZmZpY2lhbAorc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgoraW50ZXJmYWNlcyBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBwcm9ncmFtbWluZyBsYW5ndWFnZSwgb25lIHRoYXQKK2lzIHdpZGVseSB1c2VkIGFtb25nIGRldmVsb3BlcnMgd29ya2luZyBpbiB0aGF0IGxhbmd1YWdlLgorCisgIFRoZSAiU3lzdGVtIExpYnJhcmllcyIgb2YgYW4gZXhlY3V0YWJsZSB3b3JrIGluY2x1ZGUgYW55dGhpbmcsIG90aGVyCit0aGFuIHRoZSB3b3JrIGFzIGEgd2hvbGUsIHRoYXQgKGEpIGlzIGluY2x1ZGVkIGluIHRoZSBub3JtYWwgZm9ybSBvZgorcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgorQ29tcG9uZW50LCBhbmQgKGIpIHNlcnZlcyBvbmx5IHRvIGVuYWJsZSB1c2Ugb2YgdGhlIHdvcmsgd2l0aCB0aGF0CitNYWpvciBDb21wb25lbnQsIG9yIHRvIGltcGxlbWVudCBhIFN0YW5kYXJkIEludGVyZmFjZSBmb3Igd2hpY2ggYW4KK2ltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCisiTWFqb3IgQ29tcG9uZW50IiwgaW4gdGhpcyBjb250ZXh0LCBtZWFucyBhIG1ham9yIGVzc2VudGlhbCBjb21wb25lbnQKKyhrZXJuZWwsIHdpbmRvdyBzeXN0ZW0sIGFuZCBzbyBvbikgb2YgdGhlIHNwZWNpZmljIG9wZXJhdGluZyBzeXN0ZW0KKyhpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCitwcm9kdWNlIHRoZSB3b3JrLCBvciBhbiBvYmplY3QgY29kZSBpbnRlcnByZXRlciB1c2VkIHRvIHJ1biBpdC4KKworICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCit0aGUgc291cmNlIGNvZGUgbmVlZGVkIHRvIGdlbmVyYXRlLCBpbnN0YWxsLCBhbmQgKGZvciBhbiBleGVjdXRhYmxlCit3b3JrKSBydW4gdGhlIG9iamVjdCBjb2RlIGFuZCB0byBtb2RpZnkgdGhlIHdvcmssIGluY2x1ZGluZyBzY3JpcHRzIHRvCitjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKK1N5c3RlbSBMaWJyYXJpZXMsIG9yIGdlbmVyYWwtcHVycG9zZSB0b29scyBvciBnZW5lcmFsbHkgYXZhaWxhYmxlIGZyZWUKK3Byb2dyYW1zIHdoaWNoIGFyZSB1c2VkIHVubW9kaWZpZWQgaW4gcGVyZm9ybWluZyB0aG9zZSBhY3Rpdml0aWVzIGJ1dAord2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCitpbmNsdWRlcyBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggc291cmNlIGZpbGVzIGZvcgordGhlIHdvcmssIGFuZCB0aGUgc291cmNlIGNvZGUgZm9yIHNoYXJlZCBsaWJyYXJpZXMgYW5kIGR5bmFtaWNhbGx5CitsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKK3N1Y2ggYXMgYnkgaW50aW1hdGUgZGF0YSBjb21tdW5pY2F0aW9uIG9yIGNvbnRyb2wgZmxvdyBiZXR3ZWVuIHRob3NlCitzdWJwcm9ncmFtcyBhbmQgb3RoZXIgcGFydHMgb2YgdGhlIHdvcmsuCisKKyAgVGhlIENvcnJlc3BvbmRpbmcgU291cmNlIG5lZWQgbm90IGluY2x1ZGUgYW55dGhpbmcgdGhhdCB1c2VycworY2FuIHJlZ2VuZXJhdGUgYXV0b21hdGljYWxseSBmcm9tIG90aGVyIHBhcnRzIG9mIHRoZSBDb3JyZXNwb25kaW5nCitTb3VyY2UuCisKKyAgVGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGZvciBhIHdvcmsgaW4gc291cmNlIGNvZGUgZm9ybSBpcyB0aGF0CitzYW1lIHdvcmsuCisKKyAgMi4gQmFzaWMgUGVybWlzc2lvbnMuCisKKyAgQWxsIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSBhcmUgZ3JhbnRlZCBmb3IgdGhlIHRlcm0gb2YKK2NvcHlyaWdodCBvbiB0aGUgUHJvZ3JhbSwgYW5kIGFyZSBpcnJldm9jYWJsZSBwcm92aWRlZCB0aGUgc3RhdGVkCitjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCitwZXJtaXNzaW9uIHRvIHJ1biB0aGUgdW5tb2RpZmllZCBQcm9ncmFtLiAgVGhlIG91dHB1dCBmcm9tIHJ1bm5pbmcgYQorY292ZXJlZCB3b3JrIGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlIG9ubHkgaWYgdGhlIG91dHB1dCwgZ2l2ZW4gaXRzCitjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgorcmlnaHRzIG9mIGZhaXIgdXNlIG9yIG90aGVyIGVxdWl2YWxlbnQsIGFzIHByb3ZpZGVkIGJ5IGNvcHlyaWdodCBsYXcuCisKKyAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdAorY29udmV5LCB3aXRob3V0IGNvbmRpdGlvbnMgc28gbG9uZyBhcyB5b3VyIGxpY2Vuc2Ugb3RoZXJ3aXNlIHJlbWFpbnMKK2luIGZvcmNlLiAgWW91IG1heSBjb252ZXkgY292ZXJlZCB3b3JrcyB0byBvdGhlcnMgZm9yIHRoZSBzb2xlIHB1cnBvc2UKK29mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQord2l0aCBmYWNpbGl0aWVzIGZvciBydW5uaW5nIHRob3NlIHdvcmtzLCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbHkgd2l0aAordGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSBpbiBjb252ZXlpbmcgYWxsIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8KK25vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKK2ZvciB5b3UgbXVzdCBkbyBzbyBleGNsdXNpdmVseSBvbiB5b3VyIGJlaGFsZiwgdW5kZXIgeW91ciBkaXJlY3Rpb24KK2FuZCBjb250cm9sLCBvbiB0ZXJtcyB0aGF0IHByb2hpYml0IHRoZW0gZnJvbSBtYWtpbmcgYW55IGNvcGllcyBvZgoreW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KKworICBDb252ZXlpbmcgdW5kZXIgYW55IG90aGVyIGNpcmN1bXN0YW5jZXMgaXMgcGVybWl0dGVkIHNvbGVseSB1bmRlcgordGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCittYWtlcyBpdCB1bm5lY2Vzc2FyeS4KKworICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgorCisgIE5vIGNvdmVyZWQgd29yayBzaGFsbCBiZSBkZWVtZWQgcGFydCBvZiBhbiBlZmZlY3RpdmUgdGVjaG5vbG9naWNhbAorbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCisxMSBvZiB0aGUgV0lQTyBjb3B5cmlnaHQgdHJlYXR5IGFkb3B0ZWQgb24gMjAgRGVjZW1iZXIgMTk5Niwgb3IKK3NpbWlsYXIgbGF3cyBwcm9oaWJpdGluZyBvciByZXN0cmljdGluZyBjaXJjdW12ZW50aW9uIG9mIHN1Y2gKK21lYXN1cmVzLgorCisgIFdoZW4geW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgeW91IHdhaXZlIGFueSBsZWdhbCBwb3dlciB0byBmb3JiaWQKK2NpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgoraXMgZWZmZWN0ZWQgYnkgZXhlcmNpc2luZyByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlIHdpdGggcmVzcGVjdCB0bwordGhlIGNvdmVyZWQgd29yaywgYW5kIHlvdSBkaXNjbGFpbSBhbnkgaW50ZW50aW9uIHRvIGxpbWl0IG9wZXJhdGlvbiBvcgorbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKK3VzZXJzLCB5b3VyIG9yIHRoaXJkIHBhcnRpZXMnIGxlZ2FsIHJpZ2h0cyB0byBmb3JiaWQgY2lyY3VtdmVudGlvbiBvZgordGVjaG5vbG9naWNhbCBtZWFzdXJlcy4KKworICA0LiBDb252ZXlpbmcgVmVyYmF0aW0gQ29waWVzLgorCisgIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQorcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKK2FwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZTsKK2tlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQorbm9uLXBlcm1pc3NpdmUgdGVybXMgYWRkZWQgaW4gYWNjb3JkIHdpdGggc2VjdGlvbiA3IGFwcGx5IHRvIHRoZSBjb2RlOwora2VlcCBpbnRhY3QgYWxsIG5vdGljZXMgb2YgdGhlIGFic2VuY2Ugb2YgYW55IHdhcnJhbnR5OyBhbmQgZ2l2ZSBhbGwKK3JlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgorCisgIFlvdSBtYXkgY2hhcmdlIGFueSBwcmljZSBvciBubyBwcmljZSBmb3IgZWFjaCBjb3B5IHRoYXQgeW91IGNvbnZleSwKK2FuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCisKKyAgNS4gQ29udmV5aW5nIE1vZGlmaWVkIFNvdXJjZSBWZXJzaW9ucy4KKworICBZb3UgbWF5IGNvbnZleSBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIG9yIHRoZSBtb2RpZmljYXRpb25zIHRvCitwcm9kdWNlIGl0IGZyb20gdGhlIFByb2dyYW0sIGluIHRoZSBmb3JtIG9mIHNvdXJjZSBjb2RlIHVuZGVyIHRoZQordGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CisKKyAgICBhKSBUaGUgd29yayBtdXN0IGNhcnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRpbmcgdGhhdCB5b3UgbW9kaWZpZWQKKyAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCisKKyAgICBiKSBUaGUgd29yayBtdXN0IGNhcnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRpbmcgdGhhdCBpdCBpcworICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgorICAgIDcuICBUaGlzIHJlcXVpcmVtZW50IG1vZGlmaWVzIHRoZSByZXF1aXJlbWVudCBpbiBzZWN0aW9uIDQgdG8KKyAgICAia2VlcCBpbnRhY3QgYWxsIG5vdGljZXMiLgorCisgICAgYykgWW91IG11c3QgbGljZW5zZSB0aGUgZW50aXJlIHdvcmssIGFzIGEgd2hvbGUsIHVuZGVyIHRoaXMKKyAgICBMaWNlbnNlIHRvIGFueW9uZSB3aG8gY29tZXMgaW50byBwb3NzZXNzaW9uIG9mIGEgY29weS4gIFRoaXMKKyAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNworICAgIGFkZGl0aW9uYWwgdGVybXMsIHRvIHRoZSB3aG9sZSBvZiB0aGUgd29yaywgYW5kIGFsbCBpdHMgcGFydHMsCisgICAgcmVnYXJkbGVzcyBvZiBob3cgdGhleSBhcmUgcGFja2FnZWQuICBUaGlzIExpY2Vuc2UgZ2l2ZXMgbm8KKyAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CisgICAgaW52YWxpZGF0ZSBzdWNoIHBlcm1pc3Npb24gaWYgeW91IGhhdmUgc2VwYXJhdGVseSByZWNlaXZlZCBpdC4KKworICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CisgICAgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlczsgaG93ZXZlciwgaWYgdGhlIFByb2dyYW0gaGFzIGludGVyYWN0aXZlCisgICAgaW50ZXJmYWNlcyB0aGF0IGRvIG5vdCBkaXNwbGF5IEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXMsIHlvdXIKKyAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KKworICBBIGNvbXBpbGF0aW9uIG9mIGEgY292ZXJlZCB3b3JrIHdpdGggb3RoZXIgc2VwYXJhdGUgYW5kIGluZGVwZW5kZW50Cit3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAorYW5kIHdoaWNoIGFyZSBub3QgY29tYmluZWQgd2l0aCBpdCBzdWNoIGFzIHRvIGZvcm0gYSBsYXJnZXIgcHJvZ3JhbSwKK2luIG9yIG9uIGEgdm9sdW1lIG9mIGEgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtLCBpcyBjYWxsZWQgYW4KKyJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAordXNlZCB0byBsaW1pdCB0aGUgYWNjZXNzIG9yIGxlZ2FsIHJpZ2h0cyBvZiB0aGUgY29tcGlsYXRpb24ncyB1c2VycworYmV5b25kIHdoYXQgdGhlIGluZGl2aWR1YWwgd29ya3MgcGVybWl0LiAgSW5jbHVzaW9uIG9mIGEgY292ZXJlZCB3b3JrCitpbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgorcGFydHMgb2YgdGhlIGFnZ3JlZ2F0ZS4KKworICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KKworICBZb3UgbWF5IGNvbnZleSBhIGNvdmVyZWQgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcworb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCittYWNoaW5lLXJlYWRhYmxlIENvcnJlc3BvbmRpbmcgU291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsCitpbiBvbmUgb2YgdGhlc2Ugd2F5czoKKworICAgIGEpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKKyAgICAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5IHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KKyAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4KKworICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKKyAgICAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5IGEKKyAgICB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUgeWVhcnMgYW5kIHZhbGlkIGZvciBhcworICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAorICAgIG1vZGVsLCB0byBnaXZlIGFueW9uZSB3aG8gcG9zc2Vzc2VzIHRoZSBvYmplY3QgY29kZSBlaXRoZXIgKDEpIGEKKyAgICBjb3B5IG9mIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYWxsIHRoZSBzb2Z0d2FyZSBpbiB0aGUKKyAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAorICAgIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZSwgZm9yIGEgcHJpY2Ugbm8KKyAgICBtb3JlIHRoYW4geW91ciByZWFzb25hYmxlIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHRoaXMKKyAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCisgICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgZnJvbSBhIG5ldHdvcmsgc2VydmVyIGF0IG5vIGNoYXJnZS4KKworICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCisgICAgd3JpdHRlbiBvZmZlciB0byBwcm92aWRlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFRoaXMKKyAgICBhbHRlcm5hdGl2ZSBpcyBhbGxvd2VkIG9ubHkgb2NjYXNpb25hbGx5IGFuZCBub25jb21tZXJjaWFsbHksIGFuZAorICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAorICAgIHdpdGggc3Vic2VjdGlvbiA2Yi4KKworICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCisgICAgcGxhY2UgKGdyYXRpcyBvciBmb3IgYSBjaGFyZ2UpLCBhbmQgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gdGhlCisgICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgaW4gdGhlIHNhbWUgd2F5IHRocm91Z2ggdGhlIHNhbWUgcGxhY2UgYXQgbm8KKyAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKKyAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4gIElmIHRoZSBwbGFjZSB0bworICAgIGNvcHkgdGhlIG9iamVjdCBjb2RlIGlzIGEgbmV0d29yayBzZXJ2ZXIsIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZQorICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQorICAgIHRoYXQgc3VwcG9ydHMgZXF1aXZhbGVudCBjb3B5aW5nIGZhY2lsaXRpZXMsIHByb3ZpZGVkIHlvdSBtYWludGFpbgorICAgIGNsZWFyIGRpcmVjdGlvbnMgbmV4dCB0byB0aGUgb2JqZWN0IGNvZGUgc2F5aW5nIHdoZXJlIHRvIGZpbmQgdGhlCisgICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNlLCB5b3UgcmVtYWluIG9ibGlnYXRlZCB0byBlbnN1cmUgdGhhdCBpdCBpcworICAgIGF2YWlsYWJsZSBmb3IgYXMgbG9uZyBhcyBuZWVkZWQgdG8gc2F0aXNmeSB0aGVzZSByZXF1aXJlbWVudHMuCisKKyAgICBlKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIHVzaW5nIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24sIHByb3ZpZGVkCisgICAgeW91IGluZm9ybSBvdGhlciBwZWVycyB3aGVyZSB0aGUgb2JqZWN0IGNvZGUgYW5kIENvcnJlc3BvbmRpbmcKKyAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCisgICAgY2hhcmdlIHVuZGVyIHN1YnNlY3Rpb24gNmQuCisKKyAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCitmcm9tIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBhcyBhIFN5c3RlbSBMaWJyYXJ5LCBuZWVkIG5vdCBiZQoraW5jbHVkZWQgaW4gY29udmV5aW5nIHRoZSBvYmplY3QgY29kZSB3b3JrLgorCisgIEEgIlVzZXIgUHJvZHVjdCIgaXMgZWl0aGVyICgxKSBhICJjb25zdW1lciBwcm9kdWN0Iiwgd2hpY2ggbWVhbnMgYW55Cit0YW5naWJsZSBwZXJzb25hbCBwcm9wZXJ0eSB3aGljaCBpcyBub3JtYWxseSB1c2VkIGZvciBwZXJzb25hbCwgZmFtaWx5LAorb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgoraW50byBhIGR3ZWxsaW5nLiAgSW4gZGV0ZXJtaW5pbmcgd2hldGhlciBhIHByb2R1Y3QgaXMgYSBjb25zdW1lciBwcm9kdWN0LAorZG91YnRmdWwgY2FzZXMgc2hhbGwgYmUgcmVzb2x2ZWQgaW4gZmF2b3Igb2YgY292ZXJhZ2UuICBGb3IgYSBwYXJ0aWN1bGFyCitwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKK3R5cGljYWwgb3IgY29tbW9uIHVzZSBvZiB0aGF0IGNsYXNzIG9mIHByb2R1Y3QsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXR1cworb2YgdGhlIHBhcnRpY3VsYXIgdXNlciBvciBvZiB0aGUgd2F5IGluIHdoaWNoIHRoZSBwYXJ0aWN1bGFyIHVzZXIKK2FjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAoraXMgYSBjb25zdW1lciBwcm9kdWN0IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgcHJvZHVjdCBoYXMgc3Vic3RhbnRpYWwKK2NvbW1lcmNpYWwsIGluZHVzdHJpYWwgb3Igbm9uLWNvbnN1bWVyIHVzZXMsIHVubGVzcyBzdWNoIHVzZXMgcmVwcmVzZW50Cit0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KKworICAiSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIiBmb3IgYSBVc2VyIFByb2R1Y3QgbWVhbnMgYW55IG1ldGhvZHMsCitwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKK2FuZCBleGVjdXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIGEgY292ZXJlZCB3b3JrIGluIHRoYXQgVXNlciBQcm9kdWN0IGZyb20KK2EgbW9kaWZpZWQgdmVyc2lvbiBvZiBpdHMgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBUaGUgaW5mb3JtYXRpb24gbXVzdAorc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKK2NvZGUgaXMgaW4gbm8gY2FzZSBwcmV2ZW50ZWQgb3IgaW50ZXJmZXJlZCB3aXRoIHNvbGVseSBiZWNhdXNlCittb2RpZmljYXRpb24gaGFzIGJlZW4gbWFkZS4KKworICBJZiB5b3UgY29udmV5IGFuIG9iamVjdCBjb2RlIHdvcmsgdW5kZXIgdGhpcyBzZWN0aW9uIGluLCBvciB3aXRoLCBvcgorc3BlY2lmaWNhbGx5IGZvciB1c2UgaW4sIGEgVXNlciBQcm9kdWN0LCBhbmQgdGhlIGNvbnZleWluZyBvY2N1cnMgYXMKK3BhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQorVXNlciBQcm9kdWN0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSByZWNpcGllbnQgaW4gcGVycGV0dWl0eSBvciBmb3IgYQorZml4ZWQgdGVybSAocmVnYXJkbGVzcyBvZiBob3cgdGhlIHRyYW5zYWN0aW9uIGlzIGNoYXJhY3Rlcml6ZWQpLCB0aGUKK0NvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCitieSB0aGUgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uLiAgQnV0IHRoaXMgcmVxdWlyZW1lbnQgZG9lcyBub3QgYXBwbHkKK2lmIG5laXRoZXIgeW91IG5vciBhbnkgdGhpcmQgcGFydHkgcmV0YWlucyB0aGUgYWJpbGl0eSB0byBpbnN0YWxsCittb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCitiZWVuIGluc3RhbGxlZCBpbiBST00pLgorCisgIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKK3JlcXVpcmVtZW50IHRvIGNvbnRpbnVlIHRvIHByb3ZpZGUgc3VwcG9ydCBzZXJ2aWNlLCB3YXJyYW50eSwgb3IgdXBkYXRlcworZm9yIGEgd29yayB0aGF0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZCBieSB0aGUgcmVjaXBpZW50LCBvciBmb3IKK3RoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKK25ldHdvcmsgbWF5IGJlIGRlbmllZCB3aGVuIHRoZSBtb2RpZmljYXRpb24gaXRzZWxmIG1hdGVyaWFsbHkgYW5kCithZHZlcnNlbHkgYWZmZWN0cyB0aGUgb3BlcmF0aW9uIG9mIHRoZSBuZXR3b3JrIG9yIHZpb2xhdGVzIHRoZSBydWxlcyBhbmQKK3Byb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCisKKyAgQ29ycmVzcG9uZGluZyBTb3VyY2UgY29udmV5ZWQsIGFuZCBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gcHJvdmlkZWQsCitpbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5Citkb2N1bWVudGVkIChhbmQgd2l0aCBhbiBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbgorc291cmNlIGNvZGUgZm9ybSksIGFuZCBtdXN0IHJlcXVpcmUgbm8gc3BlY2lhbCBwYXNzd29yZCBvciBrZXkgZm9yCit1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KKworICA3LiBBZGRpdGlvbmFsIFRlcm1zLgorCisgICJBZGRpdGlvbmFsIHBlcm1pc3Npb25zIiBhcmUgdGVybXMgdGhhdCBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzCitMaWNlbnNlIGJ5IG1ha2luZyBleGNlcHRpb25zIGZyb20gb25lIG9yIG1vcmUgb2YgaXRzIGNvbmRpdGlvbnMuCitBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCitiZSB0cmVhdGVkIGFzIHRob3VnaCB0aGV5IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBMaWNlbnNlLCB0byB0aGUgZXh0ZW50Cit0aGF0IHRoZXkgYXJlIHZhbGlkIHVuZGVyIGFwcGxpY2FibGUgbGF3LiAgSWYgYWRkaXRpb25hbCBwZXJtaXNzaW9ucworYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQordW5kZXIgdGhvc2UgcGVybWlzc2lvbnMsIGJ1dCB0aGUgZW50aXJlIFByb2dyYW0gcmVtYWlucyBnb3Zlcm5lZCBieQordGhpcyBMaWNlbnNlIHdpdGhvdXQgcmVnYXJkIHRvIHRoZSBhZGRpdGlvbmFsIHBlcm1pc3Npb25zLgorCisgIFdoZW4geW91IGNvbnZleSBhIGNvcHkgb2YgYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgYXQgeW91ciBvcHRpb24KK3JlbW92ZSBhbnkgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBmcm9tIHRoYXQgY29weSwgb3IgZnJvbSBhbnkgcGFydCBvZgoraXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgorcmVtb3ZhbCBpbiBjZXJ0YWluIGNhc2VzIHdoZW4geW91IG1vZGlmeSB0aGUgd29yay4pICBZb3UgbWF5IHBsYWNlCithZGRpdGlvbmFsIHBlcm1pc3Npb25zIG9uIG1hdGVyaWFsLCBhZGRlZCBieSB5b3UgdG8gYSBjb3ZlcmVkIHdvcmssCitmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCisKKyAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCBmb3IgbWF0ZXJpYWwgeW91CithZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCit0aGF0IG1hdGVyaWFsKSBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugd2l0aCB0ZXJtczoKKworICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQorICAgIHRlcm1zIG9mIHNlY3Rpb25zIDE1IGFuZCAxNiBvZiB0aGlzIExpY2Vuc2U7IG9yCisKKyAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKKyAgICBhdXRob3IgYXR0cmlidXRpb25zIGluIHRoYXQgbWF0ZXJpYWwgb3IgaW4gdGhlIEFwcHJvcHJpYXRlIExlZ2FsCisgICAgTm90aWNlcyBkaXNwbGF5ZWQgYnkgd29ya3MgY29udGFpbmluZyBpdDsgb3IKKworICAgIGMpIFByb2hpYml0aW5nIG1pc3JlcHJlc2VudGF0aW9uIG9mIHRoZSBvcmlnaW4gb2YgdGhhdCBtYXRlcmlhbCwgb3IKKyAgICByZXF1aXJpbmcgdGhhdCBtb2RpZmllZCB2ZXJzaW9ucyBvZiBzdWNoIG1hdGVyaWFsIGJlIG1hcmtlZCBpbgorICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKKworICAgIGQpIExpbWl0aW5nIHRoZSB1c2UgZm9yIHB1YmxpY2l0eSBwdXJwb3NlcyBvZiBuYW1lcyBvZiBsaWNlbnNvcnMgb3IKKyAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKKworICAgIGUpIERlY2xpbmluZyB0byBncmFudCByaWdodHMgdW5kZXIgdHJhZGVtYXJrIGxhdyBmb3IgdXNlIG9mIHNvbWUKKyAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKKworICAgIGYpIFJlcXVpcmluZyBpbmRlbW5pZmljYXRpb24gb2YgbGljZW5zb3JzIGFuZCBhdXRob3JzIG9mIHRoYXQKKyAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgorICAgIGl0KSB3aXRoIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIG9mIGxpYWJpbGl0eSB0byB0aGUgcmVjaXBpZW50LCBmb3IKKyAgICBhbnkgbGlhYmlsaXR5IHRoYXQgdGhlc2UgY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgZGlyZWN0bHkgaW1wb3NlIG9uCisgICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgorCisgIEFsbCBvdGhlciBub24tcGVybWlzc2l2ZSBhZGRpdGlvbmFsIHRlcm1zIGFyZSBjb25zaWRlcmVkICJmdXJ0aGVyCityZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CityZWNlaXZlZCBpdCwgb3IgYW55IHBhcnQgb2YgaXQsIGNvbnRhaW5zIGEgbm90aWNlIHN0YXRpbmcgdGhhdCBpdCBpcworZ292ZXJuZWQgYnkgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggYSB0ZXJtIHRoYXQgaXMgYSBmdXJ0aGVyCityZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCithIGZ1cnRoZXIgcmVzdHJpY3Rpb24gYnV0IHBlcm1pdHMgcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nIHVuZGVyIHRoaXMKK0xpY2Vuc2UsIHlvdSBtYXkgYWRkIHRvIGEgY292ZXJlZCB3b3JrIG1hdGVyaWFsIGdvdmVybmVkIGJ5IHRoZSB0ZXJtcworb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKK25vdCBzdXJ2aXZlIHN1Y2ggcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nLgorCisgIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKK211c3QgcGxhY2UsIGluIHRoZSByZWxldmFudCBzb3VyY2UgZmlsZXMsIGEgc3RhdGVtZW50IG9mIHRoZQorYWRkaXRpb25hbCB0ZXJtcyB0aGF0IGFwcGx5IHRvIHRob3NlIGZpbGVzLCBvciBhIG5vdGljZSBpbmRpY2F0aW5nCit3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgorCisgIEFkZGl0aW9uYWwgdGVybXMsIHBlcm1pc3NpdmUgb3Igbm9uLXBlcm1pc3NpdmUsIG1heSBiZSBzdGF0ZWQgaW4gdGhlCitmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwordGhlIGFib3ZlIHJlcXVpcmVtZW50cyBhcHBseSBlaXRoZXIgd2F5LgorCisgIDguIFRlcm1pbmF0aW9uLgorCisgIFlvdSBtYXkgbm90IHByb3BhZ2F0ZSBvciBtb2RpZnkgYSBjb3ZlcmVkIHdvcmsgZXhjZXB0IGFzIGV4cHJlc3NseQorcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgorbW9kaWZ5IGl0IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyCit0aGlzIExpY2Vuc2UgKGluY2x1ZGluZyBhbnkgcGF0ZW50IGxpY2Vuc2VzIGdyYW50ZWQgdW5kZXIgdGhlIHRoaXJkCitwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCisKKyAgSG93ZXZlciwgaWYgeW91IGNlYXNlIGFsbCB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlLCB0aGVuIHlvdXIKK2xpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQorcHJvdmlzaW9uYWxseSwgdW5sZXNzIGFuZCB1bnRpbCB0aGUgY29weXJpZ2h0IGhvbGRlciBleHBsaWNpdGx5IGFuZAorZmluYWxseSB0ZXJtaW5hdGVzIHlvdXIgbGljZW5zZSwgYW5kIChiKSBwZXJtYW5lbnRseSwgaWYgdGhlIGNvcHlyaWdodAoraG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKK3ByaW9yIHRvIDYwIGRheXMgYWZ0ZXIgdGhlIGNlc3NhdGlvbi4KKworICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKK3JlaW5zdGF0ZWQgcGVybWFuZW50bHkgaWYgdGhlIGNvcHlyaWdodCBob2xkZXIgbm90aWZpZXMgeW91IG9mIHRoZQordmlvbGF0aW9uIGJ5IHNvbWUgcmVhc29uYWJsZSBtZWFucywgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB5b3UgaGF2ZQorcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0Citjb3B5cmlnaHQgaG9sZGVyLCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiBwcmlvciB0byAzMCBkYXlzIGFmdGVyCit5b3VyIHJlY2VpcHQgb2YgdGhlIG5vdGljZS4KKworICBUZXJtaW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9lcyBub3QgdGVybWluYXRlIHRoZQorbGljZW5zZXMgb2YgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMgb3IgcmlnaHRzIGZyb20geW91IHVuZGVyCit0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CityZWluc3RhdGVkLCB5b3UgZG8gbm90IHF1YWxpZnkgdG8gcmVjZWl2ZSBuZXcgbGljZW5zZXMgZm9yIHRoZSBzYW1lCittYXRlcmlhbCB1bmRlciBzZWN0aW9uIDEwLgorCisgIDkuIEFjY2VwdGFuY2UgTm90IFJlcXVpcmVkIGZvciBIYXZpbmcgQ29waWVzLgorCisgIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgorcnVuIGEgY29weSBvZiB0aGUgUHJvZ3JhbS4gIEFuY2lsbGFyeSBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQgd29yaworb2NjdXJyaW5nIHNvbGVseSBhcyBhIGNvbnNlcXVlbmNlIG9mIHVzaW5nIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24KK3RvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCitub3RoaW5nIG90aGVyIHRoYW4gdGhpcyBMaWNlbnNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBwcm9wYWdhdGUgb3IKK21vZGlmeSBhbnkgY292ZXJlZCB3b3JrLiAgVGhlc2UgYWN0aW9ucyBpbmZyaW5nZSBjb3B5cmlnaHQgaWYgeW91IGRvCitub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKK2NvdmVyZWQgd29yaywgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28uCisKKyAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgorCisgIEVhY2ggdGltZSB5b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkKK3JlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZAorcHJvcGFnYXRlIHRoYXQgd29yaywgc3ViamVjdCB0byB0aGlzIExpY2Vuc2UuICBZb3UgYXJlIG5vdCByZXNwb25zaWJsZQorZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgd2l0aCB0aGlzIExpY2Vuc2UuCisKKyAgQW4gImVudGl0eSB0cmFuc2FjdGlvbiIgaXMgYSB0cmFuc2FjdGlvbiB0cmFuc2ZlcnJpbmcgY29udHJvbCBvZiBhbgorb3JnYW5pemF0aW9uLCBvciBzdWJzdGFudGlhbGx5IGFsbCBhc3NldHMgb2Ygb25lLCBvciBzdWJkaXZpZGluZyBhbgorb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKK3dvcmsgcmVzdWx0cyBmcm9tIGFuIGVudGl0eSB0cmFuc2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0aGF0Cit0cmFuc2FjdGlvbiB3aG8gcmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB3b3JrIGFsc28gcmVjZWl2ZXMgd2hhdGV2ZXIKK2xpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZAorZ2l2ZSB1bmRlciB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLCBwbHVzIGEgcmlnaHQgdG8gcG9zc2Vzc2lvbiBvZiB0aGUKK0NvcnJlc3BvbmRpbmcgU291cmNlIG9mIHRoZSB3b3JrIGZyb20gdGhlIHByZWRlY2Vzc29yIGluIGludGVyZXN0LCBpZgordGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgorCisgIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlciByZXN0cmljdGlvbnMgb24gdGhlIGV4ZXJjaXNlIG9mIHRoZQorcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKK25vdCBpbXBvc2UgYSBsaWNlbnNlIGZlZSwgcm95YWx0eSwgb3Igb3RoZXIgY2hhcmdlIGZvciBleGVyY2lzZSBvZgorcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgeW91IG1heSBub3QgaW5pdGlhdGUgbGl0aWdhdGlvbgorKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKK2FueSBwYXRlbnQgY2xhaW0gaXMgaW5mcmluZ2VkIGJ5IG1ha2luZywgdXNpbmcsIHNlbGxpbmcsIG9mZmVyaW5nIGZvcgorc2FsZSwgb3IgaW1wb3J0aW5nIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uIG9mIGl0LgorCisgIDExLiBQYXRlbnRzLgorCisgIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKK0xpY2Vuc2Ugb2YgdGhlIFByb2dyYW0gb3IgYSB3b3JrIG9uIHdoaWNoIHRoZSBQcm9ncmFtIGlzIGJhc2VkLiAgVGhlCit3b3JrIHRodXMgbGljZW5zZWQgaXMgY2FsbGVkIHRoZSBjb250cmlidXRvcidzICJjb250cmlidXRvciB2ZXJzaW9uIi4KKworICBBIGNvbnRyaWJ1dG9yJ3MgImVzc2VudGlhbCBwYXRlbnQgY2xhaW1zIiBhcmUgYWxsIHBhdGVudCBjbGFpbXMKK293bmVkIG9yIGNvbnRyb2xsZWQgYnkgdGhlIGNvbnRyaWJ1dG9yLCB3aGV0aGVyIGFscmVhZHkgYWNxdWlyZWQgb3IKK2hlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZAorYnkgdGhpcyBMaWNlbnNlLCBvZiBtYWtpbmcsIHVzaW5nLCBvciBzZWxsaW5nIGl0cyBjb250cmlidXRvciB2ZXJzaW9uLAorYnV0IGRvIG5vdCBpbmNsdWRlIGNsYWltcyB0aGF0IHdvdWxkIGJlIGluZnJpbmdlZCBvbmx5IGFzIGEKK2NvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCitwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJjb250cm9sIiBpbmNsdWRlcyB0aGUgcmlnaHQgdG8gZ3JhbnQKK3BhdGVudCBzdWJsaWNlbnNlcyBpbiBhIG1hbm5lciBjb25zaXN0ZW50IHdpdGggdGhlIHJlcXVpcmVtZW50cyBvZgordGhpcyBMaWNlbnNlLgorCisgIEVhY2ggY29udHJpYnV0b3IgZ3JhbnRzIHlvdSBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlCitwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KK21ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHJ1biwgbW9kaWZ5IGFuZAorcHJvcGFnYXRlIHRoZSBjb250ZW50cyBvZiBpdHMgY29udHJpYnV0b3IgdmVyc2lvbi4KKworICBJbiB0aGUgZm9sbG93aW5nIHRocmVlIHBhcmFncmFwaHMsIGEgInBhdGVudCBsaWNlbnNlIiBpcyBhbnkgZXhwcmVzcworYWdyZWVtZW50IG9yIGNvbW1pdG1lbnQsIGhvd2V2ZXIgZGVub21pbmF0ZWQsIG5vdCB0byBlbmZvcmNlIGEgcGF0ZW50Cisoc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCitzdWUgZm9yIHBhdGVudCBpbmZyaW5nZW1lbnQpLiAgVG8gImdyYW50IiBzdWNoIGEgcGF0ZW50IGxpY2Vuc2UgdG8gYQorcGFydHkgbWVhbnMgdG8gbWFrZSBzdWNoIGFuIGFncmVlbWVudCBvciBjb21taXRtZW50IG5vdCB0byBlbmZvcmNlIGEKK3BhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KKworICBJZiB5b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCBrbm93aW5nbHkgcmVseWluZyBvbiBhIHBhdGVudCBsaWNlbnNlLAorYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKK3RvIGNvcHksIGZyZWUgb2YgY2hhcmdlIGFuZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLCB0aHJvdWdoIGEKK3B1YmxpY2x5IGF2YWlsYWJsZSBuZXR3b3JrIHNlcnZlciBvciBvdGhlciByZWFkaWx5IGFjY2Vzc2libGUgbWVhbnMsCit0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCithdmFpbGFibGUsIG9yICgyKSBhcnJhbmdlIHRvIGRlcHJpdmUgeW91cnNlbGYgb2YgdGhlIGJlbmVmaXQgb2YgdGhlCitwYXRlbnQgbGljZW5zZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIHdvcmssIG9yICgzKSBhcnJhbmdlLCBpbiBhIG1hbm5lcgorY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudAorbGljZW5zZSB0byBkb3duc3RyZWFtIHJlY2lwaWVudHMuICAiS25vd2luZ2x5IHJlbHlpbmciIG1lYW5zIHlvdSBoYXZlCithY3R1YWwga25vd2xlZGdlIHRoYXQsIGJ1dCBmb3IgdGhlIHBhdGVudCBsaWNlbnNlLCB5b3VyIGNvbnZleWluZyB0aGUKK2NvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKK2luIGEgY291bnRyeSwgd291bGQgaW5mcmluZ2Ugb25lIG9yIG1vcmUgaWRlbnRpZmlhYmxlIHBhdGVudHMgaW4gdGhhdAorY291bnRyeSB0aGF0IHlvdSBoYXZlIHJlYXNvbiB0byBiZWxpZXZlIGFyZSB2YWxpZC4KKworICBJZiwgcHVyc3VhbnQgdG8gb3IgaW4gY29ubmVjdGlvbiB3aXRoIGEgc2luZ2xlIHRyYW5zYWN0aW9uIG9yCithcnJhbmdlbWVudCwgeW91IGNvbnZleSwgb3IgcHJvcGFnYXRlIGJ5IHByb2N1cmluZyBjb252ZXlhbmNlIG9mLCBhCitjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKK3JlY2VpdmluZyB0aGUgY292ZXJlZCB3b3JrIGF1dGhvcml6aW5nIHRoZW0gdG8gdXNlLCBwcm9wYWdhdGUsIG1vZGlmeQorb3IgY29udmV5IGEgc3BlY2lmaWMgY29weSBvZiB0aGUgY292ZXJlZCB3b3JrLCB0aGVuIHRoZSBwYXRlbnQgbGljZW5zZQoreW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKK3dvcmsgYW5kIHdvcmtzIGJhc2VkIG9uIGl0LgorCisgIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgordGhlIHNjb3BlIG9mIGl0cyBjb3ZlcmFnZSwgcHJvaGliaXRzIHRoZSBleGVyY2lzZSBvZiwgb3IgaXMKK2NvbmRpdGlvbmVkIG9uIHRoZSBub24tZXhlcmNpc2Ugb2Ygb25lIG9yIG1vcmUgb2YgdGhlIHJpZ2h0cyB0aGF0IGFyZQorc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAord29yayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQgd2l0aCBhIHRoaXJkIHBhcnR5IHRoYXQgaXMKK2luIHRoZSBidXNpbmVzcyBvZiBkaXN0cmlidXRpbmcgc29mdHdhcmUsIHVuZGVyIHdoaWNoIHlvdSBtYWtlIHBheW1lbnQKK3RvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCit0aGUgd29yaywgYW5kIHVuZGVyIHdoaWNoIHRoZSB0aGlyZCBwYXJ0eSBncmFudHMsIHRvIGFueSBvZiB0aGUKK3BhcnRpZXMgd2hvIHdvdWxkIHJlY2VpdmUgdGhlIGNvdmVyZWQgd29yayBmcm9tIHlvdSwgYSBkaXNjcmltaW5hdG9yeQorcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yaworY29udmV5ZWQgYnkgeW91IChvciBjb3BpZXMgbWFkZSBmcm9tIHRob3NlIGNvcGllcyksIG9yIChiKSBwcmltYXJpbHkKK2ZvciBhbmQgaW4gY29ubmVjdGlvbiB3aXRoIHNwZWNpZmljIHByb2R1Y3RzIG9yIGNvbXBpbGF0aW9ucyB0aGF0Citjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCitvciB0aGF0IHBhdGVudCBsaWNlbnNlIHdhcyBncmFudGVkLCBwcmlvciB0byAyOCBNYXJjaCAyMDA3LgorCisgIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKK2FueSBpbXBsaWVkIGxpY2Vuc2Ugb3Igb3RoZXIgZGVmZW5zZXMgdG8gaW5mcmluZ2VtZW50IHRoYXQgbWF5CitvdGhlcndpc2UgYmUgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhcHBsaWNhYmxlIHBhdGVudCBsYXcuCisKKyAgMTIuIE5vIFN1cnJlbmRlciBvZiBPdGhlcnMnIEZyZWVkb20uCisKKyAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgorb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdAorZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QgY29udmV5IGEKK2NvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcworTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdSBtYXkKK25vdCBjb252ZXkgaXQgYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBhZ3JlZSB0byB0ZXJtcyB0aGF0IG9ibGlnYXRlIHlvdQordG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5Cit0aGUgUHJvZ3JhbSwgdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggdGhvc2UgdGVybXMgYW5kIHRoaXMKK0xpY2Vuc2Ugd291bGQgYmUgdG8gcmVmcmFpbiBlbnRpcmVseSBmcm9tIGNvbnZleWluZyB0aGUgUHJvZ3JhbS4KKworICAxMy4gVXNlIHdpdGggdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKworICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCitwZXJtaXNzaW9uIHRvIGxpbmsgb3IgY29tYmluZSBhbnkgY292ZXJlZCB3b3JrIHdpdGggYSB3b3JrIGxpY2Vuc2VkCit1bmRlciB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpbnRvIGEgc2luZ2xlCitjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCitMaWNlbnNlIHdpbGwgY29udGludWUgdG8gYXBwbHkgdG8gdGhlIHBhcnQgd2hpY2ggaXMgdGhlIGNvdmVyZWQgd29yaywKK2J1dCB0aGUgc3BlY2lhbCByZXF1aXJlbWVudHMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKK3NlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKK2NvbWJpbmF0aW9uIGFzIHN1Y2guCisKKyAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgorCisgIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zIG9mCit0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCitiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KK2FkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgorCisgIEVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlCitQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgY2VydGFpbiBudW1iZXJlZCB2ZXJzaW9uIG9mIHRoZSBHTlUgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKK29wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGVpdGhlciBvZiB0aGF0IG51bWJlcmVkCit2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKK0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZAorYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICBJZiB0aGUgUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIHByb3h5IGNhbiBkZWNpZGUgd2hpY2ggZnV0dXJlCit2ZXJzaW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgY2FuIGJlIHVzZWQsIHRoYXQgcHJveHkncworcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQordG8gY2hvb3NlIHRoYXQgdmVyc2lvbiBmb3IgdGhlIFByb2dyYW0uCisKKyAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKK3Blcm1pc3Npb25zLiAgSG93ZXZlciwgbm8gYWRkaXRpb25hbCBvYmxpZ2F0aW9ucyBhcmUgaW1wb3NlZCBvbiBhbnkKK2F1dGhvciBvciBjb3B5cmlnaHQgaG9sZGVyIGFzIGEgcmVzdWx0IG9mIHlvdXIgY2hvb3NpbmcgdG8gZm9sbG93IGEKK2xhdGVyIHZlcnNpb24uCisKKyAgMTUuIERpc2NsYWltZXIgb2YgV2FycmFudHkuCisKKyAgVEhFUkUgSVMgTk8gV0FSUkFOVFkgRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWQorQVBQTElDQUJMRSBMQVcuICBFWENFUFQgV0hFTiBPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhFIENPUFlSSUdIVAorSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQorT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCitUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCitQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQorSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIFBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GCitBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uCisKKyAgMTYuIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LgorCisgIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORworV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNT0RJRklFUyBBTkQvT1IgQ09OVkVZUworVEhFIFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZCitHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKK1VTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YKK0RBVEEgT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkgWU9VIE9SIFRISVJECitQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKK0VWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKK1NVQ0ggREFNQUdFUy4KKworICAxNy4gSW50ZXJwcmV0YXRpb24gb2YgU2VjdGlvbnMgMTUgYW5kIDE2LgorCisgIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAorYWJvdmUgY2Fubm90IGJlIGdpdmVuIGxvY2FsIGxlZ2FsIGVmZmVjdCBhY2NvcmRpbmcgdG8gdGhlaXIgdGVybXMsCityZXZpZXdpbmcgY291cnRzIHNoYWxsIGFwcGx5IGxvY2FsIGxhdyB0aGF0IG1vc3QgY2xvc2VseSBhcHByb3hpbWF0ZXMKK2FuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKK1Byb2dyYW0sIHVubGVzcyBhIHdhcnJhbnR5IG9yIGFzc3VtcHRpb24gb2YgbGlhYmlsaXR5IGFjY29tcGFuaWVzIGEKK2NvcHkgb2YgdGhlIFByb2dyYW0gaW4gcmV0dXJuIGZvciBhIGZlZS4KKworICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKK2ZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgorCisgIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0Cit0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CitzdGF0ZSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0Cit0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KKworICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CisgICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCisKKyAgSWYgdGhlIHByb2dyYW0gZG9lcyB0ZXJtaW5hbCBpbnRlcmFjdGlvbiwgbWFrZSBpdCBvdXRwdXQgYSBzaG9ydAorbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgorCisgICAgPHByb2dyYW0+ICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgorICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCisgICAgVGhpcyBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdAorICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KKworVGhlIGh5cG90aGV0aWNhbCBjb21tYW5kcyBgc2hvdyB3JyBhbmQgYHNob3cgYycgc2hvdWxkIHNob3cgdGhlIGFwcHJvcHJpYXRlCitwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgeW91ciBwcm9ncmFtJ3MgY29tbWFuZHMKK21pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KKworICBZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3Igc2Nob29sLAoraWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KK0ZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMsIGFuZCBob3cgdG8gYXBwbHkgYW5kIGZvbGxvdyB0aGUgR05VIEdQTCwgc2VlCis8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90IHBlcm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbQoraW50byBwcm9wcmlldGFyeSBwcm9ncmFtcy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJvdXRpbmUgbGlicmFyeSwgeW91CittYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKK3RoZSBsaWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50IHRvIGRvLCB1c2UgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuICBCdXQgZmlyc3QsIHBsZWFzZSByZWFkCis8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+LgpkaWZmIC0tZ2l0IGEvUkVBRE1FLWRldi5tZCBiL1JFQURNRS1kZXYubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmOGZhMwotLS0gL2Rldi9udWxsCisrKyBiL1JFQURNRS1kZXYubWQKQEAgLTAsMCArMSw2NyBAQAorTm90ZXMgZm9yIG5kbi1hdG1vcyBkZXZlbG9wZXJzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUmVxdWlyZW1lbnRzCistLS0tLS0tLS0tLS0KKworQ29udHJpYnV0aW9ucyB0byBuZG4tYXRtb3MgbXVzdCBiZSBsaWNlbnNlZCB1bmRlciBHUEwgMy4wIG9yIGNvbXBhdGlibGUgbGljZW5zZS4gIElmIHlvdSBhcmUKK2Nob29zaW5nIEdQTCAzLjAsIHBsZWFzZSB1c2UgdGhlIGZvbGxvd2luZyBsaWNlbnNlIGJvaWxlcnBsYXRlIGluIGFsbCBgLmhwcGAgYW5kIGAuY3BwYAorZmlsZXM6CisKK0luY2x1ZGUgdGhlIGZvbGxvd2luZyBsaWNlbnNlIGJvaWxlcnBsYXRlIGludG8gYWxsIGAuaHBwYCBhbmQgYC5jcHBgIGZpbGVzOgorCisgICAgLyogLSotIE1vZGU6QysrOyBjLWZpbGUtc3R5bGU6ImdudSI7IGluZGVudC10YWJzLW1vZGU6bmlsOyAtKi0gKi8KKyAgICAvKioKKyAgICAgKiBDb3B5cmlnaHQgKGMpIFtZZWFyKHMpXSwgIFtDb3B5cmlnaHQgSG9sZGVyKHMpXS4KKyAgICAgKgorICAgICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIG5kbi1hdG1vcy4KKyAgICAgKgorICAgICAqIG5kbi1hdG1vcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcworICAgICAqIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAgICAgKiBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICAgICAqCisgICAgICogbmRuLWF0bW9zIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsKKyAgICAgKiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICAgICAqIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoCisgICAgICogbmRuLWF0bW9zLCBlLmcuLCBpbiBDT1BZSU5HLm1kIGZpbGUuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgICAgICoKKyAgICAgKiBTZWUgQVVUSE9SUy5tZCBmb3IgY29tcGxldGUgbGlzdCBvZiBuZG4tYXRtb3MgYXV0aG9ycyBhbmQgY29udHJpYnV0b3JzLgorICAgICAqLworCisKK1JlY29tbWVuZGF0aW9ucworLS0tLS0tLS0tLS0tLS0tCisKK25kbi1hdG1vcyBjb2RlIGlzIHN1YmplY3QgdG8gTkZEIFtjb2RlIHN0eWxlXQorKGh0dHA6Ly9yZWRtaW5lLm5hbWVkLWRhdGEubmV0L3Byb2plY3RzL25mZC93aWtpL0NvZGVTdHlsZSkuCisKKworUnVubmluZyB1bml0LXRlc3RzCistLS0tLS0tLS0tLS0tLS0tLS0KKworVG8gcnVuIHVuaXQgdGVzdHMsIG5kbi1hdG1vcyBuZWVkcyB0byBiZSBjb25maWd1cmVkIGFuZCBidWlsZCB3aXRoIHVuaXQgdGVzdCBzdXBwb3J0OgorCisgICAgLi93YWYgY29uZmlndXJlIC0td2l0aC10ZXN0cworICAgIC4vd2FmCisKK1RoZSBzaW1wbGVzdCB3YXkgdG8gcnVuIHRlc3RzLCBpcyBqdXN0IHRvIHJ1biB0aGUgY29tcGlsZWQgYmluYXJ5IHdpdGhvdXQgYW55IHBhcmFtZXRlcnM6CisKKyAgICAjIFJ1biBuZG4tYXRtb3MgY2F0YWxvZyB1bml0IHRlc3RzCisgICAgLi9idWlsZC9jYXRhbG9nL3VuaXQtdGVzdHMKKworSG93ZXZlciwgW0Jvb3N0LlRlc3QgZnJhbWV3b3JrXShodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvbGlicy8xXzQ4XzAvbGlicy90ZXN0L2RvYy9odG1sLykKK2lzIHZlcnkgZmxleGlibGUgYW5kIGFsbG93cyBhIG51bWJlciBvZiBydW4tdGltZSBjdXN0b21pemF0aW9uIG9mIHdoYXQgdGVzdHMgc2hvdWxkIGJlIHJ1bi4KK0ZvciBleGFtcGxlLCBpdCBpcyBwb3NzaWJsZSB0byBjaG9vc2UgdG8gcnVuIG9ubHkgYSBzcGVjaWZpYyB0ZXN0IHN1aXRlLCBvbmx5IGEgc3BlY2lmaWMKK3Rlc3QgY2FzZSB3aXRoaW4gYSBzdWl0ZSwgb3Igc3BlY2lmaWMgdGVzdCBjYXNlcyB3aXRoaW4gc3BlY2lmaWMgdGVzdCBzdWl0ZXMuCisKK0J5IGRlZmF1bHQsIEJvb3N0LlRlc3QgZnJhbWV3b3JrIHdpbGwgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCBvbmx5IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuCitJZiBpdCBpcyBkZXNpcmVkIHRvIHNlZSB2ZXJib3NlIG91dHB1dCAocmVzdWx0IG9mIGVhY2ggdGVzdCBhc3NlcnRpb24pLCBhZGQgYC1sIGFsbGAKK29wdGlvbiB0byBgLi9idWlsZC9jYXRhbG9nL3VuaXQtdGVzdHNgIGNvbW1hbmQuICBUbyBzZWUgdGVzdCBwcm9ncmVzcywgeW91IGNhbiB1c2UgYC1sIHRlc3Rfc3VpdGVgCitvciBgLXBgIHRvIHNob3cgcHJvZ3Jlc3MgYmFyLgorCitUaGVyZSBhcmUgbWFueSBtb3JlIGNvbW1hbmQgbGluZSBvcHRpb25zIGF2YWlsYWJsZSwgaW5mb3JtYXRpb24gYWJvdXQKK3doaWNoIGNhbiBiZSBvYnRhaW5lZCBlaXRoZXIgZnJvbSB0aGUgY29tbWFuZCBsaW5lIHVzaW5nIGAtLWhlbHBgCitzd2l0Y2gsIG9yIG9ubGluZSBvbiBbQm9vc3QuVGVzdCBsaWJyYXJ5XShodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvbGlicy8xXzQ4XzAvbGlicy90ZXN0L2RvYy9odG1sLykKK3dlYnNpdGUuCmRpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZjMmRlNQotLS0gL2Rldi9udWxsCisrKyBiL1JFQURNRS5tZApAQCAtMCwwICsxLDUgQEAKKworIFRoaXMgc29mdHdhcmUgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCBvbmdvaW5nIGNsaW1hdGUgbW9kZWwgcmVzZWFyY2ggYXQgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eSwKKyBCZXJrZWxleSBhbmQgb3RoZXIgaW5zdGl0dXRlcy4KKworIFRoaXMgc29mdHdhcmUgcHJvdmlkZXMgQVBJIGludGVyZmFjZSB0byBwdWJsaXNoLCBxdWVyeSBhbmQgcmV0cmlldmUgQ2xpbWF0ZSBkYXRhc2V0cyB1c2luZyBORE4uCmRpZmYgLS1naXQgYS9jYXRhbG9nL3NyYy9tYWluLmNwcCBiL2NhdGFsb2cvc3JjL21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ZTNjY2YKLS0tIC9kZXYvbnVsbAorKysgYi9jYXRhbG9nL3NyYy9tYWluLmNwcApAQCAtMCwwICsxLDMzIEBACisvKiAtKi0gTW9kZTogQysrOyBjLWZpbGUtc3R5bGU6ICJnbnUiOyBpbmRlbnQtdGFicy1tb2RlOm5pbCAtKi0gKi8KKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgbmRuLWF0bW9zLgorICoKKyAqIG5kbi1hdG1vcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQorICogdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogbmRuLWF0bW9zIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorICogV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorICogUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbmQgR05VIExlc3NlcgorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIG5kbi1hdG1vcywgZS5nLiwgaW4gQ09QWUlORy5tZCBmaWxlLiAgSWYgbm90LCBzZWUKKyAqIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqCisgKiBTZWUgQVVUSE9SUy5tZCBmb3IgY29tcGxldGUgbGlzdCBvZiBuZG4tYXRtb3MgYXV0aG9ycyBhbmQgY29udHJpYnV0b3JzLgorICovCisKKyNpbmNsdWRlIDxDaHJvbm9TeW5jL3NvY2tldC5ocHA+CisjaW5jbHVkZSA8bmRuLWN4eC9mYWNlLmhwcD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBuZG47CisKK2ludCBtYWluKCkKK3sKKyAgRmFjZSBmYWNlOworICBzaGFyZWRfcHRyPGNocm9ub3N5bmM6OlNvY2tldD4gc29ja2V0OworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2NhdGFsb2cvdGVzdHMvYm9vc3QtdGVzdC5ocHAgYi9jYXRhbG9nL3Rlc3RzL2Jvb3N0LXRlc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMDFlOGYKLS0tIC9kZXYvbnVsbAorKysgYi9jYXRhbG9nL3Rlc3RzL2Jvb3N0LXRlc3QuaHBwCkBAIC0wLDAgKzEsMzcgQEAKKy8qIC0qLSBNb2RlOkMrKzsgYy1maWxlLXN0eWxlOiJnbnUiOyBpbmRlbnQtdGFicy1tb2RlOm5pbDsgLSotICovCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxNC0yMDE1LCAgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICBBcml6b25hIEJvYXJkIG9mIFJlZ2VudHMsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHksCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaXZlcnNpdHkgUGllcnJlICYgTWFyaWUgQ3VyaWUsIFNvcmJvbm5lIFVuaXZlcnNpdHksCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc2hpbmd0b24gVW5pdmVyc2l0eSBpbiBTdC4gTG91aXMsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJlaWppbmcgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBVbml2ZXJzaXR5IG9mIE1lbXBoaXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBORkQgKE5hbWVkIERhdGEgTmV0d29ya2luZyBGb3J3YXJkaW5nIERhZW1vbikuCisgKiBTZWUgQVVUSE9SUy5tZCBmb3IgY29tcGxldGUgbGlzdCBvZiBORkQgYXV0aG9ycyBhbmQgY29udHJpYnV0b3JzLgorICoKKyAqIE5GRCBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcworICogb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICogZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBORkQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOworICogd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAorICogTkZELCBlLmcuLCBpbiBDT1BZSU5HLm1kIGZpbGUuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBORE5fQVRNT1NfVEVTVFNfQk9PU1RfVEVTVF9IUFAKKyNkZWZpbmUgTkROX0FUTU9TX1RFU1RTX0JPT1NUX1RFU1RfSFBQCisKKy8vIHN1cHByZXNzIHdhcm5pbmdzIGZyb20gQm9vc3QuVGVzdAorI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgorI3ByYWdtYSBjbGFuZyBzeXN0ZW1faGVhZGVyCisKKyNpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY29uY2VwdF9jaGVjay5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdGVzdC9vdXRwdXRfdGVzdF9zdHJlYW0uaHBwPgorCisjZW5kaWYgLy8gTkROX0FUTU9TX1RFU1RTX0JPT1NUX1RFU1RfSFBQCmRpZmYgLS1naXQgYS9jYXRhbG9nL3Rlc3RzL21haW4uY3BwIGIvY2F0YWxvZy90ZXN0cy9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWM0ZTBmCi0tLSAvZGV2L251bGwKKysrIGIvY2F0YWxvZy90ZXN0cy9tYWluLmNwcApAQCAtMCwwICsxLDI4IEBACisvKiAtKi0gTW9kZTpDKys7IGMtZmlsZS1zdHlsZToiZ251IjsgaW5kZW50LXRhYnMtbW9kZTpuaWw7IC0qLSAqLworLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSwgIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJpem9uYSBCb2FyZCBvZiBSZWdlbnRzLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LAorICogICAgICAgICAgICAgICAgICAgICAgICAgICBVbml2ZXJzaXR5IFBpZXJyZSAmIE1hcmllIEN1cmllLCBTb3Jib25uZSBVbml2ZXJzaXR5LAorICogICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNoaW5ndG9uIFVuaXZlcnNpdHkgaW4gU3QuIExvdWlzLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICBCZWlqaW5nIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgTkZEIChOYW1lZCBEYXRhIE5ldHdvcmtpbmcgRm9yd2FyZGluZyBEYWVtb24pLgorICogU2VlIEFVVEhPUlMubWQgZm9yIGNvbXBsZXRlIGxpc3Qgb2YgTkZEIGF1dGhvcnMgYW5kIGNvbnRyaWJ1dG9ycy4KKyAqCisgKiBORkQgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMKKyAqIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAqIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogTkZEIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsKKyAqIHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgKKyAqIE5GRCwgZS5nLiwgaW4gQ09QWUlORy5tZCBmaWxlLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICoqLworCisjZGVmaW5lIEJPT1NUX1RFU1RfTUFJTiAxCisjZGVmaW5lIEJPT1NUX1RFU1RfRFlOX0xJTksgMQorCisjaW5jbHVkZSAiYm9vc3QtdGVzdC5ocHAiCmRpZmYgLS1naXQgYS9jYXRhbG9nL3Rlc3RzL3VuaXQtdGVzdHMvc2ltcGxlLmNwcCBiL2NhdGFsb2cvdGVzdHMvdW5pdC10ZXN0cy9zaW1wbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YjRmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9jYXRhbG9nL3Rlc3RzL3VuaXQtdGVzdHMvc2ltcGxlLmNwcApAQCAtMCwwICsxLDM3IEBACisvKiAtKi0gTW9kZTpDKys7IGMtZmlsZS1zdHlsZToiZ251IjsgaW5kZW50LXRhYnMtbW9kZTpuaWw7IC0qLSAqLworLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsICBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIG5kbi1hdG1vcy4KKyAqCisgKiBuZG4tYXRtb3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKKyAqIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIG5kbi1hdG1vcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGNvcGllcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kIEdOVSBMZXNzZXIKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aCBuZG4tYXRtb3MsIGUuZy4sIGluIENPUFlJTkcubWQgZmlsZS4gIElmIG5vdCwgc2VlCisgKiA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKgorICogU2VlIEFVVEhPUlMubWQgZm9yIGNvbXBsZXRlIGxpc3Qgb2YgbmRuLWF0bW9zIGF1dGhvcnMgYW5kIGNvbnRyaWJ1dG9ycy4KKyAqLworCisjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgorCituYW1lc3BhY2UgTmRuQXRtb3MgeworbmFtZXNwYWNlIHRlc3QgeworCitCT09TVF9BVVRPX1RFU1RfU1VJVEUoTWFzdGVyU3VpdGUpCisKK0JPT1NUX0FVVE9fVEVTVF9DQVNFKFNpbXBsZVRlc3QpCit7CisgIEJPT1NUX0NIRUNLKDA9PTApOworfQorCitCT09TVF9BVVRPX1RFU1RfU1VJVEVfRU5EKCkKKworfSAvL25hbWVzcGFjZSB0ZXN0Cit9IC8vbmFtZXNwYWNlIG5kbi1hdG1vcwpkaWZmIC0tZ2l0IGEvY2F0YWxvZy90ZXN0cy93c2NyaXB0IGIvY2F0YWxvZy90ZXN0cy93c2NyaXB0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxZTBiMDkKLS0tIC9kZXYvbnVsbAorKysgYi9jYXRhbG9nL3Rlc3RzL3dzY3JpcHQKQEAgLTAsMCArMSw0NCBAQAorIyAtKi0gTW9kZTogcHl0aG9uOyBweS1pbmRlbnQtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IGNvZGluZzogdXRmLTg7IC0qLQorCisiIiIKKyBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSwgIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwKKyAgICAgICAgICAgICAgICAgICAgMjAxNSwgIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuCisKKyBUaGlzIGZpbGUgaXMgcGFydCBvZiBuZG4tY3h4IGxpYnJhcnkgKE5ETiBDKysgbGlicmFyeSB3aXRoIGVYcGVyaW1lbnRhbCBlWHRlbnNpb25zKS4KKworIG5kbi1jeHggbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQorIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIG5kbi1jeHggbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBjb3BpZXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFuZCBHTlUgTGVzc2VyCisgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoIG5kbi1jeHgsIGUuZy4sIGluIENPUFlJTkcubWQgZmlsZS4gIElmIG5vdCwgc2VlCisgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisgU2VlIEFVVEhPUlMubWQgZm9yIGNvbXBsZXRlIGxpc3Qgb2YgbmRuLWN4eCBhdXRob3JzIGFuZCBjb250cmlidXRvcnMuCisiIiIKKwordG9wID0gJy4uJworCitkZWYgYnVpbGQoYmxkKToKKyAgICAjIHVuaXQgdGVzdCBvYmplY3RzCisgICAgdW5pdF90ZXN0c19vYmplY3RzID0gYmxkKAorICAgICAgICB0YXJnZXQ9InVuaXQtdGVzdC1vYmplY3RzIiwKKyAgICAgICAgbmFtZT0idW5pdC10ZXN0LW9iamVjdHMiLAorICAgICAgICBmZWF0dXJlcz0iY3h4IiwKKyAgICAgICAgc291cmNlPWJsZC5wYXRoLmFudF9nbG9iKFsndW5pdC10ZXN0cy8qKi8qLmNwcCddKSwKKyAgICAgICAgdXNlPSduZG4tY3h4IEJPT1NUJywKKyAgICAgICAgaW5jbHVkZXM9Jy4nLAorICAgICAgICBpbnN0YWxsX3BhdGg9Tm9uZSkKKworICAgICMgdW5pdCB0ZXN0IGFwcAorICAgIGJsZChmZWF0dXJlcz0nY3h4IGN4eHByb2dyYW0nLAorICAgICAgICB0YXJnZXQ9Jy4uL3VuaXQtdGVzdHMnLAorICAgICAgICBuYW1lPSd1bml0LXRlc3RzLW1haW4tdW5pdCcsCisgICAgICAgIHNvdXJjZT0ibWFpbi5jcHAiLAorICAgICAgICB1c2U9J25kbi1jeHggdW5pdC10ZXN0LW9iamVjdHMgQk9PU1QnLAorICAgICAgICBpbnN0YWxsX3BhdGg9Tm9uZSkKKwpkaWZmIC0tZ2l0IGEvd2FmIGIvd2FmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjYThjN2IKLS0tIC9kZXYvbnVsbAorKysgYi93YWYKQEAgLTAsMCArMSwxNjggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBlbmNvZGluZzogSVNPODg1OS0xCisjIFRob21hcyBOYWd5LCAyMDA1LTIwMTUKKworIiIiCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworYXJlIG1ldDoKKworMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKworMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisKKzMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKK1dBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKK0RJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKK1NFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAorU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCitJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIiIiCisKK2ltcG9ydCBvcywgc3lzLCBpbnNwZWN0CisKK1ZFUlNJT049IjEuOC41IgorUkVWSVNJT049ImQxNzhkZjdhOWJiNzMyZGIxMDkwMDFkNmI0NjE1NTBmIgorSU5TVEFMTD0nJworQzE9JyM4JworQzI9JyMuJworQzM9JyMpJworY3dkID0gb3MuZ2V0Y3dkKCkKK2pvaW4gPSBvcy5wYXRoLmpvaW4KKworCitXQUY9J3dhZicKK2RlZiBiKHgpOgorCXJldHVybiB4CitpZiBzeXMuaGV4dmVyc2lvbj4weDMwMDAwMGY6CisJV0FGPSd3YWYzJworCWRlZiBiKHgpOgorCQlyZXR1cm4geC5lbmNvZGUoKQorCitkZWYgZXJyKG0pOgorCXByaW50KCgnXDAzM1s5MW1FcnJvcjogJXNcMDMzWzBtJyAlIG0pKQorCXN5cy5leGl0KDEpCisKK2RlZiB1bnBhY2tfd2FmZGlyKGRpciwgc3JjKToKKwlmID0gb3BlbihzcmMsJ3JiJykKKwljID0gJ2NvcnJ1cHQgYXJjaGl2ZSAoJWQpJworCXdoaWxlIDE6CisJCWxpbmUgPSBmLnJlYWRsaW5lKCkKKwkJaWYgbm90IGxpbmU6IGVycigncnVuIHdhZi1saWdodCBmcm9tIGEgZm9sZGVyIGNvbnRhaW5pbmcgd2FmbGliJykKKwkJaWYgbGluZSA9PSBiKCcjPT0+XG4nKToKKwkJCXR4dCA9IGYucmVhZGxpbmUoKQorCQkJaWYgbm90IHR4dDogZXJyKGMgJSAxKQorCQkJaWYgZi5yZWFkbGluZSgpICE9IGIoJyM8PT1cbicpOiBlcnIoYyAlIDIpCisJCQlicmVhaworCWlmIG5vdCB0eHQ6IGVycihjICUgMykKKwl0eHQgPSB0eHRbMTotMV0ucmVwbGFjZShiKEMxKSwgYignXG4nKSkucmVwbGFjZShiKEMyKSwgYignXHInKSkucmVwbGFjZShiKEMzKSwgYignXHgwMCcpKQorCisJaW1wb3J0IHNodXRpbCwgdGFyZmlsZQorCXRyeTogc2h1dGlsLnJtdHJlZShkaXIpCisJZXhjZXB0IE9TRXJyb3I6IHBhc3MKKwl0cnk6CisJCWZvciB4IGluICgnVG9vbHMnLCAnZXh0cmFzJyk6CisJCQlvcy5tYWtlZGlycyhqb2luKGRpciwgJ3dhZmxpYicsIHgpKQorCWV4Y2VwdCBPU0Vycm9yOgorCQllcnIoIkNhbm5vdCB1bnBhY2sgd2FmIGxpYiBpbnRvICVzXG5Nb3ZlIHdhZiBpbiBhIHdyaXRhYmxlIGRpcmVjdG9yeSIgJSBkaXIpCisKKwlvcy5jaGRpcihkaXIpCisJdG1wID0gJ3QuYnoyJworCXQgPSBvcGVuKHRtcCwnd2InKQorCXRyeTogdC53cml0ZSh0eHQpCisJZmluYWxseTogdC5jbG9zZSgpCisKKwl0cnk6CisJCXQgPSB0YXJmaWxlLm9wZW4odG1wKQorCWV4Y2VwdDoKKwkJdHJ5OgorCQkJb3Muc3lzdGVtKCdidW56aXAyIHQuYnoyJykKKwkJCXQgPSB0YXJmaWxlLm9wZW4oJ3QnKQorCQkJdG1wID0gJ3QnCisJCWV4Y2VwdDoKKwkJCW9zLmNoZGlyKGN3ZCkKKwkJCXRyeTogc2h1dGlsLnJtdHJlZShkaXIpCisJCQlleGNlcHQgT1NFcnJvcjogcGFzcworCQkJZXJyKCJXYWYgY2Fubm90IGJlIHVucGFja2VkLCBjaGVjayB0aGF0IGJ6aXAyIHN1cHBvcnQgaXMgcHJlc2VudCIpCisKKwl0cnk6CisJCWZvciB4IGluIHQ6IHQuZXh0cmFjdCh4KQorCWZpbmFsbHk6CisJCXQuY2xvc2UoKQorCisJZm9yIHggaW4gKCdUb29scycsICdleHRyYXMnKToKKwkJb3MuY2htb2Qoam9pbignd2FmbGliJyx4KSwgNDkzKQorCisJaWYgc3lzLmhleHZlcnNpb248MHgzMDAwMDBmOgorCQlzeXMucGF0aCA9IFtqb2luKGRpciwgJ3dhZmxpYicpXSArIHN5cy5wYXRoCisJCWltcG9ydCBmaXhweTIKKwkJZml4cHkyLmZpeGRpcihkaXIpCisKKwlvcy5yZW1vdmUodG1wKQorCW9zLmNoZGlyKGN3ZCkKKworCXRyeTogZGlyID0gdW5pY29kZShkaXIsICdtYmNzJykKKwlleGNlcHQ6IHBhc3MKKwl0cnk6CisJCWZyb20gY3R5cGVzIGltcG9ydCB3aW5kbGwKKwkJd2luZGxsLmtlcm5lbDMyLlNldEZpbGVBdHRyaWJ1dGVzVyhkaXIsIDIpCisJZXhjZXB0OgorCQlwYXNzCisKK2RlZiB0ZXN0KGRpcik6CisJdHJ5OgorCQlvcy5zdGF0KGpvaW4oZGlyLCAnd2FmbGliJykpCisJCXJldHVybiBvcy5wYXRoLmFic3BhdGgoZGlyKQorCWV4Y2VwdCBPU0Vycm9yOgorCQlwYXNzCisKK2RlZiBmaW5kX2xpYigpOgorCXNyYyA9IG9zLnBhdGguYWJzcGF0aChpbnNwZWN0LmdldGZpbGUoaW5zcGVjdC5nZXRtb2R1bGUoZXJyKSkpCisJYmFzZSwgbmFtZSA9IG9zLnBhdGguc3BsaXQoc3JjKQorCisJI2RldnMgdXNlICRXQUZESVIKKwl3PXRlc3Qob3MuZW52aXJvbi5nZXQoJ1dBRkRJUicsICcnKSkKKwlpZiB3OiByZXR1cm4gdworCisJI3dhZi1saWdodAorCWlmIG5hbWUuZW5kc3dpdGgoJ3dhZi1saWdodCcpOgorCQl3ID0gdGVzdChiYXNlKQorCQlpZiB3OiByZXR1cm4gdworCQllcnIoJ3dhZi1saWdodCByZXF1aXJlcyB3YWZsaWIgLT4gZXhwb3J0IFdBRkRJUj0vZm9sZGVyJykKKworCWRpcm5hbWUgPSAnJXMtJXMtJXMnICUgKFdBRiwgVkVSU0lPTiwgUkVWSVNJT04pCisJZm9yIGkgaW4gKElOU1RBTEwsJy91c3InLCcvdXNyL2xvY2FsJywnL29wdCcpOgorCQl3ID0gdGVzdChpICsgJy9saWIvJyArIGRpcm5hbWUpCisJCWlmIHc6IHJldHVybiB3CisKKwkjd2FmLWxvY2FsCisJZGlyID0gam9pbihiYXNlLCAoc3lzLnBsYXRmb3JtICE9ICd3aW4zMicgYW5kICcuJyBvciAnJykgKyBkaXJuYW1lKQorCXcgPSB0ZXN0KGRpcikKKwlpZiB3OiByZXR1cm4gdworCisJI3VucGFjaworCXVucGFja193YWZkaXIoZGlyLCBzcmMpCisJcmV0dXJuIGRpcgorCit3YWZkaXIgPSBmaW5kX2xpYigpCitzeXMucGF0aC5pbnNlcnQoMCwgd2FmZGlyKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorCisJZnJvbSB3YWZsaWIgaW1wb3J0IFNjcmlwdGluZworCVNjcmlwdGluZy53YWZfZW50cnlfcG9pbnQoY3dkLCBWRVJTSU9OLCB3YWZkaXIpCisKKyM9PT4KKyNCWmg5MUFZJlNZjeq53AMm6////7wCQH///////////////xCGhiKmVIASgSMpAWEygIBYYeyc915ruEAjKSMpIykjKSMpIykjKSMpIykjKSMpIykjKSMpIykjKSMpIykjKfrmRNqx3MXTZV9au2wy2GmXbVs319zuXdwcWivZqS6ata1PnO6j3ZOpjNZatduPr3Wny++r7lwmfb10G8UruMojKXV7u95uR7adHT0e9jprk56vW49dV06N88cdmNZt3M8e5y7nW5nqvemgKebfXzt3w6AVF98bbe3ZXr3dsIFsWvpxT6++wCMpIykoIy4jKXzsIyn4GltrIymb7UpoByMpPc2g97eYIzg9t2lg7m9HI9e5TnWoaCMp6A6HX3e1u3o6Iy7AAUaEhSM40PR0ctDbBk1SUVKVQUBIDtgO93UFKS7FMpSAogJbbQb29enugxdHvs+qr6XzNd89MNe93Ot73S69uAxVOwx7adNO26bNr7vcpVtVY+ldzfHvetdvfey9q2y3es82693tzVW+71r3nazvN93e97HuR9Ms17vrunxrPu7mzuV76++Pfbeym5gbb092bPTl7uHV6BvTIymzSOgaPT01nM9xN717k0GgIy4U973VEuspJJBTe9ztrw9dIzhIqqEBKAPQ6iMu7BuqW1rSW3e97WHu2lnZ7wtqdwe95e959733WdgaFTs0Xt66yKPnZ9b5994G98e3nWqbO70qm20Dq+0mj2xrO3oB773vefat977vPiAr7viu2efXWeMZ1lAolVovrjhmYt59tyoqvZu+9932H2c32xe2e7695ja93vPb3vd4zXXX33vvVEs3fXm56ZXYMHaPb2N7yd9r2Ba1ehmca73WPTIpyeR6UpkPexShbeEd7d299RSoG0OuczvmXu+82xR9m7vMbzXt2c77unT6Pce6Lfc0r1ub3tvZXtOfdxzvZ67eXx7WIykveW+effPfXt3kPj7xevXmSAUjKSoVIzgFXSz7h3YjOPWrt0x2SpWXWbQUejeb09emg7mOTXWG9GdpMu0VcLL2HuwI8vbYaVB5Hs+769HvgCMpz3ctuiMpATr3tz7bva275vr7x53wTnu77ube976697H2zvch9qnnOiFtrpK7ckaGnxPT32+dfd3fWlrrjsN67xEPe95Vz22e+z4t6+4a7t1vAaQDQ9r77tPu3qfbN0DvVePSWtHlFdvXO3XRPtuR7r3fS9nnW77bt9O7Lxt33b7Ly3Hujx7Mb6Hk7y30V9ufLOsvXOgsFtkjKXfbpo7rZzStVu9ewzpug19BnXbwvot76Ft7DFPrfebnvYd8AwFEr6sDJ93tB6+vfdcnr3C9wevu9fee53rD129tG9vvuX0H29NfZu+9d77277fde2897Dd7Z93cHp9vc5u46Cn0DPZrodCu9zobd2Q+qD3hHnBpQQ7hx11Ou7PgIyk2x6NGgCM4LrsjOOtMIykEj7ORttnvi+7uaGtAkAdmKFbO+yvvsO9QCGn3N48TXWH16vvO9L2+9977dPteubu256e9vdjREouXa5dnWDrh3N9vdmtPdd23U5s9d0ay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YWJzLW1vZGU6IG5pbDsgY29kaW5nOiB1dGYtODsgLSotCisKKyIiIgorQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUsICBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEFyaXpvbmEgQm9hcmQgb2YgUmVnZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdmVyc2l0eSBQaWVycmUgJiBNYXJpZSBDdXJpZSwgU29yYm9ubmUgVW5pdmVyc2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzaGluZ3RvbiBVbml2ZXJzaXR5IGluIFN0LiBMb3VpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQmVpamluZyBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neQorCitUaGlzIGZpbGUgaXMgcGFydCBvZiBORkQgKE5hbWVkIERhdGEgTmV0d29ya2luZyBGb3J3YXJkaW5nIERhZW1vbikuCitTZWUgQVVUSE9SUy5tZCBmb3IgY29tcGxldGUgbGlzdCBvZiBORkQgYXV0aG9ycyBhbmQgY29udHJpYnV0b3JzLgorCitORkQgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMKK29mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK2VpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKK05GRCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7Cit3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAorTkZELCBlLmcuLCBpbiBDT1BZSU5HLm1kIGZpbGUuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisiIiIKKworCitWRVJTSU9OPScwLjEnCitBUFBOQU1FPSduZG4tYXRtb3MnCisKK2Zyb20gd2FmbGliIGltcG9ydCBDb25maWd1cmUsIFV0aWxzLCBMb2dzLCBDb250ZXh0CitpbXBvcnQgb3MKKworZGVmIG9wdGlvbnMob3B0KToKKyAgICBvcHQubG9hZChbJ2NvbXBpbGVyX2N4eCcsICdnbnVfZGlycyddKQorCisgICAgb3B0LmxvYWQoWydkZWZhdWx0LWNvbXBpbGVyLWZsYWdzJywgJ2Jvb3N0J10sCisgICAgICAgICAgICAgIHRvb2xkaXI9Wycud2FmLXRvb2xzJ10pCisKKyAgICBvcHQgPSBvcHQuYWRkX29wdGlvbl9ncm91cCgnbmRuLWF0bW9zIE9wdGlvbnMnKQorCisgICAgb3B0LmFkZF9vcHRpb24oJy0td2l0aC10ZXN0cycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgZGVzdD0nd2l0aF90ZXN0cycsIGhlbHA9JycnYnVpbGQgdW5pdCB0ZXN0cycnJykKKworZGVmIGNvbmZpZ3VyZShjb25mKToKKyAgICBjb25mLmxvYWQoWydjb21waWxlcl9jeHgnLCAnZGVmYXVsdC1jb21waWxlci1mbGFncycsICdib29zdCcsICdnbnVfZGlycyddKQorCisgICAgY29uZi5maW5kX3Byb2dyYW0oJ2Jhc2gnLCB2YXI9J0JBU0gnKQorCisgICAgaWYgbm90IG9zLmVudmlyb24uaGFzX2tleSgnUEtHX0NPTkZJR19QQVRIJyk6CisgICAgICAgIG9zLmVudmlyb25bJ1BLR19DT05GSUdfUEFUSCddID0gJzonLmpvaW4oWworICAgICAgICAgICAgJy91c3IvbG9jYWwvbGliL3BrZ2NvbmZpZycsCisgICAgICAgICAgICAnL29wdC9sb2NhbC9saWIvcGtnY29uZmlnJ10pCisKKyAgICBjb25mLmNoZWNrX2NmZyhwYWNrYWdlPSdsaWJuZG4tY3h4JywgYXJncz1bJy0tY2ZsYWdzJywgJy0tbGlicyddLAorICAgICAgICAgICAgICAgICAgIHVzZWxpYl9zdG9yZT0nTkROX0NYWCcsIG1hbmRhdG9yeT1UcnVlKQorCisgICAgY29uZi5jaGVja19jZmcgKHBhY2thZ2U9J0Nocm9ub1N5bmMnLCBhcmdzPVsnQ2hyb25vU3luYyA+PSAwLjEnLCAnLS1jZmxhZ3MnLCAnLS1saWJzJ10sCisgICAgICAgICAgICAgICAgICAgIHVzZWxpYl9zdG9yZT0nU1lOQycsIG1hbmRhdG9yeT1UcnVlKQorCisgICAgYm9vc3RfbGlicyA9ICdzeXN0ZW0gcmFuZG9tIHRocmVhZCBmaWxlc3lzdGVtJworCisgICAgaWYgY29uZi5vcHRpb25zLndpdGhfdGVzdHM6CisgICAgICAgIGNvbmYuZW52WydXSVRIX1RFU1RTJ10gPSAxCisgICAgICAgIGNvbmYuZGVmaW5lKCdXSVRIX1RFU1RTJywgMSk7CisgICAgICAgIGJvb3N0X2xpYnMgKz0gJyB1bml0X3Rlc3RfZnJhbWV3b3JrJworCisgICAgY29uZi5jaGVja19ib29zdChsaWI9Ym9vc3RfbGlicywgbWFuZGF0b3J5PVRydWUpCisgICAgaWYgY29uZi5lbnYuQk9PU1RfVkVSU0lPTl9OVU1CRVIgPCAxMDQ4MDA6CisgICAgICAgIExvZ3MuZXJyb3IoIk1pbmltdW0gcmVxdWlyZWQgYm9vc3QgdmVyc2lvbiBpcyAxLjQ4LjAiKQorICAgICAgICBMb2dzLmVycm9yKCJQbGVhc2UgdXBncmFkZSB5b3VyIGRpc3RyaWJ1dGlvbiBvciBpbnN0YWxsIGN1c3RvbSBib29zdCBsaWJyYXJpZXMiICsKKyAgICAgICAgICAgICAgICAgICAgIiAoaHR0cDovL3JlZG1pbmUubmFtZWQtZGF0YS5uZXQvcHJvamVjdHMvbmZkL3dpa2kvQm9vc3RfRkFRKSIpCisgICAgICAgIHJldHVybgorCisgICAgY29uZi53cml0ZV9jb25maWdfaGVhZGVyKCdjb25maWcuaCcpCisKK2RlZiBidWlsZCAoYmxkKToKKyAgICBibGQoCisgICAgICAgIHRhcmdldD0iYmluL25kbi1hdG1vcyIsCisgICAgICAgIGZlYXR1cmVzPVsnY3h4JywgJ2N4eHByb2dyYW0nXSwKKyAgICAgICAgc291cmNlPWJsZC5wYXRoLmFudF9nbG9iKFsnY2F0YWxvZy9zcmMvKi5jcHAnXSksCisgICAgICAgIGluY2x1ZGVzPSJjYXRhbG9nL3NyYyAuIiwKKyAgICAgICAgdXNlPSJuZG4tY3h4IEJPT1NUIFNZTkMiCisgICAgKQorCisgICAgIyBDYXRhbG9nIHVuaXQgdGVzdHMKKyAgICBpZiBibGQuZW52WydXSVRIX1RFU1RTJ106CisgICAgICAgIGJsZC5yZWN1cnNlKCdjYXRhbG9nL3Rlc3RzJykK