LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDE2IEZ1bmRhY2nzbiBUZWNuYWxpYSBSZXNlYXJjaCAmIElubm92YXRpb24uCiAqCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAqCiAqIENvbnRyaWJ1dG9yczoKICogICBIdWFzY2FyIEVzcGlub3phIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqICAgQWxlamFuZHJhIFJ17XogLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICogICBJZG95YSBEZWwgUu1vIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqICAgTWFyaSBDYXJtZW4gUGFsYWNpb3MgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KICogICBBbmdlbCBM83BleiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyoqCiAqIEdlbmVyYXRlZCB3aXRoIEFjY2VsZW8KICovCnBhY2thZ2Ugb3JnLmVjbGlwc2Uub3BlbmNlcnQucGttLnJlZmZyYW1ld29yay5yZWZmcmFtZXdvcmsucHJvdmlkZXJzOwoKaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7CgovKioKICogCiAqIAogKi8KcHVibGljIGNsYXNzIFJlZmZyYW1ld29ya01lc3NhZ2VzIGV4dGVuZHMgTkxTIHsKCQoJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLm9wZW5jZXJ0LnBrbS5yZWZmcmFtZXdvcmsucmVmZnJhbWV3b3JrLnByb3ZpZGVycy5yZWZmcmFtZXdvcmtNZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50UHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUm9sZVByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFwcGxpY2FiaWxpdHlMZXZlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNyaXRpY2FsaXR5TGV2ZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZUZWNobmlxdWVQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNyaXRpY2FsaXR5QXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFjdGl2aXR5UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmSW5kZXBlbmRlbmN5TGV2ZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZWNvbW1lbmRhdGlvbkxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQ29udHJvbENhdGVnb3J5UHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFwcGxpY2FiaWxpdHlSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFjdGl2aXR5UmVxdWlyZW1lbnRQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBBY3Rpdml0eUFwcGxpY2FiaWxpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBBY3Rpdml0eUVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVxdWlyZW1lbnRBcHBsaWNhYmlsaXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVxdWlyZW1lbnRFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9Qcm9wZXJ0aWVzR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFydGVmYWN0RXF1aXZhbGVuY2VNYXBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSb2xlRXF1aXZhbGVuY2VNYXBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydGllc0dyb3VwTGFiZWw7CgoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRnJhbWV3b3JrX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRnJhbWV3b3JrX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50X1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0X1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eV9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFjdGl2aXR5X1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFJlbF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50UmVsX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSb2xlX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUm9sZV9QYXJ0X1RpdGxlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eUxldmVsX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eUxldmVsX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDcml0aWNhbGl0eUxldmVsX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQ3JpdGljYWxpdHlMZXZlbF9QYXJ0X1RpdGxlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmVGVjaG5pcXVlX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmVGVjaG5pcXVlX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFJlbF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UmVsX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDcml0aWNhbGl0eUFwcGxpY2FiaWxpdHlfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDcml0aWNhbGl0eUFwcGxpY2FiaWxpdHlfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFjdGl2aXR5UmVsX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQWN0aXZpdHlSZWxfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkluZGVwZW5kZW5jeUxldmVsX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmSW5kZXBlbmRlbmN5TGV2ZWxfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlY29tbWVuZGF0aW9uTGV2ZWxfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZWNvbW1lbmRhdGlvbkxldmVsX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDb250cm9sQ2F0ZWdvcnlfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDb250cm9sQ2F0ZWdvcnlfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFwcGxpY2FiaWxpdHlfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcHBsaWNhYmlsaXR5X1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcHBsaWNhYmlsaXR5UmVsX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVJlbF9QYXJ0X1RpdGxlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRXF1aXZhbGVuY2VNYXBfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZFcXVpdmFsZW5jZU1hcF9QYXJ0X1RpdGxlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgQWN0aXZpdHlSZXF1aXJlbWVudF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFjdGl2aXR5UmVxdWlyZW1lbnRfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFjdGl2aXR5QXBwbGljYWJpbGl0eV9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFjdGl2aXR5QXBwbGljYWJpbGl0eV9QYXJ0X1RpdGxlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgQWN0aXZpdHlFcXVpdmFsZW5jZU1hcF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFjdGl2aXR5RXF1aXZhbGVuY2VNYXBfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlcXVpcmVtZW50QXBwbGljYWJpbGl0eV9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlcXVpcmVtZW50QXBwbGljYWJpbGl0eV9QYXJ0X1RpdGxlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVxdWlyZW1lbnRFcXVpdmFsZW5jZU1hcF9SZWFkT25seTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlcXVpcmVtZW50RXF1aXZhbGVuY2VNYXBfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEFydGVmYWN0RXF1aXZhbGVuY2VNYXBfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBBcnRlZmFjdEVxdWl2YWxlbmNlTWFwX1BhcnRfVGl0bGU7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSb2xlRXF1aXZhbGVuY2VNYXBfUmVhZE9ubHk7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSb2xlRXF1aXZhbGVuY2VNYXBfUGFydF9UaXRsZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFRlY2huaXF1ZUVxdWl2YWxlbmNlTWFwX1JlYWRPbmx5OwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgVGVjaG5pcXVlRXF1aXZhbGVuY2VNYXBfUGFydF9UaXRsZTsKCgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZGcmFtZXdvcmtQcm9wZXJ0aWVzRWRpdGlvblBhcnRfSWRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9OYW1lTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZGcmFtZXdvcmtQcm9wZXJ0aWVzRWRpdGlvblBhcnRfRGVzY3JpcHRpb25MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9TY29wZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRnJhbWV3b3JrUHJvcGVydGllc0VkaXRpb25QYXJ0X1JldkxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRnJhbWV3b3JrUHJvcGVydGllc0VkaXRpb25QYXJ0X1B1cnBvc2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9QdWJsaXNoZXJMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9Jc3N1ZWRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9Pd25lZEFjdGl2aXRpZXNMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9Pd25lZEFydGVmYWN0TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZGcmFtZXdvcmtQcm9wZXJ0aWVzRWRpdGlvblBhcnRfT3duZWRSZXF1aXJlbWVudExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRnJhbWV3b3JrUHJvcGVydGllc0VkaXRpb25QYXJ0X093bmVkQXBwbGljTGV2ZWxMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkZyYW1ld29ya1Byb3BlcnRpZXNFZGl0aW9uUGFydF9Pd25lZENyaXRpY0xldmVsTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZGcmFtZXdvcmtQcm9wZXJ0aWVzRWRpdGlvblBhcnRfT3duZWRSb2xlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZGcmFtZXdvcmtQcm9wZXJ0aWVzRWRpdGlvblBhcnRfT3duZWRUZWNobmlxdWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50UHJvcGVydGllc0VkaXRpb25QYXJ0X0lkTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFByb3BlcnRpZXNFZGl0aW9uUGFydF9OYW1lTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFByb3BlcnRpZXNFZGl0aW9uUGFydF9EZXNjcmlwdGlvbkxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUmVxdWlyZW1lbnRQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUmVmZXJlbmNlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFByb3BlcnRpZXNFZGl0aW9uUGFydF9Bc3N1bXB0aW9uc0xhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUmVxdWlyZW1lbnRQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUmF0aW9uYWxlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFByb3BlcnRpZXNFZGl0aW9uUGFydF9JbWFnZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUmVxdWlyZW1lbnRQcm9wZXJ0aWVzRWRpdGlvblBhcnRfQW5ub3RhdGlvbnNMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50UHJvcGVydGllc0VkaXRpb25QYXJ0X093bmVkUmVsTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFByb3BlcnRpZXNFZGl0aW9uUGFydF9TdWJSZXF1aXJlbWVudExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RQcm9wZXJ0aWVzRWRpdGlvblBhcnRfSWRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UHJvcGVydGllc0VkaXRpb25QYXJ0X0Rlc2NyaXB0aW9uTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFByb3BlcnRpZXNFZGl0aW9uUGFydF9SZWZlcmVuY2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UHJvcGVydGllc0VkaXRpb25QYXJ0X0NvbnN0cmFpbmluZ1JlcXVpcmVtZW50TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFByb3BlcnRpZXNFZGl0aW9uUGFydF9BcHBsaWNhYmxlVGVjaG5pcXVlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFByb3BlcnRpZXNFZGl0aW9uUGFydF9Pd25lZFJlbExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvcGVydHlMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFjdGl2aXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X0lkTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9OYW1lTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9EZXNjcmlwdGlvbkxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQWN0aXZpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfT2JqZWN0aXZlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9TY29wZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQWN0aXZpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUmVxdWlyZWRBcnRlZmFjdExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQWN0aXZpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUHJvZHVjZWRBcnRlZmFjdExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQWN0aXZpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfU3ViQWN0aXZpdHlMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFjdGl2aXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X1ByZWNlZGluZ0FjdGl2aXR5TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Sb2xlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9BcHBsaWNhYmxlVGVjaG5pcXVlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Pd25lZFJlbExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUmVxdWlyZW1lbnRSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfVGFyZ2V0TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZXF1aXJlbWVudFJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9Tb3VyY2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlcXVpcmVtZW50UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X1R5cGVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJvbGVQcm9wZXJ0aWVzRWRpdGlvblBhcnRfSWRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJvbGVQcm9wZXJ0aWVzRWRpdGlvblBhcnRfTmFtZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmUm9sZVByb3BlcnRpZXNFZGl0aW9uUGFydF9EZXNjcmlwdGlvbkxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eUxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X0lkTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcHBsaWNhYmlsaXR5TGV2ZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfTmFtZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eUxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X0Rlc2NyaXB0aW9uTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDcml0aWNhbGl0eUxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X0lkTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZDcml0aWNhbGl0eUxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNyaXRpY2FsaXR5TGV2ZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfRGVzY3JpcHRpb25MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlRlY2huaXF1ZVByb3BlcnRpZXNFZGl0aW9uUGFydF9JZExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmVGVjaG5pcXVlUHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlRlY2huaXF1ZVByb3BlcnRpZXNFZGl0aW9uUGFydF9EZXNjcmlwdGlvbkxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmVGVjaG5pcXVlUHJvcGVydGllc0VkaXRpb25QYXJ0X0NyaXRpY0FwcGxpY0xhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmVGVjaG5pcXVlUHJvcGVydGllc0VkaXRpb25QYXJ0X0FpbUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfSWRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X0Rlc2NyaXB0aW9uTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9NYXhNdWx0aXBsaWNpdHlTb3VyY2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X01pbk11bHRpcGxpY2l0eVNvdXJjZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfTWF4TXVsdGlwbGljaXR5VGFyZ2V0TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9NaW5NdWx0aXBsaWNpdHlUYXJnZXRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFydGVmYWN0UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X01vZGlmaWNhdGlvbkVmZmVjdExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfUmV2b2NhdGlvbkVmZmVjdExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXJ0ZWZhY3RSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfU291cmNlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcnRlZmFjdFJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9UYXJnZXRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNyaXRpY2FsaXR5QXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9BcHBsaWNMZXZlbExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQ3JpdGljYWxpdHlBcHBsaWNhYmlsaXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X0FwcGxpY0xldmVsQ29tYm9MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNyaXRpY2FsaXR5QXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Dcml0aWNMZXZlbExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQ3JpdGljYWxpdHlBcHBsaWNhYmlsaXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X0NyaXRpY0xldmVsQ29tYm9MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNyaXRpY2FsaXR5QXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Db21tZW50TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9UeXBlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBY3Rpdml0eVJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9Tb3VyY2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFjdGl2aXR5UmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X1RhcmdldExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmSW5kZXBlbmRlbmN5TGV2ZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfSWRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkluZGVwZW5kZW5jeUxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkluZGVwZW5kZW5jeUxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X0Rlc2NyaXB0aW9uTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZWNvbW1lbmRhdGlvbkxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X0lkTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZSZWNvbW1lbmRhdGlvbkxldmVsUHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZlJlY29tbWVuZGF0aW9uTGV2ZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfRGVzY3JpcHRpb25MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNvbnRyb2xDYXRlZ29yeVByb3BlcnRpZXNFZGl0aW9uUGFydF9JZExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQ29udHJvbENhdGVnb3J5UHJvcGVydGllc0VkaXRpb25QYXJ0X05hbWVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkNvbnRyb2xDYXRlZ29yeVByb3BlcnRpZXNFZGl0aW9uUGFydF9EZXNjcmlwdGlvbkxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9JZExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9OYW1lTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZBcHBsaWNhYmlsaXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X0FwcGxpY0NyaXRpY0xhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9BcHBsaWNDcml0aWNUYWJsZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9Db21tZW50c0xhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVByb3BlcnRpZXNFZGl0aW9uUGFydF9BcHBsaWNUYXJnZXRMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFwcGxpY2FiaWxpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfT3duZWRSZWxMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFwcGxpY2FiaWxpdHlSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfVHlwZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmQXBwbGljYWJpbGl0eVJlbFByb3BlcnRpZXNFZGl0aW9uUGFydF9Tb3VyY2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkFwcGxpY2FiaWxpdHlSZWxQcm9wZXJ0aWVzRWRpdGlvblBhcnRfVGFyZ2V0TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZWZFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9JZExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRXF1aXZhbGVuY2VNYXBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfTmFtZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVmRXF1aXZhbGVuY2VNYXBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfTWFwR3JvdXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X01hcEdyb3VwQ29tYm9MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X1R5cGVMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X0p1c3RpZmljYXRpb25MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlZkVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X1RhcmdldExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgQWN0aXZpdHlSZXF1aXJlbWVudFByb3BlcnRpZXNFZGl0aW9uUGFydF9Pd25lZFJlcXVpcmVtZW50TGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBBY3Rpdml0eUFwcGxpY2FiaWxpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfQXBwbGljYWJpbGl0eUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgQWN0aXZpdHlBcHBsaWNhYmlsaXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X0FwcGxpY2FiaWxpdHlUYWJsZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgQWN0aXZpdHlFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9FcXVpdmFsZW5jZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgQWN0aXZpdHlFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9BY3Rpdml0eUVxdWl2YWxlbmNlTWFwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBSZXF1aXJlbWVudEFwcGxpY2FiaWxpdHlQcm9wZXJ0aWVzRWRpdGlvblBhcnRfQXBwbGljYWJpbGl0eUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVxdWlyZW1lbnRBcHBsaWNhYmlsaXR5UHJvcGVydGllc0VkaXRpb25QYXJ0X0FwcGxpY2FiaWxpdHlUYWJsZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVxdWlyZW1lbnRFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9FcXVpdmFsZW5jZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUmVxdWlyZW1lbnRFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9SZXF1aXJlbWVudEVxdWl2YWxlbmNlTWFwTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBBcnRlZmFjdEVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X0VxdWl2YWxlbmNlTGFiZWw7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBBcnRlZmFjdEVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X0FydGVmYWN0RXF1aXZhbGVuY2VNYXBMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJvbGVFcXVpdmFsZW5jZU1hcFByb3BlcnRpZXNFZGl0aW9uUGFydF9FcXVpdmFsZW5jZUxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUm9sZUVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X1JvbGVFcXVpdmFsZW5jZU1hcExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgVGVjaG5pcXVlRXF1aXZhbGVuY2VNYXBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfRXF1aXZhbGVuY2VMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFRlY2huaXF1ZUVxdWl2YWxlbmNlTWFwUHJvcGVydGllc0VkaXRpb25QYXJ0X1RlY2huaXF1ZUVxdWl2YWxlbmNlTWFwTGFiZWw7CgoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X0RvY3VtZW50YXRpb25MYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFByb3BlcnRpZXNFZGl0aW9uUGFydF9JbnRlZ2VyVmFsdWVNZXNzYWdlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X0Zsb2F0VmFsdWVNZXNzYWdlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X1Nob3J0VmFsdWVNZXNzYWdlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X0xvbmdWYWx1ZU1lc3NhZ2U7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfQnl0ZVZhbHVlTWVzc2FnZTsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFByb3BlcnRpZXNFZGl0aW9uUGFydF9CaWdJbnRlZ2VyVmFsdWVNZXNzYWdlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X0JpZ0RlY2ltYWxWYWx1ZU1lc3NhZ2U7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfRG91YmxlVmFsdWVNZXNzYWdlOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X1Byb3BlcnRpZXNHcm91cExhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X1JlcXVpcmVkRmVhdHVyZU1lc3NhZ2U7CgoJCglwdWJsaWMgc3RhdGljIFN0cmluZyBQcm9wZXJ0aWVzRWRpdGlvblBhcnRfQWRkVGFibGVWaWV3ZXJMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFByb3BlcnRpZXNFZGl0aW9uUGFydF9FZGl0VGFibGVWaWV3ZXJMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFByb3BlcnRpZXNFZGl0aW9uUGFydF9SZW1vdmVUYWJsZVZpZXdlckxhYmVsOwoKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgUHJvcGVydGllc0VkaXRpb25QYXJ0X0FkZExpc3RWaWV3ZXJMYWJlbDsKCgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFByb3BlcnRpZXNFZGl0aW9uUGFydF9SZW1vdmVMaXN0Vmlld2VyTGFiZWw7CgoJLy8gU3RhcnQgb2YgdXNlciBjb2RlIGZvciBhZGRpdGlvbm5hbCBOTFMgQ29uc3RhbnRzCgkKCS8vIEVuZCBvZiB1c2VyIGNvZGUKCglzdGF0aWMgewoJCS8vIGluaXRpYWxpemUgcmVzb3VyY2UgYnVuZGxlCgkJTkxTLmluaXRpYWxpemVNZXNzYWdlcyhCVU5ETEVfTkFNRSwgUmVmZnJhbWV3b3JrTWVzc2FnZXMuY2xhc3MpOwoJfQoKCQoJcHJpdmF0ZSBSZWZmcmFtZXdvcmtNZXNzYWdlcygpIHsKCQkvL3Byb3RlY3QgaW5zdGFuY2lhdGlvbgoJfQp9Cg==