LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDAzIElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAogKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBDb21tb24gUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbAogKiAKICogQ29udHJpYnV0b3JzOgogKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiNpbmNsdWRlICJ3aW5kb3dzLmgiCgpWU19WRVJTSU9OX0lORk8gVkVSU0lPTklORk8KIFBST0RVQ1RWRVJTSU9OIDAsMCwwLDAKIEZJTEVGTEFHU01BU0sgMHgzZkwKI2lmZGVmIF9ERUJVRwogRklMRUZMQUdTIDB4MUwKI2Vsc2UKIEZJTEVGTEFHUyAweDBMCiNlbmRpZgogRklMRU9TIDB4NDAwMDBMCiBGSUxFVFlQRSAweDJMCiBGSUxFU1VCVFlQRSAweDBMCkJFR0lOCiAgICBCTE9DSyAiU3RyaW5nRmlsZUluZm8iCiAgICBCRUdJTgogICAgICAgIEJMT0NLICIwNDA5MDRiMCIKICAgICAgICBCRUdJTgogICAgICAgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiSUJNIENvcnBvcmF0aW9uXDAiCiAgICAgICAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiU3RhbmRhcmQgV2lkZ2V0IFRvb2xraXRcMCIKICAgICAgICAgICAgVkFMVUUgIkludGVybmFsTmFtZSIsICJTV1RcMCIKICAgICAgICAgICAgVkFMVUUgIkxlZ2FsQ29weXJpZ2h0IiwgIqkgQ29weXJpZ2h0IDIwMDAsIDIwMDMgSUJNIENvcnAuICBBbGwgUmlnaHRzIFJlc2VydmVkLlwwIgogICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsIFNXVF9PUkdfRklMRU5BTUUKICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3ROYW1lIiwgIlwwIgogICAgICAgICAgICBWQUxVRSAiUHJvZHVjdFZlcnNpb24iLCAiMCwwLDAsMFwwIgogICAgICAgIEVORAogICAgRU5ECiAgICBCTE9DSyAiVmFyRmlsZUluZm8iCiAgICBCRUdJTgogICAgICAgIFZBTFVFICJUcmFuc2xhdGlvbiIsIDB4NDA5LCAxMjAwCiAgICBFTkQKRU5ECgovKiBTSE1FTlVCQVIgUG9ja2V0IFBDIAogKiBJRF9NRU5VIFNITUVOVUJBUiBESVNDQVJEQUJMRQogKiBCRUdJTgogKiAJSURfTUVOVSwgMSwKICogIElNQUdFX05PTkUsIElEX01FTlVfSVRFTTEsIDAsIDAsCiAqICAwLCAwLCAwLAogKiBFTkQKICogSURfTUVOVSBNRU5VIERJU0NBUkRBQkxFCiAqIEJFR0lOCiAqICBNRU5VSVRFTSAiIiwgSURfTUVOVV9JVEVNMQogKiBFTkQKICovCjEwMCBSQ0RBVEEgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAxMDAsIDEsCiAgICAtMiwgMTAxLCAwLCAwLCAKICAgIDAsIDAsIDAsCkVORAoKMTAwIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCU1FTlVJVEVNICIiLCAxMDEKRU5E