New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

pojo-observer

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pojo-observer - npm Package Compare versions

Comparing version 1.0.7-alpha to 1.0.7-test-build

22

lib/pureObserver.spec.js

@@ -523,3 +523,9 @@ "use strict";

(0, _useObserver.pureObserver)(obj, objectCallback);
td.verify(objectCallback(), {
times: 0
});
obj.prop = null;
td.verify(objectCallback(), {
times: 1
});
obj.prop = [];

@@ -536,3 +542,9 @@ td.verify(objectCallback(), {

(0, _useObserver.pureObserver)(obj, objectCallback);
td.verify(objectCallback(), {
times: 0
});
obj.prop = null;
td.verify(objectCallback(), {
times: 1
});
obj.prop = 'asd';

@@ -549,2 +561,5 @@ td.verify(objectCallback(), {

(0, _useObserver.pureObserver)(obj, objectCallback);
td.verify(objectCallback(), {
times: 0
});
obj.prop = null;

@@ -564,8 +579,11 @@ td.verify(objectCallback(), {

(0, _useObserver.pureObserver)(obj, objectCallback);
td.verify(objectCallback(), {
times: 0
});
obj.prop = null;
expect(obj.prop).toBeNull();
td.verify(objectCallback(), {
times: 1
});
expect(obj.prop).toBeNull();
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wdXJlT2JzZXJ2ZXIuc3BlYy50cyJdLCJuYW1lcyI6WyJ0ZXN0Iiwib2JqZWN0Iiwib2JqMUNhbGxiYWNrIiwidGQiLCJmdW5jIiwidmVyaWZ5IiwidGltZXMiLCJvYmoxIiwiZm9vIiwibXV0YXRlTWUiLCJvYmoyIiwiYmFyIiwib2JqMkNhbGxiYWNrIiwiYXJyIiwiaGVsbG8iLCJ5byIsInB1c2giLCJpbm5lck9iaiIsImZpbGVzIiwidW5kZWZpbmVkIiwiZmllbGQiLCJuZXN0ZWQiLCJvYmplY3RDYWxsYmFjayIsImRlZXAiLCJ2ZXJ5IiwiZXhwZWN0IiwidG9FcXVhbCIsIm9iaiIsIm51bGxWYWx1ZSIsInByb3AiLCJ0b0JlTnVsbCIsInNraXAiXSwibWFwcGluZ3MiOiI7O0FBQ0E7O0FBQ0E7Ozs7OztBQUZBO0FBSUFBLElBQUksQ0FBQyx1QkFBRCxFQUEwQixNQUFNO0FBQ2xDLFFBQU1DLE1BQU0sR0FBRztBQUFDRCxJQUFBQSxJQUFJLEVBQUU7QUFBUCxHQUFmO0FBQ0EsUUFBTUUsWUFBWSxHQUFHQyxFQUFFLENBQUNDLElBQUgsRUFBckI7QUFDQSxpQ0FBYUgsTUFBYixFQUFxQkMsWUFBckI7QUFFQUQsRUFBQUEsTUFBTSxDQUFDRCxJQUFQLEdBQWMsS0FBZDtBQUNBRyxFQUFBQSxFQUFFLENBQUNFLE1BQUgsQ0FBVUgsWUFBWSxFQUF0QjtBQUNBRCxFQUFBQSxNQUFNLENBQUNELElBQVAsR0FBYyxPQUFkO0FBQ0FHLEVBQUFBLEVBQUUsQ0FBQ0UsTUFBSCxDQUFVSCxZQUFZLEVBQXRCLEVBQTBCO0FBQUNJLElBQUFBLEtBQUssRUFBRTtBQUFSLEdBQTFCO0FBQ0QsQ0FURyxDQUFKO0FBV0FOLElBQUksQ0FBQyxrREFBRCxFQUFxRCxNQUFNO0FBQzdELFFBQU1PLElBQUksR0FBRztBQUNYQyxJQUFBQSxHQUFHLEVBQUUsTUFETTtBQUVYQyxJQUFBQSxRQUFRLEVBQUUsTUFBTTtBQUNkRixNQUFBQSxJQUFJLENBQUNDLEdBQUwsR0FB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QUFMLENBQVUsd0ZBQVYsRUFBb0csTUFBTTtBQUN4RyxRQUFNSixHQUFHLEdBQUc7QUFDVkUsSUFBQUEsSUFBSSxFQUFFO0FBREksR0FBWjtBQUlBLFFBQU1QLGNBQWMsR0FBR25CLEVBQUUsQ0FBQ0MsSUFBSCxFQUF2QjtBQUNBLGlDQUFhdUIsR0FBYixFQUFrQkwsY0FBbEI7QUFFQUssRUFBQUEsR0FBRyxDQUFDRSxJQUFKLEdBQVcsSUFBWDtBQUVBSixFQUFBQSxNQUFNLENBQUNFLEdBQUcsQ0FBQ0UsSUFBTCxDQUFOLENBQWlCQyxRQUFqQjtBQUNBM0IsRUFBQUEsRUFBRSxDQUFDRSxNQUFILENBQVVpQixjQUFjLEVBQXhCLEVBQTRCO0FBQUNoQixJQUFBQSxLQUFLLEVBQUU7QUFBUixHQUE1QjtBQUNELENBWkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWlnbm9yZSAqL1xuaW1wb3J0ICogYXMgdGQgZnJvbSAndGVzdGRvdWJsZSdcbmltcG9ydCB7cHVyZU9ic2VydmVyfSBmcm9tICcuL3VzZU9ic2VydmVyJ1xuXG50ZXN0KCdpdCByZWFjdHMgdG8gYSBjaGFuZ2UnLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHt0ZXN0OiAnYWJjJ31cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpIGFzICgpID0+IHZvaWRcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqMUNhbGxiYWNrKVxuXG4gIG9iamVjdC50ZXN0ID0gJ2RlZidcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpKVxuICBvYmplY3QudGVzdCA9ICd0aGVyZSdcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDJ9KVxufSlcblxudGVzdCgndGhhdCBpdCBjYW4gd29yayB3aXRoIG11bHRpcGxlIG9iamVjdHMsIG5vIHJlYWN0JywgKCkgPT4ge1xuICBjb25zdCBvYmoxID0ge1xuICAgIGZvbzogJ2hlcmUnLFxuICAgIG11dGF0ZU1lOiAoKSA9PiB7XG4gICAgICBvYmoxLmZvbyA9ICd0aGVyZSdcbiAgICB9LFxuICB9XG4gIGNvbnN0IG9iajIgPSB7XG4gICAgYmFyOiAncGV0ZScsXG4gICAgbXV0YXRlTWU6ICgpID0+IHtcbiAgICAgIG9iajIuYmFyID0gJ3BhdWwnXG4gICAgfSxcbiAgfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcbiAgY29uc3Qgb2JqMkNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoyLCBvYmoyQ2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgdGQudmVyaWZ5KG9iajJDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuXG4gIG9iajEubXV0YXRlTWUoKVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCkpXG4gIHRkLnZlcmlmeShvYmoyQ2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgb2JqMi5tdXRhdGVNZSgpXG4gIHRkLnZlcmlmeShvYmoyQ2FsbGJhY2soKSlcbn0pXG5cbnRlc3QoJ2l0IHNob3VsZCBjYWxsYmFjayBmb3IgY2hhbmdlcyBpbiBvYmplY3RzIGFkZGVkIHRvIGFycmF5cycsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2FycjogW119XG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmoxQ2FsbGJhY2spXG4gIC8vIEZJWE1FIC0gZ2V0IHJpZCBvZiB0aGUgaW5pdGlhbCBjYWxsYmFja1xuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmplY3QuYXJyWzBdID0ge1xuICAgIGhlbGxvOiAnd29ybGQnLFxuICB9XG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAyfSlcblxuICBvYmplY3QuYXJyWzBdLmhlbGxvID0gJ3RoZXJlJ1xuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAzfSlcbn0pXG5cbnRlc3QoJ2l0IHNob3VsZCBjYWxsYmFjayBmb3IgY2hhbmdlcyBpbiBvYmplY3RzIGFkZGVkIHRvIGFycmF5cyBiZWZvcmUgb2JzZXJ2ZXIgaXMgYXR0YWNoZWQnLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHthcnI6IFtdfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgb2JqZWN0LmFyclswXSA9IHtcbiAgICBoZWxsbzogJ3dvcmxkJyxcbiAgfVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmoxQ2FsbGJhY2spXG4gIC8vIEZJWE1FIC0gY2FsbGJhY2sgc2hvdWxkIG5vdCBoYXBwZW4gcmlnaHQgYWZ0ZXIgb2JzZXJ2aW5nXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIG9iamVjdC5hcnJbMF0uaGVsbG8gPSAndGhlcmUnXG4gIC8vIEZJWE1FIC0gY2FsbGJhY2sgc2hvdWxkIGhhcHBlbiBvbmx5IG9uY2VcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogM30pXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgY2FsbGJhY2sgZm9yIGNoYW5nZXMgaW4gb2JqZWN0cyBhZGRlZCB0byBhcnJheXMgYmVmb3JlIG9ic2VydmVyIGlzIGF0dGFjaGVkJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7YXJyOiBbXX1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIG9iamVjdC5hcnJbMF0gPSB7XG4gICAgaGVsbG86ICd3b3JsZCcsXG4gIH1cbiAgb2JqZWN0LmFyclsxXSA9IHtcbiAgICB5bzogJ2R1ZGUnLFxuICB9XG4gIHB1cmVPYnNlcnZlcihvYmplY3QsIG9iajFDYWxsYmFjaylcblxuICBvYmplY3QuYXJyWzFdLnlvID0gJ21hbidcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCkpXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgb2JzZXJ2ZSBwcm92aWRlZCBhcnJheXMgdGhhdCBvdmVyd3JpdGUgaW50ZXJuYWwgYXJyYXlzJywgKCkgPT4ge1xuICBjb25zdCBhcnIgPSBbXVxuICBjb25zdCBvYmoxID0ge2FycjogW119XG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBvYmoxLmFyciA9IGFyclxuICBwdXJlT2JzZXJ2ZXIob2JqMSwgb2JqMUNhbGxiYWNrKVxuXG4gIGFyci5wdXNoKCdib28nKVxuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSlcbn0pXG5cbnRlc3QoJ292ZXJ3cml0ZSBhcnJheSB3aXRoIHNvbWV0aGluZyBlbHNlJywgKCkgPT4ge1xuICBjb25zdCBvYmoxID0ge2lubmVyT2JqOiB7fSwgZmlsZXM6IFtdfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIG9iajEuZmlsZXMgPSBbJ3NkZyddXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ2NoYW5naW5nIHRoZSB2YWx1ZSBvZiBhbiBpbm5lciBvYmplY3QnLCAoKSA9PiB7XG4gIGNvbnN0IG9iajEgPSB7aW5uZXJPYmo6IHt9fVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgb2JqMS5pbm5lck9iai50ZXN0ID0gJ3MnXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcbn0pXG5cbnRlc3QoJ2NoYW5naW5nIHRoZSBhc3NpZ25tZW50IGZyb20gYXJyYXkgdG8gYSBkaWZmZXJlbnQgYXJyYXknLCAoKSA9PiB7XG4gIGNvbnN0IG9iajEgPSB7ZmlsZXM6IFtdfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIG9iajEuZmlsZXMgPSBbJ3NkZyddXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ3VuZGVmaW5lZCBhcnJheScsICgpID0+IHtcbiAgY29uc3Qgb2JqMSA9IHtmaWxlczogdW5kZWZpbmVkfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIG9iajEuZmlsZXMgPSBbJ3NkZyddXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcbn0pXG5cbnRlc3QoJ2l0IHNob3VsZCBvYnNlcnZlIHByb3ZpZGVkIG9iamVjdHMgdGhhdCBvdmVyd3JpdGUgaW50ZXJuYWwgb2JqZWN0cycsICgpID0+IHtcbiAgY29uc3QgaW5uZXJPYmogPSB7Zm9vOiAnc29tZXRoaW5nJ31cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LXBhdHRlcm5cbiAgY29uc3Qgb2JqMSA9IHtpbm5lck9iajoge30gPSB7fX1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIG9iajEuaW5uZXJPYmogPSBpbm5lck9ialxuICBwdXJlT2JzZXJ2ZXIob2JqMSwgb2JqMUNhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMH0pXG5cbiAgaW5uZXJPYmouZm9vID0gJ2JhcidcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCkpXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgb2JzZXJ2ZSBwcm92aWRlZCBvYmplY3RzIHRoYXQgY3JlYXRlIG5ldyBpbnRlcm5hbCBvYmplY3RzJywgKCkgPT4ge1xuICBjb25zdCBpbm5lck9iaiA9IHtmb286ICd0ZXN0J31cbiAgY29uc3Qgb2JqMSA9IHt9XG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICAvLyBAdHMtaWdub3JlXG4gIG9iajEuaW5uZXJPYmogPSBpbm5lck9ialxuICBwdXJlT2JzZXJ2ZXIob2JqMSwgb2JqMUNhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMH0pXG5cbiAgaW5uZXJPYmouZm9vID0gJ2JhcidcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgb2JzZXJ2ZSBwcm92aWRlZCBleHRlcm5hbCBhcnJheXMnLCAoKSA9PiB7XG4gIGNvbnN0IGFyciA9IFtdXG4gIGNvbnN0IG9iajEgPSB7YXJyfVxuXG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqMSwgb2JqMUNhbGxiYWNrKVxuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmoxLmFyci5wdXNoKCdib28nKVxuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ2l0IHNob3VsZCBvYnNlcnZlIHByb3ZpZGVkIGludGVybmFsIGFycmF5cycsICgpID0+IHtcbiAgY29uc3Qgb2JqMSA9IHtcbiAgICBhcnI6IFtdLFxuICB9XG5cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoxLCBvYmoxQ2FsbGJhY2spXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIG9iajEuYXJyLnB1c2goJ2JvbycpXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ211bHRpLWxldmVsIGRlcHRoIGZpZWxkcyBhcmUgc2V0IHRvIGFuIG9iamVjdCB3aG9zZSB2YWx1ZSBjaGFuZ2VzJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IHtuZXN0ZWQ6IHt9fX1cblxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmplY3RDYWxsYmFjaylcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAwfSlcblxuICBvYmplY3QuZmllbGQubmVzdGVkID0ge1xuICAgIGRlZXA6IHtcbiAgICAgIHZlcnk6ICdkZWVwZXInLFxuICAgIH0sXG4gIH1cblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ211bHRpLWxldmVsIGRlcHRoIGZpZWxkcyBhcmUgc2V0IHRvIGFuIG9iamVjdCB3aG9zZSB2YWx1ZSBjaGFuZ2VzJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IHt9fVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmplY3QsIG9iamVjdENhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgLy9cbiAgb2JqZWN0LmZpZWxkID0ge1xuICAgIG5lc3RlZDoge30sXG4gIH1cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdtdWx0aS1sZXZlbCBkZXB0aCBmaWVsZHMgYXJlIHNldCB0byBhbiBvYmplY3Qgd2hvc2UgdmFsdWUgY2hhbmdlcycsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2ZpZWxkOiB7fX1cblxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmplY3RDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIC8vXG4gIG9iamVjdC5maWVsZCA9IHtcbiAgICBuZXN0ZWQ6IHt9LFxuICB9XG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgb2JqZWN0LmZpZWxkLm5lc3RlZCA9IHtcbiAgICBkZWVwOiB7XG4gICAgICB2ZXJ5OiAnZGVlcGVyJyxcbiAgICB9LFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwLnZlcnkpLnRvRXF1YWwoJ2RlZXBlcicpXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDN9KVxufSlcblxudGVzdCgnbXVsdGktbGV2ZWwgZGVwdGggZmllbGRzIGFyZSBzZXQgdG8gYW4gb2JqZWN0IHdob3NlIHZhbHVlIGNoYW5nZXMnLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHtmaWVsZDogbnVsbH1cblxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmplY3RDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIC8vXG4gIG9iamVjdC5maWVsZCA9IHtcbiAgICBuZXN0ZWQ6IHt9LFxuICB9XG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCA9IHt2ZXJ5OiAnZGVlcGVyJ31cblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcblxuICBvYmplY3QuZmllbGQubmVzdGVkLmRlZXAudmVyeSA9ICdjaGFuZ2VkIHN0cmluZydcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAzfSlcbn0pXG5cbnRlc3QoJ211bHRpLWxldmVsIGRlcHRoIGZpZWxkcyBhcmUgc2V0IHRvIGFuIG9iamVjdCB3aG9zZSB2YWx1ZSBjaGFuZ2VzIC0gbm8gcHJveHknLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHtmaWVsZDoge25lc3RlZDoge2RlZXA6ICdvbGQnfX19XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqZWN0Q2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICAvL1xuICBvYmplY3QuZmllbGQgPSB7XG4gICAgbmVzdGVkOiB7XG4gICAgICBkZWVwOiAndmFsdWUnLFxuICAgIH0sXG4gIH1cblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwKS50b0VxdWFsKCd2YWx1ZScpXG4gIC8vIG9iamVjdC5maWVsZC5uZXN0ZWQgPSB7XG4gIC8vICAgZGVlcDoge1xuICAvLyAgICAgdmVyeTogJ2RlZXBlcicsXG4gIC8vICAgfSxcbiAgLy8gfVxuICAvLyB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbiAgLy9cbiAgLy8gZXhwZWN0KG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcC52ZXJ5KS50b0VxdWFsKCdkZWVwZXInKVxufSlcblxudGVzdCgnbXVsdGktbGV2ZWwgZGVwdGggZmllbGRzIGFyZSBzZXQgdG8gYW4gb2JqZWN0IHdob3NlIHZhbHVlIGNoYW5nZXMnLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHtmaWVsZDogbnVsbH1cblxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmplY3RDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIC8vXG4gIG9iamVjdC5maWVsZCA9IHtcbiAgICBuZXN0ZWQ6IHtcbiAgICAgIGRlZXA6ICd2YWx1ZScsXG4gICAgfSxcbiAgfVxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIGV4cGVjdChvYmplY3QuZmllbGQubmVzdGVkLmRlZXApLnRvRXF1YWwoJ3ZhbHVlJylcbiAgb2JqZWN0LmZpZWxkID0ge1xuICAgIG5lc3RlZDoge1xuICAgICAgZGVlcDogJ25ld1ZhbHVlJyxcbiAgICB9LFxuICB9XG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDJ9KVxuXG4gIGV4cGVjdChvYmplY3QuZmllbGQubmVzdGVkLmRlZXApLnRvRXF1YWwoJ25ld1ZhbHVlJylcbn0pXG5cbnRlc3QoJ211bHRpLWxldmVsIGRlcHRoIGZpZWxkcyBhcmUgc2V0IHRvIGFuIG9iamVjdCB3aG9zZSB2YWx1ZSBjaGFuZ2VzJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IG51bGx9XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqZWN0Q2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICAvL1xuICBvYmplY3QuZmllbGQgPSB7XG4gICAgbmVzdGVkOiB7XG4gICAgICBkZWVwOiAndmFsdWUnLFxuICAgIH0sXG4gIH1cblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwKS50b0VxdWFsKCd2YWx1ZScpXG5cbiAgb2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwID0gJ25ld1ZhbHVlJ1xuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAzfSlcblxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwKS50b0VxdWFsKCduZXdWYWx1ZScpXG59KVxuXG50ZXN0KCdtdWx0aS1sZXZlbCBkZXB0aCBmaWVsZHMgYXJlIHNldCB0byBhbiBvYmplY3Qgd2hvc2UgdmFsdWUgY2hhbmdlcyAtIG5vIHByb3h5JywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IHtuZXN0ZWQ6IHtkZWVwOiAnJ319fVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmplY3QsIG9iamVjdENhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgLy9cbiAgLy8gb2JqZWN0LmZpZWxkID0ge1xuICAvLyAgIG5lc3RlZDoge1xuICAvLyAgICAgZGVlcDogJ3ZhbHVlJyxcbiAgLy8gICB9LFxuICAvLyB9XG5cbiAgb2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwID0gJ3ZhbHVlJ1xuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcblxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwKS50b0VxdWFsKCd2YWx1ZScpXG59KVxuXG50ZXN0KCdTZXR0aW5nIG51bGwgdG8gYW4gYWxyZWFkeSBudWxsIHZhbHVlIHNob3VsZCBub3QgdHJpZ2dlciBhIGNhbGxiYWNrJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgbnVsbFZhbHVlOiBudWxsLFxuICB9XG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIG9iai5udWxsVmFsdWUgPSBudWxsXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG59KVxuXG50ZXN0KCdTZXR0aW5nIG51bGwgdG8gYW4gYWxyZWFkeSBudWxsIHZhbHVlLCB0aGVuIHNldHRpbmcgYSByZWFsIHZhbHVlIHNob3VsZCB0cmlnZ2VyIGEgY2FsbGJhY2snLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBudWxsVmFsdWU6IG51bGwsXG4gIH1cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iaiwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgb2JqLm51bGxWYWx1ZSA9IG51bGxcblxuICBvYmoubnVsbFZhbHVlID0gJ3NvbWV0aGluZydcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcbn0pXG5cbnRlc3QoJ1NldHRpbmcgbnVsbCB0byBhbiBhc3NpZ25lZCBwcm9wZXJ0eSBzaG91bGQgdHJpZ2dlciBhIGNhbGxiYWNrJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgbnVsbFZhbHVlOiAnYW55dGhpbmcnLFxuICB9XG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIG9iai5udWxsVmFsdWUgPSBudWxsXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdTZXR0aW5nIG51bGwgdG8gYW4gYXNzaWduZWQgcHJvcGVydHksIHRoZW4gc2V0dGluZyBhIHJlYWwgdmFsdWUgc2hvdWxkIHRyaWdnZXIgYSBjYWxsYmFjaycsICgpID0+IHtcbiAgY29uc3Qgb2JqID0ge1xuICAgIG51bGxWYWx1ZTogJ2FueXRoaW5nJyxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICBvYmoubnVsbFZhbHVlID0gbnVsbFxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuXG4gIG9iai5udWxsVmFsdWUgPSAnc29tZXRoaW5nJ1xuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDJ9KVxufSlcblxudGVzdCgnU2V0dGluZyBudWxsIHRvIGFuIGV4aXN0aW5nIHByb3BlcnR5IGFuZCBvYnNlcnZlLCB0aGVuIHNldHRpbmcgYSByZWFsIHZhbHVlIHNob3VsZCB0cmlnZ2VyIGEgY2FsbGJhY2snLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBwcm9wOiB7fSxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICBvYmoucHJvcCA9IG51bGxcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcbn0pXG5cbnRlc3QoJ29iaiB3aXRoIGEgcHJvcCB0aGF0IGlzIGFuIG9iamVjdCwgc2V0IHByb3AgdG8gbnVsbCwgdGhlbiBzZXQgcHJvcCB0byBhIG9iamVjdC4gc2hvdWxkIHRyaWdnZXIgMiBjYWxsYmFja3MnLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBwcm9wOiB7fSxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICBvYmoucHJvcCA9IG51bGxcbiAgb2JqLnByb3AgPSB7fVxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDJ9KVxufSlcblxudGVzdCgnb2JqIHdpdGggYSBwcm9wIHRoYXQgaXMgYW4gb2JqZWN0LCBzZXQgcHJvcCB0byBudWxsLCB0aGVuIHNldCBwcm9wIHRvIGFuIGFycmF5LiBzaG91bGQgdHJpZ2dlciAyIGNhbGxiYWNrcycsICgpID0+IHtcbiAgY29uc3Qgb2JqID0ge1xuICAgIHByb3A6IHt9LFxuICB9XG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIG9iai5wcm9wID0gbnVsbFxuICBvYmoucHJvcCA9IFtdXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMn0pXG59KVxuXG50ZXN0KCdhbGxvdyBzZXR0aW5nIGEgcHJvcGVydHkgdG8gYSBwcmltaXRpdmUgYWZ0ZXIgYmVpbmcgc2V0IHRvIG51bGwnLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBwcm9wOiB7fSxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICBvYmoucHJvcCA9IG51bGxcbiAgb2JqLnByb3AgPSAnYXNkJ1xuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDJ9KVxufSlcblxudGVzdCgncHJvcCBzaG91bGQgYmUgbnVsbCBhZnRlciBpdCBpcyBzZXQgdG8gbnVsbCAoeWVzLCByZWFsbHkpIGFuZCBhIGNhbGxiYWNrIHNob3VsZCBoYXBwZW4nLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBwcm9wOiB7fVxuICB9XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iaiwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgb2JqLnByb3AgPSBudWxsXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG4gIGV4cGVjdChvYmoucHJvcCkudG9CZU51bGwoKVxufSlcblxuLy8gUEVORElORyBCVUdTXG4vLyB0aGVyZSBpcyBhbiBleHRyYSBjYWxsYmFjayBoZXJlXG50ZXN0LnNraXAoJ3Byb3Agc2hvdWxkIGJlIG51bGwgYWZ0ZXIgaXQgaXMgc2V0IHRvIG51bGwgKHllcywgcmVhbGx5KSBhbmQgYSBjYWxsYmFjayBzaG91bGQgaGFwcGVuJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgcHJvcDogW11cbiAgfVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIG9iai5wcm9wID0gbnVsbFxuXG4gIGV4cGVjdChvYmoucHJvcCkudG9CZU51bGwoKVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wdXJlT2JzZXJ2ZXIuc3BlYy50cyJdLCJuYW1lcyI6WyJ0ZXN0Iiwib2JqZWN0Iiwib2JqMUNhbGxiYWNrIiwidGQiLCJmdW5jIiwidmVyaWZ5IiwidGltZXMiLCJvYmoxIiwiZm9vIiwibXV0YXRlTWUiLCJvYmoyIiwiYmFyIiwib2JqMkNhbGxiYWNrIiwiYXJyIiwiaGVsbG8iLCJ5byIsInB1c2giLCJpbm5lck9iaiIsImZpbGVzIiwidW5kZWZpbmVkIiwiZmllbGQiLCJuZXN0ZWQiLCJvYmplY3RDYWxsYmFjayIsImRlZXAiLCJ2ZXJ5IiwiZXhwZWN0IiwidG9FcXVhbCIsIm9iaiIsIm51bGxWYWx1ZSIsInByb3AiLCJ0b0JlTnVsbCIsInNraXAiXSwibWFwcGluZ3MiOiI7O0FBQ0E7O0FBQ0E7Ozs7OztBQUZBO0FBSUFBLElBQUksQ0FBQyx1QkFBRCxFQUEwQixNQUFNO0FBQ2xDLFFBQU1DLE1BQU0sR0FBRztBQUFDRCxJQUFBQSxJQUFJLEVBQUU7QUFBUCxHQUFmO0FBQ0EsUUFBTUUsWUFBWSxHQUFHQyxFQUFFLENBQUNDLElBQUgsRUFBckI7QUFDQSxpQ0FBYUgsTUFBYixFQUFxQkMsWUFBckI7QUFFQUQsRUFBQUEsTUFBTSxDQUFDRCxJQUFQLEdBQWMsS0FBZDtBQUNBRyxFQUFBQSxFQUFFLENBQUNFLE1BQUgsQ0FBVUgsWUFBWSxFQUF0QjtBQUNBRCxFQUFBQSxNQUFNLENBQUNELElBQVAsR0FBYyxPQUFkO0FBQ0FHLEVBQUFBLEVBQUUsQ0FBQ0UsTUFBSCxDQUFVSCxZQUFZLEVBQXRCLEVBQTBCO0FBQUNJLElBQUFBLEtBQUssRUFBRTtBQUFSLEdBQTFCO0FBQ0QsQ0FURyxDQUFKO0FBV0FOLElBQUksQ0FBQyxrREFBRCxFQUFxRCxNQUFNO0FBQzdELFFBQU1PLElBQUksR0FBRztBQUNYQyxJQUFBQSxHQUFHLEVBQUUsTUFETTtBQUVYQyxJQUFBQSxRQUFRLEVBQUUsTUFBTTtBQUNkRixNQUFBQSxJQUFJLENBQUNDLEdBQUwsR0FB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ZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1pZ25vcmUgKi9cbmltcG9ydCAqIGFzIHRkIGZyb20gJ3Rlc3Rkb3VibGUnXG5pbXBvcnQge3B1cmVPYnNlcnZlcn0gZnJvbSAnLi91c2VPYnNlcnZlcidcblxudGVzdCgnaXQgcmVhY3RzIHRvIGEgY2hhbmdlJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7dGVzdDogJ2FiYyd9XG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKSBhcyAoKSA9PiB2b2lkXG4gIHB1cmVPYnNlcnZlcihvYmplY3QsIG9iajFDYWxsYmFjaylcblxuICBvYmplY3QudGVzdCA9ICdkZWYnXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSlcbiAgb2JqZWN0LnRlc3QgPSAndGhlcmUnXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ3RoYXQgaXQgY2FuIHdvcmsgd2l0aCBtdWx0aXBsZSBvYmplY3RzLCBubyByZWFjdCcsICgpID0+IHtcbiAgY29uc3Qgb2JqMSA9IHtcbiAgICBmb286ICdoZXJlJyxcbiAgICBtdXRhdGVNZTogKCkgPT4ge1xuICAgICAgb2JqMS5mb28gPSAndGhlcmUnXG4gICAgfSxcbiAgfVxuICBjb25zdCBvYmoyID0ge1xuICAgIGJhcjogJ3BldGUnLFxuICAgIG11dGF0ZU1lOiAoKSA9PiB7XG4gICAgICBvYmoyLmJhciA9ICdwYXVsJ1xuICAgIH0sXG4gIH1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoxLCBvYmoxQ2FsbGJhY2spXG4gIGNvbnN0IG9iajJDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqMiwgb2JqMkNhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIHRkLnZlcmlmeShvYmoyQ2FsbGJhY2soKSwge3RpbWVzOiAwfSlcblxuICBvYmoxLm11dGF0ZU1lKClcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpKVxuICB0ZC52ZXJpZnkob2JqMkNhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIG9iajIubXV0YXRlTWUoKVxuICB0ZC52ZXJpZnkob2JqMkNhbGxiYWNrKCkpXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgY2FsbGJhY2sgZm9yIGNoYW5nZXMgaW4gb2JqZWN0cyBhZGRlZCB0byBhcnJheXMnLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHthcnI6IFtdfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqMUNhbGxiYWNrKVxuICAvLyBGSVhNRSAtIGdldCByaWQgb2YgdGhlIGluaXRpYWwgY2FsbGJhY2tcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMX0pXG5cbiAgb2JqZWN0LmFyclswXSA9IHtcbiAgICBoZWxsbzogJ3dvcmxkJyxcbiAgfVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMn0pXG5cbiAgb2JqZWN0LmFyclswXS5oZWxsbyA9ICd0aGVyZSdcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogM30pXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgY2FsbGJhY2sgZm9yIGNoYW5nZXMgaW4gb2JqZWN0cyBhZGRlZCB0byBhcnJheXMgYmVmb3JlIG9ic2VydmVyIGlzIGF0dGFjaGVkJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7YXJyOiBbXX1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIG9iamVjdC5hcnJbMF0gPSB7XG4gICAgaGVsbG86ICd3b3JsZCcsXG4gIH1cbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqMUNhbGxiYWNrKVxuICAvLyBGSVhNRSAtIGNhbGxiYWNrIHNob3VsZCBub3QgaGFwcGVuIHJpZ2h0IGFmdGVyIG9ic2VydmluZ1xuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmplY3QuYXJyWzBdLmhlbGxvID0gJ3RoZXJlJ1xuICAvLyBGSVhNRSAtIGNhbGxiYWNrIHNob3VsZCBoYXBwZW4gb25seSBvbmNlXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDN9KVxufSlcblxudGVzdCgnaXQgc2hvdWxkIGNhbGxiYWNrIGZvciBjaGFuZ2VzIGluIG9iamVjdHMgYWRkZWQgdG8gYXJyYXlzIGJlZm9yZSBvYnNlcnZlciBpcyBhdHRhY2hlZCcsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2FycjogW119XG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBvYmplY3QuYXJyWzBdID0ge1xuICAgIGhlbGxvOiAnd29ybGQnLFxuICB9XG4gIG9iamVjdC5hcnJbMV0gPSB7XG4gICAgeW86ICdkdWRlJyxcbiAgfVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmoxQ2FsbGJhY2spXG5cbiAgb2JqZWN0LmFyclsxXS55byA9ICdtYW4nXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpKVxufSlcblxudGVzdCgnaXQgc2hvdWxkIG9ic2VydmUgcHJvdmlkZWQgYXJyYXlzIHRoYXQgb3ZlcndyaXRlIGludGVybmFsIGFycmF5cycsICgpID0+IHtcbiAgY29uc3QgYXJyID0gW11cbiAgY29uc3Qgb2JqMSA9IHthcnI6IFtdfVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgb2JqMS5hcnIgPSBhcnJcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcblxuICBhcnIucHVzaCgnYm9vJylcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCkpXG59KVxuXG50ZXN0KCdvdmVyd3JpdGUgYXJyYXkgd2l0aCBzb21ldGhpbmcgZWxzZScsICgpID0+IHtcbiAgY29uc3Qgb2JqMSA9IHtpbm5lck9iajoge30sIGZpbGVzOiBbXX1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoxLCBvYmoxQ2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmoxLmZpbGVzID0gWydzZGcnXVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMn0pXG59KVxuXG50ZXN0KCdjaGFuZ2luZyB0aGUgdmFsdWUgb2YgYW4gaW5uZXIgb2JqZWN0JywgKCkgPT4ge1xuICBjb25zdCBvYmoxID0ge2lubmVyT2JqOiB7fX1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoxLCBvYmoxQ2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAwfSlcblxuICAvLyBAdHMtaWdub3JlXG4gIG9iajEuaW5uZXJPYmoudGVzdCA9ICdzJ1xuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdjaGFuZ2luZyB0aGUgYXNzaWdubWVudCBmcm9tIGFycmF5IHRvIGEgZGlmZmVyZW50IGFycmF5JywgKCkgPT4ge1xuICBjb25zdCBvYmoxID0ge2ZpbGVzOiBbXX1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoxLCBvYmoxQ2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmoxLmZpbGVzID0gWydzZGcnXVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMn0pXG59KVxuXG50ZXN0KCd1bmRlZmluZWQgYXJyYXknLCAoKSA9PiB7XG4gIGNvbnN0IG9iajEgPSB7ZmlsZXM6IHVuZGVmaW5lZH1cbiAgY29uc3Qgb2JqMUNhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmoxLCBvYmoxQ2FsbGJhY2spXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICBvYmoxLmZpbGVzID0gWydzZGcnXVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgb2JzZXJ2ZSBwcm92aWRlZCBvYmplY3RzIHRoYXQgb3ZlcndyaXRlIGludGVybmFsIG9iamVjdHMnLCAoKSA9PiB7XG4gIGNvbnN0IGlubmVyT2JqID0ge2ZvbzogJ3NvbWV0aGluZyd9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1wYXR0ZXJuXG4gIGNvbnN0IG9iajEgPSB7aW5uZXJPYmo6IHt9ID0ge319XG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBvYmoxLmlubmVyT2JqID0gaW5uZXJPYmpcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuXG4gIGlubmVyT2JqLmZvbyA9ICdiYXInXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpKVxufSlcblxudGVzdCgnaXQgc2hvdWxkIG9ic2VydmUgcHJvdmlkZWQgb2JqZWN0cyB0aGF0IGNyZWF0ZSBuZXcgaW50ZXJuYWwgb2JqZWN0cycsICgpID0+IHtcbiAgY29uc3QgaW5uZXJPYmogPSB7Zm9vOiAndGVzdCd9XG4gIGNvbnN0IG9iajEgPSB7fVxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgLy8gQHRzLWlnbm9yZVxuICBvYmoxLmlubmVyT2JqID0gaW5uZXJPYmpcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuXG4gIGlubmVyT2JqLmZvbyA9ICdiYXInXG5cbiAgdGQudmVyaWZ5KG9iajFDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxufSlcblxudGVzdCgnaXQgc2hvdWxkIG9ic2VydmUgcHJvdmlkZWQgZXh0ZXJuYWwgYXJyYXlzJywgKCkgPT4ge1xuICBjb25zdCBhcnIgPSBbXVxuICBjb25zdCBvYmoxID0ge2Fycn1cblxuICBjb25zdCBvYmoxQ2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iajEsIG9iajFDYWxsYmFjaylcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMX0pXG5cbiAgb2JqMS5hcnIucHVzaCgnYm9vJylcblxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMn0pXG59KVxuXG50ZXN0KCdpdCBzaG91bGQgb2JzZXJ2ZSBwcm92aWRlZCBpbnRlcm5hbCBhcnJheXMnLCAoKSA9PiB7XG4gIGNvbnN0IG9iajEgPSB7XG4gICAgYXJyOiBbXSxcbiAgfVxuXG4gIGNvbnN0IG9iajFDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqMSwgb2JqMUNhbGxiYWNrKVxuXG4gIHRkLnZlcmlmeShvYmoxQ2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmoxLmFyci5wdXNoKCdib28nKVxuICB0ZC52ZXJpZnkob2JqMUNhbGxiYWNrKCksIHt0aW1lczogMn0pXG59KVxuXG50ZXN0KCdtdWx0aS1sZXZlbCBkZXB0aCBmaWVsZHMgYXJlIHNldCB0byBhbiBvYmplY3Qgd2hvc2UgdmFsdWUgY2hhbmdlcycsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2ZpZWxkOiB7bmVzdGVkOiB7fX19XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG5cbiAgb2JqZWN0LmZpZWxkLm5lc3RlZCA9IHtcbiAgICBkZWVwOiB7XG4gICAgICB2ZXJ5OiAnZGVlcGVyJyxcbiAgICB9LFxuICB9XG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMn0pXG59KVxuXG50ZXN0KCdtdWx0aS1sZXZlbCBkZXB0aCBmaWVsZHMgYXJlIHNldCB0byBhbiBvYmplY3Qgd2hvc2UgdmFsdWUgY2hhbmdlcycsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2ZpZWxkOiB7fX1cblxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmplY3RDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIC8vXG4gIG9iamVjdC5maWVsZCA9IHtcbiAgICBuZXN0ZWQ6IHt9LFxuICB9XG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxufSlcblxudGVzdCgnbXVsdGktbGV2ZWwgZGVwdGggZmllbGRzIGFyZSBzZXQgdG8gYW4gb2JqZWN0IHdob3NlIHZhbHVlIGNoYW5nZXMnLCAoKSA9PiB7XG4gIGNvbnN0IG9iamVjdCA9IHtmaWVsZDoge319XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqZWN0Q2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICAvL1xuICBvYmplY3QuZmllbGQgPSB7XG4gICAgbmVzdGVkOiB7fSxcbiAgfVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICAvLyBAdHMtaWdub3JlXG4gIG9iamVjdC5maWVsZC5uZXN0ZWQgPSB7XG4gICAgZGVlcDoge1xuICAgICAgdmVyeTogJ2RlZXBlcicsXG4gICAgfSxcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZXhwZWN0KG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcC52ZXJ5KS50b0VxdWFsKCdkZWVwZXInKVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAzfSlcbn0pXG5cbnRlc3QoJ211bHRpLWxldmVsIGRlcHRoIGZpZWxkcyBhcmUgc2V0IHRvIGFuIG9iamVjdCB3aG9zZSB2YWx1ZSBjaGFuZ2VzJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IG51bGx9XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqZWN0Q2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICAvL1xuICBvYmplY3QuZmllbGQgPSB7XG4gICAgbmVzdGVkOiB7fSxcbiAgfVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmplY3QuZmllbGQubmVzdGVkLmRlZXAgPSB7dmVyeTogJ2RlZXBlcid9XG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMn0pXG5cbiAgb2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwLnZlcnkgPSAnY2hhbmdlZCBzdHJpbmcnXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogM30pXG59KVxuXG50ZXN0KCdtdWx0aS1sZXZlbCBkZXB0aCBmaWVsZHMgYXJlIHNldCB0byBhbiBvYmplY3Qgd2hvc2UgdmFsdWUgY2hhbmdlcyAtIG5vIHByb3h5JywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IHtuZXN0ZWQ6IHtkZWVwOiAnb2xkJ319fVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmplY3QsIG9iamVjdENhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgLy9cbiAgb2JqZWN0LmZpZWxkID0ge1xuICAgIG5lc3RlZDoge1xuICAgICAgZGVlcDogJ3ZhbHVlJyxcbiAgICB9LFxuICB9XG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG5cbiAgZXhwZWN0KG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCkudG9FcXVhbCgndmFsdWUnKVxuICAvLyBvYmplY3QuZmllbGQubmVzdGVkID0ge1xuICAvLyAgIGRlZXA6IHtcbiAgLy8gICAgIHZlcnk6ICdkZWVwZXInLFxuICAvLyAgIH0sXG4gIC8vIH1cbiAgLy8gdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMn0pXG4gIC8vXG4gIC8vIGV4cGVjdChvYmplY3QuZmllbGQubmVzdGVkLmRlZXAudmVyeSkudG9FcXVhbCgnZGVlcGVyJylcbn0pXG5cbnRlc3QoJ211bHRpLWxldmVsIGRlcHRoIGZpZWxkcyBhcmUgc2V0IHRvIGFuIG9iamVjdCB3aG9zZSB2YWx1ZSBjaGFuZ2VzJywgKCkgPT4ge1xuICBjb25zdCBvYmplY3QgPSB7ZmllbGQ6IG51bGx9XG5cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iamVjdCwgb2JqZWN0Q2FsbGJhY2spXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICAvL1xuICBvYmplY3QuZmllbGQgPSB7XG4gICAgbmVzdGVkOiB7XG4gICAgICBkZWVwOiAndmFsdWUnLFxuICAgIH0sXG4gIH1cblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwKS50b0VxdWFsKCd2YWx1ZScpXG4gIG9iamVjdC5maWVsZCA9IHtcbiAgICBuZXN0ZWQ6IHtcbiAgICAgIGRlZXA6ICduZXdWYWx1ZScsXG4gICAgfSxcbiAgfVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcblxuICBleHBlY3Qob2JqZWN0LmZpZWxkLm5lc3RlZC5kZWVwKS50b0VxdWFsKCduZXdWYWx1ZScpXG59KVxuXG50ZXN0KCdtdWx0aS1sZXZlbCBkZXB0aCBmaWVsZHMgYXJlIHNldCB0byBhbiBvYmplY3Qgd2hvc2UgdmFsdWUgY2hhbmdlcycsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2ZpZWxkOiBudWxsfVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmplY3QsIG9iamVjdENhbGxiYWNrKVxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgLy9cbiAgb2JqZWN0LmZpZWxkID0ge1xuICAgIG5lc3RlZDoge1xuICAgICAgZGVlcDogJ3ZhbHVlJyxcbiAgICB9LFxuICB9XG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG5cbiAgZXhwZWN0KG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCkudG9FcXVhbCgndmFsdWUnKVxuXG4gIG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCA9ICduZXdWYWx1ZSdcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogM30pXG5cbiAgZXhwZWN0KG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCkudG9FcXVhbCgnbmV3VmFsdWUnKVxufSlcblxudGVzdCgnbXVsdGktbGV2ZWwgZGVwdGggZmllbGRzIGFyZSBzZXQgdG8gYW4gb2JqZWN0IHdob3NlIHZhbHVlIGNoYW5nZXMgLSBubyBwcm94eScsICgpID0+IHtcbiAgY29uc3Qgb2JqZWN0ID0ge2ZpZWxkOiB7bmVzdGVkOiB7ZGVlcDogJyd9fX1cblxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqZWN0LCBvYmplY3RDYWxsYmFjaylcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIC8vXG4gIC8vIG9iamVjdC5maWVsZCA9IHtcbiAgLy8gICBuZXN0ZWQ6IHtcbiAgLy8gICAgIGRlZXA6ICd2YWx1ZScsXG4gIC8vICAgfSxcbiAgLy8gfVxuXG4gIG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCA9ICd2YWx1ZSdcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMn0pXG5cbiAgZXhwZWN0KG9iamVjdC5maWVsZC5uZXN0ZWQuZGVlcCkudG9FcXVhbCgndmFsdWUnKVxufSlcblxudGVzdCgnU2V0dGluZyBudWxsIHRvIGFuIGFscmVhZHkgbnVsbCB2YWx1ZSBzaG91bGQgbm90IHRyaWdnZXIgYSBjYWxsYmFjaycsICgpID0+IHtcbiAgY29uc3Qgb2JqID0ge1xuICAgIG51bGxWYWx1ZTogbnVsbCxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICBvYmoubnVsbFZhbHVlID0gbnVsbFxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxufSlcblxudGVzdCgnU2V0dGluZyBudWxsIHRvIGFuIGFscmVhZHkgbnVsbCB2YWx1ZSwgdGhlbiBzZXR0aW5nIGEgcmVhbCB2YWx1ZSBzaG91bGQgdHJpZ2dlciBhIGNhbGxiYWNrJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgbnVsbFZhbHVlOiBudWxsLFxuICB9XG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIG9iai5udWxsVmFsdWUgPSBudWxsXG5cbiAgb2JqLm51bGxWYWx1ZSA9ICdzb21ldGhpbmcnXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdTZXR0aW5nIG51bGwgdG8gYW4gYXNzaWduZWQgcHJvcGVydHkgc2hvdWxkIHRyaWdnZXIgYSBjYWxsYmFjaycsICgpID0+IHtcbiAgY29uc3Qgb2JqID0ge1xuICAgIG51bGxWYWx1ZTogJ2FueXRoaW5nJyxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICBvYmoubnVsbFZhbHVlID0gbnVsbFxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxufSlcblxudGVzdCgnU2V0dGluZyBudWxsIHRvIGFuIGFzc2lnbmVkIHByb3BlcnR5LCB0aGVuIHNldHRpbmcgYSByZWFsIHZhbHVlIHNob3VsZCB0cmlnZ2VyIGEgY2FsbGJhY2snLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBudWxsVmFsdWU6ICdhbnl0aGluZycsXG4gIH1cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iaiwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgb2JqLm51bGxWYWx1ZSA9IG51bGxcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcblxuICBvYmoubnVsbFZhbHVlID0gJ3NvbWV0aGluZydcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ1NldHRpbmcgbnVsbCB0byBhbiBleGlzdGluZyBwcm9wZXJ0eSBhbmQgb2JzZXJ2ZSwgdGhlbiBzZXR0aW5nIGEgcmVhbCB2YWx1ZSBzaG91bGQgdHJpZ2dlciBhIGNhbGxiYWNrJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgcHJvcDoge30sXG4gIH1cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iaiwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgb2JqLnByb3AgPSBudWxsXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG59KVxuXG50ZXN0KCdvYmogd2l0aCBhIHByb3AgdGhhdCBpcyBhbiBvYmplY3QsIHNldCBwcm9wIHRvIG51bGwsIHRoZW4gc2V0IHByb3AgdG8gYSBvYmplY3QuIHNob3VsZCB0cmlnZ2VyIDIgY2FsbGJhY2tzJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgcHJvcDoge30sXG4gIH1cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iaiwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgb2JqLnByb3AgPSBudWxsXG4gIG9iai5wcm9wID0ge31cblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ29iaiB3aXRoIGEgcHJvcCB0aGF0IGlzIGFuIG9iamVjdCwgc2V0IHByb3AgdG8gbnVsbCwgdGhlbiBzZXQgcHJvcCB0byBhbiBhcnJheS4gc2hvdWxkIHRyaWdnZXIgMiBjYWxsYmFja3MnLCAoKSA9PiB7XG4gIGNvbnN0IG9iaiA9IHtcbiAgICBwcm9wOiB7fSxcbiAgfVxuICBjb25zdCBvYmplY3RDYWxsYmFjayA9IHRkLmZ1bmMoKVxuICBwdXJlT2JzZXJ2ZXIob2JqLCBvYmplY3RDYWxsYmFjaylcblxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAwfSlcbiAgb2JqLnByb3AgPSBudWxsXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDF9KVxuICBvYmoucHJvcCA9IFtdXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDJ9KVxufSlcblxudGVzdCgnYWxsb3cgc2V0dGluZyBhIHByb3BlcnR5IHRvIGEgcHJpbWl0aXZlIGFmdGVyIGJlaW5nIHNldCB0byBudWxsJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgcHJvcDoge30sXG4gIH1cbiAgY29uc3Qgb2JqZWN0Q2FsbGJhY2sgPSB0ZC5mdW5jKClcbiAgcHVyZU9ic2VydmVyKG9iaiwgb2JqZWN0Q2FsbGJhY2spXG5cbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMH0pXG4gIG9iai5wcm9wID0gbnVsbFxuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAxfSlcbiAgb2JqLnByb3AgPSAnYXNkJ1xuICB0ZC52ZXJpZnkob2JqZWN0Q2FsbGJhY2soKSwge3RpbWVzOiAyfSlcbn0pXG5cbnRlc3QoJ3Byb3Agc2hvdWxkIGJlIG51bGwgYWZ0ZXIgaXQgaXMgc2V0IHRvIG51bGwgKHllcywgcmVhbGx5KSBhbmQgYSBjYWxsYmFjayBzaG91bGQgaGFwcGVuJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgcHJvcDoge31cbiAgfVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICBvYmoucHJvcCA9IG51bGxcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG4gIGV4cGVjdChvYmoucHJvcCkudG9CZU51bGwoKVxufSlcblxuLy8gUEVORElORyBCVUdTXG4vLyB0aGVyZSBpcyBhbiBleHRyYSBjYWxsYmFjayBoZXJlXG50ZXN0LnNraXAoJ3Byb3Agc2hvdWxkIGJlIG51bGwgYWZ0ZXIgaXQgaXMgc2V0IHRvIG51bGwgKHllcywgcmVhbGx5KSBhbmQgYSBjYWxsYmFjayBzaG91bGQgaGFwcGVuJywgKCkgPT4ge1xuICBjb25zdCBvYmogPSB7XG4gICAgcHJvcDogW11cbiAgfVxuXG4gIGNvbnN0IG9iamVjdENhbGxiYWNrID0gdGQuZnVuYygpXG4gIHB1cmVPYnNlcnZlcihvYmosIG9iamVjdENhbGxiYWNrKVxuXG4gIHRkLnZlcmlmeShvYmplY3RDYWxsYmFjaygpLCB7dGltZXM6IDB9KVxuICBvYmoucHJvcCA9IG51bGxcbiAgdGQudmVyaWZ5KG9iamVjdENhbGxiYWNrKCksIHt0aW1lczogMX0pXG4gIGV4cGVjdChvYmoucHJvcCkudG9CZU51bGwoKVxufSlcbiJdfQ==

17

lib/useObserver.js

@@ -73,3 +73,2 @@ "use strict";

function attachProxyToProperties(model, callback, id) {
// *** SAM CHANGE 1 - replaced this: if (!model.__proxyAttached) {
if (model && !model.__proxyAttached) {

@@ -118,5 +117,4 @@ // eslint-disable-next-line no-param-reassign

attachProxyToProperties(value, callback, id);
} // *** SAM CHANGE 3
}
if (!value) {

@@ -128,3 +126,3 @@ Object.defineProperty(object, fieldName, {

set: value => {
if (originalField === value) return; // *** SAM CHANGE 2
if (originalField === value) return;

@@ -172,3 +170,3 @@ if (typeof value === 'object' && !Array.isArray(value)) {

set: value => {
if (originalField === value) return; // *** SAM CHANGE 2
if (originalField === value) return;

@@ -266,6 +264,7 @@ if (typeof value === 'object' && !Array.isArray(value)) {

function useReactify(model) {
const subscriptionId = useUniqueId();
const [, stateChange] = (0, _react.useState)(model.hash());
const subscriptionId = useUniqueId(); // const [, stateChange] = useState(model.hash())
const [, stateChange] = (0, _react.useState)(0);
const stateChangeCallback = (0, _react.useCallback)(() => {
stateChange(model.hash());
stateChange(i => i + 1);
}, [model]);

@@ -299,2 +298,2 @@ (0, _react.useEffect)(() => {

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VPYnNlcnZlci50cyJdLCJuYW1lcyI6WyJFdmVudEVtaXR0ZXIiLCJjYWxsYmFja3MiLCJvbiIsImV2ZW50SWQiLCJzdWJzY3JpcHRpb25JZCIsImNiIiwicHVzaCIsInJlbW92ZSIsImZpbHRlciIsImMiLCJlbWl0IiwiZm9yRWFjaCIsImV2ZW50RW1pdHRlciIsImdldEZpZWxkTmFtZXMiLCJ0b0NoZWNrIiwicHJvcHMiLCJvYmoiLCJjb25jYXQiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiZ2V0UHJvdG90eXBlT2YiLCJzb3J0IiwiZSIsImkiLCJhcnIiLCJpc1dyaXRhYmxlRmllbGQiLCJvYmplY3QiLCJmaWVsZE5hbWUiLCJmaWVsZERlc2NyaXB0b3IiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ3cml0YWJsZSIsImlzV3JpdGVhYmxlT2JqZWN0RmllbGQiLCJpc1dyaXRlYWJsZVByaW1pdGl2ZUZpZWxkIiwiaXNXcml0ZWFibGVBcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzIiwibW9kZWwiLCJjYWxsYmFjayIsImlkIiwiX19wcm94eUF0dGFjaGVkIiwiZmllbGQiLCJyZWN1cnNpdmVseUF0dGFjaFByb3h5IiwiX19vYnNlcnZhYmxlSWQiLCJhdHRhY2hQcm94eVRvRmllbGQiLCJvcmlnaW5hbEZpZWxkIiwibmV3UHJveHkiLCJQcm94eSIsImdldCIsInRhcmdldCIsInByb3BlcnR5Iiwic2V0IiwidmFsdWUiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJpbm5lclZhbHVlIiwiYXR0YWNoUHJveHlUb0FycmF5IiwiZWxlbWVudCIsImluZGV4IiwibmVzdGVkRmllbGROYW1lIiwidW5kZWZpbmVkIiwiYWRkSWQiLCJhZGRIYXNoIiwiaGFzaCIsImN1cnJlbnRJZCIsInVzZVVuaXF1ZUlkIiwicmVmIiwiY3VycmVudCIsInVzZVJlYWN0aWZ5Iiwic3RhdGVDaGFuZ2UiLCJzdGF0ZUNoYW5nZUNhbGxiYWNrIiwiZGVjb3JhdGUiLCJ1c2VPYnNlcnZlciIsInB1cmVPYnNlcnZlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxZQUFOLENBQW1CO0FBQUE7QUFBQSxTQUNqQkMsU0FEaUIsR0FDTCxFQURLO0FBQUE7O0FBR2pCQyxFQUFBQSxFQUFFLENBQUNDLE9BQUQsRUFBVUMsY0FBVixFQUEwQkMsRUFBMUIsRUFBb0M7QUFDcEMsU0FBS0osU0FBTCxDQUFlRSxPQUFmLElBQTBCLEtBQUtGLFNBQUwsQ0FBZUUsT0FBZixLQUEyQixFQUFyRCxDQURvQyxDQUVwQzs7QUFDQUUsSUFBQUEsRUFBRSxDQUFDRCxjQUFILEdBQW9CQSxjQUFwQjtBQUNBLFNBQUtILFNBQUwsQ0FBZUUsT0FBZixFQUF3QkcsSUFBeEIsQ0FBNkJELEVBQTdCO0FBQ0Q7O0FBRURFLEVBQUFBLE1BQU0sQ0FBQ0osT0FBRCxFQUFVQyxjQUFWLEVBQWdDO0FBQ3BDLFNBQUtILFNBQUwsQ0FBZUUsT0FBZixJQUEwQixLQUFLRixTQUFMLENBQWVFLE9BQWYsRUFBd0JLLE1BQXhCLENBQ3ZCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0wsY0FBRixLQUFxQkEsY0FESixDQUExQjtBQUdEOztBQUVETSxFQUFBQSxJQUFJLENBQUNQLE9BQUQsRUFBZ0I7QUFDbEIsUUFBSSxLQUFLRixTQUFMLENBQWVFLE9BQWYsQ0FBSixFQUE2QjtBQUMzQixXQUFLRixTQUFMLENBQWVFLE9BQWYsRUFBd0JRLE9BQXhCLENBQWlDTixFQUFELElBQVFBLEVBQUUsRUFBMUM7QUFDRDtBQUNGOztBQXBCZ0I7O0FBdUJuQixNQUFNTyxZQUFZLEdBQUcsSUFBSVosWUFBSixFQUFyQjs7QUFTQSxTQUFTYSxhQUFULENBQXVCQyxPQUF2QixFQUEwQztBQUN4QyxNQUFJQyxLQUFLLEdBQUcsRUFBWjtBQUNBLE1BQUlDLEdBQUcsR0FBR0YsT0FBVjs7QUFF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RCxDQUFMO0FBQ0Q7O0FBRUQsU0FBU29DLFdBQVQsQ0FBc0NwQyxLQUF0QyxFQUFtRDtBQUNqRG1DLEVBQUFBLFFBQVEsQ0FBQ25DLEtBQUQsQ0FBUjtBQUNBLFFBQU1DLFFBQVEsR0FBRytCLFdBQVcsQ0FBQ2hDLEtBQUQsQ0FBNUI7QUFDQUQsRUFBQUEsdUJBQXVCLENBQUNDLEtBQUQsRUFBUUMsUUFBUixDQUF2QjtBQUNBLFNBQU9ELEtBQVA7QUFDRDs7QUFFTSxTQUFTcUMsWUFBVCxDQUF1Q3JDLEtBQXZDLEVBQWlEQyxRQUFqRCxFQUF3RTtBQUM3RWtDLEVBQUFBLFFBQVEsQ0FBQ25DLEtBQUQsQ0FBUjtBQUNBRCxFQUFBQSx1QkFBdUIsQ0FBQ0MsS0FBRCxFQUFRQyxRQUFSLENBQXZCO0FBQ0EsU0FBT0QsS0FBUDtBQUNEOztlQUVjb0MsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnXG5pbXBvcnQgaGFzaCBmcm9tICcuL2hhc2gnXG5pbXBvcnQge2dlbmVyYXRlSWR9IGZyb20gJy4vaGVscGVycy9nZW5lcmF0ZUlkJ1xuXG5jbGFzcyBFdmVudEVtaXR0ZXIge1xuICBjYWxsYmFja3MgPSB7fVxuXG4gIG9uKGV2ZW50SWQsIHN1YnNjcmlwdGlvbklkLCBjYik6IHZvaWQge1xuICAgIHRoaXMuY2FsbGJhY2tzW2V2ZW50SWRdID0gdGhpcy5jYWxsYmFja3NbZXZlbnRJZF0gfHwgW11cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBjYi5zdWJzY3JpcHRpb25JZCA9IHN1YnNjcmlwdGlvbklkXG4gICAgdGhpcy5jYWxsYmFja3NbZXZlbnRJZF0ucHVzaChjYilcbiAgfVxuXG4gIHJlbW92ZShldmVudElkLCBzdWJzY3JpcHRpb25JZCk6IHZvaWQge1xuICAgIHRoaXMuY2FsbGJhY2tzW2V2ZW50SWRdID0gdGhpcy5jYWxsYmFja3NbZXZlbnRJZF0uZmlsdGVyKFxuICAgICAgKGMpID0+IGMuc3Vic2NyaXB0aW9uSWQgIT09IHN1YnNjcmlwdGlvbklkXG4gICAgKVxuICB9XG5cbiAgZW1pdChldmVudElkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FsbGJhY2tzW2V2ZW50SWRdKSB7XG4gICAgICB0aGlzLmNhbGxiYWNrc1tldmVudElkXS5mb3JFYWNoKChjYikgPT4gY2IoKSlcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbnR5cGUgTW9kZWwgPSB7XG4gIGNvbnN0cnVjdG9yXG4gIF9fb2JzZXJ2YWJsZUlkPzogc3RyaW5nXG4gIF9fcHJveHlBdHRhY2hlZD86IGJvb2xlYW5cbiAgaGFzaD86ICgpID0+IHN0cmluZ1xufVxuXG5mdW5jdGlvbiBnZXRGaWVsZE5hbWVzKHRvQ2hlY2spOiBzdHJpbmdbXSB7XG4gIGxldCBwcm9wcyA9IFtdXG4gIGxldCBvYmogPSB0b0NoZWNrXG5cbiAgZG8ge1xuICAgIHByb3BzID0gcHJvcHMuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikpXG4gIH0gd2hpbGUgKChvYmogPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSkpXG4gIHJldHVybiBwcm9wc1xuICAgIC5zb3J0KClcbiAgICAuZmlsdGVyKChlLCBpLCBhcnIpID0+IGUgIT09IGFycltpICsgMV0gJiYgdHlwZW9mIHRvQ2hlY2tbZV0gIT09ICdmdW5jdGlvbicpXG59XG5cbmZ1bmN0aW9uIGlzV3JpdGFibGVGaWVsZChvYmplY3QsIGZpZWxkTmFtZSk6IGJvb2xlYW4ge1xuICBjb25zdCBmaWVsZERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgZmllbGROYW1lKVxuICByZXR1cm4gZmllbGREZXNjcmlwdG9yICYmIGZpZWxkRGVzY3JpcHRvci53cml0YWJsZVxufVxuXG5mdW5jdGlvbiBpc1dyaXRlYWJsZU9iamVjdEZpZWxkKG9iamVjdCwgZmllbGROYW1lKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXNXcml0YWJsZUZpZWxkKG9iamVjdCwgZmllbGROYW1lKSAmJlxuICAgIHR5cGVvZiBvYmplY3RbZmllbGROYW1lXSA9PT0gJ29iamVjdCcgJiZcbiAgICBvYmplY3RbZmllbGROYW1lXSAhPT0gbnVsbFxuICApXG59XG5cbmZ1bmN0aW9uIGlzV3JpdGVhYmxlUHJpbWl0aXZlRmllbGQob2JqZWN0LCBmaWVsZE5hbWUpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBpc1dyaXRhYmxlRmllbGQob2JqZWN0LCBmaWVsZE5hbWUpICYmXG4gICAgKHR5cGVvZiBvYmplY3RbZmllbGROYW1lXSAhPT0gJ29iamVjdCcgfHwgb2JqZWN0W2ZpZWxkTmFtZV0gPT09IG51bGwpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNXcml0ZWFibGVBcnJheShvYmplY3QsIGZpZWxkTmFtZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNXcml0YWJsZUZpZWxkKG9iamVjdCwgZmllbGROYW1lKSAmJiBBcnJheS5pc0FycmF5KG9iamVjdFtmaWVsZE5hbWVdKVxufVxuXG5mdW5jdGlvbiBhdHRhY2hQcm94eVRvUHJvcGVydGllcyhtb2RlbDogTW9kZWwsIGNhbGxiYWNrOiBGdW5jdGlvbiwgaWQ/KTogdm9pZCB7XG4gIC8vICoqKiBTQU0gQ0hBTkdFIDEgLSByZXBsYWNlZCB0aGlzOiBpZiAoIW1vZGVsLl9fcHJveHlBdHRhY2hlZCkge1xuICBpZiAobW9kZWwgJiYgIW1vZGVsLl9fcHJveHlBdHRhY2hlZCkge1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgbW9kZWwuX19wcm94eUF0dGFjaGVkID0gdHJ1ZVxuICAgIGdldEZpZWxkTmFtZXMobW9kZWwpLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICByZWN1cnNpdmVseUF0dGFjaFByb3h5KFxuICAgICAgICBtb2RlbFtmaWVsZF0sXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgaWQgfHwgbW9kZWwuX19vYnNlcnZhYmxlSWQsXG4gICAgICAgIGNhbGxiYWNrXG4gICAgICApXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBhdHRhY2hQcm94eVRvRmllbGQoXG4gIG9iamVjdCxcbiAgZmllbGROYW1lLFxuICBvcmlnaW5hbEZpZWxkLFxuICBjYWxsYmFjayxcbiAgaWRcbik6IHZvaWQge1xuICBpZiAoZmllbGROYW1lID09PSAnX19wcm94eUF0dGFjaGVkJylcbiAgICByZXR1cm5cbiAgdHJ5IHtcbiAgICBsZXQgbmV3UHJveHkgPSBuZXcgUHJveHkob2JqZWN0W2ZpZWxkTmFtZV0sIHtcbiAgICAgIGdldCh0YXJnZXQsIHByb3BlcnR5KTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV1cbiAgICAgIH0sXG4gICAgICBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgdmFsdWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHByb3BlcnR5ICE9PSAnX19wcm90b19fJyAmJiBwcm9wZXJ0eSAhPT0gJ2xlbmd0aCcpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgYXR0YWNoUHJveHlUb1Byb3BlcnRpZXModmFsdWUsIGNhbGxiYWNrLCBpZClcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IHZhbHVlXG4gICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBmaWVsZE5hbWUsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6ICgpID0+IHtcblxuICAgICAgICByZXR1cm4gbmV3UHJveHlcbiAgICAgIH0sXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICBhdHRhY2hQcm94eVRvUHJvcGVydGllcyh2YWx1ZSwgY2FsbGJhY2ssIGlkKVxuICAgICAgICB9XG4gICAgICAgIC8vICoqKiBTQU0gQ0hBTkdFIDNcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIGZpZWxkTmFtZSwge1xuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGdldDogKCkgPT4gdmFsdWUsXG4gICAgICAgICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAob3JpZ2luYWxGaWVsZCA9PT0gdmFsdWUpIHJldHVybiAvLyAqKiogU0FNIENIQU5HRSAyXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKHZhbHVlLCBjYWxsYmFjaywgaWQpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIG9yaWdpbmFsRmllbGQgPSB2YWx1ZVxuICAgICAgICAgICAgICBjYWxsYmFjaygpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKClcbiAgICAgICAgfVxuICAgICAgICBuZXdQcm94eSA9IG5ldyBQcm94eSh2YWx1ZSwge1xuICAgICAgICAgIGdldCh0YXJnZXQsIHByb3BlcnR5KTogb2JqZWN0IHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHldXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgaW5uZXJWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5ICE9PSAnX19wcm90b19fJyAmJiBwcm9wZXJ0eSAhPT0gJ2xlbmd0aCcpIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbm5lclZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKGlubmVyVmFsdWUsIGNhbGxiYWNrLCBpZClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IGlubmVyVmFsdWVcbiAgICAgICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBjYWxsYmFjaygpXG4gICAgICB9LFxuICAgIH0pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBmaWVsZE5hbWUsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6ICgpID0+IG9yaWdpbmFsRmllbGQsXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAob3JpZ2luYWxGaWVsZCA9PT0gdmFsdWUpIHJldHVybiAvLyAqKiogU0FNIENIQU5HRSAyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKHZhbHVlLCBjYWxsYmFjaywgaWQpXG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIG9yaWdpbmFsRmllbGQgPSB2YWx1ZVxuICAgICAgICBjYWxsYmFjaygpXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxufVxuXG5mdW5jdGlvbiBhdHRhY2hQcm94eVRvQXJyYXkob2JqZWN0LCBmaWVsZE5hbWUsIGNhbGxiYWNrLCBpZCk6IHZvaWQge1xuICBvYmplY3RbZmllbGROYW1lXS5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgICByZWN1cnNpdmVseUF0dGFjaFByb3h5KGVsZW1lbnQsIGluZGV4LCBvYmplY3RbZmllbGROYW1lXSwgaWQsIGNhbGxiYWNrKVxuICB9KVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBvYmplY3RbYF9fX18ke2ZpZWxkTmFtZX1gXSA9IG9iamVjdFtmaWVsZE5hbWVdXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsIGZpZWxkTmFtZSwge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogKCkgPT4gb2JqZWN0W2BfX19fJHtmaWVsZE5hbWV9YF0sXG4gICAgc2V0OiAodmFsdWUpID0+IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgb2JqZWN0W2BfX19fJHtmaWVsZE5hbWV9YF0gPSB2YWx1ZVxuICAgICAgY2FsbGJhY2soKVxuICAgIH0sXG4gIH0pXG5cbiAgLy8gRklYTUUgdGhpcyBpcyBjYXVzaW5nIHRoZSBleHRyYSBjYWxsYmFjayBpbiBwdXJlT2JzZXJ2ZXIuc3BlYyB0ZXN0c1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgb2JqZWN0W2ZpZWxkTmFtZV0gPSBuZXcgUHJveHkob2JqZWN0W2ZpZWxkTmFtZV0sIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wZXJ0eSk6IG9iamVjdCB7XG4gICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XVxuICAgIH0sXG4gICAgc2V0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICBpZiAocHJvcGVydHkgIT09ICdfX3Byb3RvX18nICYmIHByb3BlcnR5ICE9PSAnbGVuZ3RoJykge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKHZhbHVlLCBjYWxsYmFjaywgaWQpXG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgIHRhcmdldFtwcm9wZXJ0eV0gPSB2YWx1ZVxuICAgICAgICBjYWxsYmFjaygpXG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0sXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHJlY3Vyc2l2ZWx5QXR0YWNoUHJveHkoXG4gIG9yaWdpbmFsRmllbGQsXG4gIGZpZWxkTmFtZSxcbiAgb2JqZWN0LFxuICBpZCxcbiAgY2FsbGJhY2s6IEZ1bmN0aW9uXG4pOiB2b2lkIHtcbiAgaWYgKGlzV3JpdGVhYmxlUHJpbWl0aXZlRmllbGQob2JqZWN0LCBmaWVsZE5hbWUpKVxuICAgIHJldHVybiBhdHRhY2hQcm94eVRvRmllbGQob2JqZWN0LCBmaWVsZE5hbWUsIG9yaWdpbmFsRmllbGQsIGNhbGxiYWNrLCBpZClcbiAgaWYgKGlzV3JpdGVhYmxlQXJyYXkob2JqZWN0LCBmaWVsZE5hbWUpKVxuICAgIHJldHVybiBhdHRhY2hQcm94eVRvQXJyYXkob2JqZWN0LCBmaWVsZE5hbWUsIGNhbGxiYWNrLCBpZClcbiAgaWYgKGlzV3JpdGVhYmxlT2JqZWN0RmllbGQob2JqZWN0LCBmaWVsZE5hbWUpKSB7XG4gICAgYXR0YWNoUHJveHlUb0ZpZWxkKG9iamVjdCwgZmllbGROYW1lLCBvcmlnaW5hbEZpZWxkLCBjYWxsYmFjaywgaWQpXG4gICAgZ2V0RmllbGROYW1lcyhvYmplY3RbZmllbGROYW1lXSkuZm9yRWFjaCgobmVzdGVkRmllbGROYW1lKSA9PlxuICAgICAgcmVjdXJzaXZlbHlBdHRhY2hQcm94eShcbiAgICAgICAgb2JqZWN0W2ZpZWxkTmFtZV1bbmVzdGVkRmllbGROYW1lXSxcbiAgICAgICAgbmVzdGVkRmllbGROYW1lLFxuICAgICAgICBvYmplY3RbZmllbGROYW1lXSxcbiAgICAgICAgaWQsXG4gICAgICAgIGNhbGxiYWNrXG4gICAgICApXG4gICAgKVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gYWRkSWQobW9kZWw6IE1vZGVsKTogdm9pZCB7XG4gIGlmICghbW9kZWwuX19vYnNlcnZhYmxlSWQpXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZGVsLCAnX19vYnNlcnZhYmxlSWQnLCB7XG4gICAgICB2YWx1ZTogZ2VuZXJhdGVJZCgpLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pXG59XG5cbmZ1bmN0aW9uIGFkZEhhc2gobW9kZWw6IE1vZGVsKTogdm9pZCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICBpZiAoIW1vZGVsLmhhc2gpIG1vZGVsLmhhc2ggPSAoKTogc3RyaW5nID0+IGhhc2gobW9kZWwpXG59XG5cbmxldCBjdXJyZW50SWQgPSAwXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VVbmlxdWVJZCgpOiBzdHJpbmcge1xuICBjb25zdCByZWYgPSB1c2VSZWYoMClcbiAgaWYgKHJlZi5jdXJyZW50ID09PSAwKSB7XG4gICAgY3VycmVudElkICs9IDFcbiAgICByZWYuY3VycmVudCA9IGN1cnJlbnRJZFxuICB9XG4gIHJldHVybiBgc3Vic2NyaXB0aW9uX2lkJHtyZWYuY3VycmVudH1gXG59XG5cbmZ1bmN0aW9uIHVzZVJlYWN0aWZ5KG1vZGVsOiBNb2RlbCk6IEZ1bmN0aW9uIHtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uSWQgPSB1c2VVbmlxdWVJZCgpXG4gIGNvbnN0IFssIHN0YXRlQ2hhbmdlXSA9IHVzZVN0YXRlKG1vZGVsLmhhc2goKSlcblxuICBjb25zdCBzdGF0ZUNoYW5nZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHN0YXRlQ2hhbmdlKG1vZGVsLmhhc2goKSlcbiAgfSwgW21vZGVsXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGV2ZW50RW1pdHRlci5vbihtb2RlbC5fX29ic2VydmFibGVJZCwgc3Vic2NyaXB0aW9uSWQsIHN0YXRlQ2hhbmdlQ2FsbGJhY2spXG4gICAgcmV0dXJuICgpOiB2b2lkID0+IGV2ZW50RW1pdHRlci5yZW1vdmUobW9kZWwuX19vYnNlcnZhYmxlSWQsIHN1YnNjcmlwdGlvbklkKVxuICB9LCBbbW9kZWwuX19vYnNlcnZhYmxlSWQsIHN1YnNjcmlwdGlvbklkLCBzdGF0ZUNoYW5nZUNhbGxiYWNrXSlcbiAgcmV0dXJuICgpOiB2b2lkID0+IGV2ZW50RW1pdHRlci5lbWl0KG1vZGVsLl9fb2JzZXJ2YWJsZUlkKVxufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZShtb2RlbDogTW9kZWwpOiB2b2lkIHtcbiAgYWRkSGFzaChtb2RlbClcbiAgYWRkSWQobW9kZWwpXG59XG5cbmZ1bmN0aW9uIHVzZU9ic2VydmVyPFQgZXh0ZW5kcyBNb2RlbD4obW9kZWw6IFQpOiBUIHtcbiAgZGVjb3JhdGUobW9kZWwpXG4gIGNvbnN0IGNhbGxiYWNrID0gdXNlUmVhY3RpZnkobW9kZWwpXG4gIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKG1vZGVsLCBjYWxsYmFjaylcbiAgcmV0dXJuIG1vZGVsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXJlT2JzZXJ2ZXI8VCBleHRlbmRzIE1vZGVsPihtb2RlbDogVCwgY2FsbGJhY2s6IEZ1bmN0aW9uKTogVCB7XG4gIGRlY29yYXRlKG1vZGVsKVxuICBhdHRhY2hQcm94eVRvUHJvcGVydGllcyhtb2RlbCwgY2FsbGJhY2spXG4gIHJldHVybiBtb2RlbFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VPYnNlcnZlclxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VPYnNlcnZlci50cyJdLCJuYW1lcyI6WyJFdmVudEVtaXR0ZXIiLCJjYWxsYmFja3MiLCJvbiIsImV2ZW50SWQiLCJzdWJzY3JpcHRpb25JZCIsImNiIiwicHVzaCIsInJlbW92ZSIsImZpbHRlciIsImMiLCJlbWl0IiwiZm9yRWFjaCIsImV2ZW50RW1pdHRlciIsImdldEZpZWxkTmFtZXMiLCJ0b0NoZWNrIiwicHJvcHMiLCJvYmoiLCJjb25jYXQiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiZ2V0UHJvdG90eXBlT2YiLCJzb3J0IiwiZSIsImkiLCJhcnIiLCJpc1dyaXRhYmxlRmllbGQiLCJvYmplY3QiLCJmaWVsZE5hbWUiLCJmaWVsZERlc2NyaXB0b3IiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ3cml0YWJsZSIsImlzV3JpdGVhYmxlT2JqZWN0RmllbGQiLCJpc1dyaXRlYWJsZVByaW1pdGl2ZUZpZWxkIiwiaXNXcml0ZWFibGVBcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzIiwibW9kZWwiLCJjYWxsYmFjayIsImlkIiwiX19wcm94eUF0dGFjaGVkIiwiZmllbGQiLCJyZWN1cnNpdmVseUF0dGFjaFByb3h5IiwiX19vYnNlcnZhYmxlSWQiLCJhdHRhY2hQcm94eVRvRmllbGQiLCJvcmlnaW5hbEZpZWxkIiwibmV3UHJveHkiLCJQcm94eSIsImdldCIsInRhcmdldCIsInByb3BlcnR5Iiwic2V0IiwidmFsdWUiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJpbm5lclZhbHVlIiwiYXR0YWNoUHJveHlUb0FycmF5IiwiZWxlbWVudCIsImluZGV4IiwibmVzdGVkRmllbGROYW1lIiwidW5kZWZpbmVkIiwiYWRkSWQiLCJhZGRIYXNoIiwiaGFzaCIsImN1cnJlbnRJZCIsInVzZVVuaXF1ZUlkIiwicmVmIiwiY3VycmVudCIsInVzZVJlYWN0aWZ5Iiwic3RhdGVDaGFuZ2UiLCJzdGF0ZUNoYW5nZUNhbGxiYWNrIiwiZGVjb3JhdGUiLCJ1c2VPYnNlcnZlciIsInB1cmVPYnNlcnZlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxZQUFOLENBQW1CO0FBQUE7QUFBQSxTQUNqQkMsU0FEaUIsR0FDTCxFQURLO0FBQUE7O0FBR2pCQyxFQUFBQSxFQUFFLENBQUNDLE9BQUQsRUFBVUMsY0FBVixFQUEwQkMsRUFBMUIsRUFBb0M7QUFDcEMsU0FBS0osU0FBTCxDQUFlRSxPQUFmLElBQTBCLEtBQUtGLFNBQUwsQ0FBZUUsT0FBZixLQUEyQixFQUFyRCxDQURvQyxDQUVwQzs7QUFDQUUsSUFBQUEsRUFBRSxDQUFDRCxjQUFILEdBQW9CQSxjQUFwQjtBQUNBLFNBQUtILFNBQUwsQ0FBZUUsT0FBZixFQUF3QkcsSUFBeEIsQ0FBNkJELEVBQTdCO0FBQ0Q7O0FBRURFLEVBQUFBLE1BQU0sQ0FBQ0osT0FBRCxFQUFVQyxjQUFWLEVBQWdDO0FBQ3BDLFNBQUtILFNBQUwsQ0FBZUUsT0FBZixJQUEwQixLQUFLRixTQUFMLENBQWVFLE9BQWYsRUFBd0JLLE1BQXhCLENBQ3ZCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0wsY0FBRixLQUFxQkEsY0FESixDQUExQjtBQUdEOztBQUVETSxFQUFBQSxJQUFJLENBQUNQLE9BQUQsRUFBZ0I7QUFDbEIsUUFBSSxLQUFLRixTQUFMLENBQWVFLE9BQWYsQ0FBSixFQUE2QjtBQUMzQixXQUFLRixTQUFMLENBQWVFLE9BQWYsRUFBd0JRLE9BQXhCLENBQWlDTixFQUFELElBQVFBLEVBQUUsRUFBMUM7QUFDRDtBQUNGOztBQXBCZ0I7O0FBdUJuQixNQUFNTyxZQUFZLEdBQUcsSUFBSVosWUFBSixFQUFyQjs7QUFTQSxTQUFTYSxhQUFULENBQXVCQyxPQUF2QixFQUEwQztBQUN4QyxNQUFJQyxLQUFLLEdBQUcsRUFBWjtBQUNBLE1BQUlDLEdBQUcsR0FBR0YsT0FBVjs7QUFF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dEMsRUFBbUQ7QUFDakRtQyxFQUFBQSxRQUFRLENBQUNuQyxLQUFELENBQVI7QUFDQSxRQUFNQyxRQUFRLEdBQUcrQixXQUFXLENBQUNoQyxLQUFELENBQTVCO0FBQ0FELEVBQUFBLHVCQUF1QixDQUFDQyxLQUFELEVBQVFDLFFBQVIsQ0FBdkI7QUFDQSxTQUFPRCxLQUFQO0FBQ0Q7O0FBRU0sU0FBU3FDLFlBQVQsQ0FBdUNyQyxLQUF2QyxFQUFpREMsUUFBakQsRUFBd0U7QUFDN0VrQyxFQUFBQSxRQUFRLENBQUNuQyxLQUFELENBQVI7QUFDQUQsRUFBQUEsdUJBQXVCLENBQUNDLEtBQUQsRUFBUUMsUUFBUixDQUF2QjtBQUNBLFNBQU9ELEtBQVA7QUFDRDs7ZUFFY29DLFciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGhhc2ggZnJvbSAnLi9oYXNoJ1xuaW1wb3J0IHtnZW5lcmF0ZUlkfSBmcm9tICcuL2hlbHBlcnMvZ2VuZXJhdGVJZCdcblxuY2xhc3MgRXZlbnRFbWl0dGVyIHtcbiAgY2FsbGJhY2tzID0ge31cblxuICBvbihldmVudElkLCBzdWJzY3JpcHRpb25JZCwgY2IpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGxiYWNrc1tldmVudElkXSA9IHRoaXMuY2FsbGJhY2tzW2V2ZW50SWRdIHx8IFtdXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgY2Iuc3Vic2NyaXB0aW9uSWQgPSBzdWJzY3JpcHRpb25JZFxuICAgIHRoaXMuY2FsbGJhY2tzW2V2ZW50SWRdLnB1c2goY2IpXG4gIH1cblxuICByZW1vdmUoZXZlbnRJZCwgc3Vic2NyaXB0aW9uSWQpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGxiYWNrc1tldmVudElkXSA9IHRoaXMuY2FsbGJhY2tzW2V2ZW50SWRdLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnN1YnNjcmlwdGlvbklkICE9PSBzdWJzY3JpcHRpb25JZFxuICAgIClcbiAgfVxuXG4gIGVtaXQoZXZlbnRJZCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGxiYWNrc1tldmVudElkXSkge1xuICAgICAgdGhpcy5jYWxsYmFja3NbZXZlbnRJZF0uZm9yRWFjaCgoY2IpID0+IGNiKCkpXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG50eXBlIE1vZGVsID0ge1xuICBjb25zdHJ1Y3RvclxuICBfX29ic2VydmFibGVJZD86IHN0cmluZ1xuICBfX3Byb3h5QXR0YWNoZWQ/OiBib29sZWFuXG4gIGhhc2g/OiAoKSA9PiBzdHJpbmdcbn1cblxuZnVuY3Rpb24gZ2V0RmllbGROYW1lcyh0b0NoZWNrKTogc3RyaW5nW10ge1xuICBsZXQgcHJvcHMgPSBbXVxuICBsZXQgb2JqID0gdG9DaGVja1xuXG4gIGRvIHtcbiAgICBwcm9wcyA9IHByb3BzLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopKVxuICB9IHdoaWxlICgob2JqID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpKVxuICByZXR1cm4gcHJvcHNcbiAgICAuc29ydCgpXG4gICAgLmZpbHRlcigoZSwgaSwgYXJyKSA9PiBlICE9PSBhcnJbaSArIDFdICYmIHR5cGVvZiB0b0NoZWNrW2VdICE9PSAnZnVuY3Rpb24nKVxufVxuXG5mdW5jdGlvbiBpc1dyaXRhYmxlRmllbGQob2JqZWN0LCBmaWVsZE5hbWUpOiBib29sZWFuIHtcbiAgY29uc3QgZmllbGREZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIGZpZWxkTmFtZSlcbiAgcmV0dXJuIGZpZWxkRGVzY3JpcHRvciAmJiBmaWVsZERlc2NyaXB0b3Iud3JpdGFibGVcbn1cblxuZnVuY3Rpb24gaXNXcml0ZWFibGVPYmplY3RGaWVsZChvYmplY3QsIGZpZWxkTmFtZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzV3JpdGFibGVGaWVsZChvYmplY3QsIGZpZWxkTmFtZSkgJiZcbiAgICB0eXBlb2Ygb2JqZWN0W2ZpZWxkTmFtZV0gPT09ICdvYmplY3QnICYmXG4gICAgb2JqZWN0W2ZpZWxkTmFtZV0gIT09IG51bGxcbiAgKVxufVxuXG5mdW5jdGlvbiBpc1dyaXRlYWJsZVByaW1pdGl2ZUZpZWxkKG9iamVjdCwgZmllbGROYW1lKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaXNXcml0YWJsZUZpZWxkKG9iamVjdCwgZmllbGROYW1lKSAmJlxuICAgICh0eXBlb2Ygb2JqZWN0W2ZpZWxkTmFtZV0gIT09ICdvYmplY3QnIHx8IG9iamVjdFtmaWVsZE5hbWVdID09PSBudWxsKVxuICApXG59XG5cbmZ1bmN0aW9uIGlzV3JpdGVhYmxlQXJyYXkob2JqZWN0LCBmaWVsZE5hbWUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzV3JpdGFibGVGaWVsZChvYmplY3QsIGZpZWxkTmFtZSkgJiYgQXJyYXkuaXNBcnJheShvYmplY3RbZmllbGROYW1lXSlcbn1cblxuZnVuY3Rpb24gYXR0YWNoUHJveHlUb1Byb3BlcnRpZXMobW9kZWw6IE1vZGVsLCBjYWxsYmFjazogRnVuY3Rpb24sIGlkPyk6IHZvaWQge1xuICBpZiAobW9kZWwgJiYgIW1vZGVsLl9fcHJveHlBdHRhY2hlZCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIG1vZGVsLl9fcHJveHlBdHRhY2hlZCA9IHRydWVcbiAgICBnZXRGaWVsZE5hbWVzKG1vZGVsKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgcmVjdXJzaXZlbHlBdHRhY2hQcm94eShcbiAgICAgICAgbW9kZWxbZmllbGRdLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIGlkIHx8IG1vZGVsLl9fb2JzZXJ2YWJsZUlkLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYXR0YWNoUHJveHlUb0ZpZWxkKFxuICBvYmplY3QsXG4gIGZpZWxkTmFtZSxcbiAgb3JpZ2luYWxGaWVsZCxcbiAgY2FsbGJhY2ssXG4gIGlkXG4pOiB2b2lkIHtcbiAgaWYgKGZpZWxkTmFtZSA9PT0gJ19fcHJveHlBdHRhY2hlZCcpXG4gICAgcmV0dXJuXG4gIHRyeSB7XG4gICAgbGV0IG5ld1Byb3h5ID0gbmV3IFByb3h5KG9iamVjdFtmaWVsZE5hbWVdLCB7XG4gICAgICBnZXQodGFyZ2V0LCBwcm9wZXJ0eSk6IG9iamVjdCB7XG4gICAgICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHldXG4gICAgICB9LFxuICAgICAgc2V0KHRhcmdldCwgcHJvcGVydHksIHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChwcm9wZXJ0eSAhPT0gJ19fcHJvdG9fXycgJiYgcHJvcGVydHkgIT09ICdsZW5ndGgnKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKHZhbHVlLCBjYWxsYmFjaywgaWQpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgIHRhcmdldFtwcm9wZXJ0eV0gPSB2YWx1ZVxuICAgICAgICAgIGNhbGxiYWNrKClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgZmllbGROYW1lLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiAoKSA9PiB7XG5cbiAgICAgICAgcmV0dXJuIG5ld1Byb3h5XG4gICAgICB9LFxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgYXR0YWNoUHJveHlUb1Byb3BlcnRpZXModmFsdWUsIGNhbGxiYWNrLCBpZClcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgZmllbGROYW1lLCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZ2V0OiAoKSA9PiB2YWx1ZSxcbiAgICAgICAgICAgIHNldDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChvcmlnaW5hbEZpZWxkID09PSB2YWx1ZSkgcmV0dXJuXG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKHZhbHVlLCBjYWxsYmFjaywgaWQpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgICAgIG9yaWdpbmFsRmllbGQgPSB2YWx1ZVxuICAgICAgICAgICAgICBjYWxsYmFjaygpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKClcbiAgICAgICAgfVxuICAgICAgICBuZXdQcm94eSA9IG5ldyBQcm94eSh2YWx1ZSwge1xuICAgICAgICAgIGdldCh0YXJnZXQsIHByb3BlcnR5KTogb2JqZWN0IHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHldXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGFyZ2V0LCBwcm9wZXJ0eSwgaW5uZXJWYWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5ICE9PSAnX19wcm90b19fJyAmJiBwcm9wZXJ0eSAhPT0gJ2xlbmd0aCcpIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbm5lclZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKGlubmVyVmFsdWUsIGNhbGxiYWNrLCBpZClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IGlubmVyVmFsdWVcbiAgICAgICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBjYWxsYmFjaygpXG4gICAgICB9LFxuICAgIH0pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBmaWVsZE5hbWUsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6ICgpID0+IG9yaWdpbmFsRmllbGQsXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAob3JpZ2luYWxGaWVsZCA9PT0gdmFsdWUpIHJldHVyblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICBhdHRhY2hQcm94eVRvUHJvcGVydGllcyh2YWx1ZSwgY2FsbGJhY2ssIGlkKVxuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBvcmlnaW5hbEZpZWxkID0gdmFsdWVcbiAgICAgICAgY2FsbGJhY2soKVxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbn1cblxuZnVuY3Rpb24gYXR0YWNoUHJveHlUb0FycmF5KG9iamVjdCwgZmllbGROYW1lLCBjYWxsYmFjaywgaWQpOiB2b2lkIHtcbiAgb2JqZWN0W2ZpZWxkTmFtZV0uZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgcmVjdXJzaXZlbHlBdHRhY2hQcm94eShlbGVtZW50LCBpbmRleCwgb2JqZWN0W2ZpZWxkTmFtZV0sIGlkLCBjYWxsYmFjaylcbiAgfSlcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgb2JqZWN0W2BfX19fJHtmaWVsZE5hbWV9YF0gPSBvYmplY3RbZmllbGROYW1lXVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBmaWVsZE5hbWUsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6ICgpID0+IG9iamVjdFtgX19fXyR7ZmllbGROYW1lfWBdLFxuICAgIHNldDogKHZhbHVlKSA9PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIG9iamVjdFtgX19fXyR7ZmllbGROYW1lfWBdID0gdmFsdWVcbiAgICAgIGNhbGxiYWNrKClcbiAgICB9LFxuICB9KVxuXG4gIC8vIEZJWE1FIHRoaXMgaXMgY2F1c2luZyB0aGUgZXh0cmEgY2FsbGJhY2sgaW4gcHVyZU9ic2VydmVyLnNwZWMgdGVzdHNcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gIG9iamVjdFtmaWVsZE5hbWVdID0gbmV3IFByb3h5KG9iamVjdFtmaWVsZE5hbWVdLCB7XG4gICAgZ2V0KHRhcmdldCwgcHJvcGVydHkpOiBvYmplY3Qge1xuICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV1cbiAgICB9LFxuICAgIHNldCh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgaWYgKHByb3BlcnR5ICE9PSAnX19wcm90b19fJyAmJiBwcm9wZXJ0eSAhPT0gJ2xlbmd0aCcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhdHRhY2hQcm94eVRvUHJvcGVydGllcyh2YWx1ZSwgY2FsbGJhY2ssIGlkKVxuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICB0YXJnZXRbcHJvcGVydHldID0gdmFsdWVcbiAgICAgICAgY2FsbGJhY2soKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9LFxuICB9KVxufVxuXG5mdW5jdGlvbiByZWN1cnNpdmVseUF0dGFjaFByb3h5KFxuICBvcmlnaW5hbEZpZWxkLFxuICBmaWVsZE5hbWUsXG4gIG9iamVjdCxcbiAgaWQsXG4gIGNhbGxiYWNrOiBGdW5jdGlvblxuKTogdm9pZCB7XG4gIGlmIChpc1dyaXRlYWJsZVByaW1pdGl2ZUZpZWxkKG9iamVjdCwgZmllbGROYW1lKSlcbiAgICByZXR1cm4gYXR0YWNoUHJveHlUb0ZpZWxkKG9iamVjdCwgZmllbGROYW1lLCBvcmlnaW5hbEZpZWxkLCBjYWxsYmFjaywgaWQpXG4gIGlmIChpc1dyaXRlYWJsZUFycmF5KG9iamVjdCwgZmllbGROYW1lKSlcbiAgICByZXR1cm4gYXR0YWNoUHJveHlUb0FycmF5KG9iamVjdCwgZmllbGROYW1lLCBjYWxsYmFjaywgaWQpXG4gIGlmIChpc1dyaXRlYWJsZU9iamVjdEZpZWxkKG9iamVjdCwgZmllbGROYW1lKSkge1xuICAgIGF0dGFjaFByb3h5VG9GaWVsZChvYmplY3QsIGZpZWxkTmFtZSwgb3JpZ2luYWxGaWVsZCwgY2FsbGJhY2ssIGlkKVxuICAgIGdldEZpZWxkTmFtZXMob2JqZWN0W2ZpZWxkTmFtZV0pLmZvckVhY2goKG5lc3RlZEZpZWxkTmFtZSkgPT5cbiAgICAgIHJlY3Vyc2l2ZWx5QXR0YWNoUHJveHkoXG4gICAgICAgIG9iamVjdFtmaWVsZE5hbWVdW25lc3RlZEZpZWxkTmFtZV0sXG4gICAgICAgIG5lc3RlZEZpZWxkTmFtZSxcbiAgICAgICAgb2JqZWN0W2ZpZWxkTmFtZV0sXG4gICAgICAgIGlkLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKVxuICAgIClcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGFkZElkKG1vZGVsOiBNb2RlbCk6IHZvaWQge1xuICBpZiAoIW1vZGVsLl9fb2JzZXJ2YWJsZUlkKVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2RlbCwgJ19fb2JzZXJ2YWJsZUlkJywge1xuICAgICAgdmFsdWU6IGdlbmVyYXRlSWQoKSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBhZGRIYXNoKG1vZGVsOiBNb2RlbCk6IHZvaWQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgaWYgKCFtb2RlbC5oYXNoKSBtb2RlbC5oYXNoID0gKCk6IHN0cmluZyA9PiBoYXNoKG1vZGVsKVxufVxuXG5sZXQgY3VycmVudElkID0gMFxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVW5pcXVlSWQoKTogc3RyaW5nIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmKDApXG4gIGlmIChyZWYuY3VycmVudCA9PT0gMCkge1xuICAgIGN1cnJlbnRJZCArPSAxXG4gICAgcmVmLmN1cnJlbnQgPSBjdXJyZW50SWRcbiAgfVxuICByZXR1cm4gYHN1YnNjcmlwdGlvbl9pZCR7cmVmLmN1cnJlbnR9YFxufVxuXG5mdW5jdGlvbiB1c2VSZWFjdGlmeShtb2RlbDogTW9kZWwpOiBGdW5jdGlvbiB7XG4gIGNvbnN0IHN1YnNjcmlwdGlvbklkID0gdXNlVW5pcXVlSWQoKVxuICAvLyBjb25zdCBbLCBzdGF0ZUNoYW5nZV0gPSB1c2VTdGF0ZShtb2RlbC5oYXNoKCkpXG4gIGNvbnN0IFssIHN0YXRlQ2hhbmdlXSA9IHVzZVN0YXRlKDApXG5cbiAgY29uc3Qgc3RhdGVDaGFuZ2VDYWxsYmFjayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzdGF0ZUNoYW5nZShpID0+IGkrMSlcbiAgfSwgW21vZGVsXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGV2ZW50RW1pdHRlci5vbihtb2RlbC5fX29ic2VydmFibGVJZCwgc3Vic2NyaXB0aW9uSWQsIHN0YXRlQ2hhbmdlQ2FsbGJhY2spXG4gICAgcmV0dXJuICgpOiB2b2lkID0+IGV2ZW50RW1pdHRlci5yZW1vdmUobW9kZWwuX19vYnNlcnZhYmxlSWQsIHN1YnNjcmlwdGlvbklkKVxuICB9LCBbbW9kZWwuX19vYnNlcnZhYmxlSWQsIHN1YnNjcmlwdGlvbklkLCBzdGF0ZUNoYW5nZUNhbGxiYWNrXSlcbiAgcmV0dXJuICgpOiB2b2lkID0+IGV2ZW50RW1pdHRlci5lbWl0KG1vZGVsLl9fb2JzZXJ2YWJsZUlkKVxufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZShtb2RlbDogTW9kZWwpOiB2b2lkIHtcbiAgYWRkSGFzaChtb2RlbClcbiAgYWRkSWQobW9kZWwpXG59XG5cbmZ1bmN0aW9uIHVzZU9ic2VydmVyPFQgZXh0ZW5kcyBNb2RlbD4obW9kZWw6IFQpOiBUIHtcbiAgZGVjb3JhdGUobW9kZWwpXG4gIGNvbnN0IGNhbGxiYWNrID0gdXNlUmVhY3RpZnkobW9kZWwpXG4gIGF0dGFjaFByb3h5VG9Qcm9wZXJ0aWVzKG1vZGVsLCBjYWxsYmFjaylcbiAgcmV0dXJuIG1vZGVsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXJlT2JzZXJ2ZXI8VCBleHRlbmRzIE1vZGVsPihtb2RlbDogVCwgY2FsbGJhY2s6IEZ1bmN0aW9uKTogVCB7XG4gIGRlY29yYXRlKG1vZGVsKVxuICBhdHRhY2hQcm94eVRvUHJvcGVydGllcyhtb2RlbCwgY2FsbGJhY2spXG4gIHJldHVybiBtb2RlbFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VPYnNlcnZlclxuIl19

@@ -8,3 +8,3 @@ {

],
"version": "1.0.7-alpha",
"version": "1.0.7-test-build",
"dependencies": {

@@ -11,0 +11,0 @@ "object-hash": "^2.0.0"

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc