LyoKICogTXNIVE1MIHJlc291cmNlcwogKiBGcmVuY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwNSBKb25hdGhhbiBFcm5zdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIGluIHNoZG9jbGMuZGxsICovCgpJRFJfQlJPV1NFX0NPTlRFWFRfTUVOVSBNRU5VCnsKICAgIFBPUFVQICJEZWZhdWx0IgogICAgewogICAgICAgIE1FTlVJVEVNICJQYWdlIHBy6SZj6WRlbnRlIiwgICAgICAgICAgICAgICAgICBJRE1fQkFDSwogICAgICAgIE1FTlVJVEVNICJQYWdlIHN1aSZ2YW50ZSIsICAgICAgICAgICAgICAgSURNX0ZPUldBUkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgbCcmYXJyaehyZS1wbGFuIHNvdXMuLi4iLCBJRE1fU0FWRUJBQ0tHUk9VTkRBUwogICAgICAgIE1FTlVJVEVNICLJdCZhYmxpciBlbiB0YW50IHF1J+ls6W1lbnQgZCdhcnJp6HJlLXBsYW4iLCAgICAgSURNX1NFVEFTQkFDS0dST1VORAogICAgICAgIE1FTlVJVEVNICJDb3BpZSZyIGwnYXJyaehyZS1wbGFuIiwgICAgICAgSURNX0NPUFlCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIkTpZmluaXIgY29tbWUg6WzpbWVudCBkdSAmQnVyZWF1Li4uIiwgICBJRE1fU0VUQVNERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU+lsZWN0aW9ubmVyIHRvdXQiLCAgICAgICAgICAgIElETV9TRUxFQ1RBTEwKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlciIsICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ3LpZXIgJnVuIHJhY2NvdXJjaSIsICAgICAgIElETV9DUkVBVEVTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICJBam91dGVyIGF1JnggRmF2b3Jpcy4uLiIsICAgICBJRE1fQUREVE9GQVZPVVJJVEVTCiAgICAgICAgTUVOVUlURU0gIkEmZmZpY2hlciBsYSBzb3VyY2UiLCAgICAgICAgICAgSURNX1ZJRVdTT1VSQ0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ28mZGFnZSIsICAgICAgICAgICAgICBJRE1fRU5DT0RJTkcgCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZJbXByaW1lciIsICAgICAgICAgICAgICAgICBJRE1fUFJJTlQKICAgICAgICBNRU5VSVRFTSAiQWN0dWFsaXMmZXIiLCAgICAgICAgICAgICAgIElETV9SRUZSRVNIIAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHJvcHJp6XTpcyIsICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiSW1hZ2UiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIk91JnZyaXIgbGUgbGllbiIsICAgICAgICAgICAgICAgSURNX09QRU5MSU5LCiAgICAgICAgTUVOVUlURU0gIk91dnJpciBsZSBsaWVuIGRhbnMgdW5lICZub3V2ZWxsZSBmZW7qdHJlIiwgSURNX09QRU5JTk5FV1dJTkRPVwogICAgICAgIE1FTlVJVEVNICJFbnJlZ2lzdHJlciBsYSBjaWJsZSBzbyZ1cy4uLiIsICAgICAgIElETV9TQVZFVEFSR0VUQVMKICAgICAgICBNRU5VSVRFTSAiSW1wcmltZXIgbGEgY2liJmxlIiwgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWZmaWMmaGVyIGwnaW1hZ2UiLCAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJFbnJlZ2lzdHJlciBsJ2ltYWdlICZzb3VzLi4uIiwgICAgICBJRE1fU0FWRVBJQ1RVUkVBUwogICAgICAgIE1FTlVJVEVNICJFbnZveWVyIGwnaW1hZ2UgcGFyICZjb3VycmllciDpbGVjdHJvbmlxdWUuLi4iLCAgICAgICBJRE1fRU1BSUxQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIiZJbXByaW1lciBsJ2ltYWdlLi4uIiwgICAgICAgIElETV9QUklOVFBJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiQXR0ZWluZHJlICZNZXMgaW1hZ2VzIiwgICAgICAgSURNX0dPVE9NWVBJQ1RVUkVTCiAgICAgICAgTUVOVUlURU0gIskmdGFibGlyIGVuIHRhbnQgcXUn6WzpbWVudCBkJ2FycmnocmUtcGxhbiIsICAgICAgIElETV9TRVRBU0JBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiROlmaW5pciBjb21tZSDpbOltZW50IGR1ICZCdXJlYXUuLi4iLCAgSURNX1NFVEFTREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ291cGUmciIsICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICJDb3BpJmVyIiwgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIkNvcGllciBsZSByJmFjY291cmNpIiwgICAgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlciIsICAgICAgICAgICAgICAgICAgIElETV9QQVNURSAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWpvdXRlciBhdSZ4IEZhdm9yaXMuLi4iLCAgICAgSURNX0FERFRPRkFWT1VSSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHJvcHJp6XTpcyIsICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJDb250cm9sIgogICAgewogICAgICAgIE1FTlVJVEVNICImQW5udWxlciIsICAgICAgIElETV9VTkRPIAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDb3VwZSZyIiwgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiQ29waSZlciIsICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIkMmb2xsZXIiLCAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICJTdXBwcmkmbWVyIiwgICAgIElETV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlPpbGVjdGlvbm5lciB0b3V0IiwgSURNX1NFTEVDVEFMTAogICAgfQoKICAgIFBPUFVQICJUYWJsZSIKICAgIHsKICAgICAgICBQT1BVUCAiJlPpbGVjdGlvbm5lciIKICAgICAgICB7CiAgICAgICAgICAgIE1FTlVJVEVNICImY2VsbHVsZSIsICAgICAgICAgSURNX0NFTEwgCiAgICAgICAgICAgIE1FTlVJVEVNICImbGlnbmUiLCAgICAgICAgICBJRE1fUk9XCiAgICAgICAgICAgIE1FTlVJVEVNICJjJm9sb25uZSIsICAgICAgIElETV9DT0xVTU4KICAgICAgICAgICAgTUVOVUlURU0gIiZ0YWJsZSIsICAgICAgICBJRE1fVEFCTEUKICAgICAgICB9CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlByb3Byael06XMgZGUgbGEgJmNlbGx1bGUiLCAgSURNX0NFTExQUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gIlByb3Byael06XMgZGUgbGEgJnRhYmxlIiwgSURNX1RBQkxFUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICIxRFNpdGUgU2VsZWN0IgogICAgewogICAgICAgIE1FTlVJVEVNICJDb3VwZSZyIiwgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiQ29waSZlciIsICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIkNvbGxlciIsICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICImU+lsZWN0aW9ubmVyIHRvdXQiLCBJRE1fU0VMRUNUQUxMIAogICAgICAgIE1FTlVJVEVNICImSW1wcmltZXIiLCAgICAgIElETV9QUklOVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgfQoKICAgIFBPUFVQICJBbmNob3IiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIk91JnZyaXIiLCAgICAgICAgICAgICAgICBJRE1fT1BFTkxJTksKICAgICAgICBNRU5VSVRFTSAiT3V2cmlyIGRhbnMgdW5lICZub3V2ZWxsZSBmZW7qdHJlIiwgIElETV9PUEVOSU5ORVdXSU5ET1cKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgbGEgY2libGUgc28mdXMuLi4iLCAgIElETV9TQVZFVEFSR0VUQVMKICAgICAgICBNRU5VSVRFTSAiSW1wcmltZXIgbGEgY2liJmxlIiwgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDb3VwZSZyIiwgICAgICAgICAgICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvcGkmZXIiLCAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDb3BpZXIgbGUgciZhY2NvdXJjaSIsICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlciIsICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFqb3V0ZXIgYXUmeCBGYXZvcmlzLi4uIiwgSURNX0FERFRPRkFWT1VSSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHJvcHJp6XTpcyIsICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkNvbnRleHQgVW5rbm93biIKICAgIHsKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiRFlOU1JDIEltYWdlIgogICAgewogICAgICAgIE1FTlVJVEVNICJPdSZ2cmlyIGxlIGxpZW4iLCAgICAgICAgICAgICAgIElETV9PUEVOTElOSwogICAgICAgIE1FTlVJVEVNICJPdXZyaXIgbGUgbGllbiBkYW5zIHVuZSAmbm91dmVsbGUgZmVu6nRyZSIsIElETV9PUEVOSU5ORVdXSU5ET1cKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgbGEgY2libGUgc28mdXMuLi4iLCAgICAgICBJRE1fU0FWRVRBUkdFVEFTCiAgICAgICAgTUVOVUlURU0gIkltcHJpbWVyIGxhIGNpYiZsZSIsICAgICAgICAgICAgSURNX1BSSU5UVEFSR0VUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFmZmljJmhlciBsJ2ltYWdlIiwgICAgICAgICAgICBJRE1fU0hPV1BJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgbGEgdmlk6W8gJnNvdXMuLi4iLCAgICAgICAgSURNX1NBVkVQSUNUVVJFQVMKICAgICAgICBNRU5VSVRFTSAiySZ0YWJsaXIgZW4gdGFudCBxdSfpbOltZW50IGQnYXJyaehyZS1wbGFuIiwgICAgICAgSURNX1NFVEFTQkFDS0dST1VORAogICAgICAgIE1FTlVJVEVNICJE6WZpbmlyIGNvbW1lIOls6W1lbnQgZHUgJkJ1cmVhdS4uLiIsICBJRE1fU0VUQVNERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJDb3VwZSZyIiwgICAgICAgICAgICAgICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvcGkmZXIiLCAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQ29waWVyIGxlIHImYWNjb3VyY2kiLCAgICAgICAgICAgSURNX0NPUFlTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICJDJm9sbGVyIiwgICAgICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFqb3V0ZXIgYXUmeCBGYXZvcmlzLi4uIiwgICAgIElETV9BRERUT0ZBVk9VUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiTGVjdHVyZSIsICAgICAgICAgICAgICAgICAgICAgSURNX1BMQVkKICAgICAgICBNRU5VSVRFTSAiQXJy6nQiLCAgICAgICAgICAgICAgICAgICAgIElETV9TVE9QCiAgICAgICAgTUVOVUlURU0gIiZQcm9wcmnpdOlzIiwgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkFSVCBJbWFnZSIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiT3UmdnJpciBsZSBsaWVuIiwgICAgICAgICAgICAgICBJRE1fT1BFTkxJTksKICAgICAgICBNRU5VSVRFTSAiT3V2cmlyIGxlIGxpZW4gZGFucyB1bmUgJm5vdXZlbGxlIGZlbup0cmUiLCBJRE1fT1BFTklOTkVXV0lORE9XCiAgICAgICAgTUVOVUlURU0gIkVucmVnaXN0cmVyIGxhIGNpYmxlIHNvJnVzLi4uIiwgICAgICAgSURNX1NBVkVUQVJHRVRBUwogICAgICAgIE1FTlVJVEVNICJJbXByaW1lciBsYSBjaWImbGUiLCAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBZmZpYyZoZXIgbCdpbWFnZSIsICAgICAgICAgICAgSURNX1NIT1dQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkVucmVnaXN0cmVyIGwnaW1hZ2UgJnNvdXMuLi4iLCAgICAgIElETV9TQVZFUElDVFVSRUFTCiAgICAgICAgTUVOVUlURU0gIskmdGFibGlyIGVuIHRhbnQgcXUn6WzpbWVudCBkJ2FycmnocmUtcGxhbiIsICAgICAgIElETV9TRVRBU0JBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiROlmaW5pciBjb21tZSDpbOltZW50IGR1ICZCdXJlYXUuLi4iLCAgSURNX1NFVEFTREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ291cGUmciIsICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICJDb3BpJmVyIiwgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIkNvcGllciBsZSByJmFjY291cmNpIiwgICAgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlciIsICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBam91dGVyIGF1JnggRmF2b3Jpcy4uLiIsICAgICBJRE1fQUREVE9GQVZPVVJJVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkxlY3R1cmUiLCAgICAgICAgICAgICAgICAgICAgIElETV9QTEFZCiAgICAgICAgTUVOVUlURU0gIkFycup0IiwgICAgICAgICAgICAgICAgICAgICBJRE1fU1RPUAogICAgICAgIE1FTlVJVEVNICJSZXRvdXIgYXJyaehyZSIsICAgICAgICAgICAgICAgICAgIElETV9SRVdJTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlByb3Byael06XMiLCAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiRGVidWciCiAgICB7CiAgICAgICAgTUVOVUlURU0gIlRyYWNlIFRhZ3MiLCAgICAgICAgIElETV9UUkFDRVRBR1MgCiAgICAgICAgTUVOVUlURU0gIlJlc291cmNlIEZhaWx1cmVzIiwgIElETV9SRVNPVVJDRUZBSUxVUkVTCiAgICAgICAgTUVOVUlURU0gIkR1bXAgVHJhY2tpbmcgSW5mbyIsIElETV9EVU1QVFJBQ0tJTkdJTkZPCiAgICAgICAgTUVOVUlURU0gIkRlYnVnIEJyZWFrIiwgICAgICAgIElETV9ERUJVR0JSRUFLCiAgICAgICAgTUVOVUlURU0gIkRlYnVnIFZpZXciLCAgICAgICAgIElETV9ERUJVR1ZJRVcKICAgICAgICBNRU5VSVRFTSAiRHVtcCBUcmVlIiwgICAgICAgICAgSURNX0RVTVBUUkVFCiAgICAgICAgTUVOVUlURU0gIkR1bXAgTGluZXMiLCAgICAgICAgIElETV9EVU1QTElORVMKICAgICAgICBNRU5VSVRFTSAiRHVtcCBEaXNwbGF5VHJlZSIsICAgSURNX0RVTVBESVNQTEFZVFJFRQogICAgICAgIE1FTlVJVEVNICJEdW1wIEZvcm1hdENhY2hlcyIsICBJRE1fRFVNUEZPUk1BVENBQ0hFUwogICAgICAgIE1FTlVJVEVNICJEdW1wIExheW91dFJlY3RzIiwgICBJRE1fRFVNUExBWU9VVFJFQ1RTCiAgICAgICAgTUVOVUlURU0gIk1lbW9yeSBNb25pdG9yIiwgICAgIElETV9NRU1PUllNT05JVE9SCiAgICAgICAgTUVOVUlURU0gIlBlcmZvcm1hbmNlIE1ldGVycyIsIElETV9QRVJGT1JNQU5DRU1FVEVSUwogICAgICAgIE1FTlVJVEVNICJTYXZlIEhUTUwiLCAgICAgICAgICBJRE1fU0FWRUhUTUwKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkJyb3dzZSBWaWV3IiwgICAgICAgSURNX0JST1dTRVZJRVcKICAgICAgICBNRU5VSVRFTSAiJkVkaXQgVmlldyIsICAgICAgICAgSURNX0VESVRWSUVXCiAgICB9CgogICAgUE9QVVAgIlZlcnRpY2FsIFNjcm9sbGJhciIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiROlmaWxlbWVudCBpY2kiLCAgSURNX1NDUk9MTEhFUkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiSGF1dCIsICAgICAgICAgIElETV9UT1AKICAgICAgICBNRU5VSVRFTSAiQmFzIiwgICAgICAgSURNX0JPVFRPTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQYWdlIHBy6WPpZGVudGUiLCAgICAgIElETV9QQUdFVVAKICAgICAgICBNRU5VSVRFTSAiUGFnZSBzdWl2YW50ZSIsICAgIElETV9QQUdFRE9XTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJE6WZpbGVtZW50IHZlcnMgbGUgaGF1dCIsICAgIElETV9TQ1JPTExVUAogICAgICAgIE1FTlVJVEVNICJE6WZpbGVtZW50IHZlcnMgbGUgYmFzIiwgIElETV9TQ1JPTExET1dOCiAgICB9CgogICAgUE9QVVAgIkhvcml6b250YWwgU2Nyb2xsYmFyIgogICAgewogICAgICAgIE1FTlVJVEVNICJE6WZpbGVtZW50IGljaSIsICBJRE1fU0NST0xMSEVSRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJD9HTpIGdhdWNoZSIsICAgIElETV9MRUZURURHRQogICAgICAgIE1FTlVJVEVNICJD9HTpIGRyb2l0IiwgICBJRE1fUklHSFRFREdFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlBhZ2UgdmVycyBsYSBnYXVjaGUiLCAgICBJRE1fUEFHRUxFRlQKICAgICAgICBNRU5VSVRFTSAiUGFnZSB2ZXJzIGxhIGRyb2l0ZSIsICAgSURNX1BBR0VSSUdIVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJE6WZpbGVtZW50IHZlcnMgbGEgZ2F1Y2hlIiwgIElETV9TQ1JPTExMRUZUCiAgICAgICAgTUVOVUlURU0gIkTpZmlsZW1lbnQgdmVycyBsYSBkcm9pdGUiLCBJRE1fU0NST0xMUklHSFQKICAgIH0KfQo=