Socket
Socket
Sign inDemoInstall

@angular-devkit/schematics

Package Overview
Dependencies
Maintainers
1
Versions
762
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular-devkit/schematics - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

tools/description.d.ts

3

package.json
{
"name": "@angular-devkit/schematics",
"version": "0.0.1",
"version": "0.0.2",
"description": "Angular Schematics - Library",

@@ -15,2 +15,3 @@ "main": "src/index.js",

"template",
"tooling",
"code generation",

@@ -17,0 +18,0 @@ "schematics"

@@ -23,3 +23,3 @@ # Schematics

# Tooling
Schematics is a library, and does not work by itself. A [reference CLI](https://github.com/angular/devkit/tree/master/packages/_schematics_cli) is available on this repository, but is not published on NPM. This document explain the library usage and the tooling API, but does not go into the tool implementation itself.
Schematics is a library, and does not work by itself. A [reference CLI](https://github.com/angular/devkit/tree/master/packages/_/schematics_cli) is available on this repository, but is not published on NPM. This document explain the library usage and the tooling API, but does not go into the tool implementation itself.

@@ -26,0 +26,0 @@ The tooling is responsible for the following tasks:

/// <reference types="node" />
import { Collection, Engine, EngineHost, Schematic, Source } from './interface';
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import 'rxjs/add/operator/map';
import { Url } from 'url';
import { BaseException } from '../exception/exception';
import { MergeStrategy } from '../tree/interface';
import { Url } from 'url';
import 'rxjs/add/operator/map';
import { Collection, Engine, EngineHost, Schematic, Source } from './interface';
export declare class UnknownUrlSourceProtocol extends BaseException {

@@ -14,3 +21,3 @@ constructor(url: string);

export declare class UnknownSchematicException extends BaseException {
constructor(name: string, collection: Collection<any, any>);
constructor(name: string, collection: Collection<{}, {}>);
}

@@ -17,0 +24,0 @@ export declare class SchematicEngine<CollectionT extends object, SchematicT extends object> implements Engine<CollectionT, SchematicT> {

@@ -10,4 +10,3 @@ "use strict";

*/
const collection_1 = require("./collection");
const schematic_1 = require("./schematic");
require("rxjs/add/operator/map");
const exception_1 = require("../exception/exception");

@@ -17,3 +16,4 @@ const interface_1 = require("../tree/interface");

const static_1 = require("../tree/static");
require("rxjs/add/operator/map");
const collection_1 = require("./collection");
const schematic_1 = require("./schematic");
class UnknownUrlSourceProtocol extends exception_1.BaseException {

@@ -91,2 +91,2 @@ constructor(url) { super(`Unknown Protocol on url "${url}".`); }

exports.SchematicEngine = SchematicEngine;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCw2Q0FBNEM7QUFRNUMsMkNBQTBDO0FBQzFDLHNEQUFxRDtBQUNyRCxpREFBZ0Q7QUFDaEQsdUNBQXNDO0FBQ3RDLDJDQUFxQztBQUdyQyxpQ0FBK0I7QUFHL0IsOEJBQXNDLFNBQVEseUJBQWE7SUFDekQsWUFBWSxHQUFXLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN6RTtBQUZELDREQUVDO0FBRUQsZ0NBQXdDLFNBQVEseUJBQWE7SUFDM0QsWUFBWSxJQUFZLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN0RTtBQUZELGdFQUVDO0FBQ0QsK0JBQXVDLFNBQVEseUJBQWE7SUFDMUQsWUFBWSxJQUFZLEVBQUUsVUFBZ0M7UUFDeEQsS0FBSyxDQUFDLGNBQWMsSUFBSSw4QkFBOEIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDRjtBQUpELDhEQUlDO0FBR0Q7SUFPRSxZQUFvQixLQUEwQztRQUExQyxVQUFLLEdBQUwsS0FBSyxDQUFxQztRQUp0RCxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBbUQsQ0FBQztRQUM5RSxvQkFBZSxHQUNuQixJQUFJLEdBQUcsRUFBK0QsQ0FBQztJQUczRSxDQUFDO0lBRUQsSUFBSSxvQkFBb0IsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSx5QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFL0YsZ0JBQWdCLENBQUMsSUFBWTtR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QUM7WUFDcEM7Z0JBQ0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkQsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUNoQixNQUFNLElBQUksd0JBQXdCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBM0VELDBDQTJFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Q29sbGVjdGlvbkltcGx9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQge1xuICBDb2xsZWN0aW9uLFxuICBFbmdpbmUsXG4gIEVuZ2luZUhvc3QsXG4gIFNjaGVtYXRpYyxcbiAgU291cmNlLFxufSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQge1NjaGVtYXRpY0ltcGx9IGZyb20gJy4vc2NoZW1hdGljJztcbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge01lcmdlU3RyYXRlZ3l9IGZyb20gJy4uL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7TnVsbFRyZWV9IGZyb20gJy4uL3RyZWUvbnVsbCc7XG5pbXBvcnQge2VtcHR5fSBmcm9tICcuLi90cmVlL3N0YXRpYyc7XG5cbmltcG9ydCB7VXJsfSBmcm9tICd1cmwnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9tYXAnO1xuXG5cbmV4cG9ydCBjbGFzcyBVbmtub3duVXJsU291cmNlUHJvdG9jb2wgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcpIHsgc3VwZXIoYFVua25vd24gUHJvdG9jb2wgb24gdXJsIFwiJHt1cmx9XCIuYCk7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFVua25vd25Db2xsZWN0aW9uRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykgeyBzdXBlcihgVW5rbm93biBjb2xsZWN0aW9uIFwiJHtuYW1lfVwiLmApOyB9XG59XG5leHBvcnQgY2xhc3MgVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGNvbGxlY3Rpb246IENvbGxlY3Rpb248YW55LCBhbnk+KSB7XG4gICAgc3VwZXIoYFNjaGVtYXRpYyBcIiR7bmFtZX1cIiBub3QgZm91bmQgaW4gY29sbGVjdGlvbiBcIiR7Y29sbGVjdGlvbi5kZXNjcmlwdGlvbi5uYW1lfVwiLmApO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFNjaGVtYXRpY0VuZ2luZTxDb2xsZWN0aW9uVCBleHRlbmRzIG9iamVjdCwgU2NoZW1hdGljVCBleHRlbmRzIG9iamVjdD5cbiAgICBpbXBsZW1lbnRzIEVuZ2luZTxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4ge1xuXG4gIHByaXZhdGUgX2NvbGxlY3Rpb25DYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBDb2xsZWN0aW9uSW1wbDxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4+KCk7XG4gIHByaXZhdGUgX3NjaGVtYXRpY0NhY2hlXG4gICAgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgU2NoZW1hdGljSW1wbDxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvc3Q6IEVuZ2luZUhvc3Q8Q29sbGVjdGlvblQsIFNjaGVtYXRpY1Q+KSB7XG4gIH1cblxuICBnZXQgZGVmYXVsdE1lcmdlU3RyYXRlZ3koKSB7IHJldHVybiB0aGlzLl9ob3N0LmRlZmF1bHRNZXJnZVN0cmF0ZWd5IHx8IE1lcmdlU3RyYXRlZ3kuRGVmYXVsdDsgfVxuXG4gIGNyZWF0ZUNvbGxlY3Rpb24obmFtZTogc3RyaW5nKTogQ29sbGVjdGlvbjxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4ge1xuICAgIGxldCBjb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbkNhY2hlLmdldChuYW1lKTtcbiAgICBpZiAoY29sbGVjdGlvbikge1xuICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgfVxuXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLl9ob3N0LmNyZWF0ZUNvbGxlY3Rpb25EZXNjcmlwdGlvbihuYW1lKTtcbiAgICBpZiAoIWRlc2NyaXB0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24obmFtZSk7XG4gICAgfVxuXG4gICAgY29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uSW1wbDxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4oZGVzY3JpcHRpb24sIHRoaXMpO1xuICAgIHRoaXMuX2NvbGxlY3Rpb25DYWNoZS5zZXQobmFtZSwgY29sbGVjdGlvbik7XG4gICAgdGhpcy5fc2NoZW1hdGljQ2FjaGUuc2V0KG5hbWUsIG5ldyBNYXAoKSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH1cblxuICBjcmVhdGVTY2hlbWF0aWMoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPik6IFNjaGVtYXRpYzxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25JbXBsID0gdGhpcy5fY29sbGVjdGlvbkNhY2hlLmdldChjb2xsZWN0aW9uLmRlc2NyaXB0aW9uLm5hbWUpO1xuICAgIGNvbnN0IHNjaGVtYXRpY01hcCA9IHRoaXMuX3NjaGVtYXRpY0NhY2hlLmdldChjb2xsZWN0aW9uLmRlc2NyaXB0aW9uLm5hbWUpO1xuICAgIGlmICghY29sbGVjdGlvbkltcGwgfHwgIXNjaGVtYXRpY01hcCB8fCBjb2xsZWN0aW9uSW1wbCAhPT0gY29sbGVjdGlvbikge1xuICAgICAgLy8gVGhpcyBpcyB3ZWlyZCwgbWF5YmUgdGhlIGNvbGxlY3Rpb24gd2FzIGNyZWF0ZWQgYnkgYW5vdGhlciBlbmdpbmU/XG4gICAgICB0aHJvdyBuZXcgVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24oY29sbGVjdGlvbi5kZXNjcmlwdGlvbi5uYW1lKTtcbiAgICB9XG5cbiAgICBsZXQgc2NoZW1hdGljID0gc2NoZW1hdGljTWFwLmdldChuYW1lKTtcbiAgICBpZiAoc2NoZW1hdGljKSB7XG4gICAgICByZXR1cm4gc2NoZW1hdGljO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5faG9zdC5jcmVhdGVTY2hlbWF0aWNEZXNjcmlwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTtcbiAgICBpZiAoIWRlc2NyaXB0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbihuYW1lLCBjb2xsZWN0aW9uKTtcbiAgICB9XG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2hvc3QuZ2V0U2NoZW1hdGljUnVsZUZhY3RvcnkoZGVzY3JpcHRpb24sIGNvbGxlY3Rpb24uZGVzY3JpcHRpb24pO1xuICAgIHNjaGVtYXRpYyA9IG5ldyBTY2hlbWF0aWNJbXBsPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPihkZXNjcmlwdGlvbiwgZmFjdG9yeSwgY29sbGVjdGlvbiwgdGhpcyk7XG5cbiAgICBzY2hlbWF0aWNNYXAuc2V0KG5hbWUsIHNjaGVtYXRpYyk7XG4gICAgcmV0dXJuIHNjaGVtYXRpYztcbiAgfVxuXG4gIHRyYW5zZm9ybU9wdGlvbnM8T3B0aW9uVCBleHRlbmRzIG9iamVjdCwgUmVzdWx0VCBleHRlbmRzIG9iamVjdD4oXG4gICAgICBzY2hlbWF0aWM6IFNjaGVtYXRpYzxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4sIG9wdGlvbnM6IE9wdGlvblQpOiBSZXN1bHRUIHtcbiAgICByZXR1cm4gdGhpcy5faG9zdC50cmFuc2Zvcm1PcHRpb25zPE9wdGlvblQsIFJlc3VsdFQ+KFxuICAgICAgc2NoZW1hdGljLmRlc2NyaXB0aW9uLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cblxuICBjcmVhdGVTb3VyY2VGcm9tVXJsKHVybDogVXJsKTogU291cmNlIHtcbiAgICBzd2l0Y2ggKHVybC5wcm90b2NvbCkge1xuICAgICAgY2FzZSAnbnVsbDonOiByZXR1cm4gKCkgPT4gbmV3IE51bGxUcmVlKCk7XG4gICAgICBjYXNlICdlbXB0eTonOiByZXR1cm4gKCkgPT4gZW1wdHkoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IGhvc3RTb3VyY2UgPSB0aGlzLl9ob3N0LmNyZWF0ZVNvdXJjZUZyb21VcmwodXJsKTtcbiAgICAgICAgaWYgKCFob3N0U291cmNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVua25vd25VcmxTb3VyY2VQcm90b2NvbCh1cmwudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhvc3RTb3VyY2U7XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxpQ0FBK0I7QUFFL0Isc0RBQXFEO0FBQ3JELGlEQUFnRDtBQUNoRCx1Q0FBc0M7QUFDdEMsMkNBQXFDO0FBQ3JDLDZDQUE0QztBQVE1QywyQ0FBMEM7QUFHMUMsOEJBQXNDLFNBQVEseUJBQWE7SUFDekQsWUFBWSxHQUFXLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN6RTtBQUZELDREQUVDO0FBRUQsZ0NBQXdDLFNBQVEseUJBQWE7SUFDM0QsWUFBWSxJQUFZLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN0RTtBQUZELGdFQUVDO0FBQ0QsK0JBQXVDLFNBQVEseUJBQWE7SUFDMUQsWUFBWSxJQUFZLEVBQUUsVUFBOEI7UUFDdEQsS0FBSyxDQUFDLGNBQWMsSUFBSSw4QkFBOEIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDRjtBQUpELDhEQUlDO0FBR0Q7SUFPRSxZQUFvQixLQUEwQztRQUExQyxVQUFLLEdBQUwsS0FBSyxDQUFxQztRQUp0RCxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBbUQsQ0FBQztRQUM5RSxvQkFBZSxHQUNuQixJQUFJLEdBQUcsRUFBK0QsQ0FBQztJQUczRSxDQUFDO0lBRUQsSUFBSSxvQkFBb0IsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSx5QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFL0YsZ0JBQWdCLENBQUMsSUFBWTtR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QUM7WUFDcEM7Z0JBQ0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkQsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUNoQixNQUFNLElBQUksd0JBQXdCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBOUVELDBDQThFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvbWFwJztcbmltcG9ydCB7VXJsfSBmcm9tICd1cmwnO1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7TWVyZ2VTdHJhdGVneX0gZnJvbSAnLi4vdHJlZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHtOdWxsVHJlZX0gZnJvbSAnLi4vdHJlZS9udWxsJztcbmltcG9ydCB7ZW1wdHl9IGZyb20gJy4uL3RyZWUvc3RhdGljJztcbmltcG9ydCB7Q29sbGVjdGlvbkltcGx9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQge1xuICBDb2xsZWN0aW9uLFxuICBFbmdpbmUsXG4gIEVuZ2luZUhvc3QsXG4gIFNjaGVtYXRpYyxcbiAgU291cmNlLFxufSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQge1NjaGVtYXRpY0ltcGx9IGZyb20gJy4vc2NoZW1hdGljJztcblxuXG5leHBvcnQgY2xhc3MgVW5rbm93blVybFNvdXJjZVByb3RvY29sIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nKSB7IHN1cGVyKGBVbmtub3duIFByb3RvY29sIG9uIHVybCBcIiR7dXJsfVwiLmApOyB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sbGVjdGlvbkV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHsgc3VwZXIoYFVua25vd24gY29sbGVjdGlvbiBcIiR7bmFtZX1cIi5gKTsgfVxufVxuZXhwb3J0IGNsYXNzIFVua25vd25TY2hlbWF0aWNFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPHt9LCB7fT4pIHtcbiAgICBzdXBlcihgU2NoZW1hdGljIFwiJHtuYW1lfVwiIG5vdCBmb3VuZCBpbiBjb2xsZWN0aW9uIFwiJHtjb2xsZWN0aW9uLmRlc2NyaXB0aW9uLm5hbWV9XCIuYCk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgU2NoZW1hdGljRW5naW5lPENvbGxlY3Rpb25UIGV4dGVuZHMgb2JqZWN0LCBTY2hlbWF0aWNUIGV4dGVuZHMgb2JqZWN0PlxuICAgIGltcGxlbWVudHMgRW5naW5lPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPiB7XG5cbiAgcHJpdmF0ZSBfY29sbGVjdGlvbkNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIENvbGxlY3Rpb25JbXBsPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPj4oKTtcbiAgcHJpdmF0ZSBfc2NoZW1hdGljQ2FjaGVcbiAgICA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBTY2hlbWF0aWNJbXBsPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPj4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRW5naW5lSG9zdDxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4pIHtcbiAgfVxuXG4gIGdldCBkZWZhdWx0TWVyZ2VTdHJhdGVneSgpIHsgcmV0dXJuIHRoaXMuX2hvc3QuZGVmYXVsdE1lcmdlU3RyYXRlZ3kgfHwgTWVyZ2VTdHJhdGVneS5EZWZhdWx0OyB9XG5cbiAgY3JlYXRlQ29sbGVjdGlvbihuYW1lOiBzdHJpbmcpOiBDb2xsZWN0aW9uPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPiB7XG4gICAgbGV0IGNvbGxlY3Rpb24gPSB0aGlzLl9jb2xsZWN0aW9uQ2FjaGUuZ2V0KG5hbWUpO1xuICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUpO1xuICAgIGlmICghZGVzY3JpcHRpb24pIHtcbiAgICAgIHRocm93IG5ldyBVbmtub3duQ29sbGVjdGlvbkV4Y2VwdGlvbihuYW1lKTtcbiAgICB9XG5cbiAgICBjb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb25JbXBsPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPihkZXNjcmlwdGlvbiwgdGhpcyk7XG4gICAgdGhpcy5fY29sbGVjdGlvbkNhY2hlLnNldChuYW1lLCBjb2xsZWN0aW9uKTtcbiAgICB0aGlzLl9zY2hlbWF0aWNDYWNoZS5zZXQobmFtZSwgbmV3IE1hcCgpKTtcblxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG5cbiAgY3JlYXRlU2NoZW1hdGljKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4pOiBTY2hlbWF0aWM8Q29sbGVjdGlvblQsIFNjaGVtYXRpY1Q+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uSW1wbCA9IHRoaXMuX2NvbGxlY3Rpb25DYWNoZS5nZXQoY29sbGVjdGlvbi5kZXNjcmlwdGlvbi5uYW1lKTtcbiAgICBjb25zdCBzY2hlbWF0aWNNYXAgPSB0aGlzLl9zY2hlbWF0aWNDYWNoZS5nZXQoY29sbGVjdGlvbi5kZXNjcmlwdGlvbi5uYW1lKTtcbiAgICBpZiAoIWNvbGxlY3Rpb25JbXBsIHx8ICFzY2hlbWF0aWNNYXAgfHwgY29sbGVjdGlvbkltcGwgIT09IGNvbGxlY3Rpb24pIHtcbiAgICAgIC8vIFRoaXMgaXMgd2VpcmQsIG1heWJlIHRoZSBjb2xsZWN0aW9uIHdhcyBjcmVhdGVkIGJ5IGFub3RoZXIgZW5naW5lP1xuICAgICAgdGhyb3cgbmV3IFVua25vd25Db2xsZWN0aW9uRXhjZXB0aW9uKGNvbGxlY3Rpb24uZGVzY3JpcHRpb24ubmFtZSk7XG4gICAgfVxuXG4gICAgbGV0IHNjaGVtYXRpYyA9IHNjaGVtYXRpY01hcC5nZXQobmFtZSk7XG4gICAgaWYgKHNjaGVtYXRpYykge1xuICAgICAgcmV0dXJuIHNjaGVtYXRpYztcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlU2NoZW1hdGljRGVzY3JpcHRpb24obmFtZSwgY29sbGVjdGlvbi5kZXNjcmlwdGlvbik7XG4gICAgaWYgKCFkZXNjcmlwdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFVua25vd25TY2hlbWF0aWNFeGNlcHRpb24obmFtZSwgY29sbGVjdGlvbik7XG4gICAgfVxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9ob3N0LmdldFNjaGVtYXRpY1J1bGVGYWN0b3J5KGRlc2NyaXB0aW9uLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTtcbiAgICBzY2hlbWF0aWMgPSBuZXcgU2NoZW1hdGljSW1wbDxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4oZGVzY3JpcHRpb24sIGZhY3RvcnksIGNvbGxlY3Rpb24sIHRoaXMpO1xuXG4gICAgc2NoZW1hdGljTWFwLnNldChuYW1lLCBzY2hlbWF0aWMpO1xuXG4gICAgcmV0dXJuIHNjaGVtYXRpYztcbiAgfVxuXG4gIHRyYW5zZm9ybU9wdGlvbnM8T3B0aW9uVCBleHRlbmRzIG9iamVjdCwgUmVzdWx0VCBleHRlbmRzIG9iamVjdD4oXG4gICAgICBzY2hlbWF0aWM6IFNjaGVtYXRpYzxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4sIG9wdGlvbnM6IE9wdGlvblQpOiBSZXN1bHRUIHtcbiAgICByZXR1cm4gdGhpcy5faG9zdC50cmFuc2Zvcm1PcHRpb25zPE9wdGlvblQsIFJlc3VsdFQ+KFxuICAgICAgc2NoZW1hdGljLmRlc2NyaXB0aW9uLFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlU291cmNlRnJvbVVybCh1cmw6IFVybCk6IFNvdXJjZSB7XG4gICAgc3dpdGNoICh1cmwucHJvdG9jb2wpIHtcbiAgICAgIGNhc2UgJ251bGw6JzogcmV0dXJuICgpID0+IG5ldyBOdWxsVHJlZSgpO1xuICAgICAgY2FzZSAnZW1wdHk6JzogcmV0dXJuICgpID0+IGVtcHR5KCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBob3N0U291cmNlID0gdGhpcy5faG9zdC5jcmVhdGVTb3VyY2VGcm9tVXJsKHVybCk7XG4gICAgICAgIGlmICghaG9zdFNvdXJjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVXJsU291cmNlUHJvdG9jb2wodXJsLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhvc3RTb3VyY2U7XG4gICAgfVxuICB9XG59XG4iXX0=

@@ -9,5 +9,5 @@ /// <reference types="node" />

*/
import { FileEntry, MergeStrategy, Tree } from '../tree/interface';
import { Observable } from 'rxjs/Observable';
import { Url } from 'url';
import { FileEntry, MergeStrategy, Tree } from '../tree/interface';
/**

@@ -90,3 +90,3 @@ * The description (metadata) of a collection. This type contains every information the engine

*/
export declare type SchematicContext = TypedSchematicContext<any, any>;
export declare type SchematicContext = TypedSchematicContext<{}, {}>;
/**

@@ -93,0 +93,0 @@ * A rule factory, which is normally the way schematics are implemented. Returned by the tooling

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZUVudHJ5LCBNZXJnZVN0cmF0ZWd5LCBUcmVlfSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCB7VXJsfSBmcm9tICd1cmwnO1xuXG5cbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIChtZXRhZGF0YSkgb2YgYSBjb2xsZWN0aW9uLiBUaGlzIHR5cGUgY29udGFpbnMgZXZlcnkgaW5mb3JtYXRpb24gdGhlIGVuZ2luZVxuICogbmVlZHMgdG8gcnVuLiBUaGUgQ29sbGVjdGlvbk1ldGFkYXRhVCB0eXBlIHBhcmFtZXRlciBjb250YWlucyBhZGRpdGlvbmFsIG1ldGFkYXRhIHRoYXQgeW91XG4gKiB3YW50IHRvIHN0b3JlIHdoaWxlIHJlbWFpbmluZyB0eXBlLXNhZmUuXG4gKi9cbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25EZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0PiA9IENvbGxlY3Rpb25NZXRhZGF0YVQgJiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn07XG5cbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIChtZXRhZGF0YSkgb2YgYSBzY2hlbWF0aWMuIFRoaXMgdHlwZSBjb250YWlucyBldmVyeSBpbmZvcm1hdGlvbiB0aGUgZW5naW5lXG4gKiBuZWVkcyB0byBydW4uIFRoZSBTY2hlbWF0aWNNZXRhZGF0YVQgYW5kIENvbGxlY3Rpb25NZXRhZGF0YVQgdHlwZSBwYXJhbWV0ZXJzIGNvbnRhaW4gYWRkaXRpb25hbFxuICogbWV0YWRhdGEgdGhhdCB5b3Ugd2FudCB0byBzdG9yZSB3aGlsZSByZW1haW5pbmcgdHlwZS1zYWZlLlxuICovXG5leHBvcnQgdHlwZSBTY2hlbWF0aWNEZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NoZW1hdGljTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0PiA9IFNjaGVtYXRpY01ldGFkYXRhVCAmIHtcbiAgcmVhZG9ubHkgY29sbGVjdGlvbjogQ29sbGVjdGlvbkRlc2NyaXB0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQ+O1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59O1xuXG5cbi8qKlxuICogVGhlIEhvc3QgZm9yIHRoZSBFbmdpbmUuIFNwZWNpZmljYWxseSwgdGhlIHBpZWNlIG9mIHRoZSB0b29saW5nIHJlc3BvbnNpYmxlIGZvciByZXNvbHZpbmdcbiAqIGNvbGxlY3Rpb25zIGFuZCBzY2hlbWF0aWNzIGRlc2NyaXB0aW9ucy4gVGhlIFNjaGVtYXRpY01ldGFkYXRhVCBhbmQgQ29sbGVjdGlvbk1ldGFkYXRhVCB0eXBlXG4gKiBwYXJhbWV0ZXJzIGNvbnRhaW4gYWRkaXRpb25hbCBtZXRhZGF0YSB0aGF0IHlvdSB3YW50IHRvIHN0b3JlIHdoaWxlIHJlbWFpbmluZyB0eXBlLXNhZmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5naW5lSG9zdDxDb2xsZWN0aW9uTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0LCBTY2hlbWF0aWNNZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWU6IHN0cmluZyk6IENvbGxlY3Rpb25EZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUPiB8IG51bGw7XG4gIGNyZWF0ZVNjaGVtYXRpY0Rlc2NyaXB0aW9uKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkRlc2NyaXB0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQ+KTpcbiAgICAgICAgU2NoZW1hdGljRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPiB8IG51bGw7XG4gIGdldFNjaGVtYXRpY1J1bGVGYWN0b3J5PE9wdGlvblQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgc2NoZW1hdGljOiBTY2hlbWF0aWNEZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFULCBTY2hlbWF0aWNNZXRhZGF0YVQ+LFxuICAgICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkRlc2NyaXB0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQ+KTogUnVsZUZhY3Rvcnk8T3B0aW9uVD47XG4gIGNyZWF0ZVNvdXJjZUZyb21VcmwodXJsOiBVcmwpOiBTb3VyY2UgfCBudWxsO1xuICB0cmFuc2Zvcm1PcHRpb25zPE9wdGlvblQgZXh0ZW5kcyBvYmplY3QsIFJlc3VsdFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIHNjaGVtYXRpYzogU2NoZW1hdGljRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPixcbiAgICBvcHRpb25zOiBPcHRpb25UXG4gICk6IFJlc3VsdFQ7XG5cblxuICByZWFkb25seSBkZWZhdWx0TWVyZ2VTdHJhdGVneT86IE1lcmdlU3RyYXRlZ3k7XG59XG5cblxuLyoqXG4gKiBUaGUgcm9vdCBFbmdpbmUgZm9yIGNyZWF0aW5nIGFuZCBydW5uaW5nIHNjaGVtYXRpY3MgYW5kIGNvbGxlY3Rpb25zLiBFdmVyeXRoaW5nIHJlbGF0ZWQgdG9cbiAqIGEgc2NoZW1hdGljIGV4ZWN1dGlvbiBzdGFydHMgZnJvbSB0aGlzIGludGVyZmFjZS5cbiAqXG4gKiBDb2xsZWN0aW9uTWV0YWRhdGFUIGlzLCBieSBkZWZhdWx0LCBhIGdlbmVyaWMgQ29sbGVjdGlvbiBtZXRhZGF0YSB0eXBlLiBUaGlzIGlzIHVzZWQgdGhyb3VnaG91dFxuICogdGhlIGVuZ2luZSB0eXBpbmdzIHNvIHRoYXQgeW91IGNhbiB1c2UgYSB0eXBlIHRoYXQncyBtZXJnZWQgaW50byBkZXNjcmlwdGlvbnMsIHdoaWxlIGJlaW5nXG4gKiB0eXBlLXNhZmUuXG4gKlxuICogU2NoZW1hdGljTWV0YWRhdGFUIGlzIGEgdHlwZSB0aGF0IGNvbnRhaW5zIGFkZGl0aW9uYWwgdHlwaW5nIGZvciB0aGUgU2NoZW1hdGljIERlc2NyaXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZ2luZTxDb2xsZWN0aW9uTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0LCBTY2hlbWF0aWNNZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgY3JlYXRlQ29sbGVjdGlvbihuYW1lOiBzdHJpbmcpOiBDb2xsZWN0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD47XG4gIGNyZWF0ZVNjaGVtYXRpYyhcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPlxuICApOiBTY2hlbWF0aWM8Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbiAgY3JlYXRlU291cmNlRnJvbVVybCh1cmw6IFVybCk6IFNvdXJjZTtcbiAgdHJhbnNmb3JtT3B0aW9uczxPcHRpb25UIGV4dGVuZHMgb2JqZWN0LCBSZXN1bHRUIGV4dGVuZHMgb2JqZWN0PihcbiAgICAgIHNjaGVtYXRpYzogU2NoZW1hdGljPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD4sXG4gICAgICBvcHRpb25zOiBPcHRpb25UXG4gICk6IFJlc3VsdFQ7XG5cbiAgcmVhZG9ubHkgZGVmYXVsdE1lcmdlU3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3k7XG59XG5cblxuLyoqXG4gKiBBIENvbGxlY3Rpb24gYXMgY3JlYXRlZCBieSB0aGUgRW5naW5lLiBUaGlzIHNob3VsZCBiZSB1c2VkIGJ5IHRoZSB0b29sIHRvIGNyZWF0ZSBzY2hlbWF0aWNzLFxuICogb3IgYnkgcnVsZXMgdG8gY3JlYXRlIG90aGVyIHNjaGVtYXRpY3MgYXMgd2VsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3QsIFNjaGVtYXRpY01ldGFkYXRhVCBleHRlbmRzIG9iamVjdD4ge1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogQ29sbGVjdGlvbkRlc2NyaXB0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQ+O1xuXG4gIGNyZWF0ZVNjaGVtYXRpYyhuYW1lOiBzdHJpbmcpOiBTY2hlbWF0aWM8Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbn1cblxuXG4vKipcbiAqIEEgU2NoZW1hdGljIGFzIGNyZWF0ZWQgYnkgdGhlIEVuZ2luZS4gVGhpcyBzaG91bGQgYmUgdXNlZCBieSB0aGUgdG9vbCB0byBleGVjdXRlIHRoZSBtYWluXG4gKiBzY2hlbWF0aWNzLCBvciBieSBydWxlcyB0byBleGVjdXRlIG90aGVyIHNjaGVtYXRpY3MgYXMgd2VsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlbWF0aWM8Q29sbGVjdGlvbk1ldGFkYXRhVCBleHRlbmRzIG9iamVjdCwgU2NoZW1hdGljTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0PiB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBTY2hlbWF0aWNEZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFULCBTY2hlbWF0aWNNZXRhZGF0YVQ+O1xuICByZWFkb25seSBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD47XG5cbiAgY2FsbDxUPihvcHRpb25zOiBULCBob3N0OiBPYnNlcnZhYmxlPFRyZWU+KTogT2JzZXJ2YWJsZTxUcmVlPjtcbn1cblxuXG4vKipcbiAqIEEgU2NoZW1hdGljQ29udGV4dC4gQ29udGFpbnMgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciBTY2hlbWF0aWNzIHRvIGV4ZWN1dGUgc29tZSBydWxlcywgZm9yXG4gKiBleGFtcGxlIHdoZW4gdXNpbmcgYW5vdGhlciBzY2hlbWF0aWNzLCBhcyB3ZSBuZWVkIHRoZSBlbmdpbmUgYW5kIGNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRTY2hlbWF0aWNDb250ZXh0PENvbGxlY3Rpb25NZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY2hlbWF0aWNNZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgcmVhZG9ubHkgZW5naW5lOiBFbmdpbmU8Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbiAgcmVhZG9ubHkgc2NoZW1hdGljOiBTY2hlbWF0aWM8Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbiAgcmVhZG9ubHkgc3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3k7XG59XG5cblxuLyoqXG4gKiBUaGlzIGlzIHVzZWQgYnkgdGhlIFNjaGVtYXRpY3MgaW1wbGVtZW50YXRpb25zIGluIG9yZGVyIHRvIGF2b2lkIG5lZWRpbmcgdG8gaGF2ZSB0eXBpbmcgZnJvbVxuICogdGhlIHRvb2xpbmcuIFNjaGVtYXRpY3MgYXJlIG5vdCBzcGVjaWZpYyB0byBhIHRvb2wuXG4gKi9cbmV4cG9ydCB0eXBlIFNjaGVtYXRpY0NvbnRleHQgPSBUeXBlZFNjaGVtYXRpY0NvbnRleHQ8YW55LCBhbnk+O1xuXG5cbi8qKlxuICogQSBydWxlIGZhY3RvcnksIHdoaWNoIGlzIG5vcm1hbGx5IHRoZSB3YXkgc2NoZW1hdGljcyBhcmUgaW1wbGVtZW50ZWQuIFJldHVybmVkIGJ5IHRoZSB0b29saW5nXG4gKiBhZnRlciBsb2FkaW5nIGEgc2NoZW1hdGljIGRlc2NyaXB0aW9uLlxuICovXG5leHBvcnQgdHlwZSBSdWxlRmFjdG9yeTxUIGV4dGVuZHMgb2JqZWN0PiA9IChvcHRpb25zOiBUKSA9PiBSdWxlO1xuXG5cbi8qKlxuICogQSBGaWxlT3BlcmF0b3IgYXBwbGllcyBjaGFuZ2VzIHN5bmNocm9ub3VzbHkgdG8gYSBGaWxlRW50cnkuIEFuIGFzeW5jIG9wZXJhdG9yIHJldHVybnNcbiAqIGFzeW5jaHJvbm91c2x5LiBXZSBzZXBhcmF0ZSB0aGVtIHNvIHRoYXQgdGhlIHR5cGUgc3lzdGVtIGNhbiBjYXRjaCBlYXJseSBlcnJvcnMuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbGVPcGVyYXRvciA9IChlbnRyeTogRmlsZUVudHJ5KSA9PiBGaWxlRW50cnkgfCBudWxsO1xuZXhwb3J0IHR5cGUgQXN5bmNGaWxlT3BlcmF0b3IgPSAodHJlZTogRmlsZUVudHJ5KSA9PiBPYnNlcnZhYmxlPEZpbGVFbnRyeSB8IG51bGw+O1xuXG5cbi8qKlxuICogQSBzb3VyY2UgaXMgYSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBhIFRyZWUgZnJvbSBhIHNwZWNpZmljIGNvbnRleHQuIEEgcnVsZSB0cmFuc2Zvcm1zIGEgdHJlZVxuICogaW50byBhbm90aGVyIHRyZWUgZnJvbSBhIHNwZWNpZmljIGNvbnRleHQuIEluIGJvdGggY2FzZXMsIGFuIE9ic2VydmFibGUgY2FuIGJlIHJldHVybmVkIGlmXG4gKiB0aGUgc291cmNlIG9yIHRoZSBydWxlIGFyZSBhc3luY2hyb25vdXMuIE9ubHkgdGhlIGxhc3QgVHJlZSBnZW5lcmF0ZWQgaW4gdGhlIG9ic2VydmFibGUgd2lsbFxuICogYmUgdXNlZCB0aG91Z2guXG4gKlxuICogV2Ugb2JmdXNjYXRlIHRoZSBjb250ZXh0IG9mIFNvdXJjZSBhbmQgUnVsZSBiZWNhdXNlIHRoZSBzY2hlbWF0aWMgaW1wbGVtZW50YXRpb24gc2hvdWxkIG5vdFxuICoga25vdyB3aGljaCB0eXBlcyBpcyB0aGUgc2NoZW1hdGljIG9yIGNvbGxlY3Rpb24gbWV0YWRhdGEsIGFzIHRoZXkgYXJlIGJvdGggdG9vbGluZyBzcGVjaWZpYy5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlID0gKGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IFRyZWUgfCBPYnNlcnZhYmxlPFRyZWU+O1xuZXhwb3J0IHR5cGUgUnVsZSA9ICh0cmVlOiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiBUcmVlIHwgT2JzZXJ2YWJsZTxUcmVlPjtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCB7VXJsfSBmcm9tICd1cmwnO1xuaW1wb3J0IHtGaWxlRW50cnksIE1lcmdlU3RyYXRlZ3ksIFRyZWV9IGZyb20gJy4uL3RyZWUvaW50ZXJmYWNlJztcblxuXG4vKipcbiAqIFRoZSBkZXNjcmlwdGlvbiAobWV0YWRhdGEpIG9mIGEgY29sbGVjdGlvbi4gVGhpcyB0eXBlIGNvbnRhaW5zIGV2ZXJ5IGluZm9ybWF0aW9uIHRoZSBlbmdpbmVcbiAqIG5lZWRzIHRvIHJ1bi4gVGhlIENvbGxlY3Rpb25NZXRhZGF0YVQgdHlwZSBwYXJhbWV0ZXIgY29udGFpbnMgYWRkaXRpb25hbCBtZXRhZGF0YSB0aGF0IHlvdVxuICogd2FudCB0byBzdG9yZSB3aGlsZSByZW1haW5pbmcgdHlwZS1zYWZlLlxuICovXG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVCBleHRlbmRzIG9iamVjdD4gPSBDb2xsZWN0aW9uTWV0YWRhdGFUICYge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFRoZSBkZXNjcmlwdGlvbiAobWV0YWRhdGEpIG9mIGEgc2NoZW1hdGljLiBUaGlzIHR5cGUgY29udGFpbnMgZXZlcnkgaW5mb3JtYXRpb24gdGhlIGVuZ2luZVxuICogbmVlZHMgdG8gcnVuLiBUaGUgU2NoZW1hdGljTWV0YWRhdGFUIGFuZCBDb2xsZWN0aW9uTWV0YWRhdGFUIHR5cGUgcGFyYW1ldGVycyBjb250YWluIGFkZGl0aW9uYWxcbiAqIG1ldGFkYXRhIHRoYXQgeW91IHdhbnQgdG8gc3RvcmUgd2hpbGUgcmVtYWluaW5nIHR5cGUtc2FmZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hdGljRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVCBleHRlbmRzIG9iamVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjaGVtYXRpY01ldGFkYXRhVCBleHRlbmRzIG9iamVjdD4gPSBTY2hlbWF0aWNNZXRhZGF0YVQgJiB7XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb246IENvbGxlY3Rpb25EZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUPjtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufTtcblxuXG4vKipcbiAqIFRoZSBIb3N0IGZvciB0aGUgRW5naW5lLiBTcGVjaWZpY2FsbHksIHRoZSBwaWVjZSBvZiB0aGUgdG9vbGluZyByZXNwb25zaWJsZSBmb3IgcmVzb2x2aW5nXG4gKiBjb2xsZWN0aW9ucyBhbmQgc2NoZW1hdGljcyBkZXNjcmlwdGlvbnMuIFRoZSBTY2hlbWF0aWNNZXRhZGF0YVQgYW5kIENvbGxlY3Rpb25NZXRhZGF0YVQgdHlwZVxuICogcGFyYW1ldGVycyBjb250YWluIGFkZGl0aW9uYWwgbWV0YWRhdGEgdGhhdCB5b3Ugd2FudCB0byBzdG9yZSB3aGlsZSByZW1haW5pbmcgdHlwZS1zYWZlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZ2luZUhvc3Q8Q29sbGVjdGlvbk1ldGFkYXRhVCBleHRlbmRzIG9iamVjdCwgU2NoZW1hdGljTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0PiB7XG4gIGNyZWF0ZUNvbGxlY3Rpb25EZXNjcmlwdGlvbihuYW1lOiBzdHJpbmcpOiBDb2xsZWN0aW9uRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVD4gfCBudWxsO1xuICBjcmVhdGVTY2hlbWF0aWNEZXNjcmlwdGlvbihcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25EZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUPik6XG4gICAgICAgIFNjaGVtYXRpY0Rlc2NyaXB0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD4gfCBudWxsO1xuICBnZXRTY2hlbWF0aWNSdWxlRmFjdG9yeTxPcHRpb25UIGV4dGVuZHMgb2JqZWN0PihcbiAgICAgIHNjaGVtYXRpYzogU2NoZW1hdGljRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPixcbiAgICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25EZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUPik6IFJ1bGVGYWN0b3J5PE9wdGlvblQ+O1xuICBjcmVhdGVTb3VyY2VGcm9tVXJsKHVybDogVXJsKTogU291cmNlIHwgbnVsbDtcbiAgdHJhbnNmb3JtT3B0aW9uczxPcHRpb25UIGV4dGVuZHMgb2JqZWN0LCBSZXN1bHRUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBzY2hlbWF0aWM6IFNjaGVtYXRpY0Rlc2NyaXB0aW9uPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD4sXG4gICAgb3B0aW9uczogT3B0aW9uVCxcbiAgKTogUmVzdWx0VDtcblxuXG4gIHJlYWRvbmx5IGRlZmF1bHRNZXJnZVN0cmF0ZWd5PzogTWVyZ2VTdHJhdGVneTtcbn1cblxuXG4vKipcbiAqIFRoZSByb290IEVuZ2luZSBmb3IgY3JlYXRpbmcgYW5kIHJ1bm5pbmcgc2NoZW1hdGljcyBhbmQgY29sbGVjdGlvbnMuIEV2ZXJ5dGhpbmcgcmVsYXRlZCB0b1xuICogYSBzY2hlbWF0aWMgZXhlY3V0aW9uIHN0YXJ0cyBmcm9tIHRoaXMgaW50ZXJmYWNlLlxuICpcbiAqIENvbGxlY3Rpb25NZXRhZGF0YVQgaXMsIGJ5IGRlZmF1bHQsIGEgZ2VuZXJpYyBDb2xsZWN0aW9uIG1ldGFkYXRhIHR5cGUuIFRoaXMgaXMgdXNlZCB0aHJvdWdob3V0XG4gKiB0aGUgZW5naW5lIHR5cGluZ3Mgc28gdGhhdCB5b3UgY2FuIHVzZSBhIHR5cGUgdGhhdCdzIG1lcmdlZCBpbnRvIGRlc2NyaXB0aW9ucywgd2hpbGUgYmVpbmdcbiAqIHR5cGUtc2FmZS5cbiAqXG4gKiBTY2hlbWF0aWNNZXRhZGF0YVQgaXMgYSB0eXBlIHRoYXQgY29udGFpbnMgYWRkaXRpb25hbCB0eXBpbmcgZm9yIHRoZSBTY2hlbWF0aWMgRGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5naW5lPENvbGxlY3Rpb25NZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3QsIFNjaGVtYXRpY01ldGFkYXRhVCBleHRlbmRzIG9iamVjdD4ge1xuICBjcmVhdGVDb2xsZWN0aW9uKG5hbWU6IHN0cmluZyk6IENvbGxlY3Rpb248Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbiAgY3JlYXRlU2NoZW1hdGljKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFULCBTY2hlbWF0aWNNZXRhZGF0YVQ+LFxuICApOiBTY2hlbWF0aWM8Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbiAgY3JlYXRlU291cmNlRnJvbVVybCh1cmw6IFVybCk6IFNvdXJjZTtcbiAgdHJhbnNmb3JtT3B0aW9uczxPcHRpb25UIGV4dGVuZHMgb2JqZWN0LCBSZXN1bHRUIGV4dGVuZHMgb2JqZWN0PihcbiAgICAgIHNjaGVtYXRpYzogU2NoZW1hdGljPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD4sXG4gICAgICBvcHRpb25zOiBPcHRpb25ULFxuICApOiBSZXN1bHRUO1xuXG4gIHJlYWRvbmx5IGRlZmF1bHRNZXJnZVN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5O1xufVxuXG5cbi8qKlxuICogQSBDb2xsZWN0aW9uIGFzIGNyZWF0ZWQgYnkgdGhlIEVuZ2luZS4gVGhpcyBzaG91bGQgYmUgdXNlZCBieSB0aGUgdG9vbCB0byBjcmVhdGUgc2NoZW1hdGljcyxcbiAqIG9yIGJ5IHJ1bGVzIHRvIGNyZWF0ZSBvdGhlciBzY2hlbWF0aWNzIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0LCBTY2hlbWF0aWNNZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IENvbGxlY3Rpb25EZXNjcmlwdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFUPjtcblxuICBjcmVhdGVTY2hlbWF0aWMobmFtZTogc3RyaW5nKTogU2NoZW1hdGljPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD47XG59XG5cblxuLyoqXG4gKiBBIFNjaGVtYXRpYyBhcyBjcmVhdGVkIGJ5IHRoZSBFbmdpbmUuIFRoaXMgc2hvdWxkIGJlIHVzZWQgYnkgdGhlIHRvb2wgdG8gZXhlY3V0ZSB0aGUgbWFpblxuICogc2NoZW1hdGljcywgb3IgYnkgcnVsZXMgdG8gZXhlY3V0ZSBvdGhlciBzY2hlbWF0aWNzIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hdGljPENvbGxlY3Rpb25NZXRhZGF0YVQgZXh0ZW5kcyBvYmplY3QsIFNjaGVtYXRpY01ldGFkYXRhVCBleHRlbmRzIG9iamVjdD4ge1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogU2NoZW1hdGljRGVzY3JpcHRpb248Q29sbGVjdGlvbk1ldGFkYXRhVCwgU2NoZW1hdGljTWV0YWRhdGFUPjtcbiAgcmVhZG9ubHkgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxDb2xsZWN0aW9uTWV0YWRhdGFULCBTY2hlbWF0aWNNZXRhZGF0YVQ+O1xuXG4gIGNhbGw8VD4ob3B0aW9uczogVCwgaG9zdDogT2JzZXJ2YWJsZTxUcmVlPik6IE9ic2VydmFibGU8VHJlZT47XG59XG5cblxuLyoqXG4gKiBBIFNjaGVtYXRpY0NvbnRleHQuIENvbnRhaW5zIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgU2NoZW1hdGljcyB0byBleGVjdXRlIHNvbWUgcnVsZXMsIGZvclxuICogZXhhbXBsZSB3aGVuIHVzaW5nIGFub3RoZXIgc2NoZW1hdGljcywgYXMgd2UgbmVlZCB0aGUgZW5naW5lIGFuZCBjb2xsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkU2NoZW1hdGljQ29udGV4dDxDb2xsZWN0aW9uTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NoZW1hdGljTWV0YWRhdGFUIGV4dGVuZHMgb2JqZWN0PiB7XG4gIHJlYWRvbmx5IGVuZ2luZTogRW5naW5lPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD47XG4gIHJlYWRvbmx5IHNjaGVtYXRpYzogU2NoZW1hdGljPENvbGxlY3Rpb25NZXRhZGF0YVQsIFNjaGVtYXRpY01ldGFkYXRhVD47XG4gIHJlYWRvbmx5IHN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5O1xufVxuXG5cbi8qKlxuICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBTY2hlbWF0aWNzIGltcGxlbWVudGF0aW9ucyBpbiBvcmRlciB0byBhdm9pZCBuZWVkaW5nIHRvIGhhdmUgdHlwaW5nIGZyb21cbiAqIHRoZSB0b29saW5nLiBTY2hlbWF0aWNzIGFyZSBub3Qgc3BlY2lmaWMgdG8gYSB0b29sLlxuICovXG5leHBvcnQgdHlwZSBTY2hlbWF0aWNDb250ZXh0ID0gVHlwZWRTY2hlbWF0aWNDb250ZXh0PHt9LCB7fT47XG5cblxuLyoqXG4gKiBBIHJ1bGUgZmFjdG9yeSwgd2hpY2ggaXMgbm9ybWFsbHkgdGhlIHdheSBzY2hlbWF0aWNzIGFyZSBpbXBsZW1lbnRlZC4gUmV0dXJuZWQgYnkgdGhlIHRvb2xpbmdcbiAqIGFmdGVyIGxvYWRpbmcgYSBzY2hlbWF0aWMgZGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFJ1bGVGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3Q+ID0gKG9wdGlvbnM6IFQpID0+IFJ1bGU7XG5cblxuLyoqXG4gKiBBIEZpbGVPcGVyYXRvciBhcHBsaWVzIGNoYW5nZXMgc3luY2hyb25vdXNseSB0byBhIEZpbGVFbnRyeS4gQW4gYXN5bmMgb3BlcmF0b3IgcmV0dXJuc1xuICogYXN5bmNocm9ub3VzbHkuIFdlIHNlcGFyYXRlIHRoZW0gc28gdGhhdCB0aGUgdHlwZSBzeXN0ZW0gY2FuIGNhdGNoIGVhcmx5IGVycm9ycy5cbiAqL1xuZXhwb3J0IHR5cGUgRmlsZU9wZXJhdG9yID0gKGVudHJ5OiBGaWxlRW50cnkpID0+IEZpbGVFbnRyeSB8IG51bGw7XG5leHBvcnQgdHlwZSBBc3luY0ZpbGVPcGVyYXRvciA9ICh0cmVlOiBGaWxlRW50cnkpID0+IE9ic2VydmFibGU8RmlsZUVudHJ5IHwgbnVsbD47XG5cblxuLyoqXG4gKiBBIHNvdXJjZSBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIGEgVHJlZSBmcm9tIGEgc3BlY2lmaWMgY29udGV4dC4gQSBydWxlIHRyYW5zZm9ybXMgYSB0cmVlXG4gKiBpbnRvIGFub3RoZXIgdHJlZSBmcm9tIGEgc3BlY2lmaWMgY29udGV4dC4gSW4gYm90aCBjYXNlcywgYW4gT2JzZXJ2YWJsZSBjYW4gYmUgcmV0dXJuZWQgaWZcbiAqIHRoZSBzb3VyY2Ugb3IgdGhlIHJ1bGUgYXJlIGFzeW5jaHJvbm91cy4gT25seSB0aGUgbGFzdCBUcmVlIGdlbmVyYXRlZCBpbiB0aGUgb2JzZXJ2YWJsZSB3aWxsXG4gKiBiZSB1c2VkIHRob3VnaC5cbiAqXG4gKiBXZSBvYmZ1c2NhdGUgdGhlIGNvbnRleHQgb2YgU291cmNlIGFuZCBSdWxlIGJlY2F1c2UgdGhlIHNjaGVtYXRpYyBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbm90XG4gKiBrbm93IHdoaWNoIHR5cGVzIGlzIHRoZSBzY2hlbWF0aWMgb3IgY29sbGVjdGlvbiBtZXRhZGF0YSwgYXMgdGhleSBhcmUgYm90aCB0b29saW5nIHNwZWNpZmljLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2UgPSAoY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4gVHJlZSB8IE9ic2VydmFibGU8VHJlZT47XG5leHBvcnQgdHlwZSBSdWxlID0gKHRyZWU6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IFRyZWUgfCBPYnNlcnZhYmxlPFRyZWU+O1xuIl19

@@ -8,8 +8,8 @@ /**

*/
import { Collection, Engine, RuleFactory, Schematic, SchematicDescription } from './interface';
import { Tree } from '../tree/interface';
import { BaseException } from '../exception/exception';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/concatMap';
import { BaseException } from '../exception/exception';
import { Tree } from '../tree/interface';
import { Collection, Engine, RuleFactory, Schematic, SchematicDescription } from './interface';
export declare class InvalidSchematicsNameException extends BaseException {

@@ -16,0 +16,0 @@ constructor(name: string);

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const exception_1 = require("../exception/exception");
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const Observable_1 = require("rxjs/Observable");
require("rxjs/add/observable/of");
require("rxjs/add/operator/concatMap");
const exception_1 = require("../exception/exception");
class InvalidSchematicsNameException extends exception_1.BaseException {

@@ -14,3 +21,4 @@ constructor(name) {

class SchematicImpl {
constructor(_description, _factory, _collection, _engine) {
constructor(_description, _factory, // tslint:disable-line:no-any
_collection, _engine) {
this._description = _description;

@@ -27,6 +35,6 @@ this._factory = _factory;

call(options, host) {
let context = {
const context = {
engine: this._engine,
schematic: this,
strategy: this._engine.defaultMergeStrategy
strategy: this._engine.defaultMergeStrategy,
};

@@ -46,2 +54,2 @@ const transformedOptions = this._engine.transformOptions(this, options);

exports.SchematicImpl = SchematicImpl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9zY2hlbWF0aWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsc0RBQXFEO0FBRXJELGdEQUEyQztBQUMzQyxrQ0FBZ0M7QUFDaEMsdUNBQXFDO0FBR3JDLG9DQUE0QyxTQUFRLHlCQUFhO0lBQy9ELFlBQVksSUFBWTtRQUN0QixLQUFLLENBQUMsaUNBQWlDLElBQUksSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBSkQsd0VBSUM7QUFHRDtJQUdFLFlBQW9CLFlBQTJELEVBQzNELFFBQTBCLEVBQzFCLFdBQWdELEVBQ2hELE9BQXdDO1FBSHhDLGlCQUFZLEdBQVosWUFBWSxDQUErQztRQUMzRCxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBcUM7UUFDaEQsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDMUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNLElBQUksOEJBQThCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksVUFBVSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUU3QyxJQUFJLENBQXlCLE9BQWdCLEVBQUUsSUFBc0I7UUFDbkUsSUFBSSxPQUFPLEdBQW1EO1lBQzVELE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQjtTQUM1QyxDQUFDO1FBQ0YsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4RSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEUsRUFBRSxDQUFDLENBQUMsTUFBTSxZQUFZLHVCQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixNQUFNLENBQUMsdUJBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBaENELHNDQWdDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7XG4gIENvbGxlY3Rpb24sXG4gIEVuZ2luZSxcbiAgUnVsZUZhY3RvcnksXG4gIFNjaGVtYXRpYyxcbiAgU2NoZW1hdGljRGVzY3JpcHRpb24sXG4gIFR5cGVkU2NoZW1hdGljQ29udGV4dFxufSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQge1RyZWV9IGZyb20gJy4uL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL2NvbmNhdE1hcCc7XG5cblxuZXhwb3J0IGNsYXNzIEludmFsaWRTY2hlbWF0aWNzTmFtZUV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgU2NoZW1hdGljcyBoYXMgaW52YWxpZCBuYW1lOiBcIiR7bmFtZX1cIi5gKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBTY2hlbWF0aWNJbXBsPENvbGxlY3Rpb25UIGV4dGVuZHMgb2JqZWN0LCBTY2hlbWF0aWNUIGV4dGVuZHMgb2JqZWN0PlxuICAgIGltcGxlbWVudHMgU2NoZW1hdGljPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPiB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGVzY3JpcHRpb246IFNjaGVtYXRpY0Rlc2NyaXB0aW9uPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZmFjdG9yeTogUnVsZUZhY3Rvcnk8YW55PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY29sbGVjdGlvbjogQ29sbGVjdGlvbjxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX2VuZ2luZTogRW5naW5lPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPikge1xuICAgIGlmICghX2Rlc2NyaXB0aW9uLm5hbWUubWF0Y2goL15bLV8uYS16QS1aMC05XSskLykpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkU2NoZW1hdGljc05hbWVFeGNlcHRpb24oX2Rlc2NyaXB0aW9uLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpIHsgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uOyB9XG4gIGdldCBjb2xsZWN0aW9uKCkgeyByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjsgfVxuXG4gIGNhbGw8T3B0aW9uVCBleHRlbmRzIG9iamVjdD4ob3B0aW9uczogT3B0aW9uVCwgaG9zdDogT2JzZXJ2YWJsZTxUcmVlPik6IE9ic2VydmFibGU8VHJlZT4ge1xuICAgIGxldCBjb250ZXh0OiBUeXBlZFNjaGVtYXRpY0NvbnRleHQ8Q29sbGVjdGlvblQsIFNjaGVtYXRpY1Q+ID0ge1xuICAgICAgZW5naW5lOiB0aGlzLl9lbmdpbmUsXG4gICAgICBzY2hlbWF0aWM6IHRoaXMsXG4gICAgICBzdHJhdGVneTogdGhpcy5fZW5naW5lLmRlZmF1bHRNZXJnZVN0cmF0ZWd5XG4gICAgfTtcbiAgICBjb25zdCB0cmFuc2Zvcm1lZE9wdGlvbnMgPSB0aGlzLl9lbmdpbmUudHJhbnNmb3JtT3B0aW9ucyh0aGlzLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBob3N0LmNvbmNhdE1hcCh0cmVlID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZhY3RvcnkodHJhbnNmb3JtZWRPcHRpb25zKSh0cmVlLCBjb250ZXh0KTtcbiAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZihyZXN1bHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9zY2hlbWF0aWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxnREFBMkM7QUFDM0Msa0NBQWdDO0FBQ2hDLHVDQUFxQztBQUNyQyxzREFBcUQ7QUFZckQsb0NBQTRDLFNBQVEseUJBQWE7SUFDL0QsWUFBWSxJQUFZO1FBQ3RCLEtBQUssQ0FBQyxpQ0FBaUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFKRCx3RUFJQztBQUdEO0lBR0UsWUFBb0IsWUFBMkQsRUFDM0QsUUFBMEIsRUFBRyw2QkFBNkI7UUFDMUQsV0FBZ0QsRUFDaEQsT0FBd0M7UUFIeEMsaUJBQVksR0FBWixZQUFZLENBQStDO1FBQzNELGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFxQztRQUNoRCxZQUFPLEdBQVAsT0FBTyxDQUFpQztRQUMxRCxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sSUFBSSw4QkFBOEIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFdBQVcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxVQUFVLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBRTdDLElBQUksQ0FBeUIsT0FBZ0IsRUFBRSxJQUFzQjtRQUNuRSxNQUFNLE9BQU8sR0FBbUQ7WUFDOUQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CO1NBQzVDLENBQUM7UUFDRixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNoRSxFQUFFLENBQUMsQ0FBQyxNQUFNLFlBQVksdUJBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDaEIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoQ0Qsc0NBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvY29uY2F0TWFwJztcbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge1RyZWV9IGZyb20gJy4uL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIENvbGxlY3Rpb24sXG4gIEVuZ2luZSxcbiAgUnVsZUZhY3RvcnksXG4gIFNjaGVtYXRpYyxcbiAgU2NoZW1hdGljRGVzY3JpcHRpb24sXG4gIFR5cGVkU2NoZW1hdGljQ29udGV4dCxcbn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkU2NoZW1hdGljc05hbWVFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFNjaGVtYXRpY3MgaGFzIGludmFsaWQgbmFtZTogXCIke25hbWV9XCIuYCk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgU2NoZW1hdGljSW1wbDxDb2xsZWN0aW9uVCBleHRlbmRzIG9iamVjdCwgU2NoZW1hdGljVCBleHRlbmRzIG9iamVjdD5cbiAgICBpbXBsZW1lbnRzIFNjaGVtYXRpYzxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4ge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rlc2NyaXB0aW9uOiBTY2hlbWF0aWNEZXNjcmlwdGlvbjxDb2xsZWN0aW9uVCwgU2NoZW1hdGljVD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX2ZhY3Rvcnk6IFJ1bGVGYWN0b3J5PGFueT4sICAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWFueVxuICAgICAgICAgICAgICBwcml2YXRlIF9jb2xsZWN0aW9uOiBDb2xsZWN0aW9uPENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZW5naW5lOiBFbmdpbmU8Q29sbGVjdGlvblQsIFNjaGVtYXRpY1Q+KSB7XG4gICAgaWYgKCFfZGVzY3JpcHRpb24ubmFtZS5tYXRjaCgvXlstXy5hLXpBLVowLTldKyQvKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRTY2hlbWF0aWNzTmFtZUV4Y2VwdGlvbihfZGVzY3JpcHRpb24ubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247IH1cbiAgZ2V0IGNvbGxlY3Rpb24oKSB7IHJldHVybiB0aGlzLl9jb2xsZWN0aW9uOyB9XG5cbiAgY2FsbDxPcHRpb25UIGV4dGVuZHMgb2JqZWN0PihvcHRpb25zOiBPcHRpb25ULCBob3N0OiBPYnNlcnZhYmxlPFRyZWU+KTogT2JzZXJ2YWJsZTxUcmVlPiB7XG4gICAgY29uc3QgY29udGV4dDogVHlwZWRTY2hlbWF0aWNDb250ZXh0PENvbGxlY3Rpb25ULCBTY2hlbWF0aWNUPiA9IHtcbiAgICAgIGVuZ2luZTogdGhpcy5fZW5naW5lLFxuICAgICAgc2NoZW1hdGljOiB0aGlzLFxuICAgICAgc3RyYXRlZ3k6IHRoaXMuX2VuZ2luZS5kZWZhdWx0TWVyZ2VTdHJhdGVneSxcbiAgICB9O1xuICAgIGNvbnN0IHRyYW5zZm9ybWVkT3B0aW9ucyA9IHRoaXMuX2VuZ2luZS50cmFuc2Zvcm1PcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGhvc3QuY29uY2F0TWFwKHRyZWUgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmFjdG9yeSh0cmFuc2Zvcm1lZE9wdGlvbnMpKHRyZWUsIGNvbnRleHQpO1xuICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKHJlc3VsdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==

@@ -44,4 +44,4 @@ "use strict";

},
optimize(tree) { return static_1.optimize(tree); }
optimize(tree) { return static_1.optimize(tree); },
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxnREFBOEQ7QUFFOUQsMENBQXdFO0FBR3hFLG1EQUFzRDtBQUE3QyxvQ0FBQSxhQUFhLENBQUE7QUFFdEIsbUNBQThCO0FBQzlCLHlDQUFvQztBQUNwQyxxQ0FBZ0M7QUFFaEMsc0NBQWlDO0FBQ2pDLGtDQUE2QjtBQUM3QixrQ0FBNkI7QUFDN0Isb0NBQStCO0FBQy9CLHVDQUFrQztBQUNsQyxzQ0FBaUM7QUFDakMsaUNBQTRCO0FBQzVCLGtDQUE2QjtBQUM3Qix1Q0FBa0M7QUFDbEMsd0NBQW1DO0FBRW5DLHdDQUFtQztBQUNuQyxtQ0FBOEI7QUFDOUIsZ0RBQWlEO0FBQXpDLHNDQUFBLGNBQWMsQ0FBQTtBQUN0QixvQ0FBK0I7QUFZbEIsUUFBQSxJQUFJLEdBQW9CO0lBQ25DLEtBQUssS0FBSyxNQUFNLENBQUMsY0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxJQUFtQixJQUFJLE1BQU0sQ0FBQyxlQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELEtBQUssQ0FBQyxJQUFtQixFQUNuQixLQUFvQixFQUNwQixXQUEwQix5QkFBYSxDQUFDLE9BQU87UUFDbkQsTUFBTSxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBbUIsRUFBRSxTQUFpQztRQUM5RCxNQUFNLENBQUMsa0JBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFtQixJQUFJLE1BQU0sQ0FBQyxpQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtGaWxlUHJlZGljYXRlLCBNZXJnZVN0cmF0ZWd5fSBmcm9tICcuL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7VHJlZSBhcyBUcmVlSW50ZXJmYWNlfSBmcm9tICcuL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7YnJhbmNoLCBlbXB0eSwgbWVyZ2UsIG9wdGltaXplLCBwYXJ0aXRpb259IGZyb20gJy4vdHJlZS9zdGF0aWMnO1xuXG5cbmV4cG9ydCB7IEJhc2VFeGNlcHRpb24gfSBmcm9tICcuL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL3RyZWUvYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZW5naW5lL2NvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUvZW5naW5lJztcbmV4cG9ydCAqIGZyb20gJy4vZW5naW5lL2ludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUvaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVsZXMvYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzL21vdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy9yYW5kb20nO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy9zY2hlbWF0aWMnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy90ZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzL3VybCc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUvZW1wdHknO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlL2ZpbGVzeXN0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlL21lbW9yeS1ob3N0JztcbmV4cG9ydCB7VXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4vdHJlZS9pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUvc2NoZW1hdGljJztcbmV4cG9ydCAqIGZyb20gJy4vc2luay9kcnlydW4nO1xuZXhwb3J0IHtGaWxlU3lzdGVtU2lua30gZnJvbSAnLi9zaW5rL2ZpbGVzeXN0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXR5L3BhdGgnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUNvbnN0cnVjdG9yIHtcbiAgZW1wdHkoKTogVHJlZUludGVyZmFjZTtcbiAgYnJhbmNoKHRyZWU6IFRyZWVJbnRlcmZhY2UpOiBUcmVlSW50ZXJmYWNlO1xuICBtZXJnZSh0cmVlOiBUcmVlSW50ZXJmYWNlLCBvdGhlcjogVHJlZUludGVyZmFjZSwgc3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5KTogVHJlZUludGVyZmFjZTtcbiAgcGFydGl0aW9uKHRyZWU6IFRyZWVJbnRlcmZhY2UsIHByZWRpY2F0ZTogRmlsZVByZWRpY2F0ZTxib29sZWFuPik6IFtUcmVlSW50ZXJmYWNlLCBUcmVlSW50ZXJmYWNlXTtcbiAgb3B0aW1pemUodHJlZTogVHJlZUludGVyZmFjZSk6IFRyZWVJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCB0eXBlIFRyZWUgPSBUcmVlSW50ZXJmYWNlO1xuZXhwb3J0IGNvbnN0IFRyZWU6IFRyZWVDb25zdHJ1Y3RvciA9IHtcbiAgZW1wdHkoKSB7IHJldHVybiBlbXB0eSgpOyB9LFxuICBicmFuY2godHJlZTogVHJlZUludGVyZmFjZSkgeyByZXR1cm4gYnJhbmNoKHRyZWUpOyB9LFxuICBtZXJnZSh0cmVlOiBUcmVlSW50ZXJmYWNlLFxuICAgICAgICBvdGhlcjogVHJlZUludGVyZmFjZSxcbiAgICAgICAgc3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHtcbiAgICByZXR1cm4gbWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTtcbiAgfSxcbiAgcGFydGl0aW9uKHRyZWU6IFRyZWVJbnRlcmZhY2UsIHByZWRpY2F0ZTogRmlsZVByZWRpY2F0ZTxib29sZWFuPikge1xuICAgIHJldHVybiBwYXJ0aXRpb24odHJlZSwgcHJlZGljYXRlKTtcbiAgfSxcbiAgb3B0aW1pemUodHJlZTogVHJlZUludGVyZmFjZSkgeyByZXR1cm4gb3B0aW1pemUodHJlZSk7IH1cbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxnREFBOEQ7QUFFOUQsMENBQXdFO0FBR3hFLG1EQUFzRDtBQUE3QyxvQ0FBQSxhQUFhLENBQUE7QUFFdEIsbUNBQThCO0FBQzlCLHlDQUFvQztBQUNwQyxxQ0FBZ0M7QUFFaEMsc0NBQWlDO0FBQ2pDLGtDQUE2QjtBQUM3QixrQ0FBNkI7QUFDN0Isb0NBQStCO0FBQy9CLHVDQUFrQztBQUNsQyxzQ0FBaUM7QUFDakMsaUNBQTRCO0FBQzVCLGtDQUE2QjtBQUM3Qix1Q0FBa0M7QUFDbEMsd0NBQW1DO0FBRW5DLHdDQUFtQztBQUNuQyxtQ0FBOEI7QUFDOUIsZ0RBQWlEO0FBQXpDLHNDQUFBLGNBQWMsQ0FBQTtBQUN0QixvQ0FBK0I7QUFZbEIsUUFBQSxJQUFJLEdBQW9CO0lBQ25DLEtBQUssS0FBSyxNQUFNLENBQUMsY0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxJQUFtQixJQUFJLE1BQU0sQ0FBQyxlQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELEtBQUssQ0FBQyxJQUFtQixFQUNuQixLQUFvQixFQUNwQixXQUEwQix5QkFBYSxDQUFDLE9BQU87UUFDbkQsTUFBTSxDQUFDLGNBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBbUIsRUFBRSxTQUFpQztRQUM5RCxNQUFNLENBQUMsa0JBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFtQixJQUFJLE1BQU0sQ0FBQyxpQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtGaWxlUHJlZGljYXRlLCBNZXJnZVN0cmF0ZWd5fSBmcm9tICcuL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7VHJlZSBhcyBUcmVlSW50ZXJmYWNlfSBmcm9tICcuL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7YnJhbmNoLCBlbXB0eSwgbWVyZ2UsIG9wdGltaXplLCBwYXJ0aXRpb259IGZyb20gJy4vdHJlZS9zdGF0aWMnO1xuXG5cbmV4cG9ydCB7IEJhc2VFeGNlcHRpb24gfSBmcm9tICcuL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL3RyZWUvYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZW5naW5lL2NvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUvZW5naW5lJztcbmV4cG9ydCAqIGZyb20gJy4vZW5naW5lL2ludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUvaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVsZXMvYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzL21vdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy9yYW5kb20nO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy9zY2hlbWF0aWMnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy90ZW1wbGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzL3VybCc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUvZW1wdHknO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlL2ZpbGVzeXN0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlL21lbW9yeS1ob3N0JztcbmV4cG9ydCB7VXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4vdHJlZS9pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUvc2NoZW1hdGljJztcbmV4cG9ydCAqIGZyb20gJy4vc2luay9kcnlydW4nO1xuZXhwb3J0IHtGaWxlU3lzdGVtU2lua30gZnJvbSAnLi9zaW5rL2ZpbGVzeXN0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXR5L3BhdGgnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUNvbnN0cnVjdG9yIHtcbiAgZW1wdHkoKTogVHJlZUludGVyZmFjZTtcbiAgYnJhbmNoKHRyZWU6IFRyZWVJbnRlcmZhY2UpOiBUcmVlSW50ZXJmYWNlO1xuICBtZXJnZSh0cmVlOiBUcmVlSW50ZXJmYWNlLCBvdGhlcjogVHJlZUludGVyZmFjZSwgc3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5KTogVHJlZUludGVyZmFjZTtcbiAgcGFydGl0aW9uKHRyZWU6IFRyZWVJbnRlcmZhY2UsIHByZWRpY2F0ZTogRmlsZVByZWRpY2F0ZTxib29sZWFuPik6IFtUcmVlSW50ZXJmYWNlLCBUcmVlSW50ZXJmYWNlXTtcbiAgb3B0aW1pemUodHJlZTogVHJlZUludGVyZmFjZSk6IFRyZWVJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCB0eXBlIFRyZWUgPSBUcmVlSW50ZXJmYWNlO1xuZXhwb3J0IGNvbnN0IFRyZWU6IFRyZWVDb25zdHJ1Y3RvciA9IHtcbiAgZW1wdHkoKSB7IHJldHVybiBlbXB0eSgpOyB9LFxuICBicmFuY2godHJlZTogVHJlZUludGVyZmFjZSkgeyByZXR1cm4gYnJhbmNoKHRyZWUpOyB9LFxuICBtZXJnZSh0cmVlOiBUcmVlSW50ZXJmYWNlLFxuICAgICAgICBvdGhlcjogVHJlZUludGVyZmFjZSxcbiAgICAgICAgc3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHtcbiAgICByZXR1cm4gbWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTtcbiAgfSxcbiAgcGFydGl0aW9uKHRyZWU6IFRyZWVJbnRlcmZhY2UsIHByZWRpY2F0ZTogRmlsZVByZWRpY2F0ZTxib29sZWFuPikge1xuICAgIHJldHVybiBwYXJ0aXRpb24odHJlZSwgcHJlZGljYXRlKTtcbiAgfSxcbiAgb3B0aW1pemUodHJlZTogVHJlZUludGVyZmFjZSkgeyByZXR1cm4gb3B0aW1pemUodHJlZSk7IH0sXG59O1xuIl19

@@ -1,7 +0,6 @@

import { MergeStrategy, FilePredicate } from '../tree/interface';
import { FileOperator, Rule, Source } from '../engine/interface';
import { Tree } from '../tree/interface';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import { FileOperator, Rule, Source } from '../engine/interface';
import { FilePredicate, MergeStrategy, Tree } from '../tree/interface';
/**

@@ -8,0 +7,0 @@ * A Source that returns an tree as its single value.

@@ -10,7 +10,2 @@ "use strict";

*/
const call_1 = require("./call");
const interface_1 = require("../tree/interface");
const virtual_1 = require("../tree/virtual");
const filtered_1 = require("../tree/filtered");
const static_1 = require("../tree/static");
const Observable_1 = require("rxjs/Observable");

@@ -20,2 +15,7 @@ require("rxjs/add/observable/of");

require("rxjs/add/operator/mergeMap");
const filtered_1 = require("../tree/filtered");
const interface_1 = require("../tree/interface");
const static_1 = require("../tree/static");
const virtual_1 = require("../tree/virtual");
const call_1 = require("./call");
/**

@@ -122,2 +122,2 @@ * A Source that returns an tree as its single value.

exports.forEach = forEach;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsaUNBQTRDO0FBQzVDLGlEQUEwRTtBQUUxRSw2Q0FBNEM7QUFDNUMsK0NBQThDO0FBRTlDLDJDQUFrRjtBQUVsRixnREFBMkM7QUFDM0Msa0NBQWdDO0FBQ2hDLGlDQUErQjtBQUMvQixzQ0FBb0M7QUFHcEM7O0dBRUc7QUFDSCxnQkFBdUIsSUFBVTtJQUMvQixNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUZELHdCQUVDO0FBR0Q7O0dBRUc7QUFDSDtJQUNFLE1BQU0sQ0FBQyxNQUFNLGNBQVcsRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFGRCxzQkFFQztBQUdEOztHQUVHO0FBQ0gsZUFBc0IsS0FBYTtJQUNqQyxNQUFNLENBQUMsQ0FBQyxJQUFVLEVBQUUsT0FBeUI7UUFDM0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQVU7WUFDcEQsTUFBTSxDQUFDLGVBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsRUFBRSx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFORCxzQkFNQztBQUdEOztHQUVHO0FBQ0gsZUFBc0IsTUFBYyxFQUFFLEtBQWE7SUFDakQsTUFBTSxDQUFDLENBQUMsT0FBeUI7UUFDL0IsTUFBTSxDQUFDLGVBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsaUJBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUs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LENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBeEJELDBCQXdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Y2FsbFJ1bGUsIGNhbGxTb3VyY2V9IGZyb20gJy4vY2FsbCc7XG5pbXBvcnQge01lcmdlU3RyYXRlZ3ksIEZpbGVQcmVkaWNhdGUsIEZpbGVFbnRyeX0gZnJvbSAnLi4vdHJlZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHtGaWxlT3BlcmF0b3IsIFJ1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFNvdXJjZX0gZnJvbSAnLi4vZW5naW5lL2ludGVyZmFjZSc7XG5pbXBvcnQge1ZpcnR1YWxUcmVlfSBmcm9tICcuLi90cmVlL3ZpcnR1YWwnO1xuaW1wb3J0IHtGaWx0ZXJlZFRyZWV9IGZyb20gJy4uL3RyZWUvZmlsdGVyZWQnO1xuaW1wb3J0IHtUcmVlfSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5pbXBvcnQge2JyYW5jaCwgZW1wdHkgYXMgc3RhdGljRW1wdHksIG1lcmdlIGFzIHN0YXRpY01lcmdlfSBmcm9tICcuLi90cmVlL3N0YXRpYyc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL21hcCc7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL21lcmdlTWFwJztcblxuXG4vKipcbiAqIEEgU291cmNlIHRoYXQgcmV0dXJucyBhbiB0cmVlIGFzIGl0cyBzaW5nbGUgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2UodHJlZTogVHJlZSk6IFNvdXJjZSB7XG4gIHJldHVybiAoKSA9PiB0cmVlO1xufVxuXG5cbi8qKlxuICogQSBzb3VyY2UgdGhhdCByZXR1cm5zIGFuIGVtcHR5IHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eSgpOiBTb3VyY2Uge1xuICByZXR1cm4gKCkgPT4gc3RhdGljRW1wdHkoKTtcbn1cblxuXG4vKipcbiAqIENoYWluIG11bHRpcGxlIHJ1bGVzIGludG8gYSBzaW5nbGUgcnVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluKHJ1bGVzOiBSdWxlW10pOiBSdWxlIHtcbiAgcmV0dXJuICh0cmVlOiBUcmVlLCBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiB7XG4gICAgcmV0dXJuIHJ1bGVzLnJlZHVjZSgoYWNjOiBPYnNlcnZhYmxlPFRyZWU+LCBjdXJyOiBSdWxlKSA9PiB7XG4gICAgICByZXR1cm4gY2FsbFJ1bGUoY3VyciwgYWNjLCBjb250ZXh0KTtcbiAgICB9LCBPYnNlcnZhYmxlLm9mKHRyZWUpKTtcbiAgfTtcbn1cblxuXG4vKipcbiAqIEFwcGx5IG11bHRpcGxlIHJ1bGVzIHRvIGEgc291cmNlLCBhbmQgcmV0dXJucyB0aGUgc291cmNlIHRyYW5zZm9ybWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHkoc291cmNlOiBTb3VyY2UsIHJ1bGVzOiBSdWxlW10pOiBTb3VyY2Uge1xuICByZXR1cm4gKGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICByZXR1cm4gY2FsbFJ1bGUoY2hhaW4ocnVsZXMpLCBjYWxsU291cmNlKHNvdXJjZSwgY29udGV4dCksIGNvbnRleHQpO1xuICB9O1xufVxuXG5cbi8qKlxuICogTWVyZ2UgYW4gaW5wdXQgdHJlZSB3aXRoIHRoZSBzb3VyY2UgcGFzc2VkIGluLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoKHNvdXJjZTogU291cmNlLCBzdHJhdGVneTogTWVyZ2VTdHJhdGVneSA9IE1lcmdlU3RyYXRlZ3kuRGVmYXVsdCk6IFJ1bGUge1xuICByZXR1cm4gKHRyZWU6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBjYWxsU291cmNlKHNvdXJjZSwgY29udGV4dCk7XG4gICAgcmV0dXJuIHJlc3VsdC5tYXAob3RoZXIgPT4gVmlydHVhbFRyZWUubWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5IHx8IGNvbnRleHQuc3RyYXRlZ3kpKTtcbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gbm9vcCgpOiBSdWxlIHtcbiAgcmV0dXJuICh0cmVlOiBUcmVlLCBfY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4gdHJlZTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKHByZWRpY2F0ZTogRmlsZVByZWRpY2F0ZTxib29sZWFuPik6IFJ1bGUge1xuICByZXR1cm4gKHRyZWU6IFRyZWUpID0+IG5ldyBGaWx0ZXJlZFRyZWUodHJlZSwgcHJlZGljYXRlKTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYXNTb3VyY2UocnVsZTogUnVsZSk6IFNvdXJjZSB7XG4gIHJldHVybiBhcHBseShlbXB0eSgpLCBbcnVsZV0pO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBicmFuY2hBbmRNZXJnZShydWxlOiBSdWxlKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSwgY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IGJyYW5jaGVkVHJlZSA9IGJyYW5jaCh0cmVlKTtcbiAgICByZXR1cm4gY2FsbFJ1bGUocnVsZSwgT2JzZXJ2YWJsZS5vZihicmFuY2hlZFRyZWUpLCBjb250ZXh0KVxuICAgICAgLm1hcCh0ID0+IHN0YXRpY01lcmdlKHRyZWUsIHQpKTtcbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gd2hlbihwcmVkaWNhdGU6IEZpbGVQcmVkaWNhdGU8Ym9vbGVhbj4sIG9wZXJhdG9yOiBGaWxlT3BlcmF0b3IpOiBGaWxlT3BlcmF0b3Ige1xuICByZXR1cm4gKGVudHJ5OiBGaWxlRW50cnkpID0+IHtcbiAgICBpZiAocHJlZGljYXRlKGVudHJ5LnBhdGgsIGVudHJ5KSkge1xuICAgICAgcmV0dXJuIG9wZXJhdG9yKGVudHJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChvcGVyYXRvcjogRmlsZU9wZXJhdG9yKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSkgPT4ge1xuICAgIHRyZWUuZmlsZXMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5ID0gdHJlZS5nZXQocGF0aCk7XG4gICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld0VudHJ5ID0gb3BlcmF0b3IoZW50cnkpO1xuICAgICAgaWYgKG5ld0VudHJ5ID09PSBlbnRyeSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAobmV3RW50cnkgPT09IG51bGwpIHtcbiAgICAgICAgdHJlZS5kZWxldGUocGF0aCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdFbnRyeS5wYXRoICE9IHBhdGgpIHtcbiAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgbmV3RW50cnkucGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAoIW5ld0VudHJ5LmNvbnRlbnQuZXF1YWxzKGVudHJ5LmNvbnRlbnQpKSB7XG4gICAgICAgIHRyZWUub3ZlcndyaXRlKG5ld0VudHJ5LnBhdGgsIG5ld0VudHJ5LmNvbnRlbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0cmVlO1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsZ0RBQTJDO0FBQzNDLGtDQUFnQztBQUNoQyxpQ0FBK0I7QUFDL0Isc0NBQW9DO0FBRXBDLCtDQUE4QztBQUM5QyxpREFBZ0Y7QUFDaEYsMkNBQWtGO0FBQ2xGLDZDQUE0QztBQUM1QyxpQ0FBNEM7QUFHNUM7O0dBRUc7QUFDSCxnQkFBdUIsSUFBVTtJQUMvQixNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUZELHdCQUVDO0FBR0Q7O0dBRUc7QUFDSDtJQUNFLE1BQU0sQ0FBQyxNQUFNLGNBQVcsRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFGRCxzQkFFQztBQUdEOztHQUVHO0FBQ0gsZUFBc0IsS0FBYTtJQUNqQyxNQUFNLENBQUMsQ0FBQyxJQUFVLEVBQUUsT0FBeUI7UUFDM0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFxQixFQUFFLElBQVU7WUFDcEQsTUFBTSxDQUFDLGVBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsRUFBRSx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFORCxzQkFNQztBQUdEOztHQUVHO0FBQ0gsZUFBc0IsTUFBYyxFQUFFLEtBQWE7SUFDakQsTUFBTSxDQUFDLENBQUMsT0FBeUI7UUFDL0IsTUFBTSxDQUFDLGVBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsaUJBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUpELHNCQUlDO0FBR0Q7O0dBRUc7QUFDSCxtQkFBMEIsTUFBYyxFQUFFLFdBQTBCLHlCQUFhLENBQUMsT0FBTztJQUN2RixNQUFNLENBQUMsQ0FBQyxJQUFVLEVBQUUsT0FBeUI7UUFDM0MsTUFBTSxNQUFNLEdBQUcsaUJBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFM0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLHFCQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFORCw4QkFNQztBQUdEO0lBQ0UsTUFBTSxDQUFDLENBQUMsSUFBVSxFQUFFLFFBQTBCLEtBQUssSUFBSSxDQUFDO0FBQzFELENBQUM7QUFGRCxvQkFFQztBQUdELGdCQUF1QixTQUFpQztJQUN0RCxNQUFNLENBQUMsQ0FBQyxJQUFVLEtBQUssSUFBSSx1QkFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRkQsd0JBRUM7QUFHRCxrQkFBeUIsSUFBVTtJQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBRkQsNEJBRUM7QUFHRCx3QkFBK0IsSUFBVTtJQUN2QyxNQUFNLENBQUMsQ0FBQyxJQUFVLEVBQUUsT0FBeUI7UUFDM0MsTUFBTSxZQUFZLEdBQUcsZUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLE1BQU0sQ0FBQyxlQUFRLENBQUMsSUFBSSxFQUFFLHVCQUFVLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQzthQUN4RCxHQUFHLENBQUMsQ0FBQyxJQUFJLGNBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBUEQsd0NBT0M7QUFHRCxjQUFxQixTQUFpQyxFQUFFLFFBQXNCO0lBQzVFLE1BQU0sQ0FBQyxDQUFDLEtBQWdCO1FBQ3RCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVJELG9CQVFDO0FBR0QsaUJBQXdCLFFBQXNCO0lBQzVDLE1BQU0sQ0FBQyxDQUFDLElBQVU7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxNQUFNLENBQUM7WUFDVCxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixNQUFNLENBQUM7WUFDVCxDQUFDO1lBQ0QsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRWxCLE1BQU0sQ0FBQztZQUNULENBQUM7WUFDRCxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBMUJELDBCQTBCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL21hcCc7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL21lcmdlTWFwJztcbmltcG9ydCB7RmlsZU9wZXJhdG9yLCBSdWxlLCBTY2hlbWF0aWNDb250ZXh0LCBTb3VyY2V9IGZyb20gJy4uL2VuZ2luZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHtGaWx0ZXJlZFRyZWV9IGZyb20gJy4uL3RyZWUvZmlsdGVyZWQnO1xuaW1wb3J0IHtGaWxlRW50cnksIEZpbGVQcmVkaWNhdGUsIE1lcmdlU3RyYXRlZ3ksIFRyZWV9IGZyb20gJy4uL3RyZWUvaW50ZXJmYWNlJztcbmltcG9ydCB7YnJhbmNoLCBlbXB0eSBhcyBzdGF0aWNFbXB0eSwgbWVyZ2UgYXMgc3RhdGljTWVyZ2V9IGZyb20gJy4uL3RyZWUvc3RhdGljJztcbmltcG9ydCB7VmlydHVhbFRyZWV9IGZyb20gJy4uL3RyZWUvdmlydHVhbCc7XG5pbXBvcnQge2NhbGxSdWxlLCBjYWxsU291cmNlfSBmcm9tICcuL2NhbGwnO1xuXG5cbi8qKlxuICogQSBTb3VyY2UgdGhhdCByZXR1cm5zIGFuIHRyZWUgYXMgaXRzIHNpbmdsZSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvdXJjZSh0cmVlOiBUcmVlKTogU291cmNlIHtcbiAgcmV0dXJuICgpID0+IHRyZWU7XG59XG5cblxuLyoqXG4gKiBBIHNvdXJjZSB0aGF0IHJldHVybnMgYW4gZW1wdHkgdHJlZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5KCk6IFNvdXJjZSB7XG4gIHJldHVybiAoKSA9PiBzdGF0aWNFbXB0eSgpO1xufVxuXG5cbi8qKlxuICogQ2hhaW4gbXVsdGlwbGUgcnVsZXMgaW50byBhIHNpbmdsZSBydWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhaW4ocnVsZXM6IFJ1bGVbXSk6IFJ1bGUge1xuICByZXR1cm4gKHRyZWU6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICByZXR1cm4gcnVsZXMucmVkdWNlKChhY2M6IE9ic2VydmFibGU8VHJlZT4sIGN1cnI6IFJ1bGUpID0+IHtcbiAgICAgIHJldHVybiBjYWxsUnVsZShjdXJyLCBhY2MsIGNvbnRleHQpO1xuICAgIH0sIE9ic2VydmFibGUub2YodHJlZSkpO1xuICB9O1xufVxuXG5cbi8qKlxuICogQXBwbHkgbXVsdGlwbGUgcnVsZXMgdG8gYSBzb3VyY2UsIGFuZCByZXR1cm5zIHRoZSBzb3VyY2UgdHJhbnNmb3JtZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseShzb3VyY2U6IFNvdXJjZSwgcnVsZXM6IFJ1bGVbXSk6IFNvdXJjZSB7XG4gIHJldHVybiAoY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4ge1xuICAgIHJldHVybiBjYWxsUnVsZShjaGFpbihydWxlcyksIGNhbGxTb3VyY2Uoc291cmNlLCBjb250ZXh0KSwgY29udGV4dCk7XG4gIH07XG59XG5cblxuLyoqXG4gKiBNZXJnZSBhbiBpbnB1dCB0cmVlIHdpdGggdGhlIHNvdXJjZSBwYXNzZWQgaW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVdpdGgoc291cmNlOiBTb3VyY2UsIHN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5ID0gTWVyZ2VTdHJhdGVneS5EZWZhdWx0KTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSwgY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxTb3VyY2Uoc291cmNlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiByZXN1bHQubWFwKG90aGVyID0+IFZpcnR1YWxUcmVlLm1lcmdlKHRyZWUsIG90aGVyLCBzdHJhdGVneSB8fCBjb250ZXh0LnN0cmF0ZWd5KSk7XG4gIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSwgX2NvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHRyZWU7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihwcmVkaWNhdGU6IEZpbGVQcmVkaWNhdGU8Ym9vbGVhbj4pOiBSdWxlIHtcbiAgcmV0dXJuICh0cmVlOiBUcmVlKSA9PiBuZXcgRmlsdGVyZWRUcmVlKHRyZWUsIHByZWRpY2F0ZSk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFzU291cmNlKHJ1bGU6IFJ1bGUpOiBTb3VyY2Uge1xuICByZXR1cm4gYXBwbHkoZW1wdHkoKSwgW3J1bGVdKTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYnJhbmNoQW5kTWVyZ2UocnVsZTogUnVsZSk6IFJ1bGUge1xuICByZXR1cm4gKHRyZWU6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCBicmFuY2hlZFRyZWUgPSBicmFuY2godHJlZSk7XG5cbiAgICByZXR1cm4gY2FsbFJ1bGUocnVsZSwgT2JzZXJ2YWJsZS5vZihicmFuY2hlZFRyZWUpLCBjb250ZXh0KVxuICAgICAgLm1hcCh0ID0+IHN0YXRpY01lcmdlKHRyZWUsIHQpKTtcbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gd2hlbihwcmVkaWNhdGU6IEZpbGVQcmVkaWNhdGU8Ym9vbGVhbj4sIG9wZXJhdG9yOiBGaWxlT3BlcmF0b3IpOiBGaWxlT3BlcmF0b3Ige1xuICByZXR1cm4gKGVudHJ5OiBGaWxlRW50cnkpID0+IHtcbiAgICBpZiAocHJlZGljYXRlKGVudHJ5LnBhdGgsIGVudHJ5KSkge1xuICAgICAgcmV0dXJuIG9wZXJhdG9yKGVudHJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChvcGVyYXRvcjogRmlsZU9wZXJhdG9yKTogUnVsZSB7XG4gIHJldHVybiAodHJlZTogVHJlZSkgPT4ge1xuICAgIHRyZWUuZmlsZXMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIGNvbnN0IGVudHJ5ID0gdHJlZS5nZXQocGF0aCk7XG4gICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld0VudHJ5ID0gb3BlcmF0b3IoZW50cnkpO1xuICAgICAgaWYgKG5ld0VudHJ5ID09PSBlbnRyeSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAobmV3RW50cnkgPT09IG51bGwpIHtcbiAgICAgICAgdHJlZS5kZWxldGUocGF0aCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKG5ld0VudHJ5LnBhdGggIT0gcGF0aCkge1xuICAgICAgICB0cmVlLnJlbmFtZShwYXRoLCBuZXdFbnRyeS5wYXRoKTtcbiAgICAgIH1cbiAgICAgIGlmICghbmV3RW50cnkuY29udGVudC5lcXVhbHMoZW50cnkuY29udGVudCkpIHtcbiAgICAgICAgdHJlZS5vdmVyd3JpdGUobmV3RW50cnkucGF0aCwgbmV3RW50cnkuY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJlZTtcbiAgfTtcbn1cbiJdfQ==

@@ -8,6 +8,6 @@ /**

*/
import { Observable } from 'rxjs/Observable';
import { Rule, SchematicContext, Source } from '../engine/interface';
import { BaseException } from '../exception/exception';
import { Rule, SchematicContext, Source } from '../engine/interface';
import { Tree } from '../tree/interface';
import { Observable } from 'rxjs/Observable';
/**

@@ -17,5 +17,5 @@ * When a rule or source returns an invalid value.

export declare class InvalidRuleResultException extends BaseException {
constructor(value: any);
constructor(value: {});
}
export declare function callSource(source: Source, context: SchematicContext): Observable<Tree>;
export declare function callRule(rule: Rule, input: Observable<Tree>, context: SchematicContext): Observable<Tree>;

@@ -10,5 +10,5 @@ "use strict";

*/
const Observable_1 = require("rxjs/Observable");
const exception_1 = require("../exception/exception");
const virtual_1 = require("../tree/virtual");
const Observable_1 = require("rxjs/Observable");
/**

@@ -75,2 +75,2 @@ * When a rule or source returns an invalid value.

exports.callRule = callRule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsc0RBQXFEO0FBR3JELDZDQUE0QztBQUU1QyxnREFBMkM7QUFHM0M7O0dBRUc7QUFDSCxnQ0FBd0MsU0FBUSx5QkFBYTtJQUMzRCxZQUFZLEtBQVU7UUFDcEIsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ3ZCLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDbEIsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2IsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDbkIsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsR0FBRyxHQUFHLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNsRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsR0FBRyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN6QyxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixDQUFDLEdBQUcscUJBQXFCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEQsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUF0QkQsZ0VBc0JDO0FBR0Qsb0JBQTJCLE1BQWMsRUFBRSxPQUF5QjtJQUNsRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0IsRUFBRSxDQUFDLENBQUMsTUFBTSxZQUFZLHFCQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sWUFBWSx1QkFBVSxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0FBQ0gsQ0FBQztBQVZELGdDQVVDO0FBR0Qsa0JBQXlCLElBQVUsRUFDVixLQUF1QixFQUN2QixPQUF5QjtJQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFaEMsRUFBRSxDQUFDLENBQUMsTUFBTSxZQUFZLHFCQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFjLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sWUFBWSx1QkFBVSxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBZEQsNEJBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0Jhc2VFeGNlcHRpb259IGZyb20gJy4uL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNDb250ZXh0LCBTb3VyY2V9IGZyb20gJy4uL2VuZ2luZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHtUcmVlfSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5pbXBvcnQge1ZpcnR1YWxUcmVlfSBmcm9tICcuLi90cmVlL3ZpcnR1YWwnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5cblxuLyoqXG4gKiBXaGVuIGEgcnVsZSBvciBzb3VyY2UgcmV0dXJucyBhbiBpbnZhbGlkIHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IodmFsdWU6IGFueSkge1xuICAgIGxldCB2ID0gJ1Vua25vd24gVHlwZSc7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHYgPSAndW5kZWZpbmVkJztcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICB2ID0gJ251bGwnO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHYgPSBgRnVuY3Rpb24oKWA7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT0gJ29iamVjdCcpIHtcbiAgICAgIHYgPSBgJHt0eXBlb2YgdmFsdWV9KCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSlgO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSA9PSBPYmplY3QpIHtcbiAgICAgICAgdiA9IGBPYmplY3QoJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9KWA7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHYgPSBgSW5zdGFuY2Ugb2YgY2xhc3MgJHt2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ID0gJ1Vua25vd24gT2JqZWN0JztcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIoYEludmFsaWQgcnVsZSBvciBzb3VyY2UgcmVzdWx0OiAke3Z9LmApO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxTb3VyY2Uoc291cmNlOiBTb3VyY2UsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpOiBPYnNlcnZhYmxlPFRyZWU+IHtcbiAgY29uc3QgcmVzdWx0ID0gc291cmNlKGNvbnRleHQpO1xuXG4gIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBWaXJ0dWFsVHJlZSkge1xuICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKHJlc3VsdCk7XG4gIH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uKHJlc3VsdCk7XG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gY2FsbFJ1bGUocnVsZTogUnVsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogT2JzZXJ2YWJsZTxUcmVlPixcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KTogT2JzZXJ2YWJsZTxUcmVlPiB7XG4gIHJldHVybiBpbnB1dC5tZXJnZU1hcChpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBydWxlKGksIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFZpcnR1YWxUcmVlKSB7XG4gICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZihyZXN1bHQgYXMgVHJlZSk7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24ocmVzdWx0KTtcbiAgICB9XG4gIH0pO1xufVxuXG5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9jYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsZ0RBQTJDO0FBRTNDLHNEQUFxRDtBQUVyRCw2Q0FBNEM7QUFHNUM7O0dBRUc7QUFDSCxnQ0FBd0MsU0FBUSx5QkFBYTtJQUMzRCxZQUFZLEtBQVM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ3ZCLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDbEIsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2IsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDbkIsQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsR0FBRyxHQUFHLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNsRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsR0FBRyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN6QyxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixDQUFDLEdBQUcscUJBQXFCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEQsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztRQUNELEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUF0QkQsZ0VBc0JDO0FBR0Qsb0JBQTJCLE1BQWMsRUFBRSxPQUF5QjtJQUNsRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0IsRUFBRSxDQUFDLENBQUMsTUFBTSxZQUFZLHFCQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sWUFBWSx1QkFBVSxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0FBQ0gsQ0FBQztBQVZELGdDQVVDO0FBR0Qsa0JBQXlCLElBQVUsRUFDVixLQUF1QixFQUN2QixPQUF5QjtJQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFaEMsRUFBRSxDQUFDLENBQUMsTUFBTSxZQUFZLHFCQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyx1QkFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFjLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sWUFBWSx1QkFBVSxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sSUFBSSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBZEQsNEJBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5pbXBvcnQge1J1bGUsIFNjaGVtYXRpY0NvbnRleHQsIFNvdXJjZX0gZnJvbSAnLi4vZW5naW5lL2ludGVyZmFjZSc7XG5pbXBvcnQge0Jhc2VFeGNlcHRpb259IGZyb20gJy4uL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuaW1wb3J0IHtUcmVlfSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5pbXBvcnQge1ZpcnR1YWxUcmVlfSBmcm9tICcuLi90cmVlL3ZpcnR1YWwnO1xuXG5cbi8qKlxuICogV2hlbiBhIHJ1bGUgb3Igc291cmNlIHJldHVybnMgYW4gaW52YWxpZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlOiB7fSkge1xuICAgIGxldCB2ID0gJ1Vua25vd24gVHlwZSc7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHYgPSAndW5kZWZpbmVkJztcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICB2ID0gJ251bGwnO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHYgPSBgRnVuY3Rpb24oKWA7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT0gJ29iamVjdCcpIHtcbiAgICAgIHYgPSBgJHt0eXBlb2YgdmFsdWV9KCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSlgO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSA9PSBPYmplY3QpIHtcbiAgICAgICAgdiA9IGBPYmplY3QoJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9KWA7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHYgPSBgSW5zdGFuY2Ugb2YgY2xhc3MgJHt2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2ID0gJ1Vua25vd24gT2JqZWN0JztcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIoYEludmFsaWQgcnVsZSBvciBzb3VyY2UgcmVzdWx0OiAke3Z9LmApO1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxTb3VyY2Uoc291cmNlOiBTb3VyY2UsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpOiBPYnNlcnZhYmxlPFRyZWU+IHtcbiAgY29uc3QgcmVzdWx0ID0gc291cmNlKGNvbnRleHQpO1xuXG4gIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBWaXJ0dWFsVHJlZSkge1xuICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKHJlc3VsdCk7XG4gIH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uKHJlc3VsdCk7XG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gY2FsbFJ1bGUocnVsZTogUnVsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogT2JzZXJ2YWJsZTxUcmVlPixcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KTogT2JzZXJ2YWJsZTxUcmVlPiB7XG4gIHJldHVybiBpbnB1dC5tZXJnZU1hcChpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBydWxlKGksIGNvbnRleHQpO1xuXG4gICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFZpcnR1YWxUcmVlKSB7XG4gICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZihyZXN1bHQgYXMgVHJlZSk7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24ocmVzdWx0KTtcbiAgICB9XG4gIH0pO1xufVxuXG4iXX0=

@@ -0,3 +1,10 @@

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { FileOperator, Rule } from '../engine/interface';
export declare function moveOp(from: string, to?: string): FileOperator;
export declare function move(from: string, to?: string): Rule;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const path_1 = require("../utility/path");
const base_1 = require("./base");
const path_1 = require("../utility/path");
function moveOp(from, to) {

@@ -23,3 +16,3 @@ if (to === undefined) {

content: entry.content,
path: path_1.normalizePath(toPath + '/' + entry.path.substr(fromPath.length))
path: path_1.normalizePath(toPath + '/' + entry.path.substr(fromPath.length)),
};

@@ -35,2 +28,2 @@ }

exports.move = move;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9tb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsaUNBQStCO0FBRy9CLDBDQUE4QztBQUc5QyxnQkFBdUIsSUFBWSxFQUFFLEVBQVc7SUFDOUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDckIsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNWLElBQUksR0FBRyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsb0JBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxvQkFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sQ0FBQyxDQUFDLEtBQWdCO1FBQ3RCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxNQUFNLENBQUM7Z0JBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsb0JBQWEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7QUFDSixDQUFDO0FBbEJELHdCQWtCQztBQUdELGNBQXFCLElBQVksRUFBRSxFQUFXO0lBQzVDLE1BQU0sQ0FBQyxjQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFGRCxvQkFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7Zm9yRWFjaH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7RmlsZU9wZXJhdG9yLCBSdWxlfSBmcm9tICcuLi9lbmdpbmUvaW50ZXJmYWNlJztcbmltcG9ydCB7RmlsZUVudHJ5fSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVPcChmcm9tOiBzdHJpbmcsIHRvPzogc3RyaW5nKTogRmlsZU9wZXJhdG9yIHtcbiAgaWYgKHRvID09PSB1bmRlZmluZWQpIHtcbiAgICB0byA9IGZyb207XG4gICAgZnJvbSA9ICcvJztcbiAgfVxuXG4gIGNvbnN0IGZyb21QYXRoID0gbm9ybWFsaXplUGF0aChmcm9tKTtcbiAgY29uc3QgdG9QYXRoID0gbm9ybWFsaXplUGF0aCh0byk7XG5cbiAgcmV0dXJuIChlbnRyeTogRmlsZUVudHJ5KSA9PiB7XG4gICAgaWYgKGVudHJ5LnBhdGguc3RhcnRzV2l0aChmcm9tUGF0aCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IGVudHJ5LmNvbnRlbnQsXG4gICAgICAgIHBhdGg6IG5vcm1hbGl6ZVBhdGgodG9QYXRoICsgJy8nICsgZW50cnkucGF0aC5zdWJzdHIoZnJvbVBhdGgubGVuZ3RoKSlcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBlbnRyeTtcbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZShmcm9tOiBzdHJpbmcsIHRvPzogc3RyaW5nKTogUnVsZSB7XG4gIHJldHVybiBmb3JFYWNoKG1vdmVPcChmcm9tLCB0bykpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9tb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsMENBQThDO0FBQzlDLGlDQUErQjtBQUcvQixnQkFBdUIsSUFBWSxFQUFFLEVBQVc7SUFDOUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDckIsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNWLElBQUksR0FBRyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsb0JBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxvQkFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sQ0FBQyxDQUFDLEtBQWdCO1FBQ3RCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxNQUFNLENBQUM7Z0JBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsb0JBQWEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2RSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7QUFDSixDQUFDO0FBbkJELHdCQW1CQztBQUdELGNBQXFCLElBQVksRUFBRSxFQUFXO0lBQzVDLE1BQU0sQ0FBQyxjQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFGRCxvQkFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZU9wZXJhdG9yLCBSdWxlfSBmcm9tICcuLi9lbmdpbmUvaW50ZXJmYWNlJztcbmltcG9ydCB7RmlsZUVudHJ5fSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5pbXBvcnQge2ZvckVhY2h9IGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVPcChmcm9tOiBzdHJpbmcsIHRvPzogc3RyaW5nKTogRmlsZU9wZXJhdG9yIHtcbiAgaWYgKHRvID09PSB1bmRlZmluZWQpIHtcbiAgICB0byA9IGZyb207XG4gICAgZnJvbSA9ICcvJztcbiAgfVxuXG4gIGNvbnN0IGZyb21QYXRoID0gbm9ybWFsaXplUGF0aChmcm9tKTtcbiAgY29uc3QgdG9QYXRoID0gbm9ybWFsaXplUGF0aCh0byk7XG5cbiAgcmV0dXJuIChlbnRyeTogRmlsZUVudHJ5KSA9PiB7XG4gICAgaWYgKGVudHJ5LnBhdGguc3RhcnRzV2l0aChmcm9tUGF0aCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IGVudHJ5LmNvbnRlbnQsXG4gICAgICAgIHBhdGg6IG5vcm1hbGl6ZVBhdGgodG9QYXRoICsgJy8nICsgZW50cnkucGF0aC5zdWJzdHIoZnJvbVBhdGgubGVuZ3RoKSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeTtcbiAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZShmcm9tOiBzdHJpbmcsIHRvPzogc3RyaW5nKTogUnVsZSB7XG4gIHJldHVybiBmb3JFYWNoKG1vdmVPcChmcm9tLCB0bykpO1xufVxuIl19

@@ -1,8 +0,1 @@

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Rule } from '../engine/interface';

@@ -9,0 +2,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const Observable_1 = require("rxjs/Observable");
const static_1 = require("../tree/static");
const Observable_1 = require("rxjs/Observable");
/**

@@ -28,3 +35,3 @@ * Run a schematic from a separate collection.

return (input, context) => {
let collection = context.schematic.collection;
const collection = context.schematic.collection;
const schematic = collection.createSchematic(schematicName);

@@ -35,2 +42,2 @@ return schematic.call(options, Observable_1.Observable.of(static_1.branch(input)));

exports.schematic = schematic;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3NjaGVtYXRpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLDJDQUFzQztBQUV0QyxnREFBMkM7QUFHM0M7Ozs7OztHQU1HO0FBQ0gsMkJBQXFDLGNBQXNCLEVBQ3RCLGFBQXFCLEVBQ3JCLE9BQVU7SUFDN0MsTUFBTSxDQUFDLENBQUMsS0FBVyxFQUFFLE9BQXlCO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsdUJBQVUsQ0FBQyxFQUFFLENBQUMsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBUkQsOENBUUM7QUFHRDs7Ozs7R0FLRztBQUNILG1CQUE2QixhQUFxQixFQUFFLE9BQVU7SUFDNUQsTUFBTSxDQUFDLENBQUMsS0FBVyxFQUFFLE9BQXlCO1FBQzVDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBRTlDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUFVLENBQUMsRUFBRSxDQUFDLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVBELDhCQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNDb250ZXh0fSBmcm9tICcuLi9lbmdpbmUvaW50ZXJmYWNlJztcbmltcG9ydCB7VHJlZX0gZnJvbSAnLi4vdHJlZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHticmFuY2h9IGZyb20gJy4uL3RyZWUvc3RhdGljJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuXG5cbi8qKlxuICogUnVuIGEgc2NoZW1hdGljIGZyb20gYSBzZXBhcmF0ZSBjb2xsZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb2xsZWN0aW9uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBzY2hlbWF0aWMgdG8gcnVuLlxuICogQHBhcmFtIHNjaGVtYXRpY05hbWUgVGhlIG5hbWUgb2YgdGhlIHNjaGVtYXRpYyB0byBydW4uXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBwYXNzIGFzIGlucHV0IHRvIHRoZSBSdWxlRmFjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVybmFsU2NoZW1hdGljPFQ+KGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hdGljTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IFQpOiBSdWxlIHtcbiAgcmV0dXJuIChpbnB1dDogVHJlZSwgY29udGV4dDogU2NoZW1hdGljQ29udGV4dCkgPT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb250ZXh0LmVuZ2luZS5jcmVhdGVDb2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lKTtcbiAgICBjb25zdCBzY2hlbWF0aWMgPSBjb2xsZWN0aW9uLmNyZWF0ZVNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lKTtcbiAgICByZXR1cm4gc2NoZW1hdGljLmNhbGwob3B0aW9ucywgT2JzZXJ2YWJsZS5vZihicmFuY2goaW5wdXQpKSk7XG4gIH07XG59XG5cblxuLyoqXG4gKiBSdW4gYSBzY2hlbWF0aWMgZnJvbSB0aGUgc2FtZSBjb2xsZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBzY2hlbWF0aWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBzY2hlbWF0aWMgdG8gcnVuLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgdG8gcGFzcyBhcyBpbnB1dCB0byB0aGUgUnVsZUZhY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2hlbWF0aWM8VD4oc2NoZW1hdGljTmFtZTogc3RyaW5nLCBvcHRpb25zOiBUKTogUnVsZSB7XG4gIHJldHVybiAoaW5wdXQ6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBsZXQgY29sbGVjdGlvbiA9IGNvbnRleHQuc2NoZW1hdGljLmNvbGxlY3Rpb247XG5cbiAgICBjb25zdCBzY2hlbWF0aWMgPSBjb2xsZWN0aW9uLmNyZWF0ZVNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lKTtcbiAgICByZXR1cm4gc2NoZW1hdGljLmNhbGwob3B0aW9ucywgT2JzZXJ2YWJsZS5vZihicmFuY2goaW5wdXQpKSk7XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3NjaGVtYXRpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILGdEQUEyQztBQUczQywyQ0FBc0M7QUFHdEM7Ozs7OztHQU1HO0FBQ0gsMkJBQXFDLGNBQXNCLEVBQ3RCLGFBQXFCLEVBQ3JCLE9BQVU7SUFDN0MsTUFBTSxDQUFDLENBQUMsS0FBVyxFQUFFLE9BQXlCO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkUsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU1RCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsdUJBQVUsQ0FBQyxFQUFFLENBQUMsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBVEQsOENBU0M7QUFHRDs7Ozs7R0FLRztBQUNILG1CQUE2QixhQUFxQixFQUFFLE9BQVU7SUFDNUQsTUFBTSxDQUFDLENBQUMsS0FBVyxFQUFFLE9BQXlCO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFNUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHVCQUFVLENBQUMsRUFBRSxDQUFDLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVBELDhCQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuaW1wb3J0IHtSdWxlLCBTY2hlbWF0aWNDb250ZXh0fSBmcm9tICcuLi9lbmdpbmUvaW50ZXJmYWNlJztcbmltcG9ydCB7VHJlZX0gZnJvbSAnLi4vdHJlZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHticmFuY2h9IGZyb20gJy4uL3RyZWUvc3RhdGljJztcblxuXG4vKipcbiAqIFJ1biBhIHNjaGVtYXRpYyBmcm9tIGEgc2VwYXJhdGUgY29sbGVjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gdGhhdCBjb250YWlucyB0aGUgc2NoZW1hdGljIHRvIHJ1bi5cbiAqIEBwYXJhbSBzY2hlbWF0aWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBzY2hlbWF0aWMgdG8gcnVuLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgdG8gcGFzcyBhcyBpbnB1dCB0byB0aGUgUnVsZUZhY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRlcm5hbFNjaGVtYXRpYzxUPihjb2xsZWN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYXRpY05hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBUKTogUnVsZSB7XG4gIHJldHVybiAoaW5wdXQ6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gY29udGV4dC5lbmdpbmUuY3JlYXRlQ29sbGVjdGlvbihjb2xsZWN0aW9uTmFtZSk7XG4gICAgY29uc3Qgc2NoZW1hdGljID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSk7XG5cbiAgICByZXR1cm4gc2NoZW1hdGljLmNhbGwob3B0aW9ucywgT2JzZXJ2YWJsZS5vZihicmFuY2goaW5wdXQpKSk7XG4gIH07XG59XG5cblxuLyoqXG4gKiBSdW4gYSBzY2hlbWF0aWMgZnJvbSB0aGUgc2FtZSBjb2xsZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBzY2hlbWF0aWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBzY2hlbWF0aWMgdG8gcnVuLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgdG8gcGFzcyBhcyBpbnB1dCB0byB0aGUgUnVsZUZhY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2hlbWF0aWM8VD4oc2NoZW1hdGljTmFtZTogc3RyaW5nLCBvcHRpb25zOiBUKTogUnVsZSB7XG4gIHJldHVybiAoaW5wdXQ6IFRyZWUsIGNvbnRleHQ6IFNjaGVtYXRpY0NvbnRleHQpID0+IHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gY29udGV4dC5zY2hlbWF0aWMuY29sbGVjdGlvbjtcbiAgICBjb25zdCBzY2hlbWF0aWMgPSBjb2xsZWN0aW9uLmNyZWF0ZVNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lKTtcblxuICAgIHJldHVybiBzY2hlbWF0aWMuY2FsbChvcHRpb25zLCBPYnNlcnZhYmxlLm9mKGJyYW5jaChpbnB1dCkpKTtcbiAgfTtcbn1cbiJdfQ==

@@ -0,1 +1,8 @@

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { FileOperator, Rule } from '../engine/interface';

@@ -14,16 +21,11 @@ import { BaseException } from '../exception/exception';

export declare const kPathTemplatePipeRE: RegExp;
export declare function applyContentTemplate<T extends {
[key: string]: any;
}>(options: T): FileOperator;
export declare function contentTemplate<T extends {
[key: string]: any;
}>(options: T): Rule;
export declare function applyPathTemplate<T extends {
[key: string]: any;
}>(options: T): FileOperator;
export declare function pathTemplate<T extends {
[key: string]: any;
}>(options: T): Rule;
export declare function template<T extends {
[key: string]: any;
}>(options: T): Rule;
export declare type TemplateValue = boolean | string | number;
export declare type TemplatePipeFunction = (x: string) => TemplateValue;
export declare type TemplateOptions = {
[key: string]: TemplateValue | TemplateOptions | TemplatePipeFunction;
};
export declare function applyContentTemplate<T extends TemplateOptions>(options: T): FileOperator;
export declare function contentTemplate<T extends TemplateOptions>(options: T): Rule;
export declare function applyPathTemplate<T extends TemplateOptions>(options: T): FileOperator;
export declare function pathTemplate<T extends TemplateOptions>(options: T): Rule;
export declare function template<T extends TemplateOptions>(options: T): Rule;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const exception_1 = require("../exception/exception");
const path_1 = require("../utility/path");
const base_1 = require("./base");
const template_1 = require("./template/template");
const is_binary_1 = require("./utils/is-binary");
const exception_1 = require("../exception/exception");
const path_1 = require("../utility/path");
class OptionIsNotDefinedException extends exception_1.BaseException {

@@ -37,3 +30,3 @@ constructor(name) { super(`Option "${name}" is not defined.`); }

path: path,
content: new Buffer(template_1.template(content.toString('utf-8'), {})(options))
content: new Buffer(template_1.template(content.toString('utf-8'), {})(options)),
};

@@ -49,3 +42,4 @@ };

return (entry) => {
let { path, content } = entry;
let path = entry.path;
const content = entry.content;
const original = path;

@@ -72,3 +66,3 @@ // Path template.

// Coerce to string.
return '' + (options[pipe])(acc);
return '' + options[pipe](acc);
}, '' + value);

@@ -87,6 +81,6 @@ }));

contentTemplate(options),
pathTemplate(options)
pathTemplate(options),
]);
}
exports.template = template;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxpQ0FBc0M7QUFDdEMsa0RBQTZEO0FBQzdELGlEQUEyQztBQUUzQyxzREFBcUQ7QUFFckQsMENBQThDO0FBSTlDLGlDQUF5QyxTQUFRLHlCQUFhO0lBQzVELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDekU7QUFGRCxrRUFFQztBQUdELDBCQUFrQyxTQUFRLHlCQUFhO0lBQ3JELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdkU7QUFGRCxvREFFQztBQUdELDBCQUFrQyxTQUFRLHlCQUFhO0lBQ3JELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ25FO0FBRkQsb0RBRUM7QUFHWSxRQUFBLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztBQUMxQyxRQUFBLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztBQUk5Qyw4QkFBdUUsT0FBVTtJQUMvRSxNQUFNLENBQUMsQ0FBQyxLQUFnQjtRQUN0QixNQUFNLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixFQUFFLENBQUMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sQ0FBQztZQUNMLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLG1CQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxRSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVhELG9EQVdDO0FBR0QseUJBQWtFLE9BQVU7SUFDMUUsTUFBTSxDQUFDLGNBQU8sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFGRCwwQ0FFQztBQUdELDJCQUFvRSxPQUFVO0lBQzVFLE1BQU0sQ0FBQyxDQUFDLEtBQWdCO1FBQ3RCLElBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztRQUV0QixpQkFBaUI7UUFDakIsSUFBSSxHQUFHLG9CQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQ0FBd0IsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLO1lBQ25FLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLDJCQUFtQixDQUFDLENBQUM7WUFDMUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVTtrQkFDNUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO2tCQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbEIsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBWTtnQkFDNUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQztnQkFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2dCQUNELEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztnQkFFRCxvQkFBb0I7Z0JBQ3BCLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWxDRCw4Q0FrQ0M7QUFHRCxzQkFBK0QsT0FBVTtJQUN2RSxNQUFNLENBQUMsY0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUZELG9DQUVDO0FBSUQsa0JBQTJELE9BQVU7SUFDbkUsTUFBTSxDQUFDLFlBQUssQ0FBQztRQUNYLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDeEIsWUFBWSxDQUFDLE9BQU8sQ0FBQztLQUN0QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBTEQsNEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge2NoYWluLCBmb3JFYWNofSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHt0ZW1wbGF0ZSBhcyB0ZW1wbGF0ZUltcGx9IGZyb20gJy4vdGVtcGxhdGUvdGVtcGxhdGUnO1xuaW1wb3J0IHtpc0JpbmFyeX0gZnJvbSAnLi91dGlscy9pcy1iaW5hcnknO1xuaW1wb3J0IHtGaWxlT3BlcmF0b3IsIFJ1bGV9IGZyb20gJy4uL2VuZ2luZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7RmlsZUVudHJ5fSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5cblxuXG5leHBvcnQgY2xhc3MgT3B0aW9uSXNOb3REZWZpbmVkRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykgeyBzdXBlcihgT3B0aW9uIFwiJHtuYW1lfVwiIGlzIG5vdCBkZWZpbmVkLmApOyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFVua25vd25QaXBlRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykgeyBzdXBlcihgUGlwZSBcIiR7bmFtZX1cIiBpcyBub3QgZGVmaW5lZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUGlwZUV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHsgc3VwZXIoYFBpcGUgXCIke25hbWV9XCIgaXMgaW52YWxpZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBjb25zdCBrUGF0aFRlbXBsYXRlQ29tcG9uZW50UkUgPSAvX18oW15fXSspX18vZztcbmV4cG9ydCBjb25zdCBrUGF0aFRlbXBsYXRlUGlwZVJFID0gL0AoW15AXSspLztcblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUNvbnRlbnRUZW1wbGF0ZTxUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob3B0aW9uczogVCk6IEZpbGVPcGVyYXRvciB7XG4gIHJldHVybiAoZW50cnk6IEZpbGVFbnRyeSkgPT4ge1xuICAgIGNvbnN0IHtwYXRoLCBjb250ZW50fSA9IGVudHJ5O1xuICAgIGlmIChpc0JpbmFyeShjb250ZW50KSkge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogcGF0aCxcbiAgICAgIGNvbnRlbnQ6IG5ldyBCdWZmZXIodGVtcGxhdGVJbXBsKGNvbnRlbnQudG9TdHJpbmcoJ3V0Zi04JyksIHt9KShvcHRpb25zKSlcbiAgICB9O1xuICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50VGVtcGxhdGU8VCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0+KG9wdGlvbnM6IFQpOiBSdWxlIHtcbiAgcmV0dXJuIGZvckVhY2goYXBwbHlDb250ZW50VGVtcGxhdGUob3B0aW9ucykpO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVBhdGhUZW1wbGF0ZTxUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob3B0aW9uczogVCk6IEZpbGVPcGVyYXRvciB7XG4gIHJldHVybiAoZW50cnk6IEZpbGVFbnRyeSkgPT4ge1xuICAgIGxldCB7cGF0aCwgY29udGVudH0gPSBlbnRyeTtcbiAgICBjb25zdCBvcmlnaW5hbCA9IHBhdGg7XG5cbiAgICAvLyBQYXRoIHRlbXBsYXRlLlxuICAgIHBhdGggPSBub3JtYWxpemVQYXRoKHBhdGgucmVwbGFjZShrUGF0aFRlbXBsYXRlQ29tcG9uZW50UkUsIChfLCBtYXRjaCkgPT4ge1xuICAgICAgY29uc3QgW25hbWUsIC4uLnBpcGVzXSA9IG1hdGNoLnNwbGl0KGtQYXRoVGVtcGxhdGVQaXBlUkUpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0eXBlb2Ygb3B0aW9uc1tuYW1lXSA9PSAnZnVuY3Rpb24nXG4gICAgICAgID8gb3B0aW9uc1tuYW1lXS5jYWxsKG9wdGlvbnMsIG9yaWdpbmFsKVxuICAgICAgICA6IG9wdGlvbnNbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24obmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwaXBlcy5yZWR1Y2UoKGFjYzogc3RyaW5nLCBwaXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCFwaXBlKSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShwaXBlIGluIG9wdGlvbnMpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVua25vd25QaXBlRXhjZXB0aW9uKHBpcGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1twaXBlXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQaXBlRXhjZXB0aW9uKHBpcGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29lcmNlIHRvIHN0cmluZy5cbiAgICAgICAgcmV0dXJuICcnICsgKG9wdGlvbnNbcGlwZV0pKGFjYyk7XG4gICAgICB9LCAnJyArIHZhbHVlKTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4geyBwYXRoLCBjb250ZW50IH07XG4gIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUZW1wbGF0ZTxUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob3B0aW9uczogVCk6IFJ1bGUge1xuICByZXR1cm4gZm9yRWFjaChhcHBseVBhdGhUZW1wbGF0ZShvcHRpb25zKSk7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGU8VCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0+KG9wdGlvbnM6IFQpOiBSdWxlIHtcbiAgcmV0dXJuIGNoYWluKFtcbiAgICBjb250ZW50VGVtcGxhdGUob3B0aW9ucyksXG4gICAgcGF0aFRlbXBsYXRlKG9wdGlvbnMpXG4gIF0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxzREFBcUQ7QUFFckQsMENBQThDO0FBQzlDLGlDQUFzQztBQUN0QyxrREFBNkQ7QUFDN0QsaURBQTJDO0FBRzNDLGlDQUF5QyxTQUFRLHlCQUFhO0lBQzVELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDekU7QUFGRCxrRUFFQztBQUdELDBCQUFrQyxTQUFRLHlCQUFhO0lBQ3JELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdkU7QUFGRCxvREFFQztBQUdELDBCQUFrQyxTQUFRLHlCQUFhO0lBQ3JELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ25FO0FBRkQsb0RBRUM7QUFHWSxRQUFBLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztBQUMxQyxRQUFBLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztBQVU5Qyw4QkFBZ0UsT0FBVTtJQUN4RSxNQUFNLENBQUMsQ0FBQyxLQUFnQjtRQUN0QixNQUFNLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixFQUFFLENBQUMsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sQ0FBQztZQUNMLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLG1CQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxRSxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVpELG9EQVlDO0FBR0QseUJBQTJELE9BQVU7SUFDbkUsTUFBTSxDQUFDLGNBQU8sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFGRCwwQ0FFQztBQUdELDJCQUE2RCxPQUFVO0lBQ3JFLE1BQU0sQ0FBQyxDQUFDLEtBQWdCO1FBQ3RCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFdEIsaUJBQWlCO1FBQ2pCLElBQUksR0FBRyxvQkFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0NBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSztZQUNuRSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQywyQkFBbUIsQ0FBQyxDQUFDO1lBQzFELE1BQU0sS0FBSyxHQUFHLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVU7a0JBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7a0JBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVsQixFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLENBQUM7WUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxJQUFZO2dCQUM1QyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ1YsTUFBTSxDQUFDLEdBQUcsQ0FBQztnQkFDYixDQUFDO2dCQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixNQUFNLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7Z0JBQ0QsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDdkMsTUFBTSxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2dCQUVELG9CQUFvQjtnQkFDcEIsTUFBTSxDQUFDLEVBQUUsR0FBSSxPQUFPLENBQUMsSUFBSSxDQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNELENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUM7QUFDSixDQUFDO0FBbkNELDhDQW1DQztBQUdELHNCQUF3RCxPQUFVO0lBQ2hFLE1BQU0sQ0FBQyxjQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRkQsb0NBRUM7QUFHRCxrQkFBb0QsT0FBVTtJQUM1RCxNQUFNLENBQUMsWUFBSyxDQUFDO1FBQ1gsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUN4QixZQUFZLENBQUMsT0FBTyxDQUFDO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFMRCw0QkFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZU9wZXJhdG9yLCBSdWxlfSBmcm9tICcuLi9lbmdpbmUvaW50ZXJmYWNlJztcbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge0ZpbGVFbnRyeX0gZnJvbSAnLi4vdHJlZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHtub3JtYWxpemVQYXRofSBmcm9tICcuLi91dGlsaXR5L3BhdGgnO1xuaW1wb3J0IHtjaGFpbiwgZm9yRWFjaH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7dGVtcGxhdGUgYXMgdGVtcGxhdGVJbXBsfSBmcm9tICcuL3RlbXBsYXRlL3RlbXBsYXRlJztcbmltcG9ydCB7aXNCaW5hcnl9IGZyb20gJy4vdXRpbHMvaXMtYmluYXJ5JztcblxuXG5leHBvcnQgY2xhc3MgT3B0aW9uSXNOb3REZWZpbmVkRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykgeyBzdXBlcihgT3B0aW9uIFwiJHtuYW1lfVwiIGlzIG5vdCBkZWZpbmVkLmApOyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFVua25vd25QaXBlRXhjZXB0aW9uIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykgeyBzdXBlcihgUGlwZSBcIiR7bmFtZX1cIiBpcyBub3QgZGVmaW5lZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUGlwZUV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHsgc3VwZXIoYFBpcGUgXCIke25hbWV9XCIgaXMgaW52YWxpZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBjb25zdCBrUGF0aFRlbXBsYXRlQ29tcG9uZW50UkUgPSAvX18oW15fXSspX18vZztcbmV4cG9ydCBjb25zdCBrUGF0aFRlbXBsYXRlUGlwZVJFID0gL0AoW15AXSspLztcblxuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVZhbHVlID0gYm9vbGVhbiB8IHN0cmluZyB8IG51bWJlcjtcbmV4cG9ydCB0eXBlIFRlbXBsYXRlUGlwZUZ1bmN0aW9uID0gKHg6IHN0cmluZykgPT4gVGVtcGxhdGVWYWx1ZTtcbmV4cG9ydCB0eXBlIFRlbXBsYXRlT3B0aW9ucyA9IHtcbiAgW2tleTogc3RyaW5nXTogVGVtcGxhdGVWYWx1ZSB8IFRlbXBsYXRlT3B0aW9ucyB8IFRlbXBsYXRlUGlwZUZ1bmN0aW9uLFxufTtcblxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlDb250ZW50VGVtcGxhdGU8VCBleHRlbmRzIFRlbXBsYXRlT3B0aW9ucz4ob3B0aW9uczogVCk6IEZpbGVPcGVyYXRvciB7XG4gIHJldHVybiAoZW50cnk6IEZpbGVFbnRyeSkgPT4ge1xuICAgIGNvbnN0IHtwYXRoLCBjb250ZW50fSA9IGVudHJ5O1xuICAgIGlmIChpc0JpbmFyeShjb250ZW50KSkge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgY29udGVudDogbmV3IEJ1ZmZlcih0ZW1wbGF0ZUltcGwoY29udGVudC50b1N0cmluZygndXRmLTgnKSwge30pKG9wdGlvbnMpKSxcbiAgICB9O1xuICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjb250ZW50VGVtcGxhdGU8VCBleHRlbmRzIFRlbXBsYXRlT3B0aW9ucz4ob3B0aW9uczogVCk6IFJ1bGUge1xuICByZXR1cm4gZm9yRWFjaChhcHBseUNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0aFRlbXBsYXRlPFQgZXh0ZW5kcyBUZW1wbGF0ZU9wdGlvbnM+KG9wdGlvbnM6IFQpOiBGaWxlT3BlcmF0b3Ige1xuICByZXR1cm4gKGVudHJ5OiBGaWxlRW50cnkpID0+IHtcbiAgICBsZXQgcGF0aCA9IGVudHJ5LnBhdGg7XG4gICAgY29uc3QgY29udGVudCA9IGVudHJ5LmNvbnRlbnQ7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSBwYXRoO1xuXG4gICAgLy8gUGF0aCB0ZW1wbGF0ZS5cbiAgICBwYXRoID0gbm9ybWFsaXplUGF0aChwYXRoLnJlcGxhY2Uoa1BhdGhUZW1wbGF0ZUNvbXBvbmVudFJFLCAoXywgbWF0Y2gpID0+IHtcbiAgICAgIGNvbnN0IFtuYW1lLCAuLi5waXBlc10gPSBtYXRjaC5zcGxpdChrUGF0aFRlbXBsYXRlUGlwZVJFKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIG9wdGlvbnNbbmFtZV0gPT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IChvcHRpb25zW25hbWVdIGFzIFRlbXBsYXRlUGlwZUZ1bmN0aW9uKS5jYWxsKG9wdGlvbnMsIG9yaWdpbmFsKVxuICAgICAgICA6IG9wdGlvbnNbbmFtZV07XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24obmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwaXBlcy5yZWR1Y2UoKGFjYzogc3RyaW5nLCBwaXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCFwaXBlKSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShwaXBlIGluIG9wdGlvbnMpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVua25vd25QaXBlRXhjZXB0aW9uKHBpcGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1twaXBlXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRQaXBlRXhjZXB0aW9uKHBpcGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29lcmNlIHRvIHN0cmluZy5cbiAgICAgICAgcmV0dXJuICcnICsgKG9wdGlvbnNbcGlwZV0gYXMgVGVtcGxhdGVQaXBlRnVuY3Rpb24pKGFjYyk7XG4gICAgICB9LCAnJyArIHZhbHVlKTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4geyBwYXRoLCBjb250ZW50IH07XG4gIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhUZW1wbGF0ZTxUIGV4dGVuZHMgVGVtcGxhdGVPcHRpb25zPihvcHRpb25zOiBUKTogUnVsZSB7XG4gIHJldHVybiBmb3JFYWNoKGFwcGx5UGF0aFRlbXBsYXRlKG9wdGlvbnMpKTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGU8VCBleHRlbmRzIFRlbXBsYXRlT3B0aW9ucz4ob3B0aW9uczogVCk6IFJ1bGUge1xuICByZXR1cm4gY2hhaW4oW1xuICAgIGNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSxcbiAgICBwYXRoVGVtcGxhdGUob3B0aW9ucyksXG4gIF0pO1xufVxuIl19

@@ -24,3 +24,3 @@ "use strict";

"'": '&#39;',
'`': '&#96;'
'`': '&#96;',
};

@@ -40,3 +40,3 @@ // Used to match HTML entities and HTML characters.

'\u2028': '\\u2028',
'\u2029': '\\u2029'
'\u2029': '\\u2029',
};

@@ -112,2 +112,2 @@ // Used to match unescaped characters in compiled string literals.

exports.template = template;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCxpRkFBaUY7QUFDakYsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUM7QUFFMUMscUNBQXFDO0FBQ3JDLHNDQUFzQztBQUN0Qyx1Q0FBdUM7QUFDdkMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUM7QUFDckMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFFdEMsK0NBQStDO0FBQy9DLE1BQU0sWUFBWSxHQUE2QjtJQUM3QyxHQUFHLEVBQUUsT0FBTztJQUNaLEdBQUcsRUFBRSxNQUFNO0lBQ1gsR0FBRyxFQUFFLE1BQU07SUFDWCxHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxPQUFPO0lBQ1osR0FBRyxFQUFFLE9BQU87Q0FDYixDQUFDO0FBRUYsbURBQW1EO0FBQ25ELE1BQU0sZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQVFuRixtRUFBbUU7QUFDbkUsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUM5QyxNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDO0FBQ2pELE1BQU0scUJBQXFCLEdBQUcsK0JBQStCLENBQUM7QUFHOUQsdUVBQXVFO0FBQ3ZFLE1BQU0sYUFBYSxHQUE2QjtJQUM5QyxJQUFJLEVBQUUsTUFBTTtJQUNaLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsS0FBSztJQUNYLFFBQVEsRUFBRSxTQUFT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LyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBNYXRjaGVzIDwlPSBleHByICU+LiBUaGlzIGRvZXMgbm90IHN1cHBvcnQgc3RydWN0dXJhbCBKYXZhU2NyaXB0IChmb3IvaWYvLi4uKS5cbmNvbnN0IGtJbnRlcnBvbGF0ZVJlID0gLzwlPShbXFxzXFxTXSs/KSU+L2c7XG5cbi8vIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy5cbi8vIDwlLSBleHByICU+OiBIVE1MIGVzY2FwZSB0aGUgdmFsdWUuXG4vLyA8JSAuLi4gJT46IFN0cnVjdHVyYWwgdGVtcGxhdGUgY29kZS5cbmNvbnN0IGtFc2NhcGVSZSA9IC88JS0oW1xcc1xcU10rPyklPi9nO1xuY29uc3Qga0V2YWx1YXRlUmUgPSAvPCUoW1xcc1xcU10rPyklPi9nO1xuXG4vKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xuY29uc3Qga0h0bWxFc2NhcGVzOiB7W2NoYXI6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICdgJzogJyYjOTY7J1xufTtcblxuLy8gVXNlZCB0byBtYXRjaCBIVE1MIGVudGl0aWVzIGFuZCBIVE1MIGNoYXJhY3RlcnMuXG5jb25zdCByZVVuZXNjYXBlZEh0bWwgPSBuZXcgUmVnRXhwKGBbJHtPYmplY3Qua2V5cyhrSHRtbEVzY2FwZXMpLmpvaW4oJycpfV1gLCAnZycpO1xuXG4vLyBPcHRpb25zIHRvIHBhc3MgdG8gdGVtcGxhdGUuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlT3B0aW9ucyB7XG4gIHNvdXJjZVVSTD86IHN0cmluZztcbn1cblxuXG4vLyBVc2VkIHRvIG1hdGNoIGVtcHR5IHN0cmluZyBsaXRlcmFscyBpbiBjb21waWxlZCB0ZW1wbGF0ZSBzb3VyY2UuXG5jb25zdCByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZztcbmNvbnN0IHJlRW1wdHlTdHJpbmdNaWRkbGUgPSAvXFxiKF9fcCBcXCs9KSAnJyBcXCsvZztcbmNvbnN0IHJlRW1wdHlTdHJpbmdUcmFpbGluZyA9IC8oX19lXFwoLio/XFwpfFxcYl9fdFxcKSkgXFwrXFxuJyc7L2c7XG5cblxuLy8gVXNlZCB0byBlc2NhcGUgY2hhcmFjdGVycyBmb3IgaW5jbHVzaW9uIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy5cbmNvbnN0IHN0cmluZ0VzY2FwZXM6IHtbY2hhcjogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgJ1xcXFwnOiAnXFxcXFxcXFwnLFxuICBcIidcIjogXCJcXFxcJ1wiLFxuICAnXFxuJzogJ1xcXFxuJyxcbiAgJ1xccic6ICdcXFxccicsXG4gICdcXHUyMDI4JzogJ1xcXFx1MjAyOCcsXG4gICdcXHUyMDI5JzogJ1xcXFx1MjAyOSdcbn07XG5cbi8vIFVzZWQgdG8gbWF0Y2ggdW5lc2NhcGVkIGNoYXJhY3RlcnMgaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLlxuY29uc3QgcmVVbmVzY2FwZWRTdHJpbmcgPSAvWydcXG5cXHJcXHUyMDI4XFx1MjAyOVxcXFxdL2c7XG5cblxuZnVuY3Rpb24gX2VzY2FwZShzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHMgPyBzLnJlcGxhY2UocmVVbmVzY2FwZWRIdG1sLCBrZXkgPT4ga0h0bWxFc2NhcGVzW2tleV0pIDogJyc7XG59XG5cblxuLyoqXG4gKiBBbiBlcXVpdmFsZW50IG9mIGxvZGFzaCB0ZW1wbGF0ZXMsIHdoaWNoIGlzIGJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb25cbiAqIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLykgYW5kIExhdXJhIERva3Rvcm92YSdzIGRvVC5qc1xuICogKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICpcbiAqIFRoaXMgdmVyc2lvbiBkaWZmZXJzIGZyb20gbG9kYXNoIGJ5IHJlbW92aW5nIHN1cHBvcnQgZnJvbSBFUzYgcXVhc2ktbGl0ZXJhbHMsIGFuZCBtYWtpbmcgdGhlXG4gKiBjb2RlIHNsaWdodGx5IHNpbXBsZXIgdG8gZm9sbG93LiBJdCBhbHNvIGRvZXMgbm90IGRlcGVuZCBvbiBhbnkgdGhpcmQgcGFydHksIHdoaWNoIGlzIG5pY2UuXG4gKlxuICogQHBhcmFtIGNvbnRlbnRcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJuIHthbnl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZTxUPihjb250ZW50OiBzdHJpbmcsIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9ucyk6IChpbnB1dDogVCkgPT4gc3RyaW5nIHtcbiAgY29uc3QgaW50ZXJwb2xhdGUgPSBrSW50ZXJwb2xhdGVSZTtcbiAgbGV0IGlzRXZhbHVhdGluZztcbiAgbGV0IGluZGV4ID0gMDtcbiAgbGV0IHNvdXJjZSA9IGBfX3AgKz0gJ2A7XG5cbiAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICBjb25zdCByZURlbGltaXRlcnMgPSBSZWdFeHAoXG4gICAgYCR7a0VzY2FwZVJlLnNvdXJjZX18JHtpbnRlcnBvbGF0ZS5zb3VyY2V9fCR7a0V2YWx1YXRlUmUuc291cmNlfXwkYCwgJ2cnKTtcblxuICAvLyBVc2UgYSBzb3VyY2VVUkwgZm9yIGVhc2llciBkZWJ1Z2dpbmcuXG4gIGNvbnN0IHNvdXJjZVVSTCA9IG9wdGlvbnMuc291cmNlVVJMID8gJy8vIyBzb3VyY2VVUkw9JyArIG9wdGlvbnMuc291cmNlVVJMICsgJ1xcbicgOiAnJztcblxuICBjb250ZW50LnJlcGxhY2UocmVEZWxpbWl0ZXJzLCAobWF0Y2gsIGVzY2FwZVZhbHVlLCBpbnRlcnBvbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpID0+IHtcbiAgICAvLyBFc2NhcGUgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlIGluY2x1ZGVkIGluIHN0cmluZyBsaXRlcmFscy5cbiAgICBzb3VyY2UgKz0gY29udGVudC5zbGljZShpbmRleCwgb2Zmc2V0KS5yZXBsYWNlKHJlVW5lc2NhcGVkU3RyaW5nLCBjaHIgPT4gc3RyaW5nRXNjYXBlc1tjaHJdKTtcblxuICAgIC8vIFJlcGxhY2UgZGVsaW1pdGVycyB3aXRoIHNuaXBwZXRzLlxuICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgc291cmNlICs9IGAnICtcXG5fX2UoJHtlc2NhcGVWYWx1ZX0pICtcXG4gICdgO1xuICAgIH1cbiAgICBpZiAoZXZhbHVhdGVWYWx1ZSkge1xuICAgICAgaXNFdmFsdWF0aW5nID0gdHJ1ZTtcbiAgICAgIHNvdXJjZSArPSBgJztcXG4ke2V2YWx1YXRlVmFsdWV9O1xcbl9fcCArPSAnYDtcbiAgICB9XG4gICAgaWYgKGludGVycG9sYXRlVmFsdWUpIHtcbiAgICAgIHNvdXJjZSArPSBgJyArXFxuKChfX3QgPSAoJHtpbnRlcnBvbGF0ZVZhbHVlfSkpID09IG51bGwgPyAnJyA6IF9fdCkgK1xcbiAgJ2A7XG4gICAgfVxuICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgcmV0dXJuIG1hdGNoO1xuICB9KTtcblxuICBzb3VyY2UgKz0gXCInO1xcblwiO1xuXG4gIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgc291cmNlID0gKGlzRXZhbHVhdGluZyA/IHNvdXJjZS5yZXBsYWNlKHJlRW1wdHlTdHJpbmdMZWFkaW5nLCAnJykgOiBzb3VyY2UpXG4gICAgLnJlcGxhY2UocmVFbXB0eVN0cmluZ01pZGRsZSwgJyQxJylcbiAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAvLyBGcmFtZSBjb2RlIGFzIHRoZSBmdW5jdGlvbiBib2R5LlxuICBzb3VyY2UgPSBgXG4gIHJldHVybiBmdW5jdGlvbihvYmopIHtcbiAgICBvYmogfHwgKG9iaiA9IHt9KTtcbiAgICBsZXQgX190O1xuICAgIGxldCBfX3AgPSAnJztcbiAgICBjb25zdCBfX2UgPSBfLmVzY2FwZTtcbiAgICB3aXRoIChvYmopIHtcbiAgICAgICR7c291cmNlLnJlcGxhY2UoL1xcbi9nLCAnXFxuICAgICAgJyl9XG4gICAgfVxuICAgIHJldHVybiBfX3A7XG4gIH07XG4gIGA7XG5cbiAgY29uc3QgZm4gPSBGdW5jdGlvbignXycsIHNvdXJjZVVSTCArIHNvdXJjZSk7XG4gIGNvbnN0IHJlc3VsdCA9IGZuKHsgZXNjYXBlOiBfZXNjYXBlIH0pO1xuXG4gIC8vIFByb3ZpZGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uJ3Mgc291cmNlIGJ5IGl0cyBgdG9TdHJpbmdgIG1ldGhvZCBvclxuICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICByZXN1bHQuc291cmNlID0gc291cmNlO1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCxpRkFBaUY7QUFDakYsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUM7QUFFMUMscUNBQXFDO0FBQ3JDLHNDQUFzQztBQUN0Qyx1Q0FBdUM7QUFDdkMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUM7QUFDckMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUM7QUFFdEMsK0NBQStDO0FBQy9DLE1BQU0sWUFBWSxHQUE2QjtJQUM3QyxHQUFHLEVBQUUsT0FBTztJQUNaLEdBQUcsRUFBRSxNQUFNO0lBQ1gsR0FBRyxFQUFFLE1BQU07SUFDWCxHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxPQUFPO0lBQ1osR0FBRyxFQUFFLE9BQU87Q0FDYixDQUFDO0FBRUYsbURBQW1EO0FBQ25ELE1BQU0sZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQVFuRixtRUFBbUU7QUFDbkUsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUM5QyxNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDO0FBQ2pELE1BQU0scUJBQXFCLEdBQUcsK0JBQStCLENBQUM7QUFHOUQsdUVBQXVFO0FBQ3ZFLE1BQU0sYUFBYSxHQUE2QjtJQUM5QyxJQUFJLEVBQUUsTUFBTTtJQUNaLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsS0FBSztJQUNYLFFBQVEsRUFBRSxTQUFT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LyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBNYXRjaGVzIDwlPSBleHByICU+LiBUaGlzIGRvZXMgbm90IHN1cHBvcnQgc3RydWN0dXJhbCBKYXZhU2NyaXB0IChmb3IvaWYvLi4uKS5cbmNvbnN0IGtJbnRlcnBvbGF0ZVJlID0gLzwlPShbXFxzXFxTXSs/KSU+L2c7XG5cbi8vIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy5cbi8vIDwlLSBleHByICU+OiBIVE1MIGVzY2FwZSB0aGUgdmFsdWUuXG4vLyA8JSAuLi4gJT46IFN0cnVjdHVyYWwgdGVtcGxhdGUgY29kZS5cbmNvbnN0IGtFc2NhcGVSZSA9IC88JS0oW1xcc1xcU10rPyklPi9nO1xuY29uc3Qga0V2YWx1YXRlUmUgPSAvPCUoW1xcc1xcU10rPyklPi9nO1xuXG4vKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xuY29uc3Qga0h0bWxFc2NhcGVzOiB7W2NoYXI6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICdgJzogJyYjOTY7Jyxcbn07XG5cbi8vIFVzZWQgdG8gbWF0Y2ggSFRNTCBlbnRpdGllcyBhbmQgSFRNTCBjaGFyYWN0ZXJzLlxuY29uc3QgcmVVbmVzY2FwZWRIdG1sID0gbmV3IFJlZ0V4cChgWyR7T2JqZWN0LmtleXMoa0h0bWxFc2NhcGVzKS5qb2luKCcnKX1dYCwgJ2cnKTtcblxuLy8gT3B0aW9ucyB0byBwYXNzIHRvIHRlbXBsYXRlLlxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZU9wdGlvbnMge1xuICBzb3VyY2VVUkw/OiBzdHJpbmc7XG59XG5cblxuLy8gVXNlZCB0byBtYXRjaCBlbXB0eSBzdHJpbmcgbGl0ZXJhbHMgaW4gY29tcGlsZWQgdGVtcGxhdGUgc291cmNlLlxuY29uc3QgcmVFbXB0eVN0cmluZ0xlYWRpbmcgPSAvXFxiX19wIFxcKz0gJyc7L2c7XG5jb25zdCByZUVtcHR5U3RyaW5nTWlkZGxlID0gL1xcYihfX3AgXFwrPSkgJycgXFwrL2c7XG5jb25zdCByZUVtcHR5U3RyaW5nVHJhaWxpbmcgPSAvKF9fZVxcKC4qP1xcKXxcXGJfX3RcXCkpIFxcK1xcbicnOy9nO1xuXG5cbi8vIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuXG5jb25zdCBzdHJpbmdFc2NhcGVzOiB7W2NoYXI6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICdcXFxcJzogJ1xcXFxcXFxcJyxcbiAgXCInXCI6IFwiXFxcXCdcIixcbiAgJ1xcbic6ICdcXFxcbicsXG4gICdcXHInOiAnXFxcXHInLFxuICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknLFxufTtcblxuLy8gVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuXG5jb25zdCByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuXG5mdW5jdGlvbiBfZXNjYXBlKHM6IHN0cmluZykge1xuICByZXR1cm4gcyA/IHMucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGtleSA9PiBrSHRtbEVzY2FwZXNba2V5XSkgOiAnJztcbn1cblxuXG4vKipcbiAqIEFuIGVxdWl2YWxlbnQgb2YgbG9kYXNoIHRlbXBsYXRlcywgd2hpY2ggaXMgYmFzZWQgb24gSm9obiBSZXNpZydzIGB0bXBsYCBpbXBsZW1lbnRhdGlvblxuICogKGh0dHA6Ly9lam9obi5vcmcvYmxvZy9qYXZhc2NyaXB0LW1pY3JvLXRlbXBsYXRpbmcvKSBhbmQgTGF1cmEgRG9rdG9yb3ZhJ3MgZG9ULmpzXG4gKiAoaHR0cHM6Ly9naXRodWIuY29tL29sYWRvL2RvVCkuXG4gKlxuICogVGhpcyB2ZXJzaW9uIGRpZmZlcnMgZnJvbSBsb2Rhc2ggYnkgcmVtb3Zpbmcgc3VwcG9ydCBmcm9tIEVTNiBxdWFzaS1saXRlcmFscywgYW5kIG1ha2luZyB0aGVcbiAqIGNvZGUgc2xpZ2h0bHkgc2ltcGxlciB0byBmb2xsb3cuIEl0IGFsc28gZG9lcyBub3QgZGVwZW5kIG9uIGFueSB0aGlyZCBwYXJ0eSwgd2hpY2ggaXMgbmljZS5cbiAqXG4gKiBAcGFyYW0gY29udGVudFxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEByZXR1cm4ge2FueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlPFQ+KGNvbnRlbnQ6IHN0cmluZywgb3B0aW9uczogVGVtcGxhdGVPcHRpb25zKTogKGlucHV0OiBUKSA9PiBzdHJpbmcge1xuICBjb25zdCBpbnRlcnBvbGF0ZSA9IGtJbnRlcnBvbGF0ZVJlO1xuICBsZXQgaXNFdmFsdWF0aW5nO1xuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgc291cmNlID0gYF9fcCArPSAnYDtcblxuICAvLyBDb21waWxlIHRoZSByZWdleHAgdG8gbWF0Y2ggZWFjaCBkZWxpbWl0ZXIuXG4gIGNvbnN0IHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICBgJHtrRXNjYXBlUmUuc291cmNlfXwke2ludGVycG9sYXRlLnNvdXJjZX18JHtrRXZhbHVhdGVSZS5zb3VyY2V9fCRgLCAnZycpO1xuXG4gIC8vIFVzZSBhIHNvdXJjZVVSTCBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAgY29uc3Qgc291cmNlVVJMID0gb3B0aW9ucy5zb3VyY2VVUkwgPyAnLy8jIHNvdXJjZVVSTD0nICsgb3B0aW9ucy5zb3VyY2VVUkwgKyAnXFxuJyA6ICcnO1xuXG4gIGNvbnRlbnQucmVwbGFjZShyZURlbGltaXRlcnMsIChtYXRjaCwgZXNjYXBlVmFsdWUsIGludGVycG9sYXRlVmFsdWUsIGV2YWx1YXRlVmFsdWUsIG9mZnNldCkgPT4ge1xuICAgIC8vIEVzY2FwZSBjaGFyYWN0ZXJzIHRoYXQgY2FuJ3QgYmUgaW5jbHVkZWQgaW4gc3RyaW5nIGxpdGVyYWxzLlxuICAgIHNvdXJjZSArPSBjb250ZW50LnNsaWNlKGluZGV4LCBvZmZzZXQpLnJlcGxhY2UocmVVbmVzY2FwZWRTdHJpbmcsIGNociA9PiBzdHJpbmdFc2NhcGVzW2Nocl0pO1xuXG4gICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgaWYgKGVzY2FwZVZhbHVlKSB7XG4gICAgICBzb3VyY2UgKz0gYCcgK1xcbl9fZSgke2VzY2FwZVZhbHVlfSkgK1xcbiAgJ2A7XG4gICAgfVxuICAgIGlmIChldmFsdWF0ZVZhbHVlKSB7XG4gICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgc291cmNlICs9IGAnO1xcbiR7ZXZhbHVhdGVWYWx1ZX07XFxuX19wICs9ICdgO1xuICAgIH1cbiAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgc291cmNlICs9IGAnICtcXG4oKF9fdCA9ICgke2ludGVycG9sYXRlVmFsdWV9KSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuICAnYDtcbiAgICB9XG4gICAgaW5kZXggPSBvZmZzZXQgKyBtYXRjaC5sZW5ndGg7XG5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH0pO1xuXG4gIHNvdXJjZSArPSBcIic7XFxuXCI7XG5cbiAgLy8gQ2xlYW51cCBjb2RlIGJ5IHN0cmlwcGluZyBlbXB0eSBzdHJpbmdzLlxuICBzb3VyY2UgPSAoaXNFdmFsdWF0aW5nID8gc291cmNlLnJlcGxhY2UocmVFbXB0eVN0cmluZ0xlYWRpbmcsICcnKSA6IHNvdXJjZSlcbiAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgIC5yZXBsYWNlKHJlRW1wdHlTdHJpbmdUcmFpbGluZywgJyQxOycpO1xuXG4gIC8vIEZyYW1lIGNvZGUgYXMgdGhlIGZ1bmN0aW9uIGJvZHkuXG4gIHNvdXJjZSA9IGBcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iaikge1xuICAgIG9iaiB8fCAob2JqID0ge30pO1xuICAgIGxldCBfX3Q7XG4gICAgbGV0IF9fcCA9ICcnO1xuICAgIGNvbnN0IF9fZSA9IF8uZXNjYXBlO1xuICAgIHdpdGggKG9iaikge1xuICAgICAgJHtzb3VyY2UucmVwbGFjZSgvXFxuL2csICdcXG4gICAgICAnKX1cbiAgICB9XG4gICAgcmV0dXJuIF9fcDtcbiAgfTtcbiAgYDtcblxuICBjb25zdCBmbiA9IEZ1bmN0aW9uKCdfJywgc291cmNlVVJMICsgc291cmNlKTtcbiAgY29uc3QgcmVzdWx0ID0gZm4oeyBlc2NhcGU6IF9lc2NhcGUgfSk7XG5cbiAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gIC8vIHRoZSBgc291cmNlYCBwcm9wZXJ0eSBhcyBhIGNvbnZlbmllbmNlIGZvciBpbmxpbmluZyBjb21waWxlZCB0ZW1wbGF0ZXMuXG4gIHJlc3VsdC5zb3VyY2UgPSBzb3VyY2U7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==

@@ -1,9 +0,2 @@

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Source } from '../engine/interface';
export declare function url(urlString: string): Source;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const url_1 = require("url");

@@ -9,2 +16,2 @@ function url(urlString) {

exports.url = url;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3VybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLDZCQUEwQjtBQUcxQixhQUFvQixTQUFpQjtJQUNuQyxNQUFNLEdBQUcsR0FBRyxXQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsTUFBTSxDQUFDLENBQUMsT0FBeUIsS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFIRCxrQkFHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7U2NoZW1hdGljQ29udGV4dCwgU291cmNlfSBmcm9tICcuLi9lbmdpbmUvaW50ZXJmYWNlJztcblxuaW1wb3J0IHtwYXJzZX0gZnJvbSAndXJsJztcblxuXG5leHBvcnQgZnVuY3Rpb24gdXJsKHVybFN0cmluZzogc3RyaW5nKTogU291cmNlIHtcbiAgY29uc3QgdXJsID0gcGFyc2UodXJsU3RyaW5nKTtcbiAgcmV0dXJuIChjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiBjb250ZXh0LmVuZ2luZS5jcmVhdGVTb3VyY2VGcm9tVXJsKHVybCkoY29udGV4dCk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3VybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDZCQUEwQjtBQUkxQixhQUFvQixTQUFpQjtJQUNuQyxNQUFNLEdBQUcsR0FBRyxXQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFN0IsTUFBTSxDQUFDLENBQUMsT0FBeUIsS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFKRCxrQkFJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7cGFyc2V9IGZyb20gJ3VybCc7XG5pbXBvcnQge1NjaGVtYXRpY0NvbnRleHQsIFNvdXJjZX0gZnJvbSAnLi4vZW5naW5lL2ludGVyZmFjZSc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHVybCh1cmxTdHJpbmc6IHN0cmluZyk6IFNvdXJjZSB7XG4gIGNvbnN0IHVybCA9IHBhcnNlKHVybFN0cmluZyk7XG5cbiAgcmV0dXJuIChjb250ZXh0OiBTY2hlbWF0aWNDb250ZXh0KSA9PiBjb250ZXh0LmVuZ2luZS5jcmVhdGVTb3VyY2VGcm9tVXJsKHVybCkoY29udGV4dCk7XG59XG4iXX0=

@@ -9,6 +9,6 @@ /// <reference types="node" />

*/
import { FileSystemSink } from './filesystem';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/observable/empty';
import { FileSystemSink } from './filesystem';
export interface DryRunErrorEvent {

@@ -15,0 +15,0 @@ kind: 'error';

@@ -10,6 +10,6 @@ "use strict";

*/
const filesystem_1 = require("./filesystem");
const Observable_1 = require("rxjs/Observable");
const Subject_1 = require("rxjs/Subject");
require("rxjs/add/observable/empty");
const filesystem_1 = require("./filesystem");
class DryRunSink extends filesystem_1.FileSystemSink {

@@ -34,3 +34,3 @@ constructor(root = '', force = false) {

description: 'alreadyExist',
path
path,
});

@@ -42,3 +42,3 @@ });

description: 'doesNotExist',
path
path,
});

@@ -82,2 +82,2 @@ });

exports.DryRunSink = DryRunSink;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJ5cnVuLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvZHJ5cnVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsNkNBQTRDO0FBRTVDLGdEQUEyQztBQUMzQywwQ0FBcUM7QUFDckMscUNBQW1DO0FBb0NuQyxnQkFBd0IsU0FBUSwyQkFBYztJQU81QyxZQUFZLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBTmpELGFBQVEsR0FBRyxJQUFJLGlCQUFPLEVBQWUsQ0FBQztRQUN0QyxrQ0FBNkIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ2xELGtDQUE2QixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFbkQsYUFBUSxHQUE0QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWQsQ0FBQztJQUVuRCwwQkFBMEIsQ0FBQyxJQUFZO1FBQy9DLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNTLDBCQUEwQixDQUFDLElBQVk7UUFDL0MsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLElBQUk7YUFDTCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLElBQUk7YUFDTCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDOUIsK0JBQStCO1lBQy9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNqQiw4QkFBOEI7b0JBQzlCLE1BQU0sQ0FBQztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJO1lBQ3hDLCtCQUErQjtZQUMvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDZiw4QkFBOEI7b0JBQzlCLE1BQU0sQ0FBQztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztZQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO21CQUN6QyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxDQUFDO1lBQ1QsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLHVCQUFVLENBQUMsS0FBSyxFQUFRLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBckVELGdDQXFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZVN5c3RlbVNpbmt9IGZyb20gJy4vZmlsZXN5c3RlbSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcy9TdWJqZWN0JztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9lbXB0eSc7XG5cblxuXG5leHBvcnQgaW50ZXJmYWNlIERyeVJ1bkVycm9yRXZlbnQge1xuICBraW5kOiAnZXJyb3InO1xuICBkZXNjcmlwdGlvbjogJ2FscmVhZHlFeGlzdCcgfCAnZG9lc05vdEV4aXN0JztcbiAgcGF0aDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBEcnlSdW5EZWxldGVFdmVudCB7XG4gIGtpbmQ6ICdkZWxldGUnO1xuICBwYXRoOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyeVJ1bkNyZWF0ZUV2ZW50IHtcbiAga2luZDogJ2NyZWF0ZSc7XG4gIHBhdGg6IHN0cmluZztcbiAgY29udGVudDogQnVmZmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBEcnlSdW5VcGRhdGVFdmVudCB7XG4gIGtpbmQ6ICd1cGRhdGUnO1xuICBwYXRoOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IEJ1ZmZlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJ5UnVuUmVuYW1lRXZlbnQge1xuICBraW5kOiAncmVuYW1lJztcbiAgcGF0aDogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEcnlSdW5FdmVudCA9IERyeVJ1bkVycm9yRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgRHJ5UnVuRGVsZXRlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgRHJ5UnVuQ3JlYXRlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgRHJ5UnVuVXBkYXRlRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgRHJ5UnVuUmVuYW1lRXZlbnQ7XG5cblxuZXhwb3J0IGNsYXNzIERyeVJ1blNpbmsgZXh0ZW5kcyBGaWxlU3lzdGVtU2luayB7XG4gIHByb3RlY3RlZCBfc3ViamVjdCA9IG5ldyBTdWJqZWN0PERyeVJ1bkV2ZW50PigpO1xuICBwcm90ZWN0ZWQgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIF9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcmVhZG9ubHkgcmVwb3J0ZXI6IE9ic2VydmFibGU8RHJ5UnVuRXZlbnQ+ID0gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3Rvcihyb290ID0gJycsIGZvcmNlID0gZmFsc2UpIHsgc3VwZXIocm9vdCwgZm9yY2UpOyB9XG5cbiAgcHJvdGVjdGVkIF9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQuYWRkKHBhdGgpO1xuICB9XG4gIHByb3RlY3RlZCBfZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmFkZChwYXRoKTtcbiAgfVxuXG4gIF9kb25lKCkge1xuICAgIHRoaXMuX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7XG4gICAgICAgIGtpbmQ6ICdlcnJvcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnYWxyZWFkeUV4aXN0JyxcbiAgICAgICAgcGF0aFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgdGhpcy5fc3ViamVjdC5uZXh0KHtcbiAgICAgICAga2luZDogJ2Vycm9yJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdkb2VzTm90RXhpc3QnLFxuICAgICAgICBwYXRoXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSByZW5hbWluZy5cbiAgICAgIGZvciAoY29uc3QgW2Zyb20sIF9dIG9mIHRoaXMuX2ZpbGVzVG9SZW5hbWUpIHtcbiAgICAgICAgaWYgKGZyb20gPT0gcGF0aCkge1xuICAgICAgICAgIC8vIFRoZSBldmVudCBpcyBzZW50IGxhdGVyIG9uLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb250ZW50ID0gbnVsbDtcbiAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICdkZWxldGUnLCBwYXRoLCBjb250ZW50IH0pO1xuICAgIH0pO1xuICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIHJlbmFtaW5nLlxuICAgICAgZm9yIChjb25zdCBbXywgdG9dIG9mIHRoaXMuX2ZpbGVzVG9SZW5hbWUpIHtcbiAgICAgICAgaWYgKHRvID09IHBhdGgpIHtcbiAgICAgICAgICAvLyBUaGUgZXZlbnQgaXMgc2VudCBsYXRlciBvbi5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKVxuICAgICAgICAgIHx8IHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQuaGFzKHBhdGgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fc3ViamVjdC5uZXh0KHsga2luZDogJ2NyZWF0ZScsIHBhdGgsIGNvbnRlbnQ6IGNvbnRlbnQuZ2VuZXJhdGUoKSB9KTtcbiAgICB9KTtcbiAgICB0aGlzLl9maWxlc1RvVXBkYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHtcbiAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICd1cGRhdGUnLCBwYXRoLCBjb250ZW50OiBjb250ZW50LmdlbmVyYXRlKCkgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5mb3JFYWNoKChbcGF0aCwgdG9dKSA9PiB7XG4gICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAncmVuYW1lJywgcGF0aCwgdG8sIGNvbnRlbnQ6IG51bGwgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKTtcbiAgfVxufVxuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJ5cnVuLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvZHJ5cnVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsZ0RBQTJDO0FBQzNDLDBDQUFxQztBQUNyQyxxQ0FBbUM7QUFDbkMsNkNBQTRDO0FBbUM1QyxnQkFBd0IsU0FBUSwyQkFBYztJQU81QyxZQUFZLElBQUksR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBTmpELGFBQVEsR0FBRyxJQUFJLGlCQUFPLEVBQWUsQ0FBQztRQUN0QyxrQ0FBNkIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ2xELGtDQUE2QixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFFbkQsYUFBUSxHQUE0QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWQsQ0FBQztJQUVuRCwwQkFBMEIsQ0FBQyxJQUFZO1FBQy9DLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNTLDBCQUEwQixDQUFDLElBQVk7UUFDL0MsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLElBQUk7YUFDTCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLElBQUk7YUFDTCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDOUIsK0JBQStCO1lBQy9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNqQiw4QkFBOEI7b0JBQzlCLE1BQU0sQ0FBQztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJO1lBQ3hDLCtCQUErQjtZQUMvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDZiw4QkFBOEI7b0JBQzlCLE1BQU0sQ0FBQztnQkFDVCxDQUFDO1lBQ0gsQ0FBQztZQUNELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO21CQUN6QyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxDQUFDO1lBQ1QsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFekIsTUFBTSxDQUFDLHVCQUFVLENBQUMsS0FBSyxFQUFRLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBdEVELGdDQXNFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcy9PYnNlcnZhYmxlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcy9TdWJqZWN0JztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9lbXB0eSc7XG5pbXBvcnQge0ZpbGVTeXN0ZW1TaW5rfSBmcm9tICcuL2ZpbGVzeXN0ZW0nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJ5UnVuRXJyb3JFdmVudCB7XG4gIGtpbmQ6ICdlcnJvcic7XG4gIGRlc2NyaXB0aW9uOiAnYWxyZWFkeUV4aXN0JyB8ICdkb2VzTm90RXhpc3QnO1xuICBwYXRoOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyeVJ1bkRlbGV0ZUV2ZW50IHtcbiAga2luZDogJ2RlbGV0ZSc7XG4gIHBhdGg6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJ5UnVuQ3JlYXRlRXZlbnQge1xuICBraW5kOiAnY3JlYXRlJztcbiAgcGF0aDogc3RyaW5nO1xuICBjb250ZW50OiBCdWZmZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyeVJ1blVwZGF0ZUV2ZW50IHtcbiAga2luZDogJ3VwZGF0ZSc7XG4gIHBhdGg6IHN0cmluZztcbiAgY29udGVudDogQnVmZmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBEcnlSdW5SZW5hbWVFdmVudCB7XG4gIGtpbmQ6ICdyZW5hbWUnO1xuICBwYXRoOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERyeVJ1bkV2ZW50ID0gRHJ5UnVuRXJyb3JFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBEcnlSdW5EZWxldGVFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBEcnlSdW5DcmVhdGVFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBEcnlSdW5VcGRhdGVFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBEcnlSdW5SZW5hbWVFdmVudDtcblxuXG5leHBvcnQgY2xhc3MgRHJ5UnVuU2luayBleHRlbmRzIEZpbGVTeXN0ZW1TaW5rIHtcbiAgcHJvdGVjdGVkIF9zdWJqZWN0ID0gbmV3IFN1YmplY3Q8RHJ5UnVuRXZlbnQ+KCk7XG4gIHByb3RlY3RlZCBfZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICByZWFkb25seSByZXBvcnRlcjogT2JzZXJ2YWJsZTxEcnlSdW5FdmVudD4gPSB0aGlzLl9zdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHJvb3QgPSAnJywgZm9yY2UgPSBmYWxzZSkgeyBzdXBlcihyb290LCBmb3JjZSk7IH1cblxuICBwcm90ZWN0ZWQgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldC5hZGQocGF0aCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQuYWRkKHBhdGgpO1xuICB9XG5cbiAgX2RvbmUoKSB7XG4gICAgdGhpcy5fZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgdGhpcy5fc3ViamVjdC5uZXh0KHtcbiAgICAgICAga2luZDogJ2Vycm9yJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdhbHJlYWR5RXhpc3QnLFxuICAgICAgICBwYXRoLFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgdGhpcy5fc3ViamVjdC5uZXh0KHtcbiAgICAgICAga2luZDogJ2Vycm9yJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdkb2VzTm90RXhpc3QnLFxuICAgICAgICBwYXRoLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgcmVuYW1pbmcuXG4gICAgICBmb3IgKGNvbnN0IFtmcm9tLCBfXSBvZiB0aGlzLl9maWxlc1RvUmVuYW1lKSB7XG4gICAgICAgIGlmIChmcm9tID09IHBhdGgpIHtcbiAgICAgICAgICAvLyBUaGUgZXZlbnQgaXMgc2VudCBsYXRlciBvbi5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGVudCA9IG51bGw7XG4gICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAnZGVsZXRlJywgcGF0aCwgY29udGVudCB9KTtcbiAgICB9KTtcbiAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHtcbiAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSByZW5hbWluZy5cbiAgICAgIGZvciAoY29uc3QgW18sIHRvXSBvZiB0aGlzLl9maWxlc1RvUmVuYW1lKSB7XG4gICAgICAgIGlmICh0byA9PSBwYXRoKSB7XG4gICAgICAgICAgLy8gVGhlIGV2ZW50IGlzIHNlbnQgbGF0ZXIgb24uXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldC5oYXMocGF0aClcbiAgICAgICAgICB8fCB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICdjcmVhdGUnLCBwYXRoLCBjb250ZW50OiBjb250ZW50LmdlbmVyYXRlKCkgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5mb3JFYWNoKChjb250ZW50LCBwYXRoKSA9PiB7XG4gICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAndXBkYXRlJywgcGF0aCwgY29udGVudDogY29udGVudC5nZW5lcmF0ZSgpIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZm9yRWFjaCgoW3BhdGgsIHRvXSkgPT4ge1xuICAgICAgdGhpcy5fc3ViamVjdC5uZXh0KHsga2luZDogJ3JlbmFtZScsIHBhdGgsIHRvLCBjb250ZW50OiBudWxsIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3ViamVjdC5jb21wbGV0ZSgpO1xuXG4gICAgcmV0dXJuIE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKTtcbiAgfVxufVxuXG4iXX0=
/// <reference types="node" />
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Observable } from 'rxjs/Observable';
import { VirtualFileSystemSink, VirtualFileSystemSinkHost } from './virtual-filesystem';
import { Observable } from 'rxjs/Observable';
export declare class FileSystemSinkHost implements VirtualFileSystemSinkHost {

@@ -12,0 +5,0 @@ protected _root: string;

@@ -10,6 +10,6 @@ "use strict";

*/
const virtual_filesystem_1 = require("./virtual-filesystem");
const fs = require("fs");
const path_1 = require("path");
const Observable_1 = require("rxjs/Observable");
const virtual_filesystem_1 = require("./virtual-filesystem");
class FileSystemSinkHost {

@@ -102,2 +102,2 @@ constructor(_root) {

exports.FileSystemSink = FileSystemSink;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2ZpbGVzeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCw2REFBc0Y7QUFFdEYseUJBQXlCO0FBQ3pCLCtCQUFtQztBQUNuQyxnREFBMkM7QUFHM0M7SUFDRSxZQUFzQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUFHLENBQUM7SUFFdkMsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxDQUFDLElBQUksdUJBQVUsQ0FBQyxRQUFRO1lBQzVCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTTtnQkFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxDQUFDLElBQUksdUJBQVUsQ0FBTyxDQUFDO1lBQzNCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHO2dCQUNwQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDaEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLGNBQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEdBQUcsY0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkQsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLEtBQUssQ0FBQztZQUNSLENBQUM7WUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDaEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWSxFQUFFLE9BQWU7UUFDakMsSUFBSSxHQUFHLFdBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLHVCQUFVLENBQU8sQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRTFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUc7Z0JBQzlCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDZixDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNOLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBWTtRQUNmLElBQUksR0FBRyxXQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixNQUFNLENBQUMsSUFBSSx1QkFBVSxDQUFDLENBQUM7WUFDckIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSTtnQkFDMUIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDUixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNmLENBQUM7Z0JBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDYixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxFQUFVO1FBQzdCLElBQUksR0FBRyxXQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixFQUFFLEdBQUcsV0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFMUIsTUFBTSxDQUFDLElBQUksdUJBQVUsQ0FBTyxDQUFDO1lBQzNCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHO2dCQUNyQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoRkQsZ0RBZ0ZDO0FBR0Qsb0JBQTRCLFNBQVEsMENBQXFCO0lBQ3ZELFlBQXNCLEtBQWEsRUFBRSxLQUFlO1FBQ2xELEtBQUssQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRHhCLFVBQUssR0FBTCxLQUFLLENBQVE7SUFFbkMsQ0FBQztDQUNGO0FBSkQsd0NBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1ZpcnR1YWxGaWxlU3lzdGVtU2luaywgVmlydHVhbEZpbGVTeXN0ZW1TaW5rSG9zdH0gZnJvbSAnLi92aXJ0dWFsLWZpbGVzeXN0ZW0nO1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQge2Rpcm5hbWUsIGpvaW59IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuXG5cbmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtU2lua0hvc3QgaW1wbGVtZW50cyBWaXJ0dWFsRmlsZVN5c3RlbVNpbmtIb3N0IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9yb290OiBzdHJpbmcpIHt9XG5cbiAgZXhpc3RzKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBmcy5leGlzdHMoam9pbih0aGlzLl9yb290LCBwYXRoKSwgZXhpc3RzID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChleGlzdHMpO1xuICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUocGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHZvaWQ+KG8gPT4ge1xuICAgICAgZnMudW5saW5rKGpvaW4odGhpcy5fcm9vdCwgcGF0aCksIChlcnIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIG8uZXJyb3IoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbWtEaXIocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGF0aHMgPSBbXTtcbiAgICBmb3IgKDsgcGF0aCAhPSBkaXJuYW1lKHBhdGgpOyBwYXRoID0gZGlybmFtZShwYXRoKSkge1xuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBwYXRocy51bnNoaWZ0KHBhdGgpO1xuICAgIH1cbiAgICBwYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgZnMubWtkaXJTeW5jKHBhdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGUocGF0aDogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBwYXRoID0gam9pbih0aGlzLl9yb290LCBwYXRoKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4obyA9PiB7XG4gICAgICB0aGlzLm1rRGlyKGRpcm5hbWUocGF0aCkpO1xuXG4gICAgICBmcy53cml0ZUZpbGUocGF0aCwgY29udGVudCwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgby5lcnJvcihlcnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8QnVmZmVyPiB7XG4gICAgcGF0aCA9IGpvaW4odGhpcy5fcm9vdCwgcGF0aCk7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG8gPT4ge1xuICAgICAgZnMucmVhZEZpbGUocGF0aCwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgby5lcnJvcihlcnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG8ubmV4dChkYXRhKTtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGZyb20gPSBqb2luKHRoaXMuX3Jvb3QsIGZyb20pO1xuICAgIHRvID0gam9pbih0aGlzLl9yb290LCB0byk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4obyA9PiB7XG4gICAgICBmcy5yZW5hbWUoZnJvbSwgdG8sIGVyciA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBvLmVycm9yKGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtU2luayBleHRlbmRzIFZpcnR1YWxGaWxlU3lzdGVtU2luayB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcm9vdDogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pIHtcbiAgICBzdXBlcihuZXcgRmlsZVN5c3RlbVNpbmtIb3N0KF9yb290KSwgZm9yY2UpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2ZpbGVzeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCx5QkFBeUI7QUFDekIsK0JBQW1DO0FBQ25DLGdEQUEyQztBQUMzQyw2REFBc0Y7QUFHdEY7SUFDRSxZQUFzQixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUFHLENBQUM7SUFFdkMsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxDQUFDLElBQUksdUJBQVUsQ0FBQyxRQUFRO1lBQzVCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTTtnQkFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxDQUFDLElBQUksdUJBQVUsQ0FBTyxDQUFDO1lBQzNCLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHO2dCQUNwQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNSLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxD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QyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRHhCLFVBQUssR0FBTCxLQUFLLENBQVE7SUFFbkMsQ0FBQztDQUNGO0FBSkQsd0NBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQge2Rpcm5hbWUsIGpvaW59IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuaW1wb3J0IHtWaXJ0dWFsRmlsZVN5c3RlbVNpbmssIFZpcnR1YWxGaWxlU3lzdGVtU2lua0hvc3R9IGZyb20gJy4vdmlydHVhbC1maWxlc3lzdGVtJztcblxuXG5leHBvcnQgY2xhc3MgRmlsZVN5c3RlbVNpbmtIb3N0IGltcGxlbWVudHMgVmlydHVhbEZpbGVTeXN0ZW1TaW5rSG9zdCB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcm9vdDogc3RyaW5nKSB7fVxuXG4gIGV4aXN0cyhwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgZnMuZXhpc3RzKGpvaW4odGhpcy5fcm9vdCwgcGF0aCksIGV4aXN0cyA9PiB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoZXhpc3RzKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPihvID0+IHtcbiAgICAgIGZzLnVubGluayhqb2luKHRoaXMuX3Jvb3QsIHBhdGgpLCAoZXJyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBvLmVycm9yKGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgby5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG1rRGlyKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhdGhzID0gW107XG4gICAgZm9yICg7IHBhdGggIT0gZGlybmFtZShwYXRoKTsgcGF0aCA9IGRpcm5hbWUocGF0aCkpIHtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBhdGgpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcGF0aHMudW5zaGlmdChwYXRoKTtcbiAgICB9XG4gICAgcGF0aHMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIGZzLm1rZGlyU3luYyhwYXRoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdyaXRlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcGF0aCA9IGpvaW4odGhpcy5fcm9vdCwgcGF0aCk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4obyA9PiB7XG4gICAgICB0aGlzLm1rRGlyKGRpcm5hbWUocGF0aCkpO1xuXG4gICAgICBmcy53cml0ZUZpbGUocGF0aCwgY29udGVudCwgKGVycikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgby5lcnJvcihlcnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8QnVmZmVyPiB7XG4gICAgcGF0aCA9IGpvaW4odGhpcy5fcm9vdCwgcGF0aCk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUobyA9PiB7XG4gICAgICBmcy5yZWFkRmlsZShwYXRoLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBvLmVycm9yKGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgby5uZXh0KGRhdGEpO1xuICAgICAgICAgIG8uY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW5hbWUoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgZnJvbSA9IGpvaW4odGhpcy5fcm9vdCwgZnJvbSk7XG4gICAgdG8gPSBqb2luKHRoaXMuX3Jvb3QsIHRvKTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPihvID0+IHtcbiAgICAgIGZzLnJlbmFtZShmcm9tLCB0bywgZXJyID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIG8uZXJyb3IoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEZpbGVTeXN0ZW1TaW5rIGV4dGVuZHMgVmlydHVhbEZpbGVTeXN0ZW1TaW5rIHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9yb290OiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbikge1xuICAgIHN1cGVyKG5ldyBGaWxlU3lzdGVtU2lua0hvc3QoX3Jvb3QpLCBmb3JjZSk7XG4gIH1cbn1cbiJdfQ==

@@ -9,6 +9,5 @@ /// <reference types="node" />

*/
import { Action, CreateFileAction, DeleteFileAction, OverwriteFileAction, RenameFileAction } from '../tree/action';
import { Tree } from '../tree/interface';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/defer';
import 'rxjs/add/observable/from';
import 'rxjs/add/operator/concat';

@@ -20,3 +19,4 @@ import 'rxjs/add/operator/concatMap';

import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/from';
import { Action, CreateFileAction, DeleteFileAction, OverwriteFileAction, RenameFileAction } from '../tree/action';
import { Tree } from '../tree/interface';
export interface Sink {

@@ -23,0 +23,0 @@ preCommitAction: (action: Action) => void | PromiseLike<Action> | Observable<Action> | Action;

@@ -10,6 +10,5 @@ "use strict";

*/
const action_1 = require("../tree/action");
const exception_1 = require("../exception/exception");
const Observable_1 = require("rxjs/Observable");
require("rxjs/add/observable/defer");
require("rxjs/add/observable/from");
require("rxjs/add/operator/concat");

@@ -21,3 +20,4 @@ require("rxjs/add/operator/concatMap");

require("rxjs/add/operator/mergeMap");
require("rxjs/add/observable/from");
const exception_1 = require("../exception/exception");
const action_1 = require("../tree/action");
const Noop = function () { };

@@ -128,2 +128,2 @@ class SimpleSinkBase {

exports.SimpleSinkBase = SimpleSinkBase;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luay5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL3NpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCwyQ0FRd0I7QUFDeEIsc0RBQTRGO0FBRzVGLGdEQUEyQztBQUMzQyxxQ0FBbUM7QUFDbkMsb0NBQWtDO0FBQ2xDLHVDQUFxQztBQUNyQyw0Q0FBMEM7QUFDMUMsa0NBQWdDO0FBQ2hDLGlDQUErQjtBQUMvQixzQ0FBb0M7QUFDcEMsb0NBQWtDO0FBWWxDLE1BQU0sSUFBSSxHQUFRLGNBQVksQ0FBQyxDQUFDO0FBR2hDO0lBQUE7UUFDRSxvQkFBZSxHQUcyQyxJQUFJLENBQUM7UUFDL0QscUJBQWdCLEdBQWdELElBQUksQ0FBQztRQUNyRSxjQUFTLEdBQWtDLElBQUksQ0FBQztRQUNoRCxlQUFVLEdBQWtDLElBQUksQ0FBQztJQTBGbkQsQ0FBQztJQS9FVywwQkFBMEIsQ0FBQyxJQUFZO1FBQy9DLE1BQU0sSUFBSSxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ1MsMEJBQTBCLENBQUMsSUFBWTtRQUMvQyxNQUFNLElBQUkscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVTLHdCQUF3QixDQUFDLE1BQTJCO1FBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUN6QyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNTLHFCQUFxQixDQUFD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Q0FBQyxpQkFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsTUFBTSxDQUFDLHVCQUFVLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxRQUFRLENBQUMsQ0FBQyxNQUFjO1lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7YUFDRCxRQUFRLENBQUMsQ0FBQyxNQUFjLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLHVCQUFVLENBQUMsS0FBSyxFQUFRLENBQUM7YUFDdkYsTUFBTSxDQUFDLHVCQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDNUMsTUFBTSxDQUFDLHVCQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLHVCQUFVLENBQUMsS0FBSyxFQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Q0FDRjtBQWpHRCx3Q0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIENyZWF0ZUZpbGVBY3Rpb24sXG4gIERlbGV0ZUZpbGVBY3Rpb24sXG4gIE92ZXJ3cml0ZUZpbGVBY3Rpb24sXG4gIFJlbmFtZUZpbGVBY3Rpb24sXG4gIFVua25vd25BY3Rpb25FeGNlcHRpb24sXG4gIGlzQWN0aW9uXG59IGZyb20gJy4uL3RyZWUvYWN0aW9uJztcbmltcG9ydCB7RmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbiwgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge1RyZWV9IGZyb20gJy4uL3RyZWUvaW50ZXJmYWNlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL2RlZmVyJztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvY29uY2F0JztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvY29uY2F0TWFwJztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvaWdub3JlRWxlbWVudHMnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9sYXN0JztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvbWFwJztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvbWVyZ2VNYXAnO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL2Zyb20nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luayB7XG4gIHByZUNvbW1pdEFjdGlvbjogKGFjdGlvbjogQWN0aW9uKSA9PiB2b2lkIHwgUHJvbWlzZUxpa2U8QWN0aW9uPiB8IE9ic2VydmFibGU8QWN0aW9uPiB8IEFjdGlvbjtcbiAgcHJlQ29tbWl0OiAoKSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcG9zdENvbW1pdDogKCkgPT4gdm9pZCB8IE9ic2VydmFibGU8dm9pZD47XG5cbiAgY29tbWl0KHRyZWU6IFRyZWUpOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG5cbmNvbnN0IE5vb3A6IGFueSA9IGZ1bmN0aW9uKCkge307XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNpbXBsZVNpbmtCYXNlIGltcGxlbWVudHMgU2luayB7XG4gIHByZUNvbW1pdEFjdGlvbjogKGFjdGlvbjogQWN0aW9uKSA9PiB2b2lkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByb21pc2VMaWtlPEFjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE9ic2VydmFibGU8QWN0aW9uPiA9IE5vb3A7XG4gIHBvc3RDb21taXRBY3Rpb246IChhY3Rpb246IEFjdGlvbikgPT4gdm9pZCB8IE9ic2VydmFibGU8dm9pZD4gPSBOb29wO1xuICBwcmVDb21taXQ6ICgpID0+IHZvaWQgfCBPYnNlcnZhYmxlPHZvaWQ+ID0gTm9vcDtcbiAgcG9zdENvbW1pdDogKCkgPT4gdm9pZCB8IE9ic2VydmFibGU8dm9pZD4gPSBOb29wO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfdmFsaWRhdGVGaWxlRXhpc3RzKHA6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9vdmVyd3JpdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9jcmVhdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9yZW5hbWVGaWxlKHBhdGg6IHN0cmluZywgdG86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZGVsZXRlRmlsZShwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZG9uZSgpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIHByb3RlY3RlZCBfZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbihwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbjogT3ZlcndyaXRlRmlsZUFjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpXG4gICAgICAubWFwKGIgPT4geyBpZiAoIWIpIHsgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7IH0gfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb246IENyZWF0ZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKVxuICAgICAgLm1hcChiID0+IHsgaWYgKGIpIHsgdGhpcy5fZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7IH0gfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZVJlbmFtZUFjdGlvbihhY3Rpb246IFJlbmFtZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKVxuICAgICAgLm1hcChiID0+IHsgaWYgKCFiKSB7IHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOyB9IH0pXG4gICAgICAubWVyZ2VNYXAoKCkgPT4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi50bykpXG4gICAgICAubWFwKGIgPT4geyBpZiAoYikgeyB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi50byk7IH0gfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZURlbGV0ZUFjdGlvbihhY3Rpb246IERlbGV0ZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKVxuICAgICAgLm1hcChiID0+IHsgaWYgKCFiKSB7IHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOyB9IH0pO1xuICB9XG5cbiAgdmFsaWRhdGVTaW5nbGVBY3Rpb24oYWN0aW9uOiBBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7XG4gICAgICBjYXNlICdvJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICBjYXNlICdjJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICBjYXNlICdyJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbik7XG4gICAgICBjYXNlICdkJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRGVsZXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgVW5rbm93bkFjdGlvbkV4Y2VwdGlvbihhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIGNvbW1pdFNpbmdsZUFjdGlvbihhY3Rpb246IEFjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KClcbiAgICAgIC5jb25jYXQobmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVNpbmdsZUFjdGlvbihhY3Rpb24pLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICB9KSlcbiAgICAgIC5jb25jYXQobmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgICBsZXQgY29tbWl0dGVkID0gbnVsbDtcbiAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkge1xuICAgICAgICAgIGNhc2UgJ28nOiBjb21taXR0ZWQgPSB0aGlzLl9vdmVyd3JpdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2MnOiBjb21taXR0ZWQgPSB0aGlzLl9jcmVhdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3InOiBjb21taXR0ZWQgPSB0aGlzLl9yZW5hbWVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8pOyBicmVhaztcbiAgICAgICAgICBjYXNlICdkJzogY29tbWl0dGVkID0gdGhpcy5fZGVsZXRlRmlsZShhY3Rpb24ucGF0aCk7IGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbW1pdHRlZCkge1xuICAgICAgICAgIGNvbW1pdHRlZC5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxuXG4gIGNvbW1pdCh0cmVlOiBUcmVlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgYWN0aW9ucyA9IE9ic2VydmFibGUuZnJvbSh0cmVlLmFjdGlvbnMpO1xuICAgIHJldHVybiAodGhpcy5wcmVDb21taXQoKSB8fCBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KCkpXG4gICAgICAuY29uY2F0KE9ic2VydmFibGUuZGVmZXIoKCkgPT4gYWN0aW9ucykpXG4gICAgICAuY29uY2F0TWFwKChhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtYXliZUFjdGlvbiA9IHRoaXMucHJlQ29tbWl0QWN0aW9uKGFjdGlvbik7XG4gICAgICAgIGlmICghbWF5YmVBY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZihhY3Rpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQWN0aW9uKG1heWJlQWN0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKG1heWJlQWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbWF5YmVBY3Rpb247XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAubWVyZ2VNYXAoKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1pdFNpbmdsZUFjdGlvbihhY3Rpb24pLmlnbm9yZUVsZW1lbnRzKCkuY29uY2F0KFthY3Rpb25dKTtcbiAgICAgIH0pXG4gICAgICAubWVyZ2VNYXAoKGFjdGlvbjogQWN0aW9uKSA9PiB0aGlzLnBvc3RDb21taXRBY3Rpb24oYWN0aW9uKSB8fCBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KCkpXG4gICAgICAuY29uY2F0KE9ic2VydmFibGUuZGVmZXIoKCkgPT4gdGhpcy5fZG9uZSgpKSlcbiAgICAgIC5jb25jYXQoT2JzZXJ2YWJsZS5kZWZlcigoKSA9PiB0aGlzLnBvc3RDb21taXQoKSB8fCBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KCkpKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luay5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL3NpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxnREFBMkM7QUFDM0MscUNBQW1DO0FBQ25DLG9DQUFrQztBQUNsQyxvQ0FBa0M7QUFDbEMsdUNBQXFDO0FBQ3JDLDRDQUEwQztBQUMxQyxrQ0FBZ0M7QUFDaEMsaUNBQStCO0FBQy9CLHNDQUFvQztBQUNwQyxzREFBNEY7QUFDNUYsMkNBUXdCO0FBYXhCLE1BQU0sSUFBSSxHQUFHLGNBQVksQ0FBQyxDQUFDO0FBRzNCO0lBQUE7UUFDRSxvQkFBZSxHQUcyQyxJQUFJLENBQUM7UUFDL0QscUJBQWdCLEdBQWdELElBQUksQ0FBQztRQUNyRSxjQUFTLEdBQWtDLElBQUksQ0FBQztRQUNoRCxlQUFVLEdBQWtDLElBQUksQ0FBQztJQTJGbkQsQ0FBQztJQWhGVywwQkFBMEIsQ0FBQyxJQUFZO1FBQy9DLE1BQU0sSUFBSSxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ1MsMEJBQTBCLENBQUMsSUFBWTtRQUMvQyxNQUFNLElBQUkscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVTLHdCQUF3QixDQUFDLE1BQTJCO1FBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzthQUN6QyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNTLHFCQUFxQixDQUFD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Q0FBQyxpQkFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsTUFBTSxDQUFDLHVCQUFVLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxRQUFRLENBQUMsQ0FBQyxNQUFjO1lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7YUFDRCxRQUFRLENBQUMsQ0FBQyxNQUFjLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLHVCQUFVLENBQUMsS0FBSyxFQUFRLENBQUM7YUFDdkYsTUFBTSxDQUFDLHVCQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDNUMsTUFBTSxDQUFDLHVCQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLHVCQUFVLENBQUMsS0FBSyxFQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Q0FDRjtBQWxHRCx3Q0FrR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgJ3J4anMvYWRkL29ic2VydmFibGUvZGVmZXInO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL2Zyb20nO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9jb25jYXQnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9jb25jYXRNYXAnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9pZ25vcmVFbGVtZW50cyc7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL2xhc3QnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9tYXAnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9tZXJnZU1hcCc7XG5pbXBvcnQge0ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24sIEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb259IGZyb20gJy4uL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBDcmVhdGVGaWxlQWN0aW9uLFxuICBEZWxldGVGaWxlQWN0aW9uLFxuICBPdmVyd3JpdGVGaWxlQWN0aW9uLFxuICBSZW5hbWVGaWxlQWN0aW9uLFxuICBVbmtub3duQWN0aW9uRXhjZXB0aW9uLFxuICBpc0FjdGlvbixcbn0gZnJvbSAnLi4vdHJlZS9hY3Rpb24nO1xuaW1wb3J0IHtUcmVlfSBmcm9tICcuLi90cmVlL2ludGVyZmFjZSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBTaW5rIHtcbiAgcHJlQ29tbWl0QWN0aW9uOiAoYWN0aW9uOiBBY3Rpb24pID0+IHZvaWQgfCBQcm9taXNlTGlrZTxBY3Rpb24+IHwgT2JzZXJ2YWJsZTxBY3Rpb24+IHwgQWN0aW9uO1xuICBwcmVDb21taXQ6ICgpID0+IHZvaWQgfCBPYnNlcnZhYmxlPHZvaWQ+O1xuICBwb3N0Q29tbWl0OiAoKSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBjb21taXQodHJlZTogVHJlZSk6IE9ic2VydmFibGU8dm9pZD47XG59XG5cblxuY29uc3QgTm9vcCA9IGZ1bmN0aW9uKCkge307XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNpbXBsZVNpbmtCYXNlIGltcGxlbWVudHMgU2luayB7XG4gIHByZUNvbW1pdEFjdGlvbjogKGFjdGlvbjogQWN0aW9uKSA9PiB2b2lkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByb21pc2VMaWtlPEFjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE9ic2VydmFibGU8QWN0aW9uPiA9IE5vb3A7XG4gIHBvc3RDb21taXRBY3Rpb246IChhY3Rpb246IEFjdGlvbikgPT4gdm9pZCB8IE9ic2VydmFibGU8dm9pZD4gPSBOb29wO1xuICBwcmVDb21taXQ6ICgpID0+IHZvaWQgfCBPYnNlcnZhYmxlPHZvaWQ+ID0gTm9vcDtcbiAgcG9zdENvbW1pdDogKCkgPT4gdm9pZCB8IE9ic2VydmFibGU8dm9pZD4gPSBOb29wO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfdmFsaWRhdGVGaWxlRXhpc3RzKHA6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9vdmVyd3JpdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9jcmVhdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF9yZW5hbWVGaWxlKHBhdGg6IHN0cmluZywgdG86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZGVsZXRlRmlsZShwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfZG9uZSgpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIHByb3RlY3RlZCBfZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbihwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbjogT3ZlcndyaXRlRmlsZUFjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpXG4gICAgICAubWFwKGIgPT4geyBpZiAoIWIpIHsgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7IH0gfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb246IENyZWF0ZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKVxuICAgICAgLm1hcChiID0+IHsgaWYgKGIpIHsgdGhpcy5fZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7IH0gfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZVJlbmFtZUFjdGlvbihhY3Rpb246IFJlbmFtZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKVxuICAgICAgLm1hcChiID0+IHsgaWYgKCFiKSB7IHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOyB9IH0pXG4gICAgICAubWVyZ2VNYXAoKCkgPT4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi50bykpXG4gICAgICAubWFwKGIgPT4geyBpZiAoYikgeyB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi50byk7IH0gfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZURlbGV0ZUFjdGlvbihhY3Rpb246IERlbGV0ZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKVxuICAgICAgLm1hcChiID0+IHsgaWYgKCFiKSB7IHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOyB9IH0pO1xuICB9XG5cbiAgdmFsaWRhdGVTaW5nbGVBY3Rpb24oYWN0aW9uOiBBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7XG4gICAgICBjYXNlICdvJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICBjYXNlICdjJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICBjYXNlICdyJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbik7XG4gICAgICBjYXNlICdkJzogcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRGVsZXRlQWN0aW9uKGFjdGlvbik7XG4gICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgVW5rbm93bkFjdGlvbkV4Y2VwdGlvbihhY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIGNvbW1pdFNpbmdsZUFjdGlvbihhY3Rpb246IEFjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KClcbiAgICAgIC5jb25jYXQobmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVNpbmdsZUFjdGlvbihhY3Rpb24pLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICB9KSlcbiAgICAgIC5jb25jYXQobmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgICBsZXQgY29tbWl0dGVkID0gbnVsbDtcbiAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkge1xuICAgICAgICAgIGNhc2UgJ28nOiBjb21taXR0ZWQgPSB0aGlzLl9vdmVyd3JpdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2MnOiBjb21taXR0ZWQgPSB0aGlzLl9jcmVhdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3InOiBjb21taXR0ZWQgPSB0aGlzLl9yZW5hbWVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8pOyBicmVhaztcbiAgICAgICAgICBjYXNlICdkJzogY29tbWl0dGVkID0gdGhpcy5fZGVsZXRlRmlsZShhY3Rpb24ucGF0aCk7IGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbW1pdHRlZCkge1xuICAgICAgICAgIGNvbW1pdHRlZC5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgfVxuXG4gIGNvbW1pdCh0cmVlOiBUcmVlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgYWN0aW9ucyA9IE9ic2VydmFibGUuZnJvbSh0cmVlLmFjdGlvbnMpO1xuXG4gICAgcmV0dXJuICh0aGlzLnByZUNvbW1pdCgpIHx8IE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKSlcbiAgICAgIC5jb25jYXQoT2JzZXJ2YWJsZS5kZWZlcigoKSA9PiBhY3Rpb25zKSlcbiAgICAgIC5jb25jYXRNYXAoKGFjdGlvbjogQWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IG1heWJlQWN0aW9uID0gdGhpcy5wcmVDb21taXRBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgaWYgKCFtYXliZUFjdGlvbikge1xuICAgICAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBY3Rpb24obWF5YmVBY3Rpb24pKSB7XG4gICAgICAgICAgcmV0dXJuIE9ic2VydmFibGUub2YobWF5YmVBY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBtYXliZUFjdGlvbjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5tZXJnZU1hcCgoYWN0aW9uOiBBY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tbWl0U2luZ2xlQWN0aW9uKGFjdGlvbikuaWdub3JlRWxlbWVudHMoKS5jb25jYXQoW2FjdGlvbl0pO1xuICAgICAgfSlcbiAgICAgIC5tZXJnZU1hcCgoYWN0aW9uOiBBY3Rpb24pID0+IHRoaXMucG9zdENvbW1pdEFjdGlvbihhY3Rpb24pIHx8IE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKSlcbiAgICAgIC5jb25jYXQoT2JzZXJ2YWJsZS5kZWZlcigoKSA9PiB0aGlzLl9kb25lKCkpKVxuICAgICAgLmNvbmNhdChPYnNlcnZhYmxlLmRlZmVyKCgpID0+IHRoaXMucG9zdENvbW1pdCgpIHx8IE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKSkpO1xuICB9XG59XG4iXX0=

@@ -9,13 +9,13 @@ /// <reference types="node" />

*/
import { SimpleSinkBase } from './sink';
import { CreateFileAction } from '../tree/action';
import { UpdateBuffer } from '../utility/update-buffer';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/concat';
import 'rxjs/add/observable/empty';
import 'rxjs/add/observable/merge';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/merge';
import 'rxjs/add/observable/concat';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/reduce';
import { CreateFileAction } from '../tree/action';
import { UpdateBuffer } from '../utility/update-buffer';
import { SimpleSinkBase } from './sink';
export interface VirtualFileSystemSinkHost {

@@ -42,3 +42,3 @@ write(path: string, content: Buffer): Observable<void>;

protected _deleteFile(path: string): Observable<void>;
_done(): Observable<any>;
_done(): Observable<void>;
}

@@ -10,13 +10,13 @@ "use strict";

*/
const sink_1 = require("./sink");
const exception_1 = require("../exception/exception");
const update_buffer_1 = require("../utility/update-buffer");
const Observable_1 = require("rxjs/Observable");
require("rxjs/add/observable/concat");
require("rxjs/add/observable/empty");
require("rxjs/add/observable/merge");
require("rxjs/add/observable/of");
require("rxjs/add/observable/merge");
require("rxjs/add/observable/concat");
require("rxjs/add/operator/do");
require("rxjs/add/operator/map");
require("rxjs/add/operator/reduce");
const exception_1 = require("../exception/exception");
const update_buffer_1 = require("../utility/update-buffer");
const sink_1 = require("./sink");
class VirtualFileSystemSink extends sink_1.SimpleSinkBase {

@@ -92,2 +92,2 @@ constructor(_host, _force = false) {

exports.VirtualFileSystemSink = VirtualFileSystemSink;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvdmlydHVhbC1maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsaUNBQXNDO0FBRXRDLHNEQUFpRTtBQUNqRSw0REFBc0Q7QUFFdEQsZ0RBQTJDO0FBQzNDLHFDQUFtQztBQUNuQyxrQ0FBZ0M7QUFDaEMscUNBQW1DO0FBQ25DLHNDQUFvQztBQUNwQyxnQ0FBOEI7QUFDOUIsaUNBQStCO0FBQy9CLG9DQUFrQztBQVdsQywyQkFBNEMsU0FBUSxxQkFBYztJQU1oRSxZQUFzQixLQUFnQyxFQUFZLFNBQVMsS0FBSztRQUFJLEtBQUssRUFBRSxDQUFDO1FBQXRFLFVBQUssR0FBTCxLQUFLLENBQTJCO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUx0RSxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFFa0MsQ0FBQztJQUVwRixxQkFBcUIsQ0FBQyxNQUF3QjtRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyx1QkFBVSxDQUFDLEtBQUssRUFBUSxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRVMsU0FBUyxDQUFDLENBQVM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FB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QUFDLE1BQU0sQ0FDdEIsdUJBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdDLHVCQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQzNFLHVCQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDOUQsdUJBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNoRCxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FDNUUsQ0FBQyxNQUFNLENBQUMsUUFBTyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUEzRUQsc0RBMkVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtTaW1wbGVTaW5rQmFzZX0gZnJvbSAnLi9zaW5rJztcbmltcG9ydCB7Q3JlYXRlRmlsZUFjdGlvbn0gZnJvbSAnLi4vdHJlZS9hY3Rpb24nO1xuaW1wb3J0IHtGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7VXBkYXRlQnVmZmVyfSBmcm9tICcuLi91dGlsaXR5L3VwZGF0ZS1idWZmZXInO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgJ3J4anMvYWRkL29ic2VydmFibGUvZW1wdHknO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9tZXJnZSc7XG5pbXBvcnQgJ3J4anMvYWRkL29ic2VydmFibGUvY29uY2F0JztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvZG8nO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9tYXAnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9yZWR1Y2UnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbEZpbGVTeXN0ZW1TaW5rSG9zdCB7XG4gIHdyaXRlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG4gIGV4aXN0cyhwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZW5hbWUocGF0aDogc3RyaW5nLCB0bzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlydHVhbEZpbGVTeXN0ZW1TaW5rIGV4dGVuZHMgU2ltcGxlU2lua0Jhc2Uge1xuICBwcm90ZWN0ZWQgX2ZpbGVzVG9EZWxldGUgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIF9maWxlc1RvUmVuYW1lID0gbmV3IFNldDxbc3RyaW5nLCBzdHJpbmddPigpO1xuICBwcm90ZWN0ZWQgX2ZpbGVzVG9DcmVhdGUgPSBuZXcgTWFwPHN0cmluZywgVXBkYXRlQnVmZmVyPigpO1xuICBwcm90ZWN0ZWQgX2ZpbGVzVG9VcGRhdGUgPSBuZXcgTWFwPHN0cmluZywgVXBkYXRlQnVmZmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaG9zdDogVmlydHVhbEZpbGVTeXN0ZW1TaW5rSG9zdCwgcHJvdGVjdGVkIF9mb3JjZSA9IGZhbHNlKSB7IHN1cGVyKCk7IH1cblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbjogQ3JlYXRlRmlsZUFjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JjZSA/IE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKSA6IHN1cGVyLl92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9yZWFkRmlsZShwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVwZGF0ZUJ1ZmZlcj4ge1xuICAgIGNvbnN0IG1heWJlQ3JlYXRlID0gdGhpcy5fZmlsZXNUb0NyZWF0ZS5nZXQocCk7XG4gICAgaWYgKG1heWJlQ3JlYXRlKSB7XG4gICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZihtYXliZUNyZWF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF5YmVVcGRhdGUgPSB0aGlzLl9maWxlc1RvVXBkYXRlLmdldChwKTtcbiAgICBpZiAobWF5YmVVcGRhdGUpIHtcbiAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKG1heWJlVXBkYXRlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdmFsaWRhdGVGaWxlRXhpc3RzKHA6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhwKSB8fCB0aGlzLl9maWxlc1RvVXBkYXRlLmhhcyhwKSkge1xuICAgICAgcmV0dXJuIE9ic2VydmFibGUub2YodHJ1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyhwKSkge1xuICAgICAgcmV0dXJuIE9ic2VydmFibGUub2YoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5faG9zdC5leGlzdHMocCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9vdmVyd3JpdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5zZXQocGF0aCwgbmV3IFVwZGF0ZUJ1ZmZlcihjb250ZW50KSk7XG4gICAgcmV0dXJuIE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2NyZWF0ZUZpbGUocGF0aDogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLnNldChwYXRoLCBuZXcgVXBkYXRlQnVmZmVyKGNvbnRlbnQpKTtcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5lbXB0eTx2b2lkPigpO1xuICB9XG4gIHByb3RlY3RlZCBfcmVuYW1lRmlsZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmFkZChbZnJvbSwgdG9dKTtcblxuICAgIHJldHVybiB0aGlzLl9yZWFkRmlsZShmcm9tKVxuICAgICAgLmRvKGJ1ZmZlciA9PiB0aGlzLl9maWxlc1RvQ3JlYXRlLnNldCh0bywgYnVmZmVyKSlcbiAgICAgIC5kbygoKSA9PiB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChmcm9tKSlcbiAgICAgIC5tYXAoKCkgPT4ge30pO1xuICB9XG4gIHByb3RlY3RlZCBfZGVsZXRlRmlsZShwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHtcbiAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuZGVsZXRlKHBhdGgpO1xuICAgICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5kZWxldGUocGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuYWRkKHBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5lbXB0eTx2b2lkPigpO1xuICB9XG5cbiAgX2RvbmUoKSB7XG4gICAgLy8gUmVhbGx5IGNvbW1pdCBldmVyeXRoaW5nIHRvIHRoZSBhY3R1YWwgZmlsZXN5c3RlbS5cbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jb25jYXQ8YW55PihcbiAgICAgIE9ic2VydmFibGUuZnJvbShbLi4udGhpcy5fZmlsZXNUb0RlbGV0ZS52YWx1ZXMoKV0pXG4gICAgICAgIC5jb25jYXRNYXAocGF0aCA9PiB0aGlzLl9ob3N0LmRlbGV0ZShwYXRoKSksXG4gICAgICBPYnNlcnZhYmxlLmZyb20oWy4uLnRoaXMuX2ZpbGVzVG9DcmVhdGUuZW50cmllcygpXSlcbiAgICAgICAgLmNvbmNhdE1hcCgoW3BhdGgsIGJ1ZmZlcl0pID0+IHRoaXMuX2hvc3Qud3JpdGUocGF0aCwgYnVmZmVyLmdlbmVyYXRlKCkpKSxcbiAgICAgIE9ic2VydmFibGUuZnJvbShbLi4udGhpcy5fZmlsZXNUb1JlbmFtZS5lbnRyaWVzKCldKVxuICAgICAgICAuY29uY2F0TWFwKChbXywgW3BhdGgsIHRvXV0pID0+IHRoaXMuX2hvc3QucmVuYW1lKHBhdGgsIHRvKSksXG4gICAgICBPYnNlcnZhYmxlLmZyb20oWy4uLnRoaXMuX2ZpbGVzVG9VcGRhdGUuZW50cmllcygpXSlcbiAgICAgICAgLmNvbmNhdE1hcCgoW3BhdGgsIGJ1ZmZlcl0pID0+IHRoaXMuX2hvc3Qud3JpdGUocGF0aCwgYnVmZmVyLmdlbmVyYXRlKCkpKVxuICAgICkucmVkdWNlKCgpID0+IHt9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvdmlydHVhbC1maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsZ0RBQTJDO0FBQzNDLHNDQUFvQztBQUNwQyxxQ0FBbUM7QUFDbkMscUNBQW1DO0FBQ25DLGtDQUFnQztBQUNoQyxnQ0FBOEI7QUFDOUIsaUNBQStCO0FBQy9CLG9DQUFrQztBQUNsQyxzREFBaUU7QUFFakUsNERBQXNEO0FBQ3RELGlDQUFzQztBQVd0QywyQkFBNEMsU0FBUSxxQkFBYztJQU1oRSxZQUFzQixLQUFnQyxFQUFZLFNBQVMsS0FBSztRQUFJLEtBQUssRUFBRSxDQUFDO1FBQXRFLFVBQUssR0FBTCxLQUFLLENBQTJCO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUx0RSxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO1FBQ2pELG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFFa0MsQ0FBQztJQUVwRixxQkFBcUIsQ0FBQyxNQUF3QjtRQUN0RCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyx1QkFBVSxDQUFDLEtBQUssRUFBUSxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRVMsU0FBUyxDQUFDLENBQVM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FB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QUFDLE1BQU0sQ0FDdEIsdUJBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdDLHVCQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQzNFLHVCQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDOUQsdUJBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNoRCxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FDNUUsQ0FBQyxNQUFNLENBQUMsUUFBTyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUE5RUQsc0RBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL2NvbmNhdCc7XG5pbXBvcnQgJ3J4anMvYWRkL29ic2VydmFibGUvZW1wdHknO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL21lcmdlJztcbmltcG9ydCAncnhqcy9hZGQvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL2RvJztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvbWFwJztcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvcmVkdWNlJztcbmltcG9ydCB7RmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge0NyZWF0ZUZpbGVBY3Rpb259IGZyb20gJy4uL3RyZWUvYWN0aW9uJztcbmltcG9ydCB7VXBkYXRlQnVmZmVyfSBmcm9tICcuLi91dGlsaXR5L3VwZGF0ZS1idWZmZXInO1xuaW1wb3J0IHtTaW1wbGVTaW5rQmFzZX0gZnJvbSAnLi9zaW5rJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxGaWxlU3lzdGVtU2lua0hvc3Qge1xuICB3cml0ZShwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IEJ1ZmZlcik6IE9ic2VydmFibGU8dm9pZD47XG4gIGRlbGV0ZShwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBleGlzdHMocGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVuYW1lKHBhdGg6IHN0cmluZywgdG86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG59XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZpcnR1YWxGaWxlU3lzdGVtU2luayBleHRlbmRzIFNpbXBsZVNpbmtCYXNlIHtcbiAgcHJvdGVjdGVkIF9maWxlc1RvRGVsZXRlID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBfZmlsZXNUb1JlbmFtZSA9IG5ldyBTZXQ8W3N0cmluZywgc3RyaW5nXT4oKTtcbiAgcHJvdGVjdGVkIF9maWxlc1RvQ3JlYXRlID0gbmV3IE1hcDxzdHJpbmcsIFVwZGF0ZUJ1ZmZlcj4oKTtcbiAgcHJvdGVjdGVkIF9maWxlc1RvVXBkYXRlID0gbmV3IE1hcDxzdHJpbmcsIFVwZGF0ZUJ1ZmZlcj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2hvc3Q6IFZpcnR1YWxGaWxlU3lzdGVtU2lua0hvc3QsIHByb3RlY3RlZCBfZm9yY2UgPSBmYWxzZSkgeyBzdXBlcigpOyB9XG5cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb246IENyZWF0ZUZpbGVBY3Rpb24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9yY2UgPyBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KCkgOiBzdXBlci5fdmFsaWRhdGVDcmVhdGVBY3Rpb24oYWN0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVhZEZpbGUocDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVcGRhdGVCdWZmZXI+IHtcbiAgICBjb25zdCBtYXliZUNyZWF0ZSA9IHRoaXMuX2ZpbGVzVG9DcmVhdGUuZ2V0KHApO1xuICAgIGlmIChtYXliZUNyZWF0ZSkge1xuICAgICAgcmV0dXJuIE9ic2VydmFibGUub2YobWF5YmVDcmVhdGUpO1xuICAgIH1cblxuICAgIGNvbnN0IG1heWJlVXBkYXRlID0gdGhpcy5fZmlsZXNUb1VwZGF0ZS5nZXQocCk7XG4gICAgaWYgKG1heWJlVXBkYXRlKSB7XG4gICAgICByZXR1cm4gT2JzZXJ2YWJsZS5vZihtYXliZVVwZGF0ZSk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRlRmlsZUV4aXN0cyhwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocCkgfHwgdGhpcy5fZmlsZXNUb1VwZGF0ZS5oYXMocCkpIHtcbiAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKHRydWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocCkpIHtcbiAgICAgIHJldHVybiBPYnNlcnZhYmxlLm9mKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2hvc3QuZXhpc3RzKHApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfb3ZlcndyaXRlRmlsZShwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IEJ1ZmZlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuX2ZpbGVzVG9VcGRhdGUuc2V0KHBhdGgsIG5ldyBVcGRhdGVCdWZmZXIoY29udGVudCkpO1xuXG4gICAgcmV0dXJuIE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2NyZWF0ZUZpbGUocGF0aDogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLnNldChwYXRoLCBuZXcgVXBkYXRlQnVmZmVyKGNvbnRlbnQpKTtcblxuICAgIHJldHVybiBPYnNlcnZhYmxlLmVtcHR5PHZvaWQ+KCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9yZW5hbWVGaWxlKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWUuYWRkKFtmcm9tLCB0b10pO1xuXG4gICAgcmV0dXJuIHRoaXMuX3JlYWRGaWxlKGZyb20pXG4gICAgICAuZG8oYnVmZmVyID0+IHRoaXMuX2ZpbGVzVG9DcmVhdGUuc2V0KHRvLCBidWZmZXIpKVxuICAgICAgLmRvKCgpID0+IHRoaXMuX2ZpbGVzVG9EZWxldGUuYWRkKGZyb20pKVxuICAgICAgLm1hcCgoKSA9PiB7fSk7XG4gIH1cbiAgcHJvdGVjdGVkIF9kZWxldGVGaWxlKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhwYXRoKSkge1xuICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5kZWxldGUocGF0aCk7XG4gICAgICB0aGlzLl9maWxlc1RvVXBkYXRlLmRlbGV0ZShwYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5hZGQocGF0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9ic2VydmFibGUuZW1wdHk8dm9pZD4oKTtcbiAgfVxuXG4gIF9kb25lKCkge1xuICAgIC8vIFJlYWxseSBjb21taXQgZXZlcnl0aGluZyB0byB0aGUgYWN0dWFsIGZpbGVzeXN0ZW0uXG4gICAgcmV0dXJuIE9ic2VydmFibGUuY29uY2F0KFxuICAgICAgT2JzZXJ2YWJsZS5mcm9tKFsuLi50aGlzLl9maWxlc1RvRGVsZXRlLnZhbHVlcygpXSlcbiAgICAgICAgLmNvbmNhdE1hcChwYXRoID0+IHRoaXMuX2hvc3QuZGVsZXRlKHBhdGgpKSxcbiAgICAgIE9ic2VydmFibGUuZnJvbShbLi4udGhpcy5fZmlsZXNUb0NyZWF0ZS5lbnRyaWVzKCldKVxuICAgICAgICAuY29uY2F0TWFwKChbcGF0aCwgYnVmZmVyXSkgPT4gdGhpcy5faG9zdC53cml0ZShwYXRoLCBidWZmZXIuZ2VuZXJhdGUoKSkpLFxuICAgICAgT2JzZXJ2YWJsZS5mcm9tKFsuLi50aGlzLl9maWxlc1RvUmVuYW1lLmVudHJpZXMoKV0pXG4gICAgICAgIC5jb25jYXRNYXAoKFtfLCBbcGF0aCwgdG9dXSkgPT4gdGhpcy5faG9zdC5yZW5hbWUocGF0aCwgdG8pKSxcbiAgICAgIE9ic2VydmFibGUuZnJvbShbLi4udGhpcy5fZmlsZXNUb1VwZGF0ZS5lbnRyaWVzKCldKVxuICAgICAgICAuY29uY2F0TWFwKChbcGF0aCwgYnVmZmVyXSkgPT4gdGhpcy5faG9zdC53cml0ZShwYXRoLCBidWZmZXIuZ2VuZXJhdGUoKSkpLFxuICAgICkucmVkdWNlKCgpID0+IHt9KTtcbiAgfVxufVxuIl19

@@ -32,3 +32,3 @@ /// <reference types="node" />

find(predicate: (value: Action) => boolean): Action | null;
forEach(fn: (value: Action, index: number, array: Action[]) => void, thisArg?: any): void;
forEach(fn: (value: Action, index: number, array: Action[]) => void, thisArg?: {}): void;
readonly length: number;

@@ -35,0 +35,0 @@ [Symbol.iterator](): IterableIterator<Action>;

@@ -23,3 +23,3 @@ "use strict";

id: _id++,
parent: this._actions[this._actions.length - 1] || 0
parent: this._actions[this._actions.length - 1] || 0,
}, action));

@@ -85,3 +85,3 @@ }

else if (deleted.has(iAction.path)) {
continue;
// DoNothing
}

@@ -139,2 +139,2 @@ else {

exports.isAction = isAction;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsc0RBQXFEO0FBSXJELDRCQUFvQyxTQUFRLHlCQUFhO0lBQ3ZELFlBQVksTUFBYyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzVFO0FBRkQsd0RBRUM7QUFnQkQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBRVo7SUFBQTtRQUNVLGFBQVEsR0FBYSxFQUFFLENBQUM7SUEyRmxDLENBQUM7SUF6RlcsT0FBTyxDQUFDLE1BQXVCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDL0IsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDckQsRUFBRSxNQUFNLENBQVcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBbUIsRUFBRSxPQUFlO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBbUIsRUFBRSxPQUFlO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBbUIsRUFBRSxFQUFp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QUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQU5ELDRCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7U2NoZW1hdGljUGF0aH0gZnJvbSAnLi4vdXRpbGl0eS9wYXRoJztcblxuXG5leHBvcnQgY2xhc3MgVW5rbm93bkFjdGlvbkV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihhY3Rpb246IEFjdGlvbikgeyBzdXBlcihgVW5rbm93biBhY3Rpb246IFwiJHthY3Rpb24ua2luZH1cIi5gKTsgfVxufVxuXG5cbmV4cG9ydCB0eXBlIEFjdGlvbiA9IENyZWF0ZUZpbGVBY3Rpb25cbiAgICAgICAgICAgICAgICAgICB8IE92ZXJ3cml0ZUZpbGVBY3Rpb25cbiAgICAgICAgICAgICAgICAgICB8IFJlbmFtZUZpbGVBY3Rpb25cbiAgICAgICAgICAgICAgICAgICB8IERlbGV0ZUZpbGVBY3Rpb247XG5cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CYXNlIHtcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgcGFyZW50OiBudW1iZXI7XG4gIHJlYWRvbmx5IHBhdGg6IFNjaGVtYXRpY1BhdGg7XG59XG5cblxubGV0IF9pZCA9IDE7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25MaXN0IGltcGxlbWVudHMgSXRlcmFibGU8QWN0aW9uPiB7XG4gIHByaXZhdGUgX2FjdGlvbnM6IEFjdGlvbltdID0gW107XG5cbiAgcHJvdGVjdGVkIF9hY3Rpb24oYWN0aW9uOiBQYXJ0aWFsPEFjdGlvbj4pIHtcbiAgICB0aGlzLl9hY3Rpb25zLnB1c2goT2JqZWN0LmFzc2lnbih7XG4gICAgICBpZDogX2lkKyssXG4gICAgICBwYXJlbnQ6IHRoaXMuX2FjdGlvbnNbdGhpcy5fYWN0aW9ucy5sZW5ndGggLSAxXSB8fCAwXG4gICAgfSwgYWN0aW9uKSBhcyBBY3Rpb24pO1xuICB9XG5cbiAgY3JlYXRlKHBhdGg6IFNjaGVtYXRpY1BhdGgsIGNvbnRlbnQ6IEJ1ZmZlcikge1xuICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICdjJywgcGF0aCwgY29udGVudCB9KTtcbiAgfVxuICBvdmVyd3JpdGUocGF0aDogU2NoZW1hdGljUGF0aCwgY29udGVudDogQnVmZmVyKSB7XG4gICAgdGhpcy5fYWN0aW9uKHsga2luZDogJ28nLCBwYXRoLCBjb250ZW50IH0pO1xuICB9XG4gIHJlbmFtZShwYXRoOiBTY2hlbWF0aWNQYXRoLCB0bzogU2NoZW1hdGljUGF0aCkge1xuICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICdyJywgcGF0aCwgdG8gfSk7XG4gIH1cbiAgZGVsZXRlKHBhdGg6IFNjaGVtYXRpY1BhdGgpIHtcbiAgICB0aGlzLl9hY3Rpb24oeyBraW5kOiAnZCcsIHBhdGggfSk7XG4gIH1cblxuXG4gIG9wdGltaXplKCkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLl9hY3Rpb25zO1xuICAgIGNvbnN0IGRlbGV0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLl9hY3Rpb25zID0gW107XG5cbiAgICAvLyBIYW5kbGVzIGZpbGVzIHdlIGNyZWF0ZS5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGlBY3Rpb24gPSBhY3Rpb25zW2ldO1xuICAgICAgaWYgKGlBY3Rpb24ua2luZCA9PSAnYycpIHtcbiAgICAgICAgbGV0IHBhdGggPSBpQWN0aW9uLnBhdGg7XG4gICAgICAgIGxldCBjb250ZW50ID0gaUFjdGlvbi5jb250ZW50O1xuICAgICAgICBsZXQgdG9EZWxldGUgPSBmYWxzZTtcbiAgICAgICAgZGVsZXRlZC5kZWxldGUocGF0aCk7XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgYWN0aW9ucy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGFjdGlvbnNbal07XG4gICAgICAgICAgaWYgKHBhdGggPT0gYWN0aW9uLnBhdGgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLmtpbmQpIHtcbiAgICAgICAgICAgICAgY2FzZSAnYyc6IGNvbnRlbnQgPSBhY3Rpb24uY29udGVudDsgYWN0aW9ucy5zcGxpY2Uoai0tLCAxKTsgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ28nOiBjb250ZW50ID0gYWN0aW9uLmNvbnRlbnQ7IGFjdGlvbnMuc3BsaWNlKGotLSwgMSk7IGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdyJzogcGF0aCA9IGFjdGlvbi50bzsgYWN0aW9ucy5zcGxpY2Uoai0tLCAxKTsgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ2QnOiB0b0RlbGV0ZSA9IHRydWU7IGFjdGlvbnMuc3BsaWNlKGotLSwgMSk7IGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodG9EZWxldGUpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdG9EZWxldGUpIHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGVkLmFkZChwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkZWxldGVkLmhhcyhpQWN0aW9uLnBhdGgpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChpQWN0aW9uLmtpbmQpIHtcbiAgICAgICAgICBjYXNlICdvJzogdGhpcy5vdmVyd3JpdGUoaUFjdGlvbi5wYXRoLCBpQWN0aW9uLmNvbnRlbnQpOyBicmVhaztcbiAgICAgICAgICBjYXNlICdyJzogdGhpcy5yZW5hbWUoaUFjdGlvbi5wYXRoLCBpQWN0aW9uLnRvKTsgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZCc6IHRoaXMuZGVsZXRlKGlBY3Rpb24ucGF0aCk7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVzaChhY3Rpb246IEFjdGlvbikgeyB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTsgfVxuICBnZXQoaTogbnVtYmVyKSB7IHJldHVybiB0aGlzLl9hY3Rpb25zW2ldOyB9XG4gIGhhcyhhY3Rpb246IEFjdGlvbikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYSA9IHRoaXMuX2FjdGlvbnNbaV07XG4gICAgICBpZiAoYS5pZCA9PSBhY3Rpb24uaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoYS5pZCA+IGFjdGlvbi5pZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBBY3Rpb24pID0+IGJvb2xlYW4pOiBBY3Rpb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maW5kKHByZWRpY2F0ZSkgfHwgbnVsbDtcbiAgfVxuICBmb3JFYWNoKGZuOiAodmFsdWU6IEFjdGlvbiwgaW5kZXg6IG51bWJlciwgYXJyYXk6IEFjdGlvbltdKSA9PiB2b2lkLCB0aGlzQXJnPzogYW55KSB7XG4gICAgdGhpcy5fYWN0aW9ucy5mb3JFYWNoKGZuLCB0aGlzQXJnKTtcbiAgfVxuICBnZXQgbGVuZ3RoKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9ucy5sZW5ndGg7IH1cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7IHJldHVybiB0aGlzLl9hY3Rpb25zW1N5bWJvbC5pdGVyYXRvcl0oKTsgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRBY3Rpb24oYWN0aW9uOiBBY3Rpb24pOiBhY3Rpb24gaXMgQ3JlYXRlRmlsZUFjdGlvbiB8IE92ZXJ3cml0ZUZpbGVBY3Rpb24ge1xuICByZXR1cm4gYWN0aW9uLmtpbmQgPT0gJ2MnIHx8IGFjdGlvbi5raW5kID09ICdvJztcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gaXNBY3Rpb24oYWN0aW9uOiBhbnkpOiBhY3Rpb24gaXMgQWN0aW9uIHtcbiAgY29uc3Qga2luZCA9IGFjdGlvbiAmJiBhY3Rpb24ua2luZDtcbiAgcmV0dXJuIGFjdGlvbiAhPT0gbnVsbFxuICAgICAgJiYgdHlwZW9mIGFjdGlvbi5pZCA9PSAnbnVtYmVyJ1xuICAgICAgJiYgdHlwZW9mIGFjdGlvbi5wYXRoID09ICdzdHJpbmcnXG4gICAgICAmJiAoa2luZCA9PSAnYycgfHwga2luZCA9PSAnbycgfHwga2luZCA9PSAncicgfHwga2luZCA9PSAnZCcpO1xufVxuXG5cbi8vIENyZWF0ZSBhIGZpbGUuIElmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzIHRoZW4gdGhpcyBpcyBhbiBlcnJvci5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRmlsZUFjdGlvbiBleHRlbmRzIEFjdGlvbkJhc2Uge1xuICByZWFkb25seSBraW5kOiAnYyc7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEJ1ZmZlcjtcbn1cblxuLy8gT3ZlcndyaXRlIGEgZmlsZS4gSWYgdGhlIGZpbGUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCwgdGhpcyBpcyBhbiBlcnJvci5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcndyaXRlRmlsZUFjdGlvbiBleHRlbmRzIEFjdGlvbkJhc2Uge1xuICByZWFkb25seSBraW5kOiAnbyc7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEJ1ZmZlcjtcbn1cblxuLy8gTW92ZSBhIGZpbGUgZnJvbSBvbmUgcGF0aCB0byBhbm90aGVyLiBJZiB0aGUgc291cmNlIGZpbGVzIGRvZXMgbm90IGV4aXN0LCB0aGlzIGlzIGFuIGVycm9yLlxuLy8gSWYgdGhlIHRhcmdldCBwYXRoIGFscmVhZHkgZXhpc3RzLCB0aGlzIGlzIGFuIGVycm9yLlxuZXhwb3J0IGludGVyZmFjZSBSZW5hbWVGaWxlQWN0aW9uIGV4dGVuZHMgQWN0aW9uQmFzZSB7XG4gIHJlYWRvbmx5IGtpbmQ6ICdyJztcbiAgcmVhZG9ubHkgdG86IFNjaGVtYXRpY1BhdGg7XG59XG5cbi8vIERlbGV0ZSBhIGZpbGUuIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aGlzIGlzIGFuIGVycm9yLlxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVGaWxlQWN0aW9uIGV4dGVuZHMgQWN0aW9uQmFzZSB7XG4gIHJlYWRvbmx5IGtpbmQ6ICdkJztcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsc0RBQXFEO0FBSXJELDRCQUFvQyxTQUFRLHlCQUFhO0lBQ3ZELFlBQVksTUFBYyxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzVFO0FBRkQsd0RBRUM7QUFnQkQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBRVo7SUFBQTtRQUNVLGFBQVEsR0FBYSxFQUFFLENBQUM7SUE0RmxDLENBQUM7SUExRlcsT0FBTyxDQUFDLE1BQXVCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDL0IsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDckQsRUFBRSxNQUFNLENBQVcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBbUIsRUFBRSxPQUFlO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBbUIsRUFBRSxPQUFlO1FBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBbUIsRUFBRSxFQUFp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QUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFQRCw0QkFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge1NjaGVtYXRpY1BhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5cblxuZXhwb3J0IGNsYXNzIFVua25vd25BY3Rpb25FeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoYWN0aW9uOiBBY3Rpb24pIHsgc3VwZXIoYFVua25vd24gYWN0aW9uOiBcIiR7YWN0aW9uLmtpbmR9XCIuYCk7IH1cbn1cblxuXG5leHBvcnQgdHlwZSBBY3Rpb24gPSBDcmVhdGVGaWxlQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgfCBPdmVyd3JpdGVGaWxlQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgfCBSZW5hbWVGaWxlQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgfCBEZWxldGVGaWxlQWN0aW9uO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQmFzZSB7XG4gIHJlYWRvbmx5IGlkOiBudW1iZXI7XG4gIHJlYWRvbmx5IHBhcmVudDogbnVtYmVyO1xuICByZWFkb25seSBwYXRoOiBTY2hlbWF0aWNQYXRoO1xufVxuXG5cbmxldCBfaWQgPSAxO1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uTGlzdCBpbXBsZW1lbnRzIEl0ZXJhYmxlPEFjdGlvbj4ge1xuICBwcml2YXRlIF9hY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBfYWN0aW9uKGFjdGlvbjogUGFydGlhbDxBY3Rpb24+KSB7XG4gICAgdGhpcy5fYWN0aW9ucy5wdXNoKE9iamVjdC5hc3NpZ24oe1xuICAgICAgaWQ6IF9pZCsrLFxuICAgICAgcGFyZW50OiB0aGlzLl9hY3Rpb25zW3RoaXMuX2FjdGlvbnMubGVuZ3RoIC0gMV0gfHwgMCxcbiAgICB9LCBhY3Rpb24pIGFzIEFjdGlvbik7XG4gIH1cblxuICBjcmVhdGUocGF0aDogU2NoZW1hdGljUGF0aCwgY29udGVudDogQnVmZmVyKSB7XG4gICAgdGhpcy5fYWN0aW9uKHsga2luZDogJ2MnLCBwYXRoLCBjb250ZW50IH0pO1xuICB9XG4gIG92ZXJ3cml0ZShwYXRoOiBTY2hlbWF0aWNQYXRoLCBjb250ZW50OiBCdWZmZXIpIHtcbiAgICB0aGlzLl9hY3Rpb24oeyBraW5kOiAnbycsIHBhdGgsIGNvbnRlbnQgfSk7XG4gIH1cbiAgcmVuYW1lKHBhdGg6IFNjaGVtYXRpY1BhdGgsIHRvOiBTY2hlbWF0aWNQYXRoKSB7XG4gICAgdGhpcy5fYWN0aW9uKHsga2luZDogJ3InLCBwYXRoLCB0byB9KTtcbiAgfVxuICBkZWxldGUocGF0aDogU2NoZW1hdGljUGF0aCkge1xuICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICdkJywgcGF0aCB9KTtcbiAgfVxuXG5cbiAgb3B0aW1pemUoKSB7XG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuX2FjdGlvbnM7XG4gICAgY29uc3QgZGVsZXRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHRoaXMuX2FjdGlvbnMgPSBbXTtcblxuICAgIC8vIEhhbmRsZXMgZmlsZXMgd2UgY3JlYXRlLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaUFjdGlvbiA9IGFjdGlvbnNbaV07XG4gICAgICBpZiAoaUFjdGlvbi5raW5kID09ICdjJykge1xuICAgICAgICBsZXQgcGF0aCA9IGlBY3Rpb24ucGF0aDtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBpQWN0aW9uLmNvbnRlbnQ7XG4gICAgICAgIGxldCB0b0RlbGV0ZSA9IGZhbHNlO1xuICAgICAgICBkZWxldGVkLmRlbGV0ZShwYXRoKTtcblxuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBhY3Rpb25zLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9uc1tqXTtcbiAgICAgICAgICBpZiAocGF0aCA9PSBhY3Rpb24ucGF0aCkge1xuICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkge1xuICAgICAgICAgICAgICBjYXNlICdjJzogY29udGVudCA9IGFjdGlvbi5jb250ZW50OyBhY3Rpb25zLnNwbGljZShqLS0sIDEpOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSAnbyc6IGNvbnRlbnQgPSBhY3Rpb24uY29udGVudDsgYWN0aW9ucy5zcGxpY2Uoai0tLCAxKTsgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ3InOiBwYXRoID0gYWN0aW9uLnRvOyBhY3Rpb25zLnNwbGljZShqLS0sIDEpOyBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSAnZCc6IHRvRGVsZXRlID0gdHJ1ZTsgYWN0aW9ucy5zcGxpY2Uoai0tLCAxKTsgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0b0RlbGV0ZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0b0RlbGV0ZSkge1xuICAgICAgICAgIHRoaXMuY3JlYXRlKHBhdGgsIGNvbnRlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZWQuYWRkKHBhdGgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRlbGV0ZWQuaGFzKGlBY3Rpb24ucGF0aCkpIHtcbiAgICAgICAgLy8gRG9Ob3RoaW5nXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGlBY3Rpb24ua2luZCkge1xuICAgICAgICAgIGNhc2UgJ28nOiB0aGlzLm92ZXJ3cml0ZShpQWN0aW9uLnBhdGgsIGlBY3Rpb24uY29udGVudCk7IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3InOiB0aGlzLnJlbmFtZShpQWN0aW9uLnBhdGgsIGlBY3Rpb24udG8pOyBicmVhaztcbiAgICAgICAgICBjYXNlICdkJzogdGhpcy5kZWxldGUoaUFjdGlvbi5wYXRoKTsgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdXNoKGFjdGlvbjogQWN0aW9uKSB7IHRoaXMuX2FjdGlvbnMucHVzaChhY3Rpb24pOyB9XG4gIGdldChpOiBudW1iZXIpIHsgcmV0dXJuIHRoaXMuX2FjdGlvbnNbaV07IH1cbiAgaGFzKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhID0gdGhpcy5fYWN0aW9uc1tpXTtcbiAgICAgIGlmIChhLmlkID09IGFjdGlvbi5pZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChhLmlkID4gYWN0aW9uLmlkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZmluZChwcmVkaWNhdGU6ICh2YWx1ZTogQWN0aW9uKSA9PiBib29sZWFuKTogQWN0aW9uIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMuZmluZChwcmVkaWNhdGUpIHx8IG51bGw7XG4gIH1cbiAgZm9yRWFjaChmbjogKHZhbHVlOiBBY3Rpb24sIGluZGV4OiBudW1iZXIsIGFycmF5OiBBY3Rpb25bXSkgPT4gdm9pZCwgdGhpc0FyZz86IHt9KSB7XG4gICAgdGhpcy5fYWN0aW9ucy5mb3JFYWNoKGZuLCB0aGlzQXJnKTtcbiAgfVxuICBnZXQgbGVuZ3RoKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9ucy5sZW5ndGg7IH1cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7IHJldHVybiB0aGlzLl9hY3Rpb25zW1N5bWJvbC5pdGVyYXRvcl0oKTsgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRBY3Rpb24oYWN0aW9uOiBBY3Rpb24pOiBhY3Rpb24gaXMgQ3JlYXRlRmlsZUFjdGlvbiB8IE92ZXJ3cml0ZUZpbGVBY3Rpb24ge1xuICByZXR1cm4gYWN0aW9uLmtpbmQgPT0gJ2MnIHx8IGFjdGlvbi5raW5kID09ICdvJztcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gaXNBY3Rpb24oYWN0aW9uOiBhbnkpOiBhY3Rpb24gaXMgQWN0aW9uIHsgIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tYW55XG4gIGNvbnN0IGtpbmQgPSBhY3Rpb24gJiYgYWN0aW9uLmtpbmQ7XG5cbiAgcmV0dXJuIGFjdGlvbiAhPT0gbnVsbFxuICAgICAgJiYgdHlwZW9mIGFjdGlvbi5pZCA9PSAnbnVtYmVyJ1xuICAgICAgJiYgdHlwZW9mIGFjdGlvbi5wYXRoID09ICdzdHJpbmcnXG4gICAgICAmJiAoa2luZCA9PSAnYycgfHwga2luZCA9PSAnbycgfHwga2luZCA9PSAncicgfHwga2luZCA9PSAnZCcpO1xufVxuXG5cbi8vIENyZWF0ZSBhIGZpbGUuIElmIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzIHRoZW4gdGhpcyBpcyBhbiBlcnJvci5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRmlsZUFjdGlvbiBleHRlbmRzIEFjdGlvbkJhc2Uge1xuICByZWFkb25seSBraW5kOiAnYyc7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEJ1ZmZlcjtcbn1cblxuLy8gT3ZlcndyaXRlIGEgZmlsZS4gSWYgdGhlIGZpbGUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCwgdGhpcyBpcyBhbiBlcnJvci5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcndyaXRlRmlsZUFjdGlvbiBleHRlbmRzIEFjdGlvbkJhc2Uge1xuICByZWFkb25seSBraW5kOiAnbyc7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEJ1ZmZlcjtcbn1cblxuLy8gTW92ZSBhIGZpbGUgZnJvbSBvbmUgcGF0aCB0byBhbm90aGVyLiBJZiB0aGUgc291cmNlIGZpbGVzIGRvZXMgbm90IGV4aXN0LCB0aGlzIGlzIGFuIGVycm9yLlxuLy8gSWYgdGhlIHRhcmdldCBwYXRoIGFscmVhZHkgZXhpc3RzLCB0aGlzIGlzIGFuIGVycm9yLlxuZXhwb3J0IGludGVyZmFjZSBSZW5hbWVGaWxlQWN0aW9uIGV4dGVuZHMgQWN0aW9uQmFzZSB7XG4gIHJlYWRvbmx5IGtpbmQ6ICdyJztcbiAgcmVhZG9ubHkgdG86IFNjaGVtYXRpY1BhdGg7XG59XG5cbi8vIERlbGV0ZSBhIGZpbGUuIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aGlzIGlzIGFuIGVycm9yLlxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVGaWxlQWN0aW9uIGV4dGVuZHMgQWN0aW9uQmFzZSB7XG4gIHJlYWRvbmx5IGtpbmQ6ICdkJztcbn1cbiJdfQ==

@@ -9,4 +9,4 @@ /// <reference types="node" />

*/
import { SchematicPath } from '../utility/path';
import { FileEntry } from './interface';
import { SchematicPath } from '../utility/path';
export declare class SimpleFileEntry implements FileEntry {

@@ -13,0 +13,0 @@ private _path;

@@ -22,2 +22,2 @@ "use strict";

exports.LazyFileEntry = LazyFileEntry;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnkuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBO0lBQ0UsWUFBb0IsS0FBb0IsRUFBVSxRQUFnQjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUFHLENBQUM7SUFFdEUsSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLElBQUksT0FBTyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztDQUN4QztBQUxELDBDQUtDO0FBR0Q7SUFHRSxZQUFvQixLQUFvQixFQUFVLEtBQXVDO1FBQXJFLFVBQUssR0FBTCxLQUFLLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFrQztRQUZqRixhQUFRLEdBQWtCLElBQUksQ0FBQztJQUVxRCxDQUFDO0lBRTdGLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFJLE9BQU8sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDcEY7QUFQRCxzQ0FPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZUVudHJ5fSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQge1NjaGVtYXRpY1BhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5cblxuZXhwb3J0IGNsYXNzIFNpbXBsZUZpbGVFbnRyeSBpbXBsZW1lbnRzIEZpbGVFbnRyeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BhdGg6IFNjaGVtYXRpY1BhdGgsIHByaXZhdGUgX2NvbnRlbnQ6IEJ1ZmZlcikge31cblxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH1cbiAgZ2V0IGNvbnRlbnQoKSB7IHJldHVybiB0aGlzLl9jb250ZW50OyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIExhenlGaWxlRW50cnkgaW1wbGVtZW50cyBGaWxlRW50cnkge1xuICBwcml2YXRlIF9jb250ZW50OiBCdWZmZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wYXRoOiBTY2hlbWF0aWNQYXRoLCBwcml2YXRlIF9sb2FkOiAocGF0aD86IFNjaGVtYXRpY1BhdGgpID0+IEJ1ZmZlcikge31cblxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH1cbiAgZ2V0IGNvbnRlbnQoKSB7IHJldHVybiB0aGlzLl9jb250ZW50IHx8ICh0aGlzLl9jb250ZW50ID0gdGhpcy5fbG9hZCh0aGlzLl9wYXRoKSk7IH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnkuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBO0lBQ0UsWUFBb0IsS0FBb0IsRUFBVSxRQUFnQjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUFHLENBQUM7SUFFdEUsSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLElBQUksT0FBTyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztDQUN4QztBQUxELDBDQUtDO0FBR0Q7SUFHRSxZQUFvQixLQUFvQixFQUFVLEtBQXVDO1FBQXJFLFVBQUssR0FBTCxLQUFLLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFrQztRQUZqRixhQUFRLEdBQWtCLElBQUksQ0FBQztJQUVxRCxDQUFDO0lBRTdGLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFJLE9BQU8sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDcEY7QUFQRCxzQ0FPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7U2NoZW1hdGljUGF0aH0gZnJvbSAnLi4vdXRpbGl0eS9wYXRoJztcbmltcG9ydCB7RmlsZUVudHJ5fSBmcm9tICcuL2ludGVyZmFjZSc7XG5cblxuZXhwb3J0IGNsYXNzIFNpbXBsZUZpbGVFbnRyeSBpbXBsZW1lbnRzIEZpbGVFbnRyeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BhdGg6IFNjaGVtYXRpY1BhdGgsIHByaXZhdGUgX2NvbnRlbnQ6IEJ1ZmZlcikge31cblxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH1cbiAgZ2V0IGNvbnRlbnQoKSB7IHJldHVybiB0aGlzLl9jb250ZW50OyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIExhenlGaWxlRW50cnkgaW1wbGVtZW50cyBGaWxlRW50cnkge1xuICBwcml2YXRlIF9jb250ZW50OiBCdWZmZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wYXRoOiBTY2hlbWF0aWNQYXRoLCBwcml2YXRlIF9sb2FkOiAocGF0aD86IFNjaGVtYXRpY1BhdGgpID0+IEJ1ZmZlcikge31cblxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH1cbiAgZ2V0IGNvbnRlbnQoKSB7IHJldHVybiB0aGlzLl9jb250ZW50IHx8ICh0aGlzLl9jb250ZW50ID0gdGhpcy5fbG9hZCh0aGlzLl9wYXRoKSk7IH1cbn1cbiJdfQ==

@@ -9,4 +9,4 @@ /// <reference types="node" />

*/
import { SchematicPath } from '../utility/path';
import { VirtualTree } from './virtual';
import { SchematicPath } from '../utility/path';
export interface FileSystemTreeHost {

@@ -13,0 +13,0 @@ listDirectory: (path: string) => string[];

@@ -10,5 +10,5 @@ "use strict";

*/
const virtual_1 = require("./virtual");
const path_1 = require("../utility/path");
const entry_1 = require("./entry");
const virtual_1 = require("./virtual");
class FileSystemTree extends virtual_1.VirtualTree {

@@ -47,2 +47,2 @@ constructor(_host, asCreate = false) {

exports.FileSystemTree = FileSystemTree;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ZpbGVzeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCx1Q0FBc0M7QUFDdEMsMENBQTZEO0FBQzdELG1DQUFzQztBQVl0QyxvQkFBNEIsU0FBUSxxQkFBVztJQUM3QyxZQUFvQixLQUF5QixFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQzdELEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFHM0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1lBQ3BELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxxQkFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixNQUFNLElBQUksR0FBOEIsRUFBRSxDQUFDO1FBRTNDLGlCQUFpQixVQUFrQixFQUFFLGFBQXFCO1lBQ3hELEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxjQUFjLEdBQUcsb0JBQWEsQ0FBQyxhQUFhLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNqRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsT0FBTyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQWhDRCx3Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1ZpcnR1YWxUcmVlfSBmcm9tICcuL3ZpcnR1YWwnO1xuaW1wb3J0IHtub3JtYWxpemVQYXRoLCBTY2hlbWF0aWNQYXRofSBmcm9tICcuLi91dGlsaXR5L3BhdGgnO1xuaW1wb3J0IHtMYXp5RmlsZUVudHJ5fSBmcm9tICcuL2VudHJ5JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTeXN0ZW1UcmVlSG9zdCB7XG4gIGxpc3REaXJlY3Rvcnk6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZ1tdO1xuICBpc0RpcmVjdG9yeTogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgcmVhZEZpbGU6IChwYXRoOiBzdHJpbmcpID0+IEJ1ZmZlcjtcblxuICBqb2luOiAocGF0aDE6IHN0cmluZywgb3RoZXI6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtVHJlZSBleHRlbmRzIFZpcnR1YWxUcmVlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRmlsZVN5c3RlbVRyZWVIb3N0LCBhc0NyZWF0ZSA9IGZhbHNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX3JlY3Vyc2l2ZUZpbGVMaXN0KCkuZm9yRWFjaCgoW3N5c3RlbSwgc2NoZW1hdGljXSkgPT4ge1xuICAgICAgaWYgKGFzQ3JlYXRlKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlKHNjaGVtYXRpYywgX2hvc3QucmVhZEZpbGUoc3lzdGVtKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yb290LnNldChzY2hlbWF0aWMsIG5ldyBMYXp5RmlsZUVudHJ5KHNjaGVtYXRpYywgKCkgPT4gX2hvc3QucmVhZEZpbGUoc3lzdGVtKSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9yZWN1cnNpdmVGaWxlTGlzdCgpOiBbIHN0cmluZywgU2NoZW1hdGljUGF0aCBdW10ge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLl9ob3N0O1xuICAgIGNvbnN0IGxpc3Q6IFtzdHJpbmcsIFNjaGVtYXRpY1BhdGhdW10gPSBbXTtcblxuICAgIGZ1bmN0aW9uIHJlY3Vyc2Uoc3lzdGVtUGF0aDogc3RyaW5nLCBzY2hlbWF0aWNQYXRoOiBzdHJpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBob3N0Lmxpc3REaXJlY3Rvcnkoc3lzdGVtUGF0aCkpIHtcbiAgICAgICAgY29uc3Qgc3lzdGVtTmFtZSA9IGhvc3Quam9pbihzeXN0ZW1QYXRoLCBuYW1lKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBub3JtYWxpemVQYXRoKHNjaGVtYXRpY1BhdGggKyAnLycgKyBuYW1lKTtcbiAgICAgICAgaWYgKGhvc3QuaXNEaXJlY3Rvcnkobm9ybWFsaXplZFBhdGgpKSB7XG4gICAgICAgICAgcmVjdXJzZShzeXN0ZW1OYW1lLCBub3JtYWxpemVkUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGlzdC5wdXNoKFtzeXN0ZW1OYW1lLCBub3JtYWxpemVkUGF0aF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVjdXJzZSgnJywgJy8nKTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ZpbGVzeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCwwQ0FBNkQ7QUFDN0QsbUNBQXNDO0FBQ3RDLHVDQUFzQztBQVl0QyxvQkFBNEIsU0FBUSxxQkFBVztJQUM3QyxZQUFvQixLQUF5QixFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQzdELEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFHM0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1lBQ3BELEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxxQkFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixNQUFNLElBQUksR0FBOEIsRUFBRSxDQUFDO1FBRTNDLGlCQUFpQixVQUFrQixFQUFFLGFBQXFCO1lBQ3hELEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxjQUFjLEdBQUcsb0JBQWEsQ0FBQyxhQUFhLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNqRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsT0FBTyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFakIsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQWpDRCx3Q0FpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1NjaGVtYXRpY1BhdGgsIG5vcm1hbGl6ZVBhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5pbXBvcnQge0xhenlGaWxlRW50cnl9IGZyb20gJy4vZW50cnknO1xuaW1wb3J0IHtWaXJ0dWFsVHJlZX0gZnJvbSAnLi92aXJ0dWFsJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTeXN0ZW1UcmVlSG9zdCB7XG4gIGxpc3REaXJlY3Rvcnk6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZ1tdO1xuICBpc0RpcmVjdG9yeTogKHBhdGg6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgcmVhZEZpbGU6IChwYXRoOiBzdHJpbmcpID0+IEJ1ZmZlcjtcblxuICBqb2luOiAocGF0aDE6IHN0cmluZywgb3RoZXI6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtVHJlZSBleHRlbmRzIFZpcnR1YWxUcmVlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRmlsZVN5c3RlbVRyZWVIb3N0LCBhc0NyZWF0ZSA9IGZhbHNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX3JlY3Vyc2l2ZUZpbGVMaXN0KCkuZm9yRWFjaCgoW3N5c3RlbSwgc2NoZW1hdGljXSkgPT4ge1xuICAgICAgaWYgKGFzQ3JlYXRlKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlKHNjaGVtYXRpYywgX2hvc3QucmVhZEZpbGUoc3lzdGVtKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yb290LnNldChzY2hlbWF0aWMsIG5ldyBMYXp5RmlsZUVudHJ5KHNjaGVtYXRpYywgKCkgPT4gX2hvc3QucmVhZEZpbGUoc3lzdGVtKSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9yZWN1cnNpdmVGaWxlTGlzdCgpOiBbIHN0cmluZywgU2NoZW1hdGljUGF0aCBdW10ge1xuICAgIGNvbnN0IGhvc3QgPSB0aGlzLl9ob3N0O1xuICAgIGNvbnN0IGxpc3Q6IFtzdHJpbmcsIFNjaGVtYXRpY1BhdGhdW10gPSBbXTtcblxuICAgIGZ1bmN0aW9uIHJlY3Vyc2Uoc3lzdGVtUGF0aDogc3RyaW5nLCBzY2hlbWF0aWNQYXRoOiBzdHJpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBob3N0Lmxpc3REaXJlY3Rvcnkoc3lzdGVtUGF0aCkpIHtcbiAgICAgICAgY29uc3Qgc3lzdGVtTmFtZSA9IGhvc3Quam9pbihzeXN0ZW1QYXRoLCBuYW1lKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBub3JtYWxpemVQYXRoKHNjaGVtYXRpY1BhdGggKyAnLycgKyBuYW1lKTtcbiAgICAgICAgaWYgKGhvc3QuaXNEaXJlY3Rvcnkobm9ybWFsaXplZFBhdGgpKSB7XG4gICAgICAgICAgcmVjdXJzZShzeXN0ZW1OYW1lLCBub3JtYWxpemVkUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGlzdC5wdXNoKFtzeXN0ZW1OYW1lLCBub3JtYWxpemVkUGF0aF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVjdXJzZSgnJywgJy8nKTtcblxuICAgIHJldHVybiBsaXN0O1xuICB9XG59XG4iXX0=

@@ -8,6 +8,6 @@ /**

*/
import { FilePredicate, Tree } from './interface';
import { VirtualTree } from './virtual';
import { FilePredicate, Tree } from './interface';
export declare class FilteredTree extends VirtualTree {
constructor(tree: Tree, filter?: FilePredicate<boolean>);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const virtual_1 = require("./virtual");

@@ -36,2 +29,2 @@ class FilteredTree extends virtual_1.VirtualTree {

exports.FilteredTree = FilteredTree;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyZWQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9maWx0ZXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILHVDQUFzQztBQUl0QyxrQkFBMEIsU0FBUSxxQkFBVztJQUMzQyxZQUFZLElBQVUsRUFBRSxTQUFpQyxNQUFNLElBQUk7UUFDakUsS0FBSyxFQUFFLENBQUM7UUFFUixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksWUFBWSxxQkFBVztjQUM1QyxJQUFJLEdBQUcscUJBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQWdCLENBQUM7UUFFdEQsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBRXBDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7WUFDeEMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNoQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMUJELG9DQTBCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7VmlydHVhbFRyZWV9IGZyb20gJy4vdmlydHVhbCc7XG5pbXBvcnQge0ZpbGVQcmVkaWNhdGUsIFRyZWV9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuXG5leHBvcnQgY2xhc3MgRmlsdGVyZWRUcmVlIGV4dGVuZHMgVmlydHVhbFRyZWUge1xuICBjb25zdHJ1Y3Rvcih0cmVlOiBUcmVlLCBmaWx0ZXI6IEZpbGVQcmVkaWNhdGU8Ym9vbGVhbj4gPSAoKSA9PiB0cnVlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IHZpcnR1YWxUcmVlID0gKHRyZWUgaW5zdGFuY2VvZiBWaXJ0dWFsVHJlZVxuICAgICAgPyB0cmVlIDogVmlydHVhbFRyZWUub3B0aW1pemUodHJlZSkpIGFzIFZpcnR1YWxUcmVlO1xuXG4gICAgY29uc3Qgcm9vdCA9IHZpcnR1YWxUcmVlLnJvb3Q7XG4gICAgY29uc3Qgc3RhZ2luZyA9IHZpcnR1YWxUcmVlLnN0YWdpbmc7XG5cbiAgICBbLi4ucm9vdC5lbnRyaWVzKCldLmZvckVhY2goKFtwYXRoLCBlbnRyeV0pID0+IHtcbiAgICAgIGlmIChmaWx0ZXIocGF0aCwgZW50cnkpKSB7XG4gICAgICAgIHRoaXMuX3Jvb3Quc2V0KHBhdGgsIGVudHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBbLi4uc3RhZ2luZy5lbnRyaWVzKCldLmZvckVhY2goKFtwYXRoLCBlbnRyeV0pID0+IHtcbiAgICAgIGlmIChmaWx0ZXIocGF0aCwgZW50cnkpKSB7XG4gICAgICAgIHRoaXMuX2NhY2hlTWFwLnNldChwYXRoLCBlbnRyeSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmlydHVhbFRyZWUuYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICBpZiAodGhpcy5fY2FjaGVNYXAuaGFzKGFjdGlvbi5wYXRoKSB8fCB0aGlzLl9yb290LmhhcyhhY3Rpb24ucGF0aCkpIHtcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyZWQuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9maWx0ZXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLHVDQUFzQztBQUd0QyxrQkFBMEIsU0FBUSxxQkFBVztJQUMzQyxZQUFZLElBQVUsRUFBRSxTQUFpQyxNQUFNLElBQUk7UUFDakUsS0FBSyxFQUFFLENBQUM7UUFFUixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksWUFBWSxxQkFBVztjQUM1QyxJQUFJLEdBQUcscUJBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQWdCLENBQUM7UUFFdEQsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBRXBDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7WUFDeEMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNoQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMUJELG9DQTBCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZVByZWRpY2F0ZSwgVHJlZX0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHtWaXJ0dWFsVHJlZX0gZnJvbSAnLi92aXJ0dWFsJztcblxuXG5leHBvcnQgY2xhc3MgRmlsdGVyZWRUcmVlIGV4dGVuZHMgVmlydHVhbFRyZWUge1xuICBjb25zdHJ1Y3Rvcih0cmVlOiBUcmVlLCBmaWx0ZXI6IEZpbGVQcmVkaWNhdGU8Ym9vbGVhbj4gPSAoKSA9PiB0cnVlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IHZpcnR1YWxUcmVlID0gKHRyZWUgaW5zdGFuY2VvZiBWaXJ0dWFsVHJlZVxuICAgICAgPyB0cmVlIDogVmlydHVhbFRyZWUub3B0aW1pemUodHJlZSkpIGFzIFZpcnR1YWxUcmVlO1xuXG4gICAgY29uc3Qgcm9vdCA9IHZpcnR1YWxUcmVlLnJvb3Q7XG4gICAgY29uc3Qgc3RhZ2luZyA9IHZpcnR1YWxUcmVlLnN0YWdpbmc7XG5cbiAgICBbLi4ucm9vdC5lbnRyaWVzKCldLmZvckVhY2goKFtwYXRoLCBlbnRyeV0pID0+IHtcbiAgICAgIGlmIChmaWx0ZXIocGF0aCwgZW50cnkpKSB7XG4gICAgICAgIHRoaXMuX3Jvb3Quc2V0KHBhdGgsIGVudHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBbLi4uc3RhZ2luZy5lbnRyaWVzKCldLmZvckVhY2goKFtwYXRoLCBlbnRyeV0pID0+IHtcbiAgICAgIGlmIChmaWx0ZXIocGF0aCwgZW50cnkpKSB7XG4gICAgICAgIHRoaXMuX2NhY2hlTWFwLnNldChwYXRoLCBlbnRyeSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmlydHVhbFRyZWUuYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICBpZiAodGhpcy5fY2FjaGVNYXAuaGFzKGFjdGlvbi5wYXRoKSB8fCB0aGlzLl9yb290LmhhcyhhY3Rpb24ucGF0aCkpIHtcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==

@@ -9,4 +9,4 @@ /// <reference types="node" />

*/
import { SchematicPath } from '../utility/path';
import { Action } from './action';
import { SchematicPath } from '../utility/path';
export declare enum MergeStrategy {

@@ -13,0 +13,0 @@ AllowOverwriteConflict = 2,

@@ -18,2 +18,2 @@ "use strict";

})(MergeStrategy = exports.MergeStrategy || (exports.MergeStrategy = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsSUFBWSxhQW1CWDtBQW5CRCxXQUFZLGFBQWE7SUFDdkIscUZBQWtDLENBQUE7SUFDbEMsbUZBQWtDLENBQUE7SUFDbEMsK0VBQWtDLENBQUE7SUFFbEMsNkJBQTZCO0lBQzdCLHVEQUE2QixDQUFBO0lBRTdCLHVGQUF1RjtJQUN2Riw0REFBNEQ7SUFDNUQsbURBQWtDLENBQUE7SUFFbEMsMENBQTBDO0lBQzFDLCtEQUFnRSxDQUFBO0lBRWhFLCtDQUErQztJQUMvQyw0REFFNkQsQ0FBQTtBQUMvRCxDQUFDLEVBbkJXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBbUJ4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QWN0aW9ufSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQge1NjaGVtYXRpY1BhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5cblxuZXhwb3J0IGVudW0gTWVyZ2VTdHJhdGVneSB7XG4gIEFsbG93T3ZlcndyaXRlQ29uZmxpY3QgICAgPSAxIDw8IDEsXG4gIEFsbG93Q3JlYXRpb25Db25mbGljdCAgICAgPSAxIDw8IDIsXG4gIEFsbG93RGVsZXRlQ29uZmxpY3QgICAgICAgPSAxIDw8IDMsXG5cbiAgLy8gVXNlcyB0aGUgZGVmYXVsdCBzdHJhdGVneS5cbiAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICA9IDAsXG5cbiAgLy8gRXJyb3Igb3V0IGlmIDIgZmlsZXMgaGF2ZSB0aGUgc2FtZSBwYXRoLiBJdCBpcyB1c2VmdWwgdG8gaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSB0aGFuXG4gIC8vIERlZmF1bHQgaW4gdGhpcyBjYXNlIGFzIHRoZSB0b29saW5nIERlZmF1bHQgbWlnaHQgZGlmZmVyLlxuICBFcnJvciAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLFxuXG4gIC8vIE9ubHkgY29udGVudCBjb25mbGljdHMgYXJlIG92ZXJ3cml0dGVuLlxuICBDb250ZW50T25seSAgICAgICAgICAgICAgID0gTWVyZ2VTdHJhdGVneS5BbGxvd092ZXJ3cml0ZUNvbmZsaWN0LFxuXG4gIC8vIE92ZXJ3cml0ZSBldmVyeXRoaW5nIHdpdGggdGhlIGxhdGVzdCBjaGFuZ2UuXG4gIE92ZXJ3cml0ZSAgICAgICAgICAgICAgICAgPSBNZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIE1lcmdlU3RyYXRlZ3kuQWxsb3dDcmVhdGlvbkNvbmZsaWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBNZXJnZVN0cmF0ZWd5LkFsbG93RGVsZXRlQ29uZmxpY3Rcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVFbnRyeSB7XG4gIHJlYWRvbmx5IHBhdGg6IFNjaGVtYXRpY1BhdGg7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEJ1ZmZlcjtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVQcmVkaWNhdGU8VD4ge1xuICAocGF0aDogU2NoZW1hdGljUGF0aCwgZW50cnk/OiBSZWFkb25seTxGaWxlRW50cnk+IHwgbnVsbCk6IFQ7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBUcmVlIHtcbiAgLy8gUmVhZG9ubHkuXG4gIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgZXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW47XG5cbiAgLy8gQ29udGVudCBhY2Nlc3MuXG4gIHJlYWQocGF0aDogc3RyaW5nKTogQnVmZmVyIHwgbnVsbDtcbiAgZ2V0KHBhdGg6IHN0cmluZyk6IEZpbGVFbnRyeSB8IG51bGw7XG5cbiAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy5cbiAgb3ZlcndyaXRlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyIHwgc3RyaW5nKTogdm9pZDtcbiAgYmVnaW5VcGRhdGUocGF0aDogc3RyaW5nKTogVXBkYXRlUmVjb3JkZXI7XG4gIGNvbW1pdFVwZGF0ZShyZWNvcmQ6IFVwZGF0ZVJlY29yZGVyKTogdm9pZDtcblxuICAvLyBTdHJ1Y3R1cmFsIG1ldGhvZHMuXG4gIGNyZWF0ZShwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IHZvaWQ7XG4gIGRlbGV0ZShwYXRoOiBzdHJpbmcpOiB2b2lkO1xuICByZW5hbWUoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKTogdm9pZDtcblxuICBhcHBseShhY3Rpb246IEFjdGlvbiwgc3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5KTogdm9pZDtcbiAgcmVhZG9ubHkgYWN0aW9uczogQWN0aW9uW107XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVSZWNvcmRlciB7XG4gIC8vIFRoZXNlIGp1c3QgcmVjb3JkIGNoYW5nZXMuXG4gIGluc2VydExlZnQoaW5kZXg6IG51bWJlciwgY29udGVudDogQnVmZmVyIHwgc3RyaW5nKTogVXBkYXRlUmVjb3JkZXI7XG4gIGluc2VydFJpZ2h0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyO1xuICByZW1vdmUoaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBVcGRhdGVSZWNvcmRlcjtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsSUFBWSxhQW1CWDtBQW5CRCxXQUFZLGFBQWE7SUFDdkIscUZBQWtDLENBQUE7SUFDbEMsbUZBQWtDLENBQUE7SUFDbEMsK0VBQWtDLENBQUE7SUFFbEMsNkJBQTZCO0lBQzdCLHVEQUE2QixDQUFBO0lBRTdCLHVGQUF1RjtJQUN2Riw0REFBNEQ7SUFDNUQsbURBQWtDLENBQUE7SUFFbEMsMENBQTBDO0lBQzFDLCtEQUFnRSxDQUFBO0lBRWhFLCtDQUErQztJQUMvQyw0REFFNkQsQ0FBQTtBQUMvRCxDQUFDLEVBbkJXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBbUJ4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7U2NoZW1hdGljUGF0aH0gZnJvbSAnLi4vdXRpbGl0eS9wYXRoJztcbmltcG9ydCB7QWN0aW9ufSBmcm9tICcuL2FjdGlvbic7XG5cblxuZXhwb3J0IGVudW0gTWVyZ2VTdHJhdGVneSB7XG4gIEFsbG93T3ZlcndyaXRlQ29uZmxpY3QgICAgPSAxIDw8IDEsXG4gIEFsbG93Q3JlYXRpb25Db25mbGljdCAgICAgPSAxIDw8IDIsXG4gIEFsbG93RGVsZXRlQ29uZmxpY3QgICAgICAgPSAxIDw8IDMsXG5cbiAgLy8gVXNlcyB0aGUgZGVmYXVsdCBzdHJhdGVneS5cbiAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICA9IDAsXG5cbiAgLy8gRXJyb3Igb3V0IGlmIDIgZmlsZXMgaGF2ZSB0aGUgc2FtZSBwYXRoLiBJdCBpcyB1c2VmdWwgdG8gaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSB0aGFuXG4gIC8vIERlZmF1bHQgaW4gdGhpcyBjYXNlIGFzIHRoZSB0b29saW5nIERlZmF1bHQgbWlnaHQgZGlmZmVyLlxuICBFcnJvciAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLFxuXG4gIC8vIE9ubHkgY29udGVudCBjb25mbGljdHMgYXJlIG92ZXJ3cml0dGVuLlxuICBDb250ZW50T25seSAgICAgICAgICAgICAgID0gTWVyZ2VTdHJhdGVneS5BbGxvd092ZXJ3cml0ZUNvbmZsaWN0LFxuXG4gIC8vIE92ZXJ3cml0ZSBldmVyeXRoaW5nIHdpdGggdGhlIGxhdGVzdCBjaGFuZ2UuXG4gIE92ZXJ3cml0ZSAgICAgICAgICAgICAgICAgPSBNZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIE1lcmdlU3RyYXRlZ3kuQWxsb3dDcmVhdGlvbkNvbmZsaWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBNZXJnZVN0cmF0ZWd5LkFsbG93RGVsZXRlQ29uZmxpY3QsXG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlRW50cnkge1xuICByZWFkb25seSBwYXRoOiBTY2hlbWF0aWNQYXRoO1xuICByZWFkb25seSBjb250ZW50OiBCdWZmZXI7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJlZGljYXRlPFQ+IHtcbiAgKHBhdGg6IFNjaGVtYXRpY1BhdGgsIGVudHJ5PzogUmVhZG9ubHk8RmlsZUVudHJ5PiB8IG51bGwpOiBUO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZSB7XG4gIC8vIFJlYWRvbmx5LlxuICByZWFkb25seSBmaWxlczogc3RyaW5nW107XG4gIGV4aXN0cyhwYXRoOiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8vIENvbnRlbnQgYWNjZXNzLlxuICByZWFkKHBhdGg6IHN0cmluZyk6IEJ1ZmZlciB8IG51bGw7XG4gIGdldChwYXRoOiBzdHJpbmcpOiBGaWxlRW50cnkgfCBudWxsO1xuXG4gIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuXG4gIG92ZXJ3cml0ZShwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IHZvaWQ7XG4gIGJlZ2luVXBkYXRlKHBhdGg6IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyO1xuICBjb21taXRVcGRhdGUocmVjb3JkOiBVcGRhdGVSZWNvcmRlcik6IHZvaWQ7XG5cbiAgLy8gU3RydWN0dXJhbCBtZXRob2RzLlxuICBjcmVhdGUocGF0aDogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIgfCBzdHJpbmcpOiB2b2lkO1xuICBkZWxldGUocGF0aDogc3RyaW5nKTogdm9pZDtcbiAgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IHZvaWQ7XG5cbiAgYXBwbHkoYWN0aW9uOiBBY3Rpb24sIHN0cmF0ZWd5PzogTWVyZ2VTdHJhdGVneSk6IHZvaWQ7XG4gIHJlYWRvbmx5IGFjdGlvbnM6IEFjdGlvbltdO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVjb3JkZXIge1xuICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLlxuICBpbnNlcnRMZWZ0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyO1xuICBpbnNlcnRSaWdodChpbmRleDogbnVtYmVyLCBjb250ZW50OiBCdWZmZXIgfCBzdHJpbmcpOiBVcGRhdGVSZWNvcmRlcjtcbiAgcmVtb3ZlKGluZGV4OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogVXBkYXRlUmVjb3JkZXI7XG59XG4iXX0=
/// <reference types="node" />
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { FileSystemTreeHost } from './filesystem';

@@ -10,0 +3,0 @@ export declare class InMemoryFileSystemTreeHost implements FileSystemTreeHost {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const path_1 = require("../utility/path");

@@ -19,8 +26,3 @@ class InMemoryFileSystemTreeHost {

.map(p => p.replace(/\/.*$/, ''))
.reduce((acc, p) => {
if (p) {
acc[p] = true;
}
return acc;
}, {})).sort();
.reduce((acc, p) => (acc[p] = true, acc), {})).sort();
}

@@ -40,2 +42,2 @@ isDirectory(path) {

exports.InMemoryFileSystemTreeHost = InMemoryFileSystemTreeHost;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWhvc3QuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9tZW1vcnktaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLDBDQUE4QztBQUc5QztJQUdFLFlBQVksT0FBbUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDL0IsSUFBSSxHQUFHLG9CQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3hCLElBQUksR0FBRyxvQkFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLElBQUksQ0FBQyxNQUFNO2FBQ1IsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNoQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsQ0FBQztZQUNsQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDaEIsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ1QsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFDRCxXQUFXLENBQUMsSUFBWTtRQUN0QixJQUFJLEdBQUcsb0JBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBWTtRQUNuQixJQUFJLEdBQUcsb0JBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQy9CLE1BQU0sQ0FBQyxvQkFBYSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBdkNELGdFQXVDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZVN5c3RlbVRyZWVIb3N0fSBmcm9tICcuL2ZpbGVzeXN0ZW0nO1xuaW1wb3J0IHtub3JtYWxpemVQYXRofSBmcm9tICcuLi91dGlsaXR5L3BhdGgnO1xuXG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUZpbGVTeXN0ZW1UcmVlSG9zdCBpbXBsZW1lbnRzIEZpbGVTeXN0ZW1UcmVlSG9zdCB7XG4gIHByaXZhdGUgX2NvbnRlbnQ6IHsgW3BhdGg6IHN0cmluZ106IEJ1ZmZlciB9O1xuICBwcml2YXRlIF9maWxlczogc3RyaW5nW107XG4gIGNvbnN0cnVjdG9yKGNvbnRlbnQ6IHsgW3BhdGg6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgdGhpcy5fY29udGVudCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgT2JqZWN0LmtleXMoY29udGVudCkuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIHBhdGggPSBub3JtYWxpemVQYXRoKHBhdGgpO1xuICAgICAgdGhpcy5fY29udGVudFtwYXRoXSA9IG5ldyBCdWZmZXIoY29udGVudFtwYXRoXSk7XG4gICAgfSk7XG4gICAgdGhpcy5fZmlsZXMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb250ZW50KTtcbiAgfVxuXG4gIGxpc3REaXJlY3RvcnkocGF0aDogc3RyaW5nKSB7XG4gICAgcGF0aCA9IG5vcm1hbGl6ZVBhdGgocGF0aCkucmVwbGFjZSgvXFwvPyQvLCAnLycpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhcbiAgICAgIHRoaXMuX2ZpbGVzXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnN0YXJ0c1dpdGgocGF0aCkpXG4gICAgICAgIC5tYXAocCA9PiBwLnN1YnN0cihwYXRoLmxlbmd0aCkpXG4gICAgICAgIC5tYXAocCA9PiBwLnJlcGxhY2UoL1xcLy4qJC8sICcnKSlcbiAgICAgICAgLnJlZHVjZSgoYWNjOiBhbnksIHApID0+IHtcbiAgICAgICAgICBpZiAocCkge1xuICAgICAgICAgICAgYWNjW3BdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgKS5zb3J0KCk7XG4gIH1cbiAgaXNEaXJlY3RvcnkocGF0aDogc3RyaW5nKSB7XG4gICAgcGF0aCA9IG5vcm1hbGl6ZVBhdGgocGF0aCk7XG4gICAgcmV0dXJuIHBhdGggPT0gJy8nIHx8IHRoaXMuX2ZpbGVzLnNvbWUocCA9PiBwLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmpvaW4oJy8nKSA9PSBwYXRoKTtcbiAgfVxuICByZWFkRmlsZShwYXRoOiBzdHJpbmcpIHtcbiAgICBwYXRoID0gbm9ybWFsaXplUGF0aChwYXRoKTtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFtwYXRoXSB8fCBuZXcgQnVmZmVyKCcnKTtcbiAgfVxuXG4gIGpvaW4ocGF0aDE6IHN0cmluZywgcGF0aDI6IHN0cmluZykge1xuICAgIHJldHVybiBub3JtYWxpemVQYXRoKHBhdGgxICsgJy8nICsgcGF0aDIpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWhvc3QuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9tZW1vcnktaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDBDQUE4QztBQUk5QztJQUdFLFlBQVksT0FBbUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDL0IsSUFBSSxHQUFHLG9CQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3hCLElBQUksR0FBRyxvQkFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLElBQUksQ0FBQyxNQUFNO2FBQ1IsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNoQyxNQUFNLENBQUMsQ0FBQyxHQUEyQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3hFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVk7UUFDdEIsSUFBSSxHQUFHLG9CQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQVk7UUFDbkIsSUFBSSxHQUFHLG9CQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUMvQixNQUFNLENBQUMsb0JBQWEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQXJDRCxnRUFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge25vcm1hbGl6ZVBhdGh9IGZyb20gJy4uL3V0aWxpdHkvcGF0aCc7XG5pbXBvcnQge0ZpbGVTeXN0ZW1UcmVlSG9zdH0gZnJvbSAnLi9maWxlc3lzdGVtJztcblxuXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlGaWxlU3lzdGVtVHJlZUhvc3QgaW1wbGVtZW50cyBGaWxlU3lzdGVtVHJlZUhvc3Qge1xuICBwcml2YXRlIF9jb250ZW50OiB7IFtwYXRoOiBzdHJpbmddOiBCdWZmZXIgfTtcbiAgcHJpdmF0ZSBfZmlsZXM6IHN0cmluZ1tdO1xuICBjb25zdHJ1Y3Rvcihjb250ZW50OiB7IFtwYXRoOiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuX2NvbnRlbnQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIE9iamVjdC5rZXlzKGNvbnRlbnQpLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICBwYXRoID0gbm9ybWFsaXplUGF0aChwYXRoKTtcbiAgICAgIHRoaXMuX2NvbnRlbnRbcGF0aF0gPSBuZXcgQnVmZmVyKGNvbnRlbnRbcGF0aF0pO1xuICAgIH0pO1xuICAgIHRoaXMuX2ZpbGVzID0gT2JqZWN0LmtleXModGhpcy5fY29udGVudCk7XG4gIH1cblxuICBsaXN0RGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHBhdGggPSBub3JtYWxpemVQYXRoKHBhdGgpLnJlcGxhY2UoL1xcLz8kLywgJy8nKTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhcbiAgICAgIHRoaXMuX2ZpbGVzXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLnN0YXJ0c1dpdGgocGF0aCkpXG4gICAgICAgIC5tYXAocCA9PiBwLnN1YnN0cihwYXRoLmxlbmd0aCkpXG4gICAgICAgIC5tYXAocCA9PiBwLnJlcGxhY2UoL1xcLy4qJC8sICcnKSlcbiAgICAgICAgLnJlZHVjZSgoYWNjOiB7W2s6IHN0cmluZ106IGJvb2xlYW59LCBwKSA9PiAoYWNjW3BdID0gdHJ1ZSwgYWNjKSwge30pLFxuICAgICkuc29ydCgpO1xuICB9XG4gIGlzRGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHBhdGggPSBub3JtYWxpemVQYXRoKHBhdGgpO1xuXG4gICAgcmV0dXJuIHBhdGggPT0gJy8nIHx8IHRoaXMuX2ZpbGVzLnNvbWUocCA9PiBwLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmpvaW4oJy8nKSA9PSBwYXRoKTtcbiAgfVxuICByZWFkRmlsZShwYXRoOiBzdHJpbmcpIHtcbiAgICBwYXRoID0gbm9ybWFsaXplUGF0aChwYXRoKTtcblxuICAgIHJldHVybiB0aGlzLl9jb250ZW50W3BhdGhdIHx8IG5ldyBCdWZmZXIoJycpO1xuICB9XG5cbiAgam9pbihwYXRoMTogc3RyaW5nLCBwYXRoMjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVBhdGgocGF0aDEgKyAnLycgKyBwYXRoMik7XG4gIH1cbn1cbiJdfQ==
/// <reference types="node" />
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { FileSystemTreeHost } from './filesystem';

@@ -10,0 +3,0 @@ export declare class NodeJsHost implements FileSystemTreeHost {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
const fs = require("fs");

@@ -23,2 +30,2 @@ const path_1 = require("path");

exports.NodeJsHost = NodeJsHost;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1ob3N0LmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvbm9kZS1ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEseUJBQXlCO0FBQ3pCLCtCQUEwQjtBQUcxQjtJQUNFLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQztJQUVyQyxhQUFhLENBQUMsSUFBWTtRQUN4QixNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVk7UUFDdEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDL0IsTUFBTSxDQUFDLFdBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBaEJELGdDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsZVN5c3RlbVRyZWVIb3N0fSBmcm9tICcuL2ZpbGVzeXN0ZW0nO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHtqb2lufSBmcm9tICdwYXRoJztcblxuXG5leHBvcnQgY2xhc3MgTm9kZUpzSG9zdCBpbXBsZW1lbnRzIEZpbGVTeXN0ZW1UcmVlSG9zdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Jvb3Q6IHN0cmluZykge31cblxuICBsaXN0RGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBmcy5yZWFkZGlyU3luYyh0aGlzLmpvaW4odGhpcy5fcm9vdCwgcGF0aCkpO1xuICB9XG4gIGlzRGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBmcy5zdGF0U3luYyh0aGlzLmpvaW4odGhpcy5fcm9vdCwgcGF0aCkpLmlzRGlyZWN0b3J5KCk7XG4gIH1cbiAgcmVhZEZpbGUocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyh0aGlzLmpvaW4odGhpcy5fcm9vdCwgcGF0aCkpO1xuICB9XG5cbiAgam9pbihwYXRoMTogc3RyaW5nLCBwYXRoMjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGpvaW4ocGF0aDEsIHBhdGgyKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1ob3N0LmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvbm9kZS1ob3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gseUJBQXlCO0FBQ3pCLCtCQUEwQjtBQUkxQjtJQUNFLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQztJQUVyQyxhQUFhLENBQUMsSUFBWTtRQUN4QixNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQVk7UUFDdEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDL0IsTUFBTSxDQUFDLFdBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBaEJELGdDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7am9pbn0gZnJvbSAncGF0aCc7XG5pbXBvcnQge0ZpbGVTeXN0ZW1UcmVlSG9zdH0gZnJvbSAnLi9maWxlc3lzdGVtJztcblxuXG5leHBvcnQgY2xhc3MgTm9kZUpzSG9zdCBpbXBsZW1lbnRzIEZpbGVTeXN0ZW1UcmVlSG9zdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Jvb3Q6IHN0cmluZykge31cblxuICBsaXN0RGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBmcy5yZWFkZGlyU3luYyh0aGlzLmpvaW4odGhpcy5fcm9vdCwgcGF0aCkpO1xuICB9XG4gIGlzRGlyZWN0b3J5KHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBmcy5zdGF0U3luYyh0aGlzLmpvaW4odGhpcy5fcm9vdCwgcGF0aCkpLmlzRGlyZWN0b3J5KCk7XG4gIH1cbiAgcmVhZEZpbGUocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyh0aGlzLmpvaW4odGhpcy5fcm9vdCwgcGF0aCkpO1xuICB9XG5cbiAgam9pbihwYXRoMTogc3RyaW5nLCBwYXRoMjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGpvaW4ocGF0aDEsIHBhdGgyKTtcbiAgfVxufVxuIl19
/// <reference types="node" />
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { BaseException } from '../exception/exception';
import { Action } from './action';
import { MergeStrategy, Tree, UpdateRecorder } from './interface';
import { Action } from './action';
import { BaseException } from '../exception/exception';
export declare class CannotCreateFileException extends BaseException {

@@ -6,0 +13,0 @@ constructor(path: string);

@@ -10,4 +10,4 @@ "use strict";

*/
const exception_1 = require("../exception/exception");
const recorder_1 = require("./recorder");
const exception_1 = require("../exception/exception");
class CannotCreateFileException extends exception_1.BaseException {

@@ -54,2 +54,2 @@ constructor(path) { super(`Cannot create file "${path}".`); }

exports.NullTree = NullTree;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL251bGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCx5Q0FBOEM7QUFHOUMsc0RBQWdGO0FBR2hGLCtCQUF1QyxTQUFRLHlCQUFhO0lBQzFELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdEU7QUFGRCw4REFFQztBQUdEO0lBQ0UsMENBQTBDO0lBQzFDLE1BQU0sQ0FBQyxLQUFhLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLEtBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwQyxHQUFHLENBQUMsS0FBYSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25DLElBQUksS0FBSyxLQUFlLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBDLGdDQUFnQztJQUNoQyxXQUFXLENBQUMsSUFBWTtRQUN0QixNQUFNLElBQUkscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFzQjtRQUNqQyxNQUFNLElBQUkscUNBQXlCLENBQUMsTUFBTSxZQUFZLDZCQUFrQjtjQUNwRSxNQUFNLENBQUMsSUFBSTtjQUNYLFdBQVcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBSSxDQUFDLElBQVksRUFBRSxHQUFXO1FBQzVCLE1BQU0sSUFBSSxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxJQUFJLHFDQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBWSxFQUFFLFFBQXlCO1FBQzVDLE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVksRUFBRSxHQUFXO1FBQzlCLE1BQU0sSUFBSSxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQVksRUFBRSxRQUF5QjtRQUMvQyxNQUFNLElBQUkscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlLEVBQUUsU0FBeUIsSUFBUyxDQUFDO0lBQzFELElBQUksT0FBTztRQUNULE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0Y7QUF0Q0QsNEJBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtVcGRhdGVSZWNvcmRlckJhc2V9IGZyb20gJy4vcmVjb3JkZXInO1xuaW1wb3J0IHtNZXJnZVN0cmF0ZWd5LCBUcmVlLCBVcGRhdGVSZWNvcmRlcn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHtBY3Rpb259IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7QmFzZUV4Y2VwdGlvbiwgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5cblxuZXhwb3J0IGNsYXNzIENhbm5vdENyZWF0ZUZpbGVFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocGF0aDogc3RyaW5nKSB7IHN1cGVyKGBDYW5ub3QgY3JlYXRlIGZpbGUgXCIke3BhdGh9XCIuYCk7IH1cbn1cblxuXG5leHBvcnQgY2xhc3MgTnVsbFRyZWUgaW1wbGVtZW50cyBUcmVlIHtcbiAgLy8gU2ltcGxlIHJlYWRvbmx5IGZpbGUgc3lzdGVtIG9wZXJhdGlvbnMuXG4gIGV4aXN0cyhfcGF0aDogc3RyaW5nKSB7IHJldHVybiBmYWxzZTsgfVxuICByZWFkKF9wYXRoOiBzdHJpbmcpIHsgcmV0dXJuIG51bGw7IH1cbiAgZ2V0KF9wYXRoOiBzdHJpbmcpIHsgcmV0dXJuIG51bGw7IH1cbiAgZ2V0IGZpbGVzKCk6IHN0cmluZ1tdIHsgcmV0dXJuIFtdOyB9XG5cbiAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy5cbiAgYmVnaW5VcGRhdGUocGF0aDogc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIGNvbW1pdFVwZGF0ZShyZWNvcmQ6IFVwZGF0ZVJlY29yZGVyKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHJlY29yZCBpbnN0YW5jZW9mIFVwZGF0ZVJlY29yZGVyQmFzZVxuICAgICAgPyByZWNvcmQucGF0aFxuICAgICAgOiAnPHVua25vd24+Jyk7XG4gIH1cblxuICAvLyBDaGFuZ2Ugc3RydWN0dXJlIG9mIHRoZSBob3N0LlxuICBjb3B5KHBhdGg6IHN0cmluZywgX3RvOiBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gIH1cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgfVxuICBjcmVhdGUocGF0aDogc3RyaW5nLCBfY29udGVudDogQnVmZmVyIHwgc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBDYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIHJlbmFtZShwYXRoOiBzdHJpbmcsIF90bzogc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIG92ZXJ3cml0ZShwYXRoOiBzdHJpbmcsIF9jb250ZW50OiBCdWZmZXIgfCBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gIH1cblxuICBhcHBseShfYWN0aW9uOiBBY3Rpb24sIF9zdHJhdGVneT86IE1lcmdlU3RyYXRlZ3kpOiB2b2lkIHt9XG4gIGdldCBhY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL251bGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxzREFBZ0Y7QUFHaEYseUNBQThDO0FBRzlDLCtCQUF1QyxTQUFRLHlCQUFhO0lBQzFELFlBQVksSUFBWSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdEU7QUFGRCw4REFFQztBQUdEO0lBQ0UsMENBQTBDO0lBQzFDLE1BQU0sQ0FBQyxLQUFhLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLEtBQWEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwQyxHQUFHLENBQUMsS0FBYSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25DLElBQUksS0FBSyxLQUFlLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXBDLGdDQUFnQztJQUNoQyxXQUFXLENBQUMsSUFBWTtRQUN0QixNQUFNLElBQUkscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFzQjtRQUNqQyxNQUFNLElBQUkscUNBQXlCLENBQUMsTUFBTSxZQUFZLDZCQUFrQjtjQUNwRSxNQUFNLENBQUMsSUFBSTtjQUNYLFdBQVcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsSUFBSSxDQUFDLElBQVksRUFBRSxHQUFXO1FBQzVCLE1BQU0sSUFBSSxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxJQUFJLHFDQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBWSxFQUFFLFFBQXlCO1FBQzVDLE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVksRUFBRSxHQUFXO1FBQzlCLE1BQU0sSUFBSSxxQ0FBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQVksRUFBRSxRQUF5QjtRQUMvQyxNQUFNLElBQUkscUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlLEVBQUUsU0FBeUIsSUFBUyxDQUFDO0lBQzFELElBQUksT0FBTztRQUNULE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0Y7QUF0Q0QsNEJBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9uLCBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7QWN0aW9ufSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQge01lcmdlU3RyYXRlZ3ksIFRyZWUsIFVwZGF0ZVJlY29yZGVyfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQge1VwZGF0ZVJlY29yZGVyQmFzZX0gZnJvbSAnLi9yZWNvcmRlcic7XG5cblxuZXhwb3J0IGNsYXNzIENhbm5vdENyZWF0ZUZpbGVFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocGF0aDogc3RyaW5nKSB7IHN1cGVyKGBDYW5ub3QgY3JlYXRlIGZpbGUgXCIke3BhdGh9XCIuYCk7IH1cbn1cblxuXG5leHBvcnQgY2xhc3MgTnVsbFRyZWUgaW1wbGVtZW50cyBUcmVlIHtcbiAgLy8gU2ltcGxlIHJlYWRvbmx5IGZpbGUgc3lzdGVtIG9wZXJhdGlvbnMuXG4gIGV4aXN0cyhfcGF0aDogc3RyaW5nKSB7IHJldHVybiBmYWxzZTsgfVxuICByZWFkKF9wYXRoOiBzdHJpbmcpIHsgcmV0dXJuIG51bGw7IH1cbiAgZ2V0KF9wYXRoOiBzdHJpbmcpIHsgcmV0dXJuIG51bGw7IH1cbiAgZ2V0IGZpbGVzKCk6IHN0cmluZ1tdIHsgcmV0dXJuIFtdOyB9XG5cbiAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy5cbiAgYmVnaW5VcGRhdGUocGF0aDogc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIGNvbW1pdFVwZGF0ZShyZWNvcmQ6IFVwZGF0ZVJlY29yZGVyKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHJlY29yZCBpbnN0YW5jZW9mIFVwZGF0ZVJlY29yZGVyQmFzZVxuICAgICAgPyByZWNvcmQucGF0aFxuICAgICAgOiAnPHVua25vd24+Jyk7XG4gIH1cblxuICAvLyBDaGFuZ2Ugc3RydWN0dXJlIG9mIHRoZSBob3N0LlxuICBjb3B5KHBhdGg6IHN0cmluZywgX3RvOiBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gIH1cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgfVxuICBjcmVhdGUocGF0aDogc3RyaW5nLCBfY29udGVudDogQnVmZmVyIHwgc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBDYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIHJlbmFtZShwYXRoOiBzdHJpbmcsIF90bzogc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIG92ZXJ3cml0ZShwYXRoOiBzdHJpbmcsIF9jb250ZW50OiBCdWZmZXIgfCBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gIH1cblxuICBhcHBseShfYWN0aW9uOiBBY3Rpb24sIF9zdHJhdGVneT86IE1lcmdlU3RyYXRlZ3kpOiB2b2lkIHt9XG4gIGdldCBhY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==
/// <reference types="node" />
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { UpdateBuffer } from '../utility/update-buffer';

@@ -10,0 +3,0 @@ import { FileEntry, UpdateRecorder } from './interface';

@@ -10,4 +10,4 @@ "use strict";

*/
const exception_1 = require("../exception/exception");
const update_buffer_1 = require("../utility/update-buffer");
const exception_1 = require("../exception/exception");
class UpdateRecorderBase {

@@ -41,2 +41,2 @@ constructor(entry) {

exports.UpdateRecorderBase = UpdateRecorderBase;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILDREQUFzRDtBQUV0RCxzREFBa0U7QUFHbEU7SUFLRSxZQUFZLEtBQWdCO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVqQyw2QkFBNkI7SUFDN0IsVUFBVSxDQUFDLEtBQWEsRUFBRSxPQUF3QjtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxPQUFPLElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzVGLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQWEsRUFBRSxPQUF3QjtRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxPQUFPLElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzdGLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlO1FBQ25CLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxNQUFNLElBQUksc0NBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFqQ0QsZ0RBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtVcGRhdGVCdWZmZXJ9IGZyb20gJy4uL3V0aWxpdHkvdXBkYXRlLWJ1ZmZlcic7XG5pbXBvcnQge0ZpbGVFbnRyeSwgVXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7Q29udGVudEhhc011dGF0ZWRFeGNlcHRpb259IGZyb20gJy4uL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuXG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVSZWNvcmRlckJhc2UgaW1wbGVtZW50cyBVcGRhdGVSZWNvcmRlciB7XG4gIHByb3RlY3RlZCBfcGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX29yaWdpbmFsOiBCdWZmZXI7XG4gIHByb3RlY3RlZCBfY29udGVudDogVXBkYXRlQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKGVudHJ5OiBGaWxlRW50cnkpIHtcbiAgICB0aGlzLl9vcmlnaW5hbCA9IG5ldyBCdWZmZXIoZW50cnkuY29udGVudCk7XG4gICAgdGhpcy5fY29udGVudCA9IG5ldyBVcGRhdGVCdWZmZXIoZW50cnkuY29udGVudCk7XG4gICAgdGhpcy5fcGF0aCA9IGVudHJ5LnBhdGg7XG4gIH1cblxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH1cblxuICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLlxuICBpbnNlcnRMZWZ0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyIHtcbiAgICB0aGlzLl9jb250ZW50Lmluc2VydExlZnQoaW5kZXgsIHR5cGVvZiBjb250ZW50ID09ICdzdHJpbmcnID8gbmV3IEJ1ZmZlcihjb250ZW50KSA6IGNvbnRlbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGluc2VydFJpZ2h0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyIHtcbiAgICB0aGlzLl9jb250ZW50Lmluc2VydFJpZ2h0KGluZGV4LCB0eXBlb2YgY29udGVudCA9PSAnc3RyaW5nJyA/IG5ldyBCdWZmZXIoY29udGVudCkgOiBjb250ZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZW1vdmUoaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBVcGRhdGVSZWNvcmRlciB7XG4gICAgdGhpcy5fY29udGVudC5yZW1vdmUoaW5kZXgsIGxlbmd0aCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhcHBseShjb250ZW50OiBCdWZmZXIpOiBCdWZmZXIge1xuICAgIGlmICghY29udGVudC5lcXVhbHModGhpcy5fY29udGVudC5vcmlnaW5hbCkpIHtcbiAgICAgIHRocm93IG5ldyBDb250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbih0aGlzLnBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29udGVudC5nZW5lcmF0ZSgpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7R0FNRztBQUNILHNEQUFrRTtBQUNsRSw0REFBc0Q7QUFJdEQ7SUFLRSxZQUFZLEtBQWdCO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVqQyw2QkFBNkI7SUFDN0IsVUFBVSxDQUFDLEtBQWEsRUFBRSxPQUF3QjtRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxPQUFPLElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTVGLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxPQUF3QjtRQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxPQUFPLElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTdGLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVwQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlO1FBQ25CLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QyxNQUFNLElBQUksc0NBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUF2Q0QsZ0RBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtDb250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge1VwZGF0ZUJ1ZmZlcn0gZnJvbSAnLi4vdXRpbGl0eS91cGRhdGUtYnVmZmVyJztcbmltcG9ydCB7RmlsZUVudHJ5LCBVcGRhdGVSZWNvcmRlcn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVSZWNvcmRlckJhc2UgaW1wbGVtZW50cyBVcGRhdGVSZWNvcmRlciB7XG4gIHByb3RlY3RlZCBfcGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX29yaWdpbmFsOiBCdWZmZXI7XG4gIHByb3RlY3RlZCBfY29udGVudDogVXBkYXRlQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKGVudHJ5OiBGaWxlRW50cnkpIHtcbiAgICB0aGlzLl9vcmlnaW5hbCA9IG5ldyBCdWZmZXIoZW50cnkuY29udGVudCk7XG4gICAgdGhpcy5fY29udGVudCA9IG5ldyBVcGRhdGVCdWZmZXIoZW50cnkuY29udGVudCk7XG4gICAgdGhpcy5fcGF0aCA9IGVudHJ5LnBhdGg7XG4gIH1cblxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH1cblxuICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLlxuICBpbnNlcnRMZWZ0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyIHtcbiAgICB0aGlzLl9jb250ZW50Lmluc2VydExlZnQoaW5kZXgsIHR5cGVvZiBjb250ZW50ID09ICdzdHJpbmcnID8gbmV3IEJ1ZmZlcihjb250ZW50KSA6IGNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBpbnNlcnRSaWdodChpbmRleDogbnVtYmVyLCBjb250ZW50OiBCdWZmZXIgfCBzdHJpbmcpOiBVcGRhdGVSZWNvcmRlciB7XG4gICAgdGhpcy5fY29udGVudC5pbnNlcnRSaWdodChpbmRleCwgdHlwZW9mIGNvbnRlbnQgPT0gJ3N0cmluZycgPyBuZXcgQnVmZmVyKGNvbnRlbnQpIDogY29udGVudCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IFVwZGF0ZVJlY29yZGVyIHtcbiAgICB0aGlzLl9jb250ZW50LnJlbW92ZShpbmRleCwgbGVuZ3RoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYXBwbHkoY29udGVudDogQnVmZmVyKTogQnVmZmVyIHtcbiAgICBpZiAoIWNvbnRlbnQuZXF1YWxzKHRoaXMuX2NvbnRlbnQub3JpZ2luYWwpKSB7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudEhhc011dGF0ZWRFeGNlcHRpb24odGhpcy5wYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY29udGVudC5nZW5lcmF0ZSgpO1xuICB9XG59XG4iXX0=

@@ -26,3 +26,3 @@ "use strict";

new filtered_1.FilteredTree(tree, predicate),
new filtered_1.FilteredTree(tree, (path, entry) => !predicate(path, entry))
new filtered_1.FilteredTree(tree, (path, entry) => !predicate(path, entry)),
];

@@ -35,2 +35,2 @@ }

exports.optimize = optimize;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc3RhdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gseUNBQXdDO0FBQ3hDLDJDQUErRDtBQUMvRCx1Q0FBc0M7QUFHdEMsbUJBQTBCLE1BQU0sQ0FBQyxJQUFJLHFCQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFBckQsc0JBQXFEO0FBRXJELGdCQUF1QixJQUFVO0lBQy9CLE1BQU0sQ0FBQyxxQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRkQsd0JBRUM7QUFFRCxlQUFzQixJQUFVLEVBQzlCLEtBQVcsRUFDWCxXQUEwQix5QkFBYSxDQUFDLE9BQU87SUFDL0MsTUFBTSxDQUFDLHFCQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUpELHNCQUlDO0FBRUQsbUJBQTBCLElBQVUsRUFBRSxTQUFpQztJQUNyRSxNQUFNLENBQUM7UUFDTCxJQUFJLHVCQUFZLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNqQyxJQUFJLHVCQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDakUsQ0FBQztBQUNKLENBQUM7QUFMRCw4QkFLQztBQUVELGtCQUF5QixJQUFVO0lBQ2pDLE1BQU0sQ0FBQyxxQkFBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRkQsNEJBRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0ZpbHRlcmVkVHJlZX0gZnJvbSAnLi9maWx0ZXJlZCc7XG5pbXBvcnQge0ZpbGVQcmVkaWNhdGUsIE1lcmdlU3RyYXRlZ3ksIFRyZWV9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7VmlydHVhbFRyZWV9IGZyb20gJy4vdmlydHVhbCc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVtcHR5KCkgeyByZXR1cm4gbmV3IFZpcnR1YWxUcmVlKCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyYW5jaCh0cmVlOiBUcmVlKSB7XG4gIHJldHVybiBWaXJ0dWFsVHJlZS5icmFuY2godHJlZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZSh0cmVlOiBUcmVlLFxuICBvdGhlcjogVHJlZSxcbiAgc3RyYXRlZ3k6IE1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHtcbiAgcmV0dXJuIFZpcnR1YWxUcmVlLm1lcmdlKHRyZWUsIG90aGVyLCBzdHJhdGVneSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJ0aXRpb24odHJlZTogVHJlZSwgcHJlZGljYXRlOiBGaWxlUHJlZGljYXRlPGJvb2xlYW4+KTogW1RyZWUsIFRyZWVdIHtcbiAgcmV0dXJuIFtcbiAgICBuZXcgRmlsdGVyZWRUcmVlKHRyZWUsIHByZWRpY2F0ZSksXG4gICAgbmV3IEZpbHRlcmVkVHJlZSh0cmVlLCAocGF0aCwgZW50cnkpID0+ICFwcmVkaWNhdGUocGF0aCwgZW50cnkpKVxuICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW1pemUodHJlZTogVHJlZSkge1xuICByZXR1cm4gVmlydHVhbFRyZWUub3B0aW1pemUodHJlZSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc3RhdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gseUNBQXdDO0FBQ3hDLDJDQUErRDtBQUMvRCx1Q0FBc0M7QUFHdEMsbUJBQTBCLE1BQU0sQ0FBQyxJQUFJLHFCQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFBckQsc0JBQXFEO0FBRXJELGdCQUF1QixJQUFVO0lBQy9CLE1BQU0sQ0FBQyxxQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRkQsd0JBRUM7QUFFRCxlQUFzQixJQUFVLEVBQUUsS0FBVyxFQUFFLFdBQTBCLHlCQUFhLENBQUMsT0FBTztJQUM1RixNQUFNLENBQUMscUJBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRkQsc0JBRUM7QUFFRCxtQkFBMEIsSUFBVSxFQUFFLFNBQWlDO0lBQ3JFLE1BQU0sQ0FBQztRQUNMLElBQUksdUJBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO1FBQ2pDLElBQUksdUJBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNqRSxDQUFDO0FBQ0osQ0FBQztBQUxELDhCQUtDO0FBRUQsa0JBQXlCLElBQVU7SUFDakMsTUFBTSxDQUFDLHFCQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7RmlsdGVyZWRUcmVlfSBmcm9tICcuL2ZpbHRlcmVkJztcbmltcG9ydCB7RmlsZVByZWRpY2F0ZSwgTWVyZ2VTdHJhdGVneSwgVHJlZX0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHtWaXJ0dWFsVHJlZX0gZnJvbSAnLi92aXJ0dWFsJztcblxuXG5leHBvcnQgZnVuY3Rpb24gZW1wdHkoKSB7IHJldHVybiBuZXcgVmlydHVhbFRyZWUoKTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gYnJhbmNoKHRyZWU6IFRyZWUpIHtcbiAgcmV0dXJuIFZpcnR1YWxUcmVlLmJyYW5jaCh0cmVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlKHRyZWU6IFRyZWUsIG90aGVyOiBUcmVlLCBzdHJhdGVneTogTWVyZ2VTdHJhdGVneSA9IE1lcmdlU3RyYXRlZ3kuRGVmYXVsdCkge1xuICByZXR1cm4gVmlydHVhbFRyZWUubWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnRpdGlvbih0cmVlOiBUcmVlLCBwcmVkaWNhdGU6IEZpbGVQcmVkaWNhdGU8Ym9vbGVhbj4pOiBbVHJlZSwgVHJlZV0ge1xuICByZXR1cm4gW1xuICAgIG5ldyBGaWx0ZXJlZFRyZWUodHJlZSwgcHJlZGljYXRlKSxcbiAgICBuZXcgRmlsdGVyZWRUcmVlKHRyZWUsIChwYXRoLCBlbnRyeSkgPT4gIXByZWRpY2F0ZShwYXRoLCBlbnRyeSkpLFxuICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW1pemUodHJlZTogVHJlZSkge1xuICByZXR1cm4gVmlydHVhbFRyZWUub3B0aW1pemUodHJlZSk7XG59XG4iXX0=
/// <reference types="node" />
import { SchematicPath } from '../utility/path';
import { Action, ActionList } from './action';
import { FileEntry, MergeStrategy, Tree, UpdateRecorder } from './interface';
import { Action, ActionList } from './action';
import { SchematicPath } from '../utility/path';
/**

@@ -38,3 +38,3 @@ * The root class of most trees.

protected _create(path: SchematicPath, content: Buffer, action?: Action): void;
protected _rename(path: SchematicPath, to: SchematicPath, action?: Action): void;
protected _rename(path: SchematicPath, to: SchematicPath, action?: Action, force?: boolean): void;
protected _delete(path: SchematicPath, action?: Action): void;

@@ -41,0 +41,0 @@ apply(action: Action, strategy: MergeStrategy): void;

@@ -10,8 +10,8 @@ "use strict";

*/
const exception_1 = require("../exception/exception");
const path_1 = require("../utility/path");
const action_1 = require("./action");
const entry_1 = require("./entry");
const interface_1 = require("./interface");
const recorder_1 = require("./recorder");
const interface_1 = require("./interface");
const action_1 = require("./action");
const path_1 = require("../utility/path");
const exception_1 = require("../exception/exception");
/**

@@ -142,7 +142,7 @@ * The root class of most trees.

}
_rename(path, to, action) {
_rename(path, to, action, force = false) {
if (!this._cacheMap.has(path)) {
throw new exception_1.FileDoesNotExistException(path);
}
if (this._cacheMap.has(to)) {
if (this._cacheMap.has(to) && !force) {
throw new exception_1.FileAlreadyExistException(to);

@@ -195,3 +195,4 @@ }

case 'r':
this._rename(action.path, action.to, action);
const force = (strategy & interface_1.MergeStrategy.AllowOverwriteConflict) != 0;
this._rename(action.path, action.to, action, force);
break;

@@ -248,2 +249,2 @@ case 'd':

exports.VirtualTree = VirtualTree;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3ZpcnR1YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxtQ0FBd0M7QUFDeEMseUNBQThDO0FBQzlDLDJDQUEyRTtBQUMzRSxxQ0FBb0U7QUFDcEUsMENBQTZEO0FBRTdELHNEQUtnQztBQUdoQzs7R0FFRztBQUNIO0lBQUE7UUFDWSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFDNUMsYUFBUSxHQUFHLElBQUksbUJBQVUsRUFBRSxDQUFDO1FBQzVCLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQTRPNUQsQ0FBQztJQTFPQzs7OztPQUlHO0lBQ08sY0FBYyxDQUFDLElBQVk7UUFDbkMsTUFBTSxDQUFDLG9CQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksS0FBSztRQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxj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QyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBQ3RCLE1BQU0sQ0FBRSxJQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQVUsRUFBRSxLQUFXLEVBQUUsV0FBMEIseUJBQWEsQ0FBQyxPQUFPO1FBQ25GLE1BQU0sT0FBTyxHQUFJLElBQW9CLENBQUMsTUFBTSxFQUFpQixDQUFDO1FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUUsS0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVU7UUFDeEIsTUFBTSxPQUFPLEdBQUksSUFBb0IsQ0FBQyxNQUFNLEVBQWlCLENBQUM7UUFDOUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBL09ELGtDQStPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7U2ltcGxlRmlsZUVudHJ5fSBmcm9tICcuL2VudHJ5JztcbmltcG9ydCB7VXBkYXRlUmVjb3JkZXJCYXNlfSBmcm9tICcuL3JlY29yZGVyJztcbmltcG9ydCB7RmlsZUVudHJ5LCBNZXJnZVN0cmF0ZWd5LCBUcmVlLCBVcGRhdGVSZWNvcmRlcn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHtBY3Rpb24sIEFjdGlvbkxpc3QsIFVua25vd25BY3Rpb25FeGNlcHRpb259IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7bm9ybWFsaXplUGF0aCwgU2NoZW1hdGljUGF0aH0gZnJvbSAnLi4vdXRpbGl0eS9wYXRoJztcblxuaW1wb3J0IHtcbiAgQ29udGVudEhhc011dGF0ZWRFeGNlcHRpb24sXG4gIEZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24sXG4gIEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24sXG4gIEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24sIE1lcmdlQ29uZmxpY3RFeGNlcHRpb25cbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5cblxuLyoqXG4gKiBUaGUgcm9vdCBjbGFzcyBvZiBtb3N0IHRyZWVzLlxuICovXG5leHBvcnQgY2xhc3MgVmlydHVhbFRyZWUgaW1wbGVtZW50cyBUcmVlIHtcbiAgcHJvdGVjdGVkIF9yb290ID0gbmV3IE1hcDxTY2hlbWF0aWNQYXRoLCBGaWxlRW50cnk+KCk7XG4gIHByb3RlY3RlZCBfYWN0aW9ucyA9IG5ldyBBY3Rpb25MaXN0KCk7XG4gIHByb3RlY3RlZCBfY2FjaGVNYXAgPSBuZXcgTWFwPFNjaGVtYXRpY1BhdGgsIEZpbGVFbnRyeT4oKTtcblxuICAvKipcbiAgICogTm9ybWFsaXplIHRoZSBwYXRoLiBNYWRlIGF2YWlsYWJsZSB0byBzdWJjbGFzc2VzIHRvIG92ZXJsb2FkLlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBub3JtYWxpemUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEEgcGF0aCB0aGF0IGlzIHJlc29sdmVkIGFuZCBub3JtYWxpemVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIF9ub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZyk6IFNjaGVtYXRpY1BhdGgge1xuICAgIHJldHVybiBub3JtYWxpemVQYXRoKHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmaWxlIG5hbWVzIGNvbnRhaW5lZCBieSB0aGlzIFRyZWUuXG4gICAqIEByZXR1cm5zIHtbc3RyaW5nXX0gRmlsZSBwYXRocy5cbiAgICovXG4gIGdldCBmaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0PHN0cmluZz4oWy4uLnRoaXMuX3Jvb3Qua2V5cygpLCAuLi50aGlzLl9jYWNoZU1hcC5rZXlzKCldKS52YWx1ZXMoKV07XG4gIH1cblxuICBnZXQgcm9vdCgpIHtcbiAgICByZXR1cm4gbmV3IE1hcCh0aGlzLl9yb290KTtcbiAgfVxuICBnZXQgc3RhZ2luZygpIHtcbiAgICByZXR1cm4gbmV3IE1hcCh0aGlzLl9jYWNoZU1hcCk7XG4gIH1cblxuICBnZXQocGF0aDogc3RyaW5nKTogRmlsZUVudHJ5IHwgbnVsbCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSB0aGlzLl9ub3JtYWxpemVQYXRoKHBhdGgpO1xuICAgIHJldHVybiB0aGlzLl9jYWNoZU1hcC5nZXQobm9ybWFsaXplZFBhdGgpIHx8IHRoaXMuX3Jvb3QuZ2V0KG5vcm1hbGl6ZWRQYXRoKSB8fCBudWxsO1xuICB9XG4gIGhhcyhwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXQocGF0aCkgIT0gbnVsbDtcbiAgfVxuICBzZXQoZW50cnk6IEZpbGVFbnRyeSkge1xuICAgIHJldHVybiB0aGlzLl9jYWNoZU1hcC5zZXQoZW50cnkucGF0aCwgZW50cnkpO1xuICB9XG5cbiAgZXhpc3RzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcyhwYXRoKTtcbiAgfVxuXG4gIHJlYWQocGF0aDogc3RyaW5nKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTtcbiAgICByZXR1cm4gZW50cnkgPyBlbnRyeS5jb250ZW50IDogbnVsbDtcbiAgfVxuXG4gIGJlZ2luVXBkYXRlKHBhdGg6IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyIHtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpO1xuICAgIGlmICghZW50cnkpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFVwZGF0ZVJlY29yZGVyQmFzZShlbnRyeSk7XG4gIH1cblxuICBjb21taXRVcGRhdGUocmVjb3JkOiBVcGRhdGVSZWNvcmRlcikge1xuICAgIGlmIChyZWNvcmQgaW5zdGFuY2VvZiBVcGRhdGVSZWNvcmRlckJhc2UpIHtcbiAgICAgIGNvbnN0IHBhdGggPSByZWNvcmQucGF0aDtcbiAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5nZXQocGF0aCk7XG4gICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbihwYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbnRlbnQgPSByZWNvcmQuYXBwbHkoZW50cnkuY29udGVudCk7XG4gICAgICAgIHRoaXMub3ZlcndyaXRlKHBhdGgsIG5ld0NvbnRlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFVwZGF0ZVJlY29yZEV4Y2VwdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJ3cml0ZShwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZykge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRUbyA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09ICdzdHJpbmcnKSB7XG4gICAgICBjb250ZW50ID0gbmV3IEJ1ZmZlcihjb250ZW50LCAndXRmLTgnKTtcbiAgICB9XG4gICAgY29uc3QgbWF5YmVFbnRyeSA9IHRoaXMuZ2V0KG5vcm1hbGl6ZWRUbyk7XG4gICAgaWYgKG1heWJlRW50cnkgJiYgbWF5YmVFbnRyeS5jb250ZW50LmVxdWFscyhjb250ZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vdmVyd3JpdGUobm9ybWFsaXplZFRvLCBjb250ZW50KTtcbiAgfVxuICBjcmVhdGUocGF0aDogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemVkVG8gPSB0aGlzLl9ub3JtYWxpemVQYXRoKHBhdGgpO1xuICAgIGlmICh0eXBlb2YgY29udGVudCA9PSAnc3RyaW5nJykge1xuICAgICAgY29udGVudCA9IG5ldyBCdWZmZXIoY29udGVudCk7XG4gICAgfVxuICAgIHRoaXMuX2NyZWF0ZShub3JtYWxpemVkVG8sIGNvbnRlbnQpO1xuICB9XG4gIHJlbmFtZShwYXRoOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFRvID0gdGhpcy5fbm9ybWFsaXplUGF0aCh0byk7XG4gICAgaWYgKG5vcm1hbGl6ZWRQYXRoID09PSBub3JtYWxpemVkVG8pIHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gZG8uXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlbmFtZShub3JtYWxpemVkUGF0aCwgbm9ybWFsaXplZFRvKTtcbiAgfVxuXG4gIGRlbGV0ZShwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9kZWxldGUodGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX292ZXJ3cml0ZShwYXRoOiBTY2hlbWF0aWNQYXRoLCBjb250ZW50OiBCdWZmZXIsIGFjdGlvbj86IEFjdGlvbikge1xuICAgIGlmICghdGhpcy5oYXMocGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICAgIH1cbiAgICAvLyBVcGRhdGUgdGhlIGFjdGlvbiBidWZmZXIuXG4gICAgaWYgKGFjdGlvbikge1xuICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2FjdGlvbnMub3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpO1xuICAgIH1cbiAgICB0aGlzLnNldChuZXcgU2ltcGxlRmlsZUVudHJ5KHBhdGgsIGNvbnRlbnQpKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2NyZWF0ZShwYXRoOiBTY2hlbWF0aWNQYXRoLCBjb250ZW50OiBCdWZmZXIsIGFjdGlvbj86IEFjdGlvbikge1xuICAgIGlmICh0aGlzLl9jYWNoZU1hcC5oYXMocGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICAgIH1cblxuICAgIGlmIChhY3Rpb24pIHtcbiAgICAgIHRoaXMuX2FjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hY3Rpb25zLmNyZWF0ZShwYXRoLCBjb250ZW50KTtcbiAgICB9XG4gICAgdGhpcy5zZXQobmV3IFNpbXBsZUZpbGVFbnRyeShwYXRoLCBjb250ZW50IGFzIEJ1ZmZlcikpO1xuICB9XG4gIHByb3RlY3RlZCBfcmVuYW1lKHBhdGg6IFNjaGVtYXRpY1BhdGgsIHRvOiBTY2hlbWF0aWNQYXRoLCBhY3Rpb24/OiBBY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMuX2NhY2hlTWFwLmhhcyhwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jYWNoZU1hcC5oYXModG8pKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbih0byk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGlvbikge1xuICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2FjdGlvbnMucmVuYW1lKHBhdGgsIHRvKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpICE7XG4gICAgdGhpcy5zZXQobmV3IFNpbXBsZUZpbGVFbnRyeSh0bywgZW50cnkuY29udGVudCkpO1xuICAgIHRoaXMuX2NhY2hlTWFwLmRlbGV0ZShwYXRoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2RlbGV0ZShwYXRoOiBTY2hlbWF0aWNQYXRoLCBhY3Rpb24/OiBBY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMuaGFzKHBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aW9uKSB7XG4gICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYWN0aW9ucy5kZWxldGUocGF0aCk7XG4gICAgfVxuICAgIHRoaXMuX2NhY2hlTWFwLmRlbGV0ZShwYXRoKTtcbiAgfVxuXG5cbiAgYXBwbHkoYWN0aW9uOiBBY3Rpb24sIHN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5KSB7XG4gICAgaWYgKHRoaXMuX2FjdGlvbnMuaGFzKGFjdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChhY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSAnbyc6XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgYWN0aW9uIGJ1ZmZlci5cbiAgICAgICAgdGhpcy5fb3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCwgYWN0aW9uKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2MnOlxuICAgICAgICBpZiAodGhpcy5fY2FjaGVNYXAuaGFzKGFjdGlvbi5wYXRoKSkge1xuICAgICAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgTWVyZ2VTdHJhdGVneS5FcnJvcjogdGhyb3cgbmV3IE1lcmdlQ29uZmxpY3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpO1xuICAgICAgICAgICAgY2FzZSBNZXJnZVN0cmF0ZWd5Lk92ZXJ3cml0ZTpcbiAgICAgICAgICAgICAgdGhpcy5fb3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCwgYWN0aW9uKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZShhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQsIGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3InOiB0aGlzLl9yZW5hbWUoYWN0aW9uLnBhdGgsIGFjdGlvbi50bywgYWN0aW9uKTsgYnJlYWs7XG4gICAgICBjYXNlICdkJzogdGhpcy5fZGVsZXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24pOyBicmVhaztcblxuICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IFVua25vd25BY3Rpb25FeGNlcHRpb24oYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXR1cm5zIGFuIG9yZGVyZWQgbGlzdCBvZiBBY3Rpb24gdG8gZ2V0IHRoaXMgaG9zdC5cbiAgZ2V0IGFjdGlvbnMoKTogQWN0aW9uW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fYWN0aW9uc107XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgc3ViY2xhc3NlcyB0byBjb3B5IHRvIGEgdHJlZSB0aGVpciBvd24gcHJvcGVydGllcy5cbiAgICogQHJldHVybiB7VHJlZX1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByb3RlY3RlZCBfY29weVRvPFQgZXh0ZW5kcyBWaXJ0dWFsVHJlZT4odHJlZTogVCk6IHZvaWQge1xuICAgIHRyZWUuX3Jvb3QgPSBuZXcgTWFwKHRoaXMuX3Jvb3QpO1xuICAgIHRoaXMuX2FjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4gdHJlZS5fYWN0aW9ucy5wdXNoKGFjdGlvbikpO1xuICAgIFsuLi50aGlzLl9jYWNoZU1hcC5lbnRyaWVzKCldLmZvckVhY2goKFtwYXRoLCBlbnRyeV0pID0+IHtcbiAgICAgIHRyZWUuX2NhY2hlTWFwLnNldChwYXRoLCBlbnRyeSk7XG4gICAgfSk7XG4gIH1cblxuICBicmFuY2goKTogVHJlZSB7XG4gICAgY29uc3QgbmV3VHJlZSA9IG5ldyBWaXJ0dWFsVHJlZSgpO1xuICAgIHRoaXMuX2NvcHlUbyhuZXdUcmVlKTtcbiAgICByZXR1cm4gbmV3VHJlZTtcbiAgfVxuXG4gIC8vIENyZWF0ZXMgYSBuZXcgaG9zdCBmcm9tIDIgaG9zdHMuXG4gIG1lcmdlKG90aGVyOiBUcmVlLCBzdHJhdGVneTogTWVyZ2VTdHJhdGVneSA9IE1lcmdlU3RyYXRlZ3kuRGVmYXVsdCkge1xuICAgIG90aGVyLmFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4gdGhpcy5hcHBseShhY3Rpb24sIHN0cmF0ZWd5KSk7XG4gIH1cblxuICBvcHRpbWl6ZSgpIHtcbiAgICAvLyBUaGlzIGRlc3Ryb3lzIHRoZSBoaXN0b3J5LiBIb3BlIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgIHRoaXMuX2FjdGlvbnMub3B0aW1pemUoKTtcbiAgfVxuXG4gIHN0YXRpYyBicmFuY2godHJlZTogVHJlZSkge1xuICAgIHJldHVybiAodHJlZSBhcyBWaXJ0dWFsVHJlZSkuYnJhbmNoKCk7XG4gIH1cblxuICBzdGF0aWMgbWVyZ2UodHJlZTogVHJlZSwgb3RoZXI6IFRyZWUsIHN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5ID0gTWVyZ2VTdHJhdGVneS5EZWZhdWx0KTogVHJlZSB7XG4gICAgY29uc3QgbmV3VHJlZSA9ICh0cmVlIGFzIFZpcnR1YWxUcmVlKS5icmFuY2goKSBhcyBWaXJ0dWFsVHJlZTtcbiAgICBuZXdUcmVlLm1lcmdlKChvdGhlciBhcyBWaXJ0dWFsVHJlZSksIHN0cmF0ZWd5KTtcbiAgICByZXR1cm4gbmV3VHJlZTtcbiAgfVxuXG4gIHN0YXRpYyBvcHRpbWl6ZSh0cmVlOiBUcmVlKSB7XG4gICAgY29uc3QgbmV3VHJlZSA9ICh0cmVlIGFzIFZpcnR1YWxUcmVlKS5icmFuY2goKSBhcyBWaXJ0dWFsVHJlZTtcbiAgICBuZXdUcmVlLm9wdGltaXplKCk7XG4gICAgcmV0dXJuIG5ld1RyZWU7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3ZpcnR1YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxzREFNZ0M7QUFDaEMsMENBQTZEO0FBQzdELHFDQUFvRTtBQUNwRSxtQ0FBd0M7QUFDeEMsMkNBQTJFO0FBQzNFLHlDQUE4QztBQUc5Qzs7R0FFRztBQUNIO0lBQUE7UUFDWSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFDNUMsYUFBUSxHQUFHLElBQUksbUJBQVUsRUFBRSxDQUFDO1FBQzVCLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQXNQNUQsQ0FBQztJQXBQQzs7OztPQUlHO0lBQ08sY0FBYyxDQUFDLElBQVk7UUFDbkMsTUFBTSxDQUFDLG9CQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksS0FBSztRQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWTtRQUNkLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxj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QUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFFBQVE7UUFDTiw4REFBOEQ7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBQ3RCLE1BQU0sQ0FBRSxJQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQVUsRUFBRSxLQUFXLEVBQUUsV0FBMEIseUJBQWEsQ0FBQyxPQUFPO1FBQ25GLE1BQU0sT0FBTyxHQUFJLElBQW9CLENBQUMsTUFBTSxFQUFpQixDQUFDO1FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUUsS0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoRCxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVU7UUFDeEIsTUFBTSxPQUFPLEdBQUksSUFBb0IsQ0FBQyxNQUFNLEVBQWlCLENBQUM7UUFDOUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBelBELGtDQXlQQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7XG4gIENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uLFxuICBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uLFxuICBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uLFxuICBJbnZhbGlkVXBkYXRlUmVjb3JkRXhjZXB0aW9uLFxuICBNZXJnZUNvbmZsaWN0RXhjZXB0aW9uLFxufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcbmltcG9ydCB7U2NoZW1hdGljUGF0aCwgbm9ybWFsaXplUGF0aH0gZnJvbSAnLi4vdXRpbGl0eS9wYXRoJztcbmltcG9ydCB7QWN0aW9uLCBBY3Rpb25MaXN0LCBVbmtub3duQWN0aW9uRXhjZXB0aW9ufSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQge1NpbXBsZUZpbGVFbnRyeX0gZnJvbSAnLi9lbnRyeSc7XG5pbXBvcnQge0ZpbGVFbnRyeSwgTWVyZ2VTdHJhdGVneSwgVHJlZSwgVXBkYXRlUmVjb3JkZXJ9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7VXBkYXRlUmVjb3JkZXJCYXNlfSBmcm9tICcuL3JlY29yZGVyJztcblxuXG4vKipcbiAqIFRoZSByb290IGNsYXNzIG9mIG1vc3QgdHJlZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWaXJ0dWFsVHJlZSBpbXBsZW1lbnRzIFRyZWUge1xuICBwcm90ZWN0ZWQgX3Jvb3QgPSBuZXcgTWFwPFNjaGVtYXRpY1BhdGgsIEZpbGVFbnRyeT4oKTtcbiAgcHJvdGVjdGVkIF9hY3Rpb25zID0gbmV3IEFjdGlvbkxpc3QoKTtcbiAgcHJvdGVjdGVkIF9jYWNoZU1hcCA9IG5ldyBNYXA8U2NoZW1hdGljUGF0aCwgRmlsZUVudHJ5PigpO1xuXG4gIC8qKlxuICAgKiBOb3JtYWxpemUgdGhlIHBhdGguIE1hZGUgYXZhaWxhYmxlIHRvIHN1YmNsYXNzZXMgdG8gb3ZlcmxvYWQuXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIG5vcm1hbGl6ZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gQSBwYXRoIHRoYXQgaXMgcmVzb2x2ZWQgYW5kIG5vcm1hbGl6ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgX25vcm1hbGl6ZVBhdGgocGF0aDogc3RyaW5nKTogU2NoZW1hdGljUGF0aCB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVBhdGgocGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQSBsaXN0IG9mIGZpbGUgbmFtZXMgY29udGFpbmVkIGJ5IHRoaXMgVHJlZS5cbiAgICogQHJldHVybnMge1tzdHJpbmddfSBGaWxlIHBhdGhzLlxuICAgKi9cbiAgZ2V0IGZpbGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQ8c3RyaW5nPihbLi4udGhpcy5fcm9vdC5rZXlzKCksIC4uLnRoaXMuX2NhY2hlTWFwLmtleXMoKV0pLnZhbHVlcygpXTtcbiAgfVxuXG4gIGdldCByb290KCkge1xuICAgIHJldHVybiBuZXcgTWFwKHRoaXMuX3Jvb3QpO1xuICB9XG4gIGdldCBzdGFnaW5nKCkge1xuICAgIHJldHVybiBuZXcgTWFwKHRoaXMuX2NhY2hlTWFwKTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcpOiBGaWxlRW50cnkgfCBudWxsIHtcbiAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7XG5cbiAgICByZXR1cm4gdGhpcy5fY2FjaGVNYXAuZ2V0KG5vcm1hbGl6ZWRQYXRoKSB8fCB0aGlzLl9yb290LmdldChub3JtYWxpemVkUGF0aCkgfHwgbnVsbDtcbiAgfVxuICBoYXMocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KHBhdGgpICE9IG51bGw7XG4gIH1cbiAgc2V0KGVudHJ5OiBGaWxlRW50cnkpIHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVNYXAuc2V0KGVudHJ5LnBhdGgsIGVudHJ5KTtcbiAgfVxuXG4gIGV4aXN0cyhwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMocGF0aCk7XG4gIH1cblxuICByZWFkKHBhdGg6IHN0cmluZyk6IEJ1ZmZlciB8IG51bGwge1xuICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5nZXQocGF0aCk7XG5cbiAgICByZXR1cm4gZW50cnkgPyBlbnRyeS5jb250ZW50IDogbnVsbDtcbiAgfVxuXG4gIGJlZ2luVXBkYXRlKHBhdGg6IHN0cmluZyk6IFVwZGF0ZVJlY29yZGVyIHtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpO1xuICAgIGlmICghZW50cnkpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVXBkYXRlUmVjb3JkZXJCYXNlKGVudHJ5KTtcbiAgfVxuXG4gIGNvbW1pdFVwZGF0ZShyZWNvcmQ6IFVwZGF0ZVJlY29yZGVyKSB7XG4gICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIFVwZGF0ZVJlY29yZGVyQmFzZSkge1xuICAgICAgY29uc3QgcGF0aCA9IHJlY29yZC5wYXRoO1xuICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTtcbiAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlY29yZC5hcHBseShlbnRyeS5jb250ZW50KTtcbiAgICAgICAgdGhpcy5vdmVyd3JpdGUocGF0aCwgbmV3Q29udGVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVXBkYXRlUmVjb3JkRXhjZXB0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcndyaXRlKHBhdGg6IHN0cmluZywgY29udGVudDogQnVmZmVyIHwgc3RyaW5nKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFRvID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnRlbnQgPSBuZXcgQnVmZmVyKGNvbnRlbnQsICd1dGYtOCcpO1xuICAgIH1cbiAgICBjb25zdCBtYXliZUVudHJ5ID0gdGhpcy5nZXQobm9ybWFsaXplZFRvKTtcbiAgICBpZiAobWF5YmVFbnRyeSAmJiBtYXliZUVudHJ5LmNvbnRlbnQuZXF1YWxzKGNvbnRlbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJ3cml0ZShub3JtYWxpemVkVG8sIGNvbnRlbnQpO1xuICB9XG4gIGNyZWF0ZShwYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IEJ1ZmZlciB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRUbyA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09ICdzdHJpbmcnKSB7XG4gICAgICBjb250ZW50ID0gbmV3IEJ1ZmZlcihjb250ZW50KTtcbiAgICB9XG4gICAgdGhpcy5fY3JlYXRlKG5vcm1hbGl6ZWRUbywgY29udGVudCk7XG4gIH1cbiAgcmVuYW1lKHBhdGg6IHN0cmluZywgdG86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTtcbiAgICBjb25zdCBub3JtYWxpemVkVG8gPSB0aGlzLl9ub3JtYWxpemVQYXRoKHRvKTtcbiAgICBpZiAobm9ybWFsaXplZFBhdGggPT09IG5vcm1hbGl6ZWRUbykge1xuICAgICAgLy8gTm90aGluZyB0byBkby5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVuYW1lKG5vcm1hbGl6ZWRQYXRoLCBub3JtYWxpemVkVG8pO1xuICB9XG5cbiAgZGVsZXRlKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2RlbGV0ZSh0aGlzLl9ub3JtYWxpemVQYXRoKHBhdGgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfb3ZlcndyaXRlKHBhdGg6IFNjaGVtYXRpY1BhdGgsIGNvbnRlbnQ6IEJ1ZmZlciwgYWN0aW9uPzogQWN0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmhhcyhwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gICAgfVxuICAgIC8vIFVwZGF0ZSB0aGUgYWN0aW9uIGJ1ZmZlci5cbiAgICBpZiAoYWN0aW9uKSB7XG4gICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYWN0aW9ucy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7XG4gICAgfVxuICAgIHRoaXMuc2V0KG5ldyBTaW1wbGVGaWxlRW50cnkocGF0aCwgY29udGVudCkpO1xuICB9XG4gIHByb3RlY3RlZCBfY3JlYXRlKHBhdGg6IFNjaGVtYXRpY1BhdGgsIGNvbnRlbnQ6IEJ1ZmZlciwgYWN0aW9uPzogQWN0aW9uKSB7XG4gICAgaWYgKHRoaXMuX2NhY2hlTWFwLmhhcyhwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGlvbikge1xuICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2FjdGlvbnMuY3JlYXRlKHBhdGgsIGNvbnRlbnQpO1xuICAgIH1cbiAgICB0aGlzLnNldChuZXcgU2ltcGxlRmlsZUVudHJ5KHBhdGgsIGNvbnRlbnQgYXMgQnVmZmVyKSk7XG4gIH1cbiAgcHJvdGVjdGVkIF9yZW5hbWUocGF0aDogU2NoZW1hdGljUGF0aCwgdG86IFNjaGVtYXRpY1BhdGgsIGFjdGlvbj86IEFjdGlvbiwgZm9yY2UgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy5fY2FjaGVNYXAuaGFzKHBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NhY2hlTWFwLmhhcyh0bykgJiYgIWZvcmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbih0byk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGlvbikge1xuICAgICAgdGhpcy5fYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2FjdGlvbnMucmVuYW1lKHBhdGgsIHRvKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpICE7XG4gICAgdGhpcy5zZXQobmV3IFNpbXBsZUZpbGVFbnRyeSh0bywgZW50cnkuY29udGVudCkpO1xuICAgIHRoaXMuX2NhY2hlTWFwLmRlbGV0ZShwYXRoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2RlbGV0ZShwYXRoOiBTY2hlbWF0aWNQYXRoLCBhY3Rpb24/OiBBY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMuaGFzKHBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aW9uKSB7XG4gICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYWN0aW9ucy5kZWxldGUocGF0aCk7XG4gICAgfVxuICAgIHRoaXMuX2NhY2hlTWFwLmRlbGV0ZShwYXRoKTtcbiAgfVxuXG5cbiAgYXBwbHkoYWN0aW9uOiBBY3Rpb24sIHN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5KSB7XG4gICAgaWYgKHRoaXMuX2FjdGlvbnMuaGFzKGFjdGlvbikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChhY3Rpb24ua2luZCkge1xuICAgICAgY2FzZSAnbyc6XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgYWN0aW9uIGJ1ZmZlci5cbiAgICAgICAgdGhpcy5fb3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCwgYWN0aW9uKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2MnOlxuICAgICAgICBpZiAodGhpcy5fY2FjaGVNYXAuaGFzKGFjdGlvbi5wYXRoKSkge1xuICAgICAgICAgIHN3aXRjaCAoc3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNhc2UgTWVyZ2VTdHJhdGVneS5FcnJvcjogdGhyb3cgbmV3IE1lcmdlQ29uZmxpY3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpO1xuICAgICAgICAgICAgY2FzZSBNZXJnZVN0cmF0ZWd5Lk92ZXJ3cml0ZTpcbiAgICAgICAgICAgICAgdGhpcy5fb3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCwgYWN0aW9uKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZShhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQsIGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3InOlxuICAgICAgICBjb25zdCBmb3JjZSA9IChzdHJhdGVneSAmIE1lcmdlU3RyYXRlZ3kuQWxsb3dPdmVyd3JpdGVDb25mbGljdCkgIT0gMDtcbiAgICAgICAgdGhpcy5fcmVuYW1lKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8sIGFjdGlvbiwgZm9yY2UpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZCc6IHRoaXMuX2RlbGV0ZShhY3Rpb24ucGF0aCwgYWN0aW9uKTsgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBVbmtub3duQWN0aW9uRXhjZXB0aW9uKGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gUmV0dXJucyBhbiBvcmRlcmVkIGxpc3Qgb2YgQWN0aW9uIHRvIGdldCB0aGlzIGhvc3QuXG4gIGdldCBhY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2FjdGlvbnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93IHN1YmNsYXNzZXMgdG8gY29weSB0byBhIHRyZWUgdGhlaXIgb3duIHByb3BlcnRpZXMuXG4gICAqIEByZXR1cm4ge1RyZWV9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2NvcHlUbzxUIGV4dGVuZHMgVmlydHVhbFRyZWU+KHRyZWU6IFQpOiB2b2lkIHtcbiAgICB0cmVlLl9yb290ID0gbmV3IE1hcCh0aGlzLl9yb290KTtcbiAgICB0aGlzLl9hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHRyZWUuX2FjdGlvbnMucHVzaChhY3Rpb24pKTtcbiAgICBbLi4udGhpcy5fY2FjaGVNYXAuZW50cmllcygpXS5mb3JFYWNoKChbcGF0aCwgZW50cnldKSA9PiB7XG4gICAgICB0cmVlLl9jYWNoZU1hcC5zZXQocGF0aCwgZW50cnkpO1xuICAgIH0pO1xuICB9XG5cbiAgYnJhbmNoKCk6IFRyZWUge1xuICAgIGNvbnN0IG5ld1RyZWUgPSBuZXcgVmlydHVhbFRyZWUoKTtcbiAgICB0aGlzLl9jb3B5VG8obmV3VHJlZSk7XG5cbiAgICByZXR1cm4gbmV3VHJlZTtcbiAgfVxuXG4gIC8vIENyZWF0ZXMgYSBuZXcgaG9zdCBmcm9tIDIgaG9zdHMuXG4gIG1lcmdlKG90aGVyOiBUcmVlLCBzdHJhdGVneTogTWVyZ2VTdHJhdGVneSA9IE1lcmdlU3RyYXRlZ3kuRGVmYXVsdCkge1xuICAgIG90aGVyLmFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4gdGhpcy5hcHBseShhY3Rpb24sIHN0cmF0ZWd5KSk7XG4gIH1cblxuICBvcHRpbWl6ZSgpIHtcbiAgICAvLyBUaGlzIGRlc3Ryb3lzIHRoZSBoaXN0b3J5LiBIb3BlIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLlxuICAgIHRoaXMuX2FjdGlvbnMub3B0aW1pemUoKTtcbiAgfVxuXG4gIHN0YXRpYyBicmFuY2godHJlZTogVHJlZSkge1xuICAgIHJldHVybiAodHJlZSBhcyBWaXJ0dWFsVHJlZSkuYnJhbmNoKCk7XG4gIH1cblxuICBzdGF0aWMgbWVyZ2UodHJlZTogVHJlZSwgb3RoZXI6IFRyZWUsIHN0cmF0ZWd5OiBNZXJnZVN0cmF0ZWd5ID0gTWVyZ2VTdHJhdGVneS5EZWZhdWx0KTogVHJlZSB7XG4gICAgY29uc3QgbmV3VHJlZSA9ICh0cmVlIGFzIFZpcnR1YWxUcmVlKS5icmFuY2goKSBhcyBWaXJ0dWFsVHJlZTtcbiAgICBuZXdUcmVlLm1lcmdlKChvdGhlciBhcyBWaXJ0dWFsVHJlZSksIHN0cmF0ZWd5KTtcblxuICAgIHJldHVybiBuZXdUcmVlO1xuICB9XG5cbiAgc3RhdGljIG9wdGltaXplKHRyZWU6IFRyZWUpIHtcbiAgICBjb25zdCBuZXdUcmVlID0gKHRyZWUgYXMgVmlydHVhbFRyZWUpLmJyYW5jaCgpIGFzIFZpcnR1YWxUcmVlO1xuICAgIG5ld1RyZWUub3B0aW1pemUoKTtcblxuICAgIHJldHVybiBuZXdUcmVlO1xuICB9XG59XG4iXX0=

@@ -66,2 +66,2 @@ "use strict";

exports.LinkedList = LinkedList;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWxpc3QuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdXRpbGl0eS9saW5rZWQtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVIO0lBQ0UsWUFBb0IsS0FBUTtRQUFSLFVBQUssR0FBTCxLQUFLLENBQUc7SUFBRyxDQUFDO0lBRWhDLEdBQUcsQ0FBQyxDQUFTO1FBQ1gsSUFBSSxDQUFDLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFJLE1BQU07UUFDUixJQUFJLENBQUMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUNELE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsTUFBTSxDQUFJLFdBQW9ELEVBQUUsSUFBTztRQUNyRSxJQUFJLENBQUMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFnRDtRQUNuRCxJQUFJLENBQUMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsS0FBSyxDQUFDO1lBQ1IsQ0FBQztZQUNELENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDYixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBMkM7UUFDakQsSUFBSSxDQUFDLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNkLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBekRELGdDQXlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IGNsYXNzIExpbmtlZExpc3Q8VCBleHRlbmRzIHtuZXh0OiBUIHwgbnVsbH0+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaGVhZDogVCkge31cblxuICBnZXQobDogbnVtYmVyKSB7XG4gICAgbGV0IGM6IFQgfCBudWxsID0gdGhpcy5faGVhZDtcbiAgICB3aGlsZSAoYyAmJiBsID4gMCkge1xuICAgICAgbC0tO1xuICAgICAgYyA9IGMubmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIGM7XG4gIH1cblxuICBnZXQgaGVhZCgpIHsgcmV0dXJuIHRoaXMuX2hlYWQ7IH1cbiAgZ2V0IGxlbmd0aCgpIHtcbiAgICBsZXQgYzogVCB8IG51bGwgPSB0aGlzLl9oZWFkO1xuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAoYykge1xuICAgICAgaSsrO1xuICAgICAgYyA9IGMubmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIGk7XG4gIH1cblxuICByZWR1Y2U8Uj4oYWNjdW11bGF0b3I6IChhY2M6IFIsIHZhbHVlOiBULCBpbmRleD86IG51bWJlcikgPT4gUiwgc2VlZDogUikge1xuICAgIGxldCBjOiBUIHwgbnVsbCA9IHRoaXMuX2hlYWQ7XG4gICAgbGV0IGFjYyA9IHNlZWQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlIChjKSB7XG4gICAgICBhY2MgPSBhY2N1bXVsYXRvcihhY2MsIGMsIGkpO1xuICAgICAgaSsrO1xuICAgICAgYyA9IGMubmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIGZpbmQocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4PzogbnVtYmVyKSA9PiBib29sZWFuKSB7XG4gICAgbGV0IGM6IFQgfCBudWxsID0gdGhpcy5faGVhZDtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKGMpIHtcbiAgICAgIGlmIChwcmVkaWNhdGUoYywgaSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgICBjID0gYy5uZXh0O1xuICAgIH1cbiAgICByZXR1cm4gYztcbiAgfVxuXG4gIGZvckVhY2godmlzaXRvcjogKHZhbHVlOiBULCBpbmRleD86IG51bWJlcikgPT4gdm9pZCkge1xuICAgIGxldCBjOiBUIHwgbnVsbCA9IHRoaXMuX2hlYWQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlIChjKSB7XG4gICAgICB2aXNpdG9yKGMsIGkpO1xuICAgICAgaSsrO1xuICAgICAgYyA9IGMubmV4dDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWxpc3QuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvc2NoZW1hdGljcy9zcmMvdXRpbGl0eS9saW5rZWQtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVIO0lBQ0UsWUFBb0IsS0FBUTtRQUFSLFVBQUssR0FBTCxLQUFLLENBQUc7SUFBRyxDQUFDO0lBRWhDLEdBQUcsQ0FBQyxDQUFTO1FBQ1gsSUFBSSxDQUFDLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFJLE1BQU07UUFDUixJQUFJLENBQUMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUVELE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsTUFBTSxDQUFJLFdBQW9ELEVBQUUsSUFBTztRQUNyRSxJQUFJLENBQUMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFnRDtRQUNuRCxJQUFJLENBQUMsR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsS0FBSyxDQUFDO1lBQ1IsQ0FBQztZQUNELENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDYixDQUFDO1FBRUQsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBMkM7UUFDakQsSUFBSSxDQUFDLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNkLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBN0RELGdDQTZEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IGNsYXNzIExpbmtlZExpc3Q8VCBleHRlbmRzIHtuZXh0OiBUIHwgbnVsbH0+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaGVhZDogVCkge31cblxuICBnZXQobDogbnVtYmVyKSB7XG4gICAgbGV0IGM6IFQgfCBudWxsID0gdGhpcy5faGVhZDtcbiAgICB3aGlsZSAoYyAmJiBsID4gMCkge1xuICAgICAgbC0tO1xuICAgICAgYyA9IGMubmV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gYztcbiAgfVxuXG4gIGdldCBoZWFkKCkgeyByZXR1cm4gdGhpcy5faGVhZDsgfVxuICBnZXQgbGVuZ3RoKCkge1xuICAgIGxldCBjOiBUIHwgbnVsbCA9IHRoaXMuX2hlYWQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlIChjKSB7XG4gICAgICBpKys7XG4gICAgICBjID0gYy5uZXh0O1xuICAgIH1cblxuICAgIHJldHVybiBpO1xuICB9XG5cbiAgcmVkdWNlPFI+KGFjY3VtdWxhdG9yOiAoYWNjOiBSLCB2YWx1ZTogVCwgaW5kZXg/OiBudW1iZXIpID0+IFIsIHNlZWQ6IFIpIHtcbiAgICBsZXQgYzogVCB8IG51bGwgPSB0aGlzLl9oZWFkO1xuICAgIGxldCBhY2MgPSBzZWVkO1xuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAoYykge1xuICAgICAgYWNjID0gYWNjdW11bGF0b3IoYWNjLCBjLCBpKTtcbiAgICAgIGkrKztcbiAgICAgIGMgPSBjLm5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIGZpbmQocHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4PzogbnVtYmVyKSA9PiBib29sZWFuKSB7XG4gICAgbGV0IGM6IFQgfCBudWxsID0gdGhpcy5faGVhZDtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKGMpIHtcbiAgICAgIGlmIChwcmVkaWNhdGUoYywgaSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpKys7XG4gICAgICBjID0gYy5uZXh0O1xuICAgIH1cblxuICAgIHJldHVybiBjO1xuICB9XG5cbiAgZm9yRWFjaCh2aXNpdG9yOiAodmFsdWU6IFQsIGluZGV4PzogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgbGV0IGM6IFQgfCBudWxsID0gdGhpcy5faGVhZDtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKGMpIHtcbiAgICAgIHZpc2l0b3IoYywgaSk7XG4gICAgICBpKys7XG4gICAgICBjID0gYy5uZXh0O1xuICAgIH1cbiAgfVxufVxuIl19

@@ -38,2 +38,2 @@ "use strict";

exports.normalizePath = normalizePath;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy91dGlsaXR5L3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxzREFBcUQ7QUFRckQsMEJBQWtDLFNBQVEseUJBQWE7SUFDckQsWUFBWSxJQUFZLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbkU7QUFGRCxvREFFQztBQUdELHVCQUE4QixJQUFZO0lBQ3hDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNiLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUMvQixPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxHQUFHLENBQUM7YUFDRixPQUFPLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO2FBQ2pDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUM7YUFDaEMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7YUFDdkIsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sQ0FBRSxDQUFtQixDQUFDO0FBQzlCLENBQUM7QUF2QkQsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcblxuXG5leHBvcnQgdHlwZSBTY2hlbWF0aWNQYXRoID0gc3RyaW5nICYge1xuICBfX1BSSVZBVEVfU0NIRU1BVElDX1BBVEg6IHZvaWQ7XG59O1xuXG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUGF0aEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcpIHsgc3VwZXIoYFBhdGggXCIke3BhdGh9XCIgaXMgaW52YWxpZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZyk6IFNjaGVtYXRpY1BhdGgge1xuICBsZXQgcCA9IHBhdGg7XG4gIGlmIChwWzBdICE9ICcvJykge1xuICAgIHAgPSAnLycgKyBwO1xuICB9XG4gIGlmIChwLmVuZHNXaXRoKCcuLicpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXRoRXhjZXB0aW9uKHBhdGgpO1xuICB9XG5cbiAgbGV0IG9sZFA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB3aGlsZSAob2xkUCAhPT0gcCkge1xuICAgIG9sZFAgPSBwO1xuICAgIHAgPSBwXG4gICAgICAucmVwbGFjZSgvXFwvW15cXC9dK1xcL1xcLlxcLlxcLy9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvW15cXC9dK1xcL1xcLlxcLiQvZywgJy8nKVxuICAgICAgLnJlcGxhY2UoL1xcL1xcLj8kL2csICcvJylcbiAgICAgIC5yZXBsYWNlKC9cXC9cXC4/XFwvL2csICcvJyk7XG4gIH1cblxuICBpZiAocC5zdGFydHNXaXRoKCcvLi4vJykgfHwgKHAuZW5kc1dpdGgoJy8nKSAmJiBwICE9PSAnLycpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXRoRXhjZXB0aW9uKHBhdGgpO1xuICB9XG4gIHJldHVybiAocCBhcyBTY2hlbWF0aWNQYXRoKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy91dGlsaXR5L3BhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxzREFBcUQ7QUFRckQsMEJBQWtDLFNBQVEseUJBQWE7SUFDckQsWUFBWSxJQUFZLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbkU7QUFGRCxvREFFQztBQUdELHVCQUE4QixJQUFZO0lBQ3hDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNiLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJLEdBQWtCLElBQUksQ0FBQztJQUMvQixPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxHQUFHLENBQUM7YUFDRixPQUFPLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO2FBQ2pDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUM7YUFDaEMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7YUFDdkIsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBRSxDQUFtQixDQUFDO0FBQzlCLENBQUM7QUF4QkQsc0NBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9ufSBmcm9tICcuLi9leGNlcHRpb24vZXhjZXB0aW9uJztcblxuXG5leHBvcnQgdHlwZSBTY2hlbWF0aWNQYXRoID0gc3RyaW5nICYge1xuICBfX1BSSVZBVEVfU0NIRU1BVElDX1BBVEg6IHZvaWQ7XG59O1xuXG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUGF0aEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcpIHsgc3VwZXIoYFBhdGggXCIke3BhdGh9XCIgaXMgaW52YWxpZC5gKTsgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZyk6IFNjaGVtYXRpY1BhdGgge1xuICBsZXQgcCA9IHBhdGg7XG4gIGlmIChwWzBdICE9ICcvJykge1xuICAgIHAgPSAnLycgKyBwO1xuICB9XG4gIGlmIChwLmVuZHNXaXRoKCcuLicpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXRoRXhjZXB0aW9uKHBhdGgpO1xuICB9XG5cbiAgbGV0IG9sZFA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB3aGlsZSAob2xkUCAhPT0gcCkge1xuICAgIG9sZFAgPSBwO1xuICAgIHAgPSBwXG4gICAgICAucmVwbGFjZSgvXFwvW15cXC9dK1xcL1xcLlxcLlxcLy9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvW15cXC9dK1xcL1xcLlxcLiQvZywgJy8nKVxuICAgICAgLnJlcGxhY2UoL1xcL1xcLj8kL2csICcvJylcbiAgICAgIC5yZXBsYWNlKC9cXC9cXC4/XFwvL2csICcvJyk7XG4gIH1cblxuICBpZiAocC5zdGFydHNXaXRoKCcvLi4vJykgfHwgKHAuZW5kc1dpdGgoJy8nKSAmJiBwICE9PSAnLycpKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXRoRXhjZXB0aW9uKHBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIChwIGFzIFNjaGVtYXRpY1BhdGgpO1xufVxuIl19

@@ -183,3 +183,3 @@ "use strict";

// Find the chunk by going through the list.
let h = this._linkedList.find(chunk => start <= chunk.end);
const h = this._linkedList.find(chunk => start <= chunk.end);
if (!h) {

@@ -234,2 +234,2 @@ throw Error('Chunk cannot be found.');

exports.UpdateBuffer = UpdateBuffer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWJ1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy91dGlsaXR5L3VwZGF0ZS1idWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxzREFBcUQ7QUFDckQsK0NBQXlDO0FBR3pDLDhCQUFzQyxTQUFRLHlCQUFhO0lBQ3pELFlBQVksS0FBYSxFQUFFLEdBQVcsRUFBRSxNQUFjLFFBQVE7UUFDNUQsS0FBSyxDQUFDLFNBQVMsS0FBSyxzQkFBc0IsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGO0FBSkQsNERBSUM7QUFDRCxxQ0FBNkMsU0FBUSx5QkFBYTtJQUNoRTtRQUNFLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUpELDBFQUlDO0FBR0Q7Ozs7OztHQU1HO0FBQ0g7SUFVRSxZQUFtQixLQUFhLEVBQVMsR0FBVyxFQUFTLGVBQXVCO1FBQWpFLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFSNUUsVUFBSyxHQUFrQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFdBQU0sR0FBa0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU3QixTQUFJLEdBQWlCLElBQUksQ0FBQztRQUd4QixJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixNQUFNLENBQUMs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QztRQUVqQyxJQUFJLElBQWtCLENBQUM7UUFDdkIsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBekVELG9DQXlFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge0xpbmtlZExpc3R9IGZyb20gJy4vbGlua2VkLWxpc3QnO1xuXG5cbmV4cG9ydCBjbGFzcyBJbmRleE91dE9mQm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoaW5kZXg6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyID0gSW5maW5pdHkpIHtcbiAgICBzdXBlcihgSW5kZXggJHtpbmRleH0gb3V0c2lkZSBvZiByYW5nZSBbJHttaW59LCAke21heH1dLmApO1xuICB9XG59XG5leHBvcnQgY2xhc3MgQ29udGVudENhbm5vdEJlUmVtb3ZlZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihgVXNlciB0cmllZCB0byByZW1vdmUgY29udGVudCB0aGF0IHdhcyBtYXJrZWQgZXNzZW50aWFsLmApO1xuICB9XG59XG5cblxuLyoqXG4gKiBBIENodW5rIGRlc2NyaXB0aW9uLCBpbmNsdWRpbmcgbGVmdC9yaWdodCBjb250ZW50IHRoYXQgaGFzIGJlZW4gaW5zZXJ0ZWQuXG4gKiBJZiBfbGVmdC9fcmlnaHQgaXMgbnVsbCwgdGhpcyBtZWFucyB0aGF0IGNvbnRlbnQgd2FzIGRlbGV0ZWQuIElmIHRoZSBfY29udGVudCBpcyBudWxsLFxuICogaXQgbWVhbnMgdGhlIGNvbnRlbnQgaXRzZWxmIHdhcyBkZWxldGVkLlxuICpcbiAqIEBzZWUgVXBkYXRlQnVmZmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBDaHVuayB7XG4gIHByaXZhdGUgX2NvbnRlbnQ6IEJ1ZmZlciB8IG51bGw7XG4gIHByaXZhdGUgX2xlZnQ6IEJ1ZmZlciB8IG51bGwgPSBCdWZmZXIuYWxsb2MoMCk7XG4gIHByaXZhdGUgX3JpZ2h0OiBCdWZmZXIgfCBudWxsID0gQnVmZmVyLmFsbG9jKDApO1xuXG4gIHByaXZhdGUgX2Fzc2VydExlZnQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYXNzZXJ0UmlnaHQgPSBmYWxzZTtcblxuICBuZXh0OiBDaHVuayB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGFydDogbnVtYmVyLCBwdWJsaWMgZW5kOiBudW1iZXIsIHB1YmxpYyBvcmlnaW5hbENvbnRlbnQ6IEJ1ZmZlcikge1xuICAgIHRoaXMuX2NvbnRlbnQgPSBvcmlnaW5hbENvbnRlbnQuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICBnZXQgbGVuZ3RoKCkge1xuICAgIHJldHVybiAodGhpcy5fbGVmdCA/IHRoaXMuX2xlZnQubGVuZ3RoIDogMClcbiAgICAgICAgICsgKHRoaXMuX2NvbnRlbnQgPyB0aGlzLl9jb250ZW50Lmxlbmd0aCA6IDApXG4gICAgICAgICArICh0aGlzLl9yaWdodCA/IHRoaXMuX3JpZ2h0Lmxlbmd0aCA6IDApO1xuICB9XG4gIHRvU3RyaW5nKGVuY29kaW5nID0gJ3V0Zi04Jykge1xuICAgIHJldHVybiAodGhpcy5fbGVmdCA/IHRoaXMuX2xlZnQudG9TdHJpbmcoZW5jb2RpbmcpIDogJycpXG4gICAgICAgICArICh0aGlzLl9jb250ZW50ID8gdGhpcy5fY29udGVudC50b1N0cmluZyhlbmNvZGluZykgOiAnJylcbiAgICAgICAgICsgKHRoaXMuX3JpZ2h0ID8gdGhpcy5fcmlnaHQudG9TdHJpbmcoZW5jb2RpbmcpIDogJycpO1xuICB9XG5cbiAgc2xpY2Uoc3RhcnQ6IG51bWJlcikge1xuICAgIGlmIChzdGFydCA8IHRoaXMuc3RhcnQgfHwgc3RhcnQgPiB0aGlzLmVuZCkge1xuICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZEV4Y2VwdGlvbihzdGFydCwgdGhpcy5zdGFydCwgdGhpcy5lbmQpO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBfY29udGVudCB0byB0aGUgbmV3IGluZGljZXMuXG4gICAgY29uc3QgbmV3Q2h1bmsgPSBuZXcgQ2h1bmsoc3RhcnQsIHRoaXMuZW5kLCB0aGlzLm9yaWdpbmFsQ29udGVudCk7XG5cbiAgICAvLyBJZiB0aGlzIGNodW5rIGhhcyBfY29udGVudCwgcmVzbGljZSB0aGUgb3JpZ2luYWwgX2NvbnRlbnQuIFdlIG1vdmUgdGhlIF9yaWdodCBzbyB3ZSBhcmUgbm90XG4gICAgLy8gbG9zaW5nIGFueSBkYXRhIGhlcmUuIElmIHRoaXMgY2h1bmsgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIG5leHQgY2h1bmsgc2hvdWxkIGFsc28gYmUgZGVsZXRlZC5cbiAgICBpZiAodGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fY29udGVudCA9IHRoaXMub3JpZ2luYWxDb250ZW50LnNsaWNlKHRoaXMuc3RhcnQsIHN0YXJ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q2h1bmsuX2NvbnRlbnQgPSB0aGlzLl9jb250ZW50O1xuICAgICAgaWYgKHRoaXMuX3JpZ2h0ID09PSBudWxsKSB7XG4gICAgICAgIG5ld0NodW5rLl9sZWZ0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbmQgPSBzdGFydDtcblxuICAgIC8vIE1vdmUgX3JpZ2h0IHRvIHRoZSBuZXcgY2h1bmsuXG4gICAgbmV3Q2h1bmsuX3JpZ2h0ID0gdGhpcy5fcmlnaHQ7XG4gICAgdGhpcy5fcmlnaHQgPSB0aGlzLl9yaWdodCAmJiBCdWZmZXIuYWxsb2MoMCk7XG5cbiAgICAvLyBVcGRhdGUgZXNzZW50aWFscy5cbiAgICBpZiAodGhpcy5fYXNzZXJ0UmlnaHQpIHtcbiAgICAgIG5ld0NodW5rLl9hc3NlcnRSaWdodCA9IHRydWU7XG4gICAgICB0aGlzLl9hc3NlcnRSaWdodCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgbGlua2VkIGxpc3QuXG4gICAgbmV3Q2h1bmsubmV4dCA9IHRoaXMubmV4dDtcbiAgICB0aGlzLm5leHQgPSBuZXdDaHVuaztcblxuICAgIHJldHVybiBuZXdDaHVuaztcbiAgfVxuXG4gIGFwcGVuZChidWZmZXI6IEJ1ZmZlciwgZXNzZW50aWFsOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLl9yaWdodCkge1xuICAgICAgaWYgKGVzc2VudGlhbCkge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGVudENhbm5vdEJlUmVtb3ZlZEV4Y2VwdGlvbigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHJvID0gdGhpcy5fcmlnaHQ7XG4gICAgdGhpcy5fcmlnaHQgPSBCdWZmZXIuYWxsb2Mob3V0cm8ubGVuZ3RoICsgYnVmZmVyLmxlbmd0aCk7XG4gICAgb3V0cm8uY29weSh0aGlzLl9yaWdodCwgMCk7XG4gICAgYnVmZmVyLmNvcHkodGhpcy5fcmlnaHQsIG91dHJvLmxlbmd0aCk7XG5cbiAgICBpZiAoZXNzZW50aWFsKSB7XG4gICAgICB0aGlzLl9hc3NlcnRSaWdodCA9IHRydWU7XG4gICAgfVxuICB9XG4gIHByZXBlbmQoYnVmZmVyOiBCdWZmZXIsIGVzc2VudGlhbDogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5fbGVmdCkge1xuICAgICAgaWYgKGVzc2VudGlhbCkge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGVudENhbm5vdEJlUmVtb3ZlZEV4Y2VwdGlvbigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGludHJvID0gdGhpcy5fbGVmdDtcbiAgICB0aGlzLl9sZWZ0ID0gQnVmZmVyLmFsbG9jKGludHJvLmxlbmd0aCArIGJ1ZmZlci5sZW5ndGgpO1xuICAgIGludHJvLmNvcHkodGhpcy5fbGVmdCwgMCk7XG4gICAgYnVmZmVyLmNvcHkodGhpcy5fbGVmdCwgaW50cm8ubGVuZ3RoKTtcblxuICAgIGlmIChlc3NlbnRpYWwpIHtcbiAgICAgIHRoaXMuX2Fzc2VydExlZnQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGFzc2VydChsZWZ0OiBib29sZWFuLCBfY29udGVudDogYm9vbGVhbiwgcmlnaHQ6IGJvb2xlYW4pIHtcbiAgICBpZiAobGVmdCkge1xuICAgICAgaWYgKHRoaXMuX2Fzc2VydExlZnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRlbnRDYW5ub3RCZVJlbW92ZWRFeGNlcHRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHJpZ2h0KSB7XG4gICAgICBpZiAodGhpcy5fYXNzZXJ0UmlnaHQpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRlbnRDYW5ub3RCZVJlbW92ZWRFeGNlcHRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmUobGVmdDogYm9vbGVhbiwgY29udGVudDogYm9vbGVhbiwgcmlnaHQ6IGJvb2xlYW4pIHtcbiAgICBpZiAobGVmdCkge1xuICAgICAgaWYgKHRoaXMuX2Fzc2VydExlZnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbnRlbnRDYW5ub3RCZVJlbW92ZWRFeGNlcHRpb24oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2xlZnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAoY29udGVudCkge1xuICAgICAgdGhpcy5fY29udGVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChyaWdodCkge1xuICAgICAgaWYgKHRoaXMuX2Fzc2VydFJpZ2h0KSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZW50Q2Fubm90QmVSZW1vdmVkRXhjZXB0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9yaWdodCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgY29weSh0YXJnZXQ6IEJ1ZmZlciwgc3RhcnQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9sZWZ0KSB7XG4gICAgICB0aGlzLl9sZWZ0LmNvcHkodGFyZ2V0LCBzdGFydCk7XG4gICAgICBzdGFydCArPSB0aGlzLl9sZWZ0Lmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnQuY29weSh0YXJnZXQsIHN0YXJ0KTtcbiAgICAgIHN0YXJ0ICs9IHRoaXMuX2NvbnRlbnQubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAodGhpcy5fcmlnaHQpIHtcbiAgICAgIHRoaXMuX3JpZ2h0LmNvcHkodGFyZ2V0LCBzdGFydCk7XG4gICAgICBzdGFydCArPSB0aGlzLl9yaWdodC5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBzdGFydDtcbiAgfVxufVxuXG5cbi8qKlxuICogQW4gdXRpbGl0eSBjbGFzcyB0aGF0IGFsbG93cyBidWZmZXJzIHRvIGJlIGluc2VydGVkIHRvIHRoZSBfcmlnaHQgb3IgX2xlZnQsIG9yIGRlbGV0ZWQsIHdoaWxlXG4gKiBrZWVwaW5nIGluZGljZXMgdG8gdGhlIG9yaWdpbmFsIGJ1ZmZlci5cbiAqXG4gKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgYW4gb3JpZ2luYWwgYnVmZmVyLCBhbmQga2VlcHMgaXQgaW50byBhIGxpbmtlZCBsaXN0IG9mIGNodW5rcywgc21hbGxlclxuICogYnVmZmVycyB0aGF0IGtlZXAgdHJhY2sgb2YgX2NvbnRlbnQgaW5zZXJ0ZWQgdG8gdGhlIF9yaWdodCBvciBfbGVmdCBvZiBpdC5cbiAqXG4gKiBTaW5jZSB0aGUgTm9kZSBCdWZmZXIgc3RydWN0dXJlIGlzIG5vbi1kZXN0cnVjdGl2ZSB3aGVuIHNsaWNpbmcsIHdlIHRyeSB0byB1c2Ugc2xpY2luZyB0byBjcmVhdGVcbiAqIG5ldyBjaHVua3MsIGFuZCBhbHdheXMga2VlcCBjaHVua3MgcG9pbnRpbmcgdG8gdGhlIG9yaWdpbmFsIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGRhdGVCdWZmZXIge1xuICBwcm90ZWN0ZWQgX2xpbmtlZExpc3Q6IExpbmtlZExpc3Q8Q2h1bms+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfb3JpZ2luYWxDb250ZW50OiBCdWZmZXIpIHtcbiAgICB0aGlzLl9saW5rZWRMaXN0ID0gbmV3IExpbmtlZExpc3QobmV3IENodW5rKDAsIF9vcmlnaW5hbENvbnRlbnQubGVuZ3RoLCBfb3JpZ2luYWxDb250ZW50KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2Fzc2VydEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fb3JpZ2luYWxDb250ZW50Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZEV4Y2VwdGlvbihpbmRleCwgMCwgdGhpcy5fb3JpZ2luYWxDb250ZW50Lmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9zbGljZShzdGFydDogbnVtYmVyKTogW0NodW5rLCBDaHVua10ge1xuICAgIHRoaXMuX2Fzc2VydEluZGV4KHN0YXJ0KTtcblxuICAgIC8vIEZpbmQgdGhlIGNodW5rIGJ5IGdvaW5nIHRocm91Z2ggdGhlIGxpc3QuXG4gICAgbGV0IGggPSB0aGlzLl9saW5rZWRMaXN0LmZpbmQoY2h1bmsgPT4gc3RhcnQgPD0gY2h1bmsuZW5kKTtcbiAgICBpZiAoIWgpIHtcbiAgICAgIHRocm93IEVycm9yKCdDaHVuayBjYW5ub3QgYmUgZm91bmQuJyk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0ID09IGguZW5kICYmIGgubmV4dCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtoICEsIGgubmV4dCAhXTtcbiAgICB9XG4gICAgcmV0dXJuIFtoICEsIGguc2xpY2Uoc3RhcnQpICFdO1xuICB9XG5cbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9saW5rZWRMaXN0LnJlZHVjZSgoYWNjLCBjaHVuaykgPT4gYWNjICsgY2h1bmsubGVuZ3RoLCAwKTtcbiAgfVxuICBnZXQgb3JpZ2luYWwoKTogQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZ2luYWxDb250ZW50O1xuICB9XG5cbiAgdG9TdHJpbmcoZW5jb2RpbmcgPSAndXRmLTgnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbGlua2VkTGlzdC5yZWR1Y2UoKGFjYywgY2h1bmspID0+IGFjYyArIGNodW5rLnRvU3RyaW5nKGVuY29kaW5nKSwgJycpO1xuICB9XG4gIGdlbmVyYXRlKCk6IEJ1ZmZlciB7XG4gICAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmFsbG9jVW5zYWZlKHRoaXMubGVuZ3RoKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgdGhpcy5fbGlua2VkTGlzdC5mb3JFYWNoKGNodW5rID0+IHtcbiAgICAgIGNodW5rLmNvcHkocmVzdWx0LCBpKTtcbiAgICAgIGkgKz0gY2h1bmsubGVuZ3RoO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpbnNlcnRMZWZ0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciwgYXNzZXJ0ID0gZmFsc2UpIHtcbiAgICB0aGlzLl9zbGljZShpbmRleClbMF0uYXBwZW5kKGNvbnRlbnQsIGFzc2VydCk7XG4gIH1cbiAgaW5zZXJ0UmlnaHQoaW5kZXg6IG51bWJlciwgY29udGVudDogQnVmZmVyLCBhc3NlcnQgPSBmYWxzZSkge1xuICAgIHRoaXMuX3NsaWNlKGluZGV4KVsxXS5wcmVwZW5kKGNvbnRlbnQsIGFzc2VydCk7XG4gIH1cblxuICByZW1vdmUoaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpIHtcbiAgICBjb25zdCBlbmQgPSBpbmRleCArIGxlbmd0aDtcblxuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5fc2xpY2UoaW5kZXgpWzFdO1xuICAgIGNvbnN0IGxhc3QgPSB0aGlzLl9zbGljZShlbmQpWzFdO1xuXG4gICAgbGV0IGN1cnI6IENodW5rIHwgbnVsbDtcbiAgICBmb3IgKGN1cnIgPSBmaXJzdDsgY3VyciAmJiBjdXJyICE9PSBsYXN0OyBjdXJyID0gY3Vyci5uZXh0KSB7XG4gICAgICBjdXJyLmFzc2VydChjdXJyICE9PSBmaXJzdCwgY3VyciAhPT0gbGFzdCwgY3VyciA9PT0gZmlyc3QpO1xuICAgIH1cbiAgICBmb3IgKGN1cnIgPSBmaXJzdDsgY3VyciAmJiBjdXJyICE9PSBsYXN0OyBjdXJyID0gY3Vyci5uZXh0KSB7XG4gICAgICBjdXJyLnJlbW92ZShjdXJyICE9PSBmaXJzdCwgY3VyciAhPT0gbGFzdCwgY3VyciA9PT0gZmlyc3QpO1xuICAgIH1cblxuICAgIGlmIChjdXJyKSB7XG4gICAgICBjdXJyLnJlbW92ZSh0cnVlLCBmYWxzZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWJ1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9zY2hlbWF0aWNzL3NyYy91dGlsaXR5L3VwZGF0ZS1idWZmZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxzREFBcUQ7QUFDckQsK0NBQXlDO0FBR3pDLDhCQUFzQyxTQUFRLHlCQUFhO0lBQ3pELFlBQVksS0FBYSxFQUFFLEdBQVcsRUFBRSxNQUFjLFFBQVE7UUFDNUQsS0FBSyxDQUFDLFNBQVMsS0FBSyxzQkFBc0IsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGO0FBSkQsNERBSUM7QUFDRCxxQ0FBNkMsU0FBUSx5QkFBYTtJQUNoRTtRQUNFLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUpELDBFQUlDO0FBR0Q7Ozs7OztHQU1HO0FBQ0g7SUFVRSxZQUFtQixLQUFhLEVBQVMsR0FBVyxFQUFTLGVBQXVCO1FBQWpFLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFSNUUsVUFBSyxHQUFrQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFdBQU0sR0FBa0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU3QixTQUFJLEdBQWlCLElBQUksQ0FBQztRQUd4QixJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixNQUFNLENBQUMs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QztRQUVqQyxJQUFJLElBQWtCLENBQUM7UUFDdkIsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBM0VELG9DQTJFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QmFzZUV4Y2VwdGlvbn0gZnJvbSAnLi4vZXhjZXB0aW9uL2V4Y2VwdGlvbic7XG5pbXBvcnQge0xpbmtlZExpc3R9IGZyb20gJy4vbGlua2VkLWxpc3QnO1xuXG5cbmV4cG9ydCBjbGFzcyBJbmRleE91dE9mQm91bmRFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IoaW5kZXg6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyID0gSW5maW5pdHkpIHtcbiAgICBzdXBlcihgSW5kZXggJHtpbmRleH0gb3V0c2lkZSBvZiByYW5nZSBbJHttaW59LCAke21heH1dLmApO1xuICB9XG59XG5leHBvcnQgY2xhc3MgQ29udGVudENhbm5vdEJlUmVtb3ZlZEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihgVXNlciB0cmllZCB0byByZW1vdmUgY29udGVudCB0aGF0IHdhcyBtYXJrZWQgZXNzZW50aWFsLmApO1xuICB9XG59XG5cblxuLyoqXG4gKiBBIENodW5rIGRlc2NyaXB0aW9uLCBpbmNsdWRpbmcgbGVmdC9yaWdodCBjb250ZW50IHRoYXQgaGFzIGJlZW4gaW5zZXJ0ZWQuXG4gKiBJZiBfbGVmdC9fcmlnaHQgaXMgbnVsbCwgdGhpcyBtZWFucyB0aGF0IGNvbnRlbnQgd2FzIGRlbGV0ZWQuIElmIHRoZSBfY29udGVudCBpcyBudWxsLFxuICogaXQgbWVhbnMgdGhlIGNvbnRlbnQgaXRzZWxmIHdhcyBkZWxldGVkLlxuICpcbiAqIEBzZWUgVXBkYXRlQnVmZmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBDaHVuayB7XG4gIHByaXZhdGUgX2NvbnRlbnQ6IEJ1ZmZlciB8IG51bGw7XG4gIHByaXZhdGUgX2xlZnQ6IEJ1ZmZlciB8IG51bGwgPSBCdWZmZXIuYWxsb2MoMCk7XG4gIHByaXZhdGUgX3JpZ2h0OiBCdWZmZXIgfCBudWxsID0gQnVmZmVyLmFsbG9jKDApO1xuXG4gIHByaXZhdGUgX2Fzc2VydExlZnQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYXNzZXJ0UmlnaHQgPSBmYWxzZTtcblxuICBuZXh0OiBDaHVuayB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGFydDogbnVtYmVyLCBwdWJsaWMgZW5kOiBudW1iZXIsIHB1YmxpYyBvcmlnaW5hbENvbnRlbnQ6IEJ1ZmZlcikge1xuICAgIHRoaXMuX2NvbnRlbnQgPSBvcmlnaW5hbENvbnRlbnQuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIH1cblxuICBnZXQgbGVuZ3RoKCkge1xuICAgIHJldHVybiAodGhpcy5fbGVmdCA/IHRoaXMuX2xlZnQubGVuZ3RoIDogMClcbiAgICAgICAgICsgKHRoaXMuX2NvbnRlbnQgPyB0aGlzLl9jb250ZW50Lmxlbmd0aCA6IDApXG4gICAgICAgICArICh0aGlzLl9yaWdodCA/IHRoaXMuX3JpZ2h0Lmxlbmd0aCA6IDApO1xuICB9XG4gIHRvU3RyaW5nKGVuY29kaW5nID0gJ3V0Zi04Jykge1xuICAgIHJldHVybiAodGhpcy5fbGVmdCA/IHRoaXMuX2xlZnQudG9TdHJpbmcoZW5jb2RpbmcpIDogJycpXG4gICAgICAgICArICh0aGlzLl9jb250ZW50ID8gdGhpcy5fY29udGVudC50b1N0cmluZyhlbmNvZGluZykgOiAnJylcbiAgICAgICAgICsgKHRoaXMuX3JpZ2h0ID8gdGhpcy5fcmlnaHQudG9TdHJpbmcoZW5jb2RpbmcpIDogJycpO1xuICB9XG5cbiAgc2xpY2Uoc3RhcnQ6IG51bWJlcikge1xuICAgIGlmIChzdGFydCA8IHRoaXMuc3RhcnQgfHwgc3RhcnQgPiB0aGlzLmVuZCkge1xuICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZEV4Y2VwdGlvbihzdGFydCwgdGhpcy5zdGFydCwgdGhpcy5lbmQpO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBfY29udGVudCB0byB0aGUgbmV3IGluZGljZXMuXG4gICAgY29uc3QgbmV3Q2h1bmsgPSBuZXcgQ2h1bmsoc3RhcnQsIHRoaXMuZW5kLCB0aGlzLm9yaWdpbmFsQ29udGVudCk7XG5cbiAgICAvLyBJZiB0aGlzIGNodW5rIGhhcyBfY29udGVudCwgcmVzbGljZSB0aGUgb3JpZ2luYWwgX2NvbnRlbnQuIFdlIG1vdmUgdGhlIF9yaWdodCBzbyB3ZSBhcmUgbm90XG4gICAgLy8gbG9zaW5nIGFueSBkYXRhIGhlcmUuIElmIHRoaXMgY2h1bmsgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIG5leHQgY2h1bmsgc2hvdWxkIGFsc28gYmUgZGVsZXRlZC5cbiAgICBpZiAodGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fY29udGVudCA9IHRoaXMub3JpZ2luYWxDb250ZW50LnNsaWNlKHRoaXMuc3RhcnQsIHN0YXJ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q2h1bmsuX2NvbnRlbnQgPSB0aGlzLl9jb250ZW50O1xuICAgICAgaWYgKHRoaXMuX3JpZ2h0ID09PSBudWxsKSB7XG4gICAgICAgIG5ld0NodW5rLl9sZWZ0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbmQgPSBzdGFydDtcblxuICAgIC8vIE1vdmUgX3JpZ2h0IHRvIHRoZSBuZXcgY2h1bmsuXG4gICAgbmV3Q2h1bmsuX3JpZ2h0ID0gdGhpcy5fcmlnaHQ7XG4gICAgdGhpcy5fcmlnaHQgPSB0aGlzLl9yaWdodCAmJiBCdWZmZXIuYWxsb2MoMCk7XG5cbiAgICAvLyBVcGRhdGUgZXNzZW50aWFscy5cbiAgICBpZiAodGhpcy5fYXNzZXJ0UmlnaHQpIHtcbiAgICAgIG5ld0NodW5rLl9hc3NlcnRSaWdodCA9IHRydWU7XG4gICAgICB0aGlzLl9hc3NlcnRSaWdodCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgbGlua2VkIGxpc3QuXG4gICAgbmV3Q2h1bmsubmV4dCA9IHRoaXMubmV4dDtcbiAgICB0aGlzLm5leHQgPSBuZXdDaHVuaztcblxuICAgIHJldHVybiBuZXdDaHVuaztcbiAgfVxuXG4gIGFwcGVuZChidWZmZXI6IEJ1ZmZlciwgZXNzZW50aWFsOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLl9yaWdodCkge1xuICAgICAgaWYgKGVzc2VudGlhbCkge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGVudENhbm5vdEJlUmVtb3ZlZEV4Y2VwdGlvbigpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0cm8gPSB0aGlzLl9yaWdodDtcbiAgICB0aGlzLl9yaWdodCA9IEJ1ZmZlci5hbGxvYyhvdXRyby5sZW5ndGggKyBidWZmZXIubGVuZ3RoKTtcbiAgICBvdXRyby5jb3B5KHRoaXMuX3JpZ2h0LCAwKTtcbiAgICBidWZmZXIuY29weSh0aGlzLl9yaWdodCwgb3V0cm8ubGVuZ3RoKTtcblxuICAgIGlmIChlc3NlbnRpYWwpIHtcbiAgICAgIHRoaXMuX2Fzc2VydFJpZ2h0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcHJlcGVuZChidWZmZXI6IEJ1ZmZlciwgZXNzZW50aWFsOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLl9sZWZ0KSB7XG4gICAgICBpZiAoZXNzZW50aWFsKSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZW50Q2Fubm90QmVSZW1vdmVkRXhjZXB0aW9uKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRybyA9IHRoaXMuX2xlZnQ7XG4gICAgdGhpcy5fbGVmdCA9IEJ1ZmZlci5hbGxvYyhpbnRyby5sZW5ndGggKyBidWZmZXIubGVuZ3RoKTtcbiAgICBpbnRyby5jb3B5KHRoaXMuX2xlZnQsIDApO1xuICAgIGJ1ZmZlci5jb3B5KHRoaXMuX2xlZnQsIGludHJvLmxlbmd0aCk7XG5cbiAgICBpZiAoZXNzZW50aWFsKSB7XG4gICAgICB0aGlzLl9hc3NlcnRMZWZ0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQobGVmdDogYm9vbGVhbiwgX2NvbnRlbnQ6IGJvb2xlYW4sIHJpZ2h0OiBib29sZWFuKSB7XG4gICAgaWYgKGxlZnQpIHtcbiAgICAgIGlmICh0aGlzLl9hc3NlcnRMZWZ0KSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZW50Q2Fubm90QmVSZW1vdmVkRXhjZXB0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyaWdodCkge1xuICAgICAgaWYgKHRoaXMuX2Fzc2VydFJpZ2h0KSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZW50Q2Fubm90QmVSZW1vdmVkRXhjZXB0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKGxlZnQ6IGJvb2xlYW4sIGNvbnRlbnQ6IGJvb2xlYW4sIHJpZ2h0OiBib29sZWFuKSB7XG4gICAgaWYgKGxlZnQpIHtcbiAgICAgIGlmICh0aGlzLl9hc3NlcnRMZWZ0KSB7XG4gICAgICAgIHRocm93IG5ldyBDb250ZW50Q2Fubm90QmVSZW1vdmVkRXhjZXB0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9sZWZ0ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAocmlnaHQpIHtcbiAgICAgIGlmICh0aGlzLl9hc3NlcnRSaWdodCkge1xuICAgICAgICB0aHJvdyBuZXcgQ29udGVudENhbm5vdEJlUmVtb3ZlZEV4Y2VwdGlvbigpO1xuICAgICAgfVxuICAgICAgdGhpcy5fcmlnaHQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGNvcHkodGFyZ2V0OiBCdWZmZXIsIHN0YXJ0OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbGVmdCkge1xuICAgICAgdGhpcy5fbGVmdC5jb3B5KHRhcmdldCwgc3RhcnQpO1xuICAgICAgc3RhcnQgKz0gdGhpcy5fbGVmdC5sZW5ndGg7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9jb250ZW50LmNvcHkodGFyZ2V0LCBzdGFydCk7XG4gICAgICBzdGFydCArPSB0aGlzLl9jb250ZW50Lmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3JpZ2h0KSB7XG4gICAgICB0aGlzLl9yaWdodC5jb3B5KHRhcmdldCwgc3RhcnQpO1xuICAgICAgc3RhcnQgKz0gdGhpcy5fcmlnaHQubGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFydDtcbiAgfVxufVxuXG5cbi8qKlxuICogQW4gdXRpbGl0eSBjbGFzcyB0aGF0IGFsbG93cyBidWZmZXJzIHRvIGJlIGluc2VydGVkIHRvIHRoZSBfcmlnaHQgb3IgX2xlZnQsIG9yIGRlbGV0ZWQsIHdoaWxlXG4gKiBrZWVwaW5nIGluZGljZXMgdG8gdGhlIG9yaWdpbmFsIGJ1ZmZlci5cbiAqXG4gKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgYW4gb3JpZ2luYWwgYnVmZmVyLCBhbmQga2VlcHMgaXQgaW50byBhIGxpbmtlZCBsaXN0IG9mIGNodW5rcywgc21hbGxlclxuICogYnVmZmVycyB0aGF0IGtlZXAgdHJhY2sgb2YgX2NvbnRlbnQgaW5zZXJ0ZWQgdG8gdGhlIF9yaWdodCBvciBfbGVmdCBvZiBpdC5cbiAqXG4gKiBTaW5jZSB0aGUgTm9kZSBCdWZmZXIgc3RydWN0dXJlIGlzIG5vbi1kZXN0cnVjdGl2ZSB3aGVuIHNsaWNpbmcsIHdlIHRyeSB0byB1c2Ugc2xpY2luZyB0byBjcmVhdGVcbiAqIG5ldyBjaHVua3MsIGFuZCBhbHdheXMga2VlcCBjaHVua3MgcG9pbnRpbmcgdG8gdGhlIG9yaWdpbmFsIGNvbnRlbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBVcGRhdGVCdWZmZXIge1xuICBwcm90ZWN0ZWQgX2xpbmtlZExpc3Q6IExpbmtlZExpc3Q8Q2h1bms+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfb3JpZ2luYWxDb250ZW50OiBCdWZmZXIpIHtcbiAgICB0aGlzLl9saW5rZWRMaXN0ID0gbmV3IExpbmtlZExpc3QobmV3IENodW5rKDAsIF9vcmlnaW5hbENvbnRlbnQubGVuZ3RoLCBfb3JpZ2luYWxDb250ZW50KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2Fzc2VydEluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fb3JpZ2luYWxDb250ZW50Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZEV4Y2VwdGlvbihpbmRleCwgMCwgdGhpcy5fb3JpZ2luYWxDb250ZW50Lmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9zbGljZShzdGFydDogbnVtYmVyKTogW0NodW5rLCBDaHVua10ge1xuICAgIHRoaXMuX2Fzc2VydEluZGV4KHN0YXJ0KTtcblxuICAgIC8vIEZpbmQgdGhlIGNodW5rIGJ5IGdvaW5nIHRocm91Z2ggdGhlIGxpc3QuXG4gICAgY29uc3QgaCA9IHRoaXMuX2xpbmtlZExpc3QuZmluZChjaHVuayA9PiBzdGFydCA8PSBjaHVuay5lbmQpO1xuICAgIGlmICghaCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0NodW5rIGNhbm5vdCBiZSBmb3VuZC4nKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhcnQgPT0gaC5lbmQgJiYgaC5uZXh0ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gW2ggISwgaC5uZXh0ICFdO1xuICAgIH1cblxuICAgIHJldHVybiBbaCAhLCBoLnNsaWNlKHN0YXJ0KSAhXTtcbiAgfVxuXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGlua2VkTGlzdC5yZWR1Y2UoKGFjYywgY2h1bmspID0+IGFjYyArIGNodW5rLmxlbmd0aCwgMCk7XG4gIH1cbiAgZ2V0IG9yaWdpbmFsKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsQ29udGVudDtcbiAgfVxuXG4gIHRvU3RyaW5nKGVuY29kaW5nID0gJ3V0Zi04Jyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbmtlZExpc3QucmVkdWNlKChhY2MsIGNodW5rKSA9PiBhY2MgKyBjaHVuay50b1N0cmluZyhlbmNvZGluZyksICcnKTtcbiAgfVxuICBnZW5lcmF0ZSgpOiBCdWZmZXIge1xuICAgIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSh0aGlzLmxlbmd0aCk7XG4gICAgbGV0IGkgPSAwO1xuICAgIHRoaXMuX2xpbmtlZExpc3QuZm9yRWFjaChjaHVuayA9PiB7XG4gICAgICBjaHVuay5jb3B5KHJlc3VsdCwgaSk7XG4gICAgICBpICs9IGNodW5rLmxlbmd0aDtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpbnNlcnRMZWZ0KGluZGV4OiBudW1iZXIsIGNvbnRlbnQ6IEJ1ZmZlciwgYXNzZXJ0ID0gZmFsc2UpIHtcbiAgICB0aGlzLl9zbGljZShpbmRleClbMF0uYXBwZW5kKGNvbnRlbnQsIGFzc2VydCk7XG4gIH1cbiAgaW5zZXJ0UmlnaHQoaW5kZXg6IG51bWJlciwgY29udGVudDogQnVmZmVyLCBhc3NlcnQgPSBmYWxzZSkge1xuICAgIHRoaXMuX3NsaWNlKGluZGV4KVsxXS5wcmVwZW5kKGNvbnRlbnQsIGFzc2VydCk7XG4gIH1cblxuICByZW1vdmUoaW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpIHtcbiAgICBjb25zdCBlbmQgPSBpbmRleCArIGxlbmd0aDtcblxuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5fc2xpY2UoaW5kZXgpWzFdO1xuICAgIGNvbnN0IGxhc3QgPSB0aGlzLl9zbGljZShlbmQpWzFdO1xuXG4gICAgbGV0IGN1cnI6IENodW5rIHwgbnVsbDtcbiAgICBmb3IgKGN1cnIgPSBmaXJzdDsgY3VyciAmJiBjdXJyICE9PSBsYXN0OyBjdXJyID0gY3Vyci5uZXh0KSB7XG4gICAgICBjdXJyLmFzc2VydChjdXJyICE9PSBmaXJzdCwgY3VyciAhPT0gbGFzdCwgY3VyciA9PT0gZmlyc3QpO1xuICAgIH1cbiAgICBmb3IgKGN1cnIgPSBmaXJzdDsgY3VyciAmJiBjdXJyICE9PSBsYXN0OyBjdXJyID0gY3Vyci5uZXh0KSB7XG4gICAgICBjdXJyLnJlbW92ZShjdXJyICE9PSBmaXJzdCwgY3VyciAhPT0gbGFzdCwgY3VyciA9PT0gZmlyc3QpO1xuICAgIH1cblxuICAgIGlmIChjdXJyKSB7XG4gICAgICBjdXJyLnJlbW92ZSh0cnVlLCBmYWxzZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc