Comparing version 0.4.6 to 0.5.0
{ | ||
"name": "BrowserFS", | ||
"version": "0.4.6", | ||
"version": "0.5.0", | ||
"main": [ | ||
@@ -5,0 +5,0 @@ "./dist/browserfs.min.js", |
@@ -218,2 +218,2 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
exports["default"] = AsyncMirror; | ||
//# sourceMappingURL=AsyncMirror.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXN5bmNNaXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9Bc3luY01pcnJvci50cyJdLCJuYW1lcyI6WyJNaXJyb3JGaWxlIiwiTWlycm9yRmlsZS5jb25zdHJ1Y3RvciIsIk1pcnJvckZpbGUuc3luY1N5bmMiLCJNaXJyb3JGaWxlLmNsb3NlU3luYyIsIkFzeW5jTWlycm9yIiwiQXN5bmNNaXJyb3IuY29uc3RydWN0b3IiLCJBc3luY01pcnJvci5nZXROYW1lIiwiQXN5bmNNaXJyb3IuaXNBdmFpbGFibGUiLCJBc3luY01pcnJvci5fc3luY1N5bmMiLCJBc3luY01pcnJvci5pbml0aWFsaXplIiwiQXN5bmNNaXJyb3IuaW5pdGlhbGl6ZS5jb3B5TmV4dEZpbGUiLCJBc3luY01pcnJvci5pc1JlYWRPbmx5IiwiQXN5bmNNaXJyb3Iuc3VwcG9ydHNTeW5jaCIsIkFzeW5jTWlycm9yLnN1cHBvcnRzTGlua3MiLCJBc3luY01pcnJvci5zdXBwb3J0c1Byb3BzIiwiQXN5bmNNaXJyb3IuZW5xdWV1ZU9wIiwiQXN5bmNNaXJyb3IucmVuYW1lU3luYyIsIkFzeW5jTWlycm9yLnN0YXRTeW5jIiwiQXN5bmNNaXJyb3Iub3BlblN5bmMiLCJBc3luY01pcnJvci51bmxpbmtTeW5jIiwiQXN5bmNNaXJyb3Iucm1kaXJTeW5jIiwiQXN5bmNNaXJyb3IubWtkaXJTeW5jIiwiQXN5bmNNaXJyb3IucmVhZGRpclN5bmMiLCJBc3luY01pcnJvci5leGlzdHNTeW5jIiwiQXN5bmNNaXJyb3IuY2htb2RTeW5jIiwiQXN5bmNNaXJyb3IuY2hvd25TeW5jIiwiQXN5bmNNaXJyb3IudXRpbWVzU3luYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFPLFdBQVcsV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXBELElBQU8sU0FBUyxXQUFXLG1CQUFtQixDQUFDLENBQUM7QUFHaEQsSUFBTyxZQUFZLFdBQVcseUJBQXlCLENBQUMsQ0FB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QUtBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLEVBQUVBLEtBQUtBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBO1FBQ3ZDQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQTtZQUNiQSxTQUFTQSxFQUFFQSxRQUFRQTtZQUNuQkEsU0FBU0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsS0FBS0EsRUFBRUEsS0FBS0EsQ0FBQ0E7U0FDN0JBLENBQUNBLENBQUNBO0lBQ0xBLENBQUNBO0lBQ0h0QixrQkFBQ0E7QUFBREEsQ0FBQ0EsQUFoTUQsRUFBeUMsV0FBVyxDQUFDLHFCQUFxQixFQWdNekU7QUFoTUQ7Z0NBZ01DLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlsZV9zeXN0ZW0gPSByZXF1aXJlKCcuLi9jb3JlL2ZpbGVfc3lzdGVtJyk7XG5pbXBvcnQge0FwaUVycm9yLCBFcnJvckNvZGV9IGZyb20gJy4uL2NvcmUvYXBpX2Vycm9yJztcbmltcG9ydCBmaWxlX2ZsYWcgPSByZXF1aXJlKCcuLi9jb3JlL2ZpbGVfZmxhZycpO1xuaW1wb3J0IGZpbGUgPSByZXF1aXJlKCcuLi9jb3JlL2ZpbGUnKTtcbmltcG9ydCBub2RlX2ZzX3N0YXRzID0gcmVxdWlyZSgnLi4vY29yZS9ub2RlX2ZzX3N0YXRzJyk7XG5pbXBvcnQgcHJlbG9hZF9maWxlID0gcmVxdWlyZSgnLi4vZ2VuZXJpYy9wcmVsb2FkX2ZpbGUnKTtcblxuaW50ZXJmYWNlIElBc3luY09wZXJhdGlvbiB7XG5cdGFwaU1ldGhvZDogc3RyaW5nO1xuXHRhcmd1bWVudHM6IGFueVtdO1xufVxuXG4vKipcbiAqIFdlIGRlZmluZSBvdXIgb3duIGZpbGUgdG8gaW50ZXJwb3NlIG9uIHN5bmNTeW5jKCkgZm9yIG1pcnJvcmluZyBwdXJwb3Nlcy5cbiAqL1xuY2xhc3MgTWlycm9yRmlsZSBleHRlbmRzIHByZWxvYWRfZmlsZS5QcmVsb2FkRmlsZTxBc3luY01pcnJvcj4gaW1wbGVtZW50cyBmaWxlLkZpbGUge1xuICBjb25zdHJ1Y3RvcihmczogQXN5bmNNaXJyb3IsIHBhdGg6IHN0cmluZywgZmxhZzogZmlsZV9mbGFnLkZpbGVGbGFnLCBzdGF0OiBub2RlX2ZzX3N0YXRzLlN0YXRzLCBkYXRhOiBCdWZmZXIpIHtcbiAgICBzdXBlcihmcywgcGF0aCwgZmxhZywgc3RhdCwgZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc3luY1N5bmMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXJ0eSgpKSB7XG4gICAgICB0aGlzLl9mcy5fc3luY1N5bmModGhpcyk7XG4gICAgICB0aGlzLnJlc2V0RGlydHkoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VTeW5jKCk6IHZvaWQge1xuICAgIHRoaXMuc3luY1N5bmMoKTtcbiAgfVxufVxuXG4vKipcbiAqIEFzeW5jTWlycm9yRlMgbWlycm9ycyBhIHN5bmNocm9ub3VzIGZpbGVzeXN0ZW0gaW50byBhbiBhc3luY2hyb25vdXMgZmlsZXN5c3RlbVxuICogYnk6XG4gKiAqIFBlcmZvcm1pbmcgb3BlcmF0aW9ucyBvdmVyIHRoZSBpbi1tZW1vcnkgY29weSwgd2hpbGUgYXN5bmNocm9ub3VzbHkgcGlwZWxpbmluZyB0aGVtXG4gKiAgIHRvIHRoZSBiYWNraW5nIHN0b3JlLlxuICogKiBEdXJpbmcgYXBwbGljYXRpb24gbG9hZGluZywgdGhlIGNvbnRlbnRzIG9mIHRoZSBhc3luYyBmaWxlIHN5c3RlbSBjYW4gYmUgcmVsb2FkZWQgaW50b1xuICogICB0aGUgc3luY2hyb25vdXMgc3RvcmUsIGlmIGRlc2lyZWQuXG4gKiBUaGUgdHdvIHN0b3JlcyB3aWxsIGJlIGtlcHQgaW4gc3luYy4gVGhlIG1vc3QgY29tbW9uIHVzZS1jYXNlIGlzIHRvIHBhaXIgYSBzeW5jaHJvbm91c1xuICogaW4tbWVtb3J5IGZpbGVzeXN0ZW0gd2l0aCBhbiBhc3luY2hyb25vdXMgYmFja2luZyBzdG9yZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXN5bmNNaXJyb3IgZXh0ZW5kcyBmaWxlX3N5c3RlbS5TeW5jaHJvbm91c0ZpbGVTeXN0ZW0gaW1wbGVtZW50cyBmaWxlX3N5c3RlbS5GaWxlU3lzdGVtIHtcbiAgLyoqXG4gICAqIFF1ZXVlIG9mIHBlbmRpbmcgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMuXG4gICAqL1xuICBwcml2YXRlIF9xdWV1ZTogSUFzeW5jT3BlcmF0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfcXVldWVSdW5uaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3N5bmM6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW07XG4gIHByaXZhdGUgX2FzeW5jOiBmaWxlX3N5c3RlbS5GaWxlU3lzdGVtO1xuICBwcml2YXRlIF9pc0luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHN5bmM6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0sIGFzeW5jOiBmaWxlX3N5c3RlbS5GaWxlU3lzdGVtKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9zeW5jID0gc3luYztcbiAgICB0aGlzLl9hc3luYyA9IGFzeW5jO1xuICAgIGlmICghc3luYy5zdXBwb3J0c1N5bmNoKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHN5bmNocm9ub3VzIHN0b3JhZ2UuXCIpO1xuICAgIH1cbiAgICBpZiAoYXN5bmMuc3VwcG9ydHNTeW5jaCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBhc3luY2hyb25vdXMgc3RvcmFnZS5cIik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcblx0IFx0cmV0dXJuIFwiQXN5bmNNaXJyb3JcIjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgX3N5bmNTeW5jKGZkOiBwcmVsb2FkX2ZpbGUuUHJlbG9hZEZpbGU8YW55Pikge1xuICAgIHRoaXMuX3N5bmMud3JpdGVGaWxlU3luYyhmZC5nZXRQYXRoKCksIGZkLmdldEJ1ZmZlcigpLCBudWxsLCBmaWxlX2ZsYWcuRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3cnKSwgZmQuZ2V0U3RhdHMoKS5tb2RlKTtcbiAgICB0aGlzLmVucXVldWVPcCh7XG4gICAgICBhcGlNZXRob2Q6ICd3cml0ZUZpbGUnLFxuICAgICAgYXJndW1lbnRzOiBbZmQuZ2V0UGF0aCgpLCBmZC5nZXRCdWZmZXIoKSwgbnVsbCwgZmQuZ2V0RmxhZygpLCBmZC5nZXRTdGF0cygpLm1vZGVdXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIG9uY2UgdG8gbG9hZCB1cCBmaWxlcyBmcm9tIGFzeW5jIHN0b3JhZ2UgaW50byBzeW5jIHN0b3JhZ2UuXG4gICAqL1xuICBwdWJsaWMgaW5pdGlhbGl6ZShmaW5hbENiOiAoZXJyPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHZhciBjb3B5RGlyZWN0b3J5ID0gKHA6IHN0cmluZywgbW9kZTogbnVtYmVyLCBjYjogKGVycj86IEFwaUVycm9yKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIGlmIChwICE9PSAnLycpIHtcbiAgICAgICAgICB0aGlzLl9zeW5jLm1rZGlyU3luYyhwLCBtb2RlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hc3luYy5yZWFkZGlyKHAsIChlcnIsIGZpbGVzKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgY2IoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICAgICAgZnVuY3Rpb24gY29weU5leHRGaWxlKGVycj86IEFwaUVycm9yKSB7XG4gICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICBjYihlcnIpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPCBmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb3B5SXRlbShgJHtwfS8ke2ZpbGVzW2ldfWAsIGNvcHlOZXh0RmlsZSk7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvcHlOZXh0RmlsZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LCBjb3B5RmlsZSA9IChwOiBzdHJpbmcsIG1vZGU6IG51bWJlciwgY2I6IChlcnI/OiBBcGlFcnJvcikgPT4gdm9pZCkgPT4ge1xuICAgICAgICB0aGlzLl9hc3luYy5yZWFkRmlsZShwLCBudWxsLCBmaWxlX2ZsYWcuRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3InKSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGNiKGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRoaXMuX3N5bmMud3JpdGVGaWxlU3luYyhwLCBkYXRhLCBudWxsLCBmaWxlX2ZsYWcuRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3cnKSwgbW9kZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGVyciA9IGU7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBjYihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LCBjb3B5SXRlbSA9IChwOiBzdHJpbmcsIGNiOiAoZXJyPzogQXBpRXJyb3IpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5fYXN5bmMuc3RhdChwLCBmYWxzZSwgKGVyciwgc3RhdHMpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBjYihlcnIpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgY29weURpcmVjdG9yeShwLCBzdGF0cy5tb2RlLCBjYik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvcHlGaWxlKHAsIHN0YXRzLm1vZGUsIGNiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGNvcHlEaXJlY3RvcnkoJy8nLCAwLCAoZXJyPzogQXBpRXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGZpbmFsQ2IoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICBmaW5hbENiKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbENiKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7IHJldHVybiBmYWxzZTsgfVxuICBwdWJsaWMgc3VwcG9ydHNTeW5jaCgpOiBib29sZWFuIHsgcmV0dXJuIHRydWU7IH1cbiAgcHVibGljIHN1cHBvcnRzTGlua3MoKTogYm9vbGVhbiB7IHJldHVybiBmYWxzZTsgfVxuICBwdWJsaWMgc3VwcG9ydHNQcm9wcygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3N5bmMuc3VwcG9ydHNQcm9wcygpICYmIHRoaXMuX2FzeW5jLnN1cHBvcnRzUHJvcHMoKTsgfVxuXG4gIHByaXZhdGUgZW5xdWV1ZU9wKG9wOiBJQXN5bmNPcGVyYXRpb24pIHtcbiAgICB0aGlzLl9xdWV1ZS5wdXNoKG9wKTtcbiAgICBpZiAoIXRoaXMuX3F1ZXVlUnVubmluZykge1xuICAgICAgdGhpcy5fcXVldWVSdW5uaW5nID0gdHJ1ZTtcbiAgICAgIHZhciBkb05leHRPcCA9IChlcnI/OiBBcGlFcnJvcikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgV0FSTklORzogRmlsZSBzeXN0ZW0gaGFzIGRlc3luY2hyb25pemVkLiBSZWNlaXZlZCBmb2xsb3dpbmcgZXJyb3I6ICR7ZXJyfVxcbiRgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fcXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHZhciBvcCA9IHRoaXMuX3F1ZXVlLnNoaWZ0KCksXG4gICAgICAgICAgICBhcmdzID0gb3AuYXJndW1lbnRzO1xuICAgICAgICAgIGFyZ3MucHVzaChkb05leHRPcCk7XG4gICAgICAgICAgKDxGdW5jdGlvbj4gKDxhbnk+IHRoaXMuX2FzeW5jKVtvcC5hcGlNZXRob2RdKS5hcHBseSh0aGlzLl9hc3luYywgYXJncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcXVldWVSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBkb05leHRPcCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW5hbWVTeW5jKG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fc3luYy5yZW5hbWVTeW5jKG9sZFBhdGgsIG5ld1BhdGgpO1xuICAgIHRoaXMuZW5xdWV1ZU9wKHtcbiAgICAgIGFwaU1ldGhvZDogJ3JlbmFtZScsXG4gICAgICBhcmd1bWVudHM6IFtvbGRQYXRoLCBuZXdQYXRoXVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBzdGF0U3luYyhwOiBzdHJpbmcsIGlzTHN0YXQ6IGJvb2xlYW4pOiBub2RlX2ZzX3N0YXRzLlN0YXRzIHtcbiAgICByZXR1cm4gdGhpcy5fc3luYy5zdGF0U3luYyhwLCBpc0xzdGF0KTtcbiAgfVxuICBwdWJsaWMgb3BlblN5bmMocDogc3RyaW5nLCBmbGFnOiBmaWxlX2ZsYWcuRmlsZUZsYWcsIG1vZGU6IG51bWJlcik6IGZpbGUuRmlsZSB7XG4gICAgLy8gU2FuaXR5IGNoZWNrOiBJcyB0aGlzIG9wZW4vY2xvc2UgcGVybWl0dGVkP1xuICAgIHZhciBmZCA9IHRoaXMuX3N5bmMub3BlblN5bmMocCwgZmxhZywgbW9kZSk7XG4gICAgZmQuY2xvc2VTeW5jKCk7XG4gICAgcmV0dXJuIG5ldyBNaXJyb3JGaWxlKHRoaXMsIHAsIGZsYWcsIHRoaXMuX3N5bmMuc3RhdFN5bmMocCwgZmFsc2UpLCB0aGlzLl9zeW5jLnJlYWRGaWxlU3luYyhwLCBudWxsLCBmaWxlX2ZsYWcuRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3InKSkpO1xuICB9XG4gIHB1YmxpYyB1bmxpbmtTeW5jKHA6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmMudW5saW5rU3luYyhwKTtcbiAgICB0aGlzLmVucXVldWVPcCh7XG4gICAgICBhcGlNZXRob2Q6ICd1bmxpbmsnLFxuICAgICAgYXJndW1lbnRzOiBbcF1cbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgcm1kaXJTeW5jKHA6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmMucm1kaXJTeW5jKHApO1xuICAgIHRoaXMuZW5xdWV1ZU9wKHtcbiAgICAgIGFwaU1ldGhvZDogJ3JtZGlyJyxcbiAgICAgIGFyZ3VtZW50czogW3BdXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIG1rZGlyU3luYyhwOiBzdHJpbmcsIG1vZGU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3N5bmMubWtkaXJTeW5jKHAsIG1vZGUpO1xuICAgIHRoaXMuZW5xdWV1ZU9wKHtcbiAgICAgIGFwaU1ldGhvZDogJ21rZGlyJyxcbiAgICAgIGFyZ3VtZW50czogW3AsIG1vZGVdXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIHJlYWRkaXJTeW5jKHA6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc3luYy5yZWFkZGlyU3luYyhwKTtcbiAgfVxuICBwdWJsaWMgZXhpc3RzU3luYyhwOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3luYy5leGlzdHNTeW5jKHApO1xuICB9XG4gIHB1YmxpYyBjaG1vZFN5bmMocDogc3RyaW5nLCBpc0xjaG1vZDogYm9vbGVhbiwgbW9kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc3luYy5jaG1vZFN5bmMocCwgaXNMY2htb2QsIG1vZGUpO1xuICAgIHRoaXMuZW5xdWV1ZU9wKHtcbiAgICAgIGFwaU1ldGhvZDogJ2NobW9kJyxcbiAgICAgIGFyZ3VtZW50czogW3AsIGlzTGNobW9kLCBtb2RlXVxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBjaG93blN5bmMocDogc3RyaW5nLCBpc0xjaG93bjogYm9vbGVhbiwgdWlkOiBudW1iZXIsIGdpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fc3luYy5jaG93blN5bmMocCwgaXNMY2hvd24sIHVpZCwgZ2lkKTtcbiAgICB0aGlzLmVucXVldWVPcCh7XG4gICAgICBhcGlNZXRob2Q6ICdjaG93bicsXG4gICAgICBhcmd1bWVudHM6IFtwLCBpc0xjaG93biwgdWlkLCBnaWRdXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIHV0aW1lc1N5bmMocDogc3RyaW5nLCBhdGltZTogRGF0ZSwgbXRpbWU6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLl9zeW5jLnV0aW1lc1N5bmMocCwgYXRpbWUsIG10aW1lKTtcbiAgICB0aGlzLmVucXVldWVPcCh7XG4gICAgICBhcGlNZXRob2Q6ICd1dGltZXMnLFxuICAgICAgYXJndW1lbnRzOiBbcCwgYXRpbWUsIG10aW1lXVxuICAgIH0pO1xuICB9XG59XG4iXX0= |
@@ -11,6 +11,6 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
var node_fs_stats_1 = require('../core/node_fs_stats'); | ||
var buffer_1 = require('../core/buffer'); | ||
var path = require('../core/node_path'); | ||
var path = require('path'); | ||
var global = require('../core/global'); | ||
var async = require('async'); | ||
var util_1 = require('../core/util'); | ||
function isDirectoryEntry(entry) { | ||
@@ -56,3 +56,3 @@ return entry.isDirectory; | ||
var buffer = _this.getBuffer(); | ||
var blob = new Blob([buffer.toArrayBuffer()]); | ||
var blob = new Blob([util_1.buffer2ArrayBuffer(buffer)]); | ||
var length = blob.size; | ||
@@ -283,3 +283,3 @@ writer.onwriteend = function () { | ||
var stats = new node_fs_stats_1.Stats(node_fs_stats_1.FileType.FILE, stat.size); | ||
var buffer = new buffer_1.Buffer(data); | ||
var buffer = util_1.arrayBuffer2Buffer(data); | ||
return new HTML5FSFile(this, path, flag, stats, buffer); | ||
@@ -369,2 +369,2 @@ }; | ||
exports["default"] = HTML5FS; | ||
//# sourceMappingURL=HTML5FS.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRNTDVGUy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kL0hUTUw1RlMudHMiXSwibmFtZXMiOlsiaXNEaXJlY3RvcnlFbnRyeSIsIl9yZXF1ZXN0UXVvdGEiLCJfdG9BcnJheSIsIkhUTUw1RlNGaWxlIiwiSFRNTDVGU0ZpbGUuY29uc3RydWN0b3IiLCJIVE1MNUZTRmlsZS5zeW5jIiwiSFRNTDVGU0ZpbGUuY2xvc2UiLCJIVE1MNUZTIiwiSFRNTDVGUy5jb25zdHJ1Y3RvciIsIkhUTUw1RlMuZ2V0TmFtZSIsIkhUTUw1RlMuaXNBdmFpbGFibGUiLCJIVE1MNUZTLmlzUmVhZE9ubHkiLCJIVE1MNUZTLnN1cHBvcnRzU3ltbGlua3MiLCJIVE1MNUZTLnN1cHBvcnRzUHJvcHMiLCJIVE1MNUZTLnN1cHBvcnRzU3luY2giLCJIVE1MNUZTLmNvbnZlcnQiLCJIVE1MNUZTLmFsbG9jYXRlIiwiSFRNTDVGUy5lbXB0eSIsIkhUTUw1RlMucmVuYW1lIiwiSFRNTDVGUy5zdGF0IiwiSFRNTDVGUy5vcGVuIiwiSFRNTDVGUy5fc3RhdFR5cGUiLCJIVE1MNUZTLl9tYWtlRmlsZSIsIkhUTUw1RlMuX3JlbW92ZSIsIkhUTUw1RlMudW5saW5rIiwiSFRNTDVGUy5ybWRpciIsIkhUTUw1RlMubWtkaXIiLCJIVE1MNUZTLl9yZWFkZGlyIiwiSFRNTDVGUy5yZWFkZGlyIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU8sWUFBWSxXQUFXLHlCQUF5QixDQUFDLENBQUM7QUFDekQsSUFBTyxXQUFXLFdBQVcscUJBQXFCLENBQUMsQ0FBQztBQUNwRCwwQkFBa0MsbUJBQW1CLENBQUMsQ0FBQTtBQUN0RCwwQkFBbUMsbUJBQW1CLENBQUMsQ0FBQTtBQUN2RCw4QkFBOEIsdUJBQXVCLENBQUMsQ0FBQTtBQUV0RCxJQUFPLElBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUM5QixJQUFPLE1BQU0sV0FBVyxnQkFBZ0IsQ0FBQyxDQUFDO0FB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ID0gcmVxdWlyZSgnLi4vZ2VuZXJpYy9wcmVsb2FkX2ZpbGUnKTtcbmltcG9ydCBmaWxlX3N5c3RlbSA9IHJlcXVpcmUoJy4uL2NvcmUvZmlsZV9zeXN0ZW0nKTtcbmltcG9ydCB7QXBpRXJyb3IsIEVycm9yQ29kZX0gZnJvbSAnLi4vY29yZS9hcGlfZXJyb3InO1xuaW1wb3J0IHtGaWxlRmxhZywgQWN0aW9uVHlwZX0gZnJvbSAnLi4vY29yZS9maWxlX2ZsYWcnO1xuaW1wb3J0IHtTdGF0cywgRmlsZVR5cGV9IGZyb20gJy4uL2NvcmUvbm9kZV9mc19zdGF0cyc7XG5pbXBvcnQgZmlsZSA9IHJlcXVpcmUoJy4uL2NvcmUvZmlsZScpO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5pbXBvcnQgZ2xvYmFsID0gcmVxdWlyZSgnLi4vY29yZS9nbG9iYWwnKTtcbmltcG9ydCBhc3luYyA9IHJlcXVpcmUoJ2FzeW5jJyk7XG5pbXBvcnQge2J1ZmZlcjJBcnJheUJ1ZmZlciwgYXJyYXlCdWZmZXIyQnVmZmVyfSBmcm9tICcuLi9jb3JlL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0RpcmVjdG9yeUVudHJ5KGVudHJ5OiBFbnRyeSk6IGVudHJ5IGlzIERpcmVjdG9yeUVudHJ5IHtcbiAgcmV0dXJuIGVudHJ5LmlzRGlyZWN0b3J5O1xufVxuXG52YXIgX2dldEZTOiAodHlwZTpudW1iZXIsIHNpemU6bnVtYmVyLCBzdWNjZXNzQ2FsbGJhY2s6IEZpbGVTeXN0ZW1DYWxsYmFjaywgZXJyb3JDYWxsYmFjaz86IEVycm9yQ2FsbGJhY2spID0+IHZvaWQgPSBnbG9iYWwud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0gfHwgZ2xvYmFsLnJlcXVlc3RGaWxlU3lzdGVtIHx8IG51bGw7XG5cbmZ1bmN0aW9uIF9yZXF1ZXN0UXVvdGEodHlwZTogbnVtYmVyLCBzaXplOiBudW1iZXIsIHN1Y2Nlc3M6IChzaXplOiBudW1iZXIpID0+IHZvaWQsIGVycm9yQ2FsbGJhY2s6IEVycm9yQ2FsbGJhY2spIHtcbiAgLy8gV2UgY2FzdCBuYXZpZ2F0b3IgYW5kIHdpbmRvdyB0byAnPGFueT4nIGJlY2F1c2UgZXZlcnl0aGluZyBoZXJlIGlzXG4gIC8vIG5vbnN0YW5kYXJkIGZ1bmN0aW9uYWxpdHksIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBDaHJvbWUgaGFzIHRoZSBvbmx5XG4gIC8vIGltcGxlbWVudGF0aW9uIG9mIHRoZSBIVE1MNUZTIGFuZCBpcyBsaWtlbHkgZHJpdmluZyB0aGUgc3RhbmRhcmRpemF0aW9uXG4gIC8vIHByb2Nlc3MuIFRodXMsIHRoZXNlIG9iamVjdHMgZGVmaW5lZCBvZmYgb2YgbmF2aWdhdG9yIGFuZCB3aW5kb3cgYXJlIG5vdFxuICAvLyBwcmVzZW50IGluIHRoZSBEZWZpbml0ZWx5VHlwZWQgVHlwZVNjcmlwdCB0eXBpbmdzIGZvciBGaWxlU3lzdGVtLlxuICBpZiAodHlwZW9mICg8YW55PiBuYXZpZ2F0b3IpWyd3ZWJraXRQZXJzaXN0ZW50U3RvcmFnZSddICE9PSAndW5kZWZpbmVkJykge1xuICAgIHN3aXRjaCh0eXBlKSB7XG4gICAgICBjYXNlIGdsb2JhbC5QRVJTSVNURU5UOlxuICAgICAgICAoPGFueT4gbmF2aWdhdG9yKS53ZWJraXRQZXJzaXN0ZW50U3RvcmFnZS5yZXF1ZXN0UXVvdGEoc2l6ZSwgc3VjY2VzcywgZXJyb3JDYWxsYmFjayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBnbG9iYWwuVEVNUE9SQVJZOlxuICAgICAgICAoPGFueT4gbmF2aWdhdG9yKS53ZWJraXRUZW1wb3JhcnlTdG9yYWdlLnJlcXVlc3RRdW90YShzaXplLCBzdWNjZXNzLCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGVycm9yQ2FsbGJhY2sobmV3IFR5cGVFcnJvcihgSW52YWxpZCBzdG9yYWdlIHR5cGU6ICR7dHlwZX1gKSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAoPGFueT4gZ2xvYmFsKS53ZWJraXRTdG9yYWdlSW5mby5yZXF1ZXN0UXVvdGEodHlwZSwgc2l6ZSwgc3VjY2VzcywgZXJyb3JDYWxsYmFjayk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX3RvQXJyYXkobGlzdD86IGFueVtdKTogYW55W10ge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobGlzdCB8fCBbXSwgMCk7XG59XG5cbi8vIEEgbm90ZSBhYm91dCBnZXRGaWxlIGFuZCBnZXREaXJlY3Rvcnkgb3B0aW9uczpcbi8vIFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxlZCBhdCBudW1lcm91cyBwbGFjZXMgaW4gdGhpcyBmaWxlLCBhbmQgYXJlIHBhc3NlZFxuLy8gc29tZSBjb21iaW5hdGlvbiBvZiB0aGVzZSB0d28gb3B0aW9uczpcbi8vICAgLSBjcmVhdGU6IElmIHRydWUsIHRoZSBlbnRyeSB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdC5cbi8vICAgICAgICAgICAgIElmIGZhbHNlLCBhbiBlcnJvciB3aWxsIGJlIHRocm93biBpZiBpdCBkb2Vzbid0IGV4aXN0LlxuLy8gICAtIGV4Y2x1c2l2ZTogSWYgdHJ1ZSwgb25seSBjcmVhdGUgdGhlIGVudHJ5IGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdCxcbi8vICAgICAgICAgICAgICAgIGFuZCB0aHJvdyBhbiBlcnJvciBpZiBpdCBkb2VzLlxuXG5leHBvcnQgY2xhc3MgSFRNTDVGU0ZpbGUgZXh0ZW5kcyBwcmVsb2FkX2ZpbGUuUHJlbG9hZEZpbGU8SFRNTDVGUz4gaW1wbGVtZW50cyBmaWxlLkZpbGUge1xuICBjb25zdHJ1Y3RvcihfZnM6IEhUTUw1RlMsIF9wYXRoOiBzdHJpbmcsIF9mbGFnOiBGaWxlRmxhZywgX3N0YXQ6IFN0YXRzLCBjb250ZW50cz86IE5vZGVCdWZmZXIpIHtcbiAgICBzdXBlcihfZnMsIF9wYXRoLCBfZmxhZywgX3N0YXQsIGNvbnRlbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW5jKGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXJ0eSgpKSB7XG4gICAgICAvLyBEb24ndCBjcmVhdGUgdGhlIGZpbGUgKGl0IHNob3VsZCBhbHJlYWR5IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGBvcGVuYClcbiAgICAgIHZhciBvcHRzID0ge1xuICAgICAgICBjcmVhdGU6IGZhbHNlXG4gICAgICB9O1xuICAgICAgdmFyIF9mcyA9IHRoaXMuX2ZzO1xuICAgICAgdmFyIHN1Y2Nlc3M6IEZpbGVFbnRyeUNhbGxiYWNrID0gKGVudHJ5KSA9PiB7XG4gICAgICAgIGVudHJ5LmNyZWF0ZVdyaXRlcigod3JpdGVyKSA9PiB7XG4gICAgICAgICAgdmFyIGJ1ZmZlciA9IHRoaXMuZ2V0QnVmZmVyKCk7XG4gICAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyMkFycmF5QnVmZmVyKGJ1ZmZlcildKTtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gYmxvYi5zaXplO1xuICAgICAgICAgIHdyaXRlci5vbndyaXRlZW5kID0gKCkgPT4ge1xuICAgICAgICAgICAgd3JpdGVyLm9ud3JpdGVlbmQgPSBudWxsO1xuICAgICAgICAgICAgd3JpdGVyLnRydW5jYXRlKGxlbmd0aCk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0RGlydHkoKTtcbiAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICB3cml0ZXIub25lcnJvciA9IChlcnI6IERPTUVycm9yKSA9PiB7XG4gICAgICAgICAgICBjYihfZnMuY29udmVydChlcnIsIHRoaXMuZ2V0UGF0aCgpLCBmYWxzZSkpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgd3JpdGVyLndyaXRlKGJsb2IpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB2YXIgZXJyb3IgPSAoZXJyOiBET01FcnJvcikgPT4ge1xuICAgICAgICBjYihfZnMuY29udmVydChlcnIsIHRoaXMuZ2V0UGF0aCgpLCBmYWxzZSkpO1xuICAgICAgfTtcbiAgICAgIF9mcy5mcy5yb290LmdldEZpbGUodGhpcy5nZXRQYXRoKCksIG9wdHMsIHN1Y2Nlc3MsIGVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2IoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmMoY2IpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEhUTUw1RlMgZXh0ZW5kcyBmaWxlX3N5c3RlbS5CYXNlRmlsZVN5c3RlbSBpbXBsZW1lbnRzIGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0ge1xuICBwcml2YXRlIHNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSB0eXBlOiBudW1iZXI7XG4gIC8vIEhUTUw1RmlsZSByZWFjaGVzIGludG8gSFRNTDVGUy4gOi9cbiAgcHVibGljIGZzOiBGaWxlU3lzdGVtO1xuICAvKipcbiAgICogQXJndW1lbnRzOlxuICAgKiAgIC0gdHlwZTogUEVSU0lTVEVOVCBvciBURU1QT1JBUllcbiAgICogICAtIHNpemU6IHN0b3JhZ2UgcXVvdGEgdG8gcmVxdWVzdCwgaW4gbWVnYWJ5dGVzLiBBbGxvY2F0ZWQgdmFsdWUgbWF5IGJlIGxlc3MuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzaXplOiBudW1iZXIgPSA1LCB0eXBlOiBudW1iZXIgPSBnbG9iYWwuUEVSU0lTVEVOVCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gQ29udmVydCBNQiB0byBieXRlcy5cbiAgICB0aGlzLnNpemUgPSAxMDI0ICogMTAyNCAqIHNpemU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdIVE1MNSBGaWxlU3lzdGVtJztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIF9nZXRGUyAhPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHN1cHBvcnRzU3ltbGlua3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHN1cHBvcnRzUHJvcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHN1cHBvcnRzU3luY2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBnaXZlbiBET01FcnJvciBpbnRvIGFuIGFwcHJvcHJpYXRlIEFwaUVycm9yLlxuICAgKiBGdWxsIGxpc3Qgb2YgdmFsdWVzIGhlcmU6XG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9ET01FcnJvclxuICAgKi9cbiAgcHVibGljIGNvbnZlcnQoZXJyOiBET01FcnJvciwgcDogc3RyaW5nLCBleHBlY3RlZERpcjogYm9vbGVhbik6IEFwaUVycm9yIHtcbiAgICBzd2l0Y2ggKGVyci5uYW1lKSB7XG4gICAgICAvKiBUaGUgdXNlciBhZ2VudCBmYWlsZWQgdG8gY3JlYXRlIGEgZmlsZSBvciBkaXJlY3RvcnkgZHVlIHRvIHRoZSBleGlzdGVuY2Ugb2YgYSBmaWxlIG9yXG4gICAgICAgICBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBwYXRoLiAgKi9cbiAgICAgIGNhc2UgXCJQYXRoRXhpc3RzRXJyb3JcIjpcbiAgICAgICAgcmV0dXJuIEFwaUVycm9yLkVFWElTVChwKTtcbiAgICAgIC8qIFRoZSBvcGVyYXRpb24gZmFpbGVkIGJlY2F1c2UgaXQgd291bGQgY2F1c2UgdGhlIGFwcGxpY2F0aW9uIHRvIGV4Y2VlZCBpdHMgc3RvcmFnZSBxdW90YS4gICovXG4gICAgICBjYXNlICdRdW90YUV4Y2VlZGVkRXJyb3InOlxuICAgICAgICByZXR1cm4gQXBpRXJyb3IuRmlsZUVycm9yKEVycm9yQ29kZS5FTk9TUEMsIHApO1xuICAgICAgLyogIEEgcmVxdWlyZWQgZmlsZSBvciBkaXJlY3RvcnkgY291bGQgbm90IGJlIGZvdW5kIGF0IHRoZSB0aW1lIGFuIG9wZXJhdGlvbiB3YXMgcHJvY2Vzc2VkLiAgICovXG4gICAgICBjYXNlICdOb3RGb3VuZEVycm9yJzpcbiAgICAgICAgcmV0dXJuIEFwaUVycm9yLkVOT0VOVChwKTtcbiAgICAgIC8qIFRoaXMgaXMgYSBzZWN1cml0eSBlcnJvciBjb2RlIHRvIGJlIHVzZWQgaW4gc2l0dWF0aW9ucyBub3QgY292ZXJlZCBieSBhbnkgb3RoZXIgZXJyb3IgY29kZXMuXG4gICAgICAgICAtIEEgcmVxdWlyZWQgZmlsZSB3YXMgdW5zYWZlIGZvciBhY2Nlc3Mgd2l0aGluIGEgV2ViIGFwcGxpY2F0aW9uXG4gICAgICAgICAtIFRvbyBtYW55IGNhbGxzIGFyZSBiZWluZyBtYWRlIG9uIGZpbGVzeXN0ZW0gcmVzb3VyY2VzICovXG4gICAgICBjYXNlICdTZWN1cml0eUVycm9yJzpcbiAgICAgICAgcmV0dXJuIEFwaUVycm9yLkZpbGVFcnJvcihFcnJvckNvZGUuRUFDQ0VTLCBwKTtcbiAgICAgIC8qIFRoZSBtb2RpZmljYXRpb24gcmVxdWVzdGVkIHdhcyBpbGxlZ2FsLiBFeGFtcGxlcyBvZiBpbnZhbGlkIG1vZGlmaWNhdGlvbnMgaW5jbHVkZSBtb3ZpbmcgYVxuICAgICAgICAgZGlyZWN0b3J5IGludG8gaXRzIG93biBjaGlsZCwgbW92aW5nIGEgZmlsZSBpbnRvIGl0cyBwYXJlbnQgZGlyZWN0b3J5IHdpdGhvdXQgY2hhbmdpbmcgaXRzIG5hbWUsXG4gICAgICAgICBvciBjb3B5aW5nIGEgZGlyZWN0b3J5IHRvIGEgcGF0aCBvY2N1cGllZCBieSBhIGZpbGUuICAqL1xuICAgICAgY2FzZSAnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJzpcbiAgICAgICAgcmV0dXJuIEFwaUVycm9yLkZpbGVFcnJvcihFcnJvckNvZGUuRVBFUk0sIHApO1xuICAgICAgLyogVGhlIHVzZXIgaGFzIGF0dGVtcHRlZCB0byBsb29rIHVwIGEgZmlsZSBvciBkaXJlY3RvcnksIGJ1dCB0aGUgRW50cnkgZm91bmQgaXMgb2YgdGhlIHdyb25nIHR5cGVcbiAgICAgICAgIFtlLmcuIGlzIGEgRGlyZWN0b3J5RW50cnkgd2hlbiB0aGUgdXNlciByZXF1ZXN0ZWQgYSBGaWxlRW50cnldLiAgKi9cbiAgICAgIGNhc2UgJ1R5cGVNaXNtYXRjaEVycm9yJzpcbiAgICAgICAgcmV0dXJuIEFwaUVycm9yLkZpbGVFcnJvcihleHBlY3RlZERpciA/IEVycm9yQ29kZS5FTk9URElSIDogRXJyb3JDb2RlLkVJU0RJUiwgcCk7XG4gICAgICAvKiBBIHBhdGggb3IgVVJMIHN1cHBsaWVkIHRvIHRoZSBBUEkgd2FzIG1hbGZvcm1lZC4gICovXG4gICAgICBjYXNlIFwiRW5jb2RpbmdFcnJvclwiOlxuICAgICAgLyogQW4gb3BlcmF0aW9uIGRlcGVuZGVkIG9uIHN0YXRlIGNhY2hlZCBpbiBhbiBpbnRlcmZhY2Ugb2JqZWN0LCBidXQgdGhhdCBzdGF0ZSB0aGF0IGhhcyBjaGFuZ2VkXG4gICAgICAgICBzaW5jZSBpdCB3YXMgcmVhZCBmcm9tIGRpc2suICAqL1xuICAgICAgY2FzZSBcIkludmFsaWRTdGF0ZUVycm9yXCI6XG4gICAgICAvKiBUaGUgdXNlciBhdHRlbXB0ZWQgdG8gd3JpdGUgdG8gYSBmaWxlIG9yIGRpcmVjdG9yeSB3aGljaCBjb3VsZCBub3QgYmUgbW9kaWZpZWQgZHVlIHRvIHRoZSBzdGF0ZVxuICAgICAgICAgb2YgdGhlIHVuZGVybHlpbmcgZmlsZXN5c3RlbS4gICovXG4gICAgICBjYXNlIFwiTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3JcIjpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBBcGlFcnJvci5GaWxlRXJyb3IoRXJyb3JDb2RlLkVJTlZBTCwgcCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5vbnN0YW5kYXJkXG4gICAqIFJlcXVlc3RzIGEgc3RvcmFnZSBxdW90YSBmcm9tIHRoZSBicm93c2VyIHRvIGJhY2sgdGhpcyBGUy5cbiAgICovXG4gIHB1YmxpYyBhbGxvY2F0ZShjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCA9IGZ1bmN0aW9uKCl7fSk6IHZvaWQge1xuICAgIHZhciBzdWNjZXNzID0gKGZzOiBGaWxlU3lzdGVtKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLmZzID0gZnM7XG4gICAgICBjYigpXG4gICAgfTtcbiAgICB2YXIgZXJyb3IgPSAoZXJyOiBET01FeGNlcHRpb24pOiB2b2lkID0+IHtcbiAgICAgIGNiKHRoaXMuY29udmVydChlcnIsIFwiL1wiLCB0cnVlKSk7XG4gICAgfTtcbiAgICBpZiAodGhpcy50eXBlID09PSBnbG9iYWwuUEVSU0lTVEVOVCkge1xuICAgICAgX3JlcXVlc3RRdW90YSh0aGlzLnR5cGUsIHRoaXMuc2l6ZSwgKGdyYW50ZWQ6IG51bWJlcikgPT4ge1xuICAgICAgICBfZ2V0RlModGhpcy50eXBlLCBncmFudGVkLCBzdWNjZXNzLCBlcnJvcik7XG4gICAgICB9LCBlcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9nZXRGUyh0aGlzLnR5cGUsIHRoaXMuc2l6ZSwgc3VjY2VzcywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBOb25zdGFuZGFyZFxuICAgKiBEZWxldGVzIGV2ZXJ5dGhpbmcgaW4gdGhlIEZTLiBVc2VkIGZvciB0ZXN0aW5nLlxuICAgKiBLYXJtYSBjbGVhcnMgdGhlIHN0b3JhZ2UgYWZ0ZXIgeW91IHF1aXQgaXQgYnV0IG5vdCBiZXR3ZWVuIHJ1bnMgb2YgdGhlIHRlc3RcbiAgICogc3VpdGUsIGFuZCB0aGUgdGVzdHMgZXhwZWN0IGFuIGVtcHR5IEZTIGV2ZXJ5IHRpbWUuXG4gICAqL1xuICBwdWJsaWMgZW1wdHkobWFpbkNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gR2V0IGEgbGlzdCBvZiBhbGwgZW50cmllcyBpbiB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gZGVsZXRlIHRoZW1cbiAgICB0aGlzLl9yZWFkZGlyKCcvJywgKGVycjogQXBpRXJyb3IsIGVudHJpZXM/OiBFbnRyeVtdKTogdm9pZCA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBlbXB0eSBGUycpO1xuICAgICAgICBtYWluQ2IoZXJyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENhbGxlZCB3aGVuIGV2ZXJ5IGVudHJ5IGhhcyBiZWVuIG9wZXJhdGVkIG9uXG4gICAgICAgIHZhciBmaW5pc2hlZCA9IChlcjogYW55KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBlbXB0eSBGU1wiKTtcbiAgICAgICAgICAgIG1haW5DYihlcnIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYWluQ2IoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIFJlbW92ZXMgZmlsZXMgYW5kIHJlY3Vyc2l2ZWx5IHJlbW92ZXMgZGlyZWN0b3JpZXNcbiAgICAgICAgdmFyIGRlbGV0ZUVudHJ5ID0gKGVudHJ5OiBFbnRyeSwgY2I6IChlPzogYW55KSA9PiB2b2lkKTogdm9pZCA9PiB7XG4gICAgICAgICAgdmFyIHN1Y2MgPSAoKSA9PiB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgdmFyIGVycm9yID0gKGVycjogRE9NRXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBjYih0aGlzLmNvbnZlcnQoZXJyLCBlbnRyeS5mdWxsUGF0aCwgIWVudHJ5LmlzRGlyZWN0b3J5KSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoaXNEaXJlY3RvcnlFbnRyeShlbnRyeSkpIHtcbiAgICAgICAgICAgIGVudHJ5LnJlbW92ZVJlY3Vyc2l2ZWx5KHN1Y2MsIGVycm9yKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkucmVtb3ZlKHN1Y2MsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgZW50cmllcyBhbmQgcmVtb3ZlIHRoZW0sIHRoZW4gY2FsbCB0aGUgY2FsbGJhY2tcbiAgICAgICAgLy8gd2hlbiB0aGV5J3JlIGFsbCBmaW5pc2hlZC5cbiAgICAgICAgYXN5bmMuZWFjaChlbnRyaWVzLCBkZWxldGVFbnRyeSwgZmluaXNoZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbmFtZShvbGRQYXRoOiBzdHJpbmcsIG5ld1BhdGg6IHN0cmluZywgY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB2YXIgc2VtYXBob3JlOiBudW1iZXIgPSAyLFxuICAgICAgc3VjY2Vzc0NvdW50OiBudW1iZXIgPSAwLFxuICAgICAgcm9vdDogRGlyZWN0b3J5RW50cnkgPSB0aGlzLmZzLnJvb3QsXG4gICAgICBjdXJyZW50UGF0aDogc3RyaW5nID0gb2xkUGF0aCxcbiAgICAgIGVycm9yID0gKGVycjogRE9NRXhjZXB0aW9uKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICgtLXNlbWFwaG9yZSA8PSAwKSB7XG4gICAgICAgICAgICBjYih0aGlzLmNvbnZlcnQoZXJyLCBjdXJyZW50UGF0aCwgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHN1Y2Nlc3MgPSAoZmlsZTogRW50cnkpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCsrc3VjY2Vzc0NvdW50ID09PSAyKSB7XG4gICAgICAgICAgcmV0dXJuIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRUlOVkFMLCBcIlNvbWV0aGluZyB3YXMgaWRlbnRpZmllZCBhcyBib3RoIGEgZmlsZSBhbmQgYSBkaXJlY3RvcnkuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi5cIikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU1BFQ0lBTCBDQVNFOiBJZiBuZXdQYXRoID09PSBvbGRQYXRoLCBhbmQgdGhlIHBhdGggZXhpc3RzLCB0aGVuXG4gICAgICAgIC8vIHRoaXMgb3BlcmF0aW9uIHRyaXZpYWxseSBzdWNjZWVkcy5cbiAgICAgICAgaWYgKG9sZFBhdGggPT09IG5ld1BhdGgpIHtcbiAgICAgICAgICByZXR1cm4gY2IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCB0aGUgbmV3IHBhcmVudCBkaXJlY3RvcnkuXG4gICAgICAgIGN1cnJlbnRQYXRoID0gcGF0aC5kaXJuYW1lKG5ld1BhdGgpO1xuICAgICAgICByb290LmdldERpcmVjdG9yeShjdXJyZW50UGF0aCwge30sIChwYXJlbnREaXI6IERpcmVjdG9yeUVudHJ5KTogdm9pZCA9PiB7XG4gICAgICAgICAgY3VycmVudFBhdGggPSBwYXRoLmJhc2VuYW1lKG5ld1BhdGgpO1xuICAgICAgICAgIGZpbGUubW92ZVRvKHBhcmVudERpciwgY3VycmVudFBhdGgsIChlbnRyeTogRW50cnkpOiB2b2lkID0+IHsgY2IoKTsgfSwgKGVycjogRE9NRXhjZXB0aW9uKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAvLyBTUEVDSUFMIENBU0U6IElmIG9sZFBhdGggaXMgYSBkaXJlY3RvcnksIGFuZCBuZXdQYXRoIGlzIGFcbiAgICAgICAgICAgIC8vIGZpbGUsIHJlbmFtZSBzaG91bGQgZGVsZXRlIHRoZSBmaWxlIGFuZCBwZXJmb3JtIHRoZSBtb3ZlLlxuICAgICAgICAgICAgaWYgKGZpbGUuaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgICAgICAgY3VycmVudFBhdGggPSBuZXdQYXRoO1xuICAgICAgICAgICAgICAvLyBVbmxpbmsgb25seSB3b3JrcyBvbiBmaWxlcy4gVHJ5IHRvIGRlbGV0ZSBuZXdQYXRoLlxuICAgICAgICAgICAgICB0aGlzLnVubGluayhuZXdQYXRoLCAoZT8pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZSkge1xuICAgICAgICAgICAgICAgICAgLy8gbmV3UGF0aCBpcyBwcm9iYWJseSBhIGRpcmVjdG9yeS5cbiAgICAgICAgICAgICAgICAgIGVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIC8vIFJlY3VyLCBub3cgdGhhdCBuZXdQYXRoIGRvZXNuJ3QgZXhpc3QuXG4gICAgICAgICAgICAgICAgICB0aGlzLnJlbmFtZShvbGRQYXRoLCBuZXdQYXRoLCBjYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVycm9yKTtcbiAgICAgIH07XG5cbiAgICAvLyBXZSBkb24ndCBrbm93IGlmIG9sZFBhdGggaXMgYSAqZmlsZSogb3IgYSAqZGlyZWN0b3J5KiwgYW5kIHRoZXJlJ3Mgbm9cbiAgICAvLyB3YXkgdG8gc3RhdCBpdGVtcy4gU28gbGF1bmNoIGJvdGggcmVxdWVzdHMsIHNlZSB3aGljaCBvbmUgc3VjY2VlZHMuXG4gICAgcm9vdC5nZXRGaWxlKG9sZFBhdGgsIHt9LCBzdWNjZXNzLCBlcnJvcik7XG4gICAgcm9vdC5nZXREaXJlY3Rvcnkob2xkUGF0aCwge30sIHN1Y2Nlc3MsIGVycm9yKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0KHBhdGg6IHN0cmluZywgaXNMc3RhdDogYm9vbGVhbiwgY2I6IChlcnI6IEFwaUVycm9yLCBzdGF0PzogU3RhdHMpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyBUaHJvdyBhbiBlcnJvciBpZiB0aGUgZW50cnkgZG9lc24ndCBleGlzdCwgYmVjYXVzZSB0aGVuIHRoZXJlJ3Mgbm90aGluZ1xuICAgIC8vIHRvIHN0YXQuXG4gICAgdmFyIG9wdHMgPSB7XG4gICAgICBjcmVhdGU6IGZhbHNlXG4gICAgfTtcbiAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcGF0aCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgbG9hZGVkIGFzIGEgZmlsZS5cbiAgICB2YXIgbG9hZEFzRmlsZSA9IChlbnRyeTogRmlsZUVudHJ5KTogdm9pZCA9PiB7XG4gICAgICB2YXIgZmlsZUZyb21FbnRyeSA9IChmaWxlOiBGaWxlKTogdm9pZCA9PiB7XG4gICAgICAgIHZhciBzdGF0ID0gbmV3IFN0YXRzKEZpbGVUeXBlLkZJTEUsIGZpbGUuc2l6ZSk7XG4gICAgICAgIGNiKG51bGwsIHN0YXQpO1xuICAgICAgfTtcbiAgICAgIGVudHJ5LmZpbGUoZmlsZUZyb21FbnRyeSwgZmFpbGVkVG9Mb2FkKTtcbiAgICB9O1xuICAgIC8vIENhbGxlZCB3aGVuIHRoZSBwYXRoIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBsb2FkZWQgYXMgYSBkaXJlY3RvcnkuXG4gICAgdmFyIGxvYWRBc0RpciA9IChkaXI6IERpcmVjdG9yeUVudHJ5KTogdm9pZCA9PiB7XG4gICAgICAvLyBEaXJlY3RvcnkgZW50cnkgc2l6ZSBjYW4ndCBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIEhUTUw1IEZTIEFQSSwgYW5kIGlzXG4gICAgICAvLyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRhbnQgYW55d2F5LCBzbyBhIGR1bW15IHZhbHVlIGlzIHVzZWQuXG4gICAgICB2YXIgc2l6ZSA9IDQwOTY7XG4gICAgICB2YXIgc3RhdCA9IG5ldyBTdGF0cyhGaWxlVHlwZS5ESVJFQ1RPUlksIHNpemUpO1xuICAgICAgY2IobnVsbCwgc3RhdCk7XG4gICAgfTtcbiAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcGF0aCBjb3VsZG4ndCBiZSBvcGVuZWQgYXMgYSBkaXJlY3Rvcnkgb3IgYSBmaWxlLlxuICAgIHZhciBmYWlsZWRUb0xvYWQgPSAoZXJyOiBET01FeGNlcHRpb24pOiB2b2lkID0+IHtcbiAgICAgIGNiKHRoaXMuY29udmVydChlcnIsIHBhdGgsIGZhbHNlIC8qIFVua25vd24gLyBpcnJlbGV2YW50ICovKSk7XG4gICAgfTtcbiAgICAvLyBDYWxsZWQgd2hlbiB0aGUgcGF0aCBjb3VsZG4ndCBiZSBvcGVuZWQgYXMgYSBmaWxlLCBidXQgbWlnaHQgc3RpbGwgYmUgYVxuICAgIC8vIGRpcmVjdG9yeS5cbiAgICB2YXIgZmFpbGVkVG9Mb2FkQXNGaWxlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5mcy5yb290LmdldERpcmVjdG9yeShwYXRoLCBvcHRzLCBsb2FkQXNEaXIsIGZhaWxlZFRvTG9hZCk7XG4gICAgfTtcbiAgICAvLyBObyBtZXRob2QgY3VycmVudGx5IGV4aXN0cyB0byBkZXRlcm1pbmUgd2hldGhlciBhIHBhdGggcmVmZXJzIHRvIGFcbiAgICAvLyBkaXJlY3Rvcnkgb3IgYSBmaWxlLCBzbyB0aGlzIGltcGxlbWVudGF0aW9uIHRyaWVzIGJvdGggYW5kIHVzZXMgdGhlIGZpcnN0XG4gICAgLy8gb25lIHRoYXQgc3VjY2VlZHMuXG4gICAgdGhpcy5mcy5yb290LmdldEZpbGUocGF0aCwgb3B0cywgbG9hZEFzRmlsZSwgZmFpbGVkVG9Mb2FkQXNGaWxlKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKHA6IHN0cmluZywgZmxhZ3M6IEZpbGVGbGFnLCBtb2RlOiBudW1iZXIsIGNiOiAoZXJyOiBBcGlFcnJvciwgZmQ/OiBmaWxlLkZpbGUpID0+IGFueSk6IHZvaWQge1xuICAgIHZhciBlcnJvciA9IChlcnI6IERPTUVycm9yKTogdm9pZCA9PiB7XG4gICAgICBpZiAoZXJyLm5hbWUgPT09ICdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InICYmIGZsYWdzLmlzRXhjbHVzaXZlKCkpIHtcbiAgICAgICAgY2IoQXBpRXJyb3IuRUVYSVNUKHApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNiKHRoaXMuY29udmVydChlcnIsIHAsIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuZnMucm9vdC5nZXRGaWxlKHAsIHtcbiAgICAgIGNyZWF0ZTogZmxhZ3MucGF0aE5vdEV4aXN0c0FjdGlvbigpID09PSBBY3Rpb25UeXBlLkNSRUFURV9GSUxFLFxuICAgICAgZXhjbHVzaXZlOiBmbGFncy5pc0V4Y2x1c2l2ZSgpXG4gICAgfSwgKGVudHJ5OiBGaWxlRW50cnkpOiB2b2lkID0+IHtcbiAgICAgIC8vIFRyeSB0byBmZXRjaCBjb3JyZXNwb25kaW5nIGZpbGUuXG4gICAgICBlbnRyeS5maWxlKChmaWxlOiBGaWxlKTogdm9pZCA9PiB7XG4gICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25sb2FkZW5kID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHZhciBiZnNfZmlsZSA9IHRoaXMuX21ha2VGaWxlKHAsIGZsYWdzLCBmaWxlLCA8QXJyYXlCdWZmZXI+IHJlYWRlci5yZXN1bHQpO1xuICAgICAgICAgIGNiKG51bGwsIGJmc19maWxlKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXY6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgZXJyb3IocmVhZGVyLmVycm9yKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgICAgfSwgZXJyb3IpO1xuICAgIH0sIGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgQnJvd3NlckZTIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHR5cGUgb2YgYSBEcm9wYm94LmpzIHN0YXQgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIF9zdGF0VHlwZShzdGF0OiBFbnRyeSk6IEZpbGVUeXBlIHtcbiAgICByZXR1cm4gc3RhdC5pc0ZpbGUgPyBGaWxlVHlwZS5GSUxFIDogRmlsZVR5cGUuRElSRUNUT1JZO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBCcm93c2VyRlMgb2JqZWN0IHJlcHJlc2VudGluZyBhIEZpbGUsIGNyZWF0ZWQgZnJvbSB0aGUgZGF0YVxuICAgKiByZXR1cm5lZCBieSBjYWxscyB0byB0aGUgRHJvcGJveCBBUEkuXG4gICAqL1xuICBwcml2YXRlIF9tYWtlRmlsZShwYXRoOiBzdHJpbmcsIGZsYWc6IEZpbGVGbGFnLCBzdGF0OiBGaWxlLCBkYXRhOiBBcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigwKSk6IEhUTUw1RlNGaWxlIHtcbiAgICB2YXIgc3RhdHMgPSBuZXcgU3RhdHMoRmlsZVR5cGUuRklMRSwgc3RhdC5zaXplKTtcbiAgICB2YXIgYnVmZmVyID0gYXJyYXlCdWZmZXIyQnVmZmVyKGRhdGEpO1xuICAgIHJldHVybiBuZXcgSFRNTDVGU0ZpbGUodGhpcywgcGF0aCwgZmxhZywgc3RhdHMsIGJ1ZmZlcik7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGEgZmlsZSBvciBkaXJlY3RvcnkgZnJvbSB0aGUgZmlsZSBzeXN0ZW1cbiAgICogaXNGaWxlIHNob3VsZCByZWZsZWN0IHdoaWNoIGNhbGwgd2FzIG1hZGUgdG8gcmVtb3ZlIHRoZSBpdCAoYHVubGlua2Agb3JcbiAgICogYHJtZGlyYCkuIElmIHRoaXMgZG9lc24ndCBtYXRjaCB3aGF0J3MgYWN0dWFsbHkgYXQgYHBhdGhgLCBhbiBlcnJvciB3aWxsIGJlXG4gICAqIHJldHVybmVkXG4gICAqL1xuICBwcml2YXRlIF9yZW1vdmUocGF0aDogc3RyaW5nLCBjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCwgaXNGaWxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdmFyIHN1Y2Nlc3MgPSAoZW50cnk6IEVudHJ5KTogdm9pZCA9PiB7XG4gICAgICB2YXIgc3VjYyA9ICgpID0+IHtcbiAgICAgICAgY2IoKTtcbiAgICAgIH07XG4gICAgICB2YXIgZXJyID0gKGVycjogRE9NRXhjZXB0aW9uKSA9PiB7XG4gICAgICAgIGNiKHRoaXMuY29udmVydChlcnIsIHBhdGgsICFpc0ZpbGUpKTtcbiAgICAgIH07XG4gICAgICBlbnRyeS5yZW1vdmUoc3VjYywgZXJyKTtcbiAgICB9O1xuICAgIHZhciBlcnJvciA9IChlcnI6IERPTUV4Y2VwdGlvbik6IHZvaWQgPT4ge1xuICAgICAgY2IodGhpcy5jb252ZXJ0KGVyciwgcGF0aCwgIWlzRmlsZSkpO1xuICAgIH07XG4gICAgLy8gRGVsZXRpbmcgdGhlIGVudHJ5LCBzbyBkb24ndCBjcmVhdGUgaXRcbiAgICB2YXIgb3B0cyA9IHtcbiAgICAgIGNyZWF0ZTogZmFsc2VcbiAgICB9O1xuXG4gICAgaWYgKGlzRmlsZSkge1xuICAgICAgdGhpcy5mcy5yb290LmdldEZpbGUocGF0aCwgb3B0cywgc3VjY2VzcywgZXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZzLnJvb3QuZ2V0RGlyZWN0b3J5KHBhdGgsIG9wdHMsIHN1Y2Nlc3MsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdW5saW5rKHBhdGg6IHN0cmluZywgY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmUocGF0aCwgY2IsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJtZGlyKHBhdGg6IHN0cmluZywgY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmUocGF0aCwgY2IsIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBta2RpcihwYXRoOiBzdHJpbmcsIG1vZGU6IG51bWJlciwgY2I6IChlPzogQXBpRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgdGhlIGRpcmVjdG9yeSwgYnV0IHRocm93IGFuIGVycm9yIGlmIGl0IGFscmVhZHkgZXhpc3RzLCBhcyBwZXJcbiAgICAvLyBta2RpcigxKVxuICAgIHZhciBvcHRzID0ge1xuICAgICAgY3JlYXRlOiB0cnVlLFxuICAgICAgZXhjbHVzaXZlOiB0cnVlXG4gICAgfTtcbiAgICB2YXIgc3VjY2VzcyA9IChkaXI6IERpcmVjdG9yeUVudHJ5KTogdm9pZCA9PiB7XG4gICAgICBjYigpO1xuICAgIH07XG4gICAgdmFyIGVycm9yID0gKGVycjogRE9NRXhjZXB0aW9uKTogdm9pZCA9PiB7XG4gICAgICBjYih0aGlzLmNvbnZlcnQoZXJyLCBwYXRoLCB0cnVlKSk7XG4gICAgfTtcbiAgICB0aGlzLmZzLnJvb3QuZ2V0RGlyZWN0b3J5KHBhdGgsIG9wdHMsIHN1Y2Nlc3MsIGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGBGaWxlRW50cnlgcy4gVXNlZCBpbnRlcm5hbGx5IGJ5IGVtcHR5IGFuZCByZWFkZGlyLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVhZGRpcihwYXRoOiBzdHJpbmcsIGNiOiAoZTogQXBpRXJyb3IsIGVudHJpZXM/OiBFbnRyeVtdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdmFyIGVycm9yID0gKGVycjogRE9NRXhjZXB0aW9uKTogdm9pZCA9PiB7XG4gICAgICBjYih0aGlzLmNvbnZlcnQoZXJyLCBwYXRoLCB0cnVlKSk7XG4gICAgfTtcbiAgICAvLyBHcmFiIHRoZSByZXF1ZXN0ZWQgZGlyZWN0b3J5LlxuICAgIHRoaXMuZnMucm9vdC5nZXREaXJlY3RvcnkocGF0aCwgeyBjcmVhdGU6IGZhbHNlIH0sIChkaXJFbnRyeTogRGlyZWN0b3J5RW50cnkpID0+IHtcbiAgICAgIHZhciByZWFkZXIgPSBkaXJFbnRyeS5jcmVhdGVSZWFkZXIoKTtcbiAgICAgIHZhciBlbnRyaWVzOiBFbnRyeVtdID0gW107XG5cbiAgICAgIC8vIENhbGwgdGhlIHJlYWRlci5yZWFkRW50cmllcygpIHVudGlsIG5vIG1vcmUgcmVzdWx0cyBhcmUgcmV0dXJuZWQuXG4gICAgICB2YXIgcmVhZEVudHJpZXMgPSAoKSA9PiB7XG4gICAgICAgIHJlYWRlci5yZWFkRW50cmllcygoKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBlbnRyaWVzLmNvbmNhdChfdG9BcnJheShyZXN1bHRzKSk7XG4gICAgICAgICAgICByZWFkRW50cmllcygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYihudWxsLCBlbnRyaWVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLCBlcnJvcik7XG4gICAgICB9O1xuICAgICAgcmVhZEVudHJpZXMoKTtcbiAgICB9LCBlcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogTWFwIF9yZWFkZGlyJ3MgbGlzdCBvZiBgRmlsZUVudHJ5YHMgdG8gdGhlaXIgbmFtZXMgYW5kIHJldHVybiB0aGF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRkaXIocGF0aDogc3RyaW5nLCBjYjogKGVycjogQXBpRXJyb3IsIGZpbGVzPzogc3RyaW5nW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWFkZGlyKHBhdGgsIChlOiBBcGlFcnJvciwgZW50cmllcz86IEVudHJ5W10pOiB2b2lkID0+IHtcbiAgICAgIGlmIChlKSB7XG4gICAgICAgIHJldHVybiBjYihlKTtcbiAgICAgIH1cbiAgICAgIHZhciBydjogc3RyaW5nW10gPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBydi5wdXNoKGVudHJpZXNbaV0ubmFtZSk7XG4gICAgICB9XG4gICAgICBjYihudWxsLCBydik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== |
@@ -6,8 +6,7 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
}; | ||
var buffer = require('../core/buffer'); | ||
var kvfs = require('../generic/key_value_filesystem'); | ||
var api_error_1 = require('../core/api_error'); | ||
var global = require('../core/global'); | ||
var Buffer = buffer.Buffer; | ||
indexedDB: IDBFactory = global.indexedDB || | ||
var util_1 = require('../core/util'); | ||
var indexedDB = global.indexedDB || | ||
global.mozIndexedDB || | ||
@@ -50,3 +49,3 @@ global.webkitIndexedDB || | ||
else { | ||
cb(null, new Buffer(result)); | ||
cb(null, util_1.arrayBuffer2Buffer(result)); | ||
} | ||
@@ -69,3 +68,3 @@ }; | ||
try { | ||
var arraybuffer = data.toArrayBuffer(), r; | ||
var arraybuffer = util_1.buffer2ArrayBuffer(data), r; | ||
if (overwrite) { | ||
@@ -194,2 +193,2 @@ r = this.store.put(arraybuffer, key); | ||
exports["default"] = IndexedDBFileSystem; | ||
//# sourceMappingURL=IndexedDB.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhlZERCLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvSW5kZXhlZERCLnRzIl0sIm5hbWVzIjpbImNvbnZlcnRFcnJvciIsIm9uRXJyb3JIYW5kbGVyIiwiSW5kZXhlZERCUk9UcmFuc2FjdGlvbiIsIkluZGV4ZWREQlJPVHJhbnNhY3Rpb24uY29uc3RydWN0b3IiLCJJbmRleGVkREJST1RyYW5zYWN0aW9uLmdldCIsIkluZGV4ZWREQlJXVHJhbnNhY3Rpb24iLCJJbmRleGVkREJSV1RyYW5zYWN0aW9uLmNvbnN0cnVjdG9yIiwiSW5kZXhlZERCUldUcmFuc2FjdGlvbi5wdXQiLCJJbmRleGVkREJSV1RyYW5zYWN0aW9uLmRlbCIsIkluZGV4ZWREQlJXVHJhbnNhY3Rpb24uY29tbWl0IiwiSW5kZXhlZERCUldUcmFuc2FjdGlvbi5hYm9ydCIsIkluZGV4ZWREQlN0b3JlIiwiSW5kZXhlZERCU3RvcmUuY29uc3RydWN0b3IiLCJJbmRleGVkREJTdG9yZS5uYW1lIiwiSW5kZXhlZERCU3RvcmUuY2xlYXIiLCJJbmRleGVkREJTdG9yZS5iZWdpblRyYW5zYWN0aW9uIiwiSW5kZXhlZERCRmlsZVN5c3RlbSIsIkluZGV4ZWREQkZpbGVTeXN0ZW0uY29uc3RydWN0b3IiLCJJbmRleGVkREJGaWxlU3lzdGVtLmlzQXZhaWxhYmxlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU8sSUFBSSxXQUFXLGlDQUFpQyxDQUFDLENBQUM7QUFDekQsMEJBQWtDLG1CQUFtQixDQUFDLENBQUE7QUFDdEQsSUFBTyxNQUFNLFdBQVcsZ0JBQWdCLENBQUMsQ0FBQztBQUMxQyxxQkFBcUQsY0FBYyxDQUFDLENBQUE7QUFJcEUsSUFBSSxTQUFTLEdBQWUsTUFBTSxDQUFDLFNBQVM7SUFDWixNQUFPLENBQUMsWUFBWTtJQUNwQixNQUFPLENBQUMsZUFBZTtJQUM3QixNQUFNLENBQUMsV0FBVyxDQUFDO0FBTTdDLHNCQUFzQixDQUFp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SEYsMEJBQUNBO0FBQURBLENBQUNBLEFBekJELEVBQWlELElBQUksQ0FBQyx1QkFBdUIsRUF5QjVFO0FBekJEO3dDQXlCQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGt2ZnMgPSByZXF1aXJlKCcuLi9nZW5lcmljL2tleV92YWx1ZV9maWxlc3lzdGVtJyk7XG5pbXBvcnQge0FwaUVycm9yLCBFcnJvckNvZGV9IGZyb20gJy4uL2NvcmUvYXBpX2Vycm9yJztcbmltcG9ydCBnbG9iYWwgPSByZXF1aXJlKCcuLi9jb3JlL2dsb2JhbCcpO1xuaW1wb3J0IHthcnJheUJ1ZmZlcjJCdWZmZXIsIGJ1ZmZlcjJBcnJheUJ1ZmZlcn0gZnJvbSAnLi4vY29yZS91dGlsJztcbi8qKlxuICogR2V0IHRoZSBpbmRleGVkREIgY29uc3RydWN0b3IgZm9yIHRoZSBjdXJyZW50IGJyb3dzZXIuXG4gKi9cbnZhciBpbmRleGVkREI6IElEQkZhY3RvcnkgPSBnbG9iYWwuaW5kZXhlZERCIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICg8YW55Pmdsb2JhbCkubW96SW5kZXhlZERCIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICg8YW55Pmdsb2JhbCkud2Via2l0SW5kZXhlZERCIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC5tc0luZGV4ZWREQjtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIERPTUV4Y2VwdGlvbiBvciBhIERPTUVycm9yIGZyb20gYW4gSW5kZXhlZERCIGV2ZW50IGludG8gYVxuICogc3RhbmRhcmRpemVkIEJyb3dzZXJGUyBBUEkgZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRFcnJvcihlOiB7bmFtZTogc3RyaW5nfSwgbWVzc2FnZTogc3RyaW5nID0gZS50b1N0cmluZygpKTogQXBpRXJyb3Ige1xuICBzd2l0Y2goZS5uYW1lKSB7XG4gICAgY2FzZSBcIk5vdEZvdW5kRXJyb3JcIjpcbiAgICAgIHJldHVybiBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT0VOVCwgbWVzc2FnZSk7XG4gICAgY2FzZSBcIlF1b3RhRXhjZWVkZWRFcnJvclwiOlxuICAgICAgcmV0dXJuIG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PU1BDLCBtZXNzYWdlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gVGhlIHJlc3QgZG8gbm90IHNlZW0gdG8gbWFwIGNsZWFubHkgdG8gc3RhbmRhcmQgZXJyb3IgY29kZXMuXG4gICAgICByZXR1cm4gbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FSU8sIG1lc3NhZ2UpO1xuICB9XG59XG5cbi8qKlxuICogUHJvZHVjZXMgYSBuZXcgb25lcnJvciBoYW5kbGVyIGZvciBJREIuIE91ciBlcnJvcnMgYXJlIGFsd2F5cyBmYXRhbCwgc28gd2VcbiAqIGhhbmRsZSB0aGVtIGdlbmVyaWNhbGx5OiBDYWxsIHRoZSB1c2VyLXN1cHBsaWVkIGNhbGxiYWNrIHdpdGggYSB0cmFuc2xhdGVkXG4gKiB2ZXJzaW9uIG9mIHRoZSBlcnJvciwgYW5kIGxldCB0aGUgZXJyb3IgYnViYmxlIHVwLlxuICovXG5mdW5jdGlvbiBvbkVycm9ySGFuZGxlcihjYjogKGU6IEFwaUVycm9yKSA9PiB2b2lkLFxuICBjb2RlOiBFcnJvckNvZGUgPSBFcnJvckNvZGUuRUlPLCBtZXNzYWdlOiBzdHJpbmcgPSBudWxsKTogKGU/OiBhbnkpID0+IHZvaWQge1xuICByZXR1cm4gZnVuY3Rpb24gKGU/OiBhbnkpOiB2b2lkIHtcbiAgICAvLyBQcmV2ZW50IHRoZSBlcnJvciBmcm9tIGNhbmNlbGluZyB0aGUgdHJhbnNhY3Rpb24uXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNiKG5ldyBBcGlFcnJvcihjb2RlLCBtZXNzYWdlKSk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkREJST1RyYW5zYWN0aW9uIGltcGxlbWVudHMga3Zmcy5Bc3luY0tleVZhbHVlUk9UcmFuc2FjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0eDogSURCVHJhbnNhY3Rpb24sIHB1YmxpYyBzdG9yZTogSURCT2JqZWN0U3RvcmUpIHsgfVxuXG4gIGdldChrZXk6IHN0cmluZywgY2I6IChlOiBBcGlFcnJvciwgZGF0YT86IE5vZGVCdWZmZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdmFyIHI6IElEQlJlcXVlc3QgPSB0aGlzLnN0b3JlLmdldChrZXkpO1xuICAgICAgci5vbmVycm9yID0gb25FcnJvckhhbmRsZXIoY2IpO1xuICAgICAgci5vbnN1Y2Nlc3MgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gSURCIHJldHVybnMgdGhlIHZhbHVlICd1bmRlZmluZWQnIHdoZW4geW91IHRyeSB0byBnZXQga2V5cyB0aGF0XG4gICAgICAgIC8vIGRvbid0IGV4aXN0LiBUaGUgY2FsbGVyIGV4cGVjdHMgdGhpcyBiZWhhdmlvci5cbiAgICAgICAgdmFyIHJlc3VsdDogYW55ID0gKDxhbnk+ZXZlbnQudGFyZ2V0KS5yZXN1bHQ7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNiKG51bGwsIHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSURCIGRhdGEgaXMgc3RvcmVkIGFzIGFuIEFycmF5QnVmZmVyXG4gICAgICAgICAgY2IobnVsbCwgYXJyYXlCdWZmZXIyQnVmZmVyKHJlc3VsdCkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNiKGNvbnZlcnRFcnJvcihlKSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkREJSV1RyYW5zYWN0aW9uIGV4dGVuZHMgSW5kZXhlZERCUk9UcmFuc2FjdGlvbiBpbXBsZW1lbnRzIGt2ZnMuQXN5bmNLZXlWYWx1ZVJXVHJhbnNhY3Rpb24sIGt2ZnMuQXN5bmNLZXlWYWx1ZVJPVHJhbnNhY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcih0eDogSURCVHJhbnNhY3Rpb24sIHN0b3JlOiBJREJPYmplY3RTdG9yZSkge1xuICAgIHN1cGVyKHR4LCBzdG9yZSk7XG4gIH1cblxuICBwdWJsaWMgcHV0KGtleTogc3RyaW5nLCBkYXRhOiBOb2RlQnVmZmVyLCBvdmVyd3JpdGU6IGJvb2xlYW4sIGNiOiAoZTogQXBpRXJyb3IsIGNvbW1pdHRlZD86IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGFycmF5YnVmZmVyID0gYnVmZmVyMkFycmF5QnVmZmVyKGRhdGEpLFxuICAgICAgICByOiBJREJSZXF1ZXN0O1xuICAgICAgaWYgKG92ZXJ3cml0ZSkge1xuICAgICAgICByID0gdGhpcy5zdG9yZS5wdXQoYXJyYXlidWZmZXIsIGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAnYWRkJyB3aWxsIG5ldmVyIG92ZXJ3cml0ZSBhbiBleGlzdGluZyBrZXkuXG4gICAgICAgIHIgPSB0aGlzLnN0b3JlLmFkZChhcnJheWJ1ZmZlciwga2V5KTtcbiAgICAgIH1cbiAgICAgIC8vIFhYWDogTkVFRCBUTyBSRVRVUk4gRkFMU0UgV0hFTiBBREQgSEFTIEEgS0VZIENPTkZMSUNULiBOTyBFUlJPUi5cbiAgICAgIHIub25lcnJvciA9IG9uRXJyb3JIYW5kbGVyKGNiKTtcbiAgICAgIHIub25zdWNjZXNzID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGNiKG51bGwsIHRydWUpO1xuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjYihjb252ZXJ0RXJyb3IoZSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWwoa2V5OiBzdHJpbmcsIGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIE5PVEU6IElFOCBoYXMgYSBidWcgd2l0aCBpZGVudGlmaWVycyBuYW1lZCAnZGVsZXRlJyB1bmxlc3MgdXNlZCBhcyBhIHN0cmluZ1xuICAgICAgLy8gbGlrZSB0aGlzLlxuICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjY0NzkxNTJcbiAgICAgIHZhciByOiBJREJSZXF1ZXN0ID0gdGhpcy5zdG9yZVsnZGVsZXRlJ10oa2V5KTtcbiAgICAgIHIub25lcnJvciA9IG9uRXJyb3JIYW5kbGVyKGNiKTtcbiAgICAgIHIub25zdWNjZXNzID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGNiKCk7XG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNiKGNvbnZlcnRFcnJvcihlKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbW1pdChjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIC8vIFJldHVybiB0byB0aGUgZXZlbnQgbG9vcCB0byBjb21taXQgdGhlIHRyYW5zYWN0aW9uLlxuICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICB9XG5cbiAgcHVibGljIGFib3J0KGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdmFyIF9lOiBBcGlFcnJvcjtcbiAgICB0cnkge1xuICAgICAgdGhpcy50eC5hYm9ydCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIF9lID0gY29udmVydEVycm9yKGUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjYihfZSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkREJTdG9yZSBpbXBsZW1lbnRzIGt2ZnMuQXN5bmNLZXlWYWx1ZVN0b3JlIHtcbiAgcHJpdmF0ZSBkYjogSURCRGF0YWJhc2U7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYW4gSW5kZXhlZERCIGZpbGUgc3lzdGVtLlxuICAgKiBAcGFyYW0gY2IgQ2FsbGVkIG9uY2UgdGhlIGRhdGFiYXNlIGlzIGluc3RhbnRpYXRlZCBhbmQgcmVhZHkgZm9yIHVzZS5cbiAgICogICBQYXNzZXMgYW4gZXJyb3IgaWYgdGhlcmUgd2FzIGFuIGlzc3VlIGluc3RhbnRpYXRpbmcgdGhlIGRhdGFiYXNlLlxuICAgKiBAcGFyYW0gb2JqZWN0U3RvcmVOYW1lIFRoZSBuYW1lIG9mIHRoaXMgZmlsZSBzeXN0ZW0uIFlvdSBjYW4gaGF2ZVxuICAgKiAgIG11bHRpcGxlIEluZGV4ZWREQiBmaWxlIHN5c3RlbXMgb3BlcmF0aW5nIGF0IG9uY2UsIGJ1dCBlYWNoIG11c3QgaGF2ZVxuICAgKiAgIGEgZGlmZmVyZW50IG5hbWUuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjYjogKGU6IEFwaUVycm9yLCBzdG9yZT86IEluZGV4ZWREQlN0b3JlKSA9PiB2b2lkLCBwcml2YXRlIHN0b3JlTmFtZTogc3RyaW5nID0gJ2Jyb3dzZXJmcycpIHtcbiAgICB2YXIgb3BlblJlcTogSURCT3BlbkRCUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKHRoaXMuc3RvcmVOYW1lLCAxKTtcblxuICAgIG9wZW5SZXEub251cGdyYWRlbmVlZGVkID0gKGV2ZW50KSA9PiB7XG4gICAgICB2YXIgZGI6IElEQkRhdGFiYXNlID0gKDxhbnk+ZXZlbnQudGFyZ2V0KS5yZXN1bHQ7XG4gICAgICAvLyBIdWguIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbjsgd2UncmUgYXQgdmVyc2lvbiAxLiBXaHkgZG9lcyBhbm90aGVyXG4gICAgICAvLyBkYXRhYmFzZSBleGlzdD9cbiAgICAgIGlmIChkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKHRoaXMuc3RvcmVOYW1lKSkge1xuICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSh0aGlzLnN0b3JlTmFtZSk7XG4gICAgICB9XG4gICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLnN0b3JlTmFtZSk7XG4gICAgfTtcblxuICAgIG9wZW5SZXEub25zdWNjZXNzID0gKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmRiID0gKDxhbnk+ZXZlbnQudGFyZ2V0KS5yZXN1bHQ7XG4gICAgICBjYihudWxsLCB0aGlzKTtcbiAgICB9O1xuXG4gICAgb3BlblJlcS5vbmVycm9yID0gb25FcnJvckhhbmRsZXIoY2IsIEVycm9yQ29kZS5FQUNDRVMpO1xuICB9XG5cbiAgcHVibGljIG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJJbmRleGVkREIgLSBcIiArIHRoaXMuc3RvcmVOYW1lO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciB0eCA9IHRoaXMuZGIudHJhbnNhY3Rpb24odGhpcy5zdG9yZU5hbWUsICdyZWFkd3JpdGUnKSxcbiAgICAgICAgb2JqZWN0U3RvcmUgPSB0eC5vYmplY3RTdG9yZSh0aGlzLnN0b3JlTmFtZSksXG4gICAgICAgIHI6IElEQlJlcXVlc3QgPSBvYmplY3RTdG9yZS5jbGVhcigpO1xuICAgICAgci5vbnN1Y2Nlc3MgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gVXNlIHNldFRpbWVvdXQgdG8gY29tbWl0IHRyYW5zYWN0aW9uLlxuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgIH07XG4gICAgICByLm9uZXJyb3IgPSBvbkVycm9ySGFuZGxlcihjYik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY2IoY29udmVydEVycm9yKGUpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmVnaW5UcmFuc2FjdGlvbih0eXBlOiBzdHJpbmcgPSAncmVhZG9ubHknKToga3Zmcy5Bc3luY0tleVZhbHVlUk9UcmFuc2FjdGlvbiB7XG4gICAgdmFyIHR4ID0gdGhpcy5kYi50cmFuc2FjdGlvbih0aGlzLnN0b3JlTmFtZSwgdHlwZSksXG4gICAgICBvYmplY3RTdG9yZSA9IHR4Lm9iamVjdFN0b3JlKHRoaXMuc3RvcmVOYW1lKTtcbiAgICBpZiAodHlwZSA9PT0gJ3JlYWR3cml0ZScpIHtcbiAgICAgIHJldHVybiBuZXcgSW5kZXhlZERCUldUcmFuc2FjdGlvbih0eCwgb2JqZWN0U3RvcmUpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3JlYWRvbmx5Jykge1xuICAgICAgcmV0dXJuIG5ldyBJbmRleGVkREJST1RyYW5zYWN0aW9uKHR4LCBvYmplY3RTdG9yZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRUlOVkFMLCAnSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlLicpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgZmlsZSBzeXN0ZW0gdGhhdCB1c2VzIHRoZSBJbmRleGVkREIga2V5IHZhbHVlIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmRleGVkREJGaWxlU3lzdGVtIGV4dGVuZHMga3Zmcy5Bc3luY0tleVZhbHVlRmlsZVN5c3RlbSB7XG4gIGNvbnN0cnVjdG9yKGNiOiAoZTogQXBpRXJyb3IsIGZzPzogSW5kZXhlZERCRmlsZVN5c3RlbSkgPT4gdm9pZCwgc3RvcmVOYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICBuZXcgSW5kZXhlZERCU3RvcmUoKGUsIHN0b3JlPyk6IHZvaWQgPT4ge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgY2IoZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmluaXQoc3RvcmUsIChlPykgPT4ge1xuICAgICAgICAgIGNiKGUsIHRoaXMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBzdG9yZU5hbWUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0F2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICAvLyBJbiBTYWZhcmkncyBwcml2YXRlIGJyb3dzaW5nIG1vZGUsIGluZGV4ZWREQi5vcGVuIHJldHVybnMgTlVMTC5cbiAgICAvLyBJbiBGaXJlZm94LCBpdCB0aHJvd3MgYW4gZXhjZXB0aW9uLlxuICAgIC8vIEluIENocm9tZSwgaXQgXCJqdXN0IHdvcmtzXCIsIGFuZCBjbGVhcnMgdGhlIGRhdGFiYXNlIHdoZW4geW91IGxlYXZlIHRoZSBwYWdlLlxuICAgIC8vIFVudGVzdGVkOiBPcGVyYSwgSUUuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0eXBlb2YgaW5kZXhlZERCICE9PSAndW5kZWZpbmVkJyAmJiBudWxsICE9PSBpbmRleGVkREIub3BlbihcIl9fYnJvd3NlcmZzX3Rlc3RfX1wiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0= |
@@ -41,2 +41,2 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
exports["default"] = InMemoryFileSystem; | ||
//# sourceMappingURL=InMemory.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9Jbk1lbW9yeS50cyJdLCJuYW1lcyI6WyJJbk1lbW9yeVN0b3JlIiwiSW5NZW1vcnlTdG9yZS5jb25zdHJ1Y3RvciIsIkluTWVtb3J5U3RvcmUubmFtZSIsIkluTWVtb3J5U3RvcmUuY2xlYXIiLCJJbk1lbW9yeVN0b3JlLmJlZ2luVHJhbnNhY3Rpb24iLCJJbk1lbW9yeVN0b3JlLmdldCIsIkluTWVtb3J5U3RvcmUucHV0IiwiSW5NZW1vcnlTdG9yZS5kZWwiLCJJbk1lbW9yeUZpbGVTeXN0ZW0iLCJJbk1lbW9yeUZpbGVTeXN0ZW0uY29uc3RydWN0b3IiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBTyxJQUFJLFdBQVcsaUNBQWlDLENBQUMsQ0FBQztBQUt6RDtJQUFBQTtRQUNVQyxVQUFLQSxHQUFrQ0EsRUFBRUEsQ0FBQ0E7SUF3QnBEQSxDQUFDQTtJQXRCUUQsNEJBQUlBLEdBQVhBLGNBQWdCRSxNQUFNQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUM5QkYsNkJBQUtBLEdBQVpBLGNBQWlCRyxJQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUU1Qkgsd0NBQWdCQSxHQUF2QkEsVUFBd0JBLElBQVlBO1FBQ2xDSSxNQUFNQSxDQUFDQSxJQUFJQSxJQUFJQSxDQUFDQSx1QkFBdUJBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQ2hEQSxDQUFDQTtJQUVNSiwyQkFBR0EsR0FBVkEsVUFBV0EsR0FBV0E7UUFDcEJLLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO0lBQ3pCQSxDQUFDQTtJQUVNTCwyQkFBR0EsR0FBVkEsVUFBV0EsR0FBV0EsRUFBRUEsSUFBZ0JBLEVBQUVBLFNBQWtCQTtRQUMxRE0sRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsU0FBU0EsSUFBSUEsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakRBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO1FBQ2ZBLENBQUNBO1FBQ0RBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBO1FBQ3ZCQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNkQSxDQUFDQTtJQUVNTiwyQkFBR0EsR0FBVkEsVUFBV0EsR0FBV0E7UUFDcEJPLE9BQU9BLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO0lBQ3pCQSxDQUFDQTtJQUNIUCxvQkFBQ0E7QUFBREEsQ0FBQ0EsQUF6QkQsSUF5QkM7QUF6QlkscUJBQWEsZ0JBeUJ6QixDQUFBO0FBS0Q7SUFBZ0RRLHNDQUEyQkE7SUFDekVBO1FBQ0VDLGtCQUFNQSxFQUFFQSxLQUFLQSxFQUFFQSxJQUFJQSxhQUFhQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtJQUN4Q0EsQ0FBQ0E7SUFDSEQseUJBQUNBO0FBQURBLENBQUNBLEFBSkQsRUFBZ0QsSUFBSSxDQUFDLHNCQUFzQixFQUkxRTtBQUpEO3VDQUlDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQga3ZmcyA9IHJlcXVpcmUoJy4uL2dlbmVyaWMva2V5X3ZhbHVlX2ZpbGVzeXN0ZW0nKTtcblxuLyoqXG4gKiBBIHNpbXBsZSBpbi1tZW1vcnkga2V5LXZhbHVlIHN0b3JlIGJhY2tlZCBieSBhIEphdmFTY3JpcHQgb2JqZWN0LlxuICovXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yZSBpbXBsZW1lbnRzIGt2ZnMuU3luY0tleVZhbHVlU3RvcmUsIGt2ZnMuU2ltcGxlU3luY1N0b3JlIHtcbiAgcHJpdmF0ZSBzdG9yZTogeyBba2V5OiBzdHJpbmddOiBOb2RlQnVmZmVyIH0gPSB7fTtcblxuICBwdWJsaWMgbmFtZSgpIHsgcmV0dXJuICdJbi1tZW1vcnknOyB9XG4gIHB1YmxpYyBjbGVhcigpIHsgdGhpcy5zdG9yZSA9IHt9OyB9XG5cbiAgcHVibGljIGJlZ2luVHJhbnNhY3Rpb24odHlwZTogc3RyaW5nKToga3Zmcy5TeW5jS2V5VmFsdWVSV1RyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IGt2ZnMuU2ltcGxlU3luY1JXVHJhbnNhY3Rpb24odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogTm9kZUJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVba2V5XTtcbiAgfVxuXG4gIHB1YmxpYyBwdXQoa2V5OiBzdHJpbmcsIGRhdGE6IE5vZGVCdWZmZXIsIG92ZXJ3cml0ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICghb3ZlcndyaXRlICYmIHRoaXMuc3RvcmUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlW2tleV0gPSBkYXRhO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRlbChrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JlW2tleV07XG4gIH1cbn1cblxuLyoqXG4gKiBBIHNpbXBsZSBpbi1tZW1vcnkgZmlsZSBzeXN0ZW0gYmFja2VkIGJ5IGFuIEluTWVtb3J5U3RvcmUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEluTWVtb3J5RmlsZVN5c3RlbSBleHRlbmRzIGt2ZnMuU3luY0tleVZhbHVlRmlsZVN5c3RlbSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHsgc3RvcmU6IG5ldyBJbk1lbW9yeVN0b3JlKCkgfSk7XG4gIH1cbn1cbiJdfQ== |
@@ -6,3 +6,2 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
}; | ||
var buffer_1 = require('../core/buffer'); | ||
var kvfs = require('../generic/key_value_filesystem'); | ||
@@ -36,3 +35,3 @@ var api_error_1 = require('../core/api_error'); | ||
if (data !== null) { | ||
return new buffer_1.Buffer(data, binaryEncoding); | ||
return new Buffer(data, binaryEncoding); | ||
} | ||
@@ -79,2 +78,2 @@ } | ||
exports["default"] = LocalStorageFileSystem; | ||
//# sourceMappingURL=LocalStorage.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvTG9jYWxTdG9yYWdlLnRzIl0sIm5hbWVzIjpbIkxvY2FsU3RvcmFnZVN0b3JlIiwiTG9jYWxTdG9yYWdlU3RvcmUuY29uc3RydWN0b3IiLCJMb2NhbFN0b3JhZ2VTdG9yZS5uYW1lIiwiTG9jYWxTdG9yYWdlU3RvcmUuY2xlYXIiLCJMb2NhbFN0b3JhZ2VTdG9yZS5iZWdpblRyYW5zYWN0aW9uIiwiTG9jYWxTdG9yYWdlU3RvcmUuZ2V0IiwiTG9jYWxTdG9yYWdlU3RvcmUucHV0IiwiTG9jYWxTdG9yYWdlU3RvcmUuZGVsIiwiTG9jYWxTdG9yYWdlRmlsZVN5c3RlbSIsIkxvY2FsU3RvcmFnZUZpbGVTeXN0ZW0uY29uc3RydWN0b3IiLCJMb2NhbFN0b3JhZ2VGaWxlU3lzdGVtLmlzQXZhaWxhYmxlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU8sSUFBSSxXQUFXLGlDQUFpQyxDQUFDLENBQUM7QUFDekQsMEJBQWtDLG1CQUFtQixDQUFDLENBQUE7QUFDdEQsSUFBTyxNQUFNLFdBQVcsZ0JBQWdCLENBQUMsQ0FBQztBQUsxQyxJQUFJLG9CQUFvQixHQUFZLEtBQUssRUFDdkMsY0FBc0IsQ0FBQztBQUN6QixJQUFJLENBQUM7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakcsQ0FBRTtBQUFBLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFWCxvQkFBb0IsR0FBRyxLQUFLLENBQUM7QUFDL0IsQ0FBQztBQUNELGNBQWMsR0FBRyxvQkFB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Q0FBQ0E7SUFDSEYsNkJBQUNBO0FBQURBLENBQUNBLEFBTEQsRUFBb0QsSUFBSSxDQUFDLHNCQUFzQixFQUs5RTtBQUxEOzJDQUtDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQga3ZmcyA9IHJlcXVpcmUoJy4uL2dlbmVyaWMva2V5X3ZhbHVlX2ZpbGVzeXN0ZW0nKTtcbmltcG9ydCB7QXBpRXJyb3IsIEVycm9yQ29kZX0gZnJvbSAnLi4vY29yZS9hcGlfZXJyb3InO1xuaW1wb3J0IGdsb2JhbCA9IHJlcXVpcmUoJy4uL2NvcmUvZ2xvYmFsJyk7XG5cbi8vIFNvbWUgdmVyc2lvbnMgb2YgRkYgYW5kIGFsbCB2ZXJzaW9ucyBvZiBJRSBkbyBub3Qgc3VwcG9ydCB0aGUgZnVsbCByYW5nZSBvZlxuLy8gMTYtYml0IG51bWJlcnMgZW5jb2RlZCBhcyBjaGFyYWN0ZXJzLCBhcyB0aGV5IGVuZm9yY2UgVVRGLTE2IHJlc3RyaWN0aW9ucy5cbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTExNzA3MTYvYXJlLXRoZXJlLWFueS1jaGFyYWN0ZXJzLXRoYXQtYXJlLW5vdC1hbGxvd2VkLWluLWxvY2Fsc3RvcmFnZS8xMTE3MzY3MyMxMTE3MzY3M1xudmFyIHN1cHBvcnRzQmluYXJ5U3RyaW5nOiBib29sZWFuID0gZmFsc2UsXG4gIGJpbmFyeUVuY29kaW5nOiBzdHJpbmc7XG50cnkge1xuICBnbG9iYWwubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJfX3Rlc3RfX1wiLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgwMCkpO1xuICBzdXBwb3J0c0JpbmFyeVN0cmluZyA9IGdsb2JhbC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIl9fdGVzdF9fXCIpID09PSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RDgwMCk7XG59IGNhdGNoIChlKSB7XG4gIC8vIElFIHRocm93cyBhbiBleGNlcHRpb24uXG4gIHN1cHBvcnRzQmluYXJ5U3RyaW5nID0gZmFsc2U7XG59XG5iaW5hcnlFbmNvZGluZyA9IHN1cHBvcnRzQmluYXJ5U3RyaW5nID8gJ2JpbmFyeV9zdHJpbmcnIDogJ2JpbmFyeV9zdHJpbmdfaWUnO1xuXG5cbi8qKlxuICogQSBzeW5jaHJvbm91cyBrZXktdmFsdWUgc3RvcmUgYmFja2VkIGJ5IGxvY2FsU3RvcmFnZS5cbiAqL1xuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVN0b3JlIGltcGxlbWVudHMga3Zmcy5TeW5jS2V5VmFsdWVTdG9yZSwga3Zmcy5TaW1wbGVTeW5jU3RvcmUge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdMb2NhbFN0b3JhZ2UnO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGdsb2JhbC5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiZWdpblRyYW5zYWN0aW9uKHR5cGU6IHN0cmluZyk6IGt2ZnMuU3luY0tleVZhbHVlUldUcmFuc2FjdGlvbiB7XG4gICAgLy8gTm8gbmVlZCB0byBkaWZmZXJlbnRpYXRlLlxuICAgIHJldHVybiBuZXcga3Zmcy5TaW1wbGVTeW5jUldUcmFuc2FjdGlvbih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBOb2RlQnVmZmVyIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGRhdGEgPSBnbG9iYWwubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgIGlmIChkYXRhICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgQnVmZmVyKGRhdGEsIGJpbmFyeUVuY29kaW5nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG5cbiAgICB9XG4gICAgLy8gS2V5IGRvZXNuJ3QgZXhpc3QsIG9yIGEgZmFpbHVyZSBvY2N1cnJlZC5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHB1dChrZXk6IHN0cmluZywgZGF0YTogTm9kZUJ1ZmZlciwgb3ZlcndyaXRlOiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghb3ZlcndyaXRlICYmIGdsb2JhbC5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpICE9PSBudWxsKSB7XG4gICAgICAgIC8vIERvbid0IHdhbnQgdG8gb3ZlcndyaXRlIHRoZSBrZXkhXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGdsb2JhbC5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIGRhdGEudG9TdHJpbmcoYmluYXJ5RW5jb2RpbmcpKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PU1BDLCBcIkxvY2FsU3RvcmFnZSBpcyBmdWxsLlwiKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGdsb2JhbC5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRUlPLCBcIlVuYWJsZSB0byBkZWxldGUga2V5IFwiICsga2V5ICsgXCI6IFwiICsgZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBzeW5jaHJvbm91cyBmaWxlIHN5c3RlbSBiYWNrZWQgYnkgbG9jYWxTdG9yYWdlLiBDb25uZWN0cyBvdXJcbiAqIExvY2FsU3RvcmFnZVN0b3JlIHRvIG91ciBTeW5jS2V5VmFsdWVGaWxlU3lzdGVtLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NhbFN0b3JhZ2VGaWxlU3lzdGVtIGV4dGVuZHMga3Zmcy5TeW5jS2V5VmFsdWVGaWxlU3lzdGVtIHtcbiAgY29uc3RydWN0b3IoKSB7IHN1cGVyKHsgc3RvcmU6IG5ldyBMb2NhbFN0b3JhZ2VTdG9yZSgpIH0pOyB9XG4gIHB1YmxpYyBzdGF0aWMgaXNBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBnbG9iYWwubG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJztcbiAgfVxufVxuIl19 |
@@ -175,2 +175,2 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
} | ||
//# sourceMappingURL=MountableFileSystem.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW91bnRhYmxlRmlsZVN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZW5kL01vdW50YWJsZUZpbGVTeXN0ZW0udHMiXSwibmFtZXMiOlsiTW91bnRhYmxlRmlsZVN5c3RlbSIsIk1vdW50YWJsZUZpbGVTeXN0ZW0uY29uc3RydWN0b3IiLCJNb3VudGFibGVGaWxlU3lzdGVtLm1vdW50IiwiTW91bnRhYmxlRmlsZVN5c3RlbS51bW91bnQiLCJNb3VudGFibGVGaWxlU3lzdGVtLl9nZXRfZnMiLCJNb3VudGFibGVGaWxlU3lzdGVtLmdldE5hbWUiLCJNb3VudGFibGVGaWxlU3lzdGVtLmlzQXZhaWxhYmxlIiwiTW91bnRhYmxlRmlsZVN5c3RlbS5kaXNrU3BhY2UiLCJNb3VudGFibGVGaWxlU3lzdGVtLmlzUmVhZE9ubHkiLCJNb3VudGFibGVGaWxlU3lzdGVtLnN1cHBvcnRzTGlua3MiLCJNb3VudGFibGVGaWxlU3lzdGVtLnN1cHBvcnRzUHJvcHMiLCJNb3VudGFibGVGaWxlU3lzdGVtLnN1cHBvcnRzU3luY2giLCJNb3VudGFibGVGaWxlU3lzdGVtLnN0YW5kYXJkaXplRXJyb3IiLCJNb3VudGFibGVGaWxlU3lzdGVtLnJlbmFtZSIsIk1vdW50YWJsZUZpbGVTeXN0ZW0ucmVuYW1lU3luYyIsImRlZmluZUZjbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFPLFdBQVcsV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3BELHlCQUErQixZQUFZLENBQUMsQ0FBQTtBQUM1QywwQkFBa0MsbUJBQW1CLENBQUMsQ0FBQTtBQUN0RCxJQUFPLEVBQUUsV0FBVyxpQkFBaUIsQ0FBQyxDQUFDO0FBV3ZDO0lBQWlEQSx1Q0FBMEJBO0lBR3pFQTtRQUNFQyxpQkFBT0EsQ0FBQ0E7UUFDUkEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFHakJBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLElBQUlBLHFCQUFrQkEsRUFBRUEsQ0FBQ0E7SUFDekNBLENBQUNBO0lBS01ELG1DQUFLQSxHQUFaQSxVQUFhQSxNQUFjQSxFQUFFQSxFQUEwQkE7UUFDckRFLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3hCQSxNQUFNQSxJQUFJQSxvQkFBUUEsQ0FBQ0EscUJBQVNBLENBQUNBLE1BQU1BLEVBQUVBLGNBQWNBLEdBQUdBLE1BQU1BLEdBQUdBLG9CQUFvQkEsQ0FBQ0EsQ0FBQ0E7UUFDdkZBLENBQUNBO1FBRURBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBO1FBQ3JDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQTtJQUMzQkEsQ0FBQ0E7SUFFTUYsb0NBQU1BLEdBQWJBLFVBQWNBLE1BQWNBO1FBQzFCRyxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN6QkEsTUFBTUEsSUFBSUEsb0JBQVFBLENBQUNBLHFCQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxjQUFjQSxHQUFHQSxNQUFNQSxHQUFHQSx3QkFBd0JBLENBQUNBLENBQUNBO1FBQzNGQSxDQUFDQTtRQUNEQSxPQUFPQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUMzQkEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7SUFDaENBLENBQUNBO0lBS01ILHFDQUFPQSxHQUFkQSxVQUFlQSxJQUFZQTtRQUN6QkksR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsTUFBTUEsSUFBSUEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDL0JBLElBQUlBLEVBQUVBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBQzdCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDL0JBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLEdBQUdBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO2dCQUMxREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ2hCQSxJQUFJQSxHQUFHQSxHQUFHQSxDQUFDQTtnQkFDYkEsQ0FBQ0E7Z0JBQ0RBLE1BQU1BLENBQUNBLEVBQUNBLEVBQUVBLEVBQUVBLEVBQUVBLEVBQUVBLElBQUlBLEVBQUVBLElBQUlBLEVBQUNBLENBQUNBO1lBQzlCQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUVEQSxNQUFNQSxDQUFDQSxFQUFDQSxFQUFFQSxFQUFFQSxJQUFJQSxDQUFDQSxNQUFNQSxFQUFFQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFDQSxDQUFDQTtJQUN2Q0EsQ0FBQ0E7SUFJTUoscUNBQU9BLEdBQWRBO1FBQ0VLLE1BQU1BLENBQUNBLHFCQUFxQkEsQ0FBQ0E7SUFDL0JBLENBQUNBO0lBRWFMLCtCQUFXQSxHQUF6QkE7UUFDRU0sTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7SUFDZEEsQ0FBQ0E7SUFFTU4sdUNBQVNBLEdBQWhCQSxVQUFpQkEsSUFBWUEsRUFBRUEsRUFBeUNBO1FBQ3RFTyxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNYQSxDQUFDQTtJQUVNUCx3Q0FBVUEsR0FBakJBO1FBQ0VRLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO0lBQ2ZBLENBQUNBO0lBRU1SLDJDQUFhQSxHQUFwQkE7UUFFRVMsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDZkEsQ0FBQ0E7SUFFTVQsMkNBQWFBLEdBQXBCQTtRQUNFVSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQTtJQUNmQSxDQUFDQTtJQUVNViwyQ0FBYUEsR0FBcEJBO1FBQ0VXLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2RBLENBQUNBO0lBT09YLDhDQUFnQkEsR0FBeEJBLFVBQXlCQSxHQUFhQSxFQUFFQSxJQUFZQSxFQUFFQSxRQUFnQkE7UUFDcEVZLElBQUlBLEtBQWFBLENBQUNBO1FBQ2xCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxLQUFLQSxHQUFHQSxHQUFHQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMvQ0EsR0FBR0EsQ0FBQ0EsT0FBT0EsR0FBR0EsR0FBR0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsS0FBS0EsQ0FBQ0EsR0FBR0EsUUFBUUEsR0FBR0EsR0FBR0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDbEdBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBO0lBQ2JBLENBQUNBO0lBT01aLG9DQUFNQSxHQUFiQSxVQUFjQSxPQUFlQSxFQUFFQSxPQUFlQSxFQUFFQSxFQUEwQkE7UUFFeEVhLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1FBQ25DQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtRQUNuQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsS0FBS0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDNUJBLElBQUlBLEtBQUtBLEdBQUdBLElBQUlBLENBQUNBO1lBQ2pCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxVQUFTQSxDQUFZQTtnQkFDckUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDckcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDQSxDQUFDQTtRQUNMQSxDQUFDQTtRQUlEQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxRQUFRQSxDQUFDQSxPQUFPQSxFQUFFQSxVQUFTQSxHQUFhQSxFQUFFQSxJQUFVQTtZQUM1RCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsQ0FBQztZQUNELEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFTLEdBQUc7Z0JBQ3RDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakIsQ0FBQztnQkFDRCxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQ0EsQ0FBQ0E7SUFDTEEsQ0FBQ0E7SUFFTWIsd0NBQVVBLEdBQWpCQSxVQUFrQkEsT0FBZUEsRUFBRUEsT0FBZUE7UUFFaERjLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1FBQ25DQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtRQUNuQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsS0FBS0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDNUJBLElBQUlBLENBQUNBO2dCQUNIQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUN4REEsQ0FBRUE7WUFBQUEsS0FBS0EsQ0FBQUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1ZBLElBQUlBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxDQUFDQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxPQUFPQSxDQUFDQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtnQkFDNUZBLE1BQU1BLENBQUNBLENBQUNBO1lBQ1ZBLENBQUNBO1FBQ0hBLENBQUNBO1FBRURBLElBQUlBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBLFlBQVlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1FBQ3BDQSxFQUFFQSxDQUFDQSxhQUFhQSxDQUFDQSxPQUFPQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNoQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDaENBLENBQUNBO0lBQ0hkLDBCQUFDQTtBQUFEQSxDQUFDQSxBQTlJRCxFQUFpRCxXQUFXLENBQUMsY0FBYyxFQThJMUU7QUE5SUQ7d0NBOElDLENBQUE7QUFRRCxtQkFBbUIsSUFBWSxFQUFFLE1BQWUsRUFBRSxPQUFlO0lBQy9EZSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNYQSxNQUFNQSxDQUFDQTtZQUFTLGNBQWM7aUJBQWQsV0FBYyxDQUFkLHNCQUFjLENBQWQsSUFBYztnQkFBZCw2QkFBYzs7WUFDNUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hDLENBQUU7WUFBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNYLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDQTtJQUNKQSxDQUFDQTtJQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNOQSxNQUFNQSxDQUFDQTtZQUFTLGNBQWM7aUJBQWQsV0FBYyxDQUFkLHNCQUFjLENBQWQsSUFBYztnQkFBZCw2QkFBYzs7WUFDNUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDbEIsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRztvQkFBUyxjQUFjO3lCQUFkLFdBQWMsQ0FBZCxzQkFBYyxDQUFkLElBQWM7d0JBQWQsNkJBQWM7O29CQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksb0JBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ25ELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDakQsQ0FBQztvQkFDRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFBO1lBQ0gsQ0FBQztZQUNELE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQ0E7SUFDSkEsQ0FBQ0E7QUFDSEEsQ0FBQ0E7QUFFRCxJQUFJLFFBQVEsR0FBRztJQUVaLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUVwRCxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUV6QyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztJQUV2QyxDQUFDLE9BQU8sQ0FBQztJQUVULENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFFaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN6QyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZCxtQkFBbUIsQ0FBQyxTQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLG1CQUFtQixDQUFDLFNBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWxlX3N5c3RlbSA9IHJlcXVpcmUoJy4uL2NvcmUvZmlsZV9zeXN0ZW0nKTtcbmltcG9ydCBJbk1lbW9yeUZpbGVTeXN0ZW0gZnJvbSAnLi9Jbk1lbW9yeSc7XG5pbXBvcnQge0FwaUVycm9yLCBFcnJvckNvZGV9IGZyb20gJy4uL2NvcmUvYXBpX2Vycm9yJztcbmltcG9ydCBmcyA9IHJlcXVpcmUoJy4uL2NvcmUvbm9kZV9mcycpO1xuXG4vKipcbiAqIFRoZSBNb3VudGFibGVGaWxlU3lzdGVtIGFsbG93cyB5b3UgdG8gbW91bnQgbXVsdGlwbGUgYmFja2VuZCB0eXBlcyBvclxuICogbXVsdGlwbGUgaW5zdGFudGlhdGlvbnMgb2YgdGhlIHNhbWUgYmFja2VuZCBpbnRvIGEgc2luZ2xlIGZpbGUgc3lzdGVtIHRyZWUuXG4gKiBUaGUgZmlsZSBzeXN0ZW1zIGRvIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgZWFjaCBvdGhlcjsgYWxsIGludGVyYWN0aW9ucyBhcmVcbiAqIGF1dG9tYXRpY2FsbHkgZmFjaWxpdGF0ZWQgdGhyb3VnaCB0aGlzIGludGVyZmFjZS5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgaWYgYSBmaWxlIHN5c3RlbSBpcyBtb3VudGVkIGF0IC9tbnQvYmxhaCwgYW5kIGEgcmVxdWVzdCBjYW1lIGluXG4gKiBmb3IgL21udC9ibGFoL2Zvby50eHQsIHRoZSBmaWxlIHN5c3RlbSB3b3VsZCBzZWUgYSByZXF1ZXN0IGZvciAvZm9vLnR4dC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW91bnRhYmxlRmlsZVN5c3RlbSBleHRlbmRzIGZpbGVfc3lzdGVtLkJhc2VGaWxlU3lzdGVtIGltcGxlbWVudHMgZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbSB7XG4gIHByaXZhdGUgbW50TWFwOiB7W3BhdGg6IHN0cmluZ106IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW19O1xuICBwcml2YXRlIHJvb3RGczogZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm1udE1hcCA9IHt9O1xuICAgIC8vIFRoZSBJbk1lbW9yeSBmaWxlIHN5c3RlbSBzZXJ2ZXMgcHVyZWx5IHRvIHByb3ZpZGUgZGlyZWN0b3J5IGxpc3RpbmdzIGZvclxuICAgIC8vIG1vdW50ZWQgZmlsZSBzeXN0ZW1zLlxuICAgIHRoaXMucm9vdEZzID0gbmV3IEluTWVtb3J5RmlsZVN5c3RlbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdW50cyB0aGUgZmlsZSBzeXN0ZW0gYXQgdGhlIGdpdmVuIG1vdW50IHBvaW50LlxuICAgKi9cbiAgcHVibGljIG1vdW50KG1udF9wdDogc3RyaW5nLCBmczogZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1udE1hcFttbnRfcHRdKSB7XG4gICAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVJTlZBTCwgXCJNb3VudCBwb2ludCBcIiArIG1udF9wdCArIFwiIGlzIGFscmVhZHkgdGFrZW4uXCIpO1xuICAgIH1cbiAgICAvLyBAdG9kbyBFbnN1cmUgbmV3IG1vdW50IHBhdGggaXMgbm90IHN1YnN1bWVkIGJ5IGFjdGl2ZSBtb3VudCBwYXRocy5cbiAgICB0aGlzLnJvb3RGcy5ta2RpclN5bmMobW50X3B0LCAweDFmZik7XG4gICAgdGhpcy5tbnRNYXBbbW50X3B0XSA9IGZzO1xuICB9XG5cbiAgcHVibGljIHVtb3VudChtbnRfcHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tbnRNYXBbbW50X3B0XSkge1xuICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FSU5WQUwsIFwiTW91bnQgcG9pbnQgXCIgKyBtbnRfcHQgKyBcIiBpcyBhbHJlYWR5IHVubW91bnRlZC5cIik7XG4gICAgfVxuICAgIGRlbGV0ZSB0aGlzLm1udE1hcFttbnRfcHRdO1xuICAgIHRoaXMucm9vdEZzLnJtZGlyU3luYyhtbnRfcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZpbGUgc3lzdGVtIHRoYXQgdGhlIHBhdGggcG9pbnRzIHRvLlxuICAgKi9cbiAgcHVibGljIF9nZXRfZnMocGF0aDogc3RyaW5nKToge2ZzOiBmaWxlX3N5c3RlbS5GaWxlU3lzdGVtOyBwYXRoOiBzdHJpbmd9IHtcbiAgICBmb3IgKHZhciBtbnRfcHQgaW4gdGhpcy5tbnRNYXApIHtcbiAgICAgIHZhciBmcyA9IHRoaXMubW50TWFwW21udF9wdF07XG4gICAgICBpZiAocGF0aC5pbmRleE9mKG1udF9wdCkgPT09IDApIHtcbiAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyKG1udF9wdC5sZW5ndGggPiAxID8gbW50X3B0Lmxlbmd0aCA6IDApO1xuICAgICAgICBpZiAocGF0aCA9PT0gJycpIHtcbiAgICAgICAgICBwYXRoID0gJy8nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7ZnM6IGZzLCBwYXRoOiBwYXRofTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUXVlcnkgb3VyIHJvb3QgZmlsZSBzeXN0ZW0uXG4gICAgcmV0dXJuIHtmczogdGhpcy5yb290RnMsIHBhdGg6IHBhdGh9O1xuICB9XG5cbiAgLy8gR2xvYmFsIGluZm9ybWF0aW9uIG1ldGhvZHNcblxuICBwdWJsaWMgZ2V0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnTW91bnRhYmxlRmlsZVN5c3RlbSc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2tTcGFjZShwYXRoOiBzdHJpbmcsIGNiOiAodG90YWw6IG51bWJlciwgZnJlZTogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY2IoMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3VwcG9ydHNMaW5rcygpOiBib29sZWFuIHtcbiAgICAvLyBJJ20gbm90IHJlYWR5IGZvciBjcm9zcy1GUyBsaW5rcyB5ZXQuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHN1cHBvcnRzUHJvcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHN1cHBvcnRzU3luY2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRml4ZXMgdXAgZXJyb3IgbWVzc2FnZXMgc28gdGhleSBtZW50aW9uIHRoZSBtb3VudGVkIGZpbGUgbG9jYXRpb24gcmVsYXRpdmVcbiAgICogdG8gdGhlIE1GUyByb290LCBub3QgdG8gdGhlIHBhcnRpY3VsYXIgRlMncyByb290LlxuICAgKiBNdXRhdGVzIHRoZSBpbnB1dCBlcnJvciwgYW5kIHJldHVybnMgaXQuXG4gICAqL1xuICBwcml2YXRlIHN0YW5kYXJkaXplRXJyb3IoZXJyOiBBcGlFcnJvciwgcGF0aDogc3RyaW5nLCByZWFsUGF0aDogc3RyaW5nKTogQXBpRXJyb3Ige1xuICAgIHZhciBpbmRleDogbnVtYmVyO1xuICAgIGlmICgtMSAhPT0gKGluZGV4ID0gZXJyLm1lc3NhZ2UuaW5kZXhPZihwYXRoKSkpIHtcbiAgICAgIGVyci5tZXNzYWdlID0gZXJyLm1lc3NhZ2Uuc3Vic3RyKDAsIGluZGV4KSArIHJlYWxQYXRoICsgZXJyLm1lc3NhZ2Uuc3Vic3RyKGluZGV4ICsgcGF0aC5sZW5ndGgpO1xuICAgIH1cbiAgICByZXR1cm4gZXJyO1xuICB9XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGludm9sdmUgbXVsdGlwbGUgZmlsZSBzeXN0ZW1zLCBhbmQgdGh1cyBoYXZlIGN1c3RvbVxuICAvLyBsb2dpYy5cbiAgLy8gTm90ZSB0aGF0IHdlIGdvIHRocm91Z2ggdGhlIE5vZGUgQVBJIHRvIHVzZSBpdHMgcm9idXN0IGRlZmF1bHQgYXJndW1lbnRcbiAgLy8gcHJvY2Vzc2luZy5cblxuICBwdWJsaWMgcmVuYW1lKG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nLCBjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIC8vIFNjZW5hcmlvIDE6IG9sZCBhbmQgbmV3IGFyZSBvbiBzYW1lIEZTLlxuICAgIHZhciBmczFfcnYgPSB0aGlzLl9nZXRfZnMob2xkUGF0aCk7XG4gICAgdmFyIGZzMl9ydiA9IHRoaXMuX2dldF9mcyhuZXdQYXRoKTtcbiAgICBpZiAoZnMxX3J2LmZzID09PSBmczJfcnYuZnMpIHtcbiAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICByZXR1cm4gZnMxX3J2LmZzLnJlbmFtZShmczFfcnYucGF0aCwgZnMyX3J2LnBhdGgsIGZ1bmN0aW9uKGU/OiBBcGlFcnJvcikge1xuICAgICAgICBpZiAoZSkgX3RoaXMuc3RhbmRhcmRpemVFcnJvcihfdGhpcy5zdGFuZGFyZGl6ZUVycm9yKGUsIGZzMV9ydi5wYXRoLCBvbGRQYXRoKSwgZnMyX3J2LnBhdGgsIG5ld1BhdGgpO1xuICAgICAgICBjYihlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNjZW5hcmlvIDI6IERpZmZlcmVudCBmaWxlIHN5c3RlbXMuXG4gICAgLy8gUmVhZCBvbGQgZmlsZSwgd3JpdGUgbmV3IGZpbGUsIGRlbGV0ZSBvbGQgZmlsZS5cbiAgICByZXR1cm4gZnMucmVhZEZpbGUob2xkUGF0aCwgZnVuY3Rpb24oZXJyOiBBcGlFcnJvciwgZGF0YT86IGFueSkge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgIH1cbiAgICAgIGZzLndyaXRlRmlsZShuZXdQYXRoLCBkYXRhLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGZzLnVubGluayhvbGRQYXRoLCBjYik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZW5hbWVTeW5jKG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gU2NlbmFyaW8gMTogb2xkIGFuZCBuZXcgYXJlIG9uIHNhbWUgRlMuXG4gICAgdmFyIGZzMV9ydiA9IHRoaXMuX2dldF9mcyhvbGRQYXRoKTtcbiAgICB2YXIgZnMyX3J2ID0gdGhpcy5fZ2V0X2ZzKG5ld1BhdGgpO1xuICAgIGlmIChmczFfcnYuZnMgPT09IGZzMl9ydi5mcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGZzMV9ydi5mcy5yZW5hbWVTeW5jKGZzMV9ydi5wYXRoLCBmczJfcnYucGF0aCk7XG4gICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgdGhpcy5zdGFuZGFyZGl6ZUVycm9yKHRoaXMuc3RhbmRhcmRpemVFcnJvcihlLCBmczFfcnYucGF0aCwgb2xkUGF0aCksIGZzMl9ydi5wYXRoLCBuZXdQYXRoKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU2NlbmFyaW8gMjogRGlmZmVyZW50IGZpbGUgc3lzdGVtcy5cbiAgICB2YXIgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhvbGRQYXRoKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKG5ld1BhdGgsIGRhdGEpO1xuICAgIHJldHVybiBmcy51bmxpbmtTeW5jKG9sZFBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogVHJpY2t5OiBEZWZpbmUgYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBtZXJlbHkgZm9yd2FyZCBhcmd1bWVudHMgdG8gdGhlXG4gKiByZWxldmFudCBmaWxlIHN5c3RlbSwgb3IgcmV0dXJuL3Rocm93IGFuIGVycm9yLlxuICogVGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCB0aGUgKmZpcnN0KiBhcmd1bWVudCBpcyBhbHdheXMgdGhlIHBhdGgsIGFuZFxuICogdGhlICpsYXN0KiBpcyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gKGlmIGFzeW5jKS5cbiAqL1xuZnVuY3Rpb24gZGVmaW5lRmNuKG5hbWU6IHN0cmluZywgaXNTeW5jOiBib29sZWFuLCBudW1BcmdzOiBudW1iZXIpOiAoLi4uYXJnczogYW55W10pID0+IGFueSB7XG4gIGlmIChpc1N5bmMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcbiAgICAgIHZhciBwYXRoID0gYXJnc1swXTtcbiAgICAgIHZhciBydiA9IHRoaXMuX2dldF9mcyhwYXRoKTtcbiAgICAgIGFyZ3NbMF0gPSBydi5wYXRoO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJ2LmZzW25hbWVdLmFwcGx5KHJ2LmZzLCBhcmdzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5zdGFuZGFyZGl6ZUVycm9yKGUsIHJ2LnBhdGgsIHBhdGgpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICB2YXIgcGF0aCA9IGFyZ3NbMF07XG4gICAgICB2YXIgcnYgPSB0aGlzLl9nZXRfZnMocGF0aCk7XG4gICAgICBhcmdzWzBdID0gcnYucGF0aDtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1thcmdzLmxlbmd0aC0xXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB2YXIgY2IgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9IGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID4gMCAmJiBhcmdzWzBdIGluc3RhbmNlb2YgQXBpRXJyb3IpIHtcbiAgICAgICAgICAgIF90aGlzLnN0YW5kYXJkaXplRXJyb3IoYXJnc1swXSwgcnYucGF0aCwgcGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNiLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcnYuZnNbbmFtZV0uYXBwbHkocnYuZnMsIGFyZ3MpO1xuICAgIH07XG4gIH1cbn1cblxudmFyIGZzQ21kTWFwID0gW1xuICAgLy8gMSBhcmcgZnVuY3Rpb25zXG4gICBbJ3JlYWRkaXInLCAnZXhpc3RzJywgJ3VubGluaycsICdybWRpcicsICdyZWFkbGluayddLFxuICAgLy8gMiBhcmcgZnVuY3Rpb25zXG4gICBbJ3N0YXQnLCAnbWtkaXInLCAncmVhbHBhdGgnLCAndHJ1bmNhdGUnXSxcbiAgIC8vIDMgYXJnIGZ1bmN0aW9uc1xuICAgWydvcGVuJywgJ3JlYWRGaWxlJywgJ2NobW9kJywgJ3V0aW1lcyddLFxuICAgLy8gNCBhcmcgZnVuY3Rpb25zXG4gICBbJ2Nob3duJ10sXG4gICAvLyA1IGFyZyBmdW5jdGlvbnNcbiAgIFsnd3JpdGVGaWxlJywgJ2FwcGVuZEZpbGUnXV07XG5cbmZvciAodmFyIGkgPSAwOyBpIDwgZnNDbWRNYXAubGVuZ3RoOyBpKyspIHtcbiAgdmFyIGNtZHMgPSBmc0NtZE1hcFtpXTtcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBjbWRzLmxlbmd0aDsgaisrKSB7XG4gICAgdmFyIGZuTmFtZSA9IGNtZHNbal07XG4gICAgKDxhbnk+IE1vdW50YWJsZUZpbGVTeXN0ZW0ucHJvdG90eXBlKVtmbk5hbWVdID0gZGVmaW5lRmNuKGZuTmFtZSwgZmFsc2UsIGkgKyAxKTtcbiAgICAoPGFueT4gTW91bnRhYmxlRmlsZVN5c3RlbS5wcm90b3R5cGUpW2ZuTmFtZSArICdTeW5jJ10gPSBkZWZpbmVGY24oZm5OYW1lICsgJ1N5bmMnLCB0cnVlLCBpICsgMSk7XG4gIH1cbn1cbiJdfQ== |
@@ -7,7 +7,6 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
var file_system = require('../core/file_system'); | ||
var buffer_1 = require('../core/buffer'); | ||
var api_error_1 = require('../core/api_error'); | ||
var file_flag_1 = require('../core/file_flag'); | ||
var preload_file = require('../generic/preload_file'); | ||
var path = require('../core/node_path'); | ||
var path = require('path'); | ||
var deletionLogPath = '/.deletedFiles.log'; | ||
@@ -112,3 +111,3 @@ function makeModeWritable(mode) { | ||
this._deletedFiles[p] = true; | ||
var buff = new buffer_1.Buffer("d" + p + "\n"); | ||
var buff = new Buffer("d" + p + "\n"); | ||
this._deleteLog.writeSync(buff, 0, buff.length, null); | ||
@@ -120,3 +119,3 @@ this._deleteLog.syncSync(); | ||
this._deletedFiles[p] = false; | ||
var buff = new buffer_1.Buffer("u" + p); | ||
var buff = new Buffer("u" + p); | ||
this._deleteLog.writeSync(buff, 0, buff.length, null); | ||
@@ -318,2 +317,2 @@ this._deleteLog.syncSync(); | ||
exports["default"] = OverlayFS; | ||
//# sourceMappingURL=OverlayFS.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3ZlcmxheUZTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvT3ZlcmxheUZTLnRzIl0sIm5hbWVzIjpbIm1ha2VNb2RlV3JpdGFibGUiLCJPdmVybGF5RmlsZSIsIk92ZXJsYXlGaWxlLmNvbnN0cnVjdG9yIiwiT3ZlcmxheUZpbGUuc3luY1N5bmMiLCJPdmVybGF5RmlsZS5jbG9zZVN5bmMiLCJPdmVybGF5RlMiLCJPdmVybGF5RlMuY29uc3RydWN0b3IiLCJPdmVybGF5RlMuZ2V0T3ZlcmxheWVkRmlsZVN5c3RlbXMiLCJPdmVybGF5RlMuY3JlYXRlUGFyZW50RGlyZWN0b3JpZXMiLCJPdmVybGF5RlMuaXNBdmFpbGFibGUiLCJPdmVybGF5RlMuX3N5bmNTeW5jIiwiT3ZlcmxheUZTLmdldE5hbWUiLCJPdmVybGF5RlMuaW5pdGlhbGl6ZSIsIk92ZXJsYXlGUy5pc1JlYWRPbmx5IiwiT3ZlcmxheUZTLnN1cHBvcnRzU3luY2giLCJPdmVybGF5RlMuc3VwcG9ydHNMaW5rcyIsIk92ZXJsYXlGUy5zdXBwb3J0c1Byb3BzIiwiT3ZlcmxheUZTLmRlbGV0ZVBhdGgiLCJPdmVybGF5RlMudW5kZWxldGVQYXRoIiwiT3ZlcmxheUZTLnJlbmFtZVN5bmMiLCJPdmVybGF5RlMuc3RhdFN5bmMiLCJPdmVybGF5RlMub3BlblN5bmMiLCJPdmVybGF5RlMudW5saW5rU3luYyIsIk92ZXJsYXlGUy5ybWRpclN5bmMiLCJPdmVybGF5RlMubWtkaXJTeW5jIiwiT3ZlcmxheUZTLnJlYWRkaXJTeW5jIiwiT3ZlcmxheUZTLmV4aXN0c1N5bmMiLCJPdmVybGF5RlMuY2htb2RTeW5jIiwiT3ZlcmxheUZTLmNob3duU3luYyIsIk92ZXJsYXlGUy51dGltZXNTeW5jIiwiT3ZlcmxheUZTLm9wZXJhdGVPbldyaXRhYmxlIiwiT3ZlcmxheUZTLmNvcHlUb1dyaXRhYmxlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU8sV0FBVyxXQUFX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Q0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsSUFBSUE7b0JBRS9DQSxLQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxFQUFFQSxJQUFJQSxDQUFDQSxFQUFFQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDNUVBLENBQUNBLENBQUNBLENBQUNBO1lBQ0xBLENBQUNBO1FBQ0hBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLE9BQU9BLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBLFdBQVdBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUM1RUEsTUFBTUEsb0JBQVFBLENBQUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1lBQ2pDQSxDQUFDQTtZQUVEQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQSxPQUFPQSxFQUN4QkEsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsT0FBT0EsRUFBRUEsSUFBSUEsRUFBRUEsb0JBQVFBLENBQUNBLFdBQVdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEVBQUVBLElBQUlBLEVBQ2pFQSxvQkFBUUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDOUNBLENBQUNBO1FBRURBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLEtBQUtBLE9BQU9BLElBQUlBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3BEQSxJQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtRQUMzQkEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFDTWQsNEJBQVFBLEdBQWZBLFVBQWdCQSxDQUFTQSxFQUFFQSxPQUFnQkE7UUFDekNlLElBQUlBLENBQUNBO1lBQ0hBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO1FBQzdDQSxDQUFFQTtRQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNYQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDMUJBLE1BQU1BLG9CQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMzQkEsQ0FBQ0E7WUFDREEsSUFBSUEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0E7WUFHMURBLE9BQU9BLENBQUNBLElBQUlBLEdBQUdBLGdCQUFnQkEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDOUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBO1FBQ2pCQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUNNZiw0QkFBUUEsR0FBZkEsVUFBZ0JBLENBQVNBLEVBQUVBLElBQWNBLEVBQUVBLElBQVlBO1FBQ3JEZ0IsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDdkJBLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLGdCQUFnQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hDQSxLQUFLQSxzQkFBVUEsQ0FBQ0EsYUFBYUE7b0JBQzNCQSxJQUFJQSxDQUFDQSx1QkFBdUJBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO29CQUNoQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsSUFBSUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hEQSxLQUFLQSxzQkFBVUEsQ0FBQ0EsR0FBR0E7b0JBQ2pCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDakNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLEVBQUVBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO29CQUNoREEsQ0FBQ0E7b0JBQUNBLElBQUlBLENBQUNBLENBQUNBO3dCQUVOQSxJQUFJQSxLQUFLQSxHQUFHQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQTt3QkFDdERBLEtBQUtBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBO3dCQUNsQkEsTUFBTUEsQ0FBQ0EsSUFBSUEsV0FBV0EsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0EsRUFBRUEsSUFBSUEsRUFBRUEsS0FBS0EsRUFBRUEsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsSUFBSUEsRUFBRUEsb0JBQVFBLENBQUNBLFdBQVdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO29CQUNoSEEsQ0FBQ0E7Z0JBQ0hBO29CQUNFQSxNQUFNQSxvQkFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDN0JBLENBQUNBO1FBQ0hBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLE1BQU1BLENBQUFBLENBQUNBLElBQUlBLENBQUNBLG1C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QVFBLENBQUNBLENBQUNBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBO1FBQ3JDQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxXQUFXQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN6QkEsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsRUFBRUEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDM0NBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLElBQUlBLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLEVBQ2xCQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQSxFQUFFQSxJQUFJQSxFQUFFQSxvQkFBUUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsRUFBRUEsSUFBSUEsRUFDckVBLG9CQUFRQSxDQUFDQSxXQUFXQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM3REEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFDSDFCLGdCQUFDQTtBQUFEQSxDQUFDQSxBQXBVRCxFQUF1QyxXQUFXLENBQUMscUJBQXFCLEVBb1V2RTtBQXBVRDs4QkFvVUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWxlX3N5c3RlbSA9IHJlcXVpcmUoJy4uL2NvcmUvZmlsZV9zeXN0ZW0nKTtcbmltcG9ydCB7QXBpRXJyb3IsIEVycm9yQ29kZX0gZnJvbSAnLi4vY29yZS9hcGlfZXJyb3InO1xuaW1wb3J0IHtGaWxlRmxhZywgQWN0aW9uVHlwZX0gZnJvbSAnLi4vY29yZS9maWxlX2ZsYWcnO1xuaW1wb3J0IHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlL3V0aWwnKTtcbmltcG9ydCBmaWxlID0gcmVxdWlyZSgnLi4vY29yZS9maWxlJyk7XG5pbXBvcnQge1N0YXRzfSBmcm9tICcuLi9jb3JlL25vZGVfZnNfc3RhdHMnO1xuaW1wb3J0IHByZWxvYWRfZmlsZSA9IHJlcXVpcmUoJy4uL2dlbmVyaWMvcHJlbG9hZF9maWxlJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmxldCBkZWxldGlvbkxvZ1BhdGggPSAnLy5kZWxldGVkRmlsZXMubG9nJztcblxuLyoqXG4gKiBHaXZlbiBhIHJlYWQtb25seSBtb2RlLCBtYWtlcyBpdCB3cml0YWJsZS5cbiAqL1xuZnVuY3Rpb24gbWFrZU1vZGVXcml0YWJsZShtb2RlOiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gMHg5MiB8IG1vZGU7XG59XG5cbi8qKlxuICogT3ZlcmxheXMgYSBSTyBmaWxlIHRvIG1ha2UgaXQgd3JpdGFibGUuXG4gKi9cbmNsYXNzIE92ZXJsYXlGaWxlIGV4dGVuZHMgcHJlbG9hZF9maWxlLlByZWxvYWRGaWxlPE92ZXJsYXlGUz4gaW1wbGVtZW50cyBmaWxlLkZpbGUge1xuICBjb25zdHJ1Y3RvcihmczogT3ZlcmxheUZTLCBwYXRoOiBzdHJpbmcsIGZsYWc6IEZpbGVGbGFnLCBzdGF0czogU3RhdHMsIGRhdGE6IEJ1ZmZlcikge1xuICAgIHN1cGVyKGZzLCBwYXRoLCBmbGFnLCBzdGF0cywgZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc3luY1N5bmMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEaXJ0eSgpKSB7XG4gICAgICB0aGlzLl9mcy5fc3luY1N5bmModGhpcyk7XG4gICAgICB0aGlzLnJlc2V0RGlydHkoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VTeW5jKCk6IHZvaWQge1xuICAgIHRoaXMuc3luY1N5bmMoKTtcbiAgfVxufVxuXG4vKipcbiAqIE92ZXJsYXlGUyBtYWtlcyBhIHJlYWQtb25seSBmaWxlc3lzdGVtIHdyaXRhYmxlIGJ5IHN0b3Jpbmcgd3JpdGVzIG9uIGEgc2Vjb25kLFxuICogd3JpdGFibGUgZmlsZSBzeXN0ZW0uIERlbGV0ZXMgYXJlIHBlcnNpc3RlZCB2aWEgbWV0YWRhdGEgc3RvcmVkIG9uIHRoZSB3cml0YWJsZVxuICogZmlsZSBzeXN0ZW0uXG4gKlxuICogQ3VycmVudGx5IG9ubHkgd29ya3MgZm9yIHR3byBzeW5jaHJvbm91cyBmaWxlIHN5c3RlbXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE92ZXJsYXlGUyBleHRlbmRzIGZpbGVfc3lzdGVtLlN5bmNocm9ub3VzRmlsZVN5c3RlbSBpbXBsZW1lbnRzIGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0ge1xuICBwcml2YXRlIF93cml0YWJsZTogZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbTtcbiAgcHJpdmF0ZSBfcmVhZGFibGU6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW07XG4gIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGVsZXRlZEZpbGVzOiB7W3BhdGg6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG4gIHByaXZhdGUgX2RlbGV0ZUxvZzogZmlsZS5GaWxlID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcih3cml0YWJsZTogZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbSwgcmVhZGFibGU6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3dyaXRhYmxlID0gd3JpdGFibGU7XG4gICAgdGhpcy5fcmVhZGFibGUgPSByZWFkYWJsZTtcbiAgICBpZiAodGhpcy5fd3JpdGFibGUuaXNSZWFkT25seSgpKSB7XG4gICAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVJTlZBTCwgXCJXcml0YWJsZSBmaWxlIHN5c3RlbSBtdXN0IGJlIHdyaXRhYmxlLlwiKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl93cml0YWJsZS5zdXBwb3J0c1N5bmNoKCkgfHwgIXRoaXMuX3JlYWRhYmxlLnN1cHBvcnRzU3luY2goKSkge1xuICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FSU5WQUwsIFwiT3ZlcmxheUZTIGN1cnJlbnRseSBvbmx5IG9wZXJhdGVzIG9uIHN5bmNocm9ub3VzIGZpbGUgc3lzdGVtcy5cIik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE92ZXJsYXllZEZpbGVTeXN0ZW1zKCk6IHsgcmVhZGFibGU6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW07IHdyaXRhYmxlOiBmaWxlX3N5c3RlbS5GaWxlU3lzdGVtOyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVhZGFibGU6IHRoaXMuX3JlYWRhYmxlLFxuICAgICAgd3JpdGFibGU6IHRoaXMuX3dyaXRhYmxlXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaXRoIHRoZSBnaXZlbiBwYXRoLCBjcmVhdGUgdGhlIG5lZWRlZCBwYXJlbnQgZGlyZWN0b3JpZXMgb24gdGhlIHdyaXRhYmxlIHN0b3JhZ2VcbiAgICogc2hvdWxkIHRoZXkgbm90IGV4aXN0LiBVc2UgbW9kZXMgZnJvbSB0aGUgcmVhZC1vbmx5IHN0b3JhZ2UuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVBhcmVudERpcmVjdG9yaWVzKHA6IHN0cmluZyk6IHZvaWQge1xuICAgIHZhciBwYXJlbnQgPSBwYXRoLmRpcm5hbWUocCksIHRvQ3JlYXRlOiBzdHJpbmdbXSA9IFtdO1xuICAgIHdoaWxlICghdGhpcy5fd3JpdGFibGUuZXhpc3RzU3luYyhwYXJlbnQpKSB7XG4gICAgICB0b0NyZWF0ZS5wdXNoKHBhcmVudCk7XG4gICAgICBwYXJlbnQgPSBwYXRoLmRpcm5hbWUocGFyZW50KTtcbiAgICB9XG4gICAgdG9DcmVhdGUgPSB0b0NyZWF0ZS5yZXZlcnNlKCk7XG5cbiAgICB0b0NyZWF0ZS5mb3JFYWNoKChwOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuX3dyaXRhYmxlLm1rZGlyU3luYyhwLCB0aGlzLnN0YXRTeW5jKHAsIGZhbHNlKS5tb2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgX3N5bmNTeW5jKGZpbGU6IHByZWxvYWRfZmlsZS5QcmVsb2FkRmlsZTxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVQYXJlbnREaXJlY3RvcmllcyhmaWxlLmdldFBhdGgoKSk7XG4gICAgdGhpcy5fd3JpdGFibGUud3JpdGVGaWxlU3luYyhmaWxlLmdldFBhdGgoKSwgZmlsZS5nZXRCdWZmZXIoKSwgbnVsbCwgRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3cnKSwgZmlsZS5nZXRTdGF0cygpLm1vZGUpO1xuICB9XG5cbiAgcHVibGljIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIFwiT3ZlcmxheUZTXCI7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIG9uY2UgdG8gbG9hZCB1cCBtZXRhZGF0YSBzdG9yZWQgb24gdGhlIHdyaXRhYmxlIGZpbGUgc3lzdGVtLlxuICAgKi9cbiAgcHVibGljIGluaXRpYWxpemUoY2I6IChlcnI/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNJbml0aWFsaXplZCkge1xuICAgICAgLy8gUmVhZCBkZWxldGlvbiBsb2csIHByb2Nlc3MgaW50byBtZXRhZGF0YS5cbiAgICAgIHRoaXMuX3dyaXRhYmxlLnJlYWRGaWxlKGRlbGV0aW9uTG9nUGF0aCwgJ3V0ZjgnLFxuICAgICAgICBGaWxlRmxhZy5nZXRGaWxlRmxhZygncicpLCAoZXJyOiBBcGlFcnJvciwgZGF0YT86IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgLy8gRU5PRU5UID09PSBOZXdseS1pbnN0YW50aWF0ZWQgZmlsZSBzeXN0ZW0sIGFuZCB0aHVzIGVtcHR5IGxvZy5cbiAgICAgICAgICBpZiAoZXJyLnR5cGUgIT09IEVycm9yQ29kZS5FTk9FTlQpIHtcbiAgICAgICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkYXRhLnNwbGl0KCdcXG4nKS5mb3JFYWNoKChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBsb2cgZW50cnkgYmVnaW5zIHcvICdkJywgaXQncyBhIGRlbGV0aW9uLiBPdGhlcndpc2UsIGl0J3NcbiAgICAgICAgICAgIC8vIGFuIHVuZGVsZXRpb24uXG4gICAgICAgICAgICAvLyBUT0RPOiBDbGVhbiB1cCBsb2cgZHVyaW5nIGluaXRpYWxpemF0aW9uIHBoYXNlLlxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlZEZpbGVzW3BhdGguc2xpY2UoMSldID0gcGF0aC5zbGljZSgwLCAxKSA9PT0gJ2QnO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIE9wZW4gdXAgdGhlIGRlbGV0aW9uIGxvZyBmb3IgYXBwZW5kaW5nLlxuICAgICAgICB0aGlzLl93cml0YWJsZS5vcGVuKGRlbGV0aW9uTG9nUGF0aCwgRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ2EnKSxcbiAgICAgICAgICAweDFhNCwgKGVycjogQXBpRXJyb3IsIGZkPzogZmlsZS5GaWxlKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgY2IoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGVsZXRlTG9nID0gZmQ7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2IoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNSZWFkT25seSgpOiBib29sZWFuIHsgcmV0dXJuIGZhbHNlOyB9XG4gIHB1YmxpYyBzdXBwb3J0c1N5bmNoKCk6IGJvb2xlYW4geyByZXR1cm4gdHJ1ZTsgfVxuICBwdWJsaWMgc3VwcG9ydHNMaW5rcygpOiBib29sZWFuIHsgcmV0dXJuIGZhbHNlOyB9XG4gIHB1YmxpYyBzdXBwb3J0c1Byb3BzKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fcmVhZGFibGUuc3VwcG9ydHNQcm9wcygpICYmIHRoaXMuX3dyaXRhYmxlLnN1cHBvcnRzUHJvcHMoKTsgfVxuXG4gIHByaXZhdGUgZGVsZXRlUGF0aChwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9kZWxldGVkRmlsZXNbcF0gPSB0cnVlO1xuICAgIHZhciBidWZmID0gbmV3IEJ1ZmZlcihcImRcIiArIHAgKyBcIlxcblwiKTtcbiAgICB0aGlzLl9kZWxldGVMb2cud3JpdGVTeW5jKGJ1ZmYsIDAsIGJ1ZmYubGVuZ3RoLCBudWxsKTtcbiAgICB0aGlzLl9kZWxldGVMb2cuc3luY1N5bmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5kZWxldGVQYXRoKHA6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZWxldGVkRmlsZXNbcF0pIHtcbiAgICAgIHRoaXMuX2RlbGV0ZWRGaWxlc1twXSA9IGZhbHNlO1xuICAgICAgdmFyIGJ1ZmYgPSBuZXcgQnVmZmVyKFwidVwiICsgcCk7XG4gICAgICB0aGlzLl9kZWxldGVMb2cud3JpdGVTeW5jKGJ1ZmYsIDAsIGJ1ZmYubGVuZ3RoLCBudWxsKTtcbiAgICAgIHRoaXMuX2RlbGV0ZUxvZy5zeW5jU3luYygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW5hbWVTeW5jKG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gV3JpdGUgbmV3UGF0aCB1c2luZyBvbGRQYXRoJ3MgY29udGVudHMsIGRlbGV0ZSBvbGRQYXRoLlxuICAgIHZhciBvbGRTdGF0cyA9IHRoaXMuc3RhdFN5bmMob2xkUGF0aCwgZmFsc2UpO1xuICAgIGlmIChvbGRTdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAvLyBPcHRpbWl6YXRpb246IERvbid0IGJvdGhlciBtb3ZpbmcgaWYgb2xkID09PSBuZXcuXG4gICAgICBpZiAob2xkUGF0aCA9PT0gbmV3UGF0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBtb2RlID0gMHgxZmY7XG4gICAgICBpZiAodGhpcy5leGlzdHNTeW5jKG5ld1BhdGgpKSB7XG4gICAgICAgIHZhciBzdGF0cyA9IHRoaXMuc3RhdFN5bmMobmV3UGF0aCwgZmFsc2UpLFxuICAgICAgICAgIG1vZGUgPSBzdGF0cy5tb2RlO1xuICAgICAgICBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIGlmICh0aGlzLnJlYWRkaXJTeW5jKG5ld1BhdGgpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRocm93IEFwaUVycm9yLkVOT1RFTVBUWShuZXdQYXRoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgQXBpRXJyb3IuRU5PVERJUihuZXdQYXRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUYWtlIGNhcmUgb2Ygd3JpdGFibGUgZmlyc3QuIE1vdmUgYW55IGZpbGVzIHRoZXJlLCBvciBjcmVhdGUgYW4gZW1wdHkgZGlyZWN0b3J5XG4gICAgICAvLyBpZiBpdCBkb2Vzbid0IGV4aXN0LlxuICAgICAgaWYgKHRoaXMuX3dyaXRhYmxlLmV4aXN0c1N5bmMob2xkUGF0aCkpIHtcbiAgICAgICAgdGhpcy5fd3JpdGFibGUucmVuYW1lU3luYyhvbGRQYXRoLCBuZXdQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX3dyaXRhYmxlLmV4aXN0c1N5bmMobmV3UGF0aCkpIHtcbiAgICAgICAgdGhpcy5fd3JpdGFibGUubWtkaXJTeW5jKG5ld1BhdGgsIG1vZGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBOZWVkIHRvIG1vdmUgKmV2ZXJ5IGZpbGUvZm9sZGVyKiBjdXJyZW50bHkgc3RvcmVkIG9uIHJlYWRhYmxlIHRvIGl0cyBuZXcgbG9jYXRpb25cbiAgICAgIC8vIG9uIHdyaXRhYmxlLlxuICAgICAgaWYgKHRoaXMuX3JlYWRhYmxlLmV4aXN0c1N5bmMob2xkUGF0aCkpIHtcbiAgICAgICAgdGhpcy5fcmVhZGFibGUucmVhZGRpclN5bmMob2xkUGF0aCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgIC8vIFJlY3Vyc2lvbiEgU2hvdWxkIHdvcmsgZm9yIGFueSBuZXN0ZWQgZmlsZXMgLyBmb2xkZXJzLlxuICAgICAgICAgIHRoaXMucmVuYW1lU3luYyhwYXRoLnJlc29sdmUob2xkUGF0aCwgbmFtZSksIHBhdGgucmVzb2x2ZShuZXdQYXRoLCBuYW1lKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5leGlzdHNTeW5jKG5ld1BhdGgpICYmIHRoaXMuc3RhdFN5bmMobmV3UGF0aCwgZmFsc2UpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgdGhyb3cgQXBpRXJyb3IuRUlTRElSKG5ld1BhdGgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLndyaXRlRmlsZVN5bmMobmV3UGF0aCxcbiAgICAgICAgdGhpcy5yZWFkRmlsZVN5bmMob2xkUGF0aCwgbnVsbCwgRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3InKSksIG51bGwsXG4gICAgICAgIEZpbGVGbGFnLmdldEZpbGVGbGFnKCd3JyksIG9sZFN0YXRzLm1vZGUpO1xuICAgIH1cblxuICAgIGlmIChvbGRQYXRoICE9PSBuZXdQYXRoICYmIHRoaXMuZXhpc3RzU3luYyhvbGRQYXRoKSkge1xuICAgICAgdGhpcy51bmxpbmtTeW5jKG9sZFBhdGgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgc3RhdFN5bmMocDogc3RyaW5nLCBpc0xzdGF0OiBib29sZWFuKTogU3RhdHMge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5fd3JpdGFibGUuc3RhdFN5bmMocCwgaXNMc3RhdCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKHRoaXMuX2RlbGV0ZWRGaWxlc1twXSkge1xuICAgICAgICB0aHJvdyBBcGlFcnJvci5FTk9FTlQocCk7XG4gICAgICB9XG4gICAgICB2YXIgb2xkU3RhdCA9IHRoaXMuX3JlYWRhYmxlLnN0YXRTeW5jKHAsIGlzTHN0YXQpLmNsb25lKCk7XG4gICAgICAvLyBNYWtlIHRoZSBvbGRTdGF0J3MgbW9kZSB3cml0YWJsZS4gUHJlc2VydmUgdGhlIHRvcG1vc3QgcGFydCBvZiB0aGVcbiAgICAgIC8vIG1vZGUsIHdoaWNoIHNwZWNpZmllcyBpZiBpdCBpcyBhIGZpbGUgb3IgYSBkaXJlY3RvcnkuXG4gICAgICBvbGRTdGF0Lm1vZGUgPSBtYWtlTW9kZVdyaXRhYmxlKG9sZFN0YXQubW9kZSk7XG4gICAgICByZXR1cm4gb2xkU3RhdDtcbiAgICB9XG4gIH1cbiAgcHVibGljIG9wZW5TeW5jKHA6IHN0cmluZywgZmxhZzogRmlsZUZsYWcsIG1vZGU6IG51bWJlcik6IGZpbGUuRmlsZSB7XG4gICAgaWYgKHRoaXMuZXhpc3RzU3luYyhwKSkge1xuICAgICAgc3dpdGNoIChmbGFnLnBhdGhFeGlzdHNBY3Rpb24oKSkge1xuICAgICAgICBjYXNlIEFjdGlvblR5cGUuVFJVTkNBVEVfRklMRTpcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBhcmVudERpcmVjdG9yaWVzKHApO1xuICAgICAgICAgIHJldHVybiB0aGlzLl93cml0YWJsZS5vcGVuU3luYyhwLCBmbGFnLCBtb2RlKTtcbiAgICAgICAgY2FzZSBBY3Rpb25UeXBlLk5PUDpcbiAgICAgICAgICBpZiAodGhpcy5fd3JpdGFibGUuZXhpc3RzU3luYyhwKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlLm9wZW5TeW5jKHAsIGZsYWcsIG1vZGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgYW4gT3ZlcmxheUZpbGUuXG4gICAgICAgICAgICB2YXIgc3RhdHMgPSB0aGlzLl9yZWFkYWJsZS5zdGF0U3luYyhwLCBmYWxzZSkuY2xvbmUoKTtcbiAgICAgICAgICAgIHN0YXRzLm1vZGUgPSBtb2RlO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBPdmVybGF5RmlsZSh0aGlzLCBwLCBmbGFnLCBzdGF0cywgdGhpcy5fcmVhZGFibGUucmVhZEZpbGVTeW5jKHAsIG51bGwsIEZpbGVGbGFnLmdldEZpbGVGbGFnKCdyJykpKTtcbiAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgQXBpRXJyb3IuRUVYSVNUKHApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2goZmxhZy5wYXRoTm90RXhpc3RzQWN0aW9uKCkpIHtcbiAgICAgICAgY2FzZSBBY3Rpb25UeXBlLkNSRUFURV9GSUxFOlxuICAgICAgICAgIHRoaXMuY3JlYXRlUGFyZW50RGlyZWN0b3JpZXMocCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlLm9wZW5TeW5jKHAsIGZsYWcsIG1vZGUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IEFwaUVycm9yLkVOT0VOVChwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIHVubGlua1N5bmMocDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhpc3RzU3luYyhwKSkge1xuICAgICAgaWYgKHRoaXMuX3dyaXRhYmxlLmV4aXN0c1N5bmMocCkpIHtcbiAgICAgICAgdGhpcy5fd3JpdGFibGUudW5saW5rU3luYyhwKTtcbiAgICAgIH1cblxuICAgICAgLy8gRG9lcyBpdCBzdGlsbCBleGlzdD9cbiAgICAgIGlmICh0aGlzLmV4aXN0c1N5bmMocCkpIHtcbiAgICAgICAgLy8gQWRkIHRvIGRlbGV0ZSBsb2cuXG4gICAgICAgIHRoaXMuZGVsZXRlUGF0aChwKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgQXBpRXJyb3IuRU5PRU5UKHApO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgcm1kaXJTeW5jKHA6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0c1N5bmMocCkpIHtcbiAgICAgIGlmICh0aGlzLl93cml0YWJsZS5leGlzdHNTeW5jKHApKSB7XG4gICAgICAgIHRoaXMuX3dyaXRhYmxlLnJtZGlyU3luYyhwKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmV4aXN0c1N5bmMocCkpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgZGlyZWN0b3J5IGlzIGVtcHR5LlxuICAgICAgICBpZiAodGhpcy5yZWFkZGlyU3luYyhwKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhyb3cgQXBpRXJyb3IuRU5PVEVNUFRZKHApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGVsZXRlUGF0aChwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBBcGlFcnJvci5FTk9FTlQocCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBta2RpclN5bmMocDogc3RyaW5nLCBtb2RlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leGlzdHNTeW5jKHApKSB7XG4gICAgICB0aHJvdyBBcGlFcnJvci5FRVhJU1QocCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBiZWxvdyB3aWxsIHRocm93IHNob3VsZCBhbnkgb2YgdGhlIHBhcmVudCBkaXJlY3RvcmllcyBmYWlsIHRvIGV4aXN0XG4gICAgICAvLyBvbiBfd3JpdGFibGUuXG4gICAgICB0aGlzLmNyZWF0ZVBhcmVudERpcmVjdG9yaWVzKHApO1xuICAgICAgdGhpcy5fd3JpdGFibGUubWtkaXJTeW5jKHAsIG1vZGUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgcmVhZGRpclN5bmMocDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHZhciBkaXJTdGF0cyA9IHRoaXMuc3RhdFN5bmMocCwgZmFsc2UpO1xuICAgIGlmICghZGlyU3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGhyb3cgQXBpRXJyb3IuRU5PVERJUihwKTtcbiAgICB9XG5cbiAgICAvLyBSZWFkZGlyIGluIGJvdGgsIG1lcmdlLCBjaGVjayBkZWxldGUgbG9nIG9uIGVhY2ggZmlsZSwgcmV0dXJuLlxuICAgIHZhciBjb250ZW50czogc3RyaW5nW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29udGVudHMgPSBjb250ZW50cy5jb25jYXQodGhpcy5fd3JpdGFibGUucmVhZGRpclN5bmMocCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnRlbnRzID0gY29udGVudHMuY29uY2F0KHRoaXMuX3JlYWRhYmxlLnJlYWRkaXJTeW5jKHApKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgfVxuICAgIHZhciBzZWVuTWFwOiB7W25hbWU6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG4gICAgcmV0dXJuIGNvbnRlbnRzLmZpbHRlcigoZmlsZVA6IHN0cmluZykgPT4ge1xuICAgICAgdmFyIHJlc3VsdCA9IHNlZW5NYXBbZmlsZVBdID09PSB1bmRlZmluZWQgJiYgdGhpcy5fZGVsZXRlZEZpbGVzW3AgKyBcIi9cIiArIGZpbGVQXSAhPT0gdHJ1ZTtcbiAgICAgIHNlZW5NYXBbZmlsZVBdID0gdHJ1ZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGV4aXN0c1N5bmMocDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlLmV4aXN0c1N5bmMocCkgfHwgKHRoaXMuX3JlYWRhYmxlLmV4aXN0c1N5bmMocCkgJiYgdGhpcy5fZGVsZXRlZEZpbGVzW3BdICE9PSB0cnVlKTtcbiAgfVxuICBwdWJsaWMgY2htb2RTeW5jKHA6IHN0cmluZywgaXNMY2htb2Q6IGJvb2xlYW4sIG1vZGU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub3BlcmF0ZU9uV3JpdGFibGUocCwgKCkgPT4ge1xuICAgICAgdGhpcy5fd3JpdGFibGUuY2htb2RTeW5jKHAsIGlzTGNobW9kLCBtb2RlKTtcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgY2hvd25TeW5jKHA6IHN0cmluZywgaXNMY2hvd246IGJvb2xlYW4sIHVpZDogbnVtYmVyLCBnaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMub3BlcmF0ZU9uV3JpdGFibGUocCwgKCkgPT4ge1xuICAgICAgdGhpcy5fd3JpdGFibGUuY2hvd25TeW5jKHAsIGlzTGNob3duLCB1aWQsIGdpZCk7XG4gICAgfSk7XG4gIH1cbiAgcHVibGljIHV0aW1lc1N5bmMocDogc3RyaW5nLCBhdGltZTogRGF0ZSwgbXRpbWU6IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLm9wZXJhdGVPbldyaXRhYmxlKHAsICgpID0+IHtcbiAgICAgIHRoaXMuX3dyaXRhYmxlLnV0aW1lc1N5bmMocCwgYXRpbWUsIG10aW1lKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb246XG4gICAqIC0gRW5zdXJlcyBwIGlzIG9uIHdyaXRhYmxlIGJlZm9yZSBwcm9jZWVkaW5nLiBUaHJvd3MgYW4gZXJyb3IgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICogLSBDYWxscyBmIHRvIHBlcmZvcm0gb3BlcmF0aW9uIG9uIHdyaXRhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBvcGVyYXRlT25Xcml0YWJsZShwOiBzdHJpbmcsIGY6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5leGlzdHNTeW5jKHApKSB7XG4gICAgICBpZiAoIXRoaXMuX3dyaXRhYmxlLmV4aXN0c1N5bmMocCkpIHtcbiAgICAgICAgLy8gRmlsZSBpcyBvbiByZWFkYWJsZSBzdG9yYWdlLiBDb3B5IHRvIHdyaXRhYmxlIHN0b3JhZ2UgYmVmb3JlXG4gICAgICAgIC8vIGNoYW5naW5nIGl0cyBtb2RlLlxuICAgICAgICB0aGlzLmNvcHlUb1dyaXRhYmxlKHApO1xuICAgICAgfVxuICAgICAgZigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBBcGlFcnJvci5FTk9FTlQocCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvcHkgZnJvbSByZWFkYWJsZSB0byB3cml0YWJsZSBzdG9yYWdlLlxuICAgKiBQUkVDT05ESVRJT046IEZpbGUgZG9lcyBub3QgZXhpc3Qgb24gd3JpdGFibGUgc3RvcmFnZS5cbiAgICovXG4gIHByaXZhdGUgY29weVRvV3JpdGFibGUocDogc3RyaW5nKTogdm9pZCB7XG4gICAgdmFyIHBTdGF0cyA9IHRoaXMuc3RhdFN5bmMocCwgZmFsc2UpO1xuICAgIGlmIChwU3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGhpcy5fd3JpdGFibGUubWtkaXJTeW5jKHAsIHBTdGF0cy5tb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53cml0ZUZpbGVTeW5jKHAsXG4gICAgICAgIHRoaXMuX3JlYWRhYmxlLnJlYWRGaWxlU3luYyhwLCBudWxsLCBGaWxlRmxhZy5nZXRGaWxlRmxhZygncicpKSwgbnVsbCxcbiAgICAgICAgRmlsZUZsYWcuZ2V0RmlsZUZsYWcoJ3cnKSwgdGhpcy5zdGF0U3luYyhwLCBmYWxzZSkubW9kZSk7XG4gICAgfVxuICB9XG59XG4iXX0= |
@@ -7,5 +7,5 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
var file_system = require('../core/file_system'); | ||
var buffer_1 = require('../core/buffer'); | ||
var api_error_1 = require('../core/api_error'); | ||
var file_flag_1 = require('../core/file_flag'); | ||
var util_1 = require('../core/util'); | ||
var preload_file = require('../generic/preload_file'); | ||
@@ -242,8 +242,3 @@ var xhr = require('../generic/xhr'); | ||
if (encoding === null) { | ||
if (fdBuff.length > 0) { | ||
return cb(err, fdBuff.sliceCopy()); | ||
} | ||
else { | ||
return cb(err, new buffer_1.Buffer(0)); | ||
} | ||
return cb(err, util_1.copyingSlice(fdBuff)); | ||
} | ||
@@ -264,8 +259,3 @@ try { | ||
if (encoding === null) { | ||
if (fdBuff.length > 0) { | ||
return fdBuff.sliceCopy(); | ||
} | ||
else { | ||
return new buffer_1.Buffer(0); | ||
} | ||
return util_1.copyingSlice(fdBuff); | ||
} | ||
@@ -282,2 +272,2 @@ return fdBuff.toString(encoding); | ||
exports["default"] = XmlHttpRequest; | ||
//# sourceMappingURL=XmlHttpRequest.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sSHR0cFJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9YbWxIdHRwUmVxdWVzdC50cyJdLCJuYW1lcyI6WyJYbWxIdHRwUmVxdWVzdCIsIlhtbEh0dHBSZXF1ZXN0LmNvbnN0cnVjdG9yIiwiWG1sSHR0cFJlcXVlc3QuZW1wdHkiLCJYbWxIdHRwUmVxdWVzdC5nZXRYaHJQYXRoIiwiWG1sSHR0cFJlcXVlc3QuX3JlcXVlc3RGaWxlU2l6ZUFzeW5jIiwiWG1sSHR0cFJlcXVlc3QuX3JlcXVlc3RGaWxlU2l6ZVN5bmMiLCJYbWxIdHRwUmVxdWVzdC5fcmVxdWVzdEZpbGVBc3luYyIsIlhtbEh0dHBSZXF1ZXN0Ll9yZXF1ZXN0RmlsZVN5bmMiLCJYbWxIdHRwUmVxdWVzdC5nZXROYW1lIiwiWG1sSHR0cFJlcXVlc3QuaXNBdmFpbGFibGUiLCJYbWxIdHRwUmVxdWVzdC5kaXNrU3BhY2UiLCJYbWxIdHRwUmVxdWVzdC5pc1JlYWRPbmx5IiwiWG1sSHR0cFJlcXVlc3Quc3VwcG9ydHNMaW5rcyIsIlhtbEh0dHBSZXF1ZXN0LnN1cHBvcnRzUHJvcHMiLCJYbWxIdHRwUmVxdWVzdC5zdXBwb3J0c1N5bmNoIiwiWG1sSHR0cFJlcXVlc3QucHJlbG9hZEZpbGUiLCJYbWxIdHRwUmVxdWVzdC5zdGF0IiwiWG1sSHR0cFJlcXVlc3Quc3RhdFN5bmMiLCJYbWxIdHRwUmVxdWVzdC5vcGVuIiwiWG1sSHR0cFJlcXVlc3Qub3BlblN5bmMiLCJYbWxIdHRwUmVxdWVzdC5yZWFkZGlyIiwiWG1sSHR0cFJlcXVlc3QucmVhZGRpclN5bmMiLCJYbWxIdHRwUmVxdWVzdC5yZWFkRmlsZSIsIlhtbEh0dHBSZXF1ZXN0LnJlYWRGaWxlU3luYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFPLFdBQVcsV0FBVyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3BELDBCQUFrQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQ3RELDBCQUFtQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQ3ZELHFCQUEyQixjQUFjLENBQUMsQ0FBQTtBQUcxQyxJQUFPLFlBQVksV0FBVyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3pELElBQU8sR0FBRyxXQUFXLGdCQUFnQixDQUFDLENBQUM7QUFDdkMsMkJBQTZFLHVCQUF1QixDQUFDLENBQUE7QUFLckc7SUFBNENBLGtDQUEwQkE7SUFVcEVBLHdCQUFZQSxVQUFrQkEsRUFBRUEsU0FBc0JBO1FBQXRCQyx5QkFBc0JBLEdBQXRCQSxjQUFzQkE7UUFDcERBLGlCQUFPQSxDQUFDQTtRQUNSQSxFQUFFQSxDQUFDQSxDQUFDQSxVQUFVQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN2QkEsVUFBVUEsR0FBR0EsWUFBWUEsQ0FBQ0E7UUFDNUJBLENBQUNBO1FBRURBLEVBQUVBLENBQUNBLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLElBQUlBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLEtBQUtBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO1lBQzNFQSxTQUFTQSxHQUFHQSxTQUFTQSxHQUFHQSxHQUFHQSxDQUFDQTtRQUM5QkEsQ0FBQ0E7UUFDREEsSUFBSUEsQ0FBQ0EsU0FBU0EsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFDM0JBLElBQUlBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsVUFBVUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDeERBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ3BCQSxNQUFNQSxJQUFJQSxLQUFLQSxDQUFDQSxpQ0FBaUNBLEdBQUdBLFVBQVVBLENBQUNBLENBQUNBO1FBQ2xFQSxDQUFDQTtRQUNEQSxJQUFJQSxDQUFDQSxNQUFNQSxHQUFHQSxzQkFBU0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDL0NBLENBQUNBO0lBRU1ELDhCQUFLQSxHQUFaQTtRQUNFRSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxZQUFZQSxDQUFDQSxVQUFTQSxJQUFXQTtZQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDLENBQUNBLENBQUNBO0lBQ0xBLENBQUNBO0lBRU9GLG1DQUFVQSxHQUFsQkEsVUFBbUJBLFFBQWdCQTtRQUNqQ0csRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDL0JBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQy9CQSxDQUFDQTtRQUNEQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxHQUFHQSxRQUFRQSxDQUFDQTtJQUNuQ0EsQ0FBQ0E7SUFLTUgsOENBQXFCQSxHQUE1QkEsVUFBNkJBLElBQVlBLEVBQUVBLEVBQTBDQTtRQUNuRkksR0FBR0EsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxJQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtJQUNsREEsQ0FBQ0E7SUFDTUosNkNBQW9CQSxHQUEzQkEsVUFBNEJBLElBQVlBO1FBQ3RDSyxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxlQUFlQSxDQUFDQSxJQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNwREEsQ0FBQ0E7SUFRT0wsMENBQWlCQSxHQUF6QkEsVUFBMEJBLENBQVNBLEVBQUVBLElBQVlBLEVBQUVBLEVBQXVDQTtRQUN4Rk0sR0FBR0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxJQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQSxFQUFFQSxJQUFJQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtJQUN0REEsQ0FBQ0E7SUFRT04seUNBQWdCQSxHQUF4QkEsVUFBeUJBLENBQVNBLEVBQUVBLElBQVlBO1FBQzlDTyxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxnQkFBZ0JBLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO0lBQ3hEQSxDQUFDQTtJQUVNUCxnQ0FBT0EsR0FBZEE7UUFDRVEsTUFBTUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQTtJQUMxQkEsQ0FBQ0E7SUFFYVIsMEJBQVdBLEdBQXpCQTtRQUVFUyxNQUFNQSxDQUFDQSxPQUFPQSxjQUFjQSxLQUFLQSxXQUFXQSxJQUFJQSxjQUFjQSxLQUFLQSxJQUFJQSxDQUFDQTtJQUMxRUEsQ0FBQ0E7SUFFTVQsa0NBQVNBLEdBQWhCQSxVQUFpQkEsSUFBWUEsRUFBRUEsRUFBeUNBO1FBR3RFVSxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNYQSxDQUFDQTtJQUVNVixtQ0FBVUEsR0FBakJBO1FBQ0VXLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2RBLENBQUNBO0lBRU1YLHNDQUFhQSxHQUFwQkE7UUFDRVksTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDZkEsQ0FBQ0E7SUFFTVosc0NBQWFBLEdBQXBCQTtRQUNFYSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQTtJQUNmQSxDQUFDQTtJQUVNYixzQ0FBYUEsR0FBcEJBO1FBQ0VjLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2RBLENBQUNBO0lBT01kLG9DQUFXQSxHQUFsQkEsVUFBbUJBLElBQVlBLEVBQUVBLE1BQWtCQTtRQUNqRGUsSUFBSUEsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDdkNBLEVBQUVBLENBQUNBLENBQUNBLHdCQUFXQSxDQUFRQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM5QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ25CQSxNQUFNQSxvQkFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLENBQUNBO1lBQ0RBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1lBQzVCQSxLQUFLQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUMzQkEsS0FBS0EsQ0FBQ0EsU0FBU0EsR0FBR0EsTUFBTUEsQ0FBQ0E7UUFDM0JBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLE1BQU1BLG9CQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM5QkEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFFTWYsNkJBQUlBLEdBQVhBLFVBQVlBLElBQVlBLEVBQUVBLE9BQWdCQSxFQUFFQSxFQUF1Q0E7UUFDakZnQixJQUFJQSxLQUFLQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN2Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkJBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLG9CQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNuQ0EsQ0FBQ0E7UUFDREEsSUFBSUEsS0FBWUEsQ0FBQ0E7UUFDakJBLEVBQUVBLENBQUNBLENBQUNBLHdCQUFXQSxDQUFRQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM5QkEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7WUFFeEJBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNuQkEsSUFBSUEsQ0FBQ0EscUJBQXFCQSxDQUFDQSxJQUFJQSxFQUFFQSxVQUFTQSxDQUFXQSxFQUFFQSxJQUFhQTtvQkFDbEUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDTixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNmLENBQUM7b0JBQ0QsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ2xCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzFCLENBQUMsQ0FBQ0EsQ0FBQ0E7WUFDTEEsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLEVBQUVBLENBQUNBLElBQUlBLEVBQUVBLEtBQUtBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO1lBQzFCQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSx1QkFBVUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDN0JBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBO1lBQ3pCQSxFQUFFQSxDQUFDQSxJQUFJQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtRQUNsQkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsRUFBRUEsQ0FBQ0Esb0JBQVFBLENBQUNBLFNBQVNBLENBQUNBLHFCQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqREEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFFTWhCLGlDQUFRQSxHQUFmQSxVQUFnQkEsSUFBWUEsRUFBRUEsT0FBZ0JBO1FBQzVDaUIsSUFBSUEsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDdkNBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ25CQSxNQUFNQSxvQkFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDOUJBLENBQUNBO1FBQ0RBLElBQUlBLEtBQVlBLENBQUNBO1FBQ2pCQSxFQUFFQSxDQUFDQSxDQUFDQSx3QkFBV0EsQ0FBUUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1lBRXhCQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDbkJBLEtBQUtBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLG9CQUFvQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDL0NBLENBQUNBO1FBQ0hBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLHVCQUFVQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM3QkEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0E7UUFDM0JBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLE1BQU1BLG9CQUFRQSxDQUFDQSxTQUFTQSxDQUFDQSxxQkFBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDbkRBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO0lBQ2ZBLENBQUNBO0lBRU1qQiw2QkFBSUEsR0FBWEEsVUFBWUEsSUFBWUEsRUFBRUEsS0FBZUEsRUFBRUEsSUFBWUEsRUFBRUEsRUFBMkNBO1FBRWxHa0IsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDeEJBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLElBQUlBLG9CQUFRQSxDQUFDQSxxQkFBU0EsQ0FBQ0EsS0FBS0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDakRBLENBQUNBO1FBQ0RBLElBQUlBLEtBQUtBLEdBQUdBLElBQUlBLENBQUNBO1FBRWpCQSxJQUFJQSxLQUFLQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN2Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkJBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLG9CQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNuQ0EsQ0FBQ0E7UUFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0Esd0JBQVdBLENBQVFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQzlCQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxPQUFPQSxFQUFFQSxDQUFDQTtZQUM1QkEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDakNBLEtBQUtBLHNCQUFVQSxDQUFDQSxlQUFlQSxDQUFDQTtnQkFDaENBLEtBQUtBLHNCQUFVQSxDQUFDQSxhQUFhQTtvQkFDM0JBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLG9CQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDbkNBLEtBQUtBLHNCQUFVQSxDQUFDQSxHQUFHQTtvQkFHakJBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLFNBQVNBLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUM1QkEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsSUFBSUEsRUFBRUEsSUFBSUEsWUFBWUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsS0FBS0EsRUFBRUEsSUFBSUEsRUFBRUEsS0FBS0EsRUFBRUEsS0FBS0EsQ0FBQ0EsS0FBS0EsRUFBRUEsRUFBRUEsS0FBS0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ25HQSxDQUFDQTtvQkFFREEsSUFBSUEsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxJQUFJQSxFQUFFQSxRQUFRQSxFQUFFQSxVQUFTQSxHQUFhQSxFQUFFQSxNQUFtQkE7d0JBQ2hGLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQ1IsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDakIsQ0FBQzt3QkFFRCxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7d0JBQzNCLEtBQUssQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO3dCQUN6QixNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzFGLENBQUMsQ0FBQ0EsQ0FBQ0E7b0JBQ0hBLEtBQUtBLENBQUNBO2dCQUNSQTtvQkFDRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsSUFBSUEsb0JBQVFBLENBQUNBLHFCQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSwwQkFBMEJBLENBQUNBLENBQUNBLENBQUNBO1lBQzFFQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNOQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxvQkFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDbkNBLENBQUNBO0lBQ0hBLENBQUNBO0lBRU1sQixpQ0FBUUEsR0FBZkEsVUFBZ0JBLElBQVlBLEVBQUVBLEtBQWVBLEVBQUVBLElBQVlBO1FBRXpEbUIsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDeEJBLE1BQU1BLElBQUlBLG9CQUFRQSxDQUFDQSxxQkFBU0EsQ0FBQ0EsS0FBS0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDNUNBLENBQUNBO1FBRURBLElBQUlBLEtBQUtBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ3ZDQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNuQkEsTUFBTUEsb0JBQVFBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQzlCQSxDQUFDQTtRQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSx3QkFBV0EsQ0FBUUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1lBQzVCQSxNQUFNQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUNqQ0EsS0FBS0Esc0JBQVVBLENBQUNBLGVBQWVBLENBQUNBO2dCQUNoQ0EsS0FBS0Esc0JBQVVBLENBQUNBLGFBQWFBO29CQUMzQkEsTUFBTUEsb0JBQVFBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUM5QkEsS0FBS0Esc0JBQVVBLENBQUNBLEdBQUdBO29CQUdqQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsU0FBU0EsSUFBSUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQzVCQSxNQUFNQSxDQUFDQSxJQUFJQSxZQUFZQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxLQUFLQSxFQUFFQSxLQUFLQSxDQUFDQSxLQUFLQSxFQUFFQSxFQUFFQSxLQUFLQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTtvQkFDeEZBLENBQUNBO29CQUVEQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLENBQUNBLElBQUlBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBO29CQUVuREEsS0FBS0EsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0JBQzNCQSxLQUFLQSxDQUFDQSxTQUFTQSxHQUFHQSxNQUFNQSxDQUFDQTtvQkFDekJBLE1BQU1BLENBQUNBLElBQUlBLFlBQVlBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLEVBQUVBLEtBQUtBLEVBQUVBLEtBQUtBLENBQUNBLEtBQUtBLEVBQUVBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO2dCQUMvRUE7b0JBQ0VBLE1BQU1BLElBQUlBLG9CQUFRQSxDQUFDQSxxQkFBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsMEJBQTBCQSxDQUFDQSxDQUFDQTtZQUNyRUEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsTUFBTUEsb0JBQVFBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQzlCQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVNbkIsZ0NBQU9BLEdBQWRBLFVBQWVBLElBQVlBLEVBQUVBLEVBQTZDQTtRQUN4RW9CLElBQUlBLENBQUNBO1lBQ0hBLEVBQUVBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1FBQ25DQSxDQUFFQTtRQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNYQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNSQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVNcEIsb0NBQVdBLEdBQWxCQSxVQUFtQkEsSUFBWUE7UUFFN0JxQixJQUFJQSxLQUFLQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN2Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkJBLE1BQU1BLG9CQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM5QkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsdUJBQVVBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQzdCQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUM1QkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsTUFBTUEsb0JBQVFBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQy9CQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUtNckIsaUNBQVFBLEdBQWZBLFVBQWdCQSxLQUFhQSxFQUFFQSxRQUFnQkEsRUFBRUEsSUFBY0EsRUFBRUEsRUFBdUNBO1FBRXRHc0IsSUFBSUEsS0FBS0EsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFFZkEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsRUFBRUEsSUFBSUEsRUFBRUEsS0FBS0EsRUFBRUEsVUFBU0EsR0FBYUEsRUFBRUEsRUFBY0E7WUFDbEUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDUixNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxFQUFFLEdBQUcsVUFBUyxHQUFhLEVBQUUsR0FBWTtnQkFDdkMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFTLElBQVM7b0JBQ3pCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNoQixHQUFHLEdBQUcsSUFBSSxDQUFDO29CQUNiLENBQUM7b0JBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxNQUFNLEdBQTZDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLE1BQU0sR0FBWSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLG1CQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsSUFBSSxDQUFDO2dCQUNILEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUU7WUFBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNYLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNSLENBQUM7UUFDSCxDQUFDLENBQUNBLENBQUNBO0lBQ0xBLENBQUNBO0lBS010QixxQ0FBWUEsR0FBbkJBLFVBQW9CQSxLQUFhQSxFQUFFQSxRQUFnQkEsRUFBRUEsSUFBY0E7UUFFakV1QixJQUFJQSxFQUFFQSxHQUFHQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxJQUFJQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtRQUMzQ0EsSUFBSUEsQ0FBQ0E7WUFDSEEsSUFBSUEsTUFBTUEsR0FBNkNBLEVBQUVBLENBQUNBO1lBQzFEQSxJQUFJQSxNQUFNQSxHQUFZQSxNQUFNQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQTtZQUN6Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3RCQSxNQUFNQSxDQUFDQSxtQkFBWUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLENBQUNBO1lBQ0RBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO1FBQ25DQSxDQUFDQTtnQkFBU0EsQ0FBQ0E7WUFDVEEsRUFBRUEsQ0FBQ0EsU0FBU0EsRUFBRUEsQ0FBQ0E7UUFDakJBLENBQUNBO0lBQ0hBLENBQUNBO0lBQ0h2QixxQkFBQ0E7QUFBREEsQ0FBQ0EsQUEzVEQsRUFBNEMsV0FBVyxDQUFDLGNBQWMsRUEyVHJFO0FBM1REO21DQTJUQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpbGVfc3lzdGVtID0gcmVxdWlyZSgnLi4vY29yZS9maWxlX3N5c3RlbScpO1xuaW1wb3J0IHtBcGlFcnJvciwgRXJyb3JDb2RlfSBmcm9tICcuLi9jb3JlL2FwaV9lcnJvcic7XG5pbXBvcnQge0ZpbGVGbGFnLCBBY3Rpb25UeXBlfSBmcm9tICcuLi9jb3JlL2ZpbGVfZmxhZyc7XG5pbXBvcnQge2NvcHlpbmdTbGljZX0gZnJvbSAnLi4vY29yZS91dGlsJztcbmltcG9ydCBmaWxlID0gcmVxdWlyZSgnLi4vY29yZS9maWxlJyk7XG5pbXBvcnQge1N0YXRzfSBmcm9tICcuLi9jb3JlL25vZGVfZnNfc3RhdHMnO1xuaW1wb3J0IHByZWxvYWRfZmlsZSA9IHJlcXVpcmUoJy4uL2dlbmVyaWMvcHJlbG9hZF9maWxlJyk7XG5pbXBvcnQgeGhyID0gcmVxdWlyZSgnLi4vZ2VuZXJpYy94aHInKTtcbmltcG9ydCB7RmlsZUluZGV4LCBEaXJJbm9kZSwgRmlsZUlub2RlLCBJbm9kZSwgaXNGaWxlSW5vZGUsIGlzRGlySW5vZGV9IGZyb20gJy4uL2dlbmVyaWMvZmlsZV9pbmRleCc7XG5cbi8qKlxuICogQSBzaW1wbGUgZmlsZXN5c3RlbSBiYWNrZWQgYnkgWG1sSHR0cFJlcXVlc3RzLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBYbWxIdHRwUmVxdWVzdCBleHRlbmRzIGZpbGVfc3lzdGVtLkJhc2VGaWxlU3lzdGVtIGltcGxlbWVudHMgZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbSB7XG4gIHByaXZhdGUgX2luZGV4OiBGaWxlSW5kZXg7XG4gIHB1YmxpYyBwcmVmaXhVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgdGhlIGZpbGUgc3lzdGVtLlxuICAgKiBAcGFyYW0gbGlzdGluZ1VybCBUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlIGluZGV4IGdlbmVyYXRlZCBieVxuICAgKiAgIHRvb2xzL1hIUkluZGV4ZXIuY29mZmVlLiBUaGlzIGNhbiBiZSByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3ZWJwYWdlIFVSTFxuICAgKiAgIG9yIGFic29sdXRlbHkgc3BlY2lmaWVkLlxuICAgKiBAcGFyYW0gcHJlZml4VXJsIFRoZSB1cmwgcHJlZml4IHRvIHVzZSBmb3IgYWxsIHdlYi1zZXJ2ZXIgcmVxdWVzdHMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihsaXN0aW5nVXJsOiBzdHJpbmcsIHByZWZpeFVybDogc3RyaW5nID0gJycpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmIChsaXN0aW5nVXJsID09IG51bGwpIHtcbiAgICAgIGxpc3RpbmdVcmwgPSAnaW5kZXguanNvbic7XG4gICAgfVxuICAgIC8vIHByZWZpeF91cmwgbXVzdCBlbmQgaW4gYSBkaXJlY3Rvcnkgc2VwYXJhdG9yLlxuICAgIGlmIChwcmVmaXhVcmwubGVuZ3RoID4gMCAmJiBwcmVmaXhVcmwuY2hhckF0KHByZWZpeFVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSB7XG4gICAgICBwcmVmaXhVcmwgPSBwcmVmaXhVcmwgKyAnLyc7XG4gICAgfVxuICAgIHRoaXMucHJlZml4VXJsID0gcHJlZml4VXJsO1xuICAgIHZhciBsaXN0aW5nID0gdGhpcy5fcmVxdWVzdEZpbGVTeW5jKGxpc3RpbmdVcmwsICdqc29uJyk7XG4gICAgaWYgKGxpc3RpbmcgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgbGlzdGluZyBhdCBVUkw6IFwiICsgbGlzdGluZ1VybCk7XG4gICAgfVxuICAgIHRoaXMuX2luZGV4ID0gRmlsZUluZGV4LmZyb21MaXN0aW5nKGxpc3RpbmcpO1xuICB9XG5cbiAgcHVibGljIGVtcHR5KCk6IHZvaWQge1xuICAgIHRoaXMuX2luZGV4LmZpbGVJdGVyYXRvcihmdW5jdGlvbihmaWxlOiBTdGF0cykge1xuICAgICAgZmlsZS5maWxlX2RhdGEgPSBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRYaHJQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChmaWxlUGF0aC5jaGFyQXQoMCkgPT09ICcvJykge1xuICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aC5zbGljZSgxKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJlZml4VXJsICsgZmlsZVBhdGg7XG4gIH1cblxuICAvKipcbiAgICogT25seSByZXF1ZXN0cyB0aGUgSEVBRCBjb250ZW50LCBmb3IgdGhlIGZpbGUgc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBfcmVxdWVzdEZpbGVTaXplQXN5bmMocGF0aDogc3RyaW5nLCBjYjogKGVycjogQXBpRXJyb3IsIHNpemU/OiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB4aHIuZ2V0RmlsZVNpemVBc3luYyh0aGlzLmdldFhoclBhdGgocGF0aCksIGNiKTtcbiAgfVxuICBwdWJsaWMgX3JlcXVlc3RGaWxlU2l6ZVN5bmMocGF0aDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4geGhyLmdldEZpbGVTaXplU3luYyh0aGlzLmdldFhoclBhdGgocGF0aCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91c2x5IGRvd25sb2FkIHRoZSBnaXZlbiBmaWxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVxdWVzdEZpbGVBc3luYyhwOiBzdHJpbmcsIHR5cGU6ICdidWZmZXInLCBjYjogKGVycjogQXBpRXJyb3IsIGRhdGE/OiBOb2RlQnVmZmVyKSA9PiB2b2lkKTogdm9pZDtcbiAgcHJpdmF0ZSBfcmVxdWVzdEZpbGVBc3luYyhwOiBzdHJpbmcsIHR5cGU6ICdqc29uJywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZDtcbiAgcHJpdmF0ZSBfcmVxdWVzdEZpbGVBc3luYyhwOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZDtcbiAgcHJpdmF0ZSBfcmVxdWVzdEZpbGVBc3luYyhwOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgeGhyLmFzeW5jRG93bmxvYWRGaWxlKHRoaXMuZ2V0WGhyUGF0aChwKSwgdHlwZSwgY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bmNocm9ub3VzbHkgZG93bmxvYWQgdGhlIGdpdmVuIGZpbGUuXG4gICAqL1xuICBwcml2YXRlIF9yZXF1ZXN0RmlsZVN5bmMocDogc3RyaW5nLCB0eXBlOiAnYnVmZmVyJyk6IE5vZGVCdWZmZXI7XG4gIHByaXZhdGUgX3JlcXVlc3RGaWxlU3luYyhwOiBzdHJpbmcsIHR5cGU6ICdqc29uJyk6IGFueTtcbiAgcHJpdmF0ZSBfcmVxdWVzdEZpbGVTeW5jKHA6IHN0cmluZywgdHlwZTogc3RyaW5nKTogYW55O1xuICBwcml2YXRlIF9yZXF1ZXN0RmlsZVN5bmMocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB4aHIuc3luY0Rvd25sb2FkRmlsZSh0aGlzLmdldFhoclBhdGgocCksIHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1htbEh0dHBSZXF1ZXN0JztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgLy8gQHRvZG8gT2xkZXIgYnJvd3NlcnMgdXNlIGEgZGlmZmVyZW50IG5hbWUgZm9yIFhIUiwgaWlyYy5cbiAgICByZXR1cm4gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSBcInVuZGVmaW5lZFwiICYmIFhNTEh0dHBSZXF1ZXN0ICE9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIGRpc2tTcGFjZShwYXRoOiBzdHJpbmcsIGNiOiAodG90YWw6IG51bWJlciwgZnJlZTogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gUmVhZC1vbmx5IGZpbGUgc3lzdGVtLiBXZSBjb3VsZCBjYWxjdWxhdGUgdGhlIHRvdGFsIHNwYWNlLCBidXQgdGhhdCdzIG5vdFxuICAgIC8vIGltcG9ydGFudCByaWdodCBub3cuXG4gICAgY2IoMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdXBwb3J0c0xpbmtzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdXBwb3J0c1Byb3BzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdXBwb3J0c1N5bmNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpYWwgWEhSIGZ1bmN0aW9uOiBQcmVsb2FkIHRoZSBnaXZlbiBmaWxlIGludG8gdGhlIGluZGV4LlxuICAgKiBAcGFyYW0gW1N0cmluZ10gcGF0aFxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5CdWZmZXJdIGJ1ZmZlclxuICAgKi9cbiAgcHVibGljIHByZWxvYWRGaWxlKHBhdGg6IHN0cmluZywgYnVmZmVyOiBOb2RlQnVmZmVyKTogdm9pZCB7XG4gICAgdmFyIGlub2RlID0gdGhpcy5faW5kZXguZ2V0SW5vZGUocGF0aCk7XG4gICAgaWYgKGlzRmlsZUlub2RlPFN0YXRzPihpbm9kZSkpIHtcbiAgICAgIGlmIChpbm9kZSA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBBcGlFcnJvci5FTk9FTlQocGF0aCk7XG4gICAgICB9XG4gICAgICB2YXIgc3RhdHMgPSBpbm9kZS5nZXREYXRhKCk7XG4gICAgICBzdGF0cy5zaXplID0gYnVmZmVyLmxlbmd0aDtcbiAgICAgIHN0YXRzLmZpbGVfZGF0YSA9IGJ1ZmZlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgQXBpRXJyb3IuRUlTRElSKHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0KHBhdGg6IHN0cmluZywgaXNMc3RhdDogYm9vbGVhbiwgY2I6IChlOiBBcGlFcnJvciwgc3RhdD86IFN0YXRzKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdmFyIGlub2RlID0gdGhpcy5faW5kZXguZ2V0SW5vZGUocGF0aCk7XG4gICAgaWYgKGlub2RlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gY2IoQXBpRXJyb3IuRU5PRU5UKHBhdGgpKTtcbiAgICB9XG4gICAgdmFyIHN0YXRzOiBTdGF0cztcbiAgICBpZiAoaXNGaWxlSW5vZGU8U3RhdHM+KGlub2RlKSkge1xuICAgICAgc3RhdHMgPSBpbm9kZS5nZXREYXRhKCk7XG4gICAgICAvLyBBdCB0aGlzIHBvaW50LCBhIG5vbi1vcGVuZWQgZmlsZSB3aWxsIHN0aWxsIGhhdmUgZGVmYXVsdCBzdGF0cyBmcm9tIHRoZSBsaXN0aW5nLlxuICAgICAgaWYgKHN0YXRzLnNpemUgPCAwKSB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RGaWxlU2l6ZUFzeW5jKHBhdGgsIGZ1bmN0aW9uKGU6IEFwaUVycm9yLCBzaXplPzogbnVtYmVyKSB7XG4gICAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjYihlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RhdHMuc2l6ZSA9IHNpemU7XG4gICAgICAgICAgY2IobnVsbCwgc3RhdHMuY2xvbmUoKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2IobnVsbCwgc3RhdHMuY2xvbmUoKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0Rpcklub2RlKGlub2RlKSkge1xuICAgICAgc3RhdHMgPSBpbm9kZS5nZXRTdGF0cygpO1xuICAgICAgY2IobnVsbCwgc3RhdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYihBcGlFcnJvci5GaWxlRXJyb3IoRXJyb3JDb2RlLkVJTlZBTCwgcGF0aCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0U3luYyhwYXRoOiBzdHJpbmcsIGlzTHN0YXQ6IGJvb2xlYW4pOiBTdGF0cyB7XG4gICAgdmFyIGlub2RlID0gdGhpcy5faW5kZXguZ2V0SW5vZGUocGF0aCk7XG4gICAgaWYgKGlub2RlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBBcGlFcnJvci5FTk9FTlQocGF0aCk7XG4gICAgfVxuICAgIHZhciBzdGF0czogU3RhdHM7XG4gICAgaWYgKGlzRmlsZUlub2RlPFN0YXRzPihpbm9kZSkpIHtcbiAgICAgIHN0YXRzID0gaW5vZGUuZ2V0RGF0YSgpO1xuICAgICAgLy8gQXQgdGhpcyBwb2ludCwgYSBub24tb3BlbmVkIGZpbGUgd2lsbCBzdGlsbCBoYXZlIGRlZmF1bHQgc3RhdHMgZnJvbSB0aGUgbGlzdGluZy5cbiAgICAgIGlmIChzdGF0cy5zaXplIDwgMCkge1xuICAgICAgICBzdGF0cy5zaXplID0gdGhpcy5fcmVxdWVzdEZpbGVTaXplU3luYyhwYXRoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRGlySW5vZGUoaW5vZGUpKSB7XG4gICAgICBzdGF0cyA9IGlub2RlLmdldFN0YXRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEFwaUVycm9yLkZpbGVFcnJvcihFcnJvckNvZGUuRUlOVkFMLCBwYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRzO1xuICB9XG5cbiAgcHVibGljIG9wZW4ocGF0aDogc3RyaW5nLCBmbGFnczogRmlsZUZsYWcsIG1vZGU6IG51bWJlciwgY2I6IChlOiBBcGlFcnJvciwgZmlsZT86IGZpbGUuRmlsZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIC8vIElOVkFSSUFOVDogWW91IGNhbid0IHdyaXRlIHRvIGZpbGVzIG9uIHRoaXMgZmlsZSBzeXN0ZW0uXG4gICAgaWYgKGZsYWdzLmlzV3JpdGVhYmxlKCkpIHtcbiAgICAgIHJldHVybiBjYihuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVQRVJNLCBwYXRoKSk7XG4gICAgfVxuICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIHBhdGggZXhpc3RzLCBhbmQgaXMgYSBmaWxlLlxuICAgIHZhciBpbm9kZSA9IHRoaXMuX2luZGV4LmdldElub2RlKHBhdGgpO1xuICAgIGlmIChpbm9kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGNiKEFwaUVycm9yLkVOT0VOVChwYXRoKSk7XG4gICAgfVxuICAgIGlmIChpc0ZpbGVJbm9kZTxTdGF0cz4oaW5vZGUpKSB7XG4gICAgICB2YXIgc3RhdHMgPSBpbm9kZS5nZXREYXRhKCk7XG4gICAgICBzd2l0Y2ggKGZsYWdzLnBhdGhFeGlzdHNBY3Rpb24oKSkge1xuICAgICAgICBjYXNlIEFjdGlvblR5cGUuVEhST1dfRVhDRVBUSU9OOlxuICAgICAgICBjYXNlIEFjdGlvblR5cGUuVFJVTkNBVEVfRklMRTpcbiAgICAgICAgICByZXR1cm4gY2IoQXBpRXJyb3IuRUVYSVNUKHBhdGgpKTtcbiAgICAgICAgY2FzZSBBY3Rpb25UeXBlLk5PUDpcbiAgICAgICAgICAvLyBVc2UgZXhpc3RpbmcgZmlsZSBjb250ZW50cy5cbiAgICAgICAgICAvLyBYWFg6IFVoLCB0aGlzIG1haW50YWlucyB0aGUgcHJldmlvdXNseS11c2VkIGZsYWcuXG4gICAgICAgICAgaWYgKHN0YXRzLmZpbGVfZGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gY2IobnVsbCwgbmV3IHByZWxvYWRfZmlsZS5Ob1N5bmNGaWxlKF90aGlzLCBwYXRoLCBmbGFncywgc3RhdHMuY2xvbmUoKSwgc3RhdHMuZmlsZV9kYXRhKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEB0b2RvIGJlIGxhemllciBhYm91dCBhY3R1YWxseSByZXF1ZXN0aW5nIHRoZSBmaWxlXG4gICAgICAgICAgdGhpcy5fcmVxdWVzdEZpbGVBc3luYyhwYXRoLCAnYnVmZmVyJywgZnVuY3Rpb24oZXJyOiBBcGlFcnJvciwgYnVmZmVyPzogTm9kZUJ1ZmZlcikge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHdlIGRvbid0IGluaXRpYWxseSBoYXZlIGZpbGUgc2l6ZXNcbiAgICAgICAgICAgIHN0YXRzLnNpemUgPSBidWZmZXIubGVuZ3RoO1xuICAgICAgICAgICAgc3RhdHMuZmlsZV9kYXRhID0gYnVmZmVyO1xuICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwsIG5ldyBwcmVsb2FkX2ZpbGUuTm9TeW5jRmlsZShfdGhpcywgcGF0aCwgZmxhZ3MsIHN0YXRzLmNsb25lKCksIGJ1ZmZlcikpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBjYihuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVJTlZBTCwgJ0ludmFsaWQgRmlsZU1vZGUgb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNiKEFwaUVycm9yLkVJU0RJUihwYXRoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5TeW5jKHBhdGg6IHN0cmluZywgZmxhZ3M6IEZpbGVGbGFnLCBtb2RlOiBudW1iZXIpOiBmaWxlLkZpbGUge1xuICAgIC8vIElOVkFSSUFOVDogWW91IGNhbid0IHdyaXRlIHRvIGZpbGVzIG9uIHRoaXMgZmlsZSBzeXN0ZW0uXG4gICAgaWYgKGZsYWdzLmlzV3JpdGVhYmxlKCkpIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRVBFUk0sIHBhdGgpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiB0aGUgcGF0aCBleGlzdHMsIGFuZCBpcyBhIGZpbGUuXG4gICAgdmFyIGlub2RlID0gdGhpcy5faW5kZXguZ2V0SW5vZGUocGF0aCk7XG4gICAgaWYgKGlub2RlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBBcGlFcnJvci5FTk9FTlQocGF0aCk7XG4gICAgfVxuICAgIGlmIChpc0ZpbGVJbm9kZTxTdGF0cz4oaW5vZGUpKSB7XG4gICAgICB2YXIgc3RhdHMgPSBpbm9kZS5nZXREYXRhKCk7XG4gICAgICBzd2l0Y2ggKGZsYWdzLnBhdGhFeGlzdHNBY3Rpb24oKSkge1xuICAgICAgICBjYXNlIEFjdGlvblR5cGUuVEhST1dfRVhDRVBUSU9OOlxuICAgICAgICBjYXNlIEFjdGlvblR5cGUuVFJVTkNBVEVfRklMRTpcbiAgICAgICAgICB0aHJvdyBBcGlFcnJvci5FRVhJU1QocGF0aCk7XG4gICAgICAgIGNhc2UgQWN0aW9uVHlwZS5OT1A6XG4gICAgICAgICAgLy8gVXNlIGV4aXN0aW5nIGZpbGUgY29udGVudHMuXG4gICAgICAgICAgLy8gWFhYOiBVaCwgdGhpcyBtYWludGFpbnMgdGhlIHByZXZpb3VzbHktdXNlZCBmbGFnLlxuICAgICAgICAgIGlmIChzdGF0cy5maWxlX2RhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBwcmVsb2FkX2ZpbGUuTm9TeW5jRmlsZSh0aGlzLCBwYXRoLCBmbGFncywgc3RhdHMuY2xvbmUoKSwgc3RhdHMuZmlsZV9kYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQHRvZG8gYmUgbGF6aWVyIGFib3V0IGFjdHVhbGx5IHJlcXVlc3RpbmcgdGhlIGZpbGVcbiAgICAgICAgICB2YXIgYnVmZmVyID0gdGhpcy5fcmVxdWVzdEZpbGVTeW5jKHBhdGgsICdidWZmZXInKTtcbiAgICAgICAgICAvLyB3ZSBkb24ndCBpbml0aWFsbHkgaGF2ZSBmaWxlIHNpemVzXG4gICAgICAgICAgc3RhdHMuc2l6ZSA9IGJ1ZmZlci5sZW5ndGg7XG4gICAgICAgICAgc3RhdHMuZmlsZV9kYXRhID0gYnVmZmVyO1xuICAgICAgICAgIHJldHVybiBuZXcgcHJlbG9hZF9maWxlLk5vU3luY0ZpbGUodGhpcywgcGF0aCwgZmxhZ3MsIHN0YXRzLmNsb25lKCksIGJ1ZmZlcik7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FSU5WQUwsICdJbnZhbGlkIEZpbGVNb2RlIG9iamVjdC4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgQXBpRXJyb3IuRUlTRElSKHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkZGlyKHBhdGg6IHN0cmluZywgY2I6IChlOiBBcGlFcnJvciwgbGlzdGluZz86IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNiKG51bGwsIHRoaXMucmVhZGRpclN5bmMocGF0aCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNiKGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkZGlyU3luYyhwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgLy8gQ2hlY2sgaWYgaXQgZXhpc3RzLlxuICAgIHZhciBpbm9kZSA9IHRoaXMuX2luZGV4LmdldElub2RlKHBhdGgpO1xuICAgIGlmIChpbm9kZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgQXBpRXJyb3IuRU5PRU5UKHBhdGgpO1xuICAgIH0gZWxzZSBpZiAoaXNEaXJJbm9kZShpbm9kZSkpIHtcbiAgICAgIHJldHVybiBpbm9kZS5nZXRMaXN0aW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEFwaUVycm9yLkVOT1RESVIocGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdlIGhhdmUgdGhlIGVudGlyZSBmaWxlIGFzIGEgYnVmZmVyOyBvcHRpbWl6ZSByZWFkRmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkRmlsZShmbmFtZTogc3RyaW5nLCBlbmNvZGluZzogc3RyaW5nLCBmbGFnOiBGaWxlRmxhZywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gV3JhcCBjYiBpbiBmaWxlIGNsb3NpbmcgY29kZS5cbiAgICB2YXIgb2xkQ2IgPSBjYjtcbiAgICAvLyBHZXQgZmlsZS5cbiAgICB0aGlzLm9wZW4oZm5hbWUsIGZsYWcsIDB4MWE0LCBmdW5jdGlvbihlcnI6IEFwaUVycm9yLCBmZD86IGZpbGUuRmlsZSkge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2IoZXJyKTtcbiAgICAgIH1cbiAgICAgIGNiID0gZnVuY3Rpb24oZXJyOiBBcGlFcnJvciwgYXJnPzogQnVmZmVyKSB7XG4gICAgICAgIGZkLmNsb3NlKGZ1bmN0aW9uKGVycjI6IGFueSkge1xuICAgICAgICAgIGlmIChlcnIgPT0gbnVsbCkge1xuICAgICAgICAgICAgZXJyID0gZXJyMjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9sZENiKGVyciwgYXJnKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgdmFyIGZkQ2FzdCA9IDxwcmVsb2FkX2ZpbGUuTm9TeW5jRmlsZTxYbWxIdHRwUmVxdWVzdD4+IGZkO1xuICAgICAgdmFyIGZkQnVmZiA9IDxCdWZmZXI+IGZkQ2FzdC5nZXRCdWZmZXIoKTtcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gY2IoZXJyLCBjb3B5aW5nU2xpY2UoZmRCdWZmKSk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjYihudWxsLCBmZEJ1ZmYudG9TdHJpbmcoZW5jb2RpbmcpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2IoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lhbGx5LW9wdGltaXplZCByZWFkZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkRmlsZVN5bmMoZm5hbWU6IHN0cmluZywgZW5jb2Rpbmc6IHN0cmluZywgZmxhZzogRmlsZUZsYWcpOiBhbnkge1xuICAgIC8vIEdldCBmaWxlLlxuICAgIHZhciBmZCA9IHRoaXMub3BlblN5bmMoZm5hbWUsIGZsYWcsIDB4MWE0KTtcbiAgICB0cnkge1xuICAgICAgdmFyIGZkQ2FzdCA9IDxwcmVsb2FkX2ZpbGUuTm9TeW5jRmlsZTxYbWxIdHRwUmVxdWVzdD4+IGZkO1xuICAgICAgdmFyIGZkQnVmZiA9IDxCdWZmZXI+IGZkQ2FzdC5nZXRCdWZmZXIoKTtcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gY29weWluZ1NsaWNlKGZkQnVmZik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmRCdWZmLnRvU3RyaW5nKGVuY29kaW5nKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZmQuY2xvc2VTeW5jKCk7XG4gICAgfVxuICB9XG59XG4iXX0= |
@@ -1,2 +0,1 @@ | ||
import { Buffer } from "./buffer"; | ||
export declare enum ErrorCode { | ||
@@ -3,0 +2,0 @@ EPERM = 0, |
@@ -1,2 +0,1 @@ | ||
var buffer_1 = require("./buffer"); | ||
(function (ErrorCode) { | ||
@@ -51,3 +50,3 @@ ErrorCode[ErrorCode["EPERM"] = 0] = "EPERM"; | ||
ApiError.prototype.writeToBuffer = function (buffer, i) { | ||
if (buffer === void 0) { buffer = new buffer_1.Buffer(this.bufferSize()); } | ||
if (buffer === void 0) { buffer = new Buffer(this.bufferSize()); } | ||
if (i === void 0) { i = 0; } | ||
@@ -64,3 +63,3 @@ buffer.writeUInt8(this.type, i); | ||
ApiError.prototype.bufferSize = function () { | ||
return 5 + buffer_1.Buffer.byteLength(this.message); | ||
return 5 + Buffer.byteLength(this.message); | ||
}; | ||
@@ -91,2 +90,2 @@ ApiError.FileError = function (code, p) { | ||
exports.ApiError = ApiError; | ||
//# sourceMappingURL=api_error.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvYXBpX2Vycm9yLnRzIl0sIm5hbWVzIjpbIkVycm9yQ29kZSIsIkFwaUVycm9yIiwiQXBpRXJyb3IuY29uc3RydWN0b3IiLCJBcGlFcnJvci50b1N0cmluZyIsIkFwaUVycm9yLndyaXRlVG9CdWZmZXIiLCJBcGlFcnJvci5mcm9tQnVmZmVyIiwiQXBpRXJyb3IuYnVmZmVyU2l6ZSIsIkFwaUVycm9yLkZpbGVFcnJvciIsIkFwaUVycm9yLkVOT0VOVCIsIkFwaUVycm9yLkVFWElTVCIsIkFwaUVycm9yLkVJU0RJUiIsIkFwaUVycm9yLkVOT1RESVIiLCJBcGlFcnJvci5FUEVSTSIsIkFwaUVycm9yLkVOT1RFTVBUWSJdLCJtYXBwaW5ncyI6IkFBS0EsV0FBWSxTQUFTO0lBQ25CQSwyQ0FBS0EsQ0FBQUE7SUFBRUEsNkNBQU1BLENBQUFBO0lBQUVBLHVDQUFHQSxDQUFBQTtJQUFFQSwyQ0FBS0EsQ0FBQUE7SUFBRUEsNkNBQU1BLENBQUFBO0lBQUVBLDJDQUFLQSxDQUFBQTtJQUFFQSw2Q0FBTUEsQ0FBQUE7SUFBRUEsK0NBQU9BLENBQUFBO0lBQUVBLDZDQUFNQSxDQUFBQTtJQUFFQSw2Q0FBTUEsQ0FBQUE7SUFDekVBLDRDQUFLQSxDQUFBQTtJQUFFQSw4Q0FBTUEsQ0FBQUE7SUFBRUEsNENBQUtBLENBQUFBO0lBQUVBLG9EQUFTQSxDQUFBQTtJQUFFQSxnREFBT0EsQ0FBQUE7QUFDMUNBLENBQUNBLEVBSFcsaUJBQVMsS0FBVCxpQkFBUyxRQUdwQjtBQUhELElBQVksU0FBUyxHQUFULGlCQUdYLENBQUE7QUFJRCxJQUFJLFlBQVksR0FBNkIsRUFBRSxDQUFDO0FBQ2hELFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsMEJBQTBCLENBQUM7QUFDM0QsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyw0QkFBNEIsQ0FBQztBQUM5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QUFTQSxDQUFDQSxTQUFTQSxDQUFDQSxPQUFPQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNqREEsQ0FBQ0E7SUFFYVYsY0FBS0EsR0FBbkJBLFVBQW9CQSxJQUFZQTtRQUM5QlcsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsS0FBS0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDL0NBLENBQUNBO0lBRWFYLGtCQUFTQSxHQUF2QkEsVUFBd0JBLElBQVlBO1FBQ2xDWSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxTQUFTQSxDQUFDQSxTQUFTQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNuREEsQ0FBQ0E7SUFDSFosZUFBQ0E7QUFBREEsQ0FBQ0EsQUFuRkQsSUFtRkM7QUFuRlksZ0JBQVEsV0FtRnBCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YW5kYXJkIGxpYmMgZXJyb3IgY29kZXMuIEFkZCBtb3JlIHRvIHRoaXMgZW51bSBhbmQgRXJyb3JTdHJpbmdzIGFzIHRoZXkgYXJlXG4gKiBuZWVkZWQuXG4gKiBAdXJsIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjL21hbnVhbC9odG1sX25vZGUvRXJyb3ItQ29kZXMuaHRtbFxuICovXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xuICBFUEVSTSwgRU5PRU5ULCBFSU8sIEVCQURGLCBFQUNDRVMsIEVCVVNZLCBFRVhJU1QsIEVOT1RESVIsIEVJU0RJUiwgRUlOVkFMLFxuICBFRkJJRywgRU5PU1BDLCBFUk9GUywgRU5PVEVNUFRZLCBFTk9UU1VQXG59XG4vKipcbiAqIFN0cmluZ3MgYXNzb2NpYXRlZCB3aXRoIGVhY2ggZXJyb3IgY29kZS5cbiAqL1xudmFyIEVycm9yU3RyaW5nczoge1tjb2RlOiBzdHJpbmddOiBzdHJpbmd9ID0ge307XG5FcnJvclN0cmluZ3NbRXJyb3JDb2RlLkVQRVJNXSA9ICdPcGVyYXRpb24gbm90IHBlcm1pdHRlZC4nO1xuRXJyb3JTdHJpbmdzW0Vycm9yQ29kZS5FTk9FTlRdID0gJ05vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkuJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRUlPXSA9ICdJbnB1dC9vdXRwdXQgZXJyb3IuJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRUJBREZdID0gJ0JhZCBmaWxlIGRlc2NyaXB0b3IuJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRUFDQ0VTXSA9ICdQZXJtaXNzaW9uIGRlbmllZC4nO1xuRXJyb3JTdHJpbmdzW0Vycm9yQ29kZS5FQlVTWV0gPSAnUmVzb3VyY2UgYnVzeSBvciBsb2NrZWQuJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRUVYSVNUXSA9ICdGaWxlIGV4aXN0cy4nO1xuRXJyb3JTdHJpbmdzW0Vycm9yQ29kZS5FTk9URElSXSA9ICdGaWxlIGlzIG5vdCBhIGRpcmVjdG9yeS4nO1xuRXJyb3JTdHJpbmdzW0Vycm9yQ29kZS5FSVNESVJdID0gJ0ZpbGUgaXMgYSBkaXJlY3RvcnkuJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRUlOVkFMXSA9ICdJbnZhbGlkIGFyZ3VtZW50Lic7XG5FcnJvclN0cmluZ3NbRXJyb3JDb2RlLkVGQklHXSA9ICdGaWxlIGlzIHRvbyBiaWcuJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRU5PU1BDXSA9ICdObyBzcGFjZSBsZWZ0IG9uIGRpc2suJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRVJPRlNdID0gJ0Nhbm5vdCBtb2RpZnkgYSByZWFkLW9ubHkgZmlsZSBzeXN0ZW0uJztcbkVycm9yU3RyaW5nc1tFcnJvckNvZGUuRU5PVEVNUFRZXSA9ICdEaXJlY3RvcnkgaXMgbm90IGVtcHR5Lic7XG5FcnJvclN0cmluZ3NbRXJyb3JDb2RlLkVOT1RTVVBdID0gJ09wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIEJyb3dzZXJGUyBlcnJvci4gUGFzc2VkIGJhY2sgdG8gYXBwbGljYXRpb25zIGFmdGVyIGEgZmFpbGVkXG4gKiBjYWxsIHRvIHRoZSBCcm93c2VyRlMgQVBJLlxuICovXG5leHBvcnQgY2xhc3MgQXBpRXJyb3Ige1xuICBwdWJsaWMgdHlwZTogRXJyb3JDb2RlO1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgY29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGEgQnJvd3NlckZTIGVycm9yLiBQYXNzZWQgYmFjayB0byBhcHBsaWNhdGlvbnMgYWZ0ZXIgYSBmYWlsZWRcbiAgICogY2FsbCB0byB0aGUgQnJvd3NlckZTIEFQSS5cbiAgICpcbiAgICogRXJyb3IgY29kZXMgbWlycm9yIHRob3NlIHJldHVybmVkIGJ5IHJlZ3VsYXIgVW5peCBmaWxlIG9wZXJhdGlvbnMsIHdoaWNoIGlzXG4gICAqIHdoYXQgTm9kZSByZXR1cm5zLlxuICAgKiBAY29uc3RydWN0b3IgQXBpRXJyb3JcbiAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGVycm9yLlxuICAgKiBAcGFyYW0gW21lc3NhZ2VdIEEgZGVzY3JpcHRpdmUgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHR5cGU6IEVycm9yQ29kZSwgbWVzc2FnZT86c3RyaW5nKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmNvZGUgPSBFcnJvckNvZGVbdHlwZV07XG4gICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkge1xuICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXNzYWdlID0gRXJyb3JTdHJpbmdzW3R5cGVdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIEEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvZGUgKyAgXCI6IFwiICsgRXJyb3JTdHJpbmdzW3RoaXMudHlwZV0gKyBcIiBcIiArIHRoaXMubWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIEFQSSBlcnJvciBpbnRvIGEgYnVmZmVyLlxuICAgKi9cbiAgcHVibGljIHdyaXRlVG9CdWZmZXIoYnVmZmVyOiBCdWZmZXIgPSBuZXcgQnVmZmVyKHRoaXMuYnVmZmVyU2l6ZSgpKSwgaTogbnVtYmVyID0gMCk6IEJ1ZmZlciB7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy50eXBlLCBpKTtcbiAgICB2YXIgYnl0ZXNXcml0dGVuID0gYnVmZmVyLndyaXRlKHRoaXMubWVzc2FnZSwgaSArIDUpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGJ5dGVzV3JpdHRlbiwgaSArIDEpO1xuICAgIHJldHVybiBidWZmZXI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBBcGlFcnJvciBvYmplY3QgZnJvbSBhIGJ1ZmZlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1ZmZlcihidWZmZXI6IEJ1ZmZlciwgaTogbnVtYmVyID0gMCk6IEFwaUVycm9yIHtcbiAgICByZXR1cm4gbmV3IEFwaUVycm9yKGJ1ZmZlci5yZWFkVUludDgoaSksIGJ1ZmZlci50b1N0cmluZyhcInV0ZjhcIiwgaSArIDUsIGkgKyA1ICsgYnVmZmVyLnJlYWRVSW50MzJMRShpICsgMSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgQVBJIGVycm9yIGluIGJ1ZmZlci1mb3JtIGluIGJ5dGVzLlxuICAgKi9cbiAgcHVibGljIGJ1ZmZlclNpemUoKTogbnVtYmVyIHtcbiAgICAvLyA0IGJ5dGVzIGZvciBzdHJpbmcgbGVuZ3RoLCAxIGZvciB0eXBlLlxuICAgIHJldHVybiA1ICsgQnVmZmVyLmJ5dGVMZW5ndGgodGhpcy5tZXNzYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRmlsZUVycm9yKGNvZGU6IEVycm9yQ29kZSwgcDogc3RyaW5nKTogQXBpRXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXBpRXJyb3IoY29kZSwgcCArIFwiOiBcIiArIEVycm9yU3RyaW5nc1tjb2RlXSk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBFTk9FTlQocGF0aDogc3RyaW5nKTogQXBpRXJyb3Ige1xuICAgIHJldHVybiB0aGlzLkZpbGVFcnJvcihFcnJvckNvZGUuRU5PRU5ULCBwYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgRUVYSVNUKHBhdGg6IHN0cmluZyk6IEFwaUVycm9yIHtcbiAgICByZXR1cm4gdGhpcy5GaWxlRXJyb3IoRXJyb3JDb2RlLkVFWElTVCwgcGF0aCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEVJU0RJUihwYXRoOiBzdHJpbmcpOiBBcGlFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuRmlsZUVycm9yKEVycm9yQ29kZS5FSVNESVIsIHBhdGgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBFTk9URElSKHBhdGg6IHN0cmluZyk6IEFwaUVycm9yIHtcbiAgICByZXR1cm4gdGhpcy5GaWxlRXJyb3IoRXJyb3JDb2RlLkVOT1RESVIsIHBhdGgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBFUEVSTShwYXRoOiBzdHJpbmcpOiBBcGlFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuRmlsZUVycm9yKEVycm9yQ29kZS5FUEVSTSwgcGF0aCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEVOT1RFTVBUWShwYXRoOiBzdHJpbmcpOiBBcGlFcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuRmlsZUVycm9yKEVycm9yQ29kZS5FTk9URU1QVFksIHBhdGgpO1xuICB9XG59XG4iXX0= |
@@ -23,2 +23,2 @@ var AsyncMirror_1 = require('../backend/AsyncMirror'); | ||
exports.ZipFS = ZipFS_1["default"]; | ||
//# sourceMappingURL=backends.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9iYWNrZW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBd0Isd0JBQXdCLENBQUMsQ0FBQTtBQVd6QyxtQkFBVztBQVZuQix3QkFBb0Isb0JBQW9CLENBQUMsQ0FBQTtBQVVwQixlQUFPO0FBVDVCLHdCQUFvQixvQkFBb0IsQ0FBQyxDQUFBO0FBU1gsZUFBTztBQVJyQyx5QkFBcUIscUJBQXFCLENBQUMsQ0FBQTtBQVFKLGdCQUFRO0FBUC9DLDBCQUFzQixzQkFBc0IsQ0FBQyxDQUFBO0FBT0ksaUJBQVM7QUFOMUQsNkJBQXlCLHlCQUF5QixDQUFDLENBQUE7QUFNUyxvQkFBWTtBQUx4RSxvQ0FBZ0MsZ0NBQWdDLENBQUMsQ0FBQTtBQUtTLDJCQUFtQjtBQUo3RiwwQkFBc0Isc0JBQXNCLENBQUMsQ0FBQTtBQUlrRCxpQkFBUztBQUh4Ryx5QkFBcUIscUJBQXFCLENBQUMsQ0FBQTtBQUcrRCxnQkFBUTtBQUZsSCwrQkFBMkIsMkJBQTJCLENBQUMsQ0FBQTtBQUU2RCxzQkFBYztBQURsSSxzQkFBa0Isa0JBQWtCLENBQUMsQ0FBQTtBQUMrRixhQUFLO0FBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXN5bmNNaXJyb3IgZnJvbSAnLi4vYmFja2VuZC9Bc3luY01pcnJvcic7XG5pbXBvcnQgRHJvcGJveCBmcm9tICcuLi9iYWNrZW5kL0Ryb3Bib3gnO1xuaW1wb3J0IEhUTUw1RlMgZnJvbSAnLi4vYmFja2VuZC9IVE1MNUZTJztcbmltcG9ydCBJbk1lbW9yeSBmcm9tICcuLi9iYWNrZW5kL0luTWVtb3J5JztcbmltcG9ydCBJbmRleGVkREIgZnJvbSAnLi4vYmFja2VuZC9JbmRleGVkREInO1xuaW1wb3J0IExvY2FsU3RvcmFnZSBmcm9tICcuLi9iYWNrZW5kL0xvY2FsU3RvcmFnZSc7XG5pbXBvcnQgTW91bnRhYmxlRmlsZVN5c3RlbSBmcm9tICcuLi9iYWNrZW5kL01vdW50YWJsZUZpbGVTeXN0ZW0nO1xuaW1wb3J0IE92ZXJsYXlGUyBmcm9tICcuLi9iYWNrZW5kL092ZXJsYXlGUyc7XG5pbXBvcnQgV29ya2VyRlMgZnJvbSAnLi4vYmFja2VuZC9Xb3JrZXJGUyc7XG5pbXBvcnQgWG1sSHR0cFJlcXVlc3QgZnJvbSAnLi4vYmFja2VuZC9YbWxIdHRwUmVxdWVzdCc7XG5pbXBvcnQgWmlwRlMgZnJvbSAnLi4vYmFja2VuZC9aaXBGUyc7XG5leHBvcnQge0FzeW5jTWlycm9yLCBEcm9wYm94LCBIVE1MNUZTLCBJbk1lbW9yeSwgSW5kZXhlZERCLCBMb2NhbFN0b3JhZ2UsIE1vdW50YWJsZUZpbGVTeXN0ZW0sIE92ZXJsYXlGUywgV29ya2VyRlMsIFhtbEh0dHBSZXF1ZXN0LCBaaXBGU307XG4iXX0= |
/** | ||
* BrowserFS's main module. This is exposed in the browser via the BrowserFS global. | ||
*/ | ||
var buffer = require('./buffer'); | ||
var buffer = require('buffer'); | ||
var fs = require('./node_fs'); | ||
var path = require('./node_path'); | ||
var node_process = require('./node_process'); | ||
var path = require('path'); | ||
var emscripten_fs_1 = require('../generic/emscripten_fs'); | ||
@@ -13,4 +12,4 @@ exports.EmscriptenFS = emscripten_fs_1["default"]; | ||
function install(obj) { | ||
obj.Buffer = buffer.Buffer; | ||
obj.process = node_process.process; | ||
obj.Buffer = Buffer; | ||
obj.process = process; | ||
var oldRequire = obj.require != null ? obj.require : null; | ||
@@ -41,3 +40,3 @@ obj.require = function (arg) { | ||
case 'process': | ||
return node_process.process; | ||
return process; | ||
default: | ||
@@ -52,2 +51,2 @@ return FileSystem[module]; | ||
exports.initialize = initialize; | ||
//# sourceMappingURL=browserfs.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlcmZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvYnJvd3NlcmZzLnRzIl0sIm5hbWVzIjpbImluc3RhbGwiLCJyZWdpc3RlckZpbGVTeXN0ZW0iLCJCRlNSZXF1aXJlIiwiaW5pdGlhbGl6ZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxJQUFPLE1BQU0sV0FBVyxRQUFRLENBQUMsQ0FBQztBQUNsQyxJQUFPLEVBQUUsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNqQyxJQUFPLElBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUU5Qiw4QkFBeUIsMEJBQTBCLENBQUMsQ0FBQTtBQThENUMsb0JBQVk7QUE3RHBCLElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBNkRuQixrQkFBVTtBQTdDaEMsaUJBQXdCLEdBQVE7SUFDOUJBLEdBQUdBLENBQUNBLE1BQU1BLEdBQUdBLE1BQU1BLENBQUNBO0lBQ3BCQSxHQUFHQSxDQUFDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQTtJQUN0QkEsSUFBSUEsVUFBVUEsR0FBR0EsR0FBR0EsQ0FBQ0EsT0FBT0EsSUFBSUEsSUFBSUEsR0FBR0EsR0FBR0EsQ0FBQ0EsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7SUFFMURBLEdBQUdBLENBQUNBLE9BQU9BLEdBQUdBLFVBQVNBLEdBQVdBO1FBQ2hDLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNmLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekUsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDLENBQUNBO0FBQ0pBLENBQUNBO0FBYmUsZUFBTyxVQWF0QixDQUFBO0FBRUQsNEJBQW1DLElBQVksRUFBRSxFQUFxQztJQUM3RUMsVUFBV0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsRUFBRUEsQ0FBQ0E7QUFDaENBLENBQUNBO0FBRmUsMEJBQWtCLHFCQUVqQyxDQUFBO0FBRUQsb0JBQTJCLE1BQWM7SUFDdkNDLE1BQU1BLENBQUFBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO1FBQ2RBLEtBQUtBLElBQUlBO1lBQ1BBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBO1FBQ1pBLEtBQUtBLE1BQU1BO1lBQ1RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO1FBQ2RBLEtBQUtBLFFBQVFBO1lBRVhBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO1FBQ2hCQSxLQUFLQSxTQUFTQTtZQUNaQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQTtRQUNqQkE7WUFDRUEsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7SUFDOUJBLENBQUNBO0FBQ0hBLENBQUNBO0FBZGUsa0JBQVUsYUFjekIsQ0FBQTtBQVFELG9CQUEyQixNQUE4QjtJQUN2REMsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7QUFDaENBLENBQUNBO0FBRmUsa0JBQVUsYUFFekIsQ0FBQTtBQUVpQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3NlckZTJ3MgbWFpbiBtb2R1bGUuIFRoaXMgaXMgZXhwb3NlZCBpbiB0aGUgYnJvd3NlciB2aWEgdGhlIEJyb3dzZXJGUyBnbG9iYWwuXG4gKi9cblxuaW1wb3J0IGJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnLi9ub2RlX2ZzJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCBmaWxlX3N5c3RlbSA9IHJlcXVpcmUoJy4vZmlsZV9zeXN0ZW0nKTtcbmltcG9ydCBFbXNjcmlwdGVuRlMgZnJvbSAnLi4vZ2VuZXJpYy9lbXNjcmlwdGVuX2ZzJztcbmltcG9ydCAqIGFzIEZpbGVTeXN0ZW0gZnJvbSAnLi9iYWNrZW5kcyc7XG5cbi8qKlxuICogSW5zdGFsbHMgQnJvd3NlckZTIG9udG8gdGhlIGdpdmVuIG9iamVjdC5cbiAqIFdlIHJlY29tbWVuZCB0aGF0IHlvdSBydW4gaW5zdGFsbCB3aXRoIHRoZSAnd2luZG93JyBvYmplY3QgdG8gbWFrZSB0aGluZ3NcbiAqIGdsb2JhbCwgYXMgaW4gTm9kZS5cbiAqXG4gKiBQcm9wZXJ0aWVzIGluc3RhbGxlZDpcbiAqXG4gKiAqIEJ1ZmZlclxuICogKiBwcm9jZXNzXG4gKiAqIHJlcXVpcmUgKHdlIG1vbmtleS1wYXRjaCBpdClcbiAqXG4gKiBUaGlzIGFsbG93cyB5b3UgdG8gd3JpdGUgY29kZSBhcyBpZiB5b3Ugd2VyZSBydW5uaW5nIGluc2lkZSBOb2RlLlxuICogQHBhcmFtIHtvYmplY3R9IG9iaiAtIFRoZSBvYmplY3QgdG8gaW5zdGFsbCB0aGluZ3Mgb250byAoZS5nLiB3aW5kb3cpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsKG9iajogYW55KSB7XG4gIG9iai5CdWZmZXIgPSBCdWZmZXI7XG4gIG9iai5wcm9jZXNzID0gcHJvY2VzcztcbiAgdmFyIG9sZFJlcXVpcmUgPSBvYmoucmVxdWlyZSAhPSBudWxsID8gb2JqLnJlcXVpcmUgOiBudWxsO1xuICAvLyBNb25rZXktcGF0Y2ggcmVxdWlyZSBmb3IgTm9kZS1zdHlsZSBjb2RlLlxuICBvYmoucmVxdWlyZSA9IGZ1bmN0aW9uKGFyZzogc3RyaW5nKSB7XG4gICAgdmFyIHJ2ID0gQkZTUmVxdWlyZShhcmcpO1xuICAgIGlmIChydiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gb2xkUmVxdWlyZS5hcHBseShudWxsLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcnY7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJGaWxlU3lzdGVtKG5hbWU6IHN0cmluZywgZnM6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW1Db25zdHJ1Y3Rvcikge1xuICAoPGFueT4gRmlsZVN5c3RlbSlbbmFtZV0gPSBmcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJGU1JlcXVpcmUobW9kdWxlOiBzdHJpbmcpIHtcbiAgc3dpdGNoKG1vZHVsZSkge1xuICAgIGNhc2UgJ2ZzJzpcbiAgICAgIHJldHVybiBmcztcbiAgICBjYXNlICdwYXRoJzpcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIGNhc2UgJ2J1ZmZlcic6XG4gICAgICAvLyBUaGUgJ2J1ZmZlcicgbW9kdWxlIGhhcyAnQnVmZmVyJyBhcyBhIHByb3BlcnR5LlxuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICBjYXNlICdwcm9jZXNzJzpcbiAgICAgIHJldHVybiBwcm9jZXNzO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gRmlsZVN5c3RlbVttb2R1bGVdO1xuICB9XG59XG5cbi8qKlxuICogWW91IG11c3QgY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggYSBwcm9wZXJseS1pbnN0YW50aWF0ZWQgcm9vdCBmaWxlIHN5c3RlbVxuICogYmVmb3JlIHVzaW5nIGFueSBmaWxlIHN5c3RlbSBBUEkgbWV0aG9kLlxuICogQHBhcmFtIHtCcm93c2VyRlMuRmlsZVN5c3RlbX0gcm9vdEZTIC0gVGhlIHJvb3QgZmlsZXN5c3RlbSB0byB1c2UgZm9yIHRoZVxuICogICBlbnRpcmUgQnJvd3NlckZTIGZpbGUgc3lzdGVtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZShyb290ZnM6IGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0pIHtcbiAgcmV0dXJuIGZzLl9pbml0aWFsaXplKHJvb3Rmcyk7XG59XG5cbmV4cG9ydCB7RW1zY3JpcHRlbkZTLCBGaWxlU3lzdGVtfTtcbiJdfQ== |
@@ -67,2 +67,2 @@ var api_error = require('./api_error'); | ||
exports.FileFlag = FileFlag; | ||
//# sourceMappingURL=file_flag.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9mbGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvZmlsZV9mbGFnLnRzIl0sIm5hbWVzIjpbIkFjdGlvblR5cGUiLCJGaWxlRmxhZyIsIkZpbGVGbGFnLmNvbnN0cnVjdG9yIiwiRmlsZUZsYWcuZ2V0RmlsZUZsYWciLCJGaWxlRmxhZy5nZXRGbGFnU3RyaW5nIiwiRmlsZUZsYWcuaXNSZWFkYWJsZSIsIkZpbGVGbGFnLmlzV3JpdGVhYmxlIiwiRmlsZUZsYWcuaXNUcnVuY2F0aW5nIiwiRmlsZUZsYWcuaXNBcHBlbmRhYmxlIiwiRmlsZUZsYWcuaXNTeW5jaHJvbm91cyIsIkZpbGVGbGFnLmlzRXhjbHVzaXZlIiwiRmlsZUZsYWcucGF0aEV4aXN0c0FjdGlvbiIsIkZpbGVGbGFnLnBhdGhOb3RFeGlzdHNBY3Rpb24iXSwibWFwcGluZ3MiOiJBQUFBLElBQU8sU0FBUyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBSzFDLFdBQVksVUFBVTtJQUVwQkEseUNBQU9BLENBQUFBO0lBRVBBLGlFQUFtQkEsQ0FBQUE7SUFFbkJBLDZEQUFpQkEsQ0FBQUE7SUFFakJBLHlEQUFlQSxDQUFBQTtBQUNqQkEsQ0FBQ0EsRUFUVyxrQkFBVSxLQUFWLGtCQUFVLFFBU3JCO0FBVEQsSUFBWSxVQUFVLEdBQVYsa0JBU1gsQ0FBQTtBQXFCRDtJQTBCRUMsa0JBQVlBLE9BQWVBO1FBQ3pCQyxJQUFJQSxDQUFDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQTtRQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDaERBLE1BQU1BLElBQUlBLFNBQVNBLENBQUNBLFFBQVFBLENBQUNBLFNBQVNBLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLEVBQUVBLGdCQUFnQkEsR0FBR0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7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RUFBRUEsSUFBSUEsSUFBSUEsQ0FBQ0EsWUFBWUEsRUFBRUEsQ0FBQ0EsSUFBSUEsSUFBSUEsQ0FBQ0EsT0FBT0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDekVBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBLFdBQVdBLENBQUNBO1FBQ2hDQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNOQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxlQUFlQSxDQUFDQTtRQUNwQ0EsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUF6R2NYLGtCQUFTQSxHQUFpQ0EsRUFBRUEsQ0FBQ0E7SUFFN0NBLHNCQUFhQSxHQUFHQSxDQUFDQSxHQUFHQSxFQUFFQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxLQUFLQSxFQUFFQSxHQUFHQSxFQUFFQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxLQUFLQSxFQUFFQSxHQUFHQSxFQUFFQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtJQXdHMUdBLGVBQUNBO0FBQURBLENBQUNBLEFBNUdELElBNEdDO0FBNUdZLGdCQUFRLFdBNEdwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFwaV9lcnJvciA9IHJlcXVpcmUoJy4vYXBpX2Vycm9yJyk7XG5cbi8qKlxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgY29kZSBzaG91bGQgbm90IGRvIGFueXRoaW5nLlxuICBOT1AgPSAwLFxuICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgY29kZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLlxuICBUSFJPV19FWENFUFRJT04gPSAxLFxuICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgY29kZSBzaG91bGQgdHJ1bmNhdGUgdGhlIGZpbGUsIGJ1dCBvbmx5IGlmIGl0IGlzIGEgZmlsZS5cbiAgVFJVTkNBVEVfRklMRSA9IDIsXG4gIC8vIEluZGljYXRlcyB0aGF0IHRoZSBjb2RlIHNob3VsZCBjcmVhdGUgdGhlIGZpbGUuXG4gIENSRUFURV9GSUxFID0gM1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgb25lIG9mIHRoZSBmb2xsb3dpbmcgZmlsZSBmbGFncy4gQSBjb252ZW5pZW5jZSBvYmplY3QuXG4gKlxuICogKiBgJ3InYCAtIE9wZW4gZmlsZSBmb3IgcmVhZGluZy4gQW4gZXhjZXB0aW9uIG9jY3VycyBpZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdC5cbiAqICogYCdyKydgIC0gT3BlbiBmaWxlIGZvciByZWFkaW5nIGFuZCB3cml0aW5nLiBBbiBleGNlcHRpb24gb2NjdXJzIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICogKiBgJ3JzJ2AgLSBPcGVuIGZpbGUgZm9yIHJlYWRpbmcgaW4gc3luY2hyb25vdXMgbW9kZS4gSW5zdHJ1Y3RzIHRoZSBmaWxlc3lzdGVtIHRvIG5vdCBjYWNoZSB3cml0ZXMuXG4gKiAqIGAncnMrJ2AgLSBPcGVuIGZpbGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcsIGFuZCBvcGVucyB0aGUgZmlsZSBpbiBzeW5jaHJvbm91cyBtb2RlLlxuICogKiBgJ3cnYCAtIE9wZW4gZmlsZSBmb3Igd3JpdGluZy4gVGhlIGZpbGUgaXMgY3JlYXRlZCAoaWYgaXQgZG9lcyBub3QgZXhpc3QpIG9yIHRydW5jYXRlZCAoaWYgaXQgZXhpc3RzKS5cbiAqICogYCd3eCdgIC0gTGlrZSAndycgYnV0IG9wZW5zIHRoZSBmaWxlIGluIGV4Y2x1c2l2ZSBtb2RlLlxuICogKiBgJ3crJ2AgLSBPcGVuIGZpbGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcuIFRoZSBmaWxlIGlzIGNyZWF0ZWQgKGlmIGl0IGRvZXMgbm90IGV4aXN0KSBvciB0cnVuY2F0ZWQgKGlmIGl0IGV4aXN0cykuXG4gKiAqIGAnd3grJ2AgLSBMaWtlICd3KycgYnV0IG9wZW5zIHRoZSBmaWxlIGluIGV4Y2x1c2l2ZSBtb2RlLlxuICogKiBgJ2EnYCAtIE9wZW4gZmlsZSBmb3IgYXBwZW5kaW5nLiBUaGUgZmlsZSBpcyBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICogKiBgJ2F4J2AgLSBMaWtlICdhJyBidXQgb3BlbnMgdGhlIGZpbGUgaW4gZXhjbHVzaXZlIG1vZGUuXG4gKiAqIGAnYSsnYCAtIE9wZW4gZmlsZSBmb3IgcmVhZGluZyBhbmQgYXBwZW5kaW5nLiBUaGUgZmlsZSBpcyBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICogKiBgJ2F4KydgIC0gTGlrZSAnYSsnIGJ1dCBvcGVucyB0aGUgZmlsZSBpbiBleGNsdXNpdmUgbW9kZS5cbiAqXG4gKiBFeGNsdXNpdmUgbW9kZSBlbnN1cmVzIHRoYXQgdGhlIGZpbGUgcGF0aCBpcyBuZXdseSBjcmVhdGVkLlxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlRmxhZyB7XG4gIC8vIENvbnRhaW5zIGNhY2hlZCBGaWxlTW9kZSBpbnN0YW5jZXMuXG4gIHByaXZhdGUgc3RhdGljIGZsYWdDYWNoZTogeyBbbW9kZTogc3RyaW5nXTogRmlsZUZsYWcgfSA9IHt9O1xuICAvLyBBcnJheSBvZiB2YWxpZCBtb2RlIHN0cmluZ3MuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkRmxhZ1N0cnMgPSBbJ3InLCAncisnLCAncnMnLCAncnMrJywgJ3cnLCAnd3gnLCAndysnLCAnd3grJywgJ2EnLCAnYXgnLCAnYSsnLCAnYXgrJ107XG5cbiAgLyoqXG4gICAqIEdldCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiBmaWxlIG1vZGUuXG4gICAqIEBwYXJhbSBbU3RyaW5nXSBtb2RlU3RyIFRoZSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBtb2RlXG4gICAqIEByZXR1cm4gW0Jyb3dzZXJGUy5GaWxlTW9kZV0gVGhlIEZpbGVNb2RlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG1vZGVcbiAgICogQHRocm93IFtCcm93c2VyRlMuQXBpRXJyb3JdIHdoZW4gdGhlIG1vZGUgc3RyaW5nIGlzIGludmFsaWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RmlsZUZsYWcoZmxhZ1N0cjogc3RyaW5nKTogRmlsZUZsYWcge1xuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0LlxuICAgIGlmIChGaWxlRmxhZy5mbGFnQ2FjaGUuaGFzT3duUHJvcGVydHkoZmxhZ1N0cikpIHtcbiAgICAgIHJldHVybiBGaWxlRmxhZy5mbGFnQ2FjaGVbZmxhZ1N0cl07XG4gICAgfVxuICAgIHJldHVybiBGaWxlRmxhZy5mbGFnQ2FjaGVbZmxhZ1N0cl0gPSBuZXcgRmlsZUZsYWcoZmxhZ1N0cik7XG4gIH1cblxuICBwcml2YXRlIGZsYWdTdHI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoaXMgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBkaXJlY3RseS5cbiAgICogQHBhcmFtIFtTdHJpbmddIG1vZGVTdHIgVGhlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIG1vZGVcbiAgICogQHRocm93IFtCcm93c2VyRlMuQXBpRXJyb3JdIHdoZW4gdGhlIG1vZGUgc3RyaW5nIGlzIGludmFsaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGZsYWdTdHI6IHN0cmluZykge1xuICAgIHRoaXMuZmxhZ1N0ciA9IGZsYWdTdHI7XG4gICAgaWYgKEZpbGVGbGFnLnZhbGlkRmxhZ1N0cnMuaW5kZXhPZihmbGFnU3RyKSA8IDApIHtcbiAgICAgIHRocm93IG5ldyBhcGlfZXJyb3IuQXBpRXJyb3IoYXBpX2Vycm9yLkVycm9yQ29kZS5FSU5WQUwsIFwiSW52YWxpZCBmbGFnOiBcIiArIGZsYWdTdHIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVuZGVybHlpbmcgZmxhZyBzdHJpbmcgZm9yIHRoaXMgZmxhZy5cbiAgICovXG4gIHB1YmxpYyBnZXRGbGFnU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ1N0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGZpbGUgaXMgcmVhZGFibGUuXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dXG4gICAqL1xuICBwdWJsaWMgaXNSZWFkYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mbGFnU3RyLmluZGV4T2YoJ3InKSAhPT0gLTEgfHwgdGhpcy5mbGFnU3RyLmluZGV4T2YoJysnKSAhPT0gLTE7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZmlsZSBpcyB3cml0ZWFibGUuXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dXG4gICAqL1xuICBwdWJsaWMgaXNXcml0ZWFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ1N0ci5pbmRleE9mKCd3JykgIT09IC0xIHx8IHRoaXMuZmxhZ1N0ci5pbmRleE9mKCdhJykgIT09IC0xIHx8IHRoaXMuZmxhZ1N0ci5pbmRleE9mKCcrJykgIT09IC0xO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGZpbGUgbW9kZSBzaG91bGQgdHJ1bmNhdGUuXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dXG4gICAqL1xuICBwdWJsaWMgaXNUcnVuY2F0aW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZsYWdTdHIuaW5kZXhPZigndycpICE9PSAtMTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBmaWxlIGlzIGFwcGVuZGFibGUuXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dXG4gICAqL1xuICBwdWJsaWMgaXNBcHBlbmRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZsYWdTdHIuaW5kZXhPZignYScpICE9PSAtMTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBmaWxlIGlzIG9wZW4gaW4gc3luY2hyb25vdXMgbW9kZS5cbiAgICogQHJldHVybiBbQm9vbGVhbl1cbiAgICovXG4gIHB1YmxpYyBpc1N5bmNocm9ub3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZsYWdTdHIuaW5kZXhPZigncycpICE9PSAtMTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBmaWxlIGlzIG9wZW4gaW4gZXhjbHVzaXZlIG1vZGUuXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dXG4gICAqL1xuICBwdWJsaWMgaXNFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ1N0ci5pbmRleE9mKCd4JykgIT09IC0xO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIG9uZSBvZiB0aGUgc3RhdGljIGZpZWxkcyBvbiB0aGlzIG9iamVjdCB0aGF0IGluZGljYXRlcyB0aGVcbiAgICogYXBwcm9wcmlhdGUgcmVzcG9uc2UgdG8gdGhlIHBhdGggZXhpc3RpbmcuXG4gICAqIEByZXR1cm4gW051bWJlcl1cbiAgICovXG4gIHB1YmxpYyBwYXRoRXhpc3RzQWN0aW9uKCk6IEFjdGlvblR5cGUge1xuICAgIGlmICh0aGlzLmlzRXhjbHVzaXZlKCkpIHtcbiAgICAgIHJldHVybiBBY3Rpb25UeXBlLlRIUk9XX0VYQ0VQVElPTjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNUcnVuY2F0aW5nKCkpIHtcbiAgICAgIHJldHVybiBBY3Rpb25UeXBlLlRSVU5DQVRFX0ZJTEU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBBY3Rpb25UeXBlLk5PUDtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgb25lIG9mIHRoZSBzdGF0aWMgZmllbGRzIG9uIHRoaXMgb2JqZWN0IHRoYXQgaW5kaWNhdGVzIHRoZVxuICAgKiBhcHByb3ByaWF0ZSByZXNwb25zZSB0byB0aGUgcGF0aCBub3QgZXhpc3RpbmcuXG4gICAqIEByZXR1cm4gW051bWJlcl1cbiAgICovXG4gIHB1YmxpYyBwYXRoTm90RXhpc3RzQWN0aW9uKCk6IEFjdGlvblR5cGUge1xuICAgIGlmICgodGhpcy5pc1dyaXRlYWJsZSgpIHx8IHRoaXMuaXNBcHBlbmRhYmxlKCkpICYmIHRoaXMuZmxhZ1N0ciAhPT0gJ3IrJykge1xuICAgICAgcmV0dXJuIEFjdGlvblR5cGUuQ1JFQVRFX0ZJTEU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBBY3Rpb25UeXBlLlRIUk9XX0VYQ0VQVElPTjtcbiAgICB9XG4gIH1cbn1cbiJdfQ== |
@@ -38,2 +38,2 @@ var api_error_1 = require('./api_error'); | ||
exports.BaseFile = BaseFile; | ||
//# sourceMappingURL=file.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2ZpbGUudHMiXSwibmFtZXMiOlsiQmFzZUZpbGUiLCJCYXNlRmlsZS5jb25zdHJ1Y3RvciIsIkJhc2VGaWxlLnN5bmMiLCJCYXNlRmlsZS5zeW5jU3luYyIsIkJhc2VGaWxlLmRhdGFzeW5jIiwiQmFzZUZpbGUuZGF0YXN5bmNTeW5jIiwiQmFzZUZpbGUuY2hvd24iLCJCYXNlRmlsZS5jaG93blN5bmMiLCJCYXNlRmlsZS5jaG1vZCIsIkJhc2VGaWxlLmNobW9kU3luYyIsIkJhc2VGaWxlLnV0aW1lcyIsIkJhc2VGaWxlLnV0aW1lc1N5bmMiXSwibWFwcGluZ3MiOiJBQUFBLDBCQUFrQyxhQUFhLENBQUMsQ0FBQTtBQWlLaEQ7SUFBQUE7SUErQkFDLENBQUNBO0lBOUJRRCx1QkFBSUEsR0FBWEEsVUFBWUEsRUFBWUE7UUFDdEJFLEVBQUVBLENBQUNBLElBQUlBLG9CQUFRQSxDQUFDQSxxQkFBU0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDdENBLENBQUNBO0lBQ01GLDJCQUFRQSxHQUFmQTtRQUNFRyxNQUFNQSxJQUFJQSxvQkFBUUEsQ0FBQ0EscUJBQVNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO0lBQ3hDQSxDQUFDQTtJQUNNSCwyQkFBUUEsR0FBZkEsVUFBZ0JBLEVBQVlBO1FBQzFCSSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFDTUosK0JBQVlBLEdBQW5CQTtRQUNFSyxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQTtJQUN6QkEsQ0FBQ0E7SUFDTUwsd0JBQUtBLEdBQVpBLFVBQWFBLEdBQVdBLEVBQUVBLEdBQVdBLEVBQUVBLEVBQVlBO1FBQ2pETSxFQUFFQSxDQUFDQSxJQUFJQSxvQkFBUUEsQ0FBQ0EscUJBQVNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO0lBQ3RDQSxDQUFDQTtJQUNNTiw0QkFBU0EsR0FBaEJBLFVBQWlCQSxHQUFXQSxFQUFFQSxHQUFXQTtRQUN2Q08sTUFBTUEsSUFBSUEsb0JBQVFBLENBQUNBLHFCQUFTQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUN4Q0EsQ0FBQ0E7SUFDTVAsd0JBQUtBLEdBQVpBLFVBQWFBLElBQVlBLEVBQUVBLEVBQVlBO1FBQ3JDUSxFQUFFQSxDQUFDQSxJQUFJQSxvQkFBUUEsQ0FBQ0EscUJBQVNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO0lBQ3RDQSxDQUFDQTtJQUNNUiw0QkFBU0EsR0FBaEJBLFVBQWlCQSxJQUFZQTtRQUMzQlMsTUFBTUEsSUFBSUEsb0JBQVFBLENBQUNBLHFCQUFTQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUN4Q0EsQ0FBQ0E7SUFDTVQseUJBQU1BLEdBQWJBLFVBQWNBLEtBQWFBLEVBQUVBLEtBQWFBLEVBQUVBLEVBQVlBO1FBQ3REVSxFQUFFQSxDQUFDQSxJQUFJQSxvQkFBUUEsQ0FBQ0EscUJBQVNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO0lBQ3RDQSxDQUFDQTtJQUNNViw2QkFBVUEsR0FBakJBLFVBQWtCQSxLQUFhQSxFQUFFQSxLQUFhQTtRQUM1Q1csTUFBTUEsSUFBSUEsb0JBQVFBLENBQUNBLHFCQUFTQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUN4Q0EsQ0FBQ0E7SUFDSFgsZUFBQ0E7QUFBREEsQ0FBQ0EsQUEvQkQsSUErQkM7QUEvQlksZ0JBQVEsV0ErQnBCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FwaUVycm9yLCBFcnJvckNvZGV9IGZyb20gJy4vYXBpX2Vycm9yJztcbmltcG9ydCBzdGF0cyA9IHJlcXVpcmUoJy4vbm9kZV9mc19zdGF0cycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGUge1xuICAvKipcbiAgICogKipDb3JlKio6IEdldCB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uLlxuICAgKiBAcmV0dXJuIFtOdW1iZXJdXG4gICAqL1xuICBnZXRQb3MoKTogbnVtYmVyO1xuICAvKipcbiAgICogKipDb3JlKio6IEFzeW5jaHJvbm91cyBgc3RhdGAuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBCcm93c2VyRlMubm9kZS5mcy5TdGF0cyldIGNiXG4gICAqL1xuICBzdGF0KGNiOiAoZXJyOiBBcGlFcnJvciwgc3RhdHM/OiBzdGF0cy5TdGF0cykgPT4gYW55KTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBTeW5jaHJvbm91cyBgc3RhdGAuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBCcm93c2VyRlMubm9kZS5mcy5TdGF0cyldIGNiXG4gICAqL1xuICBzdGF0U3luYygpOiBzdGF0cy5TdGF0cztcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBBc3luY2hyb25vdXMgY2xvc2UuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIGNsb3NlKGNiOiBGdW5jdGlvbik6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogU3luY2hyb25vdXMgY2xvc2UuXG4gICAqL1xuICBjbG9zZVN5bmMoKTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBBc3luY2hyb25vdXMgdHJ1bmNhdGUuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBsZW5cbiAgICogQHBhcmFtIFtGdW5jdGlvbihCcm93c2VyRlMuQXBpRXJyb3IpXSBjYlxuICAgKi9cbiAgdHJ1bmNhdGUobGVuOiBudW1iZXIsIGNiOiBGdW5jdGlvbik6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogU3luY2hyb25vdXMgdHJ1bmNhdGUuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBsZW5cbiAgICovXG4gIHRydW5jYXRlU3luYyhsZW46IG51bWJlcik6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogQXN5bmNocm9ub3VzIHN5bmMuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHN5bmMoY2I6IEZ1bmN0aW9uKTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBTeW5jaHJvbm91cyBzeW5jLlxuICAgKi9cbiAgc3luY1N5bmMoKTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBXcml0ZSBidWZmZXIgdG8gdGhlIGZpbGUuXG4gICAqIE5vdGUgdGhhdCBpdCBpcyB1bnNhZmUgdG8gdXNlIGZzLndyaXRlIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIGZpbGVcbiAgICogd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY2FsbGJhY2suXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLm5vZGUuQnVmZmVyXSBidWZmZXIgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gd3JpdGUgdG9cbiAgICogIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gb2Zmc2V0IE9mZnNldCBpbiB0aGUgYnVmZmVyIHRvIHN0YXJ0IHJlYWRpbmcgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gW051bWJlcl0gbGVuZ3RoIFRoZSBhbW91bnQgb2YgYnl0ZXMgdG8gd3JpdGUgdG8gdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBwb3NpdGlvbiBPZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlIHdoZXJlIHRoaXNcbiAgICogICBkYXRhIHNob3VsZCBiZSB3cml0dGVuLiBJZiBwb3NpdGlvbiBpcyBudWxsLCB0aGUgZGF0YSB3aWxsIGJlIHdyaXR0ZW4gYXRcbiAgICogICB0aGUgY3VycmVudCBwb3NpdGlvbi5cbiAgICogQHBhcmFtIFtGdW5jdGlvbihCcm93c2VyRlMuQXBpRXJyb3IsIE51bWJlciwgQnJvd3NlckZTLm5vZGUuQnVmZmVyKV1cbiAgICogICBjYiBUaGUgbnVtYmVyIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gaW50byB0aGUgZmlsZS5cbiAgICovXG4gIHdyaXRlKGJ1ZmZlcjogTm9kZUJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyLCBjYjogKGVycjogQXBpRXJyb3IsIHdyaXR0ZW4/OiBudW1iZXIsIGJ1ZmZlcj86IE5vZGVCdWZmZXIpID0+IGFueSk6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogV3JpdGUgYnVmZmVyIHRvIHRoZSBmaWxlLlxuICAgKiBOb3RlIHRoYXQgaXQgaXMgdW5zYWZlIHRvIHVzZSBmcy53cml0ZVN5bmMgbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZmlsZVxuICAgKiB3aXRob3V0IHdhaXRpbmcgZm9yIGl0IHRvIHJldHVybi5cbiAgICogQHBhcmFtIFtCcm93c2VyRlMubm9kZS5CdWZmZXJdIGJ1ZmZlciBCdWZmZXIgY29udGFpbmluZyB0aGUgZGF0YSB0byB3cml0ZSB0b1xuICAgKiAgdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBvZmZzZXQgT2Zmc2V0IGluIHRoZSBidWZmZXIgdG8gc3RhcnQgcmVhZGluZyBkYXRhIGZyb20uXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBsZW5ndGggVGhlIGFtb3VudCBvZiBieXRlcyB0byB3cml0ZSB0byB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIHBvc2l0aW9uIE9mZnNldCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgd2hlcmUgdGhpc1xuICAgKiAgIGRhdGEgc2hvdWxkIGJlIHdyaXR0ZW4uIElmIHBvc2l0aW9uIGlzIG51bGwsIHRoZSBkYXRhIHdpbGwgYmUgd3JpdHRlbiBhdFxuICAgKiAgIHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuICAgKiBAcmV0dXJuIFtOdW1iZXJdXG4gICAqL1xuICB3cml0ZVN5bmMoYnVmZmVyOiBOb2RlQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIHBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXI7XG4gIC8qKlxuICAgKiAqKkNvcmUqKjogUmVhZCBkYXRhIGZyb20gdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLm5vZGUuQnVmZmVyXSBidWZmZXIgVGhlIGJ1ZmZlciB0aGF0IHRoZSBkYXRhIHdpbGwgYmVcbiAgICogICB3cml0dGVuIHRvLlxuICAgKiBAcGFyYW0gW051bWJlcl0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBidWZmZXIgd2hlcmUgd3JpdGluZyB3aWxsXG4gICAqICAgc3RhcnQuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBsZW5ndGggQW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIHBvc2l0aW9uIEFuIGludGVnZXIgc3BlY2lmeWluZyB3aGVyZSB0byBiZWdpbiByZWFkaW5nIGZyb21cbiAgICogICBpbiB0aGUgZmlsZS4gSWYgcG9zaXRpb24gaXMgbnVsbCwgZGF0YSB3aWxsIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBmaWxlXG4gICAqICAgcG9zaXRpb24uXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBOdW1iZXIsIEJyb3dzZXJGUy5ub2RlLkJ1ZmZlcildIGNiIFRoZVxuICAgKiAgIG51bWJlciBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWRcbiAgICovXG4gIHJlYWQoYnVmZmVyOiBOb2RlQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIHBvc2l0aW9uOiBudW1iZXIsIGNiOiAoZXJyOiBBcGlFcnJvciwgYnl0ZXNSZWFkPzogbnVtYmVyLCBidWZmZXI/OiBOb2RlQnVmZmVyKSA9PiB2b2lkKTogdm9pZDtcbiAgLyoqXG4gICAqICoqQ29yZSoqOiBSZWFkIGRhdGEgZnJvbSB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtCcm93c2VyRlMubm9kZS5CdWZmZXJdIGJ1ZmZlciBUaGUgYnVmZmVyIHRoYXQgdGhlIGRhdGEgd2lsbCBiZVxuICAgKiAgIHdyaXR0ZW4gdG8uXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBvZmZzZXQgVGhlIG9mZnNldCB3aXRoaW4gdGhlIGJ1ZmZlciB3aGVyZSB3cml0aW5nIHdpbGxcbiAgICogICBzdGFydC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIGxlbmd0aCBBbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBieXRlcyB0byByZWFkLlxuICAgKiBAcGFyYW0gW051bWJlcl0gcG9zaXRpb24gQW4gaW50ZWdlciBzcGVjaWZ5aW5nIHdoZXJlIHRvIGJlZ2luIHJlYWRpbmcgZnJvbVxuICAgKiAgIGluIHRoZSBmaWxlLiBJZiBwb3NpdGlvbiBpcyBudWxsLCBkYXRhIHdpbGwgYmUgcmVhZCBmcm9tIHRoZSBjdXJyZW50IGZpbGVcbiAgICogICBwb3NpdGlvbi5cbiAgICogQHJldHVybiBbTnVtYmVyXVxuICAgKi9cbiAgcmVhZFN5bmMoYnVmZmVyOiBOb2RlQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIHBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXI7XG4gIC8qKlxuICAgKiAqKlN1cHBsZW1lbnRhcnkqKjogQXN5bmNocm9ub3VzIGBkYXRhc3luY2AuXG4gICAqXG4gICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gbWFwcyB0byBgc3luY2AuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIGRhdGFzeW5jKGNiOiBGdW5jdGlvbik6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKlN1cHBsZW1lbnRhcnkqKjogU3luY2hyb25vdXMgYGRhdGFzeW5jYC5cbiAgICpcbiAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBtYXBzIHRvIGBzeW5jU3luY2AuXG4gICAqL1xuICBkYXRhc3luY1N5bmMoKTogdm9pZDtcbiAgLyoqXG4gICAqICoqT3B0aW9uYWwqKjogQXN5bmNocm9ub3VzIGBjaG93bmAuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSB1aWRcbiAgICogQHBhcmFtIFtOdW1iZXJdIGdpZFxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICBjaG93bih1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIsIGNiOiBGdW5jdGlvbik6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKk9wdGlvbmFsKio6IFN5bmNocm9ub3VzIGBjaG93bmAuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSB1aWRcbiAgICogQHBhcmFtIFtOdW1iZXJdIGdpZFxuICAgKi9cbiAgY2hvd25TeW5jKHVpZDogbnVtYmVyLCBnaWQ6IG51bWJlcik6IHZvaWQ7XG4gIC8qKlxuICAgKiAqKk9wdGlvbmFsKio6IEFzeW5jaHJvbm91cyBgZmNobW9kYC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG1vZGVcbiAgICogQHBhcmFtIFtGdW5jdGlvbihCcm93c2VyRlMuQXBpRXJyb3IpXSBjYlxuICAgKi9cbiAgY2htb2QobW9kZTogbnVtYmVyLCBjYjogRnVuY3Rpb24pOiB2b2lkO1xuICAvKipcbiAgICogKipPcHRpb25hbCoqOiBTeW5jaHJvbm91cyBgZmNobW9kYC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG1vZGVcbiAgICovXG4gIGNobW9kU3luYyhtb2RlOiBudW1iZXIpOiB2b2lkO1xuICAvKipcbiAgICogKipPcHRpb25hbCoqOiBDaGFuZ2UgdGhlIGZpbGUgdGltZXN0YW1wcyBvZiB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtEYXRlXSBhdGltZVxuICAgKiBAcGFyYW0gW0RhdGVdIG10aW1lXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHV0aW1lcyhhdGltZTogbnVtYmVyLCBtdGltZTogbnVtYmVyLCBjYjogRnVuY3Rpb24pOiB2b2lkO1xuICAvKipcbiAgICogKipPcHRpb25hbCoqOiBDaGFuZ2UgdGhlIGZpbGUgdGltZXN0YW1wcyBvZiB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtEYXRlXSBhdGltZVxuICAgKiBAcGFyYW0gW0RhdGVdIG10aW1lXG4gICAqL1xuICB1dGltZXNTeW5jKGF0aW1lOiBudW1iZXIsIG10aW1lOiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgdGhhdCBjb250YWlucyBzaGFyZWQgaW1wbGVtZW50YXRpb25zIG9mIGZ1bmN0aW9ucyBmb3IgdGhlIGZpbGVcbiAqIG9iamVjdC5cbiAqIEBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgQmFzZUZpbGUge1xuICBwdWJsaWMgc3luYyhjYjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBjYihuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApKTtcbiAgfVxuICBwdWJsaWMgc3luY1N5bmMoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FTk9UU1VQKTtcbiAgfVxuICBwdWJsaWMgZGF0YXN5bmMoY2I6IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jKGNiKTtcbiAgfVxuICBwdWJsaWMgZGF0YXN5bmNTeW5jKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnN5bmNTeW5jKCk7XG4gIH1cbiAgcHVibGljIGNob3duKHVpZDogbnVtYmVyLCBnaWQ6IG51bWJlciwgY2I6IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgY2IobmV3IEFwaUVycm9yKEVycm9yQ29kZS5FTk9UU1VQKSk7XG4gIH1cbiAgcHVibGljIGNob3duU3luYyh1aWQ6IG51bWJlciwgZ2lkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApO1xuICB9XG4gIHB1YmxpYyBjaG1vZChtb2RlOiBudW1iZXIsIGNiOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PVFNVUCkpO1xuICB9XG4gIHB1YmxpYyBjaG1vZFN5bmMobW9kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FTk9UU1VQKTtcbiAgfVxuICBwdWJsaWMgdXRpbWVzKGF0aW1lOiBudW1iZXIsIG10aW1lOiBudW1iZXIsIGNiOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PVFNVUCkpO1xuICB9XG4gIHB1YmxpYyB1dGltZXNTeW5jKGF0aW1lOiBudW1iZXIsIG10aW1lOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApO1xuICB9XG59XG4iXX0= |
@@ -12,2 +12,2 @@ var toExport; | ||
module.exports = toExport; | ||
//# sourceMappingURL=global.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvZ2xvYmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUksUUFBYSxDQUFDO0FBQ2xCLEVBQUUsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ25DLFFBQVEsR0FBRyxNQUFNLENBQUM7QUFDcEIsQ0FBQztBQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN4QyxRQUFRLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLENBQUM7QUFBQyxJQUFJLENBQUMsQ0FBQztJQUNOLFFBQVEsR0FBRyxNQUFNLENBQUM7QUFDcEIsQ0FBQztBQUNELGlCQUFTLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3J0cyB0aGUgZ2xvYmFsIHNjb3BlIHZhcmlhYmxlLlxuICogSW4gdGhlIG1haW4gYnJvd3NlciB0aHJlYWQsIHRoaXMgaXMgXCJ3aW5kb3dcIi5cbiAqIEluIGEgV2ViV29ya2VyLCB0aGlzIGlzIFwic2VsZlwiLlxuICogSW4gTm9kZSwgdGhpcyBpcyBcImdsb2JhbFwiLlxuICovXG5kZWNsYXJlIHZhciBnbG9iYWw6IGFueTtcbnZhciB0b0V4cG9ydDogYW55O1xuaWYgKHR5cGVvZih3aW5kb3cpICE9PSAndW5kZWZpbmVkJykge1xuICB0b0V4cG9ydCA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mKHNlbGYpICE9PSAndW5kZWZpbmVkJykge1xuICB0b0V4cG9ydCA9IHNlbGY7XG59IGVsc2Uge1xuICB0b0V4cG9ydCA9IGdsb2JhbDtcbn1cbmV4cG9ydCA9IHRvRXhwb3J0OyJdfQ== |
import fs = require('fs'); | ||
import { Buffer } from './buffer'; | ||
export declare enum FileType { | ||
@@ -4,0 +3,0 @@ FILE = 32768, |
@@ -1,2 +0,1 @@ | ||
var buffer_1 = require('./buffer'); | ||
(function (FileType) { | ||
@@ -43,3 +42,3 @@ FileType[FileType["FILE"] = 32768] = "FILE"; | ||
Stats.prototype.toBuffer = function () { | ||
var buffer = new buffer_1.Buffer(32); | ||
var buffer = new Buffer(32); | ||
buffer.writeUInt32LE(this.size, 0); | ||
@@ -86,2 +85,2 @@ buffer.writeUInt32LE(this.mode, 4); | ||
exports.Stats = Stats; | ||
//# sourceMappingURL=node_fs_stats.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9mc19zdGF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL25vZGVfZnNfc3RhdHMudHMiXSwibmFtZXMiOlsiRmlsZVR5cGUiLCJTdGF0cyIsIlN0YXRzLmNvbnN0cnVjdG9yIiwiU3RhdHMudG9CdWZmZXIiLCJTdGF0cy5mcm9tQnVmZmVyIiwiU3RhdHMuY2xvbmUiLCJTdGF0cy5pc0ZpbGUiLCJTdGF0cy5pc0RpcmVjdG9yeSIsIlN0YXRzLmlzU3ltYm9saWNMaW5rIiwiU3RhdHMuY2htb2QiLCJTdGF0cy5pc1NvY2tldCIsIlN0YXRzLmlzQmxvY2tEZXZpY2UiLCJTdGF0cy5pc0NoYXJhY3RlckRldmljZSIsIlN0YXRzLmlzRklGTyJdLCJtYXBwaW5ncyI6IkFBTUEsV0FBWSxRQUFRO0lBQ2xCQSwyQ0FBYUEsQ0FBQUE7SUFDYkEscURBQWtCQSxDQUFBQTtJQUNsQkEsaURBQWdCQSxDQUFBQTtBQUNsQkEsQ0FBQ0EsRUFKVyxnQkFBUSxLQUFSLGdCQUFRLFFBSW5CO0FBSkQsSUFBWSxRQUFRLEdBQVIsZ0JBSVgsQ0FBQTtBQVVEO0lBcUNFQyxlQUNFQSxTQUFtQkEsRUFDWkEsSUFBWUEsRUFDWkEsSUFBYUEsRUFDYkEsS0FBd0JBLEVBQ3hCQSxLQUF3QkEsRUFDeEJBLEtBQXdCQTtRQUYvQkMscUJBQStCQSxHQUEvQkEsWUFBeUJBLElBQUlBLEVBQUVBO1FBQy9CQSxxQkFBK0JBLEdBQS9CQSxZQUF5QkEsSUFBSUEsRUFBRUE7UUFDL0JBLHFCQUErQkEsR0FBL0JBLFlBQXlCQSxJQUFJQSxFQUFFQTtRQUp4QkEsU0FBSUEsR0FBSkEsSUFBSUEsQ0FBUUE7UUFDWkEsU0FBSUEsR0FBSkEsSUFBSUEsQ0FBU0E7UUFDYkEsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBbUJBO1FBQ3hCQSxVQUFLQSxHQUFMQSxLQUFLQSxDQUFtQkE7UUFDeEJBLFVBQUtBLEdBQUxBLEtBQUtBLENBQW1CQTtRQW5DMUJBLFFBQUdBLEdB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LE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO0lBQ2ZBLENBQUNBO0lBRU1ULDZCQUFhQSxHQUFwQkE7UUFDRVUsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDZkEsQ0FBQ0E7SUFFTVYsaUNBQWlCQSxHQUF4QkE7UUFDRVcsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDZkEsQ0FBQ0E7SUFFTVgsc0JBQU1BLEdBQWJBO1FBQ0VZLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO0lBQ2ZBLENBQUNBO0lBQ0haLFlBQUNBO0FBQURBLENBQUNBLEFBeklELElBeUlDO0FBeklZLGFBQUssUUF5SWpCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgPSByZXF1aXJlKCdmcycpO1xuaW1wb3J0IGZpbGUgPSByZXF1aXJlKCcuL2ZpbGUnKTtcblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlIGdpdmVuIGZpbGUuIEFwcGxpZWQgdG8gJ21vZGUnLlxuICovXG5leHBvcnQgZW51bSBGaWxlVHlwZSB7XG4gIEZJTEUgPSAweDgwMDAsXG4gIERJUkVDVE9SWSA9IDB4NDAwMCxcbiAgU1lNTElOSyA9IDB4QTAwMFxufVxuXG4vKipcbiAqIEVtdWxhdGlvbiBvZiBOb2RlJ3MgYGZzLlN0YXRzYCBvYmplY3QuXG4gKlxuICogQXR0cmlidXRlIGRlc2NyaXB0aW9ucyBhcmUgZnJvbSBgbWFuIDIgc3RhdCdcbiAqIEBzZWUgaHR0cDovL25vZGVqcy5vcmcvYXBpL2ZzLmh0bWwjZnNfY2xhc3NfZnNfc3RhdHNcbiAqIEBzZWUgaHR0cDovL21hbjcub3JnL2xpbnV4L21hbi1wYWdlcy9tYW4yL3N0YXQuMi5odG1sXG4gKiBAY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YXRzIGltcGxlbWVudHMgZnMuU3RhdHMge1xuICBwdWJsaWMgYmxvY2tzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBVTlNVUFBPUlRFRCBBVFRSSUJVVEVTXG4gICAqIEkgYXNzdW1lIG5vIG9uZSBpcyBnb2luZyB0byBuZWVkIHRoZXNlIGRldGFpbHMsIGFsdGhvdWdoIHdlIGNvdWxkIGZha2VcbiAgICogYXBwcm9wcmlhdGUgdmFsdWVzIGlmIG5lZWQgYmUuXG4gICAqL1xuICAvLyBJRCBvZiBkZXZpY2UgY29udGFpbmluZyBmaWxlXG4gIHB1YmxpYyBkZXY6IG51bWJlciA9IDA7XG4gIC8vIGlub2RlIG51bWJlclxuICBwdWJsaWMgaW5vOiBudW1iZXIgPSAwO1xuICAvLyBkZXZpY2UgSUQgKGlmIHNwZWNpYWwgZmlsZSlcbiAgcHVibGljIHJkZXY6IG51bWJlciA9IDA7XG4gIC8vIG51bWJlciBvZiBoYXJkIGxpbmtzXG4gIHB1YmxpYyBubGluazogbnVtYmVyID0gMTtcbiAgLy8gYmxvY2tzaXplIGZvciBmaWxlIHN5c3RlbSBJL09cbiAgcHVibGljIGJsa3NpemU6IG51bWJlciA9IDQwOTY7XG4gIC8vIEB0b2RvIE1heWJlIHN1cHBvcnQgdGhlc2U/IGF0bSwgaXQncyBhIG9uZS11c2VyIGZpbGVzeXN0ZW0uXG4gIC8vIHVzZXIgSUQgb2Ygb3duZXJcbiAgcHVibGljIHVpZDogbnVtYmVyID0gMDtcbiAgLy8gZ3JvdXAgSUQgb2Ygb3duZXJcbiAgcHVibGljIGdpZDogbnVtYmVyID0gMDtcbiAgLy8gdGltZSBmaWxlIHdhcyBjcmVhdGVkIChjdXJyZW50bHkgdW5zdXBwb3J0ZWQpXG4gIHB1YmxpYyBiaXJ0aHRpbWU6IERhdGUgPSBuZXcgRGF0ZSgwKTtcbiAgLy8gWFhYOiBTb21lIGZpbGUgc3lzdGVtcyBzdGFzaCBkYXRhIG9uIHN0YXRzIG9iamVjdHMuXG4gIHB1YmxpYyBmaWxlX2RhdGE6IE5vZGVCdWZmZXIgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnRpY3VsYXIgZW50cnkgaW4gdGhlIGZpbGUgc3lzdGVtLlxuICAgKiBAcGFyYW0gW051bWJlcl0gaXRlbV90eXBlIHR5cGUgb2YgdGhlIGl0ZW0gKEZJTEUsIERJUkVDVE9SWSwgU1lNTElOSywgb3IgU09DS0VUKVxuICAgKiBAcGFyYW0gW051bWJlcl0gc2l6ZSBTaXplIG9mIHRoZSBpdGVtIGluIGJ5dGVzLiBGb3IgZGlyZWN0b3JpZXMvc3ltbGlua3MsXG4gICAqICAgdGhpcyBpcyBub3JtYWxseSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgaXRlbS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG1vZGUgVW5peC1zdHlsZSBmaWxlIG1vZGUgKGUuZy4gMG82NDQpXG4gICAqIEBwYXJhbSBbRGF0ZT9dIGF0aW1lIHRpbWUgb2YgbGFzdCBhY2Nlc3NcbiAgICogQHBhcmFtIFtEYXRlP10gbXRpbWUgdGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvblxuICAgKiBAcGFyYW0gW0RhdGU/XSBjdGltZSB0aW1lIG9mIGNyZWF0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBpdGVtX3R5cGU6IEZpbGVUeXBlLFxuICAgIHB1YmxpYyBzaXplOiBudW1iZXIsXG4gICAgcHVibGljIG1vZGU/OiBudW1iZXIsXG4gICAgcHVibGljIGF0aW1lOiBEYXRlID0gbmV3IERhdGUoKSxcbiAgICBwdWJsaWMgbXRpbWU6IERhdGUgPSBuZXcgRGF0ZSgpLFxuICAgIHB1YmxpYyBjdGltZTogRGF0ZSA9IG5ldyBEYXRlKCkpIHtcbiAgICBpZiAodGhpcy5tb2RlID09IG51bGwpIHtcbiAgICAgIHN3aXRjaChpdGVtX3R5cGUpIHtcbiAgICAgICAgY2FzZSBGaWxlVHlwZS5GSUxFOlxuICAgICAgICAgIHRoaXMubW9kZSA9IDB4MWE0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEZpbGVUeXBlLkRJUkVDVE9SWTpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aGlzLm1vZGUgPSAweDFmZjtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gbnVtYmVyIG9mIDUxMkIgYmxvY2tzIGFsbG9jYXRlZFxuICAgIHRoaXMuYmxvY2tzID0gTWF0aC5jZWlsKHNpemUgLyA1MTIpO1xuICAgIC8vIENoZWNrIGlmIG1vZGUgYWxzbyBpbmNsdWRlcyB0b3AtbW9zdCBiaXRzLCB3aGljaCBpbmRpY2F0ZSB0aGUgZmlsZSdzXG4gICAgLy8gdHlwZS5cbiAgICBpZiAodGhpcy5tb2RlIDwgMHgxMDAwKSB7XG4gICAgICB0aGlzLm1vZGUgfD0gaXRlbV90eXBlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b0J1ZmZlcigpOiBCdWZmZXIge1xuICAgIHZhciBidWZmZXIgPSBuZXcgQnVmZmVyKDMyKTtcbiAgICBidWZmZXIud3JpdGVVSW50MzJMRSh0aGlzLnNpemUsIDApO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKHRoaXMubW9kZSwgNCk7XG4gICAgYnVmZmVyLndyaXRlRG91YmxlTEUodGhpcy5hdGltZS5nZXRUaW1lKCksIDgpO1xuICAgIGJ1ZmZlci53cml0ZURvdWJsZUxFKHRoaXMubXRpbWUuZ2V0VGltZSgpLCAxNik7XG4gICAgYnVmZmVyLndyaXRlRG91YmxlTEUodGhpcy5jdGltZS5nZXRUaW1lKCksIDI0KTtcbiAgICByZXR1cm4gYnVmZmVyO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVmZmVyKGJ1ZmZlcjogQnVmZmVyKTogU3RhdHMge1xuICAgIHZhciBzaXplID0gYnVmZmVyLnJlYWRVSW50MzJMRSgwKSxcbiAgICAgIG1vZGUgPSBidWZmZXIucmVhZFVJbnQzMkxFKDQpLFxuICAgICAgYXRpbWUgPSBidWZmZXIucmVhZERvdWJsZUxFKDgpLFxuICAgICAgbXRpbWUgPSBidWZmZXIucmVhZERvdWJsZUxFKDE2KSxcbiAgICAgIGN0aW1lID0gYnVmZmVyLnJlYWREb3VibGVMRSgyNCk7XG5cbiAgICByZXR1cm4gbmV3IFN0YXRzKG1vZGUgJiAweEYwMDAsIHNpemUsIG1vZGUgJiAweEZGRiwgbmV3IERhdGUoYXRpbWUpLCBuZXcgRGF0ZShtdGltZSksIG5ldyBEYXRlKGN0aW1lKSk7XG4gIH1cblxuICAvKipcbiAgICogKipOb25zdGFuZGFyZCoqOiBDbG9uZSB0aGUgc3RhdHMgb2JqZWN0LlxuICAgKiBAcmV0dXJuIFtCcm93c2VyRlMubm9kZS5mcy5TdGF0c11cbiAgICovXG4gIHB1YmxpYyBjbG9uZSgpOiBTdGF0cyB7XG4gICAgcmV0dXJuIG5ldyBTdGF0cyh0aGlzLm1vZGUgJiAweEYwMDAsIHRoaXMuc2l6ZSwgdGhpcy5tb2RlICYgMHhGRkYsIHRoaXMuYXRpbWUsIHRoaXMubXRpbWUsIHRoaXMuY3RpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIFRydWUgaWYgdGhpcyBpdGVtIGlzIGEgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBpc0ZpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLm1vZGUgJiAweEYwMDApID09PSBGaWxlVHlwZS5GSUxFO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIFRydWUgaWYgdGhpcyBpdGVtIGlzIGEgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIGlzRGlyZWN0b3J5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tb2RlICYgMHhGMDAwKSA9PT0gRmlsZVR5cGUuRElSRUNUT1JZO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIFRydWUgaWYgdGhpcyBpdGVtIGlzIGEgc3ltYm9saWMgbGluayAob25seSB2YWxpZCB0aHJvdWdoIGxzdGF0KVxuICAgKi9cbiAgcHVibGljIGlzU3ltYm9saWNMaW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tb2RlICYgMHhGMDAwKSA9PT0gRmlsZVR5cGUuU1lNTElOSztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIG1vZGUgb2YgdGhlIGZpbGUuIFdlIHVzZSB0aGlzIGhlbHBlciBmdW5jdGlvbiB0byBwcmV2ZW50IG1lc3NpbmdcbiAgICogdXAgdGhlIHR5cGUgb2YgdGhlIGZpbGUsIHdoaWNoIGlzIGVuY29kZWQgaW4gbW9kZS5cbiAgICovXG4gIHB1YmxpYyBjaG1vZChtb2RlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGUgPSAodGhpcy5tb2RlICYgMHhGMDAwKSB8IG1vZGU7XG4gIH1cblxuICAvLyBXZSBkb24ndCBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgdHlwZXMgb2YgZmlsZXMuXG5cbiAgcHVibGljIGlzU29ja2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0Jsb2NrRGV2aWNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoYXJhY3RlckRldmljZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNGSUZPKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19 |
export declare var isIE: boolean; | ||
export declare var isWebWorker: boolean; | ||
export declare function fromCharCodes(charCodes: number[]): string; | ||
export interface Arrayish<T> { | ||
[idx: number]: T; | ||
length: number; | ||
} | ||
export declare function buffer2ArrayBuffer(buff: Buffer): ArrayBuffer; | ||
export declare function buffer2Uint8array(buff: Buffer): Uint8Array; | ||
export declare function buffer2Arrayish(buff: Buffer): Arrayish<number>; | ||
export declare function arrayish2Buffer(arr: Arrayish<number>): Buffer; | ||
export declare function uint8Array2Buffer(u8: Uint8Array): Buffer; | ||
export declare function arrayBuffer2Buffer(ab: ArrayBuffer): Buffer; | ||
export declare function copyingSlice(buff: Buffer, start?: number, end?: number): Buffer; |
@@ -6,11 +6,119 @@ /** | ||
exports.isWebWorker = typeof window === "undefined"; | ||
var fromCharCode = String.fromCharCode; | ||
function fromCharCodes(charCodes) { | ||
var numChars = charCodes.length, numChunks = ((numChars - 1) >> 13) + 1, chunks = new Array(numChunks), i; | ||
for (i = 0; i < numChunks; i++) { | ||
chunks[i] = fromCharCode.apply(String, charCodes.slice(i * 0x2000, (i + 1) * 0x2000)); | ||
function buffer2ArrayBuffer(buff) { | ||
var u8 = buffer2Uint8array(buff), u8offset = u8.byteOffset, u8Len = u8.byteLength; | ||
if (u8offset === 0 && u8Len === u8.buffer.byteLength) { | ||
return u8.buffer; | ||
} | ||
return chunks.join(""); | ||
else { | ||
return u8.buffer.slice(u8offset, u8offset + u8Len); | ||
} | ||
} | ||
exports.fromCharCodes = fromCharCodes; | ||
//# sourceMappingURL=util.js.map | ||
exports.buffer2ArrayBuffer = buffer2ArrayBuffer; | ||
function buffer2Uint8array(buff) { | ||
if (buff['toUint8Array']) { | ||
return buff.toUint8Array(); | ||
} | ||
else if (buff instanceof Uint8Array) { | ||
return buff; | ||
} | ||
else { | ||
return new Uint8Array(buff); | ||
} | ||
} | ||
exports.buffer2Uint8array = buffer2Uint8array; | ||
function buffer2Arrayish(buff) { | ||
if (buff.length === 0 || typeof (buff[0]) === 'number') { | ||
return buff; | ||
} | ||
else if (typeof (ArrayBuffer) !== 'undefined') { | ||
return buffer2Uint8array(buff); | ||
} | ||
else { | ||
return buff.toJSON().data; | ||
} | ||
} | ||
exports.buffer2Arrayish = buffer2Arrayish; | ||
function arrayish2Buffer(arr) { | ||
if (arr instanceof Uint8Array) { | ||
return uint8Array2Buffer(arr); | ||
} | ||
else if (arr instanceof Buffer) { | ||
return arr; | ||
} | ||
else { | ||
return new Buffer(arr); | ||
} | ||
} | ||
exports.arrayish2Buffer = arrayish2Buffer; | ||
function uint8Array2Buffer(u8) { | ||
if (u8.byteOffset === 0 && u8.byteLength === u8.buffer.byteLength) { | ||
return arrayBuffer2Buffer(u8); | ||
} | ||
else { | ||
return new Buffer(u8); | ||
} | ||
} | ||
exports.uint8Array2Buffer = uint8Array2Buffer; | ||
function arrayBuffer2Buffer(ab) { | ||
try { | ||
return new Buffer(ab); | ||
} | ||
catch (e) { | ||
return new Buffer(new Uint8Array(ab)); | ||
} | ||
} | ||
exports.arrayBuffer2Buffer = arrayBuffer2Buffer; | ||
if (typeof (ArrayBuffer) !== 'undefined' && typeof (Uint8Array) !== 'undefined') { | ||
if (!Uint8Array.prototype['slice']) { | ||
Uint8Array.prototype.slice = function (start, end) { | ||
if (start === void 0) { start = 0; } | ||
if (end === void 0) { end = this.length; } | ||
var self = this; | ||
if (start < 0) { | ||
start = this.length + start; | ||
if (start < 0) { | ||
start = 0; | ||
} | ||
} | ||
if (end < 0) { | ||
end = this.length + end; | ||
if (end < 0) { | ||
end = 0; | ||
} | ||
} | ||
if (end < start) { | ||
end = start; | ||
} | ||
return new Uint8Array(self.buffer, self.byteOffset + start, end - start); | ||
}; | ||
} | ||
} | ||
function copyingSlice(buff, start, end) { | ||
if (start === void 0) { start = 0; } | ||
if (end === void 0) { end = buff.length; } | ||
if (start < 0 || end < 0 || end > buff.length || start > end) { | ||
throw new TypeError("Invalid slice bounds on buffer of length " + buff.length + ": [" + start + ", " + end + "]"); | ||
} | ||
if (buff.length === 0) { | ||
return new Buffer(0); | ||
} | ||
else if (typeof (ArrayBuffer) !== 'undefined') { | ||
var u8 = buffer2Uint8array(buff), s0 = buff.readUInt8(0), newS0 = (s0 + 1) % 0xFF; | ||
buff.writeUInt8(newS0, 0); | ||
if (u8[0] === newS0) { | ||
u8[0] = s0; | ||
return uint8Array2Buffer(u8.slice(start, end)); | ||
} | ||
else { | ||
buff.writeUInt8(s0, 0); | ||
return uint8Array2Buffer(u8.subarray(start, end)); | ||
} | ||
} | ||
else { | ||
var buffSlice = new Buffer(end - start); | ||
buff.copy(buffSlice, 0, start, end); | ||
return buffSlice; | ||
} | ||
} | ||
exports.copyingSlice = copyingSlice; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL3V0aWwudHMiXSwibmFtZXMiOlsiYnVmZmVyMkFycmF5QnVmZmVyIiwiYnVmZmVyMlVpbnQ4YXJyYXkiLCJidWZmZXIyQXJyYXlpc2giLCJhcnJheWlzaDJCdWZmZXIiLCJ1aW50OEFycmF5MkJ1ZmZlciIsImFycmF5QnVmZmVyMkJ1ZmZlciIsImNvcHlpbmdTbGljZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFNUSxZQUFJLEdBQVksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUt6SyxtQkFBVyxHQUFZLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQztBQVdoRSw0QkFBbUMsSUFBWTtJQUM3Q0EsSUFBSUEsRUFBRUEsR0FBR0EsaUJBQWlCQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUM5QkEsUUFBUUEsR0FBR0EsRUFBRUEsQ0FBQ0EsVUFBVUEsRUFDeEJBLEtBQUtBLEdBQUdBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBO0lBQ3hCQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxLQUFLQSxDQUFDQSxJQUFJQSxLQUFLQSxLQUFLQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNyREEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDbkJBLENBQUNBO0lBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ05BLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLEdBQUdBLEtBQUtBLENB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Q0EsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFFMUJBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBQzFCQSxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUVwQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsRUFBRUEsQ0FBQ0E7WUFDWEEsTUFBTUEsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxFQUFFQSxDQUFDQSxLQUFLQSxDQUFDQSxLQUFLQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqREEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFFTkEsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDdkJBLE1BQU1BLENBQUNBLGlCQUFpQkEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDcERBLENBQUNBO0lBQ0hBLENBQUNBO0lBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ05BLElBQUlBLFNBQVNBLEdBQUdBLElBQUlBLE1BQU1BLENBQUNBLEdBQUdBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBO1FBQ3hDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQSxFQUFFQSxLQUFLQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsU0FBU0EsQ0FBQ0E7SUFDbkJBLENBQUNBO0FBQ0hBLENBQUNBO0FBM0JlLG9CQUFZLGVBMkIzQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcmFiIGJhZyBvZiB1dGlsaXR5IGZ1bmN0aW9ucyB1c2VkIGFjcm9zcyB0aGUgY29kZS5cbiAqL1xuXG4vKipcbiAqIENoZWNrcyBmb3IgYW55IElFIHZlcnNpb24sIGluY2x1ZGluZyBJRTExIHdoaWNoIHJlbW92ZWQgTVNJRSBmcm9tIHRoZVxuICogdXNlckFnZW50IHN0cmluZy5cbiAqL1xuZXhwb3J0IHZhciBpc0lFOiBib29sZWFuID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiAoLyhtc2llKSAoW1xcdy5dKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKSAhPSBudWxsIHx8IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignVHJpZGVudCcpICE9PSAtMSk7XG5cbi8qKlxuICogQ2hlY2sgaWYgd2UncmUgaW4gYSB3ZWIgd29ya2VyLlxuICovXG5leHBvcnQgdmFyIGlzV2ViV29ya2VyOiBib29sZWFuID0gdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBcnJheWlzaDxUPiB7XG4gIFtpZHg6IG51bWJlcl06IFQ7XG4gIGxlbmd0aDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYnVmZmVyIGludG8gYW4gYXJyYXkgYnVmZmVyLiBBdHRlbXB0cyB0byBkbyBzbyBpbiBhXG4gKiB6ZXJvLWNvcHkgbWFubmVyLCBlLmcuIHRoZSBhcnJheSByZWZlcmVuY2VzIHRoZSBzYW1lIG1lbW9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlcjJBcnJheUJ1ZmZlcihidWZmOiBCdWZmZXIpOiBBcnJheUJ1ZmZlciB7XG4gIHZhciB1OCA9IGJ1ZmZlcjJVaW50OGFycmF5KGJ1ZmYpLFxuICAgIHU4b2Zmc2V0ID0gdTguYnl0ZU9mZnNldCxcbiAgICB1OExlbiA9IHU4LmJ5dGVMZW5ndGg7XG4gIGlmICh1OG9mZnNldCA9PT0gMCAmJiB1OExlbiA9PT0gdTguYnVmZmVyLmJ5dGVMZW5ndGgpIHtcbiAgICByZXR1cm4gdTguYnVmZmVyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB1OC5idWZmZXIuc2xpY2UodThvZmZzZXQsIHU4b2Zmc2V0ICsgdThMZW4pXG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJ1ZmZlciBpbnRvIGEgVWludDhBcnJheS4gQXR0ZW1wdHMgdG8gZG8gc28gaW4gYVxuICogemVyby1jb3B5IG1hbm5lciwgZS5nLiB0aGUgYXJyYXkgcmVmZXJlbmNlcyB0aGUgc2FtZSBtZW1vcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWZmZXIyVWludDhhcnJheShidWZmOiBCdWZmZXIpOiBVaW50OEFycmF5IHtcbiAgaWYgKGJ1ZmZbJ3RvVWludDhBcnJheSddKSB7XG4gICAgcmV0dXJuICg8YW55PiBidWZmKS50b1VpbnQ4QXJyYXkoKTtcbiAgfSBlbHNlIGlmIChidWZmIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgIC8vIE5vZGUgdjQuMCBidWZmZXJzICphcmUqIFVpbnQ4QXJyYXlzLlxuICAgIHJldHVybiA8YW55PiBidWZmO1xuICB9IGVsc2Uge1xuICAgIC8vIFVpbnQ4QXJyYXlzIGNhbiBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFycmF5aXNoIG51bWJlcnMuXG4gICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgYXNzdW1lIHRoaXMgaXNuJ3QgYSBCRlMgYXJyYXkuXG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGJ1ZmYpO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGdpdmVuIGJ1ZmZlciBpbnRvIGEgVWludDggYXJyYXlpc2ggZm9ybS4gQXR0ZW1wdHNcbiAqIHRvIGJlIHplcm8tY29weS5cbiAqXG4gKiBSZXF1aXJlZCBmb3IgQnJvd3NlckZTIGJ1ZmZlcnMsIHdoaWNoIGRvIG5vdCBzdXBwb3J0IGluZGV4aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyMkFycmF5aXNoKGJ1ZmY6IEJ1ZmZlcik6IEFycmF5aXNoPG51bWJlcj4ge1xuICBpZiAoYnVmZi5sZW5ndGggPT09IDAgfHwgdHlwZW9mKGJ1ZmZbMF0pID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBidWZmO1xuICB9IGVsc2UgaWYgKHR5cGVvZihBcnJheUJ1ZmZlcikgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGJ1ZmZlcjJVaW50OGFycmF5KGJ1ZmYpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBidWZmLnRvSlNPTigpLmRhdGE7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gYXJyYXlpc2ggb2JqZWN0IGludG8gYSBCdWZmZXIuIEF0dGVtcHRzIHRvXG4gKiBiZSB6ZXJvLWNvcHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheWlzaDJCdWZmZXIoYXJyOiBBcnJheWlzaDxudW1iZXI+KTogQnVmZmVyIHtcbiAgaWYgKGFyciBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICByZXR1cm4gdWludDhBcnJheTJCdWZmZXIoYXJyKTtcbiAgfSBlbHNlIGlmIChhcnIgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICByZXR1cm4gYXJyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgQnVmZmVyKDxudW1iZXJbXT4gYXJyKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBnaXZlbiBVaW50OEFycmF5IGludG8gYSBCdWZmZXIuIEF0dGVtcHRzIHRvIGJlIHplcm8tY29weS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpbnQ4QXJyYXkyQnVmZmVyKHU4OiBVaW50OEFycmF5KTogQnVmZmVyIHtcbiAgaWYgKHU4LmJ5dGVPZmZzZXQgPT09IDAgJiYgdTguYnl0ZUxlbmd0aCA9PT0gdTguYnVmZmVyLmJ5dGVMZW5ndGgpIHtcbiAgICByZXR1cm4gYXJyYXlCdWZmZXIyQnVmZmVyKHU4KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcih1OCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gYXJyYXkgYnVmZmVyIGludG8gYSBCdWZmZXIuIEF0dGVtcHRzIHRvIGJlXG4gKiB6ZXJvLWNvcHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUJ1ZmZlcjJCdWZmZXIoYWI6IEFycmF5QnVmZmVyKTogQnVmZmVyIHtcbiAgdHJ5IHtcbiAgICAvLyBXb3JrcyBpbiBCRlMgYW5kIE5vZGUgdjQuMi5cbiAgICByZXR1cm4gbmV3IEJ1ZmZlcig8YW55PiBhYik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBJIGJlbGlldmUgdGhpcyBjb3BpZXMsIGJ1dCB0aGVyZSdzIG5vIGF2b2lkaW5nIGl0IGluIE5vZGUgPCB2MC4xMlxuICAgIHJldHVybiBuZXcgQnVmZmVyKG5ldyBVaW50OEFycmF5KGFiKSk7XG4gIH1cbn1cblxuLy8gUG9seWZpbGwgZm9yIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNsaWNlLlxuLy8gU2FmYXJpIGFuZCBzb21lIG90aGVyIGJyb3dzZXJzIGRvIG5vdCBkZWZpbmUgaXQuXG5pZiAodHlwZW9mKEFycmF5QnVmZmVyKSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mKFVpbnQ4QXJyYXkpICE9PSAndW5kZWZpbmVkJykge1xuICBpZiAoIVVpbnQ4QXJyYXkucHJvdG90eXBlWydzbGljZSddKSB7XG4gICAgVWludDhBcnJheS5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbihzdGFydDogbnVtYmVyID0gMCwgZW5kOiBudW1iZXIgPSB0aGlzLmxlbmd0aCk6IFVpbnQ4QXJyYXkge1xuICAgICAgbGV0IHNlbGY6IFVpbnQ4QXJyYXkgPSB0aGlzO1xuICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICBzdGFydCA9IHRoaXMubGVuZ3RoICsgc3RhcnQ7XG4gICAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlbmQgPCAwKSB7XG4gICAgICAgIGVuZCA9IHRoaXMubGVuZ3RoICsgZW5kO1xuICAgICAgICBpZiAoZW5kIDwgMCkge1xuICAgICAgICAgIGVuZCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlbmQgPCBzdGFydCkge1xuICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShzZWxmLmJ1ZmZlciwgc2VsZi5ieXRlT2Zmc2V0ICsgc3RhcnQsIGVuZCAtIHN0YXJ0KTtcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQ29waWVzIGEgc2xpY2Ugb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICovXG5leHBvcnQgZnVuY3Rpb24gY29weWluZ1NsaWNlKGJ1ZmY6IEJ1ZmZlciwgc3RhcnQ6IG51bWJlciA9IDAsIGVuZCA9IGJ1ZmYubGVuZ3RoKTogQnVmZmVyIHtcbiAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPCAwIHx8IGVuZCA+IGJ1ZmYubGVuZ3RoIHx8IHN0YXJ0ID4gZW5kKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBzbGljZSBib3VuZHMgb24gYnVmZmVyIG9mIGxlbmd0aCAke2J1ZmYubGVuZ3RofTogWyR7c3RhcnR9LCAke2VuZH1dYCk7XG4gIH1cbiAgaWYgKGJ1ZmYubGVuZ3RoID09PSAwKSB7XG4gICAgLy8gQXZvaWQgczAgY29ybmVyIGNhc2UgaW4gQXJyYXlCdWZmZXIgY2FzZS5cbiAgICByZXR1cm4gbmV3IEJ1ZmZlcigwKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YoQXJyYXlCdWZmZXIpICE9PSAndW5kZWZpbmVkJykge1xuICAgIHZhciB1OCA9IGJ1ZmZlcjJVaW50OGFycmF5KGJ1ZmYpLFxuICAgICAgczAgPSBidWZmLnJlYWRVSW50OCgwKSxcbiAgICAgIG5ld1MwID0gKHMwICsgMSkgJSAweEZGO1xuXG4gICAgYnVmZi53cml0ZVVJbnQ4KG5ld1MwLCAwKTtcbiAgICBpZiAodThbMF0gPT09IG5ld1MwKSB7XG4gICAgICAvLyBTYW1lIG1lbW9yeS4gUmV2ZXJ0ICYgY29weS5cbiAgICAgIHU4WzBdID0gczA7XG4gICAgICByZXR1cm4gdWludDhBcnJheTJCdWZmZXIodTguc2xpY2Uoc3RhcnQsIGVuZCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXZlcnQuXG4gICAgICBidWZmLndyaXRlVUludDgoczAsIDApO1xuICAgICAgcmV0dXJuIHVpbnQ4QXJyYXkyQnVmZmVyKHU4LnN1YmFycmF5KHN0YXJ0LCBlbmQpKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ1ZmZTbGljZSA9IG5ldyBCdWZmZXIoZW5kIC0gc3RhcnQpO1xuICAgIGJ1ZmYuY29weShidWZmU2xpY2UsIDAsIHN0YXJ0LCBlbmQpO1xuICAgIHJldHVybiBidWZmU2xpY2U7XG4gIH1cbn1cbiJdfQ== |
var BrowserFS = require('../core/browserfs'); | ||
var fs = require('../core/node_fs'); | ||
var buffer = require('../core/buffer'); | ||
var BufferCoreArrayBuffer = require('../core/buffer_core_arraybuffer'); | ||
var Buffer = buffer.Buffer; | ||
var util_1 = require('../core/util'); | ||
var BFSEmscriptenStreamOps = (function () { | ||
@@ -40,7 +38,4 @@ function BFSEmscriptenStreamOps(fs) { | ||
BFSEmscriptenStreamOps.prototype.read = function (stream, buffer, offset, length, position) { | ||
var bcore = new BufferCoreArrayBuffer(buffer.buffer); | ||
var nbuffer = new Buffer(bcore, buffer.byteOffset + offset, buffer.byteOffset + offset + length); | ||
var res; | ||
try { | ||
res = fs.readSync(stream.nfd, nbuffer, 0, length, position); | ||
return fs.readSync(stream.nfd, util_1.uint8Array2Buffer(buffer), offset, length, position); | ||
} | ||
@@ -50,10 +45,6 @@ catch (e) { | ||
} | ||
return res; | ||
}; | ||
BFSEmscriptenStreamOps.prototype.write = function (stream, buffer, offset, length, position) { | ||
var bcore = new BufferCoreArrayBuffer(buffer.buffer); | ||
var nbuffer = new Buffer(bcore, buffer.byteOffset + offset, buffer.byteOffset + offset + length); | ||
var res; | ||
try { | ||
res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); | ||
return fs.writeSync(stream.nfd, util_1.uint8Array2Buffer(buffer), offset, length, position); | ||
} | ||
@@ -63,3 +54,2 @@ catch (e) { | ||
} | ||
return res; | ||
}; | ||
@@ -344,2 +334,2 @@ BFSEmscriptenStreamOps.prototype.llseek = function (stream, offset, whence) { | ||
exports["default"] = BFSEmscriptenFS; | ||
//# sourceMappingURL=emscripten_fs.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1zY3JpcHRlbl9mcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmljL2Vtc2NyaXB0ZW5fZnMudHMiXSwibmFtZXMiOlsiQkZTRW1zY3JpcHRlblN0cmVhbU9wcyIsIkJGU0Vtc2NyaXB0ZW5TdHJlYW1PcHMuY29uc3RydWN0b3IiLCJCRlNFbXNjcmlwdGVuU3RyZWFtT3BzLm9wZW4iLCJCRlNFbXNjcmlwdGVuU3RyZWFtT3BzLmNsb3NlIiwiQkZTRW1zY3JpcHRlblN0cmVhbU9wcy5yZWFkIiwiQkZTRW1zY3JpcHRlblN0cmVhbU9wcy53cml0ZSIsIkJGU0Vtc2NyaXB0ZW5TdHJlYW1PcHMubGxzZWVrIiwiQkZTRW1zY3JpcHRlbk5vZGVPcHMiLCJCRlNFbXNjcmlwdGVuTm9kZU9wcy5jb25zdHJ1Y3RvciIsIkJGU0Vtc2NyaXB0ZW5Ob2RlT3BzLmdldGF0dHIiLCJCRlNFbXNjcmlwdGVuTm9kZU9wcy5zZXRhdHRyIiwiQkZTRW1zY3JpcHRlbk5vZGVPcHMubG9va3VwIiwiQkZTRW1zY3JpcHRlbk5vZGVPcHMubWtub2QiLCJCRlNFbXNjcmlwdGVuTm9kZU9wcy5yZW5hbWUiLCJCRlNFbXNjcmlwdGVuTm9kZU9wcy51bmxpbmsiLCJCRlNFbXNjcmlwdGVuTm9kZU9wcy5ybWRpciIsIkJGU0Vtc2NyaXB0ZW5Ob2RlT3BzLnJlYWRkaXIiLCJCRlNFbXNjcmlwdGVuTm9kZU9wcy5zeW1saW5rIiwiQkZTRW1zY3JpcHRlbk5vZGVPcHMucmVhZGxpbmsiLCJCRlNFbXNjcmlwdGVuRlMiLCJCRlNFbXNjcmlwdGVuRlMuY29uc3RydWN0b3IiLCJCRlNFbXNjcmlwdGVuRlMubW91bnQiLCJCRlNFbXNjcmlwdGVuRlMuY3JlYXRlTm9kZSIsIkJGU0Vtc2NyaXB0ZW5GUy5nZXRNb2RlIiwiQkZTRW1zY3JpcHRlbkZTLnJlYWxQYXRoIiwiQkZTRW1zY3JpcHRlbkZTLmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nIiwiQkZTRW1zY3JpcHRlbkZTLmdldEZTIiwiQkZTRW1zY3JpcHRlbkZTLmdldFBBVEgiLCJCRlNFbXNjcmlwdGVuRlMuZ2V0RVJSTk9fQ09ERVMiXSwibWFwcGluZ3MiOiJBQVdBLElBQU8sU0FBUyxXQUFXLG1CQUFtQixDQUFDLENBQUM7QUFDaEQsSUFBTyxFQUFFLFdBQVcsaUJBQWlCLENBQUMsQ0FBQztBQUV2QyxxQkFBZ0MsY0FBYyxDQUFDLENBQUE7QUFpRS9DO0lBS0VBLGdDQUFvQkEsRUFBbUJBO1FBQW5CQyxPQUFFQSxHQUFGQSxFQUFFQSxDQUFpQkE7UUFDckNBLElBQUlBLENBQUNBLEVBQUVBLEdBQUdBLEVBQUVBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO1FBQ3JCQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxFQUFFQSxDQUFDQSxPQUFPQSxFQUFFQSxDQUFDQTtRQUN6QkEsSUFBSUEsQ0FBQ0EsV0FBV0EsR0FBR0EsRUFBRUEsQ0FBQ0EsY0FBY0EsRUFBRUEsQ0FBQ0E7SUFDekNBLENBQUNBO0lBRU1ELHFDQUFJQSxHQUFYQSxVQUFZQSxNQUF3QkE7UUFDbENFLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLEVBQ3RDQSxFQUFFQSxHQUFHQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQTtRQUNmQSxJQUFJQSxDQUFDQTtZQUNIQSxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDaENBLE1BQU1BLENBQUNBLEdBQUdBLEdBQUdBLEVBQUVBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLHVCQUF1QkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDaEZBLENBQUNBO1FBQ0hBLENBQUVBO1FBQUFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ1hBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO2dCQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtZQUNyQkEsTUFBTUEsSUFBSUEsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDcERBLENBQUNBO0lBQ0hBLENBQUNBO0lBRU1GLHNDQUFLQSxHQUFaQSxVQUFhQSxNQUF3QkE7UUFDbkNHLElBQUlBLEVBQUVBLEdBQUdBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBO1FBQ2pCQSxJQUFJQSxDQUFDQTtZQUNIQSxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDOUNBLEVBQUVBLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1lBQzNCQSxDQUFDQTtRQUNIQSxDQUFFQTtRQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNYQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQTtnQkFBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDckJBLE1BQU1BLElBQUlBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1FBQ3BEQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVNSCxxQ0FBSUEsR0FBWEEsVUFBWUEsTUFBd0JBLEVBQUVBLE1BQWtCQSxFQUFFQSxNQUFjQSxFQUFFQSxNQUFjQSxFQUFFQSxRQUFnQkE7UUFFeEdJLElBQUlBLENBQUNBO1lBQ0hBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLEVBQUVBLHdCQUFpQkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsTUFBTUEsRUFBRUEsTUFBTUEsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0E7UUFDdEZBLENBQUVBO1FBQUFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ1hBLE1BQU1BLElBQUlBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1FBQ3pEQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVNSixzQ0FBS0EsR0FBWkEsVUFBYUEsTUFBd0JBLEVBQUVBLE1BQWtCQSxFQUFFQSxNQUFjQSxFQUFFQSxNQUFjQSxFQUFFQSxRQUFnQkE7UUFFekdLLElBQUlBLENBQUNBO1lBQ0hBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLEVBQUVBLHdCQUFpQkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsTUFBTUEsRUFBRUEsTUFBTUEsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0E7UUFDdkZBLENBQUVBO1FBQUFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ1hBLE1BQU1BLElBQUlBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1FBQ3pEQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVNTCx1Q0FBTUEsR0FBYkEsVUFBY0EsTUFBd0JBLEVBQUVBLE1BQWNBLEVBQUVBLE1BQWNBO1FBQ3BFTSxJQUFJQSxRQUFRQSxHQUFHQSxNQUFNQSxDQUFDQTtRQUN0QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakJBLFFBQVFBLElBQUlBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBO1FBQzlCQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN4QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3JDQSxJQUFJQSxDQUFDQTtvQkFDSEEsSUFBSUEsSUFBSUEsR0FBR0EsRUFBRUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7b0JBQ3BDQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQTtnQkFDeEJBLENBQUVBO2dCQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDWEEsTUFBTUEsSUFBSUEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3pEQSxDQUFDQTtZQUNIQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUVEQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNqQkEsTUFBTUEsSUFBSUEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDeERBLENBQUNBO1FBRURBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBO1FBQzNCQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQTtJQUNsQkEsQ0FBQ0E7SUFDSE4sNkJBQUNBO0FBQURBLENBQUNBLEFBNUVELElBNEVDO0FBRUQ7SUFLRU8sOEJBQW9CQSxFQUFtQkE7UUFBbkJDLE9BQUVBLEdBQUZBLEVBQUVBLENBQWlCQTtRQUNyQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsR0FBR0EsRUFBRUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0E7UUFDckJBLElBQUlBLENBQUNBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1FBQ3pCQSxJQUFJQSxDQUFDQSxXQUFXQSxHQUFHQSxFQUFFQSxDQUFDQSxjQUFjQSxFQUFFQSxDQUFDQTtJQUN6Q0EsQ0FBQ0E7SUFFTUQsc0NBQU9BLEdBQWRBLFVBQWVBLElBQXNCQTtRQUNuQ0UsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDbENBLElBQUlBLElBQXlCQSxDQUFDQTtRQUM5QkEsSUFBSUEsQ0FBQ0E7WUFDSEEsSUFBSUEsR0FBR0EsRUFBRUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDNUJBLENBQUVBO1FBQUFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ1hBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO2dCQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtZQUNyQkEsTUFBTUEsSUFBSUEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDekRBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBO1lBQ0xBLEdBQUdBLEVBQUVBLElBQUlBLENBQUNBLEdBQUdBO1lBQ2JBLEdBQUdBLEVBQUVBLElBQUlBLENBQUNBLEdBQUdBO1lBQ2JBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLElBQUlBO1lBQ2ZBLEtBQUtBLEVBQUVBLElBQUlBLENBQUNBLEtBQUtBO1lBQ2pCQSxHQUFHQSxFQUFFQSxJQUFJQSxDQUFDQSxHQUFHQTtZQUNiQSxHQUFHQSxFQUFFQSxJQUFJQSxDQUFDQSxHQUFHQTtZQUNiQSxJQUFJQSxFQUFFQSxJQUFJQSxDQUFDQSxJQUFJQTtZQUNmQSxJQUFJQSxFQUFFQSxJQUFJQSxDQUFDQSxJQUFJQTtZQUNmQSxLQUFLQSxFQUFFQSxJQUFJQSxDQUFDQSxLQUFLQTtZQUNqQkEsS0FBS0EsRUFBRUEsSUFBSUEsQ0FBQ0EsS0FBS0E7WUFDakJBLEtBQUtBLEVBQUVBLElBQUlBLENBQUNBLEtBQUtBO1lBQ2pCQSxPQUFPQSxFQUFFQSxJQUFJQSxDQUFDQSxPQUFPQTtZQUNyQkEsTUFBTUEsRUFBRUEsSUFBSUEsQ0FBQ0EsTUFBTUE7U0FDcEJBLENBQUNBO0lBQ0pBLENBQUNBO0lBRU1GLHNDQUFPQSxHQUFkQSxVQUFlQSxJQUFzQkEsRUFBRUEsSUFBV0E7UUFDaERHLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ2xDQSxJQUFJQSxDQUFDQTtZQUNIQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDNUJBLEVBQUVBLENBQUNBLFNBQVNBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUU5QkEsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7WUFDeEJBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNqQ0EsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BDQSxFQUFFQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNsQ0EsQ0FBQ0E7UUFDSEEsQ0FBRUE7UUFBQUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDWEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7Z0JBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBR3JCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDekJBLE1BQU1BLElBQUlBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ3pEQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM1QkEsSUFBSUEsQ0FBQ0E7Z0JBQ0hBLEVBQUVBLENBQUNBLFlBQVlBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ25DQSxDQUFFQTtZQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDWEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7b0JBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUNyQkEsTUFBTUEsSUFBSUEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDekRBLENBQUNBO1FBQ0hBLENBQUNBO0lBQ0hBLENBQUNBO0lBRU1ILHFDQUFNQSxHQUFiQSxVQUFjQSxNQUF3QkEsRUFBRUEsSUFBWUE7UUFDbERJLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBQzNEQSxJQUFJQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNqQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsSUFBSUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDaERBLENBQUNBO0lBRU1KLG9DQUFLQSxHQUFaQSxVQUFhQSxNQUF3QkEsRUFBRUEsSUFBWUEsRUFBRUEsSUFBWUEsRUFBRUEsR0FBUUE7UUFDekVLLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLElBQUlBLEVBQUVBLElBQUlBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO1FBRXZEQSxJQUFJQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNsQ0EsSUFBSUEsQ0FBQ0E7WUFDSEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzdCQSxFQUFFQSxDQUFDQSxTQUFTQSxDQUFDQSxJQUFJQSxFQUFFQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNoQ0EsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLEVBQUVBLENBQUNBLGFBQWFBLENBQUNBLElBQUlBLEVBQUVBLEVBQUVBLEVBQUVBLEVBQUVBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBO1lBQ2xEQSxDQUFDQTtRQUNIQSxDQUFFQTtRQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNYQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQTtnQkFBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDckJBLE1BQU1BLElBQUlBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1FBQ3pEQSxDQUFDQTtRQUNEQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNkQSxDQUFDQTtJQUVNTCxxQ0FBTUEsR0FBYkEsVUFBY0EsT0FBeUJBLEVBQUVBLE1BQXdCQSxFQUFFQSxPQUFlQTtRQUNoRk0sSUFBSUEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7UUFDeENBLElBQUlBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO1FBQ2pFQSxJQUFJQSxDQUFDQTtZQUNIQSxFQUFFQSxDQUFDQSxVQUFVQSxDQUFDQSxPQUFPQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtRQUNsQ0EsQ0FBRUE7UUFBQUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDWEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7Z0JBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBQ3JCQSxNQUFNQSxJQUFJQSxJ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TVIsd0NBQWNBLEdBQXJCQTtRQUNFUyxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQTtJQUMxQkEsQ0FBQ0E7SUFJSFQsc0JBQUNBO0FBQURBLENBQUNBLEFBeEdELElBd0dDO0FBeEdEO29DQXdHQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZpbmVzIGFuIEVtc2NyaXB0ZW4gZmlsZSBzeXN0ZW0gb2JqZWN0IGZvciB1c2UgaW4gdGhlIEVtc2NyaXB0ZW4gdmlydHVhbFxuICogZmlsZXN5c3RlbS4gQWxsb3dzIHlvdSB0byB1c2Ugc3luY2hyb25vdXMgQnJvd3NlckZTIGZpbGUgc3lzdGVtcyBmcm9tIHdpdGhpblxuICogRW1zY3JpcHRlbi5cbiAqXG4gKiBZb3UgY2FuIGNvbnN0cnVjdCBhIEJGU0Vtc2NyaXB0ZW5GUywgbW91bnQgaXQgdXNpbmcgaXRzIG1vdW50IGNvbW1hbmQsXG4gKiBhbmQgdGhlbiBtb3VudCBpdCBpbnRvIEVtc2NyaXB0ZW4uXG4gKlxuICogQWRhcHRlZCBmcm9tIEVtc2NyaXB0ZW4ncyBOb2RlRlM6XG4gKiBodHRwczovL3Jhdy5naXRodWIuY29tL2tyaXBrZW4vZW1zY3JpcHRlbi9tYXN0ZXIvc3JjL2xpYnJhcnlfbm9kZWZzLmpzXG4gKi9cbmltcG9ydCBCcm93c2VyRlMgPSByZXF1aXJlKCcuLi9jb3JlL2Jyb3dzZXJmcycpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnLi4vY29yZS9ub2RlX2ZzJyk7XG5pbXBvcnQgbm9kZV9mc19zdGF0cyA9IHJlcXVpcmUoJy4uL2NvcmUvbm9kZV9mc19zdGF0cycpO1xuaW1wb3J0IHt1aW50OEFycmF5MkJ1ZmZlcn0gZnJvbSAnLi4vY29yZS91dGlsJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0cyB7XG4gIGRldjogbnVtYmVyO1xuICBpbm86IG51bWJlcjtcbiAgbW9kZTogbnVtYmVyO1xuICBubGluazogbnVtYmVyO1xuICB1aWQ6IG51bWJlcjtcbiAgZ2lkOiBudW1iZXI7XG4gIHJkZXY6IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBibGtzaXplOiBudW1iZXI7XG4gIGJsb2NrczogbnVtYmVyO1xuICBhdGltZTogRGF0ZTtcbiAgbXRpbWU6IERhdGU7XG4gIGN0aW1lOiBEYXRlO1xuICB0aW1lc3RhbXA/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1zY3JpcHRlbkZTTm9kZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbW9kZTogbnVtYmVyO1xuICBwYXJlbnQ6IEVtc2NyaXB0ZW5GU05vZGU7XG4gIG1vdW50OiB7b3B0czoge3Jvb3Q6IHN0cmluZ319O1xuICBzdHJlYW1fb3BzOiBFbXNjcmlwdGVuU3RyZWFtT3BzO1xuICBub2RlX29wczogRW1zY3JpcHRlbk5vZGVPcHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1zY3JpcHRlblN0cmVhbSB7XG4gIG5vZGU6IEVtc2NyaXB0ZW5GU05vZGU7XG4gIG5mZDogYW55O1xuICBmbGFnczogc3RyaW5nO1xuICBwb3NpdGlvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtc2NyaXB0ZW5Ob2RlT3BzIHtcbiAgZ2V0YXR0cihub2RlOiBFbXNjcmlwdGVuRlNOb2RlKTogU3RhdHM7XG4gIHNldGF0dHIobm9kZTogRW1zY3JpcHRlbkZTTm9kZSwgYXR0cjogU3RhdHMpOiB2b2lkO1xuICBsb29rdXAocGFyZW50OiBFbXNjcmlwdGVuRlNOb2RlLCBuYW1lOiBzdHJpbmcpOiBFbXNjcmlwdGVuRlNOb2RlO1xuICBta25vZChwYXJlbnQ6IEVtc2NyaXB0ZW5GU05vZGUsIG5hbWU6IHN0cmluZywgbW9kZTogbnVtYmVyLCBkZXY6IGFueSk6IEVtc2NyaXB0ZW5GU05vZGU7XG4gIHJlbmFtZShvbGROb2RlOiBFbXNjcmlwdGVuRlNOb2RlLCBuZXdEaXI6IEVtc2NyaXB0ZW5GU05vZGUsIG5ld05hbWU6IHN0cmluZyk6IHZvaWQ7XG4gIHVubGluayhwYXJlbnQ6IEVtc2NyaXB0ZW5GU05vZGUsIG5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gIHJtZGlyKHBhcmVudDogRW1zY3JpcHRlbkZTTm9kZSwgbmFtZTogc3RyaW5nKTogdm9pZDtcbiAgcmVhZGRpcihub2RlOiBFbXNjcmlwdGVuRlNOb2RlKTogc3RyaW5nW107XG4gIHN5bWxpbmsocGFyZW50OiBFbXNjcmlwdGVuRlNOb2RlLCBuZXdOYW1lOiBzdHJpbmcsIG9sZFBhdGg6IHN0cmluZyk6IHZvaWQ7XG4gIHJlYWRsaW5rKG5vZGU6IEVtc2NyaXB0ZW5GU05vZGUpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1zY3JpcHRlblN0cmVhbU9wcyB7XG4gIG9wZW4oc3RyZWFtOiBFbXNjcmlwdGVuU3RyZWFtKTogdm9pZDtcbiAgY2xvc2Uoc3RyZWFtOiBFbXNjcmlwdGVuU3RyZWFtKTogdm9pZDtcbiAgcmVhZChzdHJlYW06IEVtc2NyaXB0ZW5TdHJlYW0sIGJ1ZmZlcjogVWludDhBcnJheSwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyKTogbnVtYmVyO1xuICB3cml0ZShzdHJlYW06IEVtc2NyaXB0ZW5TdHJlYW0sIGJ1ZmZlcjogVWludDhBcnJheSwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyKTogbnVtYmVyO1xuICBsbHNlZWsoc3RyZWFtOiBFbXNjcmlwdGVuU3RyZWFtLCBvZmZzZXQ6IG51bWJlciwgd2hlbmNlOiBudW1iZXIpOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1zY3JpcHRlbkZTIHtcbiAgbW91bnQobW91bnQ6IHtvcHRzOiB7cm9vdDogc3RyaW5nfX0pOiBFbXNjcmlwdGVuRlNOb2RlO1xuICBjcmVhdGVOb2RlKHBhcmVudDogRW1zY3JpcHRlbkZTTm9kZSwgbmFtZTogc3RyaW5nLCBtb2RlOiBudW1iZXIsIGRldj86IGFueSk6IEVtc2NyaXB0ZW5GU05vZGU7XG4gIGdldE1vZGUocGF0aDogc3RyaW5nKTogbnVtYmVyO1xuICByZWFsUGF0aChub2RlOiBFbXNjcmlwdGVuRlNOb2RlKTogc3RyaW5nO1xuICBub2RlX29wczogRW1zY3JpcHRlbk5vZGVPcHM7XG4gIHN0cmVhbV9vcHM6IEVtc2NyaXB0ZW5TdHJlYW1PcHM7XG59XG5cbmNsYXNzIEJGU0Vtc2NyaXB0ZW5TdHJlYW1PcHMgaW1wbGVtZW50cyBFbXNjcmlwdGVuU3RyZWFtT3BzIHtcbiAgcHJpdmF0ZSBGUzogYW55O1xuICBwcml2YXRlIFBBVEg6IGFueTtcbiAgcHJpdmF0ZSBFUlJOT19DT0RFUzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnM6IEJGU0Vtc2NyaXB0ZW5GUykge1xuICAgIHRoaXMuRlMgPSBmcy5nZXRGUygpO1xuICAgIHRoaXMuUEFUSCA9IGZzLmdldFBBVEgoKTtcbiAgICB0aGlzLkVSUk5PX0NPREVTID0gZnMuZ2V0RVJSTk9fQ09ERVMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKHN0cmVhbTogRW1zY3JpcHRlblN0cmVhbSk6IHZvaWQge1xuICAgIHZhciBwYXRoID0gdGhpcy5mcy5yZWFsUGF0aChzdHJlYW0ubm9kZSksXG4gICAgICBGUyA9IHRoaXMuRlM7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHtcbiAgICAgICAgc3RyZWFtLm5mZCA9IGZzLm9wZW5TeW5jKHBhdGgsIHRoaXMuZnMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoc3RyZWFtLmZsYWdzKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7XG4gICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcih0aGlzLkVSUk5PX0NPREVTW2UuY29kZV0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZShzdHJlYW06IEVtc2NyaXB0ZW5TdHJlYW0pOiB2b2lkIHtcbiAgICB2YXIgRlMgPSB0aGlzLkZTO1xuICAgIHRyeSB7XG4gICAgICBpZiAoRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpICYmIHN0cmVhbS5uZmQpIHtcbiAgICAgICAgZnMuY2xvc2VTeW5jKHN0cmVhbS5uZmQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlO1xuICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IodGhpcy5FUlJOT19DT0RFU1tlLmNvZGVdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVhZChzdHJlYW06IEVtc2NyaXB0ZW5TdHJlYW0sIGJ1ZmZlcjogVWludDhBcnJheSwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyLCBwb3NpdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAvLyBBdm9pZCBjb3B5aW5nIG92ZXJoZWFkIGJ5IHJlYWRpbmcgZGlyZWN0bHkgaW50byBidWZmZXIuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmcy5yZWFkU3luYyhzdHJlYW0ubmZkLCB1aW50OEFycmF5MkJ1ZmZlcihidWZmZXIpLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyB0aGlzLkZTLkVycm5vRXJyb3IodGhpcy5FUlJOT19DT0RFU1tlLmNvZGVdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgd3JpdGUoc3RyZWFtOiBFbXNjcmlwdGVuU3RyZWFtLCBidWZmZXI6IFVpbnQ4QXJyYXksIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgcG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8gQXZvaWQgY29weWluZyBvdmVyaGVhZC5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZzLndyaXRlU3luYyhzdHJlYW0ubmZkLCB1aW50OEFycmF5MkJ1ZmZlcihidWZmZXIpLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyB0aGlzLkZTLkVycm5vRXJyb3IodGhpcy5FUlJOT19DT0RFU1tlLmNvZGVdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbGxzZWVrKHN0cmVhbTogRW1zY3JpcHRlblN0cmVhbSwgb2Zmc2V0OiBudW1iZXIsIHdoZW5jZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICB2YXIgcG9zaXRpb24gPSBvZmZzZXQ7XG4gICAgaWYgKHdoZW5jZSA9PT0gMSkgeyAgLy8gU0VFS19DVVIuXG4gICAgICBwb3NpdGlvbiArPSBzdHJlYW0ucG9zaXRpb247XG4gICAgfSBlbHNlIGlmICh3aGVuY2UgPT09IDIpIHsgIC8vIFNFRUtfRU5ELlxuICAgICAgaWYgKHRoaXMuRlMuaXNGaWxlKHN0cmVhbS5ub2RlLm1vZGUpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHN0YXQgPSBmcy5mc3RhdFN5bmMoc3RyZWFtLm5mZCk7XG4gICAgICAgICAgcG9zaXRpb24gKz0gc3RhdC5zaXplO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IHRoaXMuRlMuRXJybm9FcnJvcih0aGlzLkVSUk5PX0NPREVTW2UuY29kZV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IHRoaXMuRlMuRXJybm9FcnJvcih0aGlzLkVSUk5PX0NPREVTLkVJTlZBTCk7XG4gICAgfVxuXG4gICAgc3RyZWFtLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgcmV0dXJuIHBvc2l0aW9uO1xuICB9XG59XG5cbmNsYXNzIEJGU0Vtc2NyaXB0ZW5Ob2RlT3BzIGltcGxlbWVudHMgRW1zY3JpcHRlbk5vZGVPcHMge1xuICBwcml2YXRlIEZTOiBhbnk7XG4gIHByaXZhdGUgUEFUSDogYW55O1xuICBwcml2YXRlIEVSUk5PX0NPREVTOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmczogQkZTRW1zY3JpcHRlbkZTKSB7XG4gICAgdGhpcy5GUyA9IGZzLmdldEZTKCk7XG4gICAgdGhpcy5QQVRIID0gZnMuZ2V0UEFUSCgpO1xuICAgIHRoaXMuRVJSTk9fQ09ERVMgPSBmcy5nZXRFUlJOT19DT0RFUygpO1xuICB9XG5cbiAgcHVibGljIGdldGF0dHIobm9kZTogRW1zY3JpcHRlbkZTTm9kZSk6IFN0YXRzIHtcbiAgICB2YXIgcGF0aCA9IHRoaXMuZnMucmVhbFBhdGgobm9kZSk7XG4gICAgdmFyIHN0YXQ6IG5vZGVfZnNfc3RhdHMuU3RhdHM7XG4gICAgdHJ5IHtcbiAgICAgIHN0YXQgPSBmcy5sc3RhdFN5bmMocGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7XG4gICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBkZXY6IHN0YXQuZGV2LFxuICAgICAgaW5vOiBzdGF0LmlubyxcbiAgICAgIG1vZGU6IHN0YXQubW9kZSxcbiAgICAgIG5saW5rOiBzdGF0Lm5saW5rLFxuICAgICAgdWlkOiBzdGF0LnVpZCxcbiAgICAgIGdpZDogc3RhdC5naWQsXG4gICAgICByZGV2OiBzdGF0LnJkZXYsXG4gICAgICBzaXplOiBzdGF0LnNpemUsXG4gICAgICBhdGltZTogc3RhdC5hdGltZSxcbiAgICAgIG10aW1lOiBzdGF0Lm10aW1lLFxuICAgICAgY3RpbWU6IHN0YXQuY3RpbWUsXG4gICAgICBibGtzaXplOiBzdGF0LmJsa3NpemUsXG4gICAgICBibG9ja3M6IHN0YXQuYmxvY2tzXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRhdHRyKG5vZGU6IEVtc2NyaXB0ZW5GU05vZGUsIGF0dHI6IFN0YXRzKTogdm9pZCB7XG4gICAgdmFyIHBhdGggPSB0aGlzLmZzLnJlYWxQYXRoKG5vZGUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoYXR0ci5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZnMuY2htb2RTeW5jKHBhdGgsIGF0dHIubW9kZSk7XG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgY29tbW9uIG5vZGUgc3RydWN0dXJlIG1vZGUgYXMgd2VsbFxuICAgICAgICBub2RlLm1vZGUgPSBhdHRyLm1vZGU7XG4gICAgICB9XG4gICAgICBpZiAoYXR0ci50aW1lc3RhbXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKGF0dHIudGltZXN0YW1wKTtcbiAgICAgICAgZnMudXRpbWVzU3luYyhwYXRoLCBkYXRlLCBkYXRlKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIWUuY29kZSkgdGhyb3cgZTtcbiAgICAgIC8vIElnbm9yZSBub3Qgc3VwcG9ydGVkIGVycm9ycy4gRW1zY3JpcHRlbiBkb2VzIHV0aW1lc1N5bmMgd2hlbiBpdFxuICAgICAgLy8gd3JpdGVzIGZpbGVzLCBidXQgbmV2ZXIgcmVhbGx5IHJlcXVpcmVzIHRoZSB2YWx1ZSB0byBiZSBzZXQuXG4gICAgICBpZiAoZS5jb2RlICE9PSBcIkVOT1RTVVBcIikge1xuICAgICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChhdHRyLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZnMudHJ1bmNhdGVTeW5jKHBhdGgsIGF0dHIuc2l6ZSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlO1xuICAgICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvb2t1cChwYXJlbnQ6IEVtc2NyaXB0ZW5GU05vZGUsIG5hbWU6IHN0cmluZyk6IEVtc2NyaXB0ZW5GU05vZGUge1xuICAgIHZhciBwYXRoID0gdGhpcy5QQVRILmpvaW4yKHRoaXMuZnMucmVhbFBhdGgocGFyZW50KSwgbmFtZSk7XG4gICAgdmFyIG1vZGUgPSB0aGlzLmZzLmdldE1vZGUocGF0aCk7XG4gICAgcmV0dXJuIHRoaXMuZnMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUpO1xuICB9XG5cbiAgcHVibGljIG1rbm9kKHBhcmVudDogRW1zY3JpcHRlbkZTTm9kZSwgbmFtZTogc3RyaW5nLCBtb2RlOiBudW1iZXIsIGRldjogYW55KTogRW1zY3JpcHRlbkZTTm9kZSB7XG4gICAgdmFyIG5vZGUgPSB0aGlzLmZzLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpO1xuICAgIC8vIGNyZWF0ZSB0aGUgYmFja2luZyBub2RlIGZvciB0aGlzIGluIHRoZSBmcyByb290IGFzIHdlbGxcbiAgICB2YXIgcGF0aCA9IHRoaXMuZnMucmVhbFBhdGgobm9kZSk7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLkZTLmlzRGlyKG5vZGUubW9kZSkpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKHBhdGgsIG5vZGUubW9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgsICcnLCB7IG1vZGU6IG5vZGUubW9kZSB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIWUuY29kZSkgdGhyb3cgZTtcbiAgICAgIHRocm93IG5ldyB0aGlzLkZTLkVycm5vRXJyb3IodGhpcy5FUlJOT19DT0RFU1tlLmNvZGVdKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBwdWJsaWMgcmVuYW1lKG9sZE5vZGU6IEVtc2NyaXB0ZW5GU05vZGUsIG5ld0RpcjogRW1zY3JpcHRlbkZTTm9kZSwgbmV3TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdmFyIG9sZFBhdGggPSB0aGlzLmZzLnJlYWxQYXRoKG9sZE5vZGUpO1xuICAgIHZhciBuZXdQYXRoID0gdGhpcy5QQVRILmpvaW4yKHRoaXMuZnMucmVhbFBhdGgobmV3RGlyKSwgbmV3TmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGZzLnJlbmFtZVN5bmMob2xkUGF0aCwgbmV3UGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7XG4gICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVubGluayhwYXJlbnQ6IEVtc2NyaXB0ZW5GU05vZGUsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHZhciBwYXRoID0gdGhpcy5QQVRILmpvaW4yKHRoaXMuZnMucmVhbFBhdGgocGFyZW50KSwgbmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGZzLnVubGlua1N5bmMocGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7XG4gICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJtZGlyKHBhcmVudDogRW1zY3JpcHRlbkZTTm9kZSwgbmFtZTogc3RyaW5nKSB7XG4gICAgdmFyIHBhdGggPSB0aGlzLlBBVEguam9pbjIodGhpcy5mcy5yZWFsUGF0aChwYXJlbnQpLCBuYW1lKTtcbiAgICB0cnkge1xuICAgICAgZnMucm1kaXJTeW5jKHBhdGgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlO1xuICAgICAgdGhyb3cgbmV3IHRoaXMuRlMuRXJybm9FcnJvcih0aGlzLkVSUk5PX0NPREVTW2UuY29kZV0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkZGlyKG5vZGU6IEVtc2NyaXB0ZW5GU05vZGUpOiBzdHJpbmdbXSB7XG4gICAgdmFyIHBhdGggPSB0aGlzLmZzLnJlYWxQYXRoKG5vZGUpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnMucmVhZGRpclN5bmMocGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7XG4gICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN5bWxpbmsocGFyZW50OiBFbXNjcmlwdGVuRlNOb2RlLCBuZXdOYW1lOiBzdHJpbmcsIG9sZFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHZhciBuZXdQYXRoID0gdGhpcy5QQVRILmpvaW4yKHRoaXMuZnMucmVhbFBhdGgocGFyZW50KSwgbmV3TmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGZzLnN5bWxpbmtTeW5jKG9sZFBhdGgsIG5ld1BhdGgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlO1xuICAgICAgdGhyb3cgbmV3IHRoaXMuRlMuRXJybm9FcnJvcih0aGlzLkVSUk5PX0NPREVTW2UuY29kZV0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkbGluayhub2RlOiBFbXNjcmlwdGVuRlNOb2RlKTogc3RyaW5nIHtcbiAgICB2YXIgcGF0aCA9IHRoaXMuZnMucmVhbFBhdGgobm9kZSk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmcy5yZWFkbGlua1N5bmMocGF0aCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFlLmNvZGUpIHRocm93IGU7XG4gICAgICB0aHJvdyBuZXcgdGhpcy5GUy5FcnJub0Vycm9yKHRoaXMuRVJSTk9fQ09ERVNbZS5jb2RlXSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJGU0Vtc2NyaXB0ZW5GUyBpbXBsZW1lbnRzIEVtc2NyaXB0ZW5GUyB7XG4gIHByaXZhdGUgRlM6IGFueTtcbiAgcHJpdmF0ZSBQQVRIOiBhbnk7XG4gIHByaXZhdGUgRVJSTk9fQ09ERVM6IGFueTtcbiAgY29uc3RydWN0b3IoX0ZTID0gKDxhbnk+IHNlbGYpWydGUyddLCBfUEFUSCA9ICg8YW55PiBzZWxmKVsnUEFUSCddLCBfRVJSTk9fQ09ERVMgPSAoPGFueT4gc2VsZilbJ0VSUk5PX0NPREVTJ10pIHtcbiAgICBpZiAodHlwZW9mIEJyb3dzZXJGUyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkJyb3dzZXJGUyBpcyBub3QgbG9hZGVkLiBQbGVhc2UgbG9hZCBpdCBiZWZvcmUgdGhpcyBsaWJyYXJ5LlwiKTtcbiAgICB9XG4gICAgdGhpcy5GUyA9IF9GUztcbiAgICB0aGlzLlBBVEggPSBfUEFUSDtcbiAgICB0aGlzLkVSUk5PX0NPREVTID0gX0VSUk5PX0NPREVTO1xuICAgIHRoaXMubm9kZV9vcHMgPSBuZXcgQkZTRW1zY3JpcHRlbk5vZGVPcHModGhpcyk7XG4gICAgdGhpcy5zdHJlYW1fb3BzID0gbmV3IEJGU0Vtc2NyaXB0ZW5TdHJlYW1PcHModGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbW91bnQobW91bnQ6IHtvcHRzOiB7cm9vdDogc3RyaW5nfX0pOiBFbXNjcmlwdGVuRlNOb2RlIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVOb2RlKG51bGwsICcvJywgdGhpcy5nZXRNb2RlKG1vdW50Lm9wdHMucm9vdCksIDApO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZU5vZGUocGFyZW50OiBFbXNjcmlwdGVuRlNOb2RlLCBuYW1lOiBzdHJpbmcsIG1vZGU6IG51bWJlciwgZGV2PzogYW55KTogRW1zY3JpcHRlbkZTTm9kZSB7XG4gICAgdmFyIEZTID0gdGhpcy5GUztcbiAgICBpZiAoIUZTLmlzRGlyKG1vZGUpICYmICFGUy5pc0ZpbGUobW9kZSkgJiYgIUZTLmlzTGluayhtb2RlKSkge1xuICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IodGhpcy5FUlJOT19DT0RFUy5FSU5WQUwpO1xuICAgIH1cbiAgICB2YXIgbm9kZSA9IEZTLmNyZWF0ZU5vZGUocGFyZW50LCBuYW1lLCBtb2RlKTtcbiAgICBub2RlLm5vZGVfb3BzID0gdGhpcy5ub2RlX29wcztcbiAgICBub2RlLnN0cmVhbV9vcHMgPSB0aGlzLnN0cmVhbV9vcHM7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9kZShwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHZhciBzdGF0OiBub2RlX2ZzX3N0YXRzLlN0YXRzO1xuICAgIHRyeSB7XG4gICAgICBzdGF0ID0gZnMubHN0YXRTeW5jKHBhdGgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZS5jb2RlKSB0aHJvdyBlO1xuICAgICAgdGhyb3cgbmV3IHRoaXMuRlMuRXJybm9FcnJvcih0aGlzLkVSUk5PX0NPREVTW2UuY29kZV0pO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdC5tb2RlO1xuICB9XG5cbiAgcHVibGljIHJlYWxQYXRoKG5vZGU6IEVtc2NyaXB0ZW5GU05vZGUpOiBzdHJpbmcge1xuICAgIHZhciBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQgIT09IG5vZGUpIHtcbiAgICAgIHBhcnRzLnB1c2gobm9kZS5uYW1lKTtcbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudDtcbiAgICB9XG4gICAgcGFydHMucHVzaChub2RlLm1vdW50Lm9wdHMucm9vdCk7XG4gICAgcGFydHMucmV2ZXJzZSgpO1xuICAgIHJldHVybiB0aGlzLlBBVEguam9pbi5hcHBseShudWxsLCBwYXJ0cyk7XG4gIH1cbiAgLy8gVGhpcyBtYXBzIHRoZSBpbnRlZ2VyIHBlcm1pc3Npb24gbW9kZXMgZnJvbSBodHRwOi8vbGludXguZGllLm5ldC9tYW4vMy9vcGVuXG4gIC8vIHRvIG5vZGUuanMtc3BlY2lmaWMgZmlsZSBvcGVuIHBlcm1pc3Npb24gc3RyaW5ncyBhdCBodHRwOi8vbm9kZWpzLm9yZy9hcGkvZnMuaHRtbCNmc19mc19vcGVuX3BhdGhfZmxhZ3NfbW9kZV9jYWxsYmFja1xuICBwdWJsaWMgZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmdNYXAgPSB7XG4gICAgMC8qT19SRE9OTFkqLzogJ3InLFxuICAgIDEvKk9fV1JPTkxZKi86ICdyKycsXG4gICAgMi8qT19SRFdSKi86ICdyKycsXG4gICAgNjQvKk9fQ1JFQVQqLzogJ3InLFxuICAgIDY1LypPX1dST05MWXxPX0NSRUFUKi86ICdyKycsXG4gICAgNjYvKk9fUkRXUnxPX0NSRUFUKi86ICdyKycsXG4gICAgMTI5LypPX1dST05MWXxPX0VYQ0wqLzogJ3J4KycsXG4gICAgMTkzLypPX1dST05MWXxPX0NSRUFUfE9fRVhDTCovOiAncngrJyxcbiAgICA1MTQvKk9fUkRXUnxPX1RSVU5DKi86ICd3KycsXG4gICAgNTc3LypPX1dST05MWXxPX0NSRUFUfE9fVFJVTkMqLzogJ3cnLFxuICAgIDU3OC8qT19DUkVBVHxPX1JEV1J8T19UUlVOQyovOiAndysnLFxuICAgIDcwNS8qT19XUk9OTFl8T19DUkVBVHxPX0VYQ0x8T19UUlVOQyovOiAnd3gnLFxuICAgIDcwNi8qT19SRFdSfE9fQ1JFQVR8T19FWENMfE9fVFJVTkMqLzogJ3d4KycsXG4gICAgMTAyNC8qT19BUFBFTkQqLzogJ2EnLFxuICAgIDEwMjUvKk9fV1JPTkxZfE9fQVBQRU5EKi86ICdhJyxcbiAgICAxMDI2LypPX1JEV1J8T19BUFBFTkQqLzogJ2ErJyxcbiAgICAxMDg5LypPX1dST05MWXxPX0NSRUFUfE9fQVBQRU5EKi86ICdhJyxcbiAgICAxMDkwLypPX1JEV1J8T19DUkVBVHxPX0FQUEVORCovOiAnYSsnLFxuICAgIDExNTMvKk9fV1JPTkxZfE9fRVhDTHxPX0FQUEVORCovOiAnYXgnLFxuICAgIDExNTQvKk9fUkRXUnxPX0VYQ0x8T19BUFBFTkQqLzogJ2F4KycsXG4gICAgMTIxNy8qT19XUk9OTFl8T19DUkVBVHxPX0VYQ0x8T19BUFBFTkQqLzogJ2F4JyxcbiAgICAxMjE4LypPX1JEV1J8T19DUkVBVHxPX0VYQ0x8T19BUFBFTkQqLzogJ2F4KycsXG4gICAgNDA5Ni8qT19SRE9OTFl8T19EU1lOQyovOiAncnMnLFxuICAgIDQwOTgvKk9fUkRXUnxPX0RTWU5DKi86ICdycysnXG4gIH1cblxuICBwdWJsaWMgZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoZmxhZ3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFyIHBhcnNlZEZsYWdzID0gKHR5cGVvZiBmbGFncyA9PT0gXCJzdHJpbmdcIikgPyBwYXJzZUludChmbGFncywgMTApIDogPG51bWJlcj48YW55PiBmbGFncztcbiAgICBwYXJzZWRGbGFncyAmPSAweDFGRkY7XG4gICAgaWYgKHBhcnNlZEZsYWdzIGluIHRoaXMuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmdNYXApIHtcbiAgICAgIHJldHVybiAoPGFueT4gdGhpcy5mbGFnc1RvUGVybWlzc2lvblN0cmluZ01hcClbcGFyc2VkRmxhZ3NdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmxhZ3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZTKCkge1xuICAgIHJldHVybiB0aGlzLkZTO1xuICB9XG5cbiAgcHVibGljIGdldFBBVEgoKSB7XG4gICAgcmV0dXJuIHRoaXMuUEFUSDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFUlJOT19DT0RFUygpIHtcbiAgICByZXR1cm4gdGhpcy5FUlJOT19DT0RFUztcbiAgfVxuXG4gIHB1YmxpYyBub2RlX29wczogRW1zY3JpcHRlbk5vZGVPcHM7XG4gIHB1YmxpYyBzdHJlYW1fb3BzOiBFbXNjcmlwdGVuU3RyZWFtT3BzO1xufVxuIl19 |
var node_fs_stats_1 = require('../core/node_fs_stats'); | ||
var path = require('../core/node_path'); | ||
var path = require('path'); | ||
var FileIndex = (function () { | ||
@@ -186,2 +186,2 @@ function FileIndex() { | ||
exports.isDirInode = isDirInode; | ||
//# sourceMappingURL=file_index.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmljL2ZpbGVfaW5kZXgudHMiXSwibmFtZXMiOlsiRmlsZUluZGV4IiwiRmlsZUluZGV4LmNvbnN0cnVjdG9yIiwiRmlsZUluZGV4Ll9zcGxpdF9wYXRoIiwiRmlsZUluZGV4LmZpbGVJdGVyYXRvciIsIkZpbGVJbmRleC5hZGRQYXRoIiwiRmlsZUluZGV4LnJlbW92ZVBhdGgiLCJGaWxlSW5kZXgubHMiLCJGaWxlSW5kZXguZ2V0SW5vZGUiLCJGaWxlSW5kZXguZnJvbUxpc3RpbmciLCJGaWxlSW5vZGUiLCJGaWxlSW5vZGUuY29uc3RydWN0b3IiLCJGaWxlSW5vZGUuaXNGaWxlIiwiRmlsZUlub2RlLmlzRGlyIiwiRmlsZUlub2RlLmdldERhdGEiLCJGaWxlSW5vZGUuc2V0RGF0YSIsIkRpcklub2RlIiwiRGlySW5vZGUuY29uc3RydWN0b3IiLCJEaXJJbm9kZS5pc0ZpbGUiLCJEaXJJbm9kZS5pc0RpciIsIkRpcklub2RlLmdldFN0YXRzIiwiRGlySW5vZGUuZ2V0TGlzdGluZyIsIkRpcklub2RlLmdldEl0ZW0iLCJEaXJJbm9kZS5hZGRJdGVtIiwiRGlySW5vZGUucmVtSXRlbSIsImlzRmlsZUlub2RlIiwiaXNEaXJJbm9kZSJdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCLHVCQUF1QixDQUFDLENBQUE7QUFDdEQsSUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFTOUI7SUFPRUE7UUFHRUMsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFFakJBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLEdBQUdBLEVBQUVBLElBQUlBLFFBQVFBLEVBQUVBLENBQUNBLENBQUNBO0lBQ3BDQSxDQUFDQTtJQUtPRCwrQkFBV0EsR0FBbkJBLFVBQW9CQSxDQUFTQTtRQUMzQkUsSUFBSUEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0EsT0FBT0Es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QUFRQSxDQUFDQSxDQUFDQTtRQUNyQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkJBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO1FBQ2RBLENBQUNBO1FBRURBLEVBQUVBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3RCQSxJQUFJQSxRQUFRQSxHQUFHQSxLQUFLQSxDQUFDQSxVQUFVQSxFQUFFQSxDQUFDQTtZQUNsQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsUUFBUUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7Z0JBQ3pDQSxJQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxHQUFHQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM1Q0EsQ0FBQ0E7WUFHREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2pCQSxPQUFPQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMzQkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDZkEsQ0FBQ0E7SUFPTUwsc0JBQUVBLEdBQVRBLFVBQVVBLElBQVlBO1FBQ3BCTSxJQUFJQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM3QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDdkJBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO1FBQ2RBLENBQUNBO1FBQ0RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLEVBQUVBLENBQUNBO0lBQzNCQSxDQUFDQTtJQVFNTiw0QkFBUUEsR0FBZkEsVUFBZ0JBLElBQVlBO1FBQzFCTyxJQUFJQSxTQUFTQSxHQUFHQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN2Q0EsSUFBSUEsT0FBT0EsR0FBR0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDM0JBLElBQUlBLFFBQVFBLEdBQUdBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBRTVCQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtRQUNsQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDekJBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO1FBQ2RBLENBQUNBO1FBRURBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLEtBQUtBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ3JCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUNoQkEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7SUFDbENBLENBQUNBO0lBT2FQLHFCQUFXQSxHQUF6QkEsVUFBMEJBLE9BQU9BO1FBQy9CUSxJQUFJQSxHQUFHQSxHQUFHQSxJQUFJQSxTQUFTQSxFQUFFQSxDQUFDQTtRQUUxQkEsSUFBSUEsU0FBU0EsR0FBR0EsSUFBSUEsUUFBUUEsRUFBRUEsQ0FBQ0E7UUFDL0JBLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLFNBQVNBLENBQUNBO1FBQzVCQSxJQUFJQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQSxFQUFFQSxFQUFFQSxPQUFPQSxFQUFFQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN2Q0EsT0FBT0EsS0FBS0EsQ0FBQ0EsTUFBTUEsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0E7WUFDeEJBLElBQUlBLEtBQUtBLENBQUNBO1lBQ1ZBLElBQUlBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBO1lBQ3ZCQSxJQUFJQSxHQUFHQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNsQkEsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkJBLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3JCQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdEJBLElBQUlBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUMxQkEsSUFBSUEsSUFBSUEsR0FBR0EsRUFBRUEsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ2pDQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDckJBLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLEtBQUtBLEdBQUdBLElBQUlBLFFBQVFBLEVBQUVBLENBQUNBO29CQUMxQ0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsRUFBRUEsUUFBUUEsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3RDQSxDQUFDQTtnQkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBRU5BLEtBQUtBLEdBQUdBLElBQUlBLFNBQVNBLENBQVFBLElBQUlBLHFCQUFLQSxDQUFDQSx3QkFBUUEsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BFQSxDQUFDQTtnQkFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsSUFBSUEsSUFB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QUFDQTtBQUFEQSxDQUFDQSxBQXBFRCxJQW9FQztBQXBFWSxnQkFBUSxXQW9FcEIsQ0FBQTtBQUVELHFCQUErQixLQUFZO0lBQ3pDUyxNQUFNQSxDQUFDQSxLQUFLQSxJQUFJQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQTtBQUNqQ0EsQ0FBQ0E7QUFGZSxtQkFBVyxjQUUxQixDQUFBO0FBRUQsb0JBQTJCLEtBQVk7SUFDckNDLE1BQU1BLENBQUNBLEtBQUtBLElBQUlBLEtBQUtBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO0FBQ2hDQSxDQUFDQTtBQUZlLGtCQUFVLGFBRXpCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0YXRzLCBGaWxlVHlwZX0gZnJvbSAnLi4vY29yZS9ub2RlX2ZzX3N0YXRzJztcbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG4vKipcbiAqIEEgc2ltcGxlIGNsYXNzIGZvciBzdG9yaW5nIGEgZmlsZXN5c3RlbSBpbmRleC4gQXNzdW1lcyB0aGF0IGFsbCBwYXRocyBwYXNzZWRcbiAqIHRvIGl0IGFyZSAqYWJzb2x1dGUqIHBhdGhzLlxuICpcbiAqIENhbiBiZSB1c2VkIGFzIGEgcGFydGlhbCBvciBhIGZ1bGwgaW5kZXgsIGFsdGhvdWdoIGNhcmUgbXVzdCBiZSB0YWtlbiBpZiB1c2VkXG4gKiBmb3IgdGhlIGZvcm1lciBwdXJwb3NlLCBlc3BlY2lhbGx5IHdoZW4gZGlyZWN0b3JpZXMgYXJlIGNvbmNlcm5lZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVJbmRleCB7XG4gIC8vIE1hcHMgZGlyZWN0b3J5IHBhdGhzIHRvIGRpcmVjdG9yeSBpbm9kZXMsIHdoaWNoIGNvbnRhaW4gZmlsZXMuXG4gIHByaXZhdGUgX2luZGV4OiB7W3BhdGg6IHN0cmluZ106IERpcklub2RlfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IEZpbGVJbmRleC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIF9pbmRleCBpcyBhIHNpbmdsZS1sZXZlbCBrZXksdmFsdWUgc3RvcmUgdGhhdCBtYXBzICpkaXJlY3RvcnkqIHBhdGhzIHRvXG4gICAgLy8gRGlySW5vZGVzLiBGaWxlIGluZm9ybWF0aW9uIGlzIG9ubHkgY29udGFpbmVkIGluIERpcklub2RlcyB0aGVtc2VsdmVzLlxuICAgIHRoaXMuX2luZGV4ID0ge307XG4gICAgLy8gQ3JlYXRlIHRoZSByb290IGRpcmVjdG9yeS5cbiAgICB0aGlzLmFkZFBhdGgoJy8nLCBuZXcgRGlySW5vZGUoKSk7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgaW50byBhIChkaXJlY3RvcnkgcGF0aCwgaXRlbSBuYW1lKSBwYWlyXG4gICAqL1xuICBwcml2YXRlIF9zcGxpdF9wYXRoKHA6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICB2YXIgZGlycGF0aCA9IHBhdGguZGlybmFtZShwKTtcbiAgICB2YXIgaXRlbW5hbWUgPSBwLnN1YnN0cihkaXJwYXRoLmxlbmd0aCArIChkaXJwYXRoID09PSBcIi9cIiA/IDAgOiAxKSk7XG4gICAgcmV0dXJuIFtkaXJwYXRoLCBpdGVtbmFtZV07XG4gIH1cblxuICAvKipcbiAgICogUnVucyB0aGUgZ2l2ZW4gZnVuY3Rpb24gb3ZlciBhbGwgZmlsZXMgaW4gdGhlIGluZGV4LlxuICAgKi9cbiAgcHVibGljIGZpbGVJdGVyYXRvcjxUPihjYjogKGZpbGU6IFQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBmb3IgKHZhciBwYXRoIGluIHRoaXMuX2luZGV4KSB7XG4gICAgICB2YXIgZGlyID0gdGhpcy5faW5kZXhbcGF0aF07XG4gICAgICB2YXIgZmlsZXMgPSBkaXIuZ2V0TGlzdGluZygpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgaXRlbSA9IGRpci5nZXRJdGVtKGZpbGVzW2ldKTtcbiAgICAgICAgaWYgKGlzRmlsZUlub2RlPFQ+KGl0ZW0pKSB7XG4gICAgICAgICAgY2IoaXRlbS5nZXREYXRhKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGdpdmVuIGFic29sdXRlIHBhdGggdG8gdGhlIGluZGV4IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGluIHRoZSBpbmRleC5cbiAgICogQ3JlYXRlcyBhbnkgbmVlZGVkIHBhcmVudCBkaXJlY3Rvcmllcy5cbiAgICogQHBhcmFtIFtTdHJpbmddIHBhdGggVGhlIHBhdGggdG8gYWRkIHRvIHRoZSBpbmRleC5cbiAgICogQHBhcmFtIFtCcm93c2VyRlMuRmlsZUlub2RlIHwgQnJvd3NlckZTLkRpcklub2RlXSBpbm9kZSBUaGUgaW5vZGUgZm9yIHRoZVxuICAgKiAgIHBhdGggdG8gYWRkLlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSAnVHJ1ZScgaWYgaXQgd2FzIGFkZGVkIG9yIGFscmVhZHkgZXhpc3RzLCAnZmFsc2UnIGlmIHRoZXJlXG4gICAqICAgd2FzIGFuIGlzc3VlIGFkZGluZyBpdCAoZS5nLiBpdGVtIGluIHBhdGggaXMgYSBmaWxlLCBpdGVtIGV4aXN0cyBidXQgaXNcbiAgICogICBkaWZmZXJlbnQpLlxuICAgKiBAdG9kbyBJZiBhZGRpbmcgZmFpbHMgYW5kIGltcGxpY2l0bHkgY3JlYXRlcyBkaXJlY3Rvcmllcywgd2UgZG8gbm90IGNsZWFuIHVwXG4gICAqICAgdGhlIG5ldyBlbXB0eSBkaXJlY3Rvcmllcy5cbiAgICovXG4gIHB1YmxpYyBhZGRQYXRoKHBhdGg6IHN0cmluZywgaW5vZGU6IElub2RlKTogYm9vbGVhbiB7XG4gICAgaWYgKGlub2RlID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5vZGUgbXVzdCBiZSBzcGVjaWZpZWQnKTtcbiAgICB9XG4gICAgaWYgKHBhdGhbMF0gIT09ICcvJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXRoIG11c3QgYmUgYWJzb2x1dGUsIGdvdDogJyArIHBhdGgpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxuICAgIGlmICh0aGlzLl9pbmRleC5oYXNPd25Qcm9wZXJ0eShwYXRoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2luZGV4W3BhdGhdID09PSBpbm9kZTtcbiAgICB9XG5cbiAgICB2YXIgc3BsaXRQYXRoID0gdGhpcy5fc3BsaXRfcGF0aChwYXRoKTtcbiAgICB2YXIgZGlycGF0aCA9IHNwbGl0UGF0aFswXTtcbiAgICB2YXIgaXRlbW5hbWUgPSBzcGxpdFBhdGhbMV07XG4gICAgLy8gVHJ5IHRvIGFkZCB0byBpdHMgcGFyZW50IGRpcmVjdG9yeSBmaXJzdC5cbiAgICB2YXIgcGFyZW50ID0gdGhpcy5faW5kZXhbZGlycGF0aF07XG4gICAgaWYgKHBhcmVudCA9PT0gdW5kZWZpbmVkICYmIHBhdGggIT09ICcvJykge1xuICAgICAgLy8gQ3JlYXRlIHBhcmVudC5cbiAgICAgIHBhcmVudCA9IG5ldyBEaXJJbm9kZSgpO1xuICAgICAgaWYgKCF0aGlzLmFkZFBhdGgoZGlycGF0aCwgcGFyZW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEFkZCBteXNlbGYgdG8gbXkgcGFyZW50LlxuICAgIGlmIChwYXRoICE9PSAnLycpIHtcbiAgICAgIGlmICghcGFyZW50LmFkZEl0ZW0oaXRlbW5hbWUsIGlub2RlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIElmIEknbSBhIGRpcmVjdG9yeSwgYWRkIG15c2VsZiB0byB0aGUgaW5kZXguXG4gICAgaWYgKGlzRGlySW5vZGUoaW5vZGUpKSB7XG4gICAgICB0aGlzLl9pbmRleFtwYXRoXSA9IGlub2RlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBnaXZlbiBwYXRoLiBDYW4gYmUgYSBmaWxlIG9yIGEgZGlyZWN0b3J5LlxuICAgKiBAcmV0dXJuIFtCcm93c2VyRlMuRmlsZUlub2RlIHwgQnJvd3NlckZTLkRpcklub2RlIHwgbnVsbF0gVGhlIHJlbW92ZWQgaXRlbSxcbiAgICogICBvciBudWxsIGlmIGl0IGRpZCBub3QgZXhpc3QuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUGF0aChwYXRoOiBzdHJpbmcpOiBJbm9kZSB7XG4gICAgdmFyIHNwbGl0UGF0aCA9IHRoaXMuX3NwbGl0X3BhdGgocGF0aCk7XG4gICAgdmFyIGRpcnBhdGggPSBzcGxpdFBhdGhbMF07XG4gICAgdmFyIGl0ZW1uYW1lID0gc3BsaXRQYXRoWzFdO1xuXG4gICAgLy8gVHJ5IHRvIHJlbW92ZSBpdCBmcm9tIGl0cyBwYXJlbnQgZGlyZWN0b3J5IGZpcnN0LlxuICAgIHZhciBwYXJlbnQgPSB0aGlzLl9pbmRleFtkaXJwYXRoXTtcbiAgICBpZiAocGFyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBSZW1vdmUgbXlzZWxmIGZyb20gbXkgcGFyZW50LlxuICAgIHZhciBpbm9kZSA9IHBhcmVudC5yZW1JdGVtKGl0ZW1uYW1lKTtcbiAgICBpZiAoaW5vZGUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBJZiBJJ20gYSBkaXJlY3RvcnksIHJlbW92ZSBteXNlbGYgZnJvbSB0aGUgaW5kZXgsIGFuZCByZW1vdmUgbXkgY2hpbGRyZW4uXG4gICAgaWYgKGlzRGlySW5vZGUoaW5vZGUpKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBpbm9kZS5nZXRMaXN0aW5nKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlUGF0aChwYXRoICsgJy8nICsgY2hpbGRyZW5baV0pO1xuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgdGhlIGRpcmVjdG9yeSBmcm9tIHRoZSBpbmRleCwgdW5sZXNzIGl0J3MgdGhlIHJvb3QuXG4gICAgICBpZiAocGF0aCAhPT0gJy8nKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLl9pbmRleFtwYXRoXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlub2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgZGlyZWN0b3J5IGxpc3Rpbmcgb2YgdGhlIGdpdmVuIHBhdGguXG4gICAqIEByZXR1cm4gW1N0cmluZ1tdXSBBbiBhcnJheSBvZiBmaWxlcyBpbiB0aGUgZ2l2ZW4gcGF0aCwgb3IgJ251bGwnIGlmIGl0IGRvZXNcbiAgICogICBub3QgZXhpc3QuXG4gICAqL1xuICBwdWJsaWMgbHMocGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHZhciBpdGVtID0gdGhpcy5faW5kZXhbcGF0aF07XG4gICAgaWYgKGl0ZW0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBpdGVtLmdldExpc3RpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpbm9kZSBvZiB0aGUgZ2l2ZW4gaXRlbS5cbiAgICogQHBhcmFtIFtTdHJpbmddIHBhdGhcbiAgICogQHJldHVybiBbQnJvd3NlckZTLkZpbGVJbm9kZSB8IEJyb3dzZXJGUy5EaXJJbm9kZSB8IG51bGxdIFJldHVybnMgbnVsbCBpZlxuICAgKiAgIHRoZSBpdGVtIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgcHVibGljIGdldElub2RlKHBhdGg6IHN0cmluZyk6IElub2RlIHtcbiAgICB2YXIgc3BsaXRQYXRoID0gdGhpcy5fc3BsaXRfcGF0aChwYXRoKTtcbiAgICB2YXIgZGlycGF0aCA9IHNwbGl0UGF0aFswXTtcbiAgICB2YXIgaXRlbW5hbWUgPSBzcGxpdFBhdGhbMV07XG4gICAgLy8gUmV0cmlldmUgZnJvbSBpdHMgcGFyZW50IGRpcmVjdG9yeS5cbiAgICB2YXIgcGFyZW50ID0gdGhpcy5faW5kZXhbZGlycGF0aF07XG4gICAgaWYgKHBhcmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gUm9vdCBjYXNlXG4gICAgaWYgKGRpcnBhdGggPT09IHBhdGgpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBwYXJlbnQuZ2V0SXRlbShpdGVtbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogU3RhdGljIG1ldGhvZCBmb3IgY29uc3RydWN0aW5nIGluZGljZXMgZnJvbSBhIEpTT04gbGlzdGluZy5cbiAgICogQHBhcmFtIFtPYmplY3RdIGxpc3RpbmcgRGlyZWN0b3J5IGxpc3RpbmcgZ2VuZXJhdGVkIGJ5IHRvb2xzL1hIUkluZGV4ZXIuY29mZmVlXG4gICAqIEByZXR1cm4gW0Jyb3dzZXJGUy5GaWxlSW5kZXhdIEEgbmV3IEZpbGVJbmRleCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21MaXN0aW5nKGxpc3RpbmcpOiBGaWxlSW5kZXgge1xuICAgIHZhciBpZHggPSBuZXcgRmlsZUluZGV4KCk7XG4gICAgLy8gQWRkIGEgcm9vdCBEaXJOb2RlLlxuICAgIHZhciByb290SW5vZGUgPSBuZXcgRGlySW5vZGUoKTtcbiAgICBpZHguX2luZGV4WycvJ10gPSByb290SW5vZGU7XG4gICAgdmFyIHF1ZXVlID0gW1snJywgbGlzdGluZywgcm9vdElub2RlXV07XG4gICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBpbm9kZTtcbiAgICAgIHZhciBuZXh0ID0gcXVldWUucG9wKCk7XG4gICAgICB2YXIgcHdkID0gbmV4dFswXTtcbiAgICAgIHZhciB0cmVlID0gbmV4dFsxXTtcbiAgICAgIHZhciBwYXJlbnQgPSBuZXh0WzJdO1xuICAgICAgZm9yICh2YXIgbm9kZSBpbiB0cmVlKSB7XG4gICAgICAgIHZhciBjaGlsZHJlbiA9IHRyZWVbbm9kZV07XG4gICAgICAgIHZhciBuYW1lID0gXCJcIiArIHB3ZCArIFwiL1wiICsgbm9kZTtcbiAgICAgICAgaWYgKGNoaWxkcmVuICE9IG51bGwpIHtcbiAgICAgICAgICBpZHguX2luZGV4W25hbWVdID0gaW5vZGUgPSBuZXcgRGlySW5vZGUoKTtcbiAgICAgICAgICBxdWV1ZS5wdXNoKFtuYW1lLCBjaGlsZHJlbiwgaW5vZGVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUaGlzIGlub2RlIGRvZXNuJ3QgaGF2ZSBjb3JyZWN0IHNpemUgaW5mb3JtYXRpb24sIG5vdGVkIHdpdGggLTEuXG4gICAgICAgICAgaW5vZGUgPSBuZXcgRmlsZUlub2RlPFN0YXRzPihuZXcgU3RhdHMoRmlsZVR5cGUuRklMRSwgLTEsIDB4MTZEKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgcGFyZW50Ll9sc1tub2RlXSA9IGlub2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHg7XG4gIH1cbn1cblxuLyoqXG4gKiBHZW5lcmljIGludGVyZmFjZSBmb3IgZmlsZS9kaXJlY3RvcnkgaW5vZGVzLlxuICogTm90ZSB0aGF0IFN0YXRzIG9iamVjdHMgYXJlIHdoYXQgd2UgdXNlIGZvciBmaWxlIGlub2Rlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbm9kZSB7XG4gIC8vIElzIHRoaXMgYW4gaW5vZGUgZm9yIGEgZmlsZT9cbiAgaXNGaWxlKCk6IGJvb2xlYW47XG4gIC8vIElzIHRoaXMgYW4gaW5vZGUgZm9yIGEgZGlyZWN0b3J5P1xuICBpc0RpcigpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIElub2RlIGZvciBhIGZpbGUuIFN0b3JlcyBhbiBhcmJpdHJhcnkgKGZpbGVzeXN0ZW0tc3BlY2lmaWMpIGRhdGEgcGF5bG9hZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEZpbGVJbm9kZTxUPiBpbXBsZW1lbnRzIElub2RlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhOiBUKSB7IH1cbiAgcHVibGljIGlzRmlsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRydWU7IH1cbiAgcHVibGljIGlzRGlyKCk6IGJvb2xlYW4geyByZXR1cm4gZmFsc2U7IH1cbiAgcHVibGljIGdldERhdGEoKTogVCB7IHJldHVybiB0aGlzLmRhdGE7IH1cbiAgcHVibGljIHNldERhdGEoZGF0YTogVCk6IHZvaWQgeyB0aGlzLmRhdGEgPSBkYXRhOyB9XG59XG5cbi8qKlxuICogSW5vZGUgZm9yIGEgZGlyZWN0b3J5LiBDdXJyZW50bHkgb25seSBjb250YWlucyB0aGUgZGlyZWN0b3J5IGxpc3RpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBEaXJJbm9kZSBpbXBsZW1lbnRzIElub2RlIHtcbiAgcHJpdmF0ZSBfbHM6IHtbcGF0aDogc3RyaW5nXTogSW5vZGV9ID0ge307XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGFuIGlub2RlIGZvciBhIGRpcmVjdG9yeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge31cbiAgcHVibGljIGlzRmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcHVibGljIGlzRGlyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIFN0YXRzIG9iamVjdCBmb3IgdGhpcyBpbm9kZS5cbiAgICogQHRvZG8gU2hvdWxkIHByb2JhYmx5IHJlbW92ZSB0aGlzIGF0IHNvbWUgcG9pbnQuIFRoaXMgaXNuJ3QgdGhlXG4gICAqICAgICAgIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBGaWxlSW5kZXguXG4gICAqIEByZXR1cm4gW0Jyb3dzZXJGUy5ub2RlLmZzLlN0YXRzXVxuICAgKi9cbiAgcHVibGljIGdldFN0YXRzKCk6IFN0YXRzIHtcbiAgICByZXR1cm4gbmV3IFN0YXRzKEZpbGVUeXBlLkRJUkVDVE9SWSwgNDA5NiwgMHgxNkQpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbGlzdGluZyBmb3IgdGhpcyBkaXJlY3RvcnkuIFBhdGhzIGluIHRoZSBkaXJlY3RvcnkgYXJlXG4gICAqIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkncyBwYXRoLlxuICAgKiBAcmV0dXJuIFtTdHJpbmdbXV0gVGhlIGRpcmVjdG9yeSBsaXN0aW5nIGZvciB0aGlzIGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBnZXRMaXN0aW5nKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fbHMpO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpbm9kZSBmb3IgdGhlIGluZGljYXRlZCBpdGVtLCBvciBudWxsIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKiBAcGFyYW0gW1N0cmluZ10gcCBOYW1lIG9mIGl0ZW0gaW4gdGhpcyBkaXJlY3RvcnkuXG4gICAqIEByZXR1cm4gW0Jyb3dzZXJGUy5GaWxlSW5vZGUgfCBCcm93c2VyRlMuRGlySW5vZGUgfCBudWxsXVxuICAgKi9cbiAgcHVibGljIGdldEl0ZW0ocDogc3RyaW5nKTogSW5vZGUge1xuICAgIHZhciBfcmVmO1xuICAgIHJldHVybiAoX3JlZiA9IHRoaXMuX2xzW3BdKSAhPSBudWxsID8gX3JlZiA6IG51bGw7XG4gIH1cbiAgLyoqXG4gICAqIEFkZCB0aGUgZ2l2ZW4gaXRlbSB0byB0aGUgZGlyZWN0b3J5IGxpc3RpbmcuIE5vdGUgdGhhdCB0aGUgZ2l2ZW4gaW5vZGUgaXNcbiAgICogbm90IGNvcGllZCwgYW5kIHdpbGwgYmUgbXV0YXRlZCBieSB0aGUgRGlySW5vZGUgaWYgaXQgaXMgYSBEaXJJbm9kZS5cbiAgICogQHBhcmFtIFtTdHJpbmddIHAgSXRlbSBuYW1lIHRvIGFkZCB0byB0aGUgZGlyZWN0b3J5IGxpc3RpbmcuXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLkZpbGVJbm9kZSB8IEJyb3dzZXJGUy5EaXJJbm9kZV0gaW5vZGUgVGhlIGlub2RlIGZvciB0aGVcbiAgICogICBpdGVtIHRvIGFkZCB0byB0aGUgZGlyZWN0b3J5IGlub2RlLlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSBUcnVlIGlmIGl0IHdhcyBhZGRlZCwgZmFsc2UgaWYgaXQgYWxyZWFkeSBleGlzdGVkLlxuICAgKi9cbiAgcHVibGljIGFkZEl0ZW0ocDogc3RyaW5nLCBpbm9kZTogSW5vZGUpOiBib29sZWFuIHtcbiAgICBpZiAocCBpbiB0aGlzLl9scykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9sc1twXSA9IGlub2RlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBnaXZlbiBpdGVtIGZyb20gdGhlIGRpcmVjdG9yeSBsaXN0aW5nLlxuICAgKiBAcGFyYW0gW1N0cmluZ10gcCBOYW1lIG9mIGl0ZW0gdG8gcmVtb3ZlIGZyb20gdGhlIGRpcmVjdG9yeSBsaXN0aW5nLlxuICAgKiBAcmV0dXJuIFtCcm93c2VyRlMuRmlsZUlub2RlIHwgQnJvd3NlckZTLkRpcklub2RlIHwgbnVsbF0gUmV0dXJucyB0aGUgaXRlbVxuICAgKiAgIHJlbW92ZWQsIG9yIG51bGwgaWYgdGhlIGl0ZW0gZGlkIG5vdCBleGlzdC5cbiAgICovXG4gIHB1YmxpYyByZW1JdGVtKHA6IHN0cmluZyk6IElub2RlIHtcbiAgICB2YXIgaXRlbSA9IHRoaXMuX2xzW3BdO1xuICAgIGlmIChpdGVtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBkZWxldGUgdGhpcy5fbHNbcF07XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsZUlub2RlPFQ+KGlub2RlOiBJbm9kZSk6IGlub2RlIGlzIEZpbGVJbm9kZTxUPiB7XG4gIHJldHVybiBpbm9kZSAmJiBpbm9kZS5pc0ZpbGUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGlySW5vZGUoaW5vZGU6IElub2RlKTogaW5vZGUgaXMgRGlySW5vZGUge1xuICByZXR1cm4gaW5vZGUgJiYgaW5vZGUuaXNEaXIoKTtcbn1cbiJdfQ== |
var node_fs_stats_1 = require('../core/node_fs_stats'); | ||
var buffer = require('../core/buffer'); | ||
var Inode = (function () { | ||
@@ -19,3 +18,3 @@ function Inode(id, size, mode, atime, mtime, ctime) { | ||
Inode.prototype.toBuffer = function (buff) { | ||
if (buff === void 0) { buff = new buffer.Buffer(this.getSize()); } | ||
if (buff === void 0) { buff = new Buffer(this.getSize()); } | ||
buff.writeUInt32LE(this.size, 0); | ||
@@ -71,2 +70,2 @@ buff.writeUInt16LE(this.mode, 4); | ||
module.exports = Inode; | ||
//# sourceMappingURL=inode.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJpYy9pbm9kZS50cyJdLCJuYW1lcyI6WyJJbm9kZSIsIklub2RlLmNvbnN0cnVjdG9yIiwiSW5vZGUudG9TdGF0cyIsIklub2RlLmdldFNpemUiLCJJbm9kZS50b0J1ZmZlciIsIklub2RlLnVwZGF0ZSIsIklub2RlLmZyb21CdWZmZXIiLCJJbm9kZS5pc0ZpbGUiLCJJbm9kZS5pc0RpcmVjdG9yeSJdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCLHVCQUF1QixDQUFDLENBQUE7QUFLdEQ7SUFDRUEsZUFBbUJBLEVBQVVBLEVBQ3BCQSxJQUFZQSxFQUNaQSxJQUFZQSxFQUNaQSxLQUFhQSxFQUNiQSxLQUFhQSxFQUNiQSxLQUFhQTtRQUxIQyxPQUFFQSxHQUFGQSxFQUFFQSxDQUFRQTtRQUNwQkEsU0FBSUEsR0FBSkEsSUFBSUEsQ0FBUUE7UUFDWkEsU0FBSUEsR0FBSkEsSUFBSUEsQ0FBUUE7UUFDWkEsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBUUE7UUFDYkEsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBUUE7UUFDYkEsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBUUE7SUFBSUEsQ0FBQ0E7SUFLcEJELHVCQUFPQSxHQUFkQTtRQUNFRSxNQUFNQSxDQUFDQSxJQUFJQSxxQkFBS0EsQ0FDZEEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsS0FBS0Esd0JBQVFBLENBQUNBLFNBQVNBLEdBQUdBLHdCQUFRQSxDQUFDQSxTQUFTQSxHQUFHQSx3QkFBUUEsQ0FBQ0EsSUFBSUEsRUFDaEZBLElBQUlBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLEVBQUVBLElBQUlBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLEVBQUVBLElBQUlBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBO0lBQzVGQSxDQUFDQTtJQUtNRix1QkFBT0EsR0FBZEE7UUFFRUcsTUFBTUEsQ0FBQ0EsRUFBRUEsR0FBR0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDN0JBLENBQUNBO0lBS01ILHdCQUFRQSxHQUFmQSxVQUFnQkEsSUFBNkNBO1FBQTdDSSxvQkFBNkNBLEdBQTdDQSxXQUF1QkEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7UUFDM0RBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO1FBQ2pDQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqQ0EsSUFBSUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDbENBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLEVBQUVBLEVBQUVBLENBQUNBLENBQUNBO1FBQ25DQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUNuQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsRUFBRUEsRUFBRUEsRUFBRUEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsTUFBTUEsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0E7UUFDakRBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2RBLENBQUNBO0lBWU1KLHNCQUFNQSxHQUFiQSxVQUFjQSxLQUFZQTtRQUN4QkssSUFBSUEsVUFBVUEsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDdkJBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLEtBQUtBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQzdCQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQTtZQUN2QkEsVUFBVUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDcEJBLENBQUNBO1FBRURBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLEtBQUtBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQzdCQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQTtZQUN2QkEsVUFBVUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDcEJBLENBQUNBO1FBRURBLElBQUlBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBLEtBQUtBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1FBQ3BDQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxLQUFLQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMzQkEsSUFBSUEsQ0FBQ0EsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0E7WUFDckJBLFVBQVVBLEdBQUdBLElBQUlBLENBQUNBO1FBQ3BCQSxDQUFDQTtRQUVEQSxJQUFJQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQSxLQUFLQSxDQUFDQSxPQUFPQSxFQUFFQSxDQUFDQTtRQUNwQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsS0FBS0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDM0JBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLE9BQU9BLENBQUNBO1lBQ3JCQSxVQUFVQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUNwQkEsQ0FBQ0E7UUFFREEsSUFBSUEsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7UUFDcENBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLEtBQUtBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO1lBQzNCQSxJQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxPQUFPQSxDQUFDQTtZQUNyQkEsVUFBVUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDcEJBLENBQUNBO1FBRURBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBO0lBQ3BCQSxDQUFDQTtJQUthTCxnQkFBVUEsR0FBeEJBLFVBQXlCQSxNQUFrQkE7UUFDekNNLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3pCQSxNQUFNQSxJQUFJQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN4QkEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsS0FBS0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsT0FBT0EsRUFBRUEsRUFBRUEsQ0FBQ0EsRUFDM0NBLE1BQU1BLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBLEVBQ3RCQSxNQUFNQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQSxDQUFDQSxFQUN0QkEsTUFBTUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsRUFDdEJBLE1BQU1BLENBQUNBLFlBQVlBLENBQUNBLEVBQUVBLENBQUNBLEVBQ3ZCQSxNQUFNQSxDQUFDQSxZQUFZQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUN4QkEsQ0FBQ0E7SUFDSkEsQ0FBQ0E7SUFRTU4sc0JBQU1BLEdBQWJBO1FBQ0VPLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLEtBQUtBLHdCQUFRQSxDQUFDQSxJQUFJQSxDQUFDQTtJQUNoREEsQ0FBQ0E7SUFLTVAsMkJBQVdBLEdBQWxCQTtRQUNFUSxNQUFNQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSx3QkFBUUEsQ0FBQ0EsU0FBU0EsQ0FBQ0E7SUFDckRBLENBQUNBO0lBQ0hSLFlBQUNBO0FBQURBLENBQUNBLEFBakhELElBaUhDO0FBRUQsaUJBQVMsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdGF0cywgRmlsZVR5cGV9IGZyb20gJy4uL2NvcmUvbm9kZV9mc19zdGF0cyc7XG5cbi8qKlxuICogR2VuZXJpYyBpbm9kZSBkZWZpbml0aW9uIHRoYXQgY2FuIGVhc2lseSBiZSBzZXJpYWxpemVkLlxuICovXG5jbGFzcyBJbm9kZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBzaXplOiBudW1iZXIsXG4gICAgcHVibGljIG1vZGU6IG51bWJlcixcbiAgICBwdWJsaWMgYXRpbWU6IG51bWJlcixcbiAgICBwdWJsaWMgbXRpbWU6IG51bWJlcixcbiAgICBwdWJsaWMgY3RpbWU6IG51bWJlcikgeyB9XG5cbiAgLyoqXG4gICAqIEhhbmR5IGZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIElub2RlIHRvIGEgTm9kZSBTdGF0cyBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgdG9TdGF0cygpOiBTdGF0cyB7XG4gICAgcmV0dXJuIG5ldyBTdGF0cyhcbiAgICAgICh0aGlzLm1vZGUgJiAweEYwMDApID09PSBGaWxlVHlwZS5ESVJFQ1RPUlkgPyBGaWxlVHlwZS5ESVJFQ1RPUlkgOiBGaWxlVHlwZS5GSUxFLFxuICAgICAgdGhpcy5zaXplLCB0aGlzLm1vZGUsIG5ldyBEYXRlKHRoaXMuYXRpbWUpLCBuZXcgRGF0ZSh0aGlzLm10aW1lKSwgbmV3IERhdGUodGhpcy5jdGltZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2l6ZSBvZiB0aGlzIElub2RlLCBpbiBieXRlcy5cbiAgICovXG4gIHB1YmxpYyBnZXRTaXplKCk6IG51bWJlciB7XG4gICAgLy8gQVNTVU1QVElPTjogSUQgaXMgQVNDSUkgKDEgYnl0ZSBwZXIgY2hhcikuXG4gICAgcmV0dXJuIDMwICsgdGhpcy5pZC5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBpbm9kZSBpbnRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLlxuICAgKi9cbiAgcHVibGljIHRvQnVmZmVyKGJ1ZmY6IE5vZGVCdWZmZXIgPSBuZXcgQnVmZmVyKHRoaXMuZ2V0U2l6ZSgpKSk6IE5vZGVCdWZmZXIge1xuICAgIGJ1ZmYud3JpdGVVSW50MzJMRSh0aGlzLnNpemUsIDApO1xuICAgIGJ1ZmYud3JpdGVVSW50MTZMRSh0aGlzLm1vZGUsIDQpO1xuICAgIGJ1ZmYud3JpdGVEb3VibGVMRSh0aGlzLmF0aW1lLCA2KTtcbiAgICBidWZmLndyaXRlRG91YmxlTEUodGhpcy5tdGltZSwgMTQpO1xuICAgIGJ1ZmYud3JpdGVEb3VibGVMRSh0aGlzLmN0aW1lLCAyMik7XG4gICAgYnVmZi53cml0ZSh0aGlzLmlkLCAzMCwgdGhpcy5pZC5sZW5ndGgsICdhc2NpaScpO1xuICAgIHJldHVybiBidWZmO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIElub2RlIHVzaW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIHN0YXRzIG9iamVjdC4gVXNlZCBieSBmaWxlXG4gICAqIHN5c3RlbXMgYXQgc3luYyB0aW1lLCBlLmcuOlxuICAgKiAtIFByb2dyYW0gb3BlbnMgZmlsZSBhbmQgZ2V0cyBhIEZpbGUgb2JqZWN0LlxuICAgKiAtIFByb2dyYW0gbXV0YXRlcyBmaWxlLiBGaWxlIG9iamVjdCBpcyByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmdcbiAgICogICBtZXRhZGF0YSBjaGFuZ2VzIGxvY2FsbHkgLS0gdHlwaWNhbGx5IGluIGEgU3RhdHMgb2JqZWN0LlxuICAgKiAtIFByb2dyYW0gY2xvc2VzIGZpbGUuIEZpbGUgb2JqZWN0J3MgbWV0YWRhdGEgY2hhbmdlcyBhcmUgc3luY2VkIHdpdGggdGhlXG4gICAqICAgZmlsZSBzeXN0ZW0uXG4gICAqIEByZXR1cm4gVHJ1ZSBpZiBhbnkgY2hhbmdlcyBoYXZlIG9jY3VycmVkLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShzdGF0czogU3RhdHMpOiBib29sZWFuIHtcbiAgICB2YXIgaGFzQ2hhbmdlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnNpemUgIT09IHN0YXRzLnNpemUpIHtcbiAgICAgIHRoaXMuc2l6ZSA9IHN0YXRzLnNpemU7XG4gICAgICBoYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2RlICE9PSBzdGF0cy5tb2RlKSB7XG4gICAgICB0aGlzLm1vZGUgPSBzdGF0cy5tb2RlO1xuICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdmFyIGF0aW1lTXMgPSBzdGF0cy5hdGltZS5nZXRUaW1lKCk7XG4gICAgaWYgKHRoaXMuYXRpbWUgIT09IGF0aW1lTXMpIHtcbiAgICAgIHRoaXMuYXRpbWUgPSBhdGltZU1zO1xuICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdmFyIG10aW1lTXMgPSBzdGF0cy5tdGltZS5nZXRUaW1lKCk7XG4gICAgaWYgKHRoaXMubXRpbWUgIT09IG10aW1lTXMpIHtcbiAgICAgIHRoaXMubXRpbWUgPSBtdGltZU1zO1xuICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdmFyIGN0aW1lTXMgPSBzdGF0cy5jdGltZS5nZXRUaW1lKCk7XG4gICAgaWYgKHRoaXMuY3RpbWUgIT09IGN0aW1lTXMpIHtcbiAgICAgIHRoaXMuY3RpbWUgPSBjdGltZU1zO1xuICAgICAgaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhc0NoYW5nZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIGJ1ZmZlciBpbnRvIGFuIElub2RlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVmZmVyKGJ1ZmZlcjogTm9kZUJ1ZmZlcik6IElub2RlIHtcbiAgICBpZiAoYnVmZmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5PXCIpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IElub2RlKGJ1ZmZlci50b1N0cmluZygnYXNjaWknLCAzMCksXG4gICAgICBidWZmZXIucmVhZFVJbnQzMkxFKDApLFxuICAgICAgYnVmZmVyLnJlYWRVSW50MTZMRSg0KSxcbiAgICAgIGJ1ZmZlci5yZWFkRG91YmxlTEUoNiksXG4gICAgICBidWZmZXIucmVhZERvdWJsZUxFKDE0KSxcbiAgICAgIGJ1ZmZlci5yZWFkRG91YmxlTEUoMjIpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFhYWDogQ29waWVkIGZyb20gU3RhdHMuIFNob3VsZCByZWNvbmNpbGUgdGhlc2UgdHdvIGludG8gc29tZXRoaW5nIG1vcmVcbiAgLy8gICAgICBjb21wYWN0LlxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSBUcnVlIGlmIHRoaXMgaXRlbSBpcyBhIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgaXNGaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tb2RlICYgMHhGMDAwKSA9PT0gRmlsZVR5cGUuRklMRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSBUcnVlIGlmIHRoaXMgaXRlbSBpcyBhIGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBpc0RpcmVjdG9yeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMubW9kZSAmIDB4RjAwMCkgPT09IEZpbGVUeXBlLkRJUkVDVE9SWTtcbiAgfVxufVxuXG5leHBvcnQgPSBJbm9kZTtcbiJdfQ== |
@@ -7,3 +7,2 @@ var __extends = (this && this.__extends) || function (d, b) { | ||
var file = require('../core/file'); | ||
var buffer_1 = require('../core/buffer'); | ||
var api_error_1 = require('../core/api_error'); | ||
@@ -25,3 +24,3 @@ var fs = require('../core/node_fs'); | ||
else { | ||
this._buffer = new buffer_1.Buffer(0); | ||
this._buffer = new Buffer(0); | ||
} | ||
@@ -116,3 +115,3 @@ if (this._stat.size !== this._buffer.length && this._flag.isReadable()) { | ||
if (len > this._buffer.length) { | ||
var buf = new buffer_1.Buffer(len - this._buffer.length); | ||
var buf = new Buffer(len - this._buffer.length); | ||
buf.fill(0); | ||
@@ -126,3 +125,3 @@ this.writeSync(buf, 0, buf.length, this._buffer.length); | ||
this._stat.size = len; | ||
var newBuff = new buffer_1.Buffer(len); | ||
var newBuff = new Buffer(len); | ||
this._buffer.copy(newBuff, 0, 0, len); | ||
@@ -154,3 +153,3 @@ this._buffer = newBuff; | ||
if (endFp > this._buffer.length) { | ||
var newBuff = new buffer_1.Buffer(endFp); | ||
var newBuff = new Buffer(endFp); | ||
this._buffer.copy(newBuff); | ||
@@ -229,2 +228,2 @@ this._buffer = newBuff; | ||
exports.NoSyncFile = NoSyncFile; | ||
//# sourceMappingURL=preload_file.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZF9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyaWMvcHJlbG9hZF9maWxlLnRzIl0sIm5hbWVzIjpbIlByZWxvYWRGaWxlIiwiUHJlbG9hZEZpbGUuY29uc3RydWN0b3IiLCJQcmVsb2FkRmlsZS5pc0RpcnR5IiwiUHJlbG9hZEZpbGUucmVzZXREaXJ0eSIsIlByZWxvYWRGaWxlLmdldEJ1ZmZlciIsIlByZWxvYWRGaWxlLmdldFN0YXRzIiwiUHJlbG9hZEZpbGUuZ2V0RmxhZyIsIlByZWxvYWRGaWxlLmdldFBhdGgiLCJQcmVsb2FkRmlsZS5nZXRQb3MiLCJQcmVsb2FkRmlsZS5hZHZhbmNlUG9zIiwiUHJlbG9hZEZpbGUuc2V0UG9zIiwiUHJlbG9hZEZpbGUuc3luYyIsIlByZWxvYWRGaWxlLnN5bmNTeW5jIiwiUHJlbG9hZEZpbGUuY2xvc2UiLCJQcmVsb2FkRmlsZS5jbG9zZVN5bmMiLCJQcmVsb2FkRmlsZS5zdGF0IiwiUHJlbG9hZEZpbGUuc3RhdFN5bmMiLCJQcmVsb2FkRmlsZS50cnVuY2F0ZSIsIlByZWxvYWRGaWxlLnRydW5jYXRlU3luYyIsIlByZWxvYWRGaWxlLndyaXRlIiwiUHJlbG9hZEZpbGUud3JpdGVTeW5jIiwiUHJlbG9hZEZpbGUucmVhZCIsIlByZWxvYWRGaWxlLnJlYWRTeW5jIiwiUHJlbG9hZEZpbGUuY2htb2QiLCJQcmVsb2FkRmlsZS5jaG1vZFN5bmMiLCJOb1N5bmNGaWxlIiwiTm9TeW5jRmlsZS5jb25zdHJ1Y3RvciIsIk5vU3luY0ZpbGUuc3luYyIsIk5vU3luY0ZpbGUuc3luY1N5bmMiLCJOb1N5bmNGaWxlLmNsb3NlIiwiTm9TeW5jRmlsZS5jbG9zZVN5bmMiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBTyxJQUFJLFdBQVcsY0FBYyxDQUFDLENBQUM7QUFJdEMsMEJBQWtDLG1CQUFtQixDQUFDLENBQUE7QUFDdEQsSUFBTyxFQUFFLFdBQVcsaUJBQWlCLENB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QUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM5QkEsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsTUFBTUEsQ0FBQ0EsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDaERBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBRVpBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLEVBQUVBLEdBQUdBLENBQUNBLE1BQU1BLEVBQUVBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBQ3hEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxhQUFhQSxFQUFFQSxJQUFJQSxFQUFFQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQSxhQUFhQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDakVBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBO1lBQ2xCQSxDQUFDQTtZQUNEQSxNQUFNQSxDQUFDQTtRQUNUQSxDQUFDQTtRQUNEQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxDQUFDQTtRQUV0QkEsSUFBSUEsT0FBT0EsR0FBR0EsSUFBSUEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDOUJBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBLEVBQUVBLENBQUNBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO1FBQ3RDQSxJQUFJQSxDQUFDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQTtRQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsYUFBYUEsRUFBRUEsSUFBSUEsRUFBRUEsQ0FBQ0EsU0FBU0EsRUFBRUEsQ0FBQ0EsYUFBYUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakVBLElBQUlBLENB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SUFBSSxDQUFDLFFBQVEsRUF1Vy9FO0FBdldZLG1CQUFXLGNBdVd2QixDQUFBO0FBTUQ7SUFBa0V5Qiw4QkFBY0E7SUFDOUVBLG9CQUFZQSxHQUFNQSxFQUFFQSxLQUFhQSxFQUFFQSxLQUFlQSxFQUFFQSxLQUFZQSxFQUFFQSxRQUFxQkE7UUFDckZDLGtCQUFNQSxHQUFHQSxFQUFFQSxLQUFLQSxFQUFFQSxLQUFLQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxDQUFDQSxDQUFDQTtJQUM1Q0EsQ0FBQ0E7SUFLTUQseUJBQUlBLEdBQVhBLFVBQVlBLEVBQTBCQTtRQUNwQ0UsRUFBRUEsRUFBRUEsQ0FBQ0E7SUFDUEEsQ0FBQ0E7SUFJTUYsNkJBQVFBLEdBQWZBLGNBQXlCRyxDQUFDQTtJQUtuQkgsMEJBQUtBLEdBQVpBLFVBQWFBLEVBQTBCQTtRQUNyQ0ksRUFBRUEsRUFBRUEsQ0FBQ0E7SUFDUEEsQ0FBQ0E7SUFJTUosOEJBQVNBLEdBQWhCQSxjQUEwQkssQ0FBQ0E7SUFDN0JMLGlCQUFDQTtBQUFEQSxDQUFDQSxBQTFCRCxFQUFrRSxXQUFXLEVBMEI1RTtBQTFCWSxrQkFBVSxhQTBCdEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWxlID0gcmVxdWlyZSgnLi4vY29yZS9maWxlJyk7XG5pbXBvcnQgZmlsZV9zeXN0ZW0gPSByZXF1aXJlKCcuLi9jb3JlL2ZpbGVfc3lzdGVtJyk7XG5pbXBvcnQge1N0YXRzfSBmcm9tICcuLi9jb3JlL25vZGVfZnNfc3RhdHMnO1xuaW1wb3J0IHtGaWxlRmxhZ30gZnJvbSAnLi4vY29yZS9maWxlX2ZsYWcnO1xuaW1wb3J0IHtBcGlFcnJvciwgRXJyb3JDb2RlfSBmcm9tICcuLi9jb3JlL2FwaV9lcnJvcic7XG5pbXBvcnQgZnMgPSByZXF1aXJlKCcuLi9jb3JlL25vZGVfZnMnKTtcblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRmlsZSBpbnRlcmZhY2UgdGhhdCBvcGVyYXRlcyBvbiBhIGZpbGUgdGhhdCBpc1xuICogY29tcGxldGVseSBpbi1tZW1vcnkuIFByZWxvYWRGaWxlcyBhcmUgYmFja2VkIGJ5IGEgQnVmZmVyLlxuICpcbiAqIFRoaXMgaXMgYWxzbyBhbiBhYnN0cmFjdCBjbGFzcywgYXMgaXQgbGFja3MgYW4gaW1wbGVtZW50YXRpb24gb2YgJ3N5bmMnIGFuZFxuICogJ2Nsb3NlJy4gRWFjaCBmaWxlc3lzdGVtIHRoYXQgd2lzaGVzIHRvIHVzZSB0aGlzIGZpbGUgcmVwcmVzZW50YXRpb24gbXVzdFxuICogZXh0ZW5kIHRoaXMgY2xhc3MgYW5kIGltcGxlbWVudCB0aG9zZSB0d28gbWV0aG9kcy5cbiAqIEB0b2RvICdjbG9zZScgbGV2ZXIgdGhhdCBkaXNhYmxlcyBmdW5jdGlvbmFsaXR5IG9uY2UgY2xvc2VkLlxuICovXG5leHBvcnQgY2xhc3MgUHJlbG9hZEZpbGU8VCBleHRlbmRzIGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0+IGV4dGVuZHMgZmlsZS5CYXNlRmlsZSB7XG4gIHByaXZhdGUgX3BvczogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfcGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2ZzOiBUO1xuICBwcml2YXRlIF9zdGF0OiBTdGF0cztcbiAgcHJpdmF0ZSBfZmxhZzogRmlsZUZsYWc7XG4gIHByaXZhdGUgX2J1ZmZlcjogTm9kZUJ1ZmZlcjtcbiAgcHJpdmF0ZSBfZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmaWxlIHdpdGggdGhlIGdpdmVuIHBhdGggYW5kLCBvcHRpb25hbGx5LCB0aGUgZ2l2ZW4gY29udGVudHMuIE5vdGVcbiAgICogdGhhdCwgaWYgY29udGVudHMgaXMgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIG11dGF0ZWQgYnkgdGhlIGZpbGUhXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLkZpbGVTeXN0ZW1dIF9mcyBUaGUgZmlsZSBzeXN0ZW0gdGhhdCBjcmVhdGVkIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW1N0cmluZ10gX3BhdGhcbiAgICogQHBhcmFtIFtCcm93c2VyRlMuRmlsZU1vZGVdIF9tb2RlIFRoZSBtb2RlIHRoYXQgdGhlIGZpbGUgd2FzIG9wZW5lZCB1c2luZy5cbiAgICogICBEaWN0YXRlcyBwZXJtaXNzaW9ucyBhbmQgd2hlcmUgdGhlIGZpbGUgcG9pbnRlciBzdGFydHMuXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLm5vZGUuZnMuU3RhdHNdIF9zdGF0IFRoZSBzdGF0cyBvYmplY3QgZm9yIHRoZSBnaXZlbiBmaWxlLlxuICAgKiAgIFByZWxvYWRGaWxlIHdpbGwgbXV0YXRlIHRoaXMgb2JqZWN0LiBOb3RlIHRoYXQgdGhpcyBvYmplY3QgbXVzdCBjb250YWluXG4gICAqICAgdGhlIGFwcHJvcHJpYXRlIG1vZGUgdGhhdCB0aGUgZmlsZSB3YXMgb3BlbmVkIGFzLlxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5ub2RlLkJ1ZmZlcj9dIGNvbnRlbnRzIEEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGVudGlyZVxuICAgKiAgIGNvbnRlbnRzIG9mIHRoZSBmaWxlLiBQcmVsb2FkRmlsZSB3aWxsIG11dGF0ZSB0aGlzIGJ1ZmZlci4gSWYgbm90XG4gICAqICAgc3BlY2lmaWVkLCB3ZSBhc3N1bWUgaXQgaXMgYSBuZXcgZmlsZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKF9mczogVCwgX3BhdGg6IHN0cmluZywgX2ZsYWc6IEZpbGVGbGFnLCBfc3RhdDogU3RhdHMsIGNvbnRlbnRzPzogTm9kZUJ1ZmZlcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZnMgPSBfZnM7XG4gICAgdGhpcy5fcGF0aCA9IF9wYXRoO1xuICAgIHRoaXMuX2ZsYWcgPSBfZmxhZztcbiAgICB0aGlzLl9zdGF0ID0gX3N0YXQ7XG4gICAgaWYgKGNvbnRlbnRzICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2J1ZmZlciA9IGNvbnRlbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFbXB0eSBidWZmZXIuIEl0J2xsIGV4cGFuZCBvbmNlIHdlIHdyaXRlIHN0dWZmIHRvIGl0LlxuICAgICAgdGhpcy5fYnVmZmVyID0gbmV3IEJ1ZmZlcigwKTtcbiAgICB9XG4gICAgLy8gTm90ZTogVGhpcyBpbnZhcmlhbnQgaXMgKm5vdCogbWFpbnRhaW5lZCBvbmNlIHRoZSBmaWxlIHN0YXJ0cyBnZXR0aW5nXG4gICAgLy8gbW9kaWZpZWQuXG4gICAgLy8gTm90ZTogT25seSBhY3R1YWxseSBtYXR0ZXJzIGlmIGZpbGUgaXMgcmVhZGFibGUsIGFzIHdyaXRlYWJsZSBtb2RlcyBtYXlcbiAgICAvLyB0cnVuY2F0ZS9hcHBlbmQgdG8gZmlsZS5cbiAgICBpZiAodGhpcy5fc3RhdC5zaXplICE9PSB0aGlzLl9idWZmZXIubGVuZ3RoICYmIHRoaXMuX2ZsYWcuaXNSZWFkYWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJ1ZmZlcjogQnVmZmVyIGlzIFwiICsgdGhpcy5fYnVmZmVyLmxlbmd0aCArIFwiIGxvbmcsIHlldCBTdGF0cyBvYmplY3Qgc3BlY2lmaWVzIHRoYXQgZmlsZSBpcyBcIiArIHRoaXMuX3N0YXQuc2l6ZSArIFwiIGxvbmcuXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpc0RpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXJ0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGRpcnR5IGJpdC4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGEgc3luYyBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIHByb3RlY3RlZCByZXNldERpcnR5KCkge1xuICAgIHRoaXMuX2RpcnR5ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTk9OU1RBTkRBUkQ6IEdldCB0aGUgdW5kZXJseWluZyBidWZmZXIgZm9yIHRoaXMgZmlsZS4gISFETyBOT1QgTVVUQVRFISEgV2lsbCBtZXNzIHVwIGRpcnR5IHRyYWNraW5nLlxuICAgKi9cbiAgcHVibGljIGdldEJ1ZmZlcigpOiBOb2RlQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5fYnVmZmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIE5PTlNUQU5EQVJEOiBHZXQgdW5kZXJseWluZyBzdGF0cyBmb3IgdGhpcyBmaWxlLiAhIURPIE5PVCBNVVRBVEUhIVxuICAgKi9cbiAgcHVibGljIGdldFN0YXRzKCk6IFN0YXRzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnKCk6IEZpbGVGbGFnIHtcbiAgICByZXR1cm4gdGhpcy5fZmxhZztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBhdGggdG8gdGhpcyBmaWxlLlxuICAgKiBAcmV0dXJuIFtTdHJpbmddIFRoZSBwYXRoIHRvIHRoZSBmaWxlLlxuICAgKi9cbiAgcHVibGljIGdldFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgZmlsZSBwb3NpdGlvbi5cbiAgICpcbiAgICogV2UgZW11bGF0ZSB0aGUgZm9sbG93aW5nIGJ1ZyBtZW50aW9uZWQgaW4gdGhlIE5vZGUgZG9jdW1lbnRhdGlvbjpcbiAgICogPiBPbiBMaW51eCwgcG9zaXRpb25hbCB3cml0ZXMgZG9uJ3Qgd29yayB3aGVuIHRoZSBmaWxlIGlzIG9wZW5lZCBpbiBhcHBlbmRcbiAgICogICBtb2RlLiBUaGUga2VybmVsIGlnbm9yZXMgdGhlIHBvc2l0aW9uIGFyZ3VtZW50IGFuZCBhbHdheXMgYXBwZW5kcyB0aGUgZGF0YVxuICAgKiAgIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUuXG4gICAqIEByZXR1cm4gW051bWJlcl0gVGhlIGN1cnJlbnQgZmlsZSBwb3NpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBnZXRQb3MoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5fZmxhZy5pc0FwcGVuZGFibGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3N0YXQuc2l6ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3BvcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZHZhbmNlIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24gYnkgdGhlIGluZGljYXRlZCBudW1iZXIgb2YgcG9zaXRpb25zLlxuICAgKiBAcGFyYW0gW051bWJlcl0gZGVsdGFcbiAgICovXG4gIHB1YmxpYyBhZHZhbmNlUG9zKGRlbHRhOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wb3MgKz0gZGVsdGE7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBmaWxlIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gW051bWJlcl0gbmV3UG9zXG4gICAqL1xuICBwdWJsaWMgc2V0UG9zKG5ld1BvczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcG9zID0gbmV3UG9zO1xuICB9XG5cbiAgLyoqXG4gICAqICoqQ29yZSoqOiBBc3luY2hyb25vdXMgc3luYy4gTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIG9mIHRoaXNcbiAgICogY2xhc3MuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHB1YmxpYyBzeW5jKGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuc3luY1N5bmMoKTtcbiAgICAgIGNiKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY2IoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICoqQ29yZSoqOiBTeW5jaHJvbm91cyBzeW5jLlxuICAgKi9cbiAgcHVibGljIHN5bmNTeW5jKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PVFNVUCk7XG4gIH1cblxuICAvKipcbiAgICogKipDb3JlKio6IEFzeW5jaHJvbm91cyBjbG9zZS4gTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIG9mIHRoaXNcbiAgICogY2xhc3MuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHB1YmxpYyBjbG9zZShjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmNsb3NlU3luYygpO1xuICAgICAgY2IoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjYihlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogKipDb3JlKio6IFN5bmNocm9ub3VzIGNsb3NlLlxuICAgKi9cbiAgcHVibGljIGNsb3NlU3luYygpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVOT1RTVVApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91cyBgc3RhdGAuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBCcm93c2VyRlMubm9kZS5mcy5TdGF0cyldIGNiXG4gICAqL1xuICBwdWJsaWMgc3RhdChjYjogKGU6IEFwaUVycm9yLCBzdGF0PzogU3RhdHMpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY2IobnVsbCwgdGhpcy5fc3RhdC5jbG9uZSgpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjYihlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25vdXMgYHN0YXRgLlxuICAgKi9cbiAgcHVibGljIHN0YXRTeW5jKCk6IFN0YXRzIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdC5jbG9uZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91cyB0cnVuY2F0ZS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIGxlblxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICBwdWJsaWMgdHJ1bmNhdGUobGVuOiBudW1iZXIsIGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudHJ1bmNhdGVTeW5jKGxlbik7XG4gICAgICBpZiAodGhpcy5fZmxhZy5pc1N5bmNocm9ub3VzKCkgJiYgIWZzLmdldFJvb3RGUygpLnN1cHBvcnRzU3luY2goKSkge1xuICAgICAgICB0aGlzLnN5bmMoY2IpO1xuICAgICAgfVxuICAgICAgY2IoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gY2IoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN5bmNocm9ub3VzIHRydW5jYXRlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gbGVuXG4gICAqL1xuICBwdWJsaWMgdHJ1bmNhdGVTeW5jKGxlbjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fZGlydHkgPSB0cnVlO1xuICAgIGlmICghdGhpcy5fZmxhZy5pc1dyaXRlYWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgQXBpRXJyb3IoRXJyb3JDb2RlLkVQRVJNLCAnRmlsZSBub3Qgb3BlbmVkIHdpdGggYSB3cml0ZWFibGUgbW9kZS4nKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdC5tdGltZSA9IG5ldyBEYXRlKCk7XG4gICAgaWYgKGxlbiA+IHRoaXMuX2J1ZmZlci5sZW5ndGgpIHtcbiAgICAgIHZhciBidWYgPSBuZXcgQnVmZmVyKGxlbiAtIHRoaXMuX2J1ZmZlci5sZW5ndGgpO1xuICAgICAgYnVmLmZpbGwoMCk7XG4gICAgICAvLyBXcml0ZSB3aWxsIHNldCBAX3N0YXQuc2l6ZSBmb3IgdXMuXG4gICAgICB0aGlzLndyaXRlU3luYyhidWYsIDAsIGJ1Zi5sZW5ndGgsIHRoaXMuX2J1ZmZlci5sZW5ndGgpO1xuICAgICAgaWYgKHRoaXMuX2ZsYWcuaXNTeW5jaHJvbm91cygpICYmIGZzLmdldFJvb3RGUygpLnN1cHBvcnRzU3luY2goKSkge1xuICAgICAgICB0aGlzLnN5bmNTeW5jKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3N0YXQuc2l6ZSA9IGxlbjtcbiAgICAvLyBUcnVuY2F0ZSBidWZmZXIgdG8gJ2xlbicuXG4gICAgdmFyIG5ld0J1ZmYgPSBuZXcgQnVmZmVyKGxlbik7XG4gICAgdGhpcy5fYnVmZmVyLmNvcHkobmV3QnVmZiwgMCwgMCwgbGVuKTtcbiAgICB0aGlzLl9idWZmZXIgPSBuZXdCdWZmO1xuICAgIGlmICh0aGlzLl9mbGFnLmlzU3luY2hyb25vdXMoKSAmJiBmcy5nZXRSb290RlMoKS5zdXBwb3J0c1N5bmNoKCkpIHtcbiAgICAgIHRoaXMuc3luY1N5bmMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgYnVmZmVyIHRvIHRoZSBmaWxlLlxuICAgKiBOb3RlIHRoYXQgaXQgaXMgdW5zYWZlIHRvIHVzZSBmcy53cml0ZSBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBmaWxlXG4gICAqIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5ub2RlLkJ1ZmZlcl0gYnVmZmVyIEJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIHdyaXRlIHRvXG4gICAqICB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG9mZnNldCBPZmZzZXQgaW4gdGhlIGJ1ZmZlciB0byBzdGFydCByZWFkaW5nIGRhdGEgZnJvbS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIGxlbmd0aCBUaGUgYW1vdW50IG9mIGJ5dGVzIHRvIHdyaXRlIHRvIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gcG9zaXRpb24gT2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSB3aGVyZSB0aGlzXG4gICAqICAgZGF0YSBzaG91bGQgYmUgd3JpdHRlbi4gSWYgcG9zaXRpb24gaXMgbnVsbCwgdGhlIGRhdGEgd2lsbCBiZSB3cml0dGVuIGF0XG4gICAqICAgdGhlIGN1cnJlbnQgcG9zaXRpb24uXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yLCBOdW1iZXIsIEJyb3dzZXJGUy5ub2RlLkJ1ZmZlcildXG4gICAqICAgY2IgVGhlIG51bWJlciBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIGludG8gdGhlIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgd3JpdGUoYnVmZmVyOiBOb2RlQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIHBvc2l0aW9uOiBudW1iZXIsIGNiOiAoZTogQXBpRXJyb3IsIGxlbj86IG51bWJlciwgYnVmZj86IE5vZGVCdWZmZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY2IobnVsbCwgdGhpcy53cml0ZVN5bmMoYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pLCBidWZmZXIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNiKGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSBidWZmZXIgdG8gdGhlIGZpbGUuXG4gICAqIE5vdGUgdGhhdCBpdCBpcyB1bnNhZmUgdG8gdXNlIGZzLndyaXRlU3luYyBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBmaWxlXG4gICAqIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNhbGxiYWNrLlxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5ub2RlLkJ1ZmZlcl0gYnVmZmVyIEJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIHdyaXRlIHRvXG4gICAqICB0aGUgZmlsZS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG9mZnNldCBPZmZzZXQgaW4gdGhlIGJ1ZmZlciB0byBzdGFydCByZWFkaW5nIGRhdGEgZnJvbS5cbiAgICogQHBhcmFtIFtOdW1iZXJdIGxlbmd0aCBUaGUgYW1vdW50IG9mIGJ5dGVzIHRvIHdyaXRlIHRvIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW051bWJlcl0gcG9zaXRpb24gT2Zmc2V0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSB3aGVyZSB0aGlzXG4gICAqICAgZGF0YSBzaG91bGQgYmUgd3JpdHRlbi4gSWYgcG9zaXRpb24gaXMgbnVsbCwgdGhlIGRhdGEgd2lsbCBiZSB3cml0dGVuIGF0XG4gICAqICAgdGhlIGN1cnJlbnQgcG9zaXRpb24uXG4gICAqIEByZXR1cm4gW051bWJlcl1cbiAgICovXG4gIHB1YmxpYyB3cml0ZVN5bmMoYnVmZmVyOiBOb2RlQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIsIHBvc2l0aW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcbiAgICBpZiAocG9zaXRpb24gPT0gbnVsbCkge1xuICAgICAgcG9zaXRpb24gPSB0aGlzLmdldFBvcygpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2ZsYWcuaXNXcml0ZWFibGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FUEVSTSwgJ0ZpbGUgbm90IG9wZW5lZCB3aXRoIGEgd3JpdGVhYmxlIG1vZGUuJyk7XG4gICAgfVxuICAgIHZhciBlbmRGcCA9IHBvc2l0aW9uICsgbGVuZ3RoO1xuICAgIGlmIChlbmRGcCA+IHRoaXMuX3N0YXQuc2l6ZSkge1xuICAgICAgdGhpcy5fc3RhdC5zaXplID0gZW5kRnA7XG4gICAgICBpZiAoZW5kRnAgPiB0aGlzLl9idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIC8vIEV4dGVuZCB0aGUgYnVmZmVyIVxuICAgICAgICB2YXIgbmV3QnVmZiA9IG5ldyBCdWZmZXIoZW5kRnApO1xuICAgICAgICB0aGlzLl9idWZmZXIuY29weShuZXdCdWZmKTtcbiAgICAgICAgdGhpcy5fYnVmZmVyID0gbmV3QnVmZjtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGxlbiA9IGJ1ZmZlci5jb3B5KHRoaXMuX2J1ZmZlciwgcG9zaXRpb24sIG9mZnNldCwgb2Zmc2V0ICsgbGVuZ3RoKTtcbiAgICB0aGlzLl9zdGF0Lm10aW1lID0gbmV3IERhdGUoKTtcbiAgICBpZiAodGhpcy5fZmxhZy5pc1N5bmNocm9ub3VzKCkpIHtcbiAgICAgIHRoaXMuc3luY1N5bmMoKTtcbiAgICAgIHJldHVybiBsZW47XG4gICAgfVxuICAgIHRoaXMuc2V0UG9zKHBvc2l0aW9uICsgbGVuKTtcbiAgICByZXR1cm4gbGVuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgZGF0YSBmcm9tIHRoZSBmaWxlLlxuICAgKiBAcGFyYW0gW0Jyb3dzZXJGUy5ub2RlLkJ1ZmZlcl0gYnVmZmVyIFRoZSBidWZmZXIgdGhhdCB0aGUgZGF0YSB3aWxsIGJlXG4gICAqICAgd3JpdHRlbiB0by5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG9mZnNldCBUaGUgb2Zmc2V0IHdpdGhpbiB0aGUgYnVmZmVyIHdoZXJlIHdyaXRpbmcgd2lsbFxuICAgKiAgIHN0YXJ0LlxuICAgKiBAcGFyYW0gW051bWJlcl0gbGVuZ3RoIEFuIGludGVnZXIgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBwb3NpdGlvbiBBbiBpbnRlZ2VyIHNwZWNpZnlpbmcgd2hlcmUgdG8gYmVnaW4gcmVhZGluZyBmcm9tXG4gICAqICAgaW4gdGhlIGZpbGUuIElmIHBvc2l0aW9uIGlzIG51bGwsIGRhdGEgd2lsbCBiZSByZWFkIGZyb20gdGhlIGN1cnJlbnQgZmlsZVxuICAgKiAgIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvciwgTnVtYmVyLCBCcm93c2VyRlMubm9kZS5CdWZmZXIpXSBjYiBUaGVcbiAgICogICBudW1iZXIgaXMgdGhlIG51bWJlciBvZiBieXRlcyByZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZChidWZmZXI6IE5vZGVCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgcG9zaXRpb246IG51bWJlciwgY2I6IChlOiBBcGlFcnJvciwgbGVuPzogbnVtYmVyLCBidWZmPzogTm9kZUJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjYihudWxsLCB0aGlzLnJlYWRTeW5jKGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSwgYnVmZmVyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjYihlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVhZCBkYXRhIGZyb20gdGhlIGZpbGUuXG4gICAqIEBwYXJhbSBbQnJvd3NlckZTLm5vZGUuQnVmZmVyXSBidWZmZXIgVGhlIGJ1ZmZlciB0aGF0IHRoZSBkYXRhIHdpbGwgYmVcbiAgICogICB3cml0dGVuIHRvLlxuICAgKiBAcGFyYW0gW051bWJlcl0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBidWZmZXIgd2hlcmUgd3JpdGluZyB3aWxsXG4gICAqICAgc3RhcnQuXG4gICAqIEBwYXJhbSBbTnVtYmVyXSBsZW5ndGggQW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIHBvc2l0aW9uIEFuIGludGVnZXIgc3BlY2lmeWluZyB3aGVyZSB0byBiZWdpbiByZWFkaW5nIGZyb21cbiAgICogICBpbiB0aGUgZmlsZS4gSWYgcG9zaXRpb24gaXMgbnVsbCwgZGF0YSB3aWxsIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBmaWxlXG4gICAqICAgcG9zaXRpb24uXG4gICAqIEByZXR1cm4gW051bWJlcl1cbiAgICovXG4gIHB1YmxpYyByZWFkU3luYyhidWZmZXI6IE5vZGVCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlciwgcG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLl9mbGFnLmlzUmVhZGFibGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEFwaUVycm9yKEVycm9yQ29kZS5FUEVSTSwgJ0ZpbGUgbm90IG9wZW5lZCB3aXRoIGEgcmVhZGFibGUgbW9kZS4nKTtcbiAgICB9XG4gICAgaWYgKHBvc2l0aW9uID09IG51bGwpIHtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5nZXRQb3MoKTtcbiAgICB9XG4gICAgdmFyIGVuZFJlYWQgPSBwb3NpdGlvbiArIGxlbmd0aDtcbiAgICBpZiAoZW5kUmVhZCA+IHRoaXMuX3N0YXQuc2l6ZSkge1xuICAgICAgbGVuZ3RoID0gdGhpcy5fc3RhdC5zaXplIC0gcG9zaXRpb247XG4gICAgfVxuICAgIHZhciBydiA9IHRoaXMuX2J1ZmZlci5jb3B5KGJ1ZmZlciwgb2Zmc2V0LCBwb3NpdGlvbiwgcG9zaXRpb24gKyBsZW5ndGgpO1xuICAgIHRoaXMuX3N0YXQuYXRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuX3BvcyA9IHBvc2l0aW9uICsgbGVuZ3RoO1xuICAgIHJldHVybiBydjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXMgYGZjaG1vZGAuXG4gICAqIEBwYXJhbSBbTnVtYmVyfFN0cmluZ10gbW9kZVxuICAgKiBAcGFyYW0gW0Z1bmN0aW9uKEJyb3dzZXJGUy5BcGlFcnJvcildIGNiXG4gICAqL1xuICBwdWJsaWMgY2htb2QobW9kZTogbnVtYmVyLCBjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmNobW9kU3luYyhtb2RlKTtcbiAgICAgIGNiKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY2IoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91cyBgZmNobW9kYC5cbiAgICogQHBhcmFtIFtOdW1iZXJdIG1vZGVcbiAgICovXG4gIHB1YmxpYyBjaG1vZFN5bmMobW9kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9mcy5zdXBwb3J0c1Byb3BzKCkpIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRU5PVFNVUCk7XG4gICAgfVxuICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcbiAgICB0aGlzLl9zdGF0LmNobW9kKG1vZGUpO1xuICAgIHRoaXMuc3luY1N5bmMoKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpbGUgY2xhc3MgZm9yIHRoZSBJbk1lbW9yeSBhbmQgWEhSIGZpbGUgc3lzdGVtcy5cbiAqIERvZXNuJ3Qgc3luYyB0byBhbnl0aGluZywgc28gaXQgd29ya3MgbmljZWx5IGZvciBtZW1vcnktb25seSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vU3luY0ZpbGU8VCBleHRlbmRzIGZpbGVfc3lzdGVtLkZpbGVTeXN0ZW0+IGV4dGVuZHMgUHJlbG9hZEZpbGU8VD4gaW1wbGVtZW50cyBmaWxlLkZpbGUge1xuICBjb25zdHJ1Y3RvcihfZnM6IFQsIF9wYXRoOiBzdHJpbmcsIF9mbGFnOiBGaWxlRmxhZywgX3N0YXQ6IFN0YXRzLCBjb250ZW50cz86IE5vZGVCdWZmZXIpIHtcbiAgICBzdXBlcihfZnMsIF9wYXRoLCBfZmxhZywgX3N0YXQsIGNvbnRlbnRzKTtcbiAgfVxuICAvKipcbiAgICogQXN5bmNocm9ub3VzIHN5bmMuIERvZXNuJ3QgZG8gYW55dGhpbmcsIHNpbXBseSBjYWxscyB0aGUgY2IuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHB1YmxpYyBzeW5jKGNiOiAoZT86IEFwaUVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgY2IoKTtcbiAgfVxuICAvKipcbiAgICogU3luY2hyb25vdXMgc3luYy4gRG9lc24ndCBkbyBhbnl0aGluZy5cbiAgICovXG4gIHB1YmxpYyBzeW5jU3luYygpOiB2b2lkIHt9XG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXMgY2xvc2UuIERvZXNuJ3QgZG8gYW55dGhpbmcsIHNpbXBseSBjYWxscyB0aGUgY2IuXG4gICAqIEBwYXJhbSBbRnVuY3Rpb24oQnJvd3NlckZTLkFwaUVycm9yKV0gY2JcbiAgICovXG4gIHB1YmxpYyBjbG9zZShjYjogKGU/OiBBcGlFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNiKCk7XG4gIH1cbiAgLyoqXG4gICAqIFN5bmNocm9ub3VzIGNsb3NlLiBEb2Vzbid0IGRvIGFueXRoaW5nLlxuICAgKi9cbiAgcHVibGljIGNsb3NlU3luYygpOiB2b2lkIHt9XG59XG4iXX0= |
@@ -6,3 +6,2 @@ /** | ||
var util = require('../core/util'); | ||
var buffer_1 = require('../core/buffer'); | ||
var api_error_1 = require('../core/api_error'); | ||
@@ -40,3 +39,3 @@ function getIEByteArray(IEByteArray) { | ||
data_array = getIEByteArray(req.responseBody); | ||
return cb(null, new buffer_1.Buffer(data_array)); | ||
return cb(null, new Buffer(data_array)); | ||
case 'json': | ||
@@ -90,3 +89,3 @@ return cb(null, JSON.parse(req.responseText)); | ||
case 'buffer': | ||
return cb(null, new buffer_1.Buffer(req.response ? req.response : 0)); | ||
return cb(null, new Buffer(req.response ? req.response : 0)); | ||
case 'json': | ||
@@ -120,3 +119,3 @@ if (jsonSupported) { | ||
var text = req.responseText; | ||
data = new buffer_1.Buffer(text.length); | ||
data = new Buffer(text.length); | ||
for (var i = 0; i < text.length; i++) { | ||
@@ -162,3 +161,3 @@ data.writeUInt8(text.charCodeAt(i), i); | ||
case 'buffer': | ||
data = new buffer_1.Buffer(req.response); | ||
data = new Buffer(req.response); | ||
break; | ||
@@ -218,2 +217,2 @@ case 'json': | ||
exports.getFileSizeAsync = getFileSizeAsync; | ||
//# sourceMappingURL=xhr.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyaWMveGhyLnRzIl0sIm5hbWVzIjpbImdldElFQnl0ZUFycmF5IiwiZG93bmxvYWRGaWxlSUUiLCJhc3luY0Rvd25sb2FkRmlsZUlFIiwic3luY0Rvd25sb2FkRmlsZUlFIiwiYXN5bmNEb3dubG9hZEZpbGVNb2Rlcm4iLCJzeW5jRG93bmxvYWRGaWxlTW9kZXJuIiwic3luY0Rvd25sb2FkRmlsZUlFMTAiLCJnZXRGaWxlU2l6ZSIsImdldEZpbGVTaXplU3luYyIsImdldEZpbGVTaXplQXN5bmMiXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILElBQU8sSUFBSSxXQUFXLGNBQWMsQ0FBQyxDQUFDO0FBQ3RDLDBCQUFrQyxtQkFBbUIsQ0FBQyxDQUFBO0FBT3RELHdCQUF3QixXQUFnQjtJQUN0Q0EsSUFBSUEsUUFBUUEsR0FBR0EsdUJBQXVCQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTtJQUNwREEsSUFBSUEsT0FBT0EsR0FBR0EsNEJBQTRCQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTtJQUN4REEsSUFBSUEsUUFBUUEsR0FBR0EsUUFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsRUFBRUEsVUFBU0EsS0FBS0E7UUFDdkQsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUMsSUFBSSxFQUFFLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMxQyxDQUFDLENBQUNBLEdBQUdBLE9BQU9BLENBQUNBO0lBQ2JBLElBQUlBLFVBQVVBLEdBQUdBLElBQUlBLEtBQUtBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO0lBQzVDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxD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LG9CQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUNBO0lBQ0ZBLEdBQUdBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBO0FBQ2JBLENBQUNBO0FBUVUseUJBQWlCLEdBSXhCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLENBQUMsR0FBRyxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQztBQVFwRix3QkFBZ0IsR0FJdkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsQ0FBQyxHQUFHLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLENBQUMsR0FBRyxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQztBQUtqSyx5QkFBZ0MsQ0FBUztJQUN2Q0MsSUFBSUEsRUFBVUEsQ0FBQ0E7SUFDZkEsV0FBV0EsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsRUFBRUEsVUFBU0EsR0FBYUEsRUFBRUEsSUFBYUE7UUFDekQsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNSLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztRQUNELEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDWixDQUFDLENBQUNBLENBQUNBO0lBQ0hBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBO0FBQ1pBLENBQUNBO0FBVGUsdUJBQWUsa0JBUzlCLENBQUE7QUFLRCwwQkFBaUMsQ0FBUyxFQUFFLEVBQTBDO0lBQ3BGQyxXQUFXQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtBQUMzQkEsQ0FBQ0E7QUFGZSx3QkFBZ0IsbUJBRS9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRhaW5zIHV0aWxpdHkgbWV0aG9kcyBmb3IgcGVyZm9ybWluZyBhIHZhcmlldHkgb2YgdGFza3Mgd2l0aFxuICogWG1sSHR0cFJlcXVlc3QgYWNyb3NzIGJyb3dzZXJzLlxuICovXG5cbmltcG9ydCB1dGlsID0gcmVxdWlyZSgnLi4vY29yZS91dGlsJyk7XG5pbXBvcnQge0FwaUVycm9yLCBFcnJvckNvZGV9IGZyb20gJy4uL2NvcmUvYXBpX2Vycm9yJztcblxuLy8gU2VlIGNvcmUvcG9seWZpbGxzIGZvciB0aGUgVkJTY3JpcHQgZGVmaW5pdGlvbiBvZiB0aGVzZSBmdW5jdGlvbnMuXG5kZWNsYXJlIHZhciBJRUJpbmFyeVRvQXJyYXlfQnl0ZVN0cjogKHZiYXJyOiBhbnkpID0+IHN0cmluZztcbmRlY2xhcmUgdmFyIElFQmluYXJ5VG9BcnJheV9CeXRlU3RyX0xhc3Q6ICh2YmFycjogYW55KSA9PiBzdHJpbmc7XG4vLyBDb252ZXJ0cyAncmVzcG9uc2VCb2R5JyBpbiBJRSBpbnRvIHRoZSBlcXVpdmFsZW50ICdyZXNwb25zZVRleHQnIHRoYXQgb3RoZXJcbi8vIGJyb3dzZXJzIHdvdWxkIGdlbmVyYXRlLlxuZnVuY3Rpb24gZ2V0SUVCeXRlQXJyYXkoSUVCeXRlQXJyYXk6IGFueSk6IG51bWJlcltdIHtcbiAgdmFyIHJhd0J5dGVzID0gSUVCaW5hcnlUb0FycmF5X0J5dGVTdHIoSUVCeXRlQXJyYXkpO1xuICB2YXIgbGFzdENociA9IElFQmluYXJ5VG9BcnJheV9CeXRlU3RyX0xhc3QoSUVCeXRlQXJyYXkpO1xuICB2YXIgZGF0YV9zdHIgPSByYXdCeXRlcy5yZXBsYWNlKC9bXFxzXFxTXS9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgIHZhciB2ID0gbWF0Y2guY2hhckNvZGVBdCgwKVxuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHYmMHhmZiwgdj4+OClcbiAgfSkgKyBsYXN0Q2hyO1xuICB2YXIgZGF0YV9hcnJheSA9IG5ldyBBcnJheShkYXRhX3N0ci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFfc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgZGF0YV9hcnJheVtpXSA9IGRhdGFfc3RyLmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIGRhdGFfYXJyYXk7XG59XG5cbmZ1bmN0aW9uIGRvd25sb2FkRmlsZUlFKGFzeW5jOiBib29sZWFuLCBwOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gIHN3aXRjaCh0eXBlKSB7XG4gICAgY2FzZSAnYnVmZmVyJzpcbiAgICAgIC8vIEZhbGx0aHJvdWdoXG4gICAgY2FzZSAnanNvbic6XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRUlOVkFMLCBcIkludmFsaWQgZG93bmxvYWQgdHlwZTogXCIgKyB0eXBlKSk7XG4gIH1cblxuICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gIHJlcS5vcGVuKCdHRVQnLCBwLCBhc3luYyk7XG4gIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKFwiQWNjZXB0LUNoYXJzZXRcIiwgXCJ4LXVzZXItZGVmaW5lZFwiKTtcbiAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICB2YXIgZGF0YV9hcnJheTtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIGlmIChyZXEuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgc3dpdGNoKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdidWZmZXInOlxuICAgICAgICAgICAgZGF0YV9hcnJheSA9IGdldElFQnl0ZUFycmF5KHJlcS5yZXNwb25zZUJvZHkpO1xuICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwsIG5ldyBCdWZmZXIoZGF0YV9hcnJheSkpO1xuICAgICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwsIEpTT04ucGFyc2UocmVxLnJlc3BvbnNlVGV4dCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY2IobmV3IEFwaUVycm9yKHJlcS5zdGF0dXMsIFwiWEhSIGVycm9yLlwiKSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICByZXEuc2VuZCgpO1xufVxuXG5mdW5jdGlvbiBhc3luY0Rvd25sb2FkRmlsZUlFKHA6IHN0cmluZywgdHlwZTogJ2J1ZmZlcicsIGNiOiAoZXJyOiBBcGlFcnJvciwgZGF0YT86IE5vZGVCdWZmZXIpID0+IHZvaWQpOiB2b2lkO1xuZnVuY3Rpb24gYXN5bmNEb3dubG9hZEZpbGVJRShwOiBzdHJpbmcsIHR5cGU6ICdqc29uJywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZDtcbmZ1bmN0aW9uIGFzeW5jRG93bmxvYWRGaWxlSUUocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIGNiOiAoZXJyOiBBcGlFcnJvciwgZGF0YT86IGFueSkgPT4gdm9pZCk6IHZvaWQ7XG5mdW5jdGlvbiBhc3luY0Rvd25sb2FkRmlsZUlFKHA6IHN0cmluZywgdHlwZTogc3RyaW5nLCBjYjogKGVycjogQXBpRXJyb3IsIGRhdGE/OiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgZG93bmxvYWRGaWxlSUUodHJ1ZSwgcCwgdHlwZSwgY2IpO1xufVxuXG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlSUUocDogc3RyaW5nLCB0eXBlOiAnYnVmZmVyJyk6IE5vZGVCdWZmZXI7XG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlSUUocDogc3RyaW5nLCB0eXBlOiAnanNvbicpOiBhbnk7XG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlSUUocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBhbnk7XG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlSUUocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBhbnkge1xuICB2YXIgcnY7XG4gIGRvd25sb2FkRmlsZUlFKGZhbHNlLCBwLCB0eXBlLCBmdW5jdGlvbihlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSB7XG4gICAgaWYgKGVycikgdGhyb3cgZXJyO1xuICAgIHJ2ID0gZGF0YTtcbiAgfSk7XG4gIHJldHVybiBydjtcbn1cblxuZnVuY3Rpb24gYXN5bmNEb3dubG9hZEZpbGVNb2Rlcm4ocDogc3RyaW5nLCB0eXBlOiAnYnVmZmVyJywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogTm9kZUJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG5mdW5jdGlvbiBhc3luY0Rvd25sb2FkRmlsZU1vZGVybihwOiBzdHJpbmcsIHR5cGU6ICdqc29uJywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZDtcbmZ1bmN0aW9uIGFzeW5jRG93bmxvYWRGaWxlTW9kZXJuKHA6IHN0cmluZywgdHlwZTogc3RyaW5nLCBjYjogKGVycjogQXBpRXJyb3IsIGRhdGE/OiBhbnkpID0+IHZvaWQpOiB2b2lkO1xuZnVuY3Rpb24gYXN5bmNEb3dubG9hZEZpbGVNb2Rlcm4ocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIGNiOiAoZXJyOiBBcGlFcnJvciwgZGF0YT86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gIHJlcS5vcGVuKCdHRVQnLCBwLCB0cnVlKTtcbiAgdmFyIGpzb25TdXBwb3J0ZWQgPSB0cnVlO1xuICBzd2l0Y2godHlwZSkge1xuICAgIGNhc2UgJ2J1ZmZlcic6XG4gICAgICByZXEucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2pzb24nOlxuICAgICAvLyBTb21lIGJyb3dzZXJzIGRvbid0IHN1cHBvcnQgdGhlIEpTT04gcmVzcG9uc2UgdHlwZS5cbiAgICAgLy8gVGhleSBlaXRoZXIgcmVzZXQgcmVzcG9uc2VUeXBlLCBvciB0aHJvdyBhbiBleGNlcHRpb24uXG4gICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvc3JjL3Rlc3RYaHJUeXBlLmpzXG4gICAgICB0cnkge1xuICAgICAgICByZXEucmVzcG9uc2VUeXBlID0gJ2pzb24nO1xuICAgICAgICBqc29uU3VwcG9ydGVkID0gcmVxLnJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBqc29uU3VwcG9ydGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGNiKG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRUlOVkFMLCBcIkludmFsaWQgZG93bmxvYWQgdHlwZTogXCIgKyB0eXBlKSk7XG4gIH1cbiAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIGlmIChyZXEuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgc3dpdGNoKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdidWZmZXInOlxuICAgICAgICAgICAgLy8gWFhYOiBXZWJLaXQtYmFzZWQgYnJvd3NlcnMgcmV0dXJuICpudWxsKiB3aGVuIFhIUmluZyBhbiBlbXB0eSBmaWxlLlxuICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwsIG5ldyBCdWZmZXIocmVxLnJlc3BvbnNlID8gcmVxLnJlc3BvbnNlIDogMCkpO1xuICAgICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICAgICAgaWYgKGpzb25TdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwsIHJlcS5yZXNwb25zZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gY2IobnVsbCwgSlNPTi5wYXJzZShyZXEucmVzcG9uc2VUZXh0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjYihuZXcgQXBpRXJyb3IocmVxLnN0YXR1cywgXCJYSFIgZXJyb3IuXCIpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHJlcS5zZW5kKCk7XG59XG5cbmZ1bmN0aW9uIHN5bmNEb3dubG9hZEZpbGVNb2Rlcm4ocDogc3RyaW5nLCB0eXBlOiAnYnVmZmVyJyk6IE5vZGVCdWZmZXI7XG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlTW9kZXJuKHA6IHN0cmluZywgdHlwZTogJ2pzb24nKTogYW55O1xuZnVuY3Rpb24gc3luY0Rvd25sb2FkRmlsZU1vZGVybihwOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IGFueTtcbmZ1bmN0aW9uIHN5bmNEb3dubG9hZEZpbGVNb2Rlcm4ocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBhbnkge1xuICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gIHJlcS5vcGVuKCdHRVQnLCBwLCBmYWxzZSk7XG5cbiAgLy8gT24gbW9zdCBwbGF0Zm9ybXMsIHdlIGNhbm5vdCBzZXQgdGhlIHJlc3BvbnNlVHlwZSBvZiBzeW5jaHJvbm91cyBkb3dubG9hZHMuXG4gIC8vIEB0b2RvIFRlc3QgZm9yIHRoaXM7IElFMTAgYWxsb3dzIHRoaXMsIGFzIGRvIG9sZGVyIHZlcnNpb25zIG9mIENocm9tZS9GRi5cbiAgdmFyIGRhdGEgPSBudWxsO1xuICB2YXIgZXJyID0gbnVsbDtcbiAgLy8gQ2xhc3NpYyBoYWNrIHRvIGRvd25sb2FkIGJpbmFyeSBkYXRhIGFzIGEgc3RyaW5nLlxuICByZXEub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC9wbGFpbjsgY2hhcnNldD14LXVzZXItZGVmaW5lZCcpO1xuICByZXEub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oZSkge1xuICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgaWYgKHJlcS5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICBzd2l0Y2godHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2J1ZmZlcic6XG4gICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSB0ZXh0IGludG8gYSBidWZmZXIuXG4gICAgICAgICAgICB2YXIgdGV4dCA9IHJlcS5yZXNwb25zZVRleHQ7XG4gICAgICAgICAgICBkYXRhID0gbmV3IEJ1ZmZlcih0ZXh0Lmxlbmd0aCk7XG4gICAgICAgICAgICAvLyBUaHJvdyBhd2F5IHRoZSB1cHBlciBiaXRzIG9mIGVhY2ggY2hhcmFjdGVyLlxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IHRocm93IGF3YXkgdGhlIHVwcGVyIGJpdCBvZiBlYWNoXG4gICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBmb3IgdXMuXG4gICAgICAgICAgICAgIGRhdGEud3JpdGVVSW50OCh0ZXh0LmNoYXJDb2RlQXQoaSksIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UocmVxLnJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVyciA9IG5ldyBBcGlFcnJvcihyZXEuc3RhdHVzLCBcIlhIUiBlcnJvci5cIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHJlcS5zZW5kKCk7XG4gIGlmIChlcnIpIHtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogSUUxMCBhbGxvd3MgdXMgdG8gcGVyZm9ybSBzeW5jaHJvbm91cyBiaW5hcnkgZmlsZSBkb3dubG9hZHMuXG4gKiBAdG9kbyBGZWF0dXJlIGRldGVjdCB0aGlzLCBhcyBvbGRlciB2ZXJzaW9ucyBvZiBGRi9DaHJvbWUgZG8gdG9vIVxuICovXG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlSUUxMChwOiBzdHJpbmcsIHR5cGU6ICdidWZmZXInKTogTm9kZUJ1ZmZlcjtcbmZ1bmN0aW9uIHN5bmNEb3dubG9hZEZpbGVJRTEwKHA6IHN0cmluZywgdHlwZTogJ2pzb24nKTogYW55O1xuZnVuY3Rpb24gc3luY0Rvd25sb2FkRmlsZUlFMTAocDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBhbnk7XG5mdW5jdGlvbiBzeW5jRG93bmxvYWRGaWxlSUUxMChwOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IGFueSB7XG4gIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgcmVxLm9wZW4oJ0dFVCcsIHAsIGZhbHNlKTtcbiAgc3dpdGNoKHR5cGUpIHtcbiAgICBjYXNlICdidWZmZXInOlxuICAgICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdqc29uJzpcbiAgICAgIC8vIElFMTAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgSlNPTiB0eXBlLlxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihFcnJvckNvZGUuRUlOVkFMLCBcIkludmFsaWQgZG93bmxvYWQgdHlwZTogXCIgKyB0eXBlKTtcbiAgfVxuICB2YXIgZGF0YTtcbiAgdmFyIGVycjtcbiAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGUpIHtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIGlmIChyZXEuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgc3dpdGNoKHR5cGUpIHtcbiAgICAgICAgICBjYXNlICdidWZmZXInOlxuICAgICAgICAgICAgZGF0YSA9IG5ldyBCdWZmZXIocmVxLnJlc3BvbnNlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UocmVxLnJlc3BvbnNlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnIgPSBuZXcgQXBpRXJyb3IocmVxLnN0YXR1cywgXCJYSFIgZXJyb3IuXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgcmVxLnNlbmQoKTtcbiAgaWYgKGVycikge1xuICAgIHRocm93IGVycjtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0RmlsZVNpemUoYXN5bmM6IGJvb2xlYW4sIHA6IHN0cmluZywgY2I6IChlcnI6IEFwaUVycm9yLCBzaXplPzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgcmVxLm9wZW4oJ0hFQUQnLCBwLCBhc3luYyk7XG4gIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihlKSB7XG4gICAgaWYgKHJlcS5yZWFkeVN0YXRlID09PSA0KSB7XG4gICAgICBpZiAocmVxLnN0YXR1cyA9PSAyMDApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gY2IobnVsbCwgcGFyc2VJbnQocmVxLmdldFJlc3BvbnNlSGVhZGVyKCdDb250ZW50LUxlbmd0aCcpLCAxMCkpO1xuICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAvLyBJbiB0aGUgZXZlbnQgdGhhdCB0aGUgaGVhZGVyIGlzbid0IHByZXNlbnQgb3IgdGhlcmUgaXMgYW4gZXJyb3IuLi5cbiAgICAgICAgICByZXR1cm4gY2IobmV3IEFwaUVycm9yKEVycm9yQ29kZS5FSU8sIFwiWEhSIEhFQUQgZXJyb3I6IENvdWxkIG5vdCByZWFkIGNvbnRlbnQtbGVuZ3RoLlwiKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjYihuZXcgQXBpRXJyb3IocmVxLnN0YXR1cywgXCJYSFIgSEVBRCBlcnJvci5cIikpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgcmVxLnNlbmQoKTtcbn1cblxuLyoqXG4gKiBBc3luY2hyb25vdXNseSBkb3dubG9hZCBhIGZpbGUgYXMgYSBidWZmZXIgb3IgYSBKU09OIG9iamVjdC5cbiAqIE5vdGUgdGhhdCB0aGUgdGhpcmQgZnVuY3Rpb24gc2lnbmF0dXJlIHdpdGggYSBub24tc3BlY2lhbGl6ZWQgdHlwZSBpc1xuICogaW52YWxpZCwgYnV0IFR5cGVTY3JpcHQgcmVxdWlyZXMgaXQgd2hlbiB5b3Ugc3BlY2lhbGl6ZSBzdHJpbmcgYXJndW1lbnRzIHRvXG4gKiBjb25zdGFudHMuXG4gKi9cbmV4cG9ydCB2YXIgYXN5bmNEb3dubG9hZEZpbGU6IHtcbiAgKHA6IHN0cmluZywgdHlwZTogJ2J1ZmZlcicsIGNiOiAoZXJyOiBBcGlFcnJvciwgZGF0YT86IE5vZGVCdWZmZXIpID0+IHZvaWQpOiB2b2lkO1xuICAocDogc3RyaW5nLCB0eXBlOiAnanNvbicsIGNiOiAoZXJyOiBBcGlFcnJvciwgZGF0YT86IGFueSkgPT4gdm9pZCk6IHZvaWQ7XG4gIChwOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgY2I6IChlcnI6IEFwaUVycm9yLCBkYXRhPzogYW55KSA9PiB2b2lkKTogdm9pZDtcbn0gPSAodXRpbC5pc0lFICYmIHR5cGVvZiBCbG9iID09PSAndW5kZWZpbmVkJykgPyBhc3luY0Rvd25sb2FkRmlsZUlFIDogYXN5bmNEb3dubG9hZEZpbGVNb2Rlcm47XG5cbi8qKlxuICogU3luY2hyb25vdXNseSBkb3dubG9hZCBhIGZpbGUgYXMgYSBidWZmZXIgb3IgYSBKU09OIG9iamVjdC5cbiAqIE5vdGUgdGhhdCB0aGUgdGhpcmQgZnVuY3Rpb24gc2lnbmF0dXJlIHdpdGggYSBub24tc3BlY2lhbGl6ZWQgdHlwZSBpc1xuICogaW52YWxpZCwgYnV0IFR5cGVTY3JpcHQgcmVxdWlyZXMgaXQgd2hlbiB5b3Ugc3BlY2lhbGl6ZSBzdHJpbmcgYXJndW1lbnRzIHRvXG4gKiBjb25zdGFudHMuXG4gKi9cbmV4cG9ydCB2YXIgc3luY0Rvd25sb2FkRmlsZToge1xuICAocDogc3RyaW5nLCB0eXBlOiAnYnVmZmVyJyk6IE5vZGVCdWZmZXI7XG4gIChwOiBzdHJpbmcsIHR5cGU6ICdqc29uJyk6IGFueTtcbiAgKHA6IHN0cmluZywgdHlwZTogc3RyaW5nKTogYW55O1xufSA9ICh1dGlsLmlzSUUgJiYgdHlwZW9mIEJsb2IgPT09ICd1bmRlZmluZWQnKSA/IHN5bmNEb3dubG9hZEZpbGVJRSA6ICh1dGlsLmlzSUUgJiYgdHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnKSA/IHN5bmNEb3dubG9hZEZpbGVJRTEwIDogc3luY0Rvd25sb2FkRmlsZU1vZGVybjtcblxuLyoqXG4gKiBTeW5jaHJvbm91c2x5IHJldHJpZXZlcyB0aGUgc2l6ZSBvZiB0aGUgZ2l2ZW4gZmlsZSBpbiBieXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVTaXplU3luYyhwOiBzdHJpbmcpOiBudW1iZXIge1xuICB2YXIgcnY6IG51bWJlcjtcbiAgZ2V0RmlsZVNpemUoZmFsc2UsIHAsIGZ1bmN0aW9uKGVycjogQXBpRXJyb3IsIHNpemU/OiBudW1iZXIpIHtcbiAgICBpZiAoZXJyKSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICAgIHJ2ID0gc2l6ZTtcbiAgfSk7XG4gIHJldHVybiBydjtcbn1cblxuLyoqXG4gKiBBc3luY2hyb25vdXNseSByZXRyaWV2ZXMgdGhlIHNpemUgb2YgdGhlIGdpdmVuIGZpbGUgaW4gYnl0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlU2l6ZUFzeW5jKHA6IHN0cmluZywgY2I6IChlcnI6IEFwaUVycm9yLCBzaXplPzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gIGdldEZpbGVTaXplKHRydWUsIHAsIGNiKTtcbn1cbiJdfQ== |
@@ -227,2 +227,2 @@ var global = require('./core/global'); | ||
module.exports = bfs; | ||
//# sourceMappingURL=main.js.map | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbIm5vdyJdLCJtYXBwaW5ncyI6IkFBSUEsSUFBTyxNQUFNLFdBQVcsZUFBZSxDQUFDLENBQUM7QUFHekMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNkLElBQUksQ0FBQyxHQUFHLEdBQUc7UUFDVEEsTUFBTUEsQ0FBQ0EsSUFBSUEsSUFBSUEsRUFBRUEsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0E7SUFDOUJBLENBQUNBLENBQUM7QUFDSixDQUFDO0FBR0QsRUFBRSxDQUFBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsQixLQUFLLENBQUMsT0FBTyxHQUFHLFVBQVUsSUFBSTtRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLGdCQUFnQixDQUFDO0lBQ25FLENBQUMsQ0FBQztBQUNKLENBQUM7QUFJRCxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUNiLFlBQVksQ0FBQztRQUNiLElBQUksY0FBYyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUNoRCxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQ3JFLFNBQVMsR0FBRztZQUNWLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsU0FBUztZQUNULGdCQUFnQjtZQUNoQixlQUFlO1lBQ2Ysc0JBQXNCO1lBQ3RCLGFBQWE7U0FDZCxFQUNELGVBQWUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxVQUFVLEdBQVE7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QU8sR0FBRyxXQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDekMsaUJBQVMsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyRlMncyBtYWluIGVudHJ5IHBvaW50LlxuICogSXQgaW5zdGFsbHMgYWxsIG9mIHRoZSBuZWVkZWQgcG9seWZpbGxzLCBhbmQgcmVxdWlyZXMoKSB0aGUgbWFpbiBtb2R1bGUuXG4gKi9cbmltcG9ydCBnbG9iYWwgPSByZXF1aXJlKCcuL2NvcmUvZ2xvYmFsJyk7XG5cbi8vIElFIDwgOSBkb2VzIG5vdCBkZWZpbmUgdGhpcyBmdW5jdGlvbi5cbmlmICghRGF0ZS5ub3cpIHtcbiAgRGF0ZS5ub3cgPSBmdW5jdGlvbiBub3coKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9O1xufVxuXG4vLyBJRSA8IDkgZG9lcyBub3QgZGVmaW5lIHRoaXMgZnVuY3Rpb24uXG5pZighQXJyYXkuaXNBcnJheSkge1xuICBBcnJheS5pc0FycmF5ID0gZnVuY3Rpb24gKHZBcmcpOiB2QXJnIGlzIGFueVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZBcmcpID09PSBcIltvYmplY3QgQXJyYXldXCI7XG4gIH07XG59XG5cbi8vIElFIDwgOSBkb2VzIG5vdCBkZWZpbmUgdGhpcyBmdW5jdGlvbi5cbi8vIEZyb20gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2tleXNcbmlmICghT2JqZWN0LmtleXMpIHtcbiAgT2JqZWN0LmtleXMgPSAoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICB2YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuICAgICAgICBoYXNEb250RW51bUJ1ZyA9ICEoe3RvU3RyaW5nOiBudWxsfSkucHJvcGVydHlJc0VudW1lcmFibGUoJ3RvU3RyaW5nJyksXG4gICAgICAgIGRvbnRFbnVtcyA9IFtcbiAgICAgICAgICAndG9TdHJpbmcnLFxuICAgICAgICAgICd0b0xvY2FsZVN0cmluZycsXG4gICAgICAgICAgJ3ZhbHVlT2YnLFxuICAgICAgICAgICdoYXNPd25Qcm9wZXJ0eScsXG4gICAgICAgICAgJ2lzUHJvdG90eXBlT2YnLFxuICAgICAgICAgICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsXG4gICAgICAgICAgJ2NvbnN0cnVjdG9yJ1xuICAgICAgICBdLFxuICAgICAgICBkb250RW51bXNMZW5ndGggPSBkb250RW51bXMubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmo6IGFueSkge1xuICAgICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnICYmICh0eXBlb2Ygb2JqICE9PSAnZnVuY3Rpb24nIHx8IG9iaiA9PT0gbnVsbCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmtleXMgY2FsbGVkIG9uIG5vbi1vYmplY3QnKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlc3VsdDogc3RyaW5nW10gPSBbXSwgcHJvcDogc3RyaW5nLCBpOiBudW1iZXI7XG5cbiAgICAgIGZvciAocHJvcCBpbiBvYmopIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHByb3ApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNEb250RW51bUJ1Zykge1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZG9udEVudW1zTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGRvbnRFbnVtc1tpXSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGRvbnRFbnVtc1tpXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gIH0oKSk7XG59XG5cbi8vIElFIHN1YnN0ciBkb2VzIG5vdCBzdXBwb3J0IG5lZ2F0aXZlIGluZGljZXNcbmlmICgnYWInLnN1YnN0cigtMSkgIT09ICdiJykge1xuICBTdHJpbmcucHJvdG90eXBlLnN1YnN0ciA9IGZ1bmN0aW9uKHN1YnN0cjogKHN0YXJ0OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcikgPT4gc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKHN0YXJ0OiBudW1iZXIsIGxlbmd0aD86IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAvLyBkaWQgd2UgZ2V0IGEgbmVnYXRpdmUgc3RhcnQsIGNhbGN1bGF0ZSBob3cgbXVjaCBpdCBpcyBmcm9tIHRoZVxuICAgICAgLy8gYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmdcbiAgICAgIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gdGhpcy5sZW5ndGggKyBzdGFydDtcbiAgICAgIC8vIGNhbGwgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uXG4gICAgICByZXR1cm4gc3Vic3RyLmNhbGwodGhpcywgc3RhcnQsIGxlbmd0aCk7XG4gICAgfVxuICB9KFN0cmluZy5wcm90b3R5cGUuc3Vic3RyKTtcbn1cblxuLy8gSUUgPCA5IGRvZXMgbm90IHN1cHBvcnQgZm9yRWFjaFxuaWYgKCFBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkge1xuICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKGZuOiAodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlciwgYXJyYXk6IHN0cmluZ1tdKSA9PiB2b2lkLCBzY29wZT86IGFueSk6IHZvaWQge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7ICsraSkge1xuICAgICAgaWYgKGkgaW4gdGhpcykge1xuICAgICAgICBmbi5jYWxsKHNjb3BlLCB0aGlzW2ldLCBpLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8vIElFIDwgOSBkb2VzIG5vdCBzdXBwb3J0IGZpbHRlclxuLy8gRnJvbSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9maWx0ZXJcbmlmICghQXJyYXkucHJvdG90eXBlLmZpbHRlcikge1xuICBBcnJheS5wcm90b3R5cGUuZmlsdGVyID0gZnVuY3Rpb24oZnVuLyosIHRoaXNBcmcqLykge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIGlmICh0aGlzID09PSB2b2lkIDAgfHwgdGhpcyA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgIH1cblxuICAgIHZhciB0ID0gT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW4gPSB0Lmxlbmd0aCA+Pj4gMDtcbiAgICBpZiAodHlwZW9mIGZ1biAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgIH1cblxuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50cy5sZW5ndGggPj0gMiA/IGFyZ3VtZW50c1sxXSA6IHZvaWQgMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBpZiAoaSBpbiB0KSB7XG4gICAgICAgIHZhciB2YWwgPSB0W2ldO1xuXG4gICAgICAgIC8vIE5PVEU6IFRlY2huaWNhbGx5IHRoaXMgc2hvdWxkIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBhdFxuICAgICAgICAvLyAgICAgICB0aGUgbmV4dCBpbmRleCwgYXMgcHVzaCBjYW4gYmUgYWZmZWN0ZWQgYnlcbiAgICAgICAgLy8gICAgICAgcHJvcGVydGllcyBvbiBPYmplY3QucHJvdG90eXBlIGFuZCBBcnJheS5wcm90b3R5cGUuXG4gICAgICAgIC8vICAgICAgIEJ1dCB0aGF0IG1ldGhvZCdzIG5ldywgYW5kIGNvbGxpc2lvbnMgc2hvdWxkIGJlXG4gICAgICAgIC8vICAgICAgIHJhcmUsIHNvIHVzZSB0aGUgbW9yZS1jb21wYXRpYmxlIGFsdGVybmF0aXZlLlxuICAgICAgICBpZiAoZnVuLmNhbGwodGhpc0FyZywgdmFsLCBpLCB0KSkge1xuICAgICAgICAgIHJlcy5wdXNoKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xufVxuXG4vLyBPbmx5IElFMTAgaGFzIHNldEltbWVkaWF0ZS5cbi8vIEB0b2RvOiBEZXRlcm1pbmUgdmlhYmlsaXR5IG9mIHN3aXRjaGluZyB0byB0aGUgJ3Byb3BlcicgcG9seWZpbGwgZm9yIHRoaXMuXG5pZiAodHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIGdTY29wZSA9IGdsb2JhbDtcbiAgdmFyIHRpbWVvdXRzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuICB2YXIgbWVzc2FnZU5hbWUgPSBcInplcm8tdGltZW91dC1tZXNzYWdlXCI7XG4gIHZhciBjYW5Vc2VQb3N0TWVzc2FnZSA9IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgZ1Njb3BlLmltcG9ydFNjcmlwdHMgIT09ICd1bmRlZmluZWQnIHx8ICFnU2NvcGUucG9zdE1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIHBvc3RNZXNzYWdlSXNBc3luYyA9IHRydWU7XG4gICAgdmFyIG9sZE9uTWVzc2FnZSA9IGdTY29wZS5vbm1lc3NhZ2U7XG4gICAgZ1Njb3BlLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcG9zdE1lc3NhZ2VJc0FzeW5jID0gZmFsc2U7XG4gICAgfTtcbiAgICBnU2NvcGUucG9zdE1lc3NhZ2UoJycsICcqJyk7XG4gICAgZ1Njb3BlLm9ubWVzc2FnZSA9IG9sZE9uTWVzc2FnZTtcbiAgICByZXR1cm4gcG9zdE1lc3NhZ2VJc0FzeW5jO1xuICB9O1xuICBpZiAoY2FuVXNlUG9zdE1lc3NhZ2UoKSkge1xuICAgIGdTY29wZS5zZXRJbW1lZGlhdGUgPSBmdW5jdGlvbihmbjogKCkgPT4gdm9pZCkge1xuICAgICAgdGltZW91dHMucHVzaChmbik7XG4gICAgICBnU2NvcGUucG9zdE1lc3NhZ2UobWVzc2FnZU5hbWUsIFwiKlwiKTtcbiAgICB9O1xuICAgIHZhciBoYW5kbGVNZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQ6IE1lc3NhZ2VFdmVudCkge1xuICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PT0gc2VsZiAmJiBldmVudC5kYXRhID09PSBtZXNzYWdlTmFtZSkge1xuICAgICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGltZW91dHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHZhciBmbiA9IHRpbWVvdXRzLnNoaWZ0KCk7XG4gICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGlmIChnU2NvcGUuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgZ1Njb3BlLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVNZXNzYWdlLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ1Njb3BlLmF0dGFjaEV2ZW50KCdvbm1lc3NhZ2UnLCBoYW5kbGVNZXNzYWdlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZ1Njb3BlLk1lc3NhZ2VDaGFubmVsKSB7XG4gICAgLy8gV2ViV29ya2VyIE1lc3NhZ2VDaGFubmVsXG4gICAgdmFyIGNoYW5uZWwgPSBuZXcgZ1Njb3BlLk1lc3NhZ2VDaGFubmVsKCk7XG4gICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHRpbWVvdXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRpbWVvdXRzLnNoaWZ0KCkoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGdTY29wZS5zZXRJbW1lZGlhdGUgPSAoZm46ICgpID0+IHZvaWQpID0+IHtcbiAgICAgIHRpbWVvdXRzLnB1c2goZm4pO1xuICAgICAgY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSgnJyk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBnU2NvcGUuc2V0SW1tZWRpYXRlID0gZnVuY3Rpb24oZm46ICgpID0+IHZvaWQpIHtcbiAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZuLCAwKTtcbiAgICB9O1xuICB9XG59XG5cbi8vIElFPDkgZG9lcyBub3QgZGVmaW5lIGluZGV4T2YuXG4vLyBGcm9tOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9pbmRleE9mXG5pZiAoIUFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG4gIEFycmF5LnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24oc2VhcmNoRWxlbWVudDogYW55LCBmcm9tSW5kZXg6IG51bWJlciA9IDApOiBudW1iZXIge1xuICAgIGlmICghdGhpcykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigpO1xuICAgIH1cblxuICAgIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICBpZiAobGVuZ3RoID09PSAwIHx8IHBpdm90ID49IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHZhciBwaXZvdCA9IGZyb21JbmRleDtcbiAgICBpZiAocGl2b3QgPCAwKSB7XG4gICAgICBwaXZvdCA9IGxlbmd0aCArIHBpdm90O1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSBwaXZvdDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpc1tpXSA9PT0gc2VhcmNoRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gaTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9O1xufVxuXG4vLyBJRTw5IGRvZXMgbm90IHN1cHBvcnQgZm9yRWFjaFxuLy8gRnJvbTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQXJyYXkvZm9yRWFjaFxuaWYgKCFBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkge1xuICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKGZuOiAodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlciwgYXJyYXk6IHN0cmluZ1tdKSA9PiB2b2lkLCBzY29wZT86IGFueSkge1xuICAgIHZhciBpOiBudW1iZXIsIGxlbjogbnVtYmVyO1xuICAgIGZvciAoaSA9IDAsIGxlbiA9IHRoaXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIGlmIChpIGluIHRoaXMpIHtcbiAgICAgICAgZm4uY2FsbChzY29wZSwgdGhpc1tpXSwgaSwgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vLyBJRTw5IGRvZXMgbm90IHN1cHBvcnQgbWFwXG4vLyBGcm9tOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9tYXBcbmlmICghQXJyYXkucHJvdG90eXBlLm1hcCkge1xuICBBcnJheS5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24oY2FsbGJhY2s6ICh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyLCBhcnJheTogc3RyaW5nW10pID0+IGFueSwgdGhpc0FyZz86IGFueSk6IGFueVtdIHtcbiAgICB2YXIgVDogYW55LCBBOiBhbnksIGs6IGFueTtcbiAgICBpZiAodGhpcyA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiIHRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZFwiKTtcbiAgICB9XG4gICAgLy8gMS4gTGV0IE8gYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIFRvT2JqZWN0IHBhc3NpbmcgdGhlIHx0aGlzfCB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuXG4gICAgdmFyIE8gPSBPYmplY3QodGhpcyk7XG4gICAgLy8gMi4gTGV0IGxlblZhbHVlIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgR2V0IGludGVybmFsIG1ldGhvZCBvZiBPIHdpdGggdGhlIGFyZ3VtZW50IFwibGVuZ3RoXCIuXG4gICAgLy8gMy4gTGV0IGxlbiBiZSBUb1VpbnQzMihsZW5WYWx1ZSkuXG4gICAgdmFyIGxlbiA9IE8ubGVuZ3RoID4+PiAwO1xuICAgIC8vIDQuIElmIElzQ2FsbGFibGUoY2FsbGJhY2spIGlzIGZhbHNlLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uXG4gICAgLy8gU2VlOiBodHRwOi8vZXM1LmdpdGh1Yi5jb20vI3g5LjExXG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGNhbGxiYWNrICsgXCIgaXMgbm90IGEgZnVuY3Rpb25cIik7XG4gICAgfVxuICAgIC8vIDUuIElmIHRoaXNBcmcgd2FzIHN1cHBsaWVkLCBsZXQgVCBiZSB0aGlzQXJnOyBlbHNlIGxldCBUIGJlIHVuZGVmaW5lZC5cbiAgICBpZiAodGhpc0FyZykge1xuICAgICAgVCA9IHRoaXNBcmc7XG4gICAgfVxuICAgIC8vIDYuIExldCBBIGJlIGEgbmV3IGFycmF5IGNyZWF0ZWQgYXMgaWYgYnkgdGhlIGV4cHJlc3Npb24gbmV3IEFycmF5KGxlbikgd2hlcmUgQXJyYXkgaXNcbiAgICAvLyB0aGUgc3RhbmRhcmQgYnVpbHQtaW4gY29uc3RydWN0b3Igd2l0aCB0aGF0IG5hbWUgYW5kIGxlbiBpcyB0aGUgdmFsdWUgb2YgbGVuLlxuICAgIEEgPSBuZXcgQXJyYXkobGVuKTtcbiAgICAvLyA3LiBMZXQgayBiZSAwXG4gICAgayA9IDA7XG4gICAgLy8gOC4gUmVwZWF0LCB3aGlsZSBrIDwgbGVuXG4gICAgd2hpbGUoayA8IGxlbikge1xuICAgICAgdmFyIGtWYWx1ZTogYW55LCBtYXBwZWRWYWx1ZTogYW55O1xuICAgICAgLy8gYS4gTGV0IFBrIGJlIFRvU3RyaW5nKGspLlxuICAgICAgLy8gICBUaGlzIGlzIGltcGxpY2l0IGZvciBMSFMgb3BlcmFuZHMgb2YgdGhlIGluIG9wZXJhdG9yXG4gICAgICAvLyBiLiBMZXQga1ByZXNlbnQgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBIYXNQcm9wZXJ0eSBpbnRlcm5hbCBtZXRob2Qgb2YgTyB3aXRoIGFyZ3VtZW50IFBrLlxuICAgICAgLy8gICBUaGlzIHN0ZXAgY2FuIGJlIGNvbWJpbmVkIHdpdGggY1xuICAgICAgLy8gYy4gSWYga1ByZXNlbnQgaXMgdHJ1ZSwgdGhlblxuICAgICAgaWYgKGsgaW4gTykge1xuICAgICAgICAvLyBpLiBMZXQga1ZhbHVlIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgR2V0IGludGVybmFsIG1ldGhvZCBvZiBPIHdpdGggYXJndW1lbnQgUGsuXG4gICAgICAgIGtWYWx1ZSA9IE9ba107XG4gICAgICAgIC8vIGlpLiBMZXQgbWFwcGVkVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBDYWxsIGludGVybmFsIG1ldGhvZCBvZiBjYWxsYmFja1xuICAgICAgICAvLyB3aXRoIFQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIGFyZ3VtZW50IGxpc3QgY29udGFpbmluZyBrVmFsdWUsIGssIGFuZCBPLlxuICAgICAgICBtYXBwZWRWYWx1ZSA9IGNhbGxiYWNrLmNhbGwoVCwga1ZhbHVlLCBrLCBPKTtcbiAgICAgICAgLy8gaWlpLiBDYWxsIHRoZSBEZWZpbmVPd25Qcm9wZXJ0eSBpbnRlcm5hbCBtZXRob2Qgb2YgQSB3aXRoIGFyZ3VtZW50c1xuICAgICAgICAvLyBQaywgUHJvcGVydHkgRGVzY3JpcHRvciB7VmFsdWU6IG1hcHBlZFZhbHVlLCA6IHRydWUsIEVudW1lcmFibGU6IHRydWUsIENvbmZpZ3VyYWJsZTogdHJ1ZX0sXG4gICAgICAgIC8vIGFuZCBmYWxzZS5cbiAgICAgICAgLy8gSW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSwgdXNlIHRoZSBmb2xsb3dpbmc6XG4gICAgICAgIC8vIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCBQaywgeyB2YWx1ZTogbWFwcGVkVmFsdWUsIHdyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgICAgIC8vIEZvciBiZXN0IGJyb3dzZXIgc3VwcG9ydCwgdXNlIHRoZSBmb2xsb3dpbmc6XG4gICAgICAgIEFba10gPSBtYXBwZWRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIGQuIEluY3JlYXNlIGsgYnkgMS5cbiAgICAgIGsrKztcbiAgICB9XG4gICAgLy8gOS4gcmV0dXJuIEFcbiAgICByZXR1cm4gQTtcbiAgfTtcbn1cblxuLyoqXG4gKiBJRTkgYW5kIGJlbG93IG9ubHk6IEluamVjdHMgYSBWQlNjcmlwdCBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIHRoZVxuICogJ3Jlc3BvbnNlQm9keScgYXR0cmlidXRlIG9mIGFuIFhNTEh0dHBSZXF1ZXN0IGludG8gYSBieXRlc3RyaW5nLlxuICogRnJvbTogaHR0cDovL21pc2t1bi5jb20vamF2YXNjcmlwdC9pbnRlcm5ldC1leHBsb3Jlci1hbmQtYmluYXJ5LWZpbGVzLWRhdGEtYWNjZXNzLyNjb21tZW50LTE3XG4gKlxuICogVGhpcyBtdXN0IGJlIHBlcmZvcm1lZCAqYmVmb3JlKiB0aGUgcGFnZSBmaW5pc2hlcyBsb2FkaW5nLCBvdGhlcndpc2VcbiAqIGRvY3VtZW50LndyaXRlIHdpbGwgcmVmcmVzaCB0aGUgcGFnZS4gOihcbiAqXG4gKiBUaGlzIGlzIGhhcm1sZXNzIHRvIGluamVjdCBpbnRvIG5vbi1JRSBicm93c2Vycy5cbiAqL1xuaWYgKHR5cGVvZihkb2N1bWVudCkgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZih3aW5kb3cpICE9PSAndW5kZWZpbmVkJyAmJiAoPGFueT4gd2luZG93KVsnY2hyb21lJ10gPT09IHVuZGVmaW5lZCkge1xuICBkb2N1bWVudC53cml0ZShcIjwhLS0gSUVCaW5hcnlUb0FycmF5X0J5dGVTdHIgLS0+XFxyXFxuXCIrXG4gICAgXCI8c2NyaXB0IHR5cGU9J3RleHQvdmJzY3JpcHQnPlxcclxcblwiK1xuICAgIFwiRnVuY3Rpb24gSUVCaW5hcnlUb0FycmF5X0J5dGVTdHIoQmluYXJ5KVxcclxcblwiK1xuICAgIFwiIElFQmluYXJ5VG9BcnJheV9CeXRlU3RyID0gQ1N0cihCaW5hcnkpXFxyXFxuXCIrXG4gICAgXCJFbmQgRnVuY3Rpb25cXHJcXG5cIitcbiAgICBcIkZ1bmN0aW9uIElFQmluYXJ5VG9BcnJheV9CeXRlU3RyX0xhc3QoQmluYXJ5KVxcclxcblwiK1xuICAgIFwiIERpbSBsYXN0SW5kZXhcXHJcXG5cIitcbiAgICBcIiBsYXN0SW5kZXggPSBMZW5CKEJpbmFyeSlcXHJcXG5cIitcbiAgICBcIiBpZiBsYXN0SW5kZXggbW9kIDIgVGhlblxcclxcblwiK1xuICAgIFwiIElFQmluYXJ5VG9BcnJheV9CeXRlU3RyX0xhc3QgPSBDaHIoIEFzY0IoIE1pZEIoIEJpbmFyeSwgbGFzdEluZGV4LCAxICkgKSApXFxyXFxuXCIrXG4gICAgXCIgRWxzZVxcclxcblwiK1xuICAgIFwiIElFQmluYXJ5VG9BcnJheV9CeXRlU3RyX0xhc3QgPSBcIisnXCJcIicrXCJcXHJcXG5cIitcbiAgICBcIiBFbmQgSWZcXHJcXG5cIitcbiAgICBcIkVuZCBGdW5jdGlvblxcclxcblwiK1xuICAgIFwiPC9zY3JpcHQ+XFxyXFxuXCIpO1xufVxuXG5pbXBvcnQgYmZzID0gcmVxdWlyZSgnLi9jb3JlL2Jyb3dzZXJmcycpO1xuZXhwb3J0ID0gYmZzOyJdfQ== |
{ | ||
"name": "browserfs", | ||
"version": "0.4.6", | ||
"version": "0.5.0", | ||
"description": "A filesystem in your browser!", | ||
@@ -29,2 +29,5 @@ "main": "dist/browserfs.js", | ||
"async": ">= 0.2.7", | ||
"bfs-buffer": "^0.1.1", | ||
"bfs-path": "^0.1.1", | ||
"bfs-process": "^0.1.1", | ||
"browserify": "^10.2.6", | ||
@@ -73,6 +76,3 @@ "browserify-derequire": "~0.9.4", | ||
"aliases": { | ||
"buffer": "./src/core/buffer.ts", | ||
"fs": "./src/core/node_fs.ts", | ||
"path": "./src/core/node_path.ts", | ||
"process": "./src/core/node_process.ts", | ||
"wrapped-assert": "./test/harness/wrapped-assert.ts" | ||
@@ -79,0 +79,0 @@ } |
@@ -1,3 +0,3 @@ | ||
BrowserFS v0.4.6 | ||
================ | ||
# BrowserFS v0.5.0 | ||
> BrowserFS is an in-browser file system that emulates the [Node JS file system API](http://nodejs.org/api/fs.html) and supports storing and retrieving files from various backends. BrowserFS also integrates nicely into the Emscripten file system. | ||
@@ -9,4 +9,2 @@ [](http://badge.fury.io/js/browserfs) | ||
> BrowserFS is an in-browser file system that emulates the [Node JS file system API](http://nodejs.org/api/fs.html) and supports storing and retrieving files from various backends. BrowserFS also integrates nicely into the Emscripten file system. | ||
### Backends | ||
@@ -94,8 +92,22 @@ | ||
As of BrowserFS 0.4.0, you can use BrowserFS with your Browserify projects! At the moment, you need to 'opt in' to the entire BrowserFS ecosystem -- e.g. you need to use BrowserFS's `path`, `process`, and `Buffer` in place of Browserify's builtins. | ||
You can use BrowserFS with your Browserify projects. Simply depend on `browserfs/dist/node/core/node_fs.js` as the provider | ||
of `fs`, and pull in `browserfs/dist/node/core/browserfs.js` as the provider of the `BrowserFS` variable, through which you | ||
can construct and initialize the file system. | ||
Do not depend on both `node_fs.js` and the `browserfs` module, as it will pull in the node modules from `dist/node`, | ||
as well as `dist/browserfs.js`. | ||
Optionally, you can also use the companion modules `bfs-path`, `bfs-buffer`, and `bfs-process` to replace | ||
browserify's builtins for `path`, `buffer`, and `process`. | ||
I have written an [example project](https://github.com/jvilk/bfs-browserify-test) that illustrates how to do this. | ||
In the future, we will support mixing and matching builtin modules. | ||
### Using with Node | ||
You can use BrowserFS with Node. Simply add `browserfs` as an NPM dependency, and `require('browserfs')`. | ||
The object returned from this action is the same `BrowserFS` global described above. | ||
If you need BrowserFS to return Node Buffer objects (instead of objects that implement the same interface), | ||
simply `require('browserfs/dist/node/core/browserfs')` instead. | ||
### Using with Emscripten | ||
@@ -167,6 +179,8 @@ | ||
To run unit tests, simply run `grunt test` **(NOTE: This will launch multiple web browsers!)**. You may need to change `build/karma.conf.js` if you do not have Chrome, Safari, Opera, and Firefox installed. | ||
To run unit tests, simply run `grunt test`. You may need to change `build/karma.conf.js` if you do not have Chrome, Safari, Opera, and Firefox installed. | ||
`grunt coverage` will run the unit tests, and output code coverage information. | ||
### License | ||
BrowserFS is licensed under the MIT License. See `LICENSE` for details. |
import file_system = require('../core/file_system'); | ||
import buffer = require('../core/buffer'); | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
import file_flag = require('../core/file_flag'); | ||
import util = require('../core/util'); | ||
import file = require('../core/file'); | ||
@@ -7,0 +5,0 @@ import node_fs_stats = require('../core/node_fs_stats'); |
@@ -5,9 +5,8 @@ import preload_file = require('../generic/preload_file'); | ||
import {Stats, FileType} from '../core/node_fs_stats'; | ||
import {Buffer} from '../core/buffer'; | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
import file = require('../core/file'); | ||
import path = require('../core/node_path'); | ||
import async = require('async'); | ||
import path = require('path'); | ||
import {arrayBuffer2Buffer, buffer2ArrayBuffer} from '../core/util'; | ||
var errorCodeLookup: {[dropboxErrorCode: number]: ErrorCode} = null; | ||
@@ -298,4 +297,4 @@ // Lazily construct error code lookup, since DropboxJS might be loaded *after* BrowserFS (or not at all!) | ||
if (this.isDirty()) { | ||
var buffer = <Buffer> this.getBuffer(), | ||
arrayBuffer = buffer.toArrayBuffer(); | ||
var buffer = this.getBuffer(), | ||
arrayBuffer = buffer2ArrayBuffer(buffer); | ||
this._fs._writeFileStrict(this.getPath(), arrayBuffer, (e?: ApiError) => { | ||
@@ -442,3 +441,3 @@ if (!e) { | ||
} else { | ||
var file = this._makeFile(path, flags, stat, new Buffer(ab)); | ||
var file = this._makeFile(path, flags, stat, arrayBuffer2Buffer(ab)); | ||
cb(null, file); | ||
@@ -459,3 +458,3 @@ } | ||
} else { | ||
buffer = new Buffer(content); | ||
buffer = arrayBuffer2Buffer(content); | ||
} | ||
@@ -462,0 +461,0 @@ var file = this._makeFile(path, flags, dbStat, buffer); |
@@ -6,8 +6,7 @@ import preload_file = require('../generic/preload_file'); | ||
import {Stats, FileType} from '../core/node_fs_stats'; | ||
import {Buffer} from '../core/buffer'; | ||
import file = require('../core/file'); | ||
import buffer_core_arraybuffer = require('../core/buffer_core_arraybuffer'); | ||
import path = require('../core/node_path'); | ||
import path = require('path'); | ||
import global = require('../core/global'); | ||
import async = require('async'); | ||
import {buffer2ArrayBuffer, arrayBuffer2Buffer} from '../core/util'; | ||
@@ -69,4 +68,4 @@ function isDirectoryEntry(entry: Entry): entry is DirectoryEntry { | ||
entry.createWriter((writer) => { | ||
var buffer = <Buffer> this.getBuffer(); | ||
var blob = new Blob([buffer.toArrayBuffer()]); | ||
var buffer = this.getBuffer(); | ||
var blob = new Blob([buffer2ArrayBuffer(buffer)]); | ||
var length = blob.size; | ||
@@ -379,3 +378,3 @@ writer.onwriteend = () => { | ||
var stats = new Stats(FileType.FILE, stat.size); | ||
var buffer = new Buffer(data); | ||
var buffer = arrayBuffer2Buffer(data); | ||
return new HTML5FSFile(this, path, flag, stats, buffer); | ||
@@ -382,0 +381,0 @@ } |
@@ -1,10 +0,9 @@ | ||
import buffer = require('../core/buffer'); | ||
import kvfs = require('../generic/key_value_filesystem'); | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
import global = require('../core/global'); | ||
import Buffer = buffer.Buffer; | ||
/** | ||
* Get the indexedDB constructor for the current browser. | ||
*/ | ||
indexedDB: IDBFactory = global.indexedDB || | ||
import {arrayBuffer2Buffer, buffer2ArrayBuffer} from '../core/util'; | ||
/** | ||
* Get the indexedDB constructor for the current browser. | ||
*/ | ||
var indexedDB: IDBFactory = global.indexedDB || | ||
(<any>global).mozIndexedDB || | ||
@@ -59,3 +58,3 @@ (<any>global).webkitIndexedDB || | ||
// IDB data is stored as an ArrayBuffer | ||
cb(null, new Buffer(result)); | ||
cb(null, arrayBuffer2Buffer(result)); | ||
} | ||
@@ -76,3 +75,3 @@ }; | ||
try { | ||
var arraybuffer = (<buffer.Buffer> data).toArrayBuffer(), | ||
var arraybuffer = buffer2ArrayBuffer(data), | ||
r: IDBRequest; | ||
@@ -79,0 +78,0 @@ if (overwrite) { |
@@ -1,2 +0,1 @@ | ||
import {Buffer} from '../core/buffer'; | ||
import kvfs = require('../generic/key_value_filesystem'); | ||
@@ -3,0 +2,0 @@ import {ApiError, ErrorCode} from '../core/api_error'; |
import file_system = require('../core/file_system'); | ||
import {Buffer} from '../core/buffer'; | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
@@ -9,6 +8,5 @@ import {FileFlag, ActionType} from '../core/file_flag'; | ||
import preload_file = require('../generic/preload_file'); | ||
import path = require('../core/node_path'); | ||
import path = require('path'); | ||
let deletionLogPath = '/.deletedFiles.log'; | ||
var deletionLogPath = '/.deletedFiles.log'; | ||
/** | ||
@@ -15,0 +13,0 @@ * Given a read-only mode, makes it writable. |
import file_system = require('../core/file_system'); | ||
import {Buffer} from '../core/buffer'; | ||
import {ApiError} from '../core/api_error'; | ||
import file_flag = require('../core/file_flag'); | ||
import util = require('../core/util'); | ||
import {buffer2ArrayBuffer, arrayBuffer2Buffer} from '../core/util'; | ||
import file = require('../core/file'); | ||
@@ -285,7 +284,7 @@ import node_fs_stats = require('../core/node_fs_stats'); | ||
function bufferToTransferrableObject(buff: NodeBuffer): ArrayBuffer { | ||
return (<Buffer> buff).toArrayBuffer() | ||
return buffer2ArrayBuffer(buff); | ||
} | ||
function transferrableObjectToBuffer(buff: ArrayBuffer): Buffer { | ||
return new Buffer(<any> buff); | ||
return arrayBuffer2Buffer(buff); | ||
} | ||
@@ -292,0 +291,0 @@ |
import file_system = require('../core/file_system'); | ||
import {Buffer} from '../core/buffer'; | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
import {FileFlag, ActionType} from '../core/file_flag'; | ||
import util = require('../core/util'); | ||
import {copyingSlice} from '../core/util'; | ||
import file = require('../core/file'); | ||
@@ -303,7 +302,3 @@ import {Stats} from '../core/node_fs_stats'; | ||
if (encoding === null) { | ||
if (fdBuff.length > 0) { | ||
return cb(err, fdBuff.sliceCopy()); | ||
} else { | ||
return cb(err, new Buffer(0)); | ||
} | ||
return cb(err, copyingSlice(fdBuff)); | ||
} | ||
@@ -328,7 +323,3 @@ try { | ||
if (encoding === null) { | ||
if (fdBuff.length > 0) { | ||
return fdBuff.sliceCopy(); | ||
} else { | ||
return new Buffer(0); | ||
} | ||
return copyingSlice(fdBuff); | ||
} | ||
@@ -335,0 +326,0 @@ return fdBuff.toString(encoding); |
@@ -48,3 +48,2 @@ /** | ||
*/ | ||
import {Buffer} from '../core/buffer'; | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
@@ -56,10 +55,7 @@ import node_fs_stats = require('../core/node_fs_stats'); | ||
import preload_file = require('../generic/preload_file'); | ||
import BufferCoreArrayBuffer = require('../core/buffer_core_arraybuffer'); | ||
import {Arrayish, buffer2Arrayish, arrayish2Buffer, copyingSlice} from '../core/util'; | ||
var inflateRaw: { | ||
(data: Uint8Array, options?: { | ||
(data: Arrayish<number>, options?: { | ||
chunkSize: number; | ||
}): Uint8Array; | ||
(data: number[], options?: { | ||
chunkSize: number; | ||
}): number[]; | ||
}): Arrayish<number>; | ||
} = require('pako/dist/pako_inflate.min').inflateRaw; | ||
@@ -236,19 +232,10 @@ import {FileIndex, DirInode, FileInode, isDirInode, isFileInode} from '../generic/file_index'; | ||
case CompressionMethod.DEFLATE: | ||
// Convert to Uint8Array or an array of bytes for the library. | ||
if (typeof(ArrayBuffer) !== 'undefined') { | ||
// No copying! :D | ||
var data = inflateRaw( | ||
(<Buffer> this.data.slice(0, this.record.compressedSize())).toUint8Array(), | ||
{ chunkSize: this.record.uncompressedSize() }); | ||
return new Buffer( | ||
new BufferCoreArrayBuffer(data.buffer), data.byteOffset, data.byteOffset + data.length); | ||
} else { | ||
// Convert to an array of bytes and decompress, then write into a new | ||
// buffer :( | ||
var newBuff = this.data.slice(0, this.record.compressedSize()); | ||
return new Buffer(inflateRaw(newBuff.toJSON().data, { chunkSize: this.record.uncompressedSize() })); | ||
} | ||
var data = inflateRaw( | ||
buffer2Arrayish(this.data.slice(0, this.record.compressedSize())), | ||
{ chunkSize: this.record.uncompressedSize() } | ||
); | ||
return arrayish2Buffer(data); | ||
case CompressionMethod.STORED: | ||
// Grab and copy. | ||
return (<Buffer> this.data).sliceCopy(0, this.record.uncompressedSize()); | ||
return copyingSlice(this.data, 0, this.record.uncompressedSize()); | ||
default: | ||
@@ -580,7 +567,3 @@ var name: string = CompressionMethod[compressionMethod]; | ||
if (encoding === null) { | ||
if (fdBuff.length > 0) { | ||
return fdBuff.sliceCopy(); | ||
} else { | ||
return new Buffer(0); | ||
} | ||
return copyingSlice(fdBuff); | ||
} | ||
@@ -587,0 +570,0 @@ return fdBuff.toString(encoding); |
@@ -1,3 +0,1 @@ | ||
import {Buffer} from "./buffer"; | ||
/** | ||
@@ -4,0 +2,0 @@ * Standard libc error codes. Add more to this enum and ErrorStrings as they are |
@@ -5,6 +5,5 @@ /** | ||
import buffer = require('./buffer'); | ||
import buffer = require('buffer'); | ||
import fs = require('./node_fs'); | ||
import path = require('./node_path'); | ||
import node_process = require('./node_process'); | ||
import path = require('path'); | ||
import file_system = require('./file_system'); | ||
@@ -29,4 +28,4 @@ import EmscriptenFS from '../generic/emscripten_fs'; | ||
export function install(obj: any) { | ||
obj.Buffer = buffer.Buffer; | ||
obj.process = node_process.process; | ||
obj.Buffer = Buffer; | ||
obj.process = process; | ||
var oldRequire = obj.require != null ? obj.require : null; | ||
@@ -58,3 +57,3 @@ // Monkey-patch require for Node-style code. | ||
case 'process': | ||
return node_process.process; | ||
return process; | ||
default: | ||
@@ -61,0 +60,0 @@ return FileSystem[module]; |
@@ -5,4 +5,3 @@ import {ApiError, ErrorCode} from './api_error'; | ||
import {FileFlag, ActionType} from './file_flag'; | ||
import path = require('./node_path'); | ||
import {Buffer} from './buffer'; | ||
import path = require('path'); | ||
@@ -9,0 +8,0 @@ /** |
import {ApiError, ErrorCode} from './api_error'; | ||
import stats = require('./node_fs_stats'); | ||
import buffer = require('./buffer'); | ||
@@ -5,0 +4,0 @@ export interface File { |
import fs = require('fs'); | ||
import file = require('./file'); | ||
import {Buffer} from './buffer'; | ||
@@ -5,0 +4,0 @@ /** |
@@ -5,4 +5,3 @@ import file = require('./file'); | ||
import {FileFlag} from './file_flag'; | ||
import {Buffer} from './buffer'; | ||
import path = require('./node_path'); | ||
import path = require('path'); | ||
import {Stats} from './node_fs_stats'; | ||
@@ -9,0 +8,0 @@ |
@@ -16,17 +16,150 @@ /** | ||
var fromCharCode = String.fromCharCode; | ||
export interface Arrayish<T> { | ||
[idx: number]: T; | ||
length: number; | ||
} | ||
/** | ||
* Efficiently converts an array of character codes into a JS string. | ||
* Avoids an issue with String.fromCharCode when the number of arguments is too large. | ||
* Converts a buffer into an array buffer. Attempts to do so in a | ||
* zero-copy manner, e.g. the array references the same memory. | ||
*/ | ||
export function fromCharCodes(charCodes: number[]): string { | ||
// 8K blocks. | ||
var numChars = charCodes.length, | ||
numChunks = ((numChars - 1) >> 13) + 1, | ||
chunks: string[] = new Array<string>(numChunks), i: number; | ||
for (i = 0; i < numChunks; i++) { | ||
chunks[i] = fromCharCode.apply(String, charCodes.slice(i * 0x2000, (i + 1) * 0x2000)); | ||
export function buffer2ArrayBuffer(buff: Buffer): ArrayBuffer { | ||
var u8 = buffer2Uint8array(buff), | ||
u8offset = u8.byteOffset, | ||
u8Len = u8.byteLength; | ||
if (u8offset === 0 && u8Len === u8.buffer.byteLength) { | ||
return u8.buffer; | ||
} else { | ||
return u8.buffer.slice(u8offset, u8offset + u8Len) | ||
} | ||
return chunks.join(""); | ||
} | ||
/** | ||
* Converts a buffer into a Uint8Array. Attempts to do so in a | ||
* zero-copy manner, e.g. the array references the same memory. | ||
*/ | ||
export function buffer2Uint8array(buff: Buffer): Uint8Array { | ||
if (buff['toUint8Array']) { | ||
return (<any> buff).toUint8Array(); | ||
} else if (buff instanceof Uint8Array) { | ||
// Node v4.0 buffers *are* Uint8Arrays. | ||
return <any> buff; | ||
} else { | ||
// Uint8Arrays can be constructed from arrayish numbers. | ||
// At this point, we assume this isn't a BFS array. | ||
return new Uint8Array(buff); | ||
} | ||
} | ||
/** | ||
* Converts the given buffer into a Uint8 arrayish form. Attempts | ||
* to be zero-copy. | ||
* | ||
* Required for BrowserFS buffers, which do not support indexing. | ||
*/ | ||
export function buffer2Arrayish(buff: Buffer): Arrayish<number> { | ||
if (buff.length === 0 || typeof(buff[0]) === 'number') { | ||
return buff; | ||
} else if (typeof(ArrayBuffer) !== 'undefined') { | ||
return buffer2Uint8array(buff); | ||
} else { | ||
return buff.toJSON().data; | ||
} | ||
} | ||
/** | ||
* Converts the given arrayish object into a Buffer. Attempts to | ||
* be zero-copy. | ||
*/ | ||
export function arrayish2Buffer(arr: Arrayish<number>): Buffer { | ||
if (arr instanceof Uint8Array) { | ||
return uint8Array2Buffer(arr); | ||
} else if (arr instanceof Buffer) { | ||
return arr; | ||
} else { | ||
return new Buffer(<number[]> arr); | ||
} | ||
} | ||
/** | ||
* Converts the given Uint8Array into a Buffer. Attempts to be zero-copy. | ||
*/ | ||
export function uint8Array2Buffer(u8: Uint8Array): Buffer { | ||
if (u8.byteOffset === 0 && u8.byteLength === u8.buffer.byteLength) { | ||
return arrayBuffer2Buffer(u8); | ||
} else { | ||
return new Buffer(u8); | ||
} | ||
} | ||
/** | ||
* Converts the given array buffer into a Buffer. Attempts to be | ||
* zero-copy. | ||
*/ | ||
export function arrayBuffer2Buffer(ab: ArrayBuffer): Buffer { | ||
try { | ||
// Works in BFS and Node v4.2. | ||
return new Buffer(<any> ab); | ||
} catch (e) { | ||
// I believe this copies, but there's no avoiding it in Node < v0.12 | ||
return new Buffer(new Uint8Array(ab)); | ||
} | ||
} | ||
// Polyfill for Uint8Array.prototype.slice. | ||
// Safari and some other browsers do not define it. | ||
if (typeof(ArrayBuffer) !== 'undefined' && typeof(Uint8Array) !== 'undefined') { | ||
if (!Uint8Array.prototype['slice']) { | ||
Uint8Array.prototype.slice = function(start: number = 0, end: number = this.length): Uint8Array { | ||
let self: Uint8Array = this; | ||
if (start < 0) { | ||
start = this.length + start; | ||
if (start < 0) { | ||
start = 0; | ||
} | ||
} | ||
if (end < 0) { | ||
end = this.length + end; | ||
if (end < 0) { | ||
end = 0; | ||
} | ||
} | ||
if (end < start) { | ||
end = start; | ||
} | ||
return new Uint8Array(self.buffer, self.byteOffset + start, end - start); | ||
}; | ||
} | ||
} | ||
/** | ||
* Copies a slice of the given buffer | ||
*/ | ||
export function copyingSlice(buff: Buffer, start: number = 0, end = buff.length): Buffer { | ||
if (start < 0 || end < 0 || end > buff.length || start > end) { | ||
throw new TypeError(`Invalid slice bounds on buffer of length ${buff.length}: [${start}, ${end}]`); | ||
} | ||
if (buff.length === 0) { | ||
// Avoid s0 corner case in ArrayBuffer case. | ||
return new Buffer(0); | ||
} else if (typeof(ArrayBuffer) !== 'undefined') { | ||
var u8 = buffer2Uint8array(buff), | ||
s0 = buff.readUInt8(0), | ||
newS0 = (s0 + 1) % 0xFF; | ||
buff.writeUInt8(newS0, 0); | ||
if (u8[0] === newS0) { | ||
// Same memory. Revert & copy. | ||
u8[0] = s0; | ||
return uint8Array2Buffer(u8.slice(start, end)); | ||
} else { | ||
// Revert. | ||
buff.writeUInt8(s0, 0); | ||
return uint8Array2Buffer(u8.subarray(start, end)); | ||
} | ||
} else { | ||
var buffSlice = new Buffer(end - start); | ||
buff.copy(buffSlice, 0, start, end); | ||
return buffSlice; | ||
} | ||
} |
@@ -14,8 +14,5 @@ /** | ||
import fs = require('../core/node_fs'); | ||
import buffer = require('../core/buffer'); | ||
import BufferCoreArrayBuffer = require('../core/buffer_core_arraybuffer'); | ||
import node_fs_stats = require('../core/node_fs_stats'); | ||
import {uint8Array2Buffer} from '../core/util'; | ||
import Buffer = buffer.Buffer; | ||
export interface Stats { | ||
@@ -122,25 +119,16 @@ dev: number; | ||
// Avoid copying overhead by reading directly into buffer. | ||
var bcore = new BufferCoreArrayBuffer(buffer.buffer); | ||
var nbuffer = new Buffer(bcore, buffer.byteOffset + offset, buffer.byteOffset + offset + length); | ||
var res: number; | ||
try { | ||
res = fs.readSync(stream.nfd, nbuffer, 0, length, position); | ||
return fs.readSync(stream.nfd, uint8Array2Buffer(buffer), offset, length, position); | ||
} catch (e) { | ||
throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); | ||
} | ||
// No copying needed, since we wrote directly into UintArray. | ||
return res; | ||
} | ||
public write(stream: EmscriptenStream, buffer: Uint8Array, offset: number, length: number, position: number): number { | ||
// Avoid copying overhead; plug the buffer directly into a BufferCore. | ||
var bcore = new BufferCoreArrayBuffer(buffer.buffer); | ||
var nbuffer = new Buffer(bcore, buffer.byteOffset + offset, buffer.byteOffset + offset + length); | ||
var res: number; | ||
// Avoid copying overhead. | ||
try { | ||
res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); | ||
return fs.writeSync(stream.nfd, uint8Array2Buffer(buffer), offset, length, position); | ||
} catch (e) { | ||
throw new this.FS.ErrnoError(this.ERRNO_CODES[e.code]); | ||
} | ||
return res; | ||
} | ||
@@ -147,0 +135,0 @@ |
import {Stats, FileType} from '../core/node_fs_stats'; | ||
import path = require('../core/node_path'); | ||
import path = require('path'); | ||
@@ -4,0 +4,0 @@ /** |
import {Stats, FileType} from '../core/node_fs_stats'; | ||
import buffer = require('../core/buffer'); | ||
/** | ||
@@ -34,3 +34,3 @@ * Generic inode definition that can easily be serialized. | ||
*/ | ||
public toBuffer(buff: NodeBuffer = new buffer.Buffer(this.getSize())): NodeBuffer { | ||
public toBuffer(buff: NodeBuffer = new Buffer(this.getSize())): NodeBuffer { | ||
buff.writeUInt32LE(this.size, 0); | ||
@@ -37,0 +37,0 @@ buff.writeUInt16LE(this.mode, 4); |
@@ -6,5 +6,4 @@ import file_system = require('../core/file_system'); | ||
import file_flag = require('../core/file_flag'); | ||
import path = require('../core/node_path'); | ||
import path = require('path'); | ||
import Inode = require('../generic/inode'); | ||
import {Buffer} from '../core/buffer'; | ||
import preload_file = require('../generic/preload_file'); | ||
@@ -11,0 +10,0 @@ var ROOT_NODE_ID: string = "/"; |
import file = require('../core/file'); | ||
import file_system = require('../core/file_system'); | ||
import {Stats} from '../core/node_fs_stats'; | ||
import {Buffer} from '../core/buffer'; | ||
import {FileFlag} from '../core/file_flag'; | ||
@@ -6,0 +5,0 @@ import {ApiError, ErrorCode} from '../core/api_error'; |
@@ -7,3 +7,2 @@ /** | ||
import util = require('../core/util'); | ||
import {Buffer} from '../core/buffer'; | ||
import {ApiError, ErrorCode} from '../core/api_error'; | ||
@@ -10,0 +9,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
4556990
184
42
174
32216
3