Rename
Cancel
WP2S::PD9waHAKCi8qKgoKICogVGhlIGJhc2UgY29uZmlndXJhdGlvbiBmb3IgV29yZFByZXNzCgogKgoKICogVGhlIHdwLWNvbmZpZy5waHAgY3JlYXRpb24gc2NyaXB0IHVzZXMgdGhpcyBmaWxlIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uLgoKICogWW91IGRvbid0IGhhdmUgdG8gdXNlIHRoZSB3ZWIgc2l0ZSwgeW91IGNhbiBjb3B5IHRoaXMgZmlsZSB0byAid3AtY29uZmlnLnBocCIKCiAqIGFuZCBmaWxsIGluIHRoZSB2YWx1ZXMuCgogKgoKICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbnM6CgogKgoKICogKiBEYXRhYmFzZSBzZXR0aW5ncwoKICogKiBTZWNyZXQga2V5cwoKICogKiBEYXRhYmFzZSB0YWJsZSBwcmVmaXgKCiAqICogQUJTUEFUSAoKICoKCiAqIEBsaW5rIGh0dHBzOi8vd29yZHByZXNzLm9yZy9zdXBwb3J0L2FydGljbGUvZWRpdGluZy13cC1jb25maWctcGhwLwoKICoKCiAqIEBwYWNrYWdlIFdvcmRQcmVzcwoKICovCgoKLy8gKiogRGF0YWJhc2Ugc2V0dGluZ3MgLSBZb3UgY2FuIGdldCB0aGlzIGluZm8gZnJvbSB5b3VyIHdlYiBob3N0ICoqIC8vCgovKiogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIGZvciBXb3JkUHJlc3MgKi8KCmRlZmluZSggJ0RCX05BTUUnLCAnYml0bmFtaV93b3JkcHJlc3MnICk7CgoKLyoqIERhdGFiYXNlIHVzZXJuYW1lICovCgpkZWZpbmUoICdEQl9VU0VSJywgJ2JuX3dvcmRwcmVzcycgKTsKCgovKiogRGF0YWJhc2UgcGFzc3dvcmQgKi8KCmRlZmluZSggJ0RCX1BBU1NXT1JEJywgJ2Y2Mzg1ZmM3NjNlNzQ4Y2NhMWZkMTE3Y2ZlMzQ1NDA2YjAxMGY0MWU2NDYyNDgyZGZjNjIyYjQ4Mzg4OTBlNDAnICk7CgoKLyoqIERhdGFiYXNlIGhvc3RuYW1lICovCgpkZWZpbmUoICdEQl9IT1NUJywgJ2xvY2FsaG9zdDozMzA2JyApOwoKCi8qKiBEYXRhYmFzZSBjaGFyc2V0IHRvIHVzZSBpbiBjcmVhdGluZyBkYXRhYmFzZSB0YWJsZXMuICovCgpkZWZpbmUoICdEQl9DSEFSU0VUJywgJ3V0ZjgnICk7CgoKLyoqIFRoZSBkYXRhYmFzZSBjb2xsYXRlIHR5cGUuIERvbid0IGNoYW5nZSB0aGlzIGlmIGluIGRvdWJ0LiAqLwoKZGVmaW5lKCAnREJfQ09MTEFURScsICcnICk7CgoKLyoqI0ArCgogKiBBdXRoZW50aWNhdGlvbiB1bmlxdWUga2V5cyBhbmQgc2FsdHMuCgogKgoKICogQ2hhbmdlIHRoZXNlIHRvIGRpZmZlcmVudCB1bmlxdWUgcGhyYXNlcyEgWW91IGNhbiBnZW5lcmF0ZSB0aGVzZSB1c2luZwoKICogdGhlIHtAbGluayBodHRwczovL2FwaS53b3JkcHJlc3Mub3JnL3NlY3JldC1rZXkvMS4xL3NhbHQvIFdvcmRQcmVzcy5vcmcgc2VjcmV0LWtleSBzZXJ2aWNlfS4KCiAqCgogKiBZb3UgY2FuIGNoYW5nZSB0aGVzZSBhdCBhbnkgcG9pbnQgaW4gdGltZSB0byBpbnZhbGlkYXRlIGFsbCBleGlzdGluZyBjb29raWVzLgoKICogVGhpcyB3aWxsIGZvcmNlIGFsbCB1c2VycyB0byBoYXZlIHRvIGxvZyBpbiBhZ2Fpbi4KCiAqCgogKiBAc2luY2UgMi42LjAKCiAqLwoKZGVmaW5lKCAnQVVUSF9LRVknLCAgICAgICAgICdwLStaVDBXei9XT0FDPykoXy0mV1VdcS1IOlkzID93REc8U14udlN4KkFNI1RSKWxrejpDW0xraTRTQmN1VC98JyApOwoKZGVmaW5lKCAnU0VDVVJFX0FVVEhfS0VZJywgICcqfHhGfTF4NFR4dkldZnV5d3I6UmdeVGhwVkFoZlFnRCNwLGpbZHVvTyAuOU15aFdMendOfno0Mm5heE4ha3BFJyApOwoKZGVmaW5lKCAnTE9HR0VEX0lOX0tFWScsICAgICcoKVFZJDowUHNvc0taWStMLEQ0e2cxfU97aUJoWWJweHEwIDw/JVFMWT9CIy15Xj0qN1ZxLj0mcm5gdkAjUndmJyApOwoKZGVmaW5lKCAnTk9OQ0VfS0VZJywgICAgICAgICdMJFEkcG10Y1kmOUYueXt6bntoQmp0ZGI/K0BqZS8zVy97UnRzLGpoQSxqJHJJYD5QSiQ0R3ctPV84cSlORylFJyApOwoKZGVmaW5lKCAnQVVUSF9TQUxUJywgICAgICAgICdDMjcmemJlNSNBKVFTN1lTNnh9fSw5eClFLnU0JjMgW2trR1tINksjJSEzbzBZN05dUzFXdmY/XjdAT107YV8jJyApOwoKZGVmaW5lKCAnU0VDVVJFX0FVVEhfU0FMVCcsICdEK01BJVdzNy9lSmpNcXFtQCw3Rnw2IHA3WFs5VHVNSG55ZSEvTmMmSnFbMC98bDZ8TikjOE4rTFJWP3FnejZGJyApOwoKZGVmaW5lKCAnTE9HR0VEX0lOX1NBTFQnLCAgICdPQzAwbV5qMi97QFZuRCRAZjNqVUNhLih6ZT8wbCl9T1RdaUNsS0xqKX1gT3BpSHN9cCtUVW4ud0Z+fHNDODg5JyApOwoKZGVmaW5lKCAnTk9OQ0VfU0FMVCcsICAgICAgICdGJTNpYlRzY2QzP21HN1FqdnRFeEdgIXc3N0Y3Pzw3XilUaTFZent9QWpaWjB3QEdbUkI8TUwyK0w0JiBjTjJxJyApOwoKCi8qKiNALSovCgoKLyoqCgogKiBXb3JkUHJlc3MgZGF0YWJhc2UgdGFibGUgcHJlZml4LgoKICoKCiAqIFlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBpbnN0YWxsYXRpb25zIGluIG9uZSBkYXRhYmFzZSBpZiB5b3UgZ2l2ZSBlYWNoCgogKiBhIHVuaXF1ZSBwcmVmaXguIE9ubHkgbnVtYmVycywgbGV0dGVycywgYW5kIHVuZGVyc2NvcmVzIHBsZWFzZSEKCiAqLwoKJHRhYmxlX3ByZWZpeCA9ICd3cF8nOwoKCi8qKgoKICogRm9yIGRldmVsb3BlcnM6IFdvcmRQcmVzcyBkZWJ1Z2dpbmcgbW9kZS4KCiAqCgogKiBDaGFuZ2UgdGhpcyB0byB0cnVlIHRvIGVuYWJsZSB0aGUgZGlzcGxheSBvZiBub3RpY2VzIGR1cmluZyBkZXZlbG9wbWVudC4KCiAqIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgcGx1Z2luIGFuZCB0aGVtZSBkZXZlbG9wZXJzIHVzZSBXUF9ERUJVRwoKICogaW4gdGhlaXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLgoKICoKCiAqIEZvciBpbmZvcm1hdGlvbiBvbiBvdGhlciBjb25zdGFudHMgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZGVidWdnaW5nLAoKICogdmlzaXQgdGhlIGRvY3VtZW50YXRpb24uCgogKgoKICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL3N1cHBvcnQvYXJ0aWNsZS9kZWJ1Z2dpbmctaW4td29yZHByZXNzLwoKICovCgpkZWZpbmUoICdXUF9ERUJVRycsIGZhbHNlICk7CgoKLyogQWRkIGFueSBjdXN0b20gdmFsdWVzIGJldHdlZW4gdGhpcyBsaW5lIGFuZCB0aGUgInN0b3AgZWRpdGluZyIgbGluZS4gKi8KCgoKCmRlZmluZSggJ0ZTX01FVEhPRCcsICdkaXJlY3QnICk7Ci8qKgogKiBUaGUgV1BfU0lURVVSTCBhbmQgV1BfSE9NRSBvcHRpb25zIGFyZSBjb25maWd1cmVkIHRvIGFjY2VzcyBmcm9tIGFueSBob3N0bmFtZSBvciBJUCBhZGRyZXNzLgogKiBJZiB5b3Ugd2FudCB0byBhY2Nlc3Mgb25seSBmcm9tIGFuIHNwZWNpZmljIGRvbWFpbiwgeW91IGNhbiBtb2RpZnkgdGhlbS4gRm9yIGV4YW1wbGU6CiAqICBkZWZpbmUoJ1dQX0hPTUUnLCdodHRwOi8vZXhhbXBsZS5jb20nKTsKICogIGRlZmluZSgnV1BfU0lURVVSTCcsJ2h0dHA6Ly9leGFtcGxlLmNvbScpOwogKgogKi8KaWYgKCBkZWZpbmVkKCAnV1BfQ0xJJyApICkgewoJJF9TRVJWRVJbJ0hUVFBfSE9TVCddID0gJzEyNy4wLjAuMSc7Cn0KCmRlZmluZSggJ1dQX0hPTUUnLCAnaHR0cDovLycgLiAkX1NFUlZFUlsnSFRUUF9IT1NUJ10gLiAnLycgKTsKZGVmaW5lKCAnV1BfU0lURVVSTCcsICdodHRwOi8vJyAuICRfU0VSVkVSWydIVFRQX0hPU1QnXSAuICcvJyApOwpkZWZpbmUoICdXUF9BVVRPX1VQREFURV9DT1JFJywgJ21pbm9yJyApOwpkZWZpbmUoJ0ZTX01FVEhPRCcsICdkaXJlY3QnKTsKLyogVGhhdCdzIGFsbCwgc3RvcCBlZGl0aW5nISBIYXBweSBwdWJsaXNoaW5nLiAqLwoKCi8qKiBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBXb3JkUHJlc3MgZGlyZWN0b3J5LiAqLwoKaWYgKCAhIGRlZmluZWQoICdBQlNQQVRIJyApICkgewoKCWRlZmluZSggJ0FCU1BBVEgnLCBfX0RJUl9fIC4gJy8nICk7Cgp9CgoKLyoqIFNldHMgdXAgV29yZFByZXNzIHZhcnMgYW5kIGluY2x1ZGVkIGZpbGVzLiAqLwoKcmVxdWlyZV9vbmNlIEFCU1BBVEggLiAnd3Atc2V0dGluZ3MucGhwJzsKCi8qKgogKiBEaXNhYmxlIHBpbmdiYWNrLnBpbmcgeG1scnBjIG1ldGhvZCB0byBwcmV2ZW50IFdvcmRQcmVzcyBmcm9tIHBhcnRpY2lwYXRpbmcgaW4gRERvUyBhdHRhY2tzCiAqIE1vcmUgaW5mbyBhdDogaHR0cHM6Ly9kb2NzLmJpdG5hbWkuY29tL2dlbmVyYWwvYXBwcy93b3JkcHJlc3MvdHJvdWJsZXNob290aW5nL3htbHJwYy1hbmQtcGluZ2JhY2svCiAqLwppZiAoICFkZWZpbmVkKCAnV1BfQ0xJJyApICkgewoJLy8gcmVtb3ZlIHgtcGluZ2JhY2sgSFRUUCBoZWFkZXIKCWFkZF9maWx0ZXIoIndwX2hlYWRlcnMiLCBmdW5jdGlvbigkaGVhZGVycykgewoJCXVuc2V0KCRoZWFkZXJzWyJYLVBpbmdiYWNrIl0pOwoJCXJldHVybiAkaGVhZGVyczsKCX0pOwoJLy8gZGlzYWJsZSBwaW5nYmFja3MKCWFkZF9maWx0ZXIoICJ4bWxycGNfbWV0aG9kcyIsIGZ1bmN0aW9uKCAkbWV0aG9kcyApIHsKCQl1bnNldCggJG1ldGhvZHNbInBpbmdiYWNrLnBpbmciXSApOwoJCXJldHVybiAkbWV0aG9kczsKCX0pOwp9CgovKiogRW5hYmxlIFczIFRvdGFsIENhY2hlICoqLwpkZWZpbmUoJ1dQX0NBQ0hFJywgdHJ1ZSk7IC8vIEFkZGVkIGJ5IFczIFRvdGFsIENhY2hlCg==::END