diff --git a/out/PiPer-chrome.zip b/out/PiPer-chrome.zip deleted file mode 100644 index 34e62c3..0000000 Binary files a/out/PiPer-chrome.zip and /dev/null differ diff --git a/out/PiPer-chrome/Icon-128.png b/out/PiPer-chrome/Icon-128.png new file mode 100644 index 0000000..65b6bd5 Binary files /dev/null and b/out/PiPer-chrome/Icon-128.png differ diff --git a/out/PiPer-chrome/images/default-exit.svg b/out/PiPer-chrome/images/default-exit.svg new file mode 100644 index 0000000..06cad65 --- /dev/null +++ b/out/PiPer-chrome/images/default-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-chrome/images/default.svg b/out/PiPer-chrome/images/default.svg new file mode 100644 index 0000000..b2178ff --- /dev/null +++ b/out/PiPer-chrome/images/default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-chrome/images/logo.svg b/out/PiPer-chrome/images/logo.svg new file mode 100644 index 0000000..e6439fa --- /dev/null +++ b/out/PiPer-chrome/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-chrome/images/warning.svg b/out/PiPer-chrome/images/warning.svg new file mode 100644 index 0000000..e8c74d3 --- /dev/null +++ b/out/PiPer-chrome/images/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-chrome/install.html b/out/PiPer-chrome/install.html new file mode 100644 index 0000000..2771f9f --- /dev/null +++ b/out/PiPer-chrome/install.html @@ -0,0 +1,115 @@ + + + + PiPer + + + + + + + +
+ Warning +
chrome-flags-warning
+ +
+ +
+ report-bug + donate +
+ + + + + diff --git a/out/PiPer-chrome/manifest.json b/out/PiPer-chrome/manifest.json new file mode 100755 index 0000000..86927b4 --- /dev/null +++ b/out/PiPer-chrome/manifest.json @@ -0,0 +1,31 @@ +{ + "name": "PiPer", + "description": "Adds Picture in Picture functionality to YouTube, Netflix, Amazon Video, Twitch, and more!", + "version": "1.0.4.235", + "version_name": "1.0.4", + "icons": { + "128": "Icon-128.png" + }, + "background": { + "scripts": ["scripts/background.js"], + "persistent": false + }, + "content_scripts": [ + { + "all_frames": true, + "matches": ["http://*/*", "https://*/*"], + "run_at": "document_idle", + "js": ["scripts/main.js"] + } + ], + "permissions": [ + "activeTab", + "storage" + ], + "web_accessible_resources": [ + "images/*.svg", + "scripts/*.js" + ], + "minimum_chrome_version": "69.0.3483.0", + "manifest_version": 2 +} diff --git a/out/PiPer-chrome/scripts/background.js b/out/PiPer-chrome/scripts/background.js new file mode 100644 index 0000000..6a92570 --- /dev/null +++ b/out/PiPer-chrome/scripts/background.js @@ -0,0 +1,2 @@ +var a;a||(a=!0,(()=>{'use strict';chrome.runtime.onInstalled.addListener(function(a){"install"==a.reason&&chrome.tabs.create({url:chrome.extension.getURL("install.html")})});})()); +//# sourceMappingURL=data:application/json;base64,ewoidmVyc2lvbiI6MywKImZpbGUiOiIiLAoibGluZUNvdW50IjoxLAoibWFwcGluZ3MiOiJBLGtDQUFBQSxNQUFBLENBQU9DLE9BQVAsQ0FBZUMsV0FBZixDQUEyQkMsV0FBM0IsQ0FBdUMsUUFBUSxDQUF5QkMsQ0FBekIsQ0FBa0MsQ0FDekQsU0FBdEIsRUFBSUEsQ0FBSixDQUFZQyxNQUFaLEVBQ0VMLE1BQUEsQ0FBT00sSUFBUCxDQUFZQyxNQUFaLENBQW1CLENBQUNDLElBQUtSLE1BQUEsQ0FBT1MsU0FBUCxDQUFpQkMsTUFBakIsQ0FBd0IsY0FBeEIsQ0FBTixDQUFuQixDQUY2RSxDQUFqRjsiLAoic291cmNlcyI6WyIuL2JhY2tncm91bmQuanMiXSwKInNvdXJjZXNDb250ZW50IjpbImNocm9tZS5ydW50aW1lLm9uSW5zdGFsbGVkLmFkZExpc3RlbmVyKGZ1bmN0aW9uKC8qKiB7cmVhc29uOiBzdHJpbmd9ICovIGRldGFpbHMpIHtcbiAgaWYgKGRldGFpbHMucmVhc29uID09IFwiaW5zdGFsbFwiKSB7XG4gICAgY2hyb21lLnRhYnMuY3JlYXRlKHt1cmw6IGNocm9tZS5leHRlbnNpb24uZ2V0VVJMKFwiaW5zdGFsbC5odG1sXCIpfSk7XG4gIH1cbn0pO1xuIl0sCiJuYW1lcyI6WyJjaHJvbWUiLCJydW50aW1lIiwib25JbnN0YWxsZWQiLCJhZGRMaXN0ZW5lciIsImRldGFpbHMiLCJyZWFzb24iLCJ0YWJzIiwiY3JlYXRlIiwidXJsIiwiZXh0ZW5zaW9uIiwiZ2V0VVJMIl0KfQo= diff --git a/out/PiPer-chrome/scripts/fix.js b/out/PiPer-chrome/scripts/fix.js new file mode 100644 index 0000000..e79972a --- /dev/null +++ b/out/PiPer-chrome/scripts/fix.js @@ -0,0 +1,5 @@ +var a;a||(a=!0,(()=>{'use strict';let d=null,e=0,f={};const h=[],k=[],l=window.setTimeout,m=window.clearTimeout,n=window.requestAnimationFrame;window.requestAnimationFrame=function(a){let c=0;d||(c=n(a),h.push(c));k.push(a);return c};function p(){h.length=0;k.length=0;n(p)}p();function q(){var a=k.slice();k.length=0;const c=window.performance.now();for(var b;b=a.pop();)b(c);a=f;f={};for(let g in a)if(b=a[g],b[0]<=c)if("function"==typeof b[1])b[1]();else eval(b[1]);else f[g]=b} +function r(a,c){const b=e++;f[b.toString()]=[window.performance.now()+(c||0),a];return b}function t(a){a&&delete f[a.toString()]} +document.addEventListener("visibilitychange",function(){if(document.hidden){var a=document.querySelectorAll("video");for(var c=a.length;c--;){const g=a[c];var b=g.hasAttribute("data-playing-picture-in-picture");if(b){d=g;break}}if(d){for(;b=h.pop();)window.cancelAnimationFrame(b);window.setTimeout=r;window.clearTimeout=t;d.addEventListener("timeupdate",q)}}else if(d){window.setTimeout=l;window.clearTimeout=m;d.removeEventListener("timeupdate",q);d=null;for(a=k.length;a--;)c=n(k[a]),h.push(c);a=window.performance.now(); +for(b in f)c=f[b],l(c[1],c[0]-a);f={}}});})()); +//# sourceMappingURL=data:application/json;base64,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QUFMLENBQUEsQ0FFQSxJQUFBLENBQWtCYyxDQUFsQixDQUE0QlgsQ0FBQSxDQUFTcUIsR0FBVCxFQUE1QixDQUFBLENBQ0VsQixNQUFBLENBQU9vQyxvQkFBUCxDQUE0QjVCLENBQTVCLENBR0ZSLE9BQUEsQ0FBT0MsVUFBUCxDQUFvQnNCLENBQ3BCdkIsT0FBQSxDQUFPRyxZQUFQLENBQXNCc0IsQ0FFdEIvQixFQUFBLENBQVlpQyxnQkFBWixDQUE2QixZQUE3QixDQUEyQ2YsQ0FBM0MsQ0FUQSxDQVZtQixDQUFyQixJQXVCTyxJQUFJbEIsQ0FBSixDQUFpQixDQUl0Qk0sTUFBQSxDQUFPQyxVQUFQLENBQW9CRixDQUNwQkMsT0FBQSxDQUFPRyxZQUFQLENBQXNCRCxDQUV0QlIsRUFBQSxDQUFZMkMsbUJBQVosQ0FBZ0MsWUFBaEMsQ0FBOEN6QixDQUE5QyxDQUVBbEIsRUFBQSxDQUFjLElBRWQsS0FBUzRDLENBQVQsQ0FBc0J4QyxDQUF0QixDQUFnQ2EsTUFBaEMsQ0FBd0MyQixDQUFBLEVBQXhDLENBQUEsQ0FDTTlCLENBQ0osQ0FEY0osQ0FBQSxDQUE4Qk4sQ0FBQSxDQUFVd0MsQ0FBVixDQUE5QixDQUNkLENBQUF6QyxDQUFBLENBQVNZLElBQVQsQ0FBY0QsQ0FBZCxDQUdJTyxFQUFBQSxDQUFZZixNQUFBLENBQU9nQixXQUFQLENBQW1CQyxHQUFuQixFQUNsQjtJQUFTRyxDQUFULEdBQWV4QixFQUFmLENBQ015QixDQUNKLENBRGN6QixDQUFBLENBQVN3QixDQUFULENBQ2QsQ0FBQXJCLENBQUEsQ0FBbUJzQixDQUFBLENBQVEsQ0FBUixDQUFuQixDQUErQkEsQ0FBQSxDQUFRLENBQVIsQ0FBL0IsQ0FBNENOLENBQTVDLENBRUZuQixFQUFBLENBQVcsRUFyQlcsQ0F6QnlCLENBaURuRDsiLAoic291cmNlcyI6WyIuL2ZpeC5qcyIsIi4vdmlkZW8uanMiXSwKInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluZm8gfSBmcm9tICcuL2xvZ2dlci5qcydcbmltcG9ydCB7IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUgfSBmcm9tICcuL3ZpZGVvLmpzJ1xuXG5sZXQgYWN0aXZlVmlkZW8gPSBudWxsO1xubGV0IHRpbWVvdXRJZCA9IDA7XG5sZXQgLyoqICFPYmplY3Q8c3RyaW5nLCBBcnJheT4gKi8gdGltZW91dHMgPSB7fTtcblxuY29uc3QgLyoqICFBcnJheTxudW1iZXI+ICovIHJlcXVlc3RzID0gW107XG5jb25zdCAvKiogIUFycmF5PGZ1bmN0aW9uKG51bWJlcik6IHVuZGVmaW5lZD4gKi8gY2FsbGJhY2tzID0gW107XG5cbmNvbnN0IG9yaWdpbmFsU2V0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0O1xuY29uc3Qgb3JpZ2luYWxDbGVhclRpbWVvdXQgPSB3aW5kb3cuY2xlYXJUaW1lb3V0O1xuY29uc3Qgb3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuXG4vKipcbiAqIFRyYWNrcyBhbmltYXRpb24gZnJhbWUgcmVxdWVzdHMgYW5kIGZvcndhcmRzIHJlcXVlc3RzIHdoZW4gcGFnZSB2aXNpYmxlXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIpOiB1bmRlZmluZWR9IGNhbGxiYWNrIC0gYSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2tcbiAqL1xuY29uc3QgdHJhY2tBbmltYXRpb25GcmFtZVJlcXVlc3QgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICBsZXQgcmVxdWVzdCA9IDA7XG5cbiAgaWYgKCFhY3RpdmVWaWRlbykge1xuICAgIHJlcXVlc3QgPSBvcmlnaW5hbFJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7XG4gICAgcmVxdWVzdHMucHVzaChyZXF1ZXN0KTtcbiAgfVxuXG4gIGNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcblxuICByZXR1cm4gcmVxdWVzdDtcbn07XG53aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdHJhY2tBbmltYXRpb25GcmFtZVJlcXVlc3Q7XG5cbi8qKlxuICogQ2xlYXJzIHRyYWNrZWQgYW5pbWF0aW9uIGZyYW1lIHJlcXVlc3RzIG9uIG5ldyBmcmFtZVxuICovXG5jb25zdCBjbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMgPSBmdW5jdGlvbigpIHtcbiAgcmVxdWVzdHMubGVuZ3RoID0gMDtcbiAgY2FsbGJhY2tzLmxlbmd0aCA9IDA7XG5cbiAgb3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2xlYXJBbmltYXRpb25GcmFtZVJlcXVlc3RzKTtcbn07XG5jbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMoKTtcblxuLyoqXG4gKiBDYWxscyB0cmFja2VkIGFuaW1hdGlvbiBmcmFtZSByZXF1ZXN0cyBhbmQgdGltZW91dHNcbiAqL1xuY29uc3QgY2FsbEFuaW1hdGlvbkZyYW1lUmVxdWVzdHNBbmRUaW1lb3V0cyA9IGZ1bmN0aW9uKCkge1xuICBcbiAgLy8gQ29weSBhbmltYXRpb24gZnJhbWUgY2FsbGJhY2tzIGJlZm9yZSBjYWxsaW5nIHRvIHByZXZlbnQgZW5kbGVzcyBsb29waW5nXG4gIGNvbnN0IGNhbGxiYWNrc0NvcHkgPSBjYWxsYmFja3Muc2xpY2UoKTtcbiAgY2FsbGJhY2tzLmxlbmd0aCA9IDA7XG5cbiAgLy8gQ2FsbCBhbmltYXRpb24gZnJhbWUgcmVxdWVzdHNcbiAgY29uc3QgdGltZXN0YW1wID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1xuICBmb3IgKGxldCBjYWxsYmFjazsgY2FsbGJhY2sgPSBjYWxsYmFja3NDb3B5LnBvcCgpOykge1xuICAgIGNhbGxiYWNrKHRpbWVzdGFtcCk7XG4gIH1cblxuICAvLyBDb3B5IHRpbWVvdXRzIHRvIHByZXZlbnQgZW5kbGVzcyBsb29waW5nXG4gIGNvbnN0IHRpbWVvdXRzQ29weSA9IHRpbWVvdXRzO1xuICB0aW1lb3V0cyA9IHt9O1xuICBcbiAgLy8gQ2FsbCBlbGFwc2VkIHRpbWVvdXRzXG4gIGZvciAobGV0IGlkIGluIHRpbWVvdXRzQ29weSkge1xuICAgIGxldCB0aW1lb3V0ID0gdGltZW91dHNDb3B5W2lkXTtcbiAgICBpZiAodGltZW91dFswXSA8PSB0aW1lc3RhbXApIHtcbiAgICAgIGlmICh0eXBlb2YgdGltZW91dFsxXSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGltZW91dFsxXSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZhbCgvKiogQHR5cGUge3N0cmluZ30gKi8gKHRpbWVvdXRbMV0pKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGltZW91dHNbaWRdID0gdGltZW91dDtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQXZvaWRzIGJhY2tncm91bmQgdGhyb3R0bGluZyBieSBpbnZva2luZyB0aW1lb3V0cyB3aXRoIG1lZGlhICd0aW1ldXBkYXRlJyBldmVudHNcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufFRydXN0ZWRTY3JpcHR8c3RyaW5nfSBjYWxsYmFjayAtIGEgc2V0VGltZW91dCBjYWxsYmFja1xuICogQHBhcmFtIHtudW1iZXI9fSB0aW1lb3V0IC0gYSBkZWxheSBpbiBtc1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5jb25zdCB1bnRocm90dGxlZFNldFRpbWVvdXQgPSBmdW5jdGlvbihjYWxsYmFjaywgdGltZW91dCkge1xuICBjb25zdCBpZCA9IHRpbWVvdXRJZCsrO1xuICB0aW1lb3V0c1tpZC50b1N0cmluZygpXSA9IFt3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgKyAodGltZW91dCB8fCAwKSwgY2FsbGJhY2tdO1xuICByZXR1cm4gaWQ7XG59O1xuXG4vKipcbiAqIENsZWFycyBxdWV1ZWQgdGltZW91dHMgdG8gYmUgaW52b2tlZCB3aXRoIG1lZGlhICd0aW1ldXBkYXRlJyBldmVudHNcbiAqXG4gKiBAcGFyYW0gez9udW1iZXJ8dW5kZWZpbmVkfSBpZCAtIGFuIGlkIHJldHVybmVkIGJ5IHVudGhyb3R0bGVkU2V0VGltZW91dFxuICovXG5jb25zdCB1bnRocm90dGxlZENsZWFyVGltZW91dCA9IGZ1bmN0aW9uKGlkKSB7XG4gIGlmIChpZCkgZGVsZXRlIHRpbWVvdXRzW2lkLnRvU3RyaW5nKCldO1xufTtcblxuLyoqXG4gKiBCeXBhc3NlcyBiYWNrZ3JvdW5kIHRpbWVyIHRocm90dGxpbmcgd2hlbiB2aWRlbyBwbGF5aW5nIHBpY3R1cmUgaW4gcGljdHVyZVxuICovXG5jb25zdCBieXBhc3NCYWNrZ3JvdW5kVGltZXJUaHJvdHRsaW5nID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKGRvY3VtZW50LmhpZGRlbikge1xuXG4gICAgY29uc3QgYWxsVmlkZW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndmlkZW8nKTtcbiAgICBmb3IgKGxldCB2aWRlb0lkID0gYWxsVmlkZW9zLmxlbmd0aDsgdmlkZW9JZC0tOykge1xuICAgICAgY29uc3QgdmlkZW8gPSAvKiogQHR5cGUgez9IVE1MVmlkZW9FbGVtZW50fSAqLyAoYWxsVmlkZW9zW3ZpZGVvSWRdKTtcbiAgICAgIGlmICh2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKSkge1xuICAgICAgICBhY3RpdmVWaWRlbyA9IHZpZGVvO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFhY3RpdmVWaWRlbykgcmV0dXJuO1xuICAgIFxuICAgIGZvciAobGV0IHJlcXVlc3Q7IHJlcXVlc3QgPSByZXF1ZXN0cy5wb3AoKTspIHtcbiAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICB3aW5kb3cuc2V0VGltZW91dCA9IHVudGhyb3R0bGVkU2V0VGltZW91dDtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0ID0gdW50aHJvdHRsZWRDbGVhclRpbWVvdXQ7XG4gICAgXG4gICAgYWN0aXZlVmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigndGltZXVwZGF0ZScsIGNhbGxBbmltYXRpb25GcmFtZVJlcXVlc3RzQW5kVGltZW91dHMpO1xuXG4gICAgaW5mbygnQnlwYXNzaW5nIGJhY2tncm91bmQgdGltZXIgdGhyb3R0bGluZycpO1xuXG4gIH0gZWxzZSBpZiAoYWN0aXZlVmlkZW8pIHtcblxuICAgIGluZm8oJ0ZpbmlzaGVkIGJ5cGFzc2luZyBiYWNrZ3JvdW5kIHRpbWVyIHRocm90dGxpbmcnKTtcblxuICAgIHdpbmRvdy5zZXRUaW1lb3V0ID0gb3JpZ2luYWxTZXRUaW1lb3V0O1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQgPSBvcmlnaW5hbENsZWFyVGltZW91dDtcblxuICAgIGFjdGl2ZVZpZGVvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RpbWV1cGRhdGUnLCBjYWxsQW5pbWF0aW9uRnJhbWVSZXF1ZXN0c0FuZFRpbWVvdXRzKTtcblxuICAgIGFjdGl2ZVZpZGVvID0gbnVsbDtcblxuICAgIGZvciAobGV0IGNhbGxiYWNrSWQgPSBjYWxsYmFja3MubGVuZ3RoOyBjYWxsYmFja0lkLS07KSB7XG4gICAgICBsZXQgcmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrc1tjYWxsYmFja0lkXSk7XG4gICAgICByZXF1ZXN0cy5wdXNoKHJlcXVlc3QpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtcbiAgICBmb3IgKGxldCBpZCBpbiB0aW1lb3V0cykge1xuICAgICAgbGV0IHRpbWVvdXQgPSB0aW1lb3V0c1tpZF07XG4gICAgICBvcmlnaW5hbFNldFRpbWVvdXQodGltZW91dFsxXSwgdGltZW91dFswXSAtIHRpbWVzdGFtcCk7XG4gICAgfVxuICAgIHRpbWVvdXRzID0ge307XG4gIH1cbn07XG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZyk7XG4iLCJpbXBvcnQgeyBpbmZvIH0gZnJvbSAnLi9sb2dnZXIuanMnXG5pbXBvcnQgeyBCcm93c2VyLCBnZXRCcm93c2VyLCBnZXRSZXNvdXJjZSB9IGZyb20gJy4vY29tbW9uLmpzJ1xuXG5jb25zdCBDSFJPTUVfUExBWUlOR19QSVBfQVRUUklCVVRFID0gJ2RhdGEtcGxheWluZy1waWN0dXJlLWluLXBpY3R1cmUnO1xuXG5jb25zdCAvKiogIUFycmF5PGZ1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsIGJvb2xlYW4pPiAqLyBldmVudExpc3RlbmVycyA9IFtdO1xuXG4vKipcbiAqIFRvZ2dsZXMgdmlkZW8gUGljdHVyZSBpbiBQaWN0dXJlXG4gKlxuICogQHBhcmFtIHtIVE1MVmlkZW9FbGVtZW50fSB2aWRlbyAtIHZpZGVvIGVsZW1lbnQgdG8gdG9nZ2xlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24odmlkZW8pIHtcbiAgY29uc3QgcGxheWluZ1BpY3R1cmVJblBpY3R1cmUgPSB2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKTtcbiAgc3dpdGNoIChnZXRCcm93c2VyKCkpIHtcbiAgICBjYXNlIEJyb3dzZXIuU0FGQVJJOlxuICAgICAgaWYgKHBsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICBcdHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIEJyb3dzZXIuQ0hST01FOlxuICAgICAgaWYgKHBsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICAgIC8vIFdvcmthcm91bmQgQ2hyb21lIGNvbnRlbnQgc2NyaXB0cyBiZWluZyB1bmFibGUgdG8gY2FsbCAnZXhpdFBpY3R1cmVJblBpY3R1cmUnIGRpcmVjdGx5XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQudGV4dENvbnRlbnQgPSAnZG9jdW1lbnQuZXhpdFBpY3R1cmVJblBpY3R1cmUoKSc7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgc2NyaXB0LnJlbW92ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRm9yY2UgZW5hYmxlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIHN1cHBvcnRcbiAgICAgICAgdmlkZW8ucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlcGljdHVyZWlucGljdHVyZScpO1xuICAgICAgICBcbiAgICAgICAgdmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuLyoqXG4gKiBBZGRzIGEgUGljdHVyZSBpbiBQaWN0dXJlIGV2ZW50IGxpc3RlbmVyXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbihIVE1MVmlkZW9FbGVtZW50LCBib29sZWFuKX0gbGlzdGVuZXIgLSBhbiBldmVudCBsaXN0ZW5lciB0byBhZGRcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFBpY3R1cmVJblBpY3R1cmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24obGlzdGVuZXIpIHtcbiAgY29uc3QgaW5kZXggPSBldmVudExpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gIH1cblxuICBpZiAoZ2V0QnJvd3NlcigpID09IEJyb3dzZXIuU0FGQVJJKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCB2aWRlb1ByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgbGlzdGVuZXJcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsYm9vbGVhbil9IGxpc3RlbmVyIC0gYW4gZXZlbnQgbGlzdGVuZXIgdG8gcmVtb3ZlXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVQaWN0dXJlSW5QaWN0dXJlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG4gIGNvbnN0IGluZGV4ID0gZXZlbnRMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gIGlmIChpbmRleCA+IC0xKSB7XG4gICAgZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICBcbiAgaWYgKGdldEJyb3dzZXIoKSA9PSBCcm93c2VyLlNBRkFSSSAmJiBldmVudExpc3RlbmVycy5sZW5ndGggPT0gMCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgdmlkZW9QcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7ICAgIFxuICB9XG59O1xuXG4vKipcbiAqIERpc3BhdGNoZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnRcbiAqXG4gKiBAcGFyYW0ge0hUTUxWaWRlb0VsZW1lbnR9IHZpZGVvIC0gdGFyZ2V0IHZpZGVvIGVsZW1lbnRcbiAqL1xuY29uc3QgZGlzcGF0Y2hQaWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBmdW5jdGlvbih2aWRlbykge1xuICBcbiAgLy8gSWdub3JlIGV2ZW50cyBmcm9tIG90aGVyIHZpZGVvIGVsZW1lbnRzIGUuZy4gYWR2ZXJ0c1xuICBjb25zdCBleHBlY3RlZFZpZGVvID0gZ2V0UmVzb3VyY2UoKS52aWRlb0VsZW1lbnQodHJ1ZSk7XG4gIGlmICh2aWRlbyAhPSBleHBlY3RlZFZpZGVvKSByZXR1cm47XG5cbiAgY29uc3QgaXNQbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pO1xuICBpZiAoaXNQbGF5aW5nUGljdHVyZUluUGljdHVyZSkge1xuICAgIGluZm8oJ1ZpZGVvIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlJyk7XG4gIH0gZWxzZSB7XG4gICAgaW5mbygnVmlkZW8gbGVhdmluZyBQaWN0dXJlIGluIFBpY3R1cmUgbW9kZScpO1xuICB9XG5cbiAgLy8gQ2FsbCBldmVudCBsaXN0ZW5lcnMgdXNpbmcgYSBjb3B5IHRvIHByZXZlbnQgcG9zc2libGl0eSBvZiBlbmRsZXNzIGxvb3BpbmdcbiAgY29uc3QgZXZlbnRMaXN0ZW5lcnNDb3B5ID0gZXZlbnRMaXN0ZW5lcnMuc2xpY2UoKTtcbiAgZm9yIChsZXQgbGlzdGVuZXI7IGxpc3RlbmVyID0gZXZlbnRMaXN0ZW5lcnNDb3B5LnBvcCgpOykge1xuICAgIGxpc3RlbmVyKHZpZGVvLCBpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BhdGNoZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgZm9yIGV2ZXJ5ICd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcgZXZlbnRcbiAqXG4gKiBAcGFyYW0geyFFdmVudH0gZXZlbnQgLSBhIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50XG4gKi9cbmNvbnN0IHZpZGVvUHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmdW5jdGlvbihldmVudCkge1xuICBjb25zdCB2aWRlbyA9ICAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB2aWRlbyBpcyBwbGF5aW5nIFBpY3R1cmUgaW4gUGljdHVyZVxuICpcbiAqIEBwYXJhbSB7SFRNTFZpZGVvRWxlbWVudH0gdmlkZW8gLSB2aWRlbyBlbGVtZW50IHRvIHRlc3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFxuICovXG5leHBvcnQgY29uc3QgdmlkZW9QbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IGZ1bmN0aW9uKHZpZGVvKSB7XG4gIHN3aXRjaCAoZ2V0QnJvd3NlcigpKSB7XG4gICAgY2FzZSBCcm93c2VyLlNBRkFSSTpcbiAgICAgIHJldHVybiB2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnO1xuICAgIGNhc2UgQnJvd3Nlci5DSFJPTUU6XG4gICAgICByZXR1cm4gdmlkZW8uaGFzQXR0cmlidXRlKENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUpO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0cyBQaWN0dXJlIGluIFBpY3R1cmUgYXR0cmlidXRlIGFuZCB0b2dnbGVzIGNhcHRpb25zIG9uIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlXG4gKlxuICogQHBhcmFtIHshRXZlbnR9IGV2ZW50IC0gYW4gZW50ZXJwaWN0dXJlaW5waWN0dXJlIGV2ZW50XG4gKi9cbmNvbnN0IHZpZGVvRGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgY29uc3QgdmlkZW8gPSAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuXG4gIC8vIFNldCBwbGF5aW5nIGluIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIGF0dHJpYnV0ZSBhbmQgZGlzcGF0Y2ggZXZlbnRcbiAgdmlkZW8uc2V0QXR0cmlidXRlKENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUsIHRydWUpO1xuICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG5cbiAgLy8gUmVtb3ZlIFBpY3R1cmUgaW4gUGljdHVyZSBhdHRyaWJ1dGUgYW5kIGRpc3BhdGNoIGV2ZW50IG9uIGxlYXZpbmcgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGVcbiAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbGVhdmVwaWN0dXJlaW5waWN0dXJlJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSk7XG4gICAgZGlzcGF0Y2hQaWN0dXJlSW5QaWN0dXJlRXZlbnQodmlkZW8pO1xuICB9LCB7IG9uY2U6IHRydWUgfSk7XG59O1xuXG4vKipcbiAqIEFkZHMgUGljdHVyZSBpbiBQaWN0dXJlIGV2ZW50IGxpc3RlbmVycyB0byBhbGwgdmlkZW8gZWxlbWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFZpZGVvRWxlbWVudExpc3RlbmVycyA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpO1xuICBmb3IgKGxldCBpbmRleCA9IDAsIGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50c1tpbmRleF07IGluZGV4KyspIHtcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VudGVycGljdHVyZWlucGljdHVyZScsIHZpZGVvRGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKTtcbiAgfVxufTtcbiJdLAoibmFtZXMiOlsiYWN0aXZlVmlkZW8iLCJ0aW1lb3V0SWQiLCJ0aW1lb3V0cyIsInJlcXVlc3RzIiwiY2FsbGJhY2tzIiwib3JpZ2luYWxTZXRUaW1lb3V0Iiwid2luZG93Iiwic2V0VGltZW91dCIsIm9yaWdpbmFsQ2xlYXJUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwib3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ0cmFja0FuaW1hdGlvbkZyYW1lUmVxdWVzdCIsImNhbGxiYWNrIiwicmVxdWVzdCIsInB1c2giLCJjbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMiLCJsZW5ndGgiLCJjYWxsQW5pbWF0aW9uRnJhbWVSZXF1ZXN0c0FuZFRpbWVvdXRzIiwiY2FsbGJhY2tzQ29weSIsInNsaWNlIiwidGltZXN0YW1wIiwicGVyZm9ybWFuY2UiLCJub3ciLCJwb3AiLCJ0aW1lb3V0c0NvcHkiLCJpZCIsInRpbWVvdXQiLCJldmFsIiwidW50aHJvdHRsZWRTZXRUaW1lb3V0IiwidG9TdHJpbmciLCJ1bnRocm90dGxlZENsZWFyVGltZW91dCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImJ5cGFzc0JhY2tncm91bmRUaW1lclRocm90dGxpbmciLCJoaWRkZW4iLCJhbGxWaWRlb3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwidmlkZW9JZCIsInZpZGVvIiwiaGFzQXR0cmlidXRlIiwiQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNhbGxiYWNrSWQiXQp9Cg== diff --git a/out/PiPer-chrome/scripts/install.js b/out/PiPer-chrome/scripts/install.js new file mode 100644 index 0000000..9772816 --- /dev/null +++ b/out/PiPer-chrome/scripts/install.js @@ -0,0 +1,6 @@ +var a;a||(a=!0,(()=>{'use strict';const f=console.error.bind(console,"[PiPer] ");const g={"button-title":{en:"Open Picture in Picture mode",de:"Bild-in-Bild starten",nl:"Beeld in beeld starten",fr:"D\u00e9marrer Image dans l\u2019image"},donate:{en:"Donate",de:"Spenden"},"donate-small":{en:"Small donation"},"donate-medium":{en:"Medium donation"},"donate-large":{en:"Grand donation"},"total-donations":{en:"Total donations:"},"donate-error":{en:"In-app purchase unavailable"},"report-bug":{en:"Report a bug",de:"Einen Fehler melden"},options:{en:"Options"},"install-thanks":{en:"Thanks for adding PiPer!"}, +enable:{en:"Enable"},"safari-disabled-warning":{en:"Extension is currently disabled, enable in Safari preferences"},"chrome-flags-open":{en:"Open Chrome Flags"},"chrome-flags-warning":{en:'Before you get started you need to enable the chrome flag [emphasis]"SurfaceLayer objects for videos"[/emphasis]'}};function h(b,a=navigator.language.substring(0,2)){const c=g[b];if(c&&(a=c[a]||c.en))return a;f(`No localized string found for key '${b}'`);return""} +function k(b){var a=[["emphasis",''],["/emphasis",""]];b=h(b,void 0);for(let c=a.length;c--;){let d=a[c];/[^-_0-9a-zA-Z\/]/.test(d[0])&&f(`Invalid characters used in localized string tag '${d[0]}'`);b=b.replace(new RegExp(`\\[${d[0]}\\]`,"g"),d[1])}return b};const l=document.getElementsByTagName("html")[0];l.style.display="none"; +document.addEventListener("DOMContentLoaded",function(){const b=document.getElementsByClassName("localized-string");for(let d=0,e;e=b[d];d++){var a=e.textContent.trim();a="chrome-flags-warning"==a?k(a):h(a);e.innerHTML=a}l.style.removeProperty("display");document.getElementById("warning-button").addEventListener("click",function(){chrome.tabs.create({url:"chrome://flags/#enable-surfaces-for-videos"})});const c=document.getElementById("test-video");c.addEventListener("loadeddata",function(){c.requestPictureInPicture().catch(function(d){~d.message.indexOf("Picture-in-Picture is not available")&& +(document.getElementById("warning").style.display="flex")})})});})()); +//# sourceMappingURL=data:application/json;base64,ewoidmVyc2lvbiI6MywKImZpbGUiOiIiLAoibGluZUNvdW50Ijo1LAoibWFwcGluZ3MiOiJBLGtDQWtDTyxNQUFNQSxFQUNUQyxPQUFBLENBQVFELEtBQVIsQ0FBY0UsSUFBZCxDQUFtQkQsT0FBbkIsQ0FqQ2tCRSxVQWlDbEIsQyxDQ2pDSixNQUFNQyxFQUFnQixDQUVSLGVBQWtCLENBQzlCLEdBQU0sOEJBRHdCLENBRTlCLEdBQU0sc0JBRndCLENBRzlCLEdBQU0sd0JBSHdCLENBSTlCLEdBQU0sdUNBSndCLENBRlYsQ0FTUixPQUFZLENBQ3hCLEdBQU0sUUFEa0IsQ0FFeEIsR0FBTSxTQUZrQixDQVRKLENBY1IsZUFBa0IsQ0FDOUIsR0FBTSxnQkFEd0IsQ0FkVixDQWtCUixnQkFBbUIsQ0FDL0IsR0FBTSxpQkFEeUIsQ0FsQlgsQ0FzQlIsZUFBa0IsQ0FDOUIsR0FBTSxnQkFEd0IsQ0F0QlYsQ0EwQlIsa0JBQXFCLENBQ2pDLEdBQU0sa0JBRDJCLENBMUJiLENBOEJSLGVBQWtCLENBQzlCLEdBQU0sNkJBRHdCLENBOUJWLENBa0NSLGFBQWdCLENBQzVCLEdBQU0sY0FEc0IsQ0FFNUIsR0FBTSxxQkFGc0IsQ0FsQ1IsQ0F1Q1IsUUFBYSxDQUN6QixHQUFNLFNBRG1CLENBdkNMLENBMkNSLGlCQUFvQixDQUNoQyxHQUFNLDBCQUQwQixDQTNDWjtBQStDUixPQUFZLENBQ3hCLEdBQU0sUUFEa0IsQ0EvQ0osQ0FtRFIsMEJBQTZCLENBQ3pDLEdBQU0sK0RBRG1DLENBbkRyQixDQXVEUixvQkFBdUIsQ0FDbkMsR0FBTSxtQkFENkIsQ0F2RGYsQ0EyRFIsdUJBQTBCLENBQ3RDLEdBQU0sa0hBRGdDLENBM0RsQixDQXlFU0MsU0FBQSxFQUFRLENBQUNDLENBQUQsQ0FBTUMsQ0FBQSxDQUFXQyxTQUFBLENBQVVELFFBQVYsQ0FBbUJFLFNBQW5CLENBQTZCLENBQTdCLENBQWdDLENBQWhDLENBQWpCLENBQXFELENBRzFGLE1BQW1DQyxFQUFzQk4sQ0FBQSxDQUFjRSxDQUFkLENBQ3pELElBQUlJLENBQUosR0FHTUMsQ0FITixDQUdlRCxDQUFBLENBQW9CSCxDQUFwQixDQUhmLEVBR2dERyxDQUhoRCxDQWJzQkUsRUFhdEIsRUFJYyxNQUFPRCxFQUdyQlgsRUFBQSxDQUFNLHNDQUFzQ00sQ0FBdEMsR0FBTixDQUNBLE9BQU8sRUFabUY7QUF1QjdDTyxRQUFBLEVBQVEsQ0FBQ1AsQ0FBRCxDQUE4QixDQUF4QlEsSUFBQUEsRUNsRlQsQ0FDNUMsQ0FBQyxVQUFELENBQWEsaUNBQWIsQ0FENEMsQ0FFNUMsQ0FBQyxXQUFELENBQWMsU0FBZCxDQUY0QyxDRG9GOUNILEVBQUFBLENBQVNOLENBQUEsQ0FBZ0JDLENBQWhCLENBRjREQyxJQUFBQSxFQUU1RCxDQUdiLEtBQUssSUFBSVEsRUFBUUQsQ0FBUkMsQ0FBcUJDLE1BQTlCLENBQXNDRCxDQUFBLEVBQXRDLENBQUEsQ0FBaUQsQ0FDL0MsSUFBSUUsRUFBY0gsQ0FBQSxDQUFhQyxDQUFiLENBR2QsbUJBQUEsQ0FBbUJHLElBQW5CLENBQXdCRCxDQUFBLENBQVksQ0FBWixDQUF4QixDQUFKLEVBQ0VqQixDQUFBLENBQU0sb0RBQW9EaUIsQ0FBQSxDQUFZLENBQVosQ0FBcEQsR0FBTixDQUlGTixFQUFBLENBQVNBLENBQUEsQ0FBT1EsT0FBUCxDQURLQyxJQUFJQyxNQUFKRCxDQUFXLE1BQU1ILENBQUEsQ0FBWSxDQUFaLENBQU4sS0FBWEcsQ0FBc0MsR0FBdENBLENBQ0wsQ0FBc0JILENBQUEsQ0FBWSxDQUFaLENBQXRCLENBVHNDLENBWWpELE1BQU9OLEVBakI0RSxDLENDOUZyRixNQUFNVyxFQUFzQ0MsUUFBQSxDQUFTQyxvQkFBVCxDQUE4QixNQUE5QixDQUFBLENBQXNDLENBQXRDLENBQzVDRixFQUFBLENBQVFHLEtBQVIsQ0FBY0MsT0FBZCxDQUF3QixNQUV4Qkg7UUFBQSxDQUFTSSxnQkFBVCxDQUEwQixrQkFBMUIsQ0FBOEMsUUFBUSxFQUFHLENBR3ZELE1BQU1DLEVBQW9CTCxRQUFBLENBQVNNLHNCQUFULENBQWdDLGtCQUFoQyxDQUMxQixLQUFLLElBQUlkLEVBQVEsQ0FBWixDQUFlZSxDQUFwQixDQUE2QkEsQ0FBN0IsQ0FBdUNGLENBQUEsQ0FBa0JiLENBQWxCLENBQXZDLENBQWlFQSxDQUFBLEVBQWpFLENBQTBFLENBQ3hFLElBQU1ULEVBQU13QixDQUFBLENBQVFDLFdBQVIsQ0FBb0JDLElBQXBCLEVBSVZyQixFQUFBLENBRFMsc0JBQVgsRUFBSUwsQ0FBSixDQUNXTyxDQUFBLENBQWdDUCxDQUFoQyxDQURYLENBTVdELENBQUEsQ0FBZ0JDLENBQWhCLENBR1h3QixFQUFBLENBQVFHLFNBQVIsQ0FBb0J0QixDQWJvRCxDQWlCMUVXLENBQUEsQ0FBUUcsS0FBUixDQUFjUyxjQUFkLENBQTZCLFNBQTdCLENBR0FYLFNBQUEsQ0FBU1ksY0FBVCxDQUF3QixnQkFBeEIsQ0FBQSxDQUEwQ1IsZ0JBQTFDLENBQTJELE9BQTNELENBQW9FLFFBQVEsRUFBUSxDQUNsRlMsTUFBQSxDQUFPQyxJQUFQLENBQVlDLE1BQVosQ0FBbUIsQ0FBQ0MsSUFBSyw0Q0FBTixDQUFuQixDQURrRixDQUFwRixDQUtBLE9BQU1DLEVBQXlDakIsUUFBQSxDQUFTWSxjQUFULENBQXdCLFlBQXhCLENBQy9DSyxFQUFBLENBQU1iLGdCQUFOLENBQXVCLFlBQXZCLENBQXFDLFFBQVEsRUFBRyxDQUM5Q2EsQ0FBQSxDQUFNQyx1QkFBTixFQUFBLENBQWdDQyxLQUFoQyxDQUFzQyxRQUFRLENBQUMxQyxDQUFELENBQVEsQ0FFaEQsQ0FEdUNBLENBQ3RDLENBRDZDMkMsT0FDN0MsQ0FBYUMsT0FBYixDQUFxQixxQ0FBckIsQ0FBTDtDQUVFckIsUUFBQSxDQUFTWSxjQUFULENBQXdCLFNBQXhCLENBRkYsQ0FFcUNWLEtBRnJDLENBRTJDQyxPQUYzQyxDQUVxRCxNQUZyRCxDQUZvRCxDQUF0RCxDQUQ4QyxDQUFoRCxDQTlCdUQsQ0FBekQ7IiwKInNvdXJjZXMiOlsiLi9sb2dnZXIuanMiLCIuL2xvY2FsaXphdGlvbi5qcyIsIi4vaW5zdGFsbC5qcyJdLAoic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTE9HR0lOR19MRVZFTCB9IGZyb20gJy4vZGVmaW5lcy5qcydcblxuY29uc3QgbG9nZ2luZ1ByZWZpeCA9ICdbUGlQZXJdICc7XG5cbi8qKiBAZW51bSB7bnVtYmVyfSAtIEVudW0gZm9yIGxvZ2dpbmcgbGV2ZWwgKi9cbmV4cG9ydCBjb25zdCBMb2dnaW5nTGV2ZWwgPSB7XG4gIEFMTDogMCxcbiAgVFJBQ0U6IDEwLFxuICBJTkZPOiAyMCxcbiAgV0FSTklORzogMzAsXG4gIEVSUk9SOiA0MCxcbn07XG5cbi8qKlxuICogTG9ncyBzdGFjayB0cmFjZSB0byBjb25zb2xlXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFjZSA9IChMb2dnaW5nTGV2ZWwuVFJBQ0UgPj0gTE9HR0lOR19MRVZFTCkgPyBcbiAgICBjb25zb2xlLnRyYWNlLmJpbmQoY29uc29sZSkgOiBmdW5jdGlvbigpe307XG5cbi8qKlxuICogTG9ncyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UgdG8gY29uc29sZVxuICovXG5leHBvcnQgY29uc3QgaW5mbyA9IChMb2dnaW5nTGV2ZWwuSU5GTyA+PSBMT0dHSU5HX0xFVkVMKSA/IFxuICAgIGNvbnNvbGUuaW5mby5iaW5kKGNvbnNvbGUsIGxvZ2dpbmdQcmVmaXgpIDogZnVuY3Rpb24oKXt9O1xuICAgIFxuLyoqXG4gKiBMb2dzIHdhcm5pbmcgbWVzc2FnZSB0byBjb25zb2xlXG4gKi9cbmV4cG9ydCBjb25zdCB3YXJuID0gKExvZ2dpbmdMZXZlbC5XQVJOSU5HID49IExPR0dJTkdfTEVWRUwpID8gXG4gICAgY29uc29sZS53YXJuLmJpbmQoY29uc29sZSwgbG9nZ2luZ1ByZWZpeCkgOiBmdW5jdGlvbigpe307XG4gICAgXG4vKipcbiAqIExvZ3MgZXJyb3IgbWVzc2FnZSB0byBjb25zb2xlXG4gKi9cbmV4cG9ydCBjb25zdCBlcnJvciA9IChMb2dnaW5nTGV2ZWwuRVJST1IgPj0gTE9HR0lOR19MRVZFTCkgPyBcbiAgICBjb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSwgbG9nZ2luZ1ByZWZpeCkgOiBmdW5jdGlvbigpe307XG4iLCJpbXBvcnQgeyBlcnJvciB9IGZyb20gJy4vbG9nZ2VyLmpzJ1xuXG5jb25zdCBsb2NhbGl6YXRpb25zID0ge307XG5cbmxvY2FsaXphdGlvbnNbJ2J1dHRvbi10aXRsZSddID0ge1xuICAnZW4nOiAnT3BlbiBQaWN0dXJlIGluIFBpY3R1cmUgbW9kZScsXG4gICdkZSc6ICdCaWxkLWluLUJpbGQgc3RhcnRlbicsXG4gICdubCc6ICdCZWVsZCBpbiBiZWVsZCBzdGFydGVuJyxcbiAgJ2ZyJzogJ0RcdTAwZTltYXJyZXIgSW1hZ2UgZGFucyBsXHUyMDE5aW1hZ2UnLFxufTtcblxubG9jYWxpemF0aW9uc1snZG9uYXRlJ10gPSB7XG4gICdlbic6ICdEb25hdGUnLFxuICAnZGUnOiAnU3BlbmRlbicsXG59O1xuXG5sb2NhbGl6YXRpb25zWydkb25hdGUtc21hbGwnXSA9IHtcbiAgJ2VuJzogJ1NtYWxsIGRvbmF0aW9uJyxcbn07XG5cbmxvY2FsaXphdGlvbnNbJ2RvbmF0ZS1tZWRpdW0nXSA9IHtcbiAgJ2VuJzogJ01lZGl1bSBkb25hdGlvbicsXG59O1xuXG5sb2NhbGl6YXRpb25zWydkb25hdGUtbGFyZ2UnXSA9IHtcbiAgJ2VuJzogJ0dyYW5kIGRvbmF0aW9uJyxcbn07XG5cbmxvY2FsaXphdGlvbnNbJ3RvdGFsLWRvbmF0aW9ucyddID0ge1xuICAnZW4nOiAnVG90YWwgZG9uYXRpb25zOicsXG59O1xuXG5sb2NhbGl6YXRpb25zWydkb25hdGUtZXJyb3InXSA9IHtcbiAgJ2VuJzogJ0luLWFwcCBwdXJjaGFzZSB1bmF2YWlsYWJsZScsXG59O1xuXG5sb2NhbGl6YXRpb25zWydyZXBvcnQtYnVnJ10gPSB7XG4gICdlbic6ICdSZXBvcnQgYSBidWcnLFxuICAnZGUnOiAnRWluZW4gRmVobGVyIG1lbGRlbicsXG59O1xuXG5sb2NhbGl6YXRpb25zWydvcHRpb25zJ10gPSB7XG4gICdlbic6ICdPcHRpb25zJyxcbn07XG5cbmxvY2FsaXphdGlvbnNbJ2luc3RhbGwtdGhhbmtzJ10gPSB7XG4gICdlbic6ICdUaGFua3MgZm9yIGFkZGluZyBQaVBlciEnLFxufTtcblxubG9jYWxpemF0aW9uc1snZW5hYmxlJ10gPSB7XG4gICdlbic6ICdFbmFibGUnLFxufTtcblxubG9jYWxpemF0aW9uc1snc2FmYXJpLWRpc2FibGVkLXdhcm5pbmcnXSA9IHtcbiAgJ2VuJzogJ0V4dGVuc2lvbiBpcyBjdXJyZW50bHkgZGlzYWJsZWQsIGVuYWJsZSBpbiBTYWZhcmkgcHJlZmVyZW5jZXMnLFxufTtcblxubG9jYWxpemF0aW9uc1snY2hyb21lLWZsYWdzLW9wZW4nXSA9IHtcbiAgJ2VuJzogJ09wZW4gQ2hyb21lIEZsYWdzJyxcbn07XG5cbmxvY2FsaXphdGlvbnNbJ2Nocm9tZS1mbGFncy13YXJuaW5nJ10gPSB7XG4gICdlbic6ICdCZWZvcmUgeW91IGdldCBzdGFydGVkIHlvdSBuZWVkIHRvIGVuYWJsZSB0aGUgY2hyb21lIGZsYWcgW2VtcGhhc2lzXVwiU3VyZmFjZUxheWVyIG9iamVjdHMgZm9yIHZpZGVvc1wiWy9lbXBoYXNpc10nLFxufTtcblxuLy8gU2V0IEVuZ2xpc2ggYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgbGFuZ3VhZ2VcbmNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9ICdlbic7XG5cbi8qKlxuICogUmV0dXJucyBhIGxvY2FsaXplZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgZGVzaWduYXRlZCBieSB0aGUgc3BlY2lmaWVkIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSB0aGUga2V5IGZvciBhIHN0cmluZyBcbiAqIEBwYXJhbSB7c3RyaW5nPX0gbGFuZ3VhZ2UgLSB0d28tbGV0dGVyIElTTyA2MzktMSBsYW5ndWFnZSBjb2RlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBsb2NhbGl6ZWRTdHJpbmcgPSBmdW5jdGlvbihrZXksIGxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cmluZygwLCAyKSkge1xuICBcbiAgLy8gR2V0IGFsbCBsb2NhbGl6YXRpb25zIGZvciBrZXlcbiAgY29uc3QgLyoqIE9iamVjdDxzdHJpbmcsc3RyaW5nPiAqLyBsb2NhbGl6YXRpb25zRm9yS2V5ID0gbG9jYWxpemF0aW9uc1trZXldO1xuICBpZiAobG9jYWxpemF0aW9uc0ZvcktleSkge1xuICAgIFxuICAgIC8vIEdldCB0aGUgdXNlcnMgc3BlY2lmaWMgbG9jYWxpemF0aW9uIG9yIGZhbGxiYWNrIHRvIGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBsZXQgc3RyaW5nID0gbG9jYWxpemF0aW9uc0ZvcktleVtsYW5ndWFnZV0gfHwgbG9jYWxpemF0aW9uc0ZvcktleVtkZWZhdWx0TGFuZ3VhZ2VdO1xuICAgIGlmIChzdHJpbmcpIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgXG4gIGVycm9yKGBObyBsb2NhbGl6ZWQgc3RyaW5nIGZvdW5kIGZvciBrZXkgJyR7a2V5fSdgKTtcbiAgcmV0dXJuICcnO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbG9jYWxpemVkIHZlcnNpb24gb2YgdGhlIHN0cmluZyBkZXNpZ25hdGVkIGJ5IHRoZSBzcGVjaWZpZWQga2V5IHdpdGggdGFncyByZXBsYWNlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSB0aGUga2V5IGZvciBhIHN0cmluZyBcbiAqIEBwYXJhbSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IHJlcGxhY2VtZW50cyAtIGFuIGFycmF5IG9mIGFycmF5cyBjb250YWluaW5nIHBhaXJzIG9mIHRhZ3MgYW5kIHRoZWlyIHJlcGxhY2VtZW50XG4gKiBAcGFyYW0ge3N0cmluZz19IGxhbmd1YWdlIC0gdHdvLWxldHRlciBJU08gNjM5LTEgbGFuZ3VhZ2UgY29kZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgbG9jYWxpemVkU3RyaW5nV2l0aFJlcGxhY2VtZW50cyA9IGZ1bmN0aW9uKGtleSwgcmVwbGFjZW1lbnRzLCBsYW5ndWFnZSkge1xuICBcbiAgbGV0IHN0cmluZyA9IGxvY2FsaXplZFN0cmluZyhrZXksIGxhbmd1YWdlKTtcbiAgXG4gIC8vIFJlcGxhY2UgdGFncyBvZiB0aGUgZm9ybSBbWFhYXSB3aXRoIGRpcmVjdGVkIHJlcGxhY2VtZW50cyBpZiBuZWVkZWRcbiAgZm9yIChsZXQgaW5kZXggPSByZXBsYWNlbWVudHMubGVuZ3RoOyBpbmRleC0tOyApIHtcbiAgICBsZXQgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudHNbaW5kZXhdO1xuICAgIFxuICAgIC8vIEVuc3VyZSB0YWdzIGRvIG5vdCBjb250YWluIHNwZWNpYWwgY2hhcmFjdGVycyAodGhpcyBnZXRzIG9wdGltaXNlZCBhd2F5IGFzIG9wcG9zZWQgdG8gZXNjYXBpbmcgdGhlIHRhZ3Mgd2l0aCB0aGUgYXNzb2NpYXRlZCBwZXJmb3JtYW5jZSBjb3N0KVxuICAgIGlmICgvW14tXzAtOWEtekEtWlxcL10vLnRlc3QocmVwbGFjZW1lbnRbMF0pKSB7XG4gICAgICBlcnJvcihgSW52YWxpZCBjaGFyYWN0ZXJzIHVzZWQgaW4gbG9jYWxpemVkIHN0cmluZyB0YWcgJyR7cmVwbGFjZW1lbnRbMF19J2ApO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxbJHtyZXBsYWNlbWVudFswXX1cXFxcXWAsICdnJyk7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UocmVnZXgsIHJlcGxhY2VtZW50WzFdKTtcbiAgfVxuXG4gIHJldHVybiBzdHJpbmc7XG59O1xuIiwiaW1wb3J0IHsgaW5mbyB9IGZyb20gJy4vbG9nZ2VyLmpzJ1xuaW1wb3J0IHsgbG9jYWxpemVkU3RyaW5nLCBsb2NhbGl6ZWRTdHJpbmdXaXRoUmVwbGFjZW1lbnRzIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24uanMnXG5cbi8vIEhpZGUgcGFnZSBkdXJpbmcgbG9hZGluZ1xuY29uc3QgaHRtbFRhZyA9IC8qKiBAdHlwZSB7SFRNTEVsZW1lbnR9ICovIChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImh0bWxcIilbMF0pO1xuaHRtbFRhZy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7XG5cbiAgLy8gTG9jYWxpemUgdGV4dCBlbGVtZW50c1xuICBjb25zdCBsb2NhbGl6ZWRFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xvY2FsaXplZC1zdHJpbmcnKTtcbiAgZm9yIChsZXQgaW5kZXggPSAwLCBlbGVtZW50OyBlbGVtZW50ID0gbG9jYWxpemVkRWxlbWVudHNbaW5kZXhdOyBpbmRleCsrKSB7XG4gICAgY29uc3Qga2V5ID0gZWxlbWVudC50ZXh0Q29udGVudC50cmltKCk7XG4gICAgXG4gICAgbGV0IHN0cmluZztcbiAgICBpZiAoa2V5ID09ICdjaHJvbWUtZmxhZ3Mtd2FybmluZycpIHtcbiAgICAgIHN0cmluZyA9IGxvY2FsaXplZFN0cmluZ1dpdGhSZXBsYWNlbWVudHMoa2V5LCBbXG4gICAgICAgIFsnZW1waGFzaXMnLCAnPHNwYW4gY2xhc3M9XCJ3YXJuaW5nLWVtcGhhc2lzXCI+J10sXG4gICAgICAgIFsnL2VtcGhhc2lzJywgJzwvc3Bhbj4nXSxcbiAgICAgIF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJpbmcgPSBsb2NhbGl6ZWRTdHJpbmcoa2V5KTtcbiAgICB9IFxuICAgIFxuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gc3RyaW5nO1xuICB9XG5cbiAgLy8gTWFrZSBwYWdlIHZpc2libGVcbiAgaHRtbFRhZy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuXG4gIC8vIE9wZW4gcmVxdWlyZWQgQ2hyb21lIGZsYWcgaWYgd2FybmluZyBidXR0b24gY2xpY2tlZFxuICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FybmluZy1idXR0b24nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgY2hyb21lLnRhYnMuY3JlYXRlKHt1cmw6ICdjaHJvbWU6Ly9mbGFncy8jZW5hYmxlLXN1cmZhY2VzLWZvci12aWRlb3MnfSk7XG4gIH0pO1xuICBcbiAgLy8gVGVzdCBmb3IgUGljdHVyZSBpbiBQaWN0dXJlIHN1cHBvcnQgYW5kIGRpc3BsYXkgd2FybmluZyB0byBhY3RpdmF0ZSBDaHJvbWUgZmxhZ3MgaWYgbmVlZGVkXG4gIGNvbnN0IHZpZGVvID0gLyoqIEB0eXBlIHtIVE1MVmlkZW9FbGVtZW50fSAqLyAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtdmlkZW8nKSk7XG4gIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZGRhdGEnLCBmdW5jdGlvbigpIHtcbiAgICB2aWRlby5yZXF1ZXN0UGljdHVyZUluUGljdHVyZSgpLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAvKiogQHR5cGUge0Vycm9yfSAqLyAoZXJyb3IpLm1lc3NhZ2U7XG4gICAgICBpZiAofmVycm9yTWVzc2FnZS5pbmRleE9mKCdQaWN0dXJlLWluLVBpY3R1cmUgaXMgbm90IGF2YWlsYWJsZScpKSB7XG4gICAgICAgIGluZm8oJ1BpY3R1cmUtaW4tUGljdHVyZSBOT1Qgc3VwcG9ydGVkJyk7XG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YXJuaW5nJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZm8oJ1BpY3R1cmUtaW4tUGljdHVyZSBJUyBzdXBwb3J0ZWQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLAoibmFtZXMiOlsiZXJyb3IiLCJjb25zb2xlIiwiYmluZCIsImxvZ2dpbmdQcmVmaXgiLCJsb2NhbGl6YXRpb25zIiwibG9jYWxpemVkU3RyaW5nIiwia2V5IiwibGFuZ3VhZ2UiLCJuYXZpZ2F0b3IiLCJzdWJzdHJpbmciLCJsb2NhbGl6YXRpb25zRm9yS2V5Iiwic3RyaW5nIiwiZGVmYXVsdExhbmd1YWdlIiwibG9jYWxpemVkU3RyaW5nV2l0aFJlcGxhY2VtZW50cyIsInJlcGxhY2VtZW50cyIsImluZGV4IiwibGVuZ3RoIiwicmVwbGFjZW1lbnQiLCJ0ZXN0IiwicmVwbGFjZSIsInJlZ2V4IiwiUmVnRXhwIiwiaHRtbFRhZyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJzdHlsZSIsImRpc3BsYXkiLCJhZGRFdmVudExpc3RlbmVyIiwibG9jYWxpemVkRWxlbWVudHMiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiZWxlbWVudCIsInRleHRDb250ZW50IiwidHJpbSIsImlubmVySFRNTCIsInJlbW92ZVByb3BlcnR5IiwiZ2V0RWxlbWVudEJ5SWQiLCJjaHJvbWUiLCJ0YWJzIiwiY3JlYXRlIiwidXJsIiwidmlkZW8iLCJyZXF1ZXN0UGljdHVyZUluUGljdHVyZSIsImNhdGNoIiwibWVzc2FnZSIsImluZGV4T2YiXQp9Cg== diff --git a/out/PiPer-chrome/scripts/main.js b/out/PiPer-chrome/scripts/main.js new file mode 100644 index 0000000..50f080a --- /dev/null +++ b/out/PiPer-chrome/scripts/main.js @@ -0,0 +1,35 @@ +var a;a||(a=!0,(()=>{'use strict';const d=console.error.bind(console,"[PiPer] ");let f=null;function g(){const a=new XMLHttpRequest;a.open("GET",chrome.runtime.getURL("scripts/fix.js"));a.onload=function(){const b=document.createElement("script");b.setAttribute("type","module");b.appendChild(document.createTextNode(a.responseText));document.head.appendChild(b)};a.send()};const l=[];function m(a){n(a)?(a=document.createElement("script"),a.textContent="document.exitPictureInPicture()",document.head.appendChild(a),a.remove()):(a.removeAttribute("disablepictureinpicture"),a.requestPictureInPicture())}function p(a){-1==l.indexOf(a)&&l.push(a)}function r(a){var b=f.a(!0);if(a==b){b=n(a);var c=l.slice();for(let e;e=c.pop();)e(a,b)}}function n(a){return a.hasAttribute("data-playing-picture-in-picture")} +function t(a){const b=a.target;b.setAttribute("data-playing-picture-in-picture",!0);r(b);b.addEventListener("leavepictureinpicture",function(){b.removeAttribute("data-playing-picture-in-picture");r(b)},{once:!0})};const u={"button-title":{en:"Open Picture in Picture mode",de:"Bild-in-Bild starten",nl:"Beeld in beeld starten",fr:"D\u00e9marrer Image dans l\u2019image"}};function v(){var a=navigator.language.substring(0,2);const b=u["button-title"];if(b&&(a=b[a]||b.en))return a;d("No localized string found for key 'button-title'");return""};let w=null; +function x(a){if(!w){w=document.createElement(f.i||"button");w.id="PiPer_button";w.title=v();var b=f.f;b&&(w.style.cssText=b);if(b=f.g)w.className=b;const e=document.createElement("img");e.style.width=e.style.height="100%";if(b=f.h)e.style.transform=`scale(${b})`;w.appendChild(e);b=f.s;var c=f.o;b||(b="default",c="default-exit");const k=chrome.runtime.getURL(`images/${b}.svg`);e.src=k;if(c){const h=chrome.runtime.getURL(`images/${c}.svg`);p(function(q,C){e.src=C?h:k})}if(b=f.j)c=document.createElement("style"),c.appendChild(document.createTextNode(`#${"PiPer_button"}:hover{${b}}`)), +w.appendChild(c);w.addEventListener("click",function(h){h.preventDefault();(h=f.a(!0))?m(h):d("Unable to find video")})}a.insertBefore(w,f.c?f.c(a):null)};function y(a){let b=document;for(const c of a)if(b=(b=b.querySelector(c))&&b.shadowRoot,!b)return null;return b};function z(){function a(e){let k=null;return function(h){const q=k?document.getElementById(k):null;if(q&&!h)return q;if(h=e())h.id||(h.id="PiPer_"+b++),k=h.id;return h}}let b=0;const c=f;c.b=a(c.b);c.a=a(c.a);c.m&&(c.m=a(c.m))};const A={"9now":{g:"vjs-control vjs-button",j:"filter:brightness(50%) sepia(1) hue-rotate(167deg) saturate(253%) brightness(104%)",c:function(a){return a.querySelector(".vjs-fullscreen-control")},b:function(){return document.querySelector(".vjs-control-bar")},h:.7,f:"order:999999;cursor:pointer;height:44px;width:40px",m:function(){const a=f.a();return a&&a.parentElement.querySelector(".vjs-text-track-display")},a:function(){return document.querySelector("video.vjs-tech")}},aktualne:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo", +i:"div",j:"filter:brightness(50%) sepia(1) hue-rotate(311deg) saturate(550%) brightness(49%)!important",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"width:38px;filter:brightness(80%)",a:function(){return document.querySelector("video.jw-video")}},amazon:{j:"opacity:1!important",c:function(a){return a.querySelector(".fullscreenButtonWrapper")},b:function(){const a=document.getElementById("dv-web-player");return a&&a.querySelector(".hideableTopButtons")}, +f:"position:relative;left:8px;width:3vw;height:2vw;min-width:35px;min-height:24px;border:0;padding:0;background-color:transparent;opacity:.8",m:function(){const a=document.getElementById("dv-web-player");return a&&a.querySelector(".captions")},a:function(){const a=document.querySelector(".rendererContainer");return a&&a.querySelector('video[width="100%"]')}},apple:{g:"footer__control hydrated",i:"div",j:"opacity:.8!important",c:function(a){return a.lastChild},b:function(){var a=y(["apple-tv-plus-player", +"amp-video-player-internal"]);if(a&&(a=a.querySelector("amp-playback-controls-full-screen")))return a.parentElement},f:"transition:opacity .15s;cursor:pointer;opacity:.9",a:function(){const a=y(["apple-tv-plus-player","amp-video-player-internal","amp-video-player"]);if(a)return a.querySelector("video")}},bbc:{b:function(){return null},m:function(){return document.querySelector(".p_subtitlesContainer")},a:function(){return document.querySelector("#mediaContainer video[src]")}},ceskatelevize:{g:"videoButtonShell dontHideControls cursorPointer focusableBtn", +i:"div",j:"filter:brightness(50%) sepia(1) hue-rotate(170deg) saturate(250%) brightness(90%)",c:function(){return document.getElementById("fullScreenShell")},h:1.2,f:"width:18px;height:18px;display:inline-block",b:function(){return document.getElementById("videoButtons")},a:function(){return document.getElementById("video")}},crunchyroll:{g:"vjs-control vjs-button",j:"opacity:1!important",h:.6,f:"position:absolute;right:100px;opacity:.75;cursor:pointer",b:function(){return document.querySelector(".vjs-control-bar")}, +a:function(){return document.getElementById("player_html5_api")}},curiositystream:{g:"vjs-control vjs-button",l:function(){},j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){const a=document.getElementById("main-player");return a&&a.querySelector(".vjs-control-bar")},h:.7,f:"opacity:.8;cursor:pointer",a:function(){return document.getElementById("main-player_html5_api")}},dazn:{f:"\n width: 1.5rem;\n height: 1.5rem;\n color: white;\n background: transparent;\n position: relative;\n border: none;\n outline: none;\n border-radius: 0;\n cursor: pointer;\n -webkit-appearance: none;\n margin: 0.5rem;\n z-index: 1;\n ", +c:function(a){const b=document.querySelector('div[data-test-id^="PLAYER_LIVE_INDICATOR"]');return b?b:a.lastChild},b:function(){return document.querySelector('div[data-test-id^="PLAYER_BAR"]')},a:function(){return document.querySelector('div[data-test-id^="PLAYER_SOLUTION"] video')}},disneyplus:{g:"control-icon-btn",c:function(){return document.querySelector(".fullscreen-icon")},b:function(){return document.querySelector(".controls__right")},a:function(){return document.querySelector("video[src]")}}, +espn:{g:"media-icon",l:function(){const a=w,b=a.title;a.title="";const c=document.createElement("div");c.className="control-tooltip";c.style.cssText="right:0;bottom:35px;transition:bottom .2s ease-out";c.textContent=b;a.appendChild(c);a.addEventListener("mouseover",function(){a.classList.add("displaying");c.style.bottom="75px"});a.addEventListener("mouseout",function(){a.classList.remove("displaying");c.style.bottom="35px"})},i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".controls-right-horizontal")}, +h:.7,f:"width:44px;height:44px;order:4",m:function(){return document.querySelector(".text-track-display")},a:function(){return document.querySelector("video.js-video-content")}},eurosportplayer:{i:"div",j:"opacity:1!important",b:function(){return document.querySelector(".controls-bar-right-section")},h:.9,f:"height:100%;margin-right:15px;opacity:.8;cursor:pointer",a:function(){return document.querySelector(".video-player__screen")}},fubo:{i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".css-ja7yk7")}, +h:1.25,f:"height:24px;width:25px;margin:8px 10px 12px;cursor:pointer",a:function(){return document.getElementById("bitmovinplayer-video-video")}},giantbomb:{g:"av-chrome-control",i:"div",c:function(a){return a.querySelector(".js-vid-pin-wrap").nextSibling},b:function(){return document.querySelector(".av-controls--right")},h:.7,f:"height:100%;width:30px;opacity:1;cursor:pointer",a:function(){return document.querySelector('video[id^="video_js-vid-player"]')}},hulu:{l:function(){const a=w,b=a.title; +a.title="";const c=document.createElement("div");c.className="button-tool-tips";c.style.cssText="white-space:nowrap;padding:0 5px;right:0";c.textContent=b.toUpperCase();a.appendChild(c);a.addEventListener("mouseover",function(){c.style.display="block"});a.addEventListener("mouseout",function(){c.style.display="none"})},i:"div",j:"opacity:1!important",c:function(){return document.querySelector(".controls__view-mode-button")},b:function(){return document.querySelector("#dash-player-container .controls__menus-right")}, +f:"opacity:.7;cursor:pointer;width:24px",m:function(){return document.querySelector(".closed-caption-outband")},a:function(){return document.querySelector(".video-player")}},littlethings:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"width:38px",a:function(){return document.querySelector("video.jw-video")}},mashable:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo", +i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"top:-2px;width:38px",a:function(){return document.querySelector("video.jw-video")}},metacafe:{i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector("#player_place .tray")},h:.85,a:function(){return document.querySelector("#player_place video")}},mixer:{g:"control",i:"div",j:"background:rgba(255,255,255,.08)",c:function(a){return a.lastChild.previousSibling}, +b:function(){return document.querySelector(".control-container .toolbar .right")},h:.65,f:"width:36px;height:36px;border-radius:50%;cursor:pointer",a:function(){return document.querySelector(".control-container + video")}},mlb:{h:.7,f:"border:0;background:0 0;filter:brightness(80%)",j:"filter:brightness(120%)!important",b:function(){return document.querySelector(".bottom-controls-right")},c:function(a){return a.lastChild},a:function(){return document.querySelector(".mlbtv-media-player video")}},netflix:{g:"touchable PlayerControls--control-element nfp-button-control default-control-button", +j:"transform:scale(1.2)",c:function(a){return a.lastChild},b:function(){return document.querySelector(".PlayerControlsNeo__button-control-row")},h:.7,f:"min-width:2.3em",m:function(){const a=f.a();return a&&a.parentElement.querySelector(".player-timedtext")},a:function(){return document.querySelector(".VideoContainer video")}},ocs:{g:"footer-elt fltr",c:function(a){return a.querySelector("#togglePlay")},b:function(){return document.querySelector(".footer-block:last-child")},h:1.2,f:"display:block;width:25px;height:18px;margin-right:10px;margin-bottom:-10px;padding:0;border:0;background-color:transparent", +a:function(){return document.getElementById("LgyVideoPlayer")}},openload:{g:"vjs-control vjs-button",c:function(a){return a.lastChild},b:function(){return document.querySelector(".vjs-control-bar")},h:.6,f:"left:5px;cursor:pointer",a:function(){return document.getElementById("olvideo_html5_api")}},panopto:{g:"media-icon",l:function(){const a=w,b=a.title;a.title="";const c=document.createElement("div");c.className="control-tooltip";c.style.cssText="right:0;bottom:35px;transition:bottom .2s ease-out"; +c.textContent=b;a.appendChild(c);a.addEventListener("mouseover",function(){a.classList.add("displaying");c.style.bottom="75px"});a.addEventListener("mouseout",function(){a.classList.remove("displaying");c.style.bottom="35px"})},i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector("#transportControls")},h:.7,f:"width:44px;height:44px;order:4",a:function(){return document.querySelector("video#primaryVideo")}},pbs:{g:"jw-icon jw-icon-inline jw-button-color jw-reset",l:function(){document.querySelector(".jw-icon-fullscreen").addEventListener("click", +function(){const a=f.a();n(a)&&m(a)})},i:"div",j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-button-container")},h:.6,f:"opacity:.8",a:function(){return document.querySelector(".jw-video")}},periscope:{g:"Pill Pill--withIcon",i:"span",j:"opacity:.8!important;filter:brightness(125%)!important",c:function(a){return a.querySelector(".ShareBroadcast").nextSibling},b:function(){return document.querySelector(".VideoOverlayRedesign-BottomBar-Right")}, +h:.6,f:"opacity:.5;filter:brightness(200%)",a:function(){return document.querySelector(".Video video")}},plex:{l:function(){g()},j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){const a=document.querySelector('div[class^="FullPlayerTopControls-topControls"]');return a&&a.lastChild},h:2,f:"position:relative;top:-3px;width:30px;padding:10px;border:0;background:0 0;opacity:.7;outline:0;text-shadow:0 0 4px rgba(0,0,0,.45)",m:function(){return document.querySelector(".libjass-subs")}, +a:function(){return document.querySelector('video[class^="HTMLMedia-mediaElement"]')}},seznam:{g:"sznp-ui-widget-box",i:"div",j:"transform:scale(1.05)",c:function(a){return a.lastChild},b:function(){return document.querySelector(".sznp-ui-ctrl-panel-layout-wrapper")},h:.75,f:"cursor:pointer",a:function(){return document.querySelector(".sznp-ui-tech-video-wrapper video")}},streamable:{l:function(){const a=document.getElementById("player-progress"),b=window.getComputedStyle(a);w.style.right=b.right; +a.style.right=parseInt(b.right,10)+40+"px"},i:"div",j:"opacity:1!important",b:function(){return document.querySelector(".player-controls-right")},f:"position:absolute;bottom:10px;height:26px;width:26px;cursor:pointer;opacity:.9;filter:drop-shadow(rgba(0,0,0,.5) 0 0 2px)",a:function(){return document.getElementById("video-player-tag")}},ted:{g:"z-i:0 pos:r bottom:0 hover/bg:white.7 b-r:.1 p:1 cur:p",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector('[aria-controls="video1"]').parentElement.parentElement}, +l:function(){const a=w.querySelector("img");a.classList.add("w:2");a.classList.add("h:2")},a:function(){return document.querySelector('video[id^="ted-player-"]')}},theonion:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"top:-2px;left:10px;width:38px",a:function(){return document.querySelector("video.jw-video")}},twitch:{g:"tw-border-bottom-left-radius-medium tw-border-bottom-right-radius-medium tw-border-top-left-radius-medium tw-border-top-right-radius-medium tw-button-icon tw-button-icon--overlay tw-core-button tw-core-button--overlay tw-inline-flex tw-relative tw-tooltip-wrapper", +l:function(){var a=w;const b=a.title;a.title="";const c=document.createElement("div");c.className="tw-tooltip tw-tooltip--align-right tw-tooltip--up";c.appendChild(document.createTextNode(b));a.appendChild(c);(a=document.querySelector("[data-a-target='player-fullscreen-button']"))&&a.addEventListener("click",function(){const e=f.a();n(e)&&m(e)})},c:function(a){return a.lastChild},b:function(){return document.querySelector(".player-controls__right-control-group,.player-buttons-right")},h:.8,m:function(){return document.querySelector(".player-captions-container")}, +a:function(){return document.querySelector("video[src]")}},udemy:{g:"btn",j:"opacity:1!important",c:function(){return document.querySelector('button[aria-label="Fullscreen"]')},b:function(){return document.querySelector('div[class^="control-bar--control-bar--"]')},h:.8,f:"width:3em;height:3em;padding:0;opacity:.8",m:function(){return document.querySelector('div[class^="captions-display--captions-container"]')},a:function(){return document.querySelector("video.vjs-tech")}},ustream:{g:"component shown", +i:"div",j:"opacity:1!important;filter:drop-shadow(0 0 5px rgba(255,255,255,.5))",c:function(a){return a.lastChild},h:.8,f:"opacity:.7",b:function(){return document.getElementById("controlPanelRight")},a:function(){return document.querySelector("#ViewerContainer video")}},vevo:{g:"player-control",c:function(a){return a.lastChild},b:function(){return document.querySelector("#control-bar .right-controls")},h:.7,f:"border:0;background:0 0",a:function(){return document.getElementById("html5-player")}}, +vice:{g:"vp__controls__icon__popup__container",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".vp__controls__icons")},h:.6,f:"top:-11px",a:function(){return document.querySelector("video.jw-video")}},vid:{c:function(a){return a.lastChild},b:function(){return document.querySelector(".vjs-control-bar")},h:.7,f:"position:relative;top:-2px;left:9px;padding:0;margin:0",a:function(){return document.getElementById("video_player_html5_api")}},vijf:{g:"vjs-control vjs-button", +l:function(){document.getElementsByClassName("vjs-fullscreen-control")[0].style.order=10},b:function(){return document.getElementsByClassName("vjs-control-bar")[0]},f:"text-indent:0!important;margin-left:10px;order:9",a:function(){return document.querySelector('video[preload="metadata"]')}},vk:{g:"videoplayer_btn",i:"div",c:function(){return document.querySelector("div.videoplayer_btn_fullscreen")},f:"width:24px;height:45px;padding:0 8px",b:function(){return document.querySelector("div.videoplayer_controls")}, +a:function(){return document.querySelector("video.videoplayer_media_provider")}},vrt:{g:"vuplay-control",c:function(a){return a.lastChild},b:function(){return document.getElementsByClassName("vuplay-control-right")[0]},m:function(){return document.querySelector(".theoplayer-texttracks")},f:"width:30px;height:47px;padding:0;position:relative;top:-9px;right:8px",a:function(){return document.querySelector('video[preload="metadata"]')}},vrv:{g:"vjs-control vjs-button",l:function(){w.nextSibling.addEventListener("click", +function(){const a=f.a();n(a)&&m(a)});g()},j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){return document.querySelector(".vjs-control-bar")},h:.6,f:"position:absolute;right:114px;width:50px;cursor:pointer;opacity:.6",m:function(){return document.querySelector(".libjass-subs")},a:function(){return document.getElementById("player_html5_api")}},yeloplay:{g:"button",l:function(){f.b().style.width="210px"},j:"opacity:1!important",c:function(){return document.getElementsByTagName("player-fullscreen-button")[0]}, +b:function(){return document.getElementsByClassName("buttons")[0]},h:.8,f:"margin-left:10px;width:50px;cursor:pointer;opacity:.8;height:40px!important;margin-bottom:0!important",a:function(){return document.querySelector("video[src]")}},youtube:{g:"ytp-button",l:function(){const a=w,b=a.nextSibling,c=a.title,e=b.title;a.title="";a.addEventListener("mouseover",function(){b.title=c;b.dispatchEvent(new Event("mouseover"))});a.addEventListener("mouseout",function(){b.dispatchEvent(new Event("mouseout")); +b.title=e});g()},c:function(a){return a.lastChild},b:function(){return document.querySelector(".ytp-right-controls")},h:.68,m:function(){return document.querySelector(".caption-window")},a:function(){return document.querySelector("video.html5-main-video")}}};A.primevideo=A.amazon;A.oload=A.openload;A.pscp=A.periscope;A.stream=A.seznam;A.vier=A.vijf;A.zes=A.vijf;A.youtu=A.youtube;function B(){const a=f;var b=document.getElementsByTagName("video");for(let c=0,e;e=b[c];c++)e.addEventListener("enterpictureinpicture",t);!document.getElementById("PiPer_button")&&(b=a.b())&&(x(b),a.l&&a.l())}const D=32400==location.port?"plex":(location.hostname.match(/([^.]+)\.(?:com?\.)?[^.]+$/)||[])[1];D in A&&(f=A[D],z(),(new MutationObserver(B)).observe(document,{childList:!0,subtree:!0}),B());})()); +//# sourceMappingURL=data:application/json;base64,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QUFWbkMsQ0FhWixDQVhBYixDQUFBLEVBV0EsQ0FKQSxDQURpQnFELElBQUlDLGdCQUFKRCxDQUFxQlIsQ0FBckJRLENBQ2pCLEVBQVNFLE9BQVQsQ0FBaUJ0SSxRQUFqQixDQUEyQixDQUN6QnVJLFVBQVcsQ0FBQSxDQURjLENBRXpCQyxRQUFTLENBQUEsQ0FGZ0IsQ0FBM0IsQ0FJQSxDQUFBWixDQUFBLEVBZkY7IiwKInNvdXJjZXMiOlsiLi9sb2dnZXIuanMiLCIuL2NvbW1vbi5qcyIsIi4vdmlkZW8uanMiLCIuL2xvY2FsaXphdGlvbi5qcyIsIi4vYnV0dG9uLmpzIiwiLi9yZXNvdXJjZXMvYXBwbGUuanMiLCIuL2NhY2hlLmpzIiwiLi9yZXNvdXJjZXMvaW5kZXguanMiLCIuL3Jlc291cmNlcy85bm93LmpzIiwiLi9yZXNvdXJjZXMvYWt0dWFsbmUuanMiLCIuL3Jlc291cmNlcy9hbWF6b24uanMiLCIuL3Jlc291cmNlcy9iYmMuanMiLCIuL3Jlc291cmNlcy9jZXNrYXRlbGV2aXplLmpzIiwiLi9yZXNvdXJjZXMvY3J1bmNoeXJvbGwuanMiLCIuL3Jlc291cmNlcy9jdXJpb3NpdHlzdHJlYW0uanMiLCIuL3Jlc291cmNlcy9kYXpuLmpzIiwiLi9yZXNvdXJjZXMvZGlzbmV5cGx1cy5qcyIsIi4vcmVzb3VyY2VzL2VzcG4uanMiLCIuL3Jlc291cmNlcy9ldXJvc3BvcnRwbGF5ZXIuanMiLCIuL3Jlc291cmNlcy9mdWJvdHYuanMiLCIuL3Jlc291cmNlcy9naWFudGJvbWIuanMiLCIuL3Jlc291cmNlcy9odWx1LmpzIiwiLi9yZXNvdXJjZXMvbGl0dGxldGhpbmdzLmpzIiwiLi9yZXNvdXJjZXMvbWFzaGFibGUuanMiLCIuL3Jlc291cmNlcy9tZXRhY2FmZS5qcyIsIi4vcmVzb3VyY2VzL21peGVyLmpzIiwiLi9yZXNvdXJjZXMvbWxiLmpzIiwiLi9yZXNvdXJjZXMvbmV0ZmxpeC5qcyIsIi4vcmVzb3VyY2VzL29jcy5qcyIsIi4vcmVzb3VyY2VzL29wZW5sb2FkLmpzIiwiLi9yZXNvdXJjZXMvcGFub3B0by5qcyIsIi4vcmVzb3VyY2VzL3Bicy5qcyIsIi4vcmVzb3VyY2VzL3BlcmlzY29wZS5qcyIsIi4vcmVzb3VyY2VzL3BsZXguanMiLCIuL3Jlc291cmNlcy9zZXpuYW0uanMiLCIuL3Jlc291cmNlcy9zdHJlYW1hYmxlLmpzIiwiLi9yZXNvdXJjZXMvdGVkLmpzIiwiLi9yZXNvdXJjZXMvdGhlb25pb24uanMiLCIuL3Jlc291cmNlcy90d2l0Y2guanMiLCIuL3Jlc291cmNlcy91ZGVteS5qcyIsIi4vcmVzb3VyY2VzL3VzdHJlYW0uanMiLCIuL3Jlc291cmNlcy92ZXZvLmpzIiwiLi9yZXNvdXJjZXMvdmljZS5qcyIsIi4vcmVzb3VyY2VzL3ZpZC5qcyIsIi4vcmVzb3VyY2VzL3ZpZXJ2aWpmemVzLmpzIiwiLi9yZXNvdXJjZXMvdmsuanMiLCIuL3Jlc291cmNlcy92cnQuanMiLCIuL3Jlc291cmNlcy92cnYuanMiLCIuL3Jlc291cmNlcy95ZWxvcGxheS5qcyIsIi4vcmVzb3VyY2VzL3lvdXR1YmUuanMiLCIuL21haW4uanMiXSwKInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExPR0dJTkdfTEVWRUwgfSBmcm9tICcuL2RlZmluZXMuanMnXG5cbmNvbnN0IGxvZ2dpbmdQcmVmaXggPSAnW1BpUGVyXSAnO1xuXG4vKiogQGVudW0ge251bWJlcn0gLSBFbnVtIGZvciBsb2dnaW5nIGxldmVsICovXG5leHBvcnQgY29uc3QgTG9nZ2luZ0xldmVsID0ge1xuICBBTEw6IDAsXG4gIFRSQUNFOiAxMCxcbiAgSU5GTzogMjAsXG4gIFdBUk5JTkc6IDMwLFxuICBFUlJPUjogNDAsXG59O1xuXG4vKipcbiAqIExvZ3Mgc3RhY2sgdHJhY2UgdG8gY29uc29sZVxuICovXG5leHBvcnQgY29uc3QgdHJhY2UgPSAoTG9nZ2luZ0xldmVsLlRSQUNFID49IExPR0dJTkdfTEVWRUwpID8gXG4gICAgY29uc29sZS50cmFjZS5iaW5kKGNvbnNvbGUpIDogZnVuY3Rpb24oKXt9O1xuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb25hbCBtZXNzYWdlIHRvIGNvbnNvbGVcbiAqL1xuZXhwb3J0IGNvbnN0IGluZm8gPSAoTG9nZ2luZ0xldmVsLklORk8gPj0gTE9HR0lOR19MRVZFTCkgPyBcbiAgICBjb25zb2xlLmluZm8uYmluZChjb25zb2xlLCBsb2dnaW5nUHJlZml4KSA6IGZ1bmN0aW9uKCl7fTtcbiAgICBcbi8qKlxuICogTG9ncyB3YXJuaW5nIG1lc3NhZ2UgdG8gY29uc29sZVxuICovXG5leHBvcnQgY29uc3Qgd2FybiA9IChMb2dnaW5nTGV2ZWwuV0FSTklORyA+PSBMT0dHSU5HX0xFVkVMKSA/IFxuICAgIGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUsIGxvZ2dpbmdQcmVmaXgpIDogZnVuY3Rpb24oKXt9O1xuICAgIFxuLyoqXG4gKiBMb2dzIGVycm9yIG1lc3NhZ2UgdG8gY29uc29sZVxuICovXG5leHBvcnQgY29uc3QgZXJyb3IgPSAoTG9nZ2luZ0xldmVsLkVSUk9SID49IExPR0dJTkdfTEVWRUwpID8gXG4gICAgY29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUsIGxvZ2dpbmdQcmVmaXgpIDogZnVuY3Rpb24oKXt9O1xuIiwiaW1wb3J0IHsgQlJPV1NFUiB9IGZyb20gJy4vZGVmaW5lcy5qcydcbmltcG9ydCB7IHdhcm4gfSBmcm9tICcuL2xvZ2dlci5qcydcblxuLyoqIEBlbnVtIHtudW1iZXJ9IC0gRW51bSBmb3IgYnJvd3NlciAqL1xuZXhwb3J0IGNvbnN0IEJyb3dzZXIgPSB7XG4gIFVOS05PV046IDAsXG4gIFNBRkFSSTogMSxcbiAgQ0hST01FOiAyLFxufTtcblxuLyoqXG4gKiBSZXR1cm5zIGN1cnJlbnQgd2ViIGJyb3dzZXJcbiAqXG4gKiBAcmV0dXJuIHtCcm93c2VyfSBcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJyb3dzZXIgPSBmdW5jdGlvbigpIHtcbiAgaWYgKEJST1dTRVIgIT0gQnJvd3Nlci5VTktOT1dOKSB7XG4gICAgcmV0dXJuIC8qKiBAdHlwZSB7QnJvd3Nlcn0gKi8gKEJST1dTRVIpO1xuICB9XG4gIGlmICgvU2FmYXJpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIC9BcHBsZS8udGVzdChuYXZpZ2F0b3IudmVuZG9yKSkge1xuICAgIHJldHVybiBCcm93c2VyLlNBRkFSSTtcbiAgfVxuICBpZiAoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiAvR29vZ2xlLy50ZXN0KG5hdmlnYXRvci52ZW5kb3IpKSB7XG4gICAgcmV0dXJuIEJyb3dzZXIuQ0hST01FO1xuICB9XG4gIHJldHVybiBCcm93c2VyLlVOS05PV047XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHt7XG4gKiAgIGJ1dHRvbkNsYXNzTmFtZTogKHN0cmluZ3x1bmRlZmluZWQpLFxuICogICBidXR0b25EaWRBcHBlYXI6IChmdW5jdGlvbigpOnVuZGVmaW5lZHx1bmRlZmluZWQpLFxuICogICBidXR0b25FbGVtZW50VHlwZTogKHN0cmluZ3x1bmRlZmluZWQpLFxuICogICBidXR0b25FeGl0SW1hZ2U6IChzdHJpbmd8dW5kZWZpbmVkKSxcbiAqICAgYnV0dG9uSG92ZXJTdHlsZTogKHN0cmluZ3x1bmRlZmluZWQpLFxuICogICBidXR0b25JbWFnZTogKHN0cmluZ3x1bmRlZmluZWQpLFxuICogICBidXR0b25JbnNlcnRCZWZvcmU6IChmdW5jdGlvbihFbGVtZW50KTo/Tm9kZXx1bmRlZmluZWQpLFxuICogICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKGJvb2xlYW49KTo/RWxlbWVudCxcbiAqICAgYnV0dG9uU2NhbGU6IChudW1iZXJ8dW5kZWZpbmVkKSxcbiAqICAgYnV0dG9uU3R5bGU6IChzdHJpbmd8dW5kZWZpbmVkKSxcbiAqICAgY2FwdGlvbkVsZW1lbnQ6IChmdW5jdGlvbihib29sZWFuPSk6P0VsZW1lbnR8dW5kZWZpbmVkKSxcbiAqICAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbihib29sZWFuPSk6P0VsZW1lbnQsXG4gKiB9fVxuICovXG5sZXQgUGlwZXJSZXNvdXJjZTtcblxubGV0IC8qKiA/UGlwZXJSZXNvdXJjZSAqLyBjdXJyZW50UmVzb3VyY2UgPSBudWxsO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgcmVzb3VyY2VcbiAqXG4gKiBAcmV0dXJuIHs/UGlwZXJSZXNvdXJjZX1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJlc291cmNlID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBjdXJyZW50UmVzb3VyY2U7XG59O1xuXG4vKipcbiAqIFNldHMgdGhlIGN1cnJlbnQgcmVzb3VyY2VcbiAqXG4gKiBAcGFyYW0gez9QaXBlclJlc291cmNlfSByZXNvdXJjZSAtIGEgcmVzb3VyY2UgdG8gc2V0IGFzIGN1cnJlbnQgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFJlc291cmNlID0gZnVuY3Rpb24ocmVzb3VyY2UpIHtcbiAgY3VycmVudFJlc291cmNlID0gcmVzb3VyY2U7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgcmVsYXRpdmUgcGF0aCB3aXRoaW4gYW4gZXh0ZW5zaW9uIHRvIGEgZnVsbHktcXVhbGlmaWVkIFVSTFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIC0gYSBwYXRoIHRvIGEgcmVzb3VyY2VcbiAqIEByZXR1cm4ge3N0cmluZ30gXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHRlbnNpb25VUkwgPSBmdW5jdGlvbihwYXRoKSB7XG4gIHN3aXRjaCAoZ2V0QnJvd3NlcigpKSB7XG4gICAgY2FzZSBCcm93c2VyLlNBRkFSSTpcbiAgICAgIHJldHVybiBzYWZhcmkuZXh0ZW5zaW9uLmJhc2VVUkkgKyBwYXRoO1xuICAgIGNhc2UgQnJvd3Nlci5DSFJPTUU6XG4gICAgICByZXR1cm4gY2hyb21lLnJ1bnRpbWUuZ2V0VVJMKHBhdGgpO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gcGF0aDtcbiAgfVxufTtcblxuLyoqXG4gKiBBcHBsaWVzIGZpeCB0byBieXBhc3MgYmFja2dyb3VuZCBET00gdGltZXIgdGhyb3R0bGluZ1xuICovXG5leHBvcnQgY29uc3QgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZyA9IGZ1bmN0aW9uKCkge1xuXG4gIC8vIElzc3VlIHdhcm5pbmcgZm9yIHVubmVjZXNzYXJ5IHVzZSBvZiBiYWNrZ3JvdW5kIHRpbWVyIHRocm90dGxpbmdcbiAgaWYgKCFjdXJyZW50UmVzb3VyY2UuY2FwdGlvbkVsZW1lbnQpIHtcbiAgICB3YXJuKCdVbm5lY2Vzc2FyeSBieXBhc3Npbmcgb2YgYmFja2dyb3VuZCB0aW1lciB0aHJvdHRsaW5nIG9uIHBhZ2Ugd2l0aG91dCBjYXB0aW9uIHN1cHBvcnQnKTtcbiAgfVxuXG4gIGNvbnN0IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgcmVxdWVzdC5vcGVuKCdHRVQnLCBnZXRFeHRlbnNpb25VUkwoJ3NjcmlwdHMvZml4LmpzJykpO1xuICByZXF1ZXN0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnbW9kdWxlJyk7XG4gICAgc2NyaXB0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJlcXVlc3QucmVzcG9uc2VUZXh0KSk7XG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9O1xuICByZXF1ZXN0LnNlbmQoKTtcbn07XG4iLCJpbXBvcnQgeyBpbmZvIH0gZnJvbSAnLi9sb2dnZXIuanMnXG5pbXBvcnQgeyBCcm93c2VyLCBnZXRCcm93c2VyLCBnZXRSZXNvdXJjZSB9IGZyb20gJy4vY29tbW9uLmpzJ1xuXG5jb25zdCBDSFJPTUVfUExBWUlOR19QSVBfQVRUUklCVVRFID0gJ2RhdGEtcGxheWluZy1waWN0dXJlLWluLXBpY3R1cmUnO1xuXG5jb25zdCAvKiogIUFycmF5PGZ1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsIGJvb2xlYW4pPiAqLyBldmVudExpc3RlbmVycyA9IFtdO1xuXG4vKipcbiAqIFRvZ2dsZXMgdmlkZW8gUGljdHVyZSBpbiBQaWN0dXJlXG4gKlxuICogQHBhcmFtIHtIVE1MVmlkZW9FbGVtZW50fSB2aWRlbyAtIHZpZGVvIGVsZW1lbnQgdG8gdG9nZ2xlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24odmlkZW8pIHtcbiAgY29uc3QgcGxheWluZ1BpY3R1cmVJblBpY3R1cmUgPSB2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKTtcbiAgc3dpdGNoIChnZXRCcm93c2VyKCkpIHtcbiAgICBjYXNlIEJyb3dzZXIuU0FGQVJJOlxuICAgICAgaWYgKHBsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICBcdHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIEJyb3dzZXIuQ0hST01FOlxuICAgICAgaWYgKHBsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICAgIC8vIFdvcmthcm91bmQgQ2hyb21lIGNvbnRlbnQgc2NyaXB0cyBiZWluZyB1bmFibGUgdG8gY2FsbCAnZXhpdFBpY3R1cmVJblBpY3R1cmUnIGRpcmVjdGx5XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQudGV4dENvbnRlbnQgPSAnZG9jdW1lbnQuZXhpdFBpY3R1cmVJblBpY3R1cmUoKSc7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgc2NyaXB0LnJlbW92ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRm9yY2UgZW5hYmxlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIHN1cHBvcnRcbiAgICAgICAgdmlkZW8ucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlcGljdHVyZWlucGljdHVyZScpO1xuICAgICAgICBcbiAgICAgICAgdmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuLyoqXG4gKiBBZGRzIGEgUGljdHVyZSBpbiBQaWN0dXJlIGV2ZW50IGxpc3RlbmVyXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbihIVE1MVmlkZW9FbGVtZW50LCBib29sZWFuKX0gbGlzdGVuZXIgLSBhbiBldmVudCBsaXN0ZW5lciB0byBhZGRcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFBpY3R1cmVJblBpY3R1cmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24obGlzdGVuZXIpIHtcbiAgY29uc3QgaW5kZXggPSBldmVudExpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gIH1cblxuICBpZiAoZ2V0QnJvd3NlcigpID09IEJyb3dzZXIuU0FGQVJJKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCB2aWRlb1ByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgbGlzdGVuZXJcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsYm9vbGVhbil9IGxpc3RlbmVyIC0gYW4gZXZlbnQgbGlzdGVuZXIgdG8gcmVtb3ZlXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVQaWN0dXJlSW5QaWN0dXJlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG4gIGNvbnN0IGluZGV4ID0gZXZlbnRMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gIGlmIChpbmRleCA+IC0xKSB7XG4gICAgZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICBcbiAgaWYgKGdldEJyb3dzZXIoKSA9PSBCcm93c2VyLlNBRkFSSSAmJiBldmVudExpc3RlbmVycy5sZW5ndGggPT0gMCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgdmlkZW9QcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7ICAgIFxuICB9XG59O1xuXG4vKipcbiAqIERpc3BhdGNoZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnRcbiAqXG4gKiBAcGFyYW0ge0hUTUxWaWRlb0VsZW1lbnR9IHZpZGVvIC0gdGFyZ2V0IHZpZGVvIGVsZW1lbnRcbiAqL1xuY29uc3QgZGlzcGF0Y2hQaWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBmdW5jdGlvbih2aWRlbykge1xuICBcbiAgLy8gSWdub3JlIGV2ZW50cyBmcm9tIG90aGVyIHZpZGVvIGVsZW1lbnRzIGUuZy4gYWR2ZXJ0c1xuICBjb25zdCBleHBlY3RlZFZpZGVvID0gZ2V0UmVzb3VyY2UoKS52aWRlb0VsZW1lbnQodHJ1ZSk7XG4gIGlmICh2aWRlbyAhPSBleHBlY3RlZFZpZGVvKSByZXR1cm47XG5cbiAgY29uc3QgaXNQbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pO1xuICBpZiAoaXNQbGF5aW5nUGljdHVyZUluUGljdHVyZSkge1xuICAgIGluZm8oJ1ZpZGVvIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlJyk7XG4gIH0gZWxzZSB7XG4gICAgaW5mbygnVmlkZW8gbGVhdmluZyBQaWN0dXJlIGluIFBpY3R1cmUgbW9kZScpO1xuICB9XG5cbiAgLy8gQ2FsbCBldmVudCBsaXN0ZW5lcnMgdXNpbmcgYSBjb3B5IHRvIHByZXZlbnQgcG9zc2libGl0eSBvZiBlbmRsZXNzIGxvb3BpbmdcbiAgY29uc3QgZXZlbnRMaXN0ZW5lcnNDb3B5ID0gZXZlbnRMaXN0ZW5lcnMuc2xpY2UoKTtcbiAgZm9yIChsZXQgbGlzdGVuZXI7IGxpc3RlbmVyID0gZXZlbnRMaXN0ZW5lcnNDb3B5LnBvcCgpOykge1xuICAgIGxpc3RlbmVyKHZpZGVvLCBpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BhdGNoZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgZm9yIGV2ZXJ5ICd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcgZXZlbnRcbiAqXG4gKiBAcGFyYW0geyFFdmVudH0gZXZlbnQgLSBhIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50XG4gKi9cbmNvbnN0IHZpZGVvUHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmdW5jdGlvbihldmVudCkge1xuICBjb25zdCB2aWRlbyA9ICAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB2aWRlbyBpcyBwbGF5aW5nIFBpY3R1cmUgaW4gUGljdHVyZVxuICpcbiAqIEBwYXJhbSB7SFRNTFZpZGVvRWxlbWVudH0gdmlkZW8gLSB2aWRlbyBlbGVtZW50IHRvIHRlc3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFxuICovXG5leHBvcnQgY29uc3QgdmlkZW9QbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IGZ1bmN0aW9uKHZpZGVvKSB7XG4gIHN3aXRjaCAoZ2V0QnJvd3NlcigpKSB7XG4gICAgY2FzZSBCcm93c2VyLlNBRkFSSTpcbiAgICAgIHJldHVybiB2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnO1xuICAgIGNhc2UgQnJvd3Nlci5DSFJPTUU6XG4gICAgICByZXR1cm4gdmlkZW8uaGFzQXR0cmlidXRlKENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUpO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0cyBQaWN0dXJlIGluIFBpY3R1cmUgYXR0cmlidXRlIGFuZCB0b2dnbGVzIGNhcHRpb25zIG9uIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlXG4gKlxuICogQHBhcmFtIHshRXZlbnR9IGV2ZW50IC0gYW4gZW50ZXJwaWN0dXJlaW5waWN0dXJlIGV2ZW50XG4gKi9cbmNvbnN0IHZpZGVvRGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgY29uc3QgdmlkZW8gPSAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuXG4gIC8vIFNldCBwbGF5aW5nIGluIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIGF0dHJpYnV0ZSBhbmQgZGlzcGF0Y2ggZXZlbnRcbiAgdmlkZW8uc2V0QXR0cmlidXRlKENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUsIHRydWUpO1xuICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG5cbiAgLy8gUmVtb3ZlIFBpY3R1cmUgaW4gUGljdHVyZSBhdHRyaWJ1dGUgYW5kIGRpc3BhdGNoIGV2ZW50IG9uIGxlYXZpbmcgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGVcbiAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbGVhdmVwaWN0dXJlaW5waWN0dXJlJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSk7XG4gICAgZGlzcGF0Y2hQaWN0dXJlSW5QaWN0dXJlRXZlbnQodmlkZW8pO1xuICB9LCB7IG9uY2U6IHRydWUgfSk7XG59O1xuXG4vKipcbiAqIEFkZHMgUGljdHVyZSBpbiBQaWN0dXJlIGV2ZW50IGxpc3RlbmVycyB0byBhbGwgdmlkZW8gZWxlbWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFZpZGVvRWxlbWVudExpc3RlbmVycyA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpO1xuICBmb3IgKGxldCBpbmRleCA9IDAsIGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50c1tpbmRleF07IGluZGV4KyspIHtcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VudGVycGljdHVyZWlucGljdHVyZScsIHZpZGVvRGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKTtcbiAgfVxufTtcbiIsImltcG9ydCB7IGVycm9yIH0gZnJvbSAnLi9sb2dnZXIuanMnXG5cbmNvbnN0IGxvY2FsaXphdGlvbnMgPSB7fTtcblxubG9jYWxpemF0aW9uc1snYnV0dG9uLXRpdGxlJ10gPSB7XG4gICdlbic6ICdPcGVuIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlJyxcbiAgJ2RlJzogJ0JpbGQtaW4tQmlsZCBzdGFydGVuJyxcbiAgJ25sJzogJ0JlZWxkIGluIGJlZWxkIHN0YXJ0ZW4nLFxuICAnZnInOiAnRFx1MDBlOW1hcnJlciBJbWFnZSBkYW5zIGxcdTIwMTlpbWFnZScsXG59O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gU2V0IEVuZ2xpc2ggYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgbGFuZ3VhZ2VcbmNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9ICdlbic7XG5cbi8qKlxuICogUmV0dXJucyBhIGxvY2FsaXplZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgZGVzaWduYXRlZCBieSB0aGUgc3BlY2lmaWVkIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSB0aGUga2V5IGZvciBhIHN0cmluZyBcbiAqIEBwYXJhbSB7c3RyaW5nPX0gbGFuZ3VhZ2UgLSB0d28tbGV0dGVyIElTTyA2MzktMSBsYW5ndWFnZSBjb2RlXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBsb2NhbGl6ZWRTdHJpbmcgPSBmdW5jdGlvbihrZXksIGxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cmluZygwLCAyKSkge1xuICBcbiAgLy8gR2V0IGFsbCBsb2NhbGl6YXRpb25zIGZvciBrZXlcbiAgY29uc3QgLyoqIE9iamVjdDxzdHJpbmcsc3RyaW5nPiAqLyBsb2NhbGl6YXRpb25zRm9yS2V5ID0gbG9jYWxpemF0aW9uc1trZXldO1xuICBpZiAobG9jYWxpemF0aW9uc0ZvcktleSkge1xuICAgIFxuICAgIC8vIEdldCB0aGUgdXNlcnMgc3BlY2lmaWMgbG9jYWxpemF0aW9uIG9yIGZhbGxiYWNrIHRvIGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBsZXQgc3RyaW5nID0gbG9jYWxpemF0aW9uc0ZvcktleVtsYW5ndWFnZV0gfHwgbG9jYWxpemF0aW9uc0ZvcktleVtkZWZhdWx0TGFuZ3VhZ2VdO1xuICAgIGlmIChzdHJpbmcpIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgXG4gIGVycm9yKGBObyBsb2NhbGl6ZWQgc3RyaW5nIGZvdW5kIGZvciBrZXkgJyR7a2V5fSdgKTtcbiAgcmV0dXJuICcnO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbG9jYWxpemVkIHZlcnNpb24gb2YgdGhlIHN0cmluZyBkZXNpZ25hdGVkIGJ5IHRoZSBzcGVjaWZpZWQga2V5IHdpdGggdGFncyByZXBsYWNlZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSB0aGUga2V5IGZvciBhIHN0cmluZyBcbiAqIEBwYXJhbSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IHJlcGxhY2VtZW50cyAtIGFuIGFycmF5IG9mIGFycmF5cyBjb250YWluaW5nIHBhaXJzIG9mIHRhZ3MgYW5kIHRoZWlyIHJlcGxhY2VtZW50XG4gKiBAcGFyYW0ge3N0cmluZz19IGxhbmd1YWdlIC0gdHdvLWxldHRlciBJU08gNjM5LTEgbGFuZ3VhZ2UgY29kZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgbG9jYWxpemVkU3RyaW5nV2l0aFJlcGxhY2VtZW50cyA9IGZ1bmN0aW9uKGtleSwgcmVwbGFjZW1lbnRzLCBsYW5ndWFnZSkge1xuICBcbiAgbGV0IHN0cmluZyA9IGxvY2FsaXplZFN0cmluZyhrZXksIGxhbmd1YWdlKTtcbiAgXG4gIC8vIFJlcGxhY2UgdGFncyBvZiB0aGUgZm9ybSBbWFhYXSB3aXRoIGRpcmVjdGVkIHJlcGxhY2VtZW50cyBpZiBuZWVkZWRcbiAgZm9yIChsZXQgaW5kZXggPSByZXBsYWNlbWVudHMubGVuZ3RoOyBpbmRleC0tOyApIHtcbiAgICBsZXQgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudHNbaW5kZXhdO1xuICAgIFxuICAgIC8vIEVuc3VyZSB0YWdzIGRvIG5vdCBjb250YWluIHNwZWNpYWwgY2hhcmFjdGVycyAodGhpcyBnZXRzIG9wdGltaXNlZCBhd2F5IGFzIG9wcG9zZWQgdG8gZXNjYXBpbmcgdGhlIHRhZ3Mgd2l0aCB0aGUgYXNzb2NpYXRlZCBwZXJmb3JtYW5jZSBjb3N0KVxuICAgIGlmICgvW14tXzAtOWEtekEtWlxcL10vLnRlc3QocmVwbGFjZW1lbnRbMF0pKSB7XG4gICAgICBlcnJvcihgSW52YWxpZCBjaGFyYWN0ZXJzIHVzZWQgaW4gbG9jYWxpemVkIHN0cmluZyB0YWcgJyR7cmVwbGFjZW1lbnRbMF19J2ApO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxbJHtyZXBsYWNlbWVudFswXX1cXFxcXWAsICdnJyk7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UocmVnZXgsIHJlcGxhY2VtZW50WzFdKTtcbiAgfVxuXG4gIHJldHVybiBzdHJpbmc7XG59O1xuIiwiaW1wb3J0IHsgaW5mbywgZXJyb3IgfSBmcm9tICcuL2xvZ2dlci5qcydcbmltcG9ydCB7IGdldFJlc291cmNlLCBnZXRFeHRlbnNpb25VUkwgfSBmcm9tICcuL2NvbW1vbi5qcydcbmltcG9ydCB7IHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUsIGFkZFBpY3R1cmVJblBpY3R1cmVFdmVudExpc3RlbmVyIH0gZnJvbSAnLi92aWRlby5qcydcbmltcG9ydCB7IGxvY2FsaXplZFN0cmluZyB9IGZyb20gJy4vbG9jYWxpemF0aW9uLmpzJ1xuXG5jb25zdCBCVVRUT05fSUQgPSAnUGlQZXJfYnV0dG9uJztcblxubGV0IC8qKiA/SFRNTEVsZW1lbnQgKi8gYnV0dG9uID0gbnVsbDtcblxuLyoqXG4gKiBJbmplY3RzIFBpY3R1cmUgaW4gUGljdHVyZSBidXR0b24gaW50byB3ZWJwYWdlXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBwYXJlbnQgLSBFbGVtZW50IGJ1dHRvbiB3aWxsIGJlIGluc2VydGVkIGludG9cbiAqL1xuZXhwb3J0IGNvbnN0IGFkZEJ1dHRvbiA9IGZ1bmN0aW9uKHBhcmVudCkge1xuXG4gIC8vIENyZWF0ZSBidXR0b24gaWYgbmVlZGVkXG4gIGlmICghYnV0dG9uKSB7XG4gICAgY29uc3QgYnV0dG9uRWxlbWVudFR5cGUgPSBnZXRSZXNvdXJjZSgpLmJ1dHRvbkVsZW1lbnRUeXBlIHx8ICdidXR0b24nO1xuICAgIGJ1dHRvbiA9IC8qKiBAdHlwZSB7SFRNTEVsZW1lbnR9ICovIChkb2N1bWVudC5jcmVhdGVFbGVtZW50KGJ1dHRvbkVsZW1lbnRUeXBlKSk7XG5cbiAgICAvLyBTZXQgYnV0dG9uIHByb3BlcnRpZXNcbiAgICBidXR0b24uaWQgPSBCVVRUT05fSUQ7XG4gICAgYnV0dG9uLnRpdGxlID0gbG9jYWxpemVkU3RyaW5nKCdidXR0b24tdGl0bGUnKTtcbiAgICBjb25zdCBidXR0b25TdHlsZSA9IGdldFJlc291cmNlKCkuYnV0dG9uU3R5bGU7XG4gICAgaWYgKGJ1dHRvblN0eWxlKSBidXR0b24uc3R5bGUuY3NzVGV4dCA9IGJ1dHRvblN0eWxlO1xuICAgIGNvbnN0IGJ1dHRvbkNsYXNzTmFtZSA9IGdldFJlc291cmNlKCkuYnV0dG9uQ2xhc3NOYW1lO1xuICAgIGlmIChidXR0b25DbGFzc05hbWUpIGJ1dHRvbi5jbGFzc05hbWUgPSBidXR0b25DbGFzc05hbWU7XG5cbiAgICAvLyBBZGQgc2NhbGVkIGltYWdlIHRvIGJ1dHRvblxuICAgIGNvbnN0IGltYWdlID0gLyoqIEB0eXBlIHtIVE1MSW1hZ2VFbGVtZW50fSAqLyAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykpO1xuICAgIGltYWdlLnN0eWxlLndpZHRoID0gaW1hZ2Uuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIGNvbnN0IGJ1dHRvblNjYWxlID0gZ2V0UmVzb3VyY2UoKS5idXR0b25TY2FsZTtcbiAgICBpZiAoYnV0dG9uU2NhbGUpIGltYWdlLnN0eWxlLnRyYW5zZm9ybSA9IGBzY2FsZSgke2J1dHRvblNjYWxlfSlgO1xuICAgIGJ1dHRvbi5hcHBlbmRDaGlsZChpbWFnZSk7XG5cbiAgICAvLyBTZXQgaW1hZ2UgcGF0aHNcbiAgICBsZXQgYnV0dG9uSW1hZ2UgPSBnZXRSZXNvdXJjZSgpLmJ1dHRvbkltYWdlO1xuICAgIGxldCBidXR0b25FeGl0SW1hZ2UgPSBnZXRSZXNvdXJjZSgpLmJ1dHRvbkV4aXRJbWFnZTtcbiAgICBpZiAoIWJ1dHRvbkltYWdlKSB7XG4gICAgICBidXR0b25JbWFnZSA9ICdkZWZhdWx0JztcbiAgICAgIGJ1dHRvbkV4aXRJbWFnZSA9ICdkZWZhdWx0LWV4aXQnO1xuICAgIH1cbiAgICBjb25zdCBidXR0b25JbWFnZVVSTCA9IGdldEV4dGVuc2lvblVSTChgaW1hZ2VzLyR7YnV0dG9uSW1hZ2V9LnN2Z2ApO1xuICAgIGltYWdlLnNyYyA9IGJ1dHRvbkltYWdlVVJMO1xuICAgIGlmIChidXR0b25FeGl0SW1hZ2UpIHtcbiAgICAgIGNvbnN0IGJ1dHRvbkV4aXRJbWFnZVVSTCA9IGdldEV4dGVuc2lvblVSTChgaW1hZ2VzLyR7YnV0dG9uRXhpdEltYWdlfS5zdmdgKTtcbiAgICAgIGFkZFBpY3R1cmVJblBpY3R1cmVFdmVudExpc3RlbmVyKGZ1bmN0aW9uKHZpZGVvLCBpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICAgIGltYWdlLnNyYyA9IChpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSA/IGJ1dHRvbkV4aXRJbWFnZVVSTCA6IGJ1dHRvbkltYWdlVVJMO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGhvdmVyIHN0eWxlIHRvIGJ1dHRvbiAoYSBuZXN0ZWQgc3R5bGVzaGVldCBpcyB1c2VkIHRvIGF2b2lkIHRyYWNraW5nIGFub3RoZXIgZWxlbWVudClcbiAgICBjb25zdCBidXR0b25Ib3ZlclN0eWxlID0gZ2V0UmVzb3VyY2UoKS5idXR0b25Ib3ZlclN0eWxlO1xuICAgIGlmIChidXR0b25Ib3ZlclN0eWxlKSB7XG4gICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICBjb25zdCBjc3MgPSBgIyR7QlVUVE9OX0lEfTpob3Zlcnske2J1dHRvbkhvdmVyU3R5bGV9fWA7XG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgICAgIGJ1dHRvbi5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxuXG4gICAgLy8gVG9nZ2xlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIHdoZW4gYnV0dG9uIGlzIGNsaWNrZWRcbiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgLy8gR2V0IHRoZSB2aWRlbyBlbGVtZW50IGFuZCBieXBhc3MgY2FjaGluZyB0byBhY2NvbW9kYXRlIGZvciB0aGUgdW5kZXJseWluZyB2aWRlbyBjaGFuZ2luZyAoZS5nLiBwcmUtcm9sbCBhZHZlcnRzKSBcbiAgICAgIGNvbnN0IHZpZGVvID0gLyoqIEB0eXBlIHs/SFRNTFZpZGVvRWxlbWVudH0gKi8gKGdldFJlc291cmNlKCkudmlkZW9FbGVtZW50KHRydWUpKTtcbiAgICAgIGlmICghdmlkZW8pIHtcbiAgICAgICAgZXJyb3IoJ1VuYWJsZSB0byBmaW5kIHZpZGVvJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlUGljdHVyZUluUGljdHVyZSh2aWRlbyk7XG4gICAgfSk7XG5cbiAgICBpbmZvKCdQaWN0dXJlIGluIFBpY3R1cmUgYnV0dG9uIGNyZWF0ZWQnKTtcbiAgfVxuXG4gIC8vIEluamVjdCBidXR0b24gaW50byBjb3JyZWN0IHBsYWNlXG4gIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSBnZXRSZXNvdXJjZSgpLmJ1dHRvbkluc2VydEJlZm9yZSA/IGdldFJlc291cmNlKCkuYnV0dG9uSW5zZXJ0QmVmb3JlKHBhcmVudCkgOiBudWxsO1xuICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGJ1dHRvbiwgcmVmZXJlbmNlTm9kZSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIFBpY3R1cmUgaW4gUGljdHVyZSBidXR0b24gZWxlbWVudFxuICpcbiAqIEByZXR1cm4gez9IVE1MRWxlbWVudH1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEJ1dHRvbiA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gYnV0dG9uO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgUGljdHVyZSBpbiBQaWN0dXJlIGJ1dHRvbiBpcyBpbmplY3RlZCBpbnRvIHBhZ2VcbiAqXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgY29uc3QgY2hlY2tCdXR0b24gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuICEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoQlVUVE9OX0lEKTtcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ2FwcGxlJztcblxuLyoqXG4gKiBSZXR1cm5zIG5lc3RlZCBzaGFkb3cgcm9vdFxuICpcbiAqIEBwYXJhbSB7IUFycmF5PHN0cmluZz59IHNlbGVjdG9yc1xuICogQHJldHVybiB7P1NoYWRvd1Jvb3R9XG4gKi9cbmNvbnN0IGdldE5lc3RlZFNoYWRvd1Jvb3QgPSBmdW5jdGlvbihzZWxlY3RvcnMpIHtcbiAgbGV0IGRvbSA9IGRvY3VtZW50O1xuICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIHNlbGVjdG9ycykge1xuICAgIGRvbSA9IC8qKiBAdHlwZSB7SFRNTEVsZW1lbnR9ICovIChkb20ucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpO1xuICAgIGRvbSA9IGRvbSAmJiBkb20uc2hhZG93Um9vdDtcbiAgICBpZiAoIWRvbSkgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIC8qKiBAdHlwZSB7U2hhZG93Um9vdH0gKi8gKGRvbSk7XG59XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAnZm9vdGVyX19jb250cm9sIGh5ZHJhdGVkJyxcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eTouOCFpbXBvcnRhbnRgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGludGVybmFsID0gZ2V0TmVzdGVkU2hhZG93Um9vdChbXCJhcHBsZS10di1wbHVzLXBsYXllclwiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYW1wLXZpZGVvLXBsYXllci1pbnRlcm5hbFwiXSk7XG4gICAgaWYgKCFpbnRlcm5hbCkgcmV0dXJuO1xuICAgIGNvbnN0IGZ1bGxzY3JlZW5CdXR0b24gPSBpbnRlcm5hbC5xdWVyeVNlbGVjdG9yKFwiYW1wLXBsYXliYWNrLWNvbnRyb2xzLWZ1bGwtc2NyZWVuXCIpO1xuICAgIGlmICghZnVsbHNjcmVlbkJ1dHRvbikgcmV0dXJuO1xuICAgIHJldHVybiBmdWxsc2NyZWVuQnV0dG9uLnBhcmVudEVsZW1lbnQ7XG4gIH0sXG4gIGJ1dHRvblN0eWxlOiBgdHJhbnNpdGlvbjpvcGFjaXR5IC4xNXM7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouOWAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgdmlkZW8gPSBnZXROZXN0ZWRTaGFkb3dSb290KFtcImFwcGxlLXR2LXBsdXMtcGxheWVyXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbXAtdmlkZW8tcGxheWVyLWludGVybmFsXCIsIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbXAtdmlkZW8tcGxheWVyXCJdKTtcbiAgICBpZiAoIXZpZGVvKSByZXR1cm47XG4gICAgcmV0dXJuIHZpZGVvLnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgZ2V0UmVzb3VyY2UgfSBmcm9tICcuL2NvbW1vbi5qcydcblxuLyoqXG4gKiBJbml0aWFsaXNlcyBjYWNoaW5nIGZvciBidXR0b24sIHZpZGVvLCBhbmQgY2FwdGlvbiBlbGVtZW50c1xuICovXG5leHBvcnQgY29uc3QgaW5pdGlhbGlzZUNhY2hlcyA9IGZ1bmN0aW9uKCkge1xuXG4gIC8vIFJldHVybiBhIHVuaXF1ZSBpZFxuICBsZXQgdW5pcXVlSWRDb3VudGVyID0gMDtcbiAgY29uc3QgLyoqIGZ1bmN0aW9uKCk6c3RyaW5nICovIHVuaXF1ZUlkID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdQaVBlcl8nICsgdW5pcXVlSWRDb3VudGVyKys7XG4gIH07XG5cbiAgLyoqXG4gICAqIFdyYXBzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVsZW1lbnQgdG8gcHJvdmlkZSBmYXN0ZXIgbG9va3VwcyBieSBpZFxuICAgKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKGJvb2xlYW49KTo/RWxlbWVudH0gZWxlbWVudEZ1bmN0aW9uXG4gICAqIEByZXR1cm4ge2Z1bmN0aW9uKGJvb2xlYW49KTo/RWxlbWVudH0gXG4gICAqL1xuICBjb25zdCBjYWNoZUVsZW1lbnRXcmFwcGVyID0gZnVuY3Rpb24oZWxlbWVudEZ1bmN0aW9uKSB7XG4gICAgbGV0IC8qKiA/c3RyaW5nICovIGNhY2hlZEVsZW1lbnRJZCA9IG51bGw7XG5cbiAgICByZXR1cm4gLyoqIGZ1bmN0aW9uKCk6P0VsZW1lbnQgKi8gZnVuY3Rpb24oLyoqIGJvb2xlYW49ICovIGJ5cGFzc0NhY2hlKSB7XG5cbiAgICAgIC8vIFJldHVybiBlbGVtZW50IGJ5IGlkIGlmIHBvc3NpYmxlXG4gICAgICBjb25zdCBjYWNoZWRFbGVtZW50ID0gY2FjaGVkRWxlbWVudElkID8gXG4gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FjaGVkRWxlbWVudElkKSA6IG51bGw7XG4gICAgICBpZiAoY2FjaGVkRWxlbWVudCAmJiAhYnlwYXNzQ2FjaGUpIHJldHVybiBjYWNoZWRFbGVtZW50O1xuXG4gICAgICAvLyBDYWxsIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uIHRvIGdldCB0aGUgZWxlbWVudFxuICAgICAgY29uc3QgdW5jYWNoZWRFbGVtZW50ID0gZWxlbWVudEZ1bmN0aW9uKCk7XG4gICAgICBpZiAodW5jYWNoZWRFbGVtZW50KSB7XG5cbiAgICAgICAgLy8gU2F2ZSB0aGUgbmF0aXZlIGlkIG90aGVyd2lzZSBhc3NpZ24gYSB1bmlxdWUgaWRcbiAgICAgICAgaWYgKCF1bmNhY2hlZEVsZW1lbnQuaWQpIHVuY2FjaGVkRWxlbWVudC5pZCA9IHVuaXF1ZUlkKCk7XG4gICAgICAgIGNhY2hlZEVsZW1lbnRJZCA9IHVuY2FjaGVkRWxlbWVudC5pZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmNhY2hlZEVsZW1lbnQ7XG4gICAgfTtcbiAgfTtcblxuICAvLyBXcmFwIHRoZSBidXR0b24sIHZpZGVvLCBhbmQgY2FwdGlvbiBlbGVtZW50c1xuICBjb25zdCBjdXJyZW50UmVzb3VyY2UgPSBnZXRSZXNvdXJjZSgpO1xuICBjdXJyZW50UmVzb3VyY2UuYnV0dG9uUGFyZW50ID0gY2FjaGVFbGVtZW50V3JhcHBlcihjdXJyZW50UmVzb3VyY2UuYnV0dG9uUGFyZW50KTtcbiAgY3VycmVudFJlc291cmNlLnZpZGVvRWxlbWVudCA9IGNhY2hlRWxlbWVudFdyYXBwZXIoY3VycmVudFJlc291cmNlLnZpZGVvRWxlbWVudCk7XG4gIGlmIChjdXJyZW50UmVzb3VyY2UuY2FwdGlvbkVsZW1lbnQpIHtcbiAgICBjdXJyZW50UmVzb3VyY2UuY2FwdGlvbkVsZW1lbnQgPSBjYWNoZUVsZW1lbnRXcmFwcGVyKGN1cnJlbnRSZXNvdXJjZS5jYXB0aW9uRWxlbWVudCk7XG4gIH1cbn07XG4iLCIvKiogQXV0by1nZW5lcmF0ZWQgZmlsZSAqKi9cblxuaW1wb3J0ICogYXMgcjEgZnJvbSBcIi4vOW5vdy5qc1wiO1xuaW1wb3J0ICogYXMgcjIgZnJvbSBcIi4vYWt0dWFsbmUuanNcIjtcbmltcG9ydCAqIGFzIHIzIGZyb20gXCIuL2FtYXpvbi5qc1wiO1xuaW1wb3J0ICogYXMgcjQgZnJvbSBcIi4vYXBwbGUuanNcIjtcbmltcG9ydCAqIGFzIHI1IGZyb20gXCIuL2JiYy5qc1wiO1xuaW1wb3J0ICogYXMgcjYgZnJvbSBcIi4vY2Vza2F0ZWxldml6ZS5qc1wiO1xuaW1wb3J0ICogYXMgcjcgZnJvbSBcIi4vY3J1bmNoeXJvbGwuanNcIjtcbmltcG9ydCAqIGFzIHI4IGZyb20gXCIuL2N1cmlvc2l0eXN0cmVhbS5qc1wiO1xuaW1wb3J0ICogYXMgcjkgZnJvbSBcIi4vZGF6bi5qc1wiO1xuaW1wb3J0ICogYXMgcjEwIGZyb20gXCIuL2Rpc25leXBsdXMuanNcIjtcbmltcG9ydCAqIGFzIHIxMSBmcm9tIFwiLi9lc3BuLmpzXCI7XG5pbXBvcnQgKiBhcyByMTIgZnJvbSBcIi4vZXVyb3Nwb3J0cGxheWVyLmpzXCI7XG5pbXBvcnQgKiBhcyByMTMgZnJvbSBcIi4vZnVib3R2LmpzXCI7XG5pbXBvcnQgKiBhcyByMTQgZnJvbSBcIi4vZ2lhbnRib21iLmpzXCI7XG5pbXBvcnQgKiBhcyByMTUgZnJvbSBcIi4vaHVsdS5qc1wiO1xuaW1wb3J0ICogYXMgcjE2IGZyb20gXCIuL2xpdHRsZXRoaW5ncy5qc1wiO1xuaW1wb3J0ICogYXMgcjE3IGZyb20gXCIuL21hc2hhYmxlLmpzXCI7XG5pbXBvcnQgKiBhcyByMTggZnJvbSBcIi4vbWV0YWNhZmUuanNcIjtcbmltcG9ydCAqIGFzIHIxOSBmcm9tIFwiLi9taXhlci5qc1wiO1xuaW1wb3J0ICogYXMgcjIwIGZyb20gXCIuL21sYi5qc1wiO1xuaW1wb3J0ICogYXMgcjIxIGZyb20gXCIuL25ldGZsaXguanNcIjtcbmltcG9ydCAqIGFzIHIyMiBmcm9tIFwiLi9vY3MuanNcIjtcbmltcG9ydCAqIGFzIHIyMyBmcm9tIFwiLi9vcGVubG9hZC5qc1wiO1xuaW1wb3J0ICogYXMgcjI0IGZyb20gXCIuL3Bhbm9wdG8uanNcIjtcbmltcG9ydCAqIGFzIHIyNSBmcm9tIFwiLi9wYnMuanNcIjtcbmltcG9ydCAqIGFzIHIyNiBmcm9tIFwiLi9wZXJpc2NvcGUuanNcIjtcbmltcG9ydCAqIGFzIHIyNyBmcm9tIFwiLi9wbGV4LmpzXCI7XG5pbXBvcnQgKiBhcyByMjggZnJvbSBcIi4vc2V6bmFtLmpzXCI7XG5pbXBvcnQgKiBhcyByMjkgZnJvbSBcIi4vc3RyZWFtYWJsZS5qc1wiO1xuaW1wb3J0ICogYXMgcjMwIGZyb20gXCIuL3RlZC5qc1wiO1xuaW1wb3J0ICogYXMgcjMxIGZyb20gXCIuL3RoZW9uaW9uLmpzXCI7XG5pbXBvcnQgKiBhcyByMzIgZnJvbSBcIi4vdHdpdGNoLmpzXCI7XG5pbXBvcnQgKiBhcyByMzMgZnJvbSBcIi4vdWRlbXkuanNcIjtcbmltcG9ydCAqIGFzIHIzNCBmcm9tIFwiLi91c3RyZWFtLmpzXCI7XG5pbXBvcnQgKiBhcyByMzUgZnJvbSBcIi4vdmV2by5qc1wiO1xuaW1wb3J0ICogYXMgcjM2IGZyb20gXCIuL3ZpY2UuanNcIjtcbmltcG9ydCAqIGFzIHIzNyBmcm9tIFwiLi92aWQuanNcIjtcbmltcG9ydCAqIGFzIHIzOCBmcm9tIFwiLi92aWVydmlqZnplcy5qc1wiO1xuaW1wb3J0ICogYXMgcjM5IGZyb20gXCIuL3ZrLmpzXCI7XG5pbXBvcnQgKiBhcyByNDAgZnJvbSBcIi4vdnJ0LmpzXCI7XG5pbXBvcnQgKiBhcyByNDEgZnJvbSBcIi4vdnJ2LmpzXCI7XG5pbXBvcnQgKiBhcyByNDIgZnJvbSBcIi4veWVsb3BsYXkuanNcIjtcbmltcG9ydCAqIGFzIHI0MyBmcm9tIFwiLi95b3V0dWJlLmpzXCI7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZXMgPSB7fTtcblxucmVzb3VyY2VzW3IxLmRvbWFpbl0gPSByMS5yZXNvdXJjZTtcbnJlc291cmNlc1tyMi5kb21haW5dID0gcjIucmVzb3VyY2U7XG5yZXNvdXJjZXNbJ2FtYXpvbiddID0gcjMucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjQuZG9tYWluXSA9IHI0LnJlc291cmNlO1xucmVzb3VyY2VzW3I1LmRvbWFpbl0gPSByNS5yZXNvdXJjZTtcbnJlc291cmNlc1tyNi5kb21haW5dID0gcjYucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjcuZG9tYWluXSA9IHI3LnJlc291cmNlO1xucmVzb3VyY2VzW3I4LmRvbWFpbl0gPSByOC5yZXNvdXJjZTtcbnJlc291cmNlc1tyOS5kb21haW5dID0gcjkucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjEwLmRvbWFpbl0gPSByMTAucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjExLmRvbWFpbl0gPSByMTEucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjEyLmRvbWFpbl0gPSByMTIucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjEzLmRvbWFpbl0gPSByMTMucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjE0LmRvbWFpbl0gPSByMTQucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjE1LmRvbWFpbl0gPSByMTUucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjE2LmRvbWFpbl0gPSByMTYucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjE3LmRvbWFpbl0gPSByMTcucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjE4LmRvbWFpbl0gPSByMTgucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjE5LmRvbWFpbl0gPSByMTkucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjIwLmRvbWFpbl0gPSByMjAucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjIxLmRvbWFpbl0gPSByMjEucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjIyLmRvbWFpbl0gPSByMjIucmVzb3VyY2U7XG5yZXNvdXJjZXNbJ29wZW5sb2FkJ10gPSByMjMucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjI0LmRvbWFpbl0gPSByMjQucmVzb3VyY2U7XG5yZXNvdXJjZXNbcjI1LmRvbWFpbl0gPSByMjUucmVzb3VyY2U7XG5yZXNvdXJjZXNbJ3BlcmlzY29wZSddID0gcjI2LnJlc291cmNlO1xucmVzb3VyY2VzW3IyNy5kb21haW5dID0gcjI3LnJlc291cmNlO1xucmVzb3VyY2VzWydzZXpuYW0nXSA9IHIyOC5yZXNvdXJjZTtcbnJlc291cmNlc1tyMjkuZG9tYWluXSA9IHIyOS5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzAuZG9tYWluXSA9IHIzMC5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzEuZG9tYWluXSA9IHIzMS5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzIuZG9tYWluXSA9IHIzMi5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzMuZG9tYWluXSA9IHIzMy5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzQuZG9tYWluXSA9IHIzNC5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzUuZG9tYWluXSA9IHIzNS5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzYuZG9tYWluXSA9IHIzNi5yZXNvdXJjZTtcbnJlc291cmNlc1tyMzcuZG9tYWluXSA9IHIzNy5yZXNvdXJjZTtcbnJlc291cmNlc1sndmlqZiddID0gcjM4LnJlc291cmNlO1xucmVzb3VyY2VzW3IzOS5kb21haW5dID0gcjM5LnJlc291cmNlO1xucmVzb3VyY2VzW3I0MC5kb21haW5dID0gcjQwLnJlc291cmNlO1xucmVzb3VyY2VzW3I0MS5kb21haW5dID0gcjQxLnJlc291cmNlO1xucmVzb3VyY2VzW3I0Mi5kb21haW5dID0gcjQyLnJlc291cmNlO1xucmVzb3VyY2VzWyd5b3V0dWJlJ10gPSByNDMucmVzb3VyY2U7XG5cbnJlc291cmNlc1sncHJpbWV2aWRlbyddID0gcmVzb3VyY2VzWydhbWF6b24nXTtcbnJlc291cmNlc1snb2xvYWQnXSA9IHJlc291cmNlc1snb3BlbmxvYWQnXTtcbnJlc291cmNlc1sncHNjcCddID0gcmVzb3VyY2VzWydwZXJpc2NvcGUnXTtcbnJlc291cmNlc1snc3RyZWFtJ10gPSByZXNvdXJjZXNbJ3Nlem5hbSddO1xucmVzb3VyY2VzWyd2aWVyJ10gPSByZXNvdXJjZXNbJ3ZpamYnXTtcbnJlc291cmNlc1snemVzJ10gPSByZXNvdXJjZXNbJ3ZpamYnXTtcbnJlc291cmNlc1sneW91dHUnXSA9IHJlc291cmNlc1sneW91dHViZSddO1xuIiwiaW1wb3J0IHsgZ2V0UmVzb3VyY2UgfSBmcm9tICcuLy4uL2NvbW1vbi5qcydcblxuZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICc5bm93JztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICd2anMtY29udHJvbCB2anMtYnV0dG9uJyxcbiAgYnV0dG9uSG92ZXJTdHlsZTogYGZpbHRlcjpicmlnaHRuZXNzKDUwJSkgc2VwaWEoMSkgaHVlLXJvdGF0ZSgxNjdkZWcpIHNhdHVyYXRlKDI1MyUpIGJyaWdodG5lc3MoMTA0JSlgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvcignLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wnKTtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnZqcy1jb250cm9sLWJhcicpO1xuICB9LFxuICBidXR0b25TY2FsZTogMC43LFxuICBidXR0b25TdHlsZTogYG9yZGVyOjk5OTk5OTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6NDRweDt3aWR0aDo0MHB4YCxcbiAgY2FwdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGUgPSBnZXRSZXNvdXJjZSgpLnZpZGVvRWxlbWVudCgpO1xuICAgIHJldHVybiBlICYmIGUucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCcudmpzLXRleHQtdHJhY2stZGlzcGxheScpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlby52anMtdGVjaCcpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnYWt0dWFsbmUnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ2p3LWljb24ganctaWNvbi1pbmxpbmUganctYnV0dG9uLWNvbG9yIGp3LXJlc2V0IGp3LWljb24tbG9nbycsXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSG92ZXJTdHlsZTogYGZpbHRlcjpicmlnaHRuZXNzKDUwJSkgc2VwaWEoMSkgaHVlLXJvdGF0ZSgzMTFkZWcpIHNhdHVyYXRlKDU1MCUpIGJyaWdodG5lc3MoNDklKSFpbXBvcnRhbnRgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuanctY29udHJvbGJhci1yaWdodC1ncm91cCcpO1xuICB9LFxuICBidXR0b25TdHlsZTogYHdpZHRoOjM4cHg7ZmlsdGVyOmJyaWdodG5lc3MoODAlKWAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvLmp3LXZpZGVvJyk7XG4gIH0sXG59O1xuIiwiZXhwb3J0IGNvbnN0IGRvbWFpbiA9IFsnYW1hem9uJywgJ3ByaW1ldmlkZW8nXTtcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5xdWVyeVNlbGVjdG9yKCcuZnVsbHNjcmVlbkJ1dHRvbldyYXBwZXInKTtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R2LXdlYi1wbGF5ZXInKTtcbiAgICByZXR1cm4gZSAmJiBlLnF1ZXJ5U2VsZWN0b3IoJy5oaWRlYWJsZVRvcEJ1dHRvbnMnKTtcbiAgfSxcbiAgYnV0dG9uU3R5bGU6IGBwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjhweDt3aWR0aDozdnc7aGVpZ2h0OjJ2dzttaW4td2lkdGg6MzVweDttaW4taGVpZ2h0OjI0cHg7Ym9yZGVyOjA7cGFkZGluZzowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7b3BhY2l0eTouOGAsXG4gIGNhcHRpb25FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R2LXdlYi1wbGF5ZXInKTtcbiAgICByZXR1cm4gZSAmJiBlLnF1ZXJ5U2VsZWN0b3IoJy5jYXB0aW9ucycpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucmVuZGVyZXJDb250YWluZXInKTtcbiAgICByZXR1cm4gZSAmJiBlLnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvW3dpZHRoPVwiMTAwJVwiXScpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnYmJjJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBudWxsO1xuICB9LFxuICBjYXB0aW9uRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wX3N1YnRpdGxlc0NvbnRhaW5lcicpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWVkaWFDb250YWluZXIgdmlkZW9bc3JjXScpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnY2Vza2F0ZWxldml6ZSc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAndmlkZW9CdXR0b25TaGVsbCBkb250SGlkZUNvbnRyb2xzIGN1cnNvclBvaW50ZXIgZm9jdXNhYmxlQnRuJyxcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgZmlsdGVyOmJyaWdodG5lc3MoNTAlKSBzZXBpYSgxKSBodWUtcm90YXRlKDE3MGRlZykgc2F0dXJhdGUoMjUwJSkgYnJpZ2h0bmVzcyg5MCUpYCxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z1bGxTY3JlZW5TaGVsbCcpO1xuICB9LFxuICBidXR0b25TY2FsZTogMS4yLFxuICBidXR0b25TdHlsZTogYHdpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2tgLFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndmlkZW9CdXR0b25zJyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWRlbycpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnY3J1bmNoeXJvbGwnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ3Zqcy1jb250cm9sIHZqcy1idXR0b24nLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvblNjYWxlOiAwLjYsXG4gIGJ1dHRvblN0eWxlOiBgcG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTAwcHg7b3BhY2l0eTouNzU7Y3Vyc29yOnBvaW50ZXJgLFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmpzLWNvbnRyb2wtYmFyJyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbGF5ZXJfaHRtbDVfYXBpJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgQnJvd3NlciwgZ2V0QnJvd3NlciwgZ2V0UmVzb3VyY2UgfSBmcm9tICcuLy4uL2NvbW1vbi5qcydcblxuZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICdjdXJpb3NpdHlzdHJlYW0nO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ3Zqcy1jb250cm9sIHZqcy1idXR0b24nLFxuICBidXR0b25EaWRBcHBlYXI6IGZ1bmN0aW9uKCkge1xuICAgIGlmIChnZXRCcm93c2VyKCkgIT0gQnJvd3Nlci5TQUZBUkkpIHJldHVybjtcbiAgICBjb25zdCB2aWRlbyA9IC8qKiBAdHlwZSB7P0hUTUxWaWRlb0VsZW1lbnR9ICovIChnZXRSZXNvdXJjZSgpLnZpZGVvRWxlbWVudCgpKTtcbiAgICBjb25zdCB2aWRlb0NvbnRhaW5lciA9IHZpZGVvLnBhcmVudEVsZW1lbnQ7XG4gICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0YmVnaW5mdWxsc2NyZWVuJywgZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmZsb29yKDEwMCAqIHZpZGVvLnZpZGVvSGVpZ2h0IC8gdmlkZW8udmlkZW9XaWR0aCkgKyAndncnO1xuICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQgKyAncHgnO1xuICAgICAgdmlkZW9Db250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGhlaWdodCwgJ2ltcG9ydGFudCcpO1xuICAgICAgdmlkZW9Db250YWluZXIuc3R5bGUuc2V0UHJvcGVydHkoJ21heC1oZWlnaHQnLCBtYXhIZWlnaHQpO1xuICAgIH0pO1xuICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGVuZGZ1bGxzY3JlZW4nLCBmdW5jdGlvbigpIHtcbiAgICAgIHZpZGVvQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdoZWlnaHQnKTtcbiAgICAgIHZpZGVvQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdtYXgtaGVpZ2h0Jyk7XG4gICAgfSk7XG4gIH0sXG4gIGJ1dHRvbkhvdmVyU3R5bGU6IGBvcGFjaXR5OjEhaW1wb3J0YW50YCxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tcGxheWVyJyk7XG4gICAgcmV0dXJuIGUgJiYgZS5xdWVyeVNlbGVjdG9yKCcudmpzLWNvbnRyb2wtYmFyJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjcsXG4gIGJ1dHRvblN0eWxlOiBgb3BhY2l0eTouODtjdXJzb3I6cG9pbnRlcmAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLXBsYXllcl9odG1sNV9hcGknKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ2Rhem4nO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvblN0eWxlOiAoYFxuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwLjVyZW07XG4gICAgei1pbmRleDogMTtcbiAgYCksXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gIFx0Ly8gVGhlIExpdmUgaW5kaWNhdG9yIG1pZ2h0IG1vdmUvY292ZXIgdGhlIFBpUCBidXR0b24sIGp1c3QgcGxhY2UgdGhlIFBpUCBidXR0b24gYmVmb3JlIGl0XG4gIFx0Y29uc3QgbGl2ZUluZGljYXRvciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltkYXRhLXRlc3QtaWRePVwiUExBWUVSX0xJVkVfSU5ESUNBVE9SXCJdJyk7XG4gIFx0aWYgKGxpdmVJbmRpY2F0b3IpIHtcbiAgICAgIHJldHVybiBsaXZlSW5kaWNhdG9yO1xuICBcdH1cbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtdGVzdC1pZF49XCJQTEFZRVJfQkFSXCJdJyk7XHRcbiAgfSxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtdGVzdC1pZF49XCJQTEFZRVJfU09MVVRJT05cIl0gdmlkZW8nKTtcbiAgfVxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnZGlzbmV5cGx1cyc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAnY29udHJvbC1pY29uLWJ0bicsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mdWxsc2NyZWVuLWljb24nKTtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRyb2xzX19yaWdodCcpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlb1tzcmNdJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgZ2V0QnV0dG9uIH0gZnJvbSAnLi8uLi9idXR0b24uanMnXG5cbmV4cG9ydCBjb25zdCBkb21haW4gPSAnZXNwbic7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAnbWVkaWEtaWNvbicsXG4gIGJ1dHRvbkRpZEFwcGVhcjogZnVuY3Rpb24oKSB7XG4gICAgLy8gR2V0IGxvY2FsaXplZCBidXR0b24gdGl0bGUgYW5kIGhpZGUgZGVmYXVsdCB0b29sdGlwXG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnV0dG9uKCk7XG4gICAgY29uc3QgLyoqIHN0cmluZyAqLyB0aXRsZSA9IGJ1dHRvbi50aXRsZTtcbiAgICBidXR0b24udGl0bGUgPSAnJztcblxuICAgIC8vIENyZWF0ZSBzdHlsaXplZCB0b29sdGlwIGFuZCBhZGQgdG8gRE9NXG4gICAgY29uc3QgdG9vbHRpcCA9IC8qKiBAdHlwZSB7SFRNTEVsZW1lbnR9ICovIChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgdG9vbHRpcC5jbGFzc05hbWUgPSAnY29udHJvbC10b29sdGlwJztcbiAgICB0b29sdGlwLnN0eWxlLmNzc1RleHQgPSBgcmlnaHQ6MDtib3R0b206MzVweDt0cmFuc2l0aW9uOmJvdHRvbSAuMnMgZWFzZS1vdXRgO1xuICAgIHRvb2x0aXAudGV4dENvbnRlbnQgPSB0aXRsZTtcbiAgICBidXR0b24uYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG5cbiAgICAvLyBEaXNwbGF5IHN0eWxpemVkIHRvb2x0aXAgb24gbW91c2VvdmVyXG4gICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKCkge1xuICAgICAgYnV0dG9uLmNsYXNzTGlzdC5hZGQoJ2Rpc3BsYXlpbmcnKTtcbiAgICAgIHRvb2x0aXAuc3R5bGUuYm90dG9tID0gJzc1cHgnO1xuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZ1bmN0aW9uKCkge1xuICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2Rpc3BsYXlpbmcnKTtcbiAgICAgIHRvb2x0aXAuc3R5bGUuYm90dG9tID0gJzM1cHgnO1xuICAgIH0pO1xuICB9LFxuICBidXR0b25FbGVtZW50VHlwZTogJ2RpdicsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250cm9scy1yaWdodC1ob3Jpem9udGFsJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjcsXG4gIGJ1dHRvblN0eWxlOiBgd2lkdGg6NDRweDtoZWlnaHQ6NDRweDtvcmRlcjo0YCxcbiAgY2FwdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGV4dC10cmFjay1kaXNwbGF5Jyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvLmpzLXZpZGVvLWNvbnRlbnQnKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ2V1cm9zcG9ydHBsYXllcic7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250cm9scy1iYXItcmlnaHQtc2VjdGlvbicpO1xuICB9LFxuICBidXR0b25TY2FsZTogMC45LFxuICBidXR0b25TdHlsZTogYGhlaWdodDoxMDAlO21hcmdpbi1yaWdodDoxNXB4O29wYWNpdHk6Ljg7Y3Vyc29yOnBvaW50ZXJgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmlkZW8tcGxheWVyX19zY3JlZW4nKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ2Z1Ym8nO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNzcy1qYTd5azcnKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDEuMjUsXG4gIGJ1dHRvblN0eWxlOiBgaGVpZ2h0OjI0cHg7d2lkdGg6MjVweDttYXJnaW46OHB4IDEwcHggMTJweDtjdXJzb3I6cG9pbnRlcmAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaXRtb3ZpbnBsYXllci12aWRlby12aWRlbycpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnZ2lhbnRib21iJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdhdi1jaHJvbWUtY29udHJvbCcsXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50LnF1ZXJ5U2VsZWN0b3IoJy5qcy12aWQtcGluLXdyYXAnKS5uZXh0U2libGluZztcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmF2LWNvbnRyb2xzLS1yaWdodCcpO1xuICB9LFxuICBidXR0b25TY2FsZTogMC43LFxuICBidXR0b25TdHlsZTogYGhlaWdodDoxMDAlO3dpZHRoOjMwcHg7b3BhY2l0eToxO2N1cnNvcjpwb2ludGVyYCxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW9baWRePVwidmlkZW9fanMtdmlkLXBsYXllclwiXScpO1xuICB9XG59O1xuIiwiaW1wb3J0IHsgZ2V0QnV0dG9uIH0gZnJvbSAnLi8uLi9idXR0b24uanMnXG5cbmV4cG9ydCBjb25zdCBkb21haW4gPSAnaHVsdSc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uRGlkQXBwZWFyOiBmdW5jdGlvbigpIHtcbiAgICBcbiAgICAvLyBHZXQgbG9jYWxpemVkIGJ1dHRvbiB0aXRsZSBhbmQgaGlkZSBkZWZhdWx0IHRvb2x0aXBcbiAgICBjb25zdCBidXR0b24gPSBnZXRCdXR0b24oKTtcbiAgICBjb25zdCAvKiogc3RyaW5nICovIHRpdGxlID0gYnV0dG9uLnRpdGxlO1xuICAgIGJ1dHRvbi50aXRsZSA9ICcnO1xuICAgIFxuICAgIC8vIENyZWF0ZSBzdHlsaXplZCB0b29sdGlwIGFuZCBhZGQgdG8gRE9NXG4gICAgY29uc3QgdG9vbHRpcCA9IC8qKiBAdHlwZSB7SFRNTEVsZW1lbnR9ICovIChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgdG9vbHRpcC5jbGFzc05hbWUgPSAnYnV0dG9uLXRvb2wtdGlwcyc7XG4gICAgdG9vbHRpcC5zdHlsZS5jc3NUZXh0ID0gYHdoaXRlLXNwYWNlOm5vd3JhcDtwYWRkaW5nOjAgNXB4O3JpZ2h0OjBgO1xuICAgIHRvb2x0aXAudGV4dENvbnRlbnQgPSB0aXRsZS50b1VwcGVyQ2FzZSgpO1xuICAgIGJ1dHRvbi5hcHBlbmRDaGlsZCh0b29sdGlwKTtcbiAgICBcbiAgICAvLyBEaXNwbGF5IHN0eWxpemVkIHRvb2x0aXAgb24gbW91c2VvdmVyXG4gICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIGZ1bmN0aW9uKCkge1xuICAgICAgdG9vbHRpcC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB9KTtcbiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmdW5jdGlvbigpIHtcbiAgICAgIHRvb2x0aXAuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9KTtcbiAgfSxcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb250cm9sc19fdmlldy1tb2RlLWJ1dHRvbicpO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZGFzaC1wbGF5ZXItY29udGFpbmVyIC5jb250cm9sc19fbWVudXMtcmlnaHQnKTtcbiAgfSxcbiAgYnV0dG9uU3R5bGU6IGBvcGFjaXR5Oi43O2N1cnNvcjpwb2ludGVyO3dpZHRoOjI0cHhgLFxuICBjYXB0aW9uRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jbG9zZWQtY2FwdGlvbi1vdXRiYW5kJyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy52aWRlby1wbGF5ZXInKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ2xpdHRsZXRoaW5ncyc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAnanctaWNvbiBqdy1pY29uLWlubGluZSBqdy1idXR0b24tY29sb3IganctcmVzZXQganctaWNvbi1sb2dvJyxcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuanctY29udHJvbGJhci1yaWdodC1ncm91cCcpO1xuICB9LFxuICBidXR0b25TdHlsZTogYHdpZHRoOjM4cHhgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlby5qdy12aWRlbycpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnbWFzaGFibGUnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ2p3LWljb24ganctaWNvbi1pbmxpbmUganctYnV0dG9uLWNvbG9yIGp3LXJlc2V0IGp3LWljb24tbG9nbycsXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmp3LWNvbnRyb2xiYXItcmlnaHQtZ3JvdXAnKTtcbiAgfSxcbiAgYnV0dG9uU3R5bGU6IGB0b3A6LTJweDt3aWR0aDozOHB4YCxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8uanctdmlkZW8nKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ21ldGFjYWZlJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25FbGVtZW50VHlwZTogJ2RpdicsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwbGF5ZXJfcGxhY2UgLnRyYXknKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuODUsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwbGF5ZXJfcGxhY2UgdmlkZW8nKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ21peGVyJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdjb250cm9sJyxcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4wOClgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkLnByZXZpb3VzU2libGluZztcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRyb2wtY29udGFpbmVyIC50b29sYmFyIC5yaWdodCcpO1xuICB9LFxuICBidXR0b25TY2FsZTogMC42NSxcbiAgYnV0dG9uU3R5bGU6IGB3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyYCxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRyb2wtY29udGFpbmVyICsgdmlkZW8nKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ21sYic7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uU2NhbGU6IDAuNyxcbiAgYnV0dG9uU3R5bGU6IGBib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtmaWx0ZXI6YnJpZ2h0bmVzcyg4MCUpYCxcbiAgYnV0dG9uSG92ZXJTdHlsZTogYGZpbHRlcjpicmlnaHRuZXNzKDEyMCUpIWltcG9ydGFudGAsXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ib3R0b20tY29udHJvbHMtcmlnaHQnKTtcbiAgfSxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1sYnR2LW1lZGlhLXBsYXllciB2aWRlbycpO1xuICB9LFxufTtcbiIsImltcG9ydCB7IGdldFJlc291cmNlIH0gZnJvbSAnLi8uLi9jb21tb24uanMnXG5cbmV4cG9ydCBjb25zdCBkb21haW4gPSAnbmV0ZmxpeCc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAndG91Y2hhYmxlIFBsYXllckNvbnRyb2xzLS1jb250cm9sLWVsZW1lbnQgbmZwLWJ1dHRvbi1jb250cm9sIGRlZmF1bHQtY29udHJvbC1idXR0b24nLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgdHJhbnNmb3JtOnNjYWxlKDEuMilgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuUGxheWVyQ29udHJvbHNOZW9fX2J1dHRvbi1jb250cm9sLXJvdycpOyBcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuNyxcbiAgYnV0dG9uU3R5bGU6IGBtaW4td2lkdGg6Mi4zZW1gLFxuICBjYXB0aW9uRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgZSA9IGdldFJlc291cmNlKCkudmlkZW9FbGVtZW50KCk7XG4gICAgcmV0dXJuIGUgJiYgZS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wbGF5ZXItdGltZWR0ZXh0Jyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5WaWRlb0NvbnRhaW5lciB2aWRlbycpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAnb2NzJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdmb290ZXItZWx0IGZsdHInLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvcignI3RvZ2dsZVBsYXknKTtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZvb3Rlci1ibG9jazpsYXN0LWNoaWxkJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAxLjIsXG4gIGJ1dHRvblN0eWxlOiBgZGlzcGxheTpibG9jazt3aWR0aDoyNXB4O2hlaWdodDoxOHB4O21hcmdpbi1yaWdodDoxMHB4O21hcmdpbi1ib3R0b206LTEwcHg7cGFkZGluZzowO2JvcmRlcjowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnRgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnTGd5VmlkZW9QbGF5ZXInKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gWydvcGVubG9hZCcsICdvbG9hZCddO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ3Zqcy1jb250cm9sIHZqcy1idXR0b24nLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmpzLWNvbnRyb2wtYmFyJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjYsXG4gIGJ1dHRvblN0eWxlOiBgbGVmdDo1cHg7Y3Vyc29yOnBvaW50ZXJgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb2x2aWRlb19odG1sNV9hcGknKTtcbiAgfSxcbn07XG4iLCJpbXBvcnQgeyBnZXRCdXR0b24gfSBmcm9tICcuLy4uL2J1dHRvbi5qcydcblxuZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICdwYW5vcHRvJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICAgIGJ1dHRvbkNsYXNzTmFtZTogJ21lZGlhLWljb24nLFxuICAgIGJ1dHRvbkRpZEFwcGVhcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBHZXQgbG9jYWxpemVkIGJ1dHRvbiB0aXRsZSBhbmQgaGlkZSBkZWZhdWx0IHRvb2x0aXBcbiAgICAgICAgY29uc3QgYnV0dG9uID0gZ2V0QnV0dG9uKCk7XG4gICAgICAgIGNvbnN0IC8qKiBzdHJpbmcgKi8gdGl0bGUgPSBidXR0b24udGl0bGU7XG4gICAgICAgIGJ1dHRvbi50aXRsZSA9ICcnO1xuXG4gICAgICAgIC8vIENyZWF0ZSBzdHlsaXplZCB0b29sdGlwIGFuZCBhZGQgdG8gRE9NXG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSAvKiogQHR5cGUge0hUTUxFbGVtZW50fSAqLyAoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xuICAgICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdjb250cm9sLXRvb2x0aXAnO1xuICAgICAgICB0b29sdGlwLnN0eWxlLmNzc1RleHQgPSBgcmlnaHQ6MDtib3R0b206MzVweDt0cmFuc2l0aW9uOmJvdHRvbSAuMnMgZWFzZS1vdXRgO1xuICAgICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdGl0bGU7XG4gICAgICAgIGJ1dHRvbi5hcHBlbmRDaGlsZCh0b29sdGlwKTtcblxuICAgICAgICAvLyBEaXNwbGF5IHN0eWxpemVkIHRvb2x0aXAgb24gbW91c2VvdmVyXG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LmFkZCgnZGlzcGxheWluZycpO1xuICAgICAgICAgICAgdG9vbHRpcC5zdHlsZS5ib3R0b20gPSAnNzVweCc7XG4gICAgICAgIH0pO1xuICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnZGlzcGxheWluZycpO1xuICAgICAgICAgICAgdG9vbHRpcC5zdHlsZS5ib3R0b20gPSAnMzVweCc7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICAgIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24gKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgICAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgICB9LFxuICAgIGJ1dHRvblBhcmVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RyYW5zcG9ydENvbnRyb2xzJyk7XG4gICAgfSxcbiAgICBidXR0b25TY2FsZTogMC43LFxuICAgIGJ1dHRvblN0eWxlOiBgd2lkdGg6NDRweDtoZWlnaHQ6NDRweDtvcmRlcjo0YCxcbiAgICAvLyBjYXB0aW9uRWxlbWVudDogZnVuY3Rpb24gKCkge1xuICAgIC8vICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRleHQtdHJhY2stZGlzcGxheScpO1xuICAgIC8vIH0sXG4gICAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbyNwcmltYXJ5VmlkZW8nKTtcbiAgICB9LFxufTtcbiIsImltcG9ydCB7IGdldFJlc291cmNlIH0gZnJvbSAnLi8uLi9jb21tb24uanMnXG5pbXBvcnQgeyB2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlLCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlIH0gZnJvbSAnLi8uLi92aWRlby5qcydcblxuZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICdwYnMnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ2p3LWljb24ganctaWNvbi1pbmxpbmUganctYnV0dG9uLWNvbG9yIGp3LXJlc2V0JyxcbiAgYnV0dG9uRGlkQXBwZWFyOiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBmdWxsc2NyZWVuQnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmp3LWljb24tZnVsbHNjcmVlbicpO1xuICAgIGZ1bGxzY3JlZW5CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgIGNvbnN0IHZpZGVvID0gLyoqIEB0eXBlIHs/SFRNTFZpZGVvRWxlbWVudH0gKi8gKGdldFJlc291cmNlKCkudmlkZW9FbGVtZW50KCkpO1xuICAgICAgaWYgKHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pKSB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKTtcbiAgICB9KTtcbiAgfSxcbiAgYnV0dG9uRWxlbWVudFR5cGU6ICdkaXYnLFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qdy1idXR0b24tY29udGFpbmVyJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjYsXG4gIGJ1dHRvblN0eWxlOiBgb3BhY2l0eTouOGAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qdy12aWRlbycpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSBbJ3BlcmlzY29wZScsICdwc2NwJ107XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAnUGlsbCBQaWxsLS13aXRoSWNvbicsXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnc3BhbicsXG4gIGJ1dHRvbkhvdmVyU3R5bGU6IGBvcGFjaXR5Oi44IWltcG9ydGFudDtmaWx0ZXI6YnJpZ2h0bmVzcygxMjUlKSFpbXBvcnRhbnRgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvcignLlNoYXJlQnJvYWRjYXN0JykubmV4dFNpYmxpbmc7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5WaWRlb092ZXJsYXlSZWRlc2lnbi1Cb3R0b21CYXItUmlnaHQnKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuNixcbiAgYnV0dG9uU3R5bGU6IGBvcGFjaXR5Oi41O2ZpbHRlcjpicmlnaHRuZXNzKDIwMCUpYCxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLlZpZGVvIHZpZGVvJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZyB9IGZyb20gJy4vLi4vY29tbW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgZG9tYWluID0gJ3BsZXgnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkRpZEFwcGVhcjogZnVuY3Rpb24oKSB7XG4gICAgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZygpO1xuICB9LFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltjbGFzc149XCJGdWxsUGxheWVyVG9wQ29udHJvbHMtdG9wQ29udHJvbHNcIl0nKTtcbiAgICByZXR1cm4gLyoqIEB0eXBlIHs/RWxlbWVudH0gKi8gKGUgJiYgZS5sYXN0Q2hpbGQpO1xuICB9LFxuICBidXR0b25TY2FsZTogMixcbiAgYnV0dG9uU3R5bGU6IGBwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTNweDt3aWR0aDozMHB4O3BhZGRpbmc6MTBweDtib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtvcGFjaXR5Oi43O291dGxpbmU6MDt0ZXh0LXNoYWRvdzowIDAgNHB4IHJnYmEoMCwwLDAsLjQ1KWAsXG4gIGNhcHRpb25FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxpYmphc3Mtc3VicycpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlb1tjbGFzc149XCJIVE1MTWVkaWEtbWVkaWFFbGVtZW50XCJdJyk7XG4gIH0sXG59O1xuIiwiZXhwb3J0IGNvbnN0IGRvbWFpbiA9IFsnc2V6bmFtJywgJ3N0cmVhbSddO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ3N6bnAtdWktd2lkZ2V0LWJveCcsXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSG92ZXJTdHlsZTogYHRyYW5zZm9ybTpzY2FsZSgxLjA1KWAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zem5wLXVpLWN0cmwtcGFuZWwtbGF5b3V0LXdyYXBwZXInKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuNzUsXG4gIGJ1dHRvblN0eWxlOiBgY3Vyc29yOnBvaW50ZXJgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc3pucC11aS10ZWNoLXZpZGVvLXdyYXBwZXIgdmlkZW8nKTtcbiAgfSxcbn07XG4iLCJpbXBvcnQgeyBnZXRCdXR0b24gfSBmcm9tICcuLy4uL2J1dHRvbi5qcydcblxuZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICdzdHJlYW1hYmxlJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25EaWRBcHBlYXI6IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IHByb2dyZXNzQmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXllci1wcm9ncmVzcycpO1xuICAgIGNvbnN0IHByb2dyZXNzQmFyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwcm9ncmVzc0Jhcik7XG4gICAgZ2V0QnV0dG9uKCkuc3R5bGUucmlnaHQgPSBwcm9ncmVzc0JhclN0eWxlLnJpZ2h0O1xuICAgIHByb2dyZXNzQmFyLnN0eWxlLnJpZ2h0ID0gKHBhcnNlSW50KHByb2dyZXNzQmFyU3R5bGUucmlnaHQsIDEwKSArIDQwKSArICdweCc7XG4gIH0sXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSG92ZXJTdHlsZTogYG9wYWNpdHk6MSFpbXBvcnRhbnRgLFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGxheWVyLWNvbnRyb2xzLXJpZ2h0Jyk7XG4gIH0sXG4gIGJ1dHRvblN0eWxlOiBgcG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjEwcHg7aGVpZ2h0OjI2cHg7d2lkdGg6MjZweDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5Oi45O2ZpbHRlcjpkcm9wLXNoYWRvdyhyZ2JhKDAsMCwwLC41KSAwIDAgMnB4KWAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWRlby1wbGF5ZXItdGFnJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgZ2V0QnV0dG9uIH0gZnJvbSAnLi8uLi9idXR0b24uanMnXG5cbmV4cG9ydCBjb25zdCBkb21haW4gPSAndGVkJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICd6LWk6MCBwb3M6ciBib3R0b206MCBob3Zlci9iZzp3aGl0ZS43IGItcjouMSBwOjEgY3VyOnAnLFxuICBidXR0b25FbGVtZW50VHlwZTogJ2RpdicsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgcGxheUJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1thcmlhLWNvbnRyb2xzPVwidmlkZW8xXCJdJyk7XG4gICAgcmV0dXJuIHBsYXlCdXR0b24ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB9LFxuICBidXR0b25EaWRBcHBlYXI6IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGltZyA9IGdldEJ1dHRvbigpLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIGltZy5jbGFzc0xpc3QuYWRkKCd3OjInKTtcbiAgICBpbWcuY2xhc3NMaXN0LmFkZCgnaDoyJyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvW2lkXj1cInRlZC1wbGF5ZXItXCJdJyk7XG4gIH1cbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ3RoZW9uaW9uJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdqdy1pY29uIGp3LWljb24taW5saW5lIGp3LWJ1dHRvbi1jb2xvciBqdy1yZXNldCBqdy1pY29uLWxvZ28nLFxuICBidXR0b25FbGVtZW50VHlwZTogJ2RpdicsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5qdy1jb250cm9sYmFyLXJpZ2h0LWdyb3VwJyk7XG4gIH0sXG4gIGJ1dHRvblN0eWxlOiBgdG9wOi0ycHg7bGVmdDoxMHB4O3dpZHRoOjM4cHhgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlby5qdy12aWRlbycpO1xuICB9LFxufTtcbiIsImltcG9ydCB7IGdldFJlc291cmNlIH0gZnJvbSAnLi8uLi9jb21tb24uanMnXG5pbXBvcnQgeyBnZXRCdXR0b24gfSBmcm9tICcuLy4uL2J1dHRvbi5qcydcbmltcG9ydCB7IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUsIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUgfSBmcm9tICcuLy4uL3ZpZGVvLmpzJ1xuXG5leHBvcnQgY29uc3QgZG9tYWluID0gJ3R3aXRjaCc7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAndHctYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cy1tZWRpdW0gdHctYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMtbWVkaXVtIHR3LWJvcmRlci10b3AtbGVmdC1yYWRpdXMtbWVkaXVtIHR3LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzLW1lZGl1bSB0dy1idXR0b24taWNvbiB0dy1idXR0b24taWNvbi0tb3ZlcmxheSB0dy1jb3JlLWJ1dHRvbiB0dy1jb3JlLWJ1dHRvbi0tb3ZlcmxheSB0dy1pbmxpbmUtZmxleCB0dy1yZWxhdGl2ZSB0dy10b29sdGlwLXdyYXBwZXInLFxuICBidXR0b25EaWRBcHBlYXI6IGZ1bmN0aW9uKCkge1xuICAgIC8vIEFkZCB0b29sdGlwXG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnV0dG9uKCk7XG4gICAgY29uc3QgdGl0bGUgPSBidXR0b24udGl0bGU7XG4gICAgYnV0dG9uLnRpdGxlID0gJyc7XG4gICAgY29uc3QgdG9vbHRpcCA9IC8qKiBAdHlwZSB7SFRNTEVsZW1lbnR9ICovIChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG4gICAgdG9vbHRpcC5jbGFzc05hbWUgPSAndHctdG9vbHRpcCB0dy10b29sdGlwLS1hbGlnbi1yaWdodCB0dy10b29sdGlwLS11cCc7XG4gICAgdG9vbHRpcC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSkpO1xuICAgIGJ1dHRvbi5hcHBlbmRDaGlsZCh0b29sdGlwKTtcbiAgICBcbiAgICAvLyBGaXggaXNzdWVzIHdpdGggZnVsbHNjcmVlbiB3aGVuIGFjdGl2YXRlZCB3aGlsZSB2aWRlbyBwbGF5aW5nIFBpY3R1cmUtaW4tUGljdHVyZVxuICAgIGNvbnN0IGZ1bGxzY3JlZW5CdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW2RhdGEtYS10YXJnZXQ9J3BsYXllci1mdWxsc2NyZWVuLWJ1dHRvbiddXCIpO1xuICAgIGlmICghZnVsbHNjcmVlbkJ1dHRvbikgcmV0dXJuO1xuICAgIGZ1bGxzY3JlZW5CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgIGNvbnN0IHZpZGVvID0gLyoqIEB0eXBlIHs/SFRNTFZpZGVvRWxlbWVudH0gKi8gKGdldFJlc291cmNlKCkudmlkZW9FbGVtZW50KCkpO1xuICAgICAgaWYgKHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pKSB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKTtcbiAgICB9KTtcbiAgfSxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBsYXllci1jb250cm9sc19fcmlnaHQtY29udHJvbC1ncm91cCwucGxheWVyLWJ1dHRvbnMtcmlnaHQnKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuOCxcbiAgY2FwdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGxheWVyLWNhcHRpb25zLWNvbnRhaW5lcicpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlb1tzcmNdJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgZ2V0QnV0dG9uIH0gZnJvbSAnLi8uLi9idXR0b24uanMnXG5cbmV4cG9ydCBjb25zdCBkb21haW4gPSAndWRlbXknO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ2J0bicsXG4gIGJ1dHRvbkhvdmVyU3R5bGU6IGBvcGFjaXR5OjEhaW1wb3J0YW50YCxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uW2FyaWEtbGFiZWw9XCJGdWxsc2NyZWVuXCJdJyk7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdltjbGFzc149XCJjb250cm9sLWJhci0tY29udHJvbC1iYXItLVwiXScpO1xuICB9LFxuICBidXR0b25TY2FsZTogMC44LFxuICBidXR0b25TdHlsZTogYHdpZHRoOjNlbTtoZWlnaHQ6M2VtO3BhZGRpbmc6MDtvcGFjaXR5Oi44YCxcbiAgY2FwdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbY2xhc3NePVwiY2FwdGlvbnMtZGlzcGxheS0tY2FwdGlvbnMtY29udGFpbmVyXCJdJyk7XG4gIH0sXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvLnZqcy10ZWNoJyk7XG4gIH0sXG59O1xuIiwiZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICd1c3RyZWFtJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdjb21wb25lbnQgc2hvd24nLFxuICBidXR0b25FbGVtZW50VHlwZTogJ2RpdicsXG4gIGJ1dHRvbkhvdmVyU3R5bGU6IGBvcGFjaXR5OjEhaW1wb3J0YW50O2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgNXB4IHJnYmEoMjU1LDI1NSwyNTUsLjUpKWAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjgsXG4gIGJ1dHRvblN0eWxlOiBgb3BhY2l0eTouN2AsXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250cm9sUGFuZWxSaWdodCcpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjVmlld2VyQ29udGFpbmVyIHZpZGVvJyk7XG4gIH0sXG59O1xuIiwiZXhwb3J0IGNvbnN0IGRvbWFpbiA9ICd2ZXZvJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdwbGF5ZXItY29udHJvbCcsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNjb250cm9sLWJhciAucmlnaHQtY29udHJvbHMnKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuNyxcbiAgYnV0dG9uU3R5bGU6IGBib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMGAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdodG1sNS1wbGF5ZXInKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ3ZpY2UnO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ3ZwX19jb250cm9sc19faWNvbl9fcG9wdXBfX2NvbnRhaW5lcicsXG4gIGJ1dHRvbkVsZW1lbnRUeXBlOiAnZGl2JyxcbiAgYnV0dG9uSW5zZXJ0QmVmb3JlOiBmdW5jdGlvbigvKiogRWxlbWVudCAqLyBwYXJlbnQpIHtcbiAgICByZXR1cm4gcGFyZW50Lmxhc3RDaGlsZDtcbiAgfSxcbiAgYnV0dG9uUGFyZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnZwX19jb250cm9sc19faWNvbnMnKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuNixcbiAgYnV0dG9uU3R5bGU6IGB0b3A6LTExcHhgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlby5qdy12aWRlbycpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAndmlkJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudmpzLWNvbnRyb2wtYmFyJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjcsXG4gIGJ1dHRvblN0eWxlOiBgcG9zaXRpb246cmVsYXRpdmU7dG9wOi0ycHg7bGVmdDo5cHg7cGFkZGluZzowO21hcmdpbjowYCxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZpZGVvX3BsYXllcl9odG1sNV9hcGknKTtcbiAgfSxcbn07XG4iLCJpbXBvcnQgeyBnZXRCdXR0b24gfSBmcm9tICcuLy4uL2J1dHRvbi5qcydcblxuZXhwb3J0IGNvbnN0IGRvbWFpbiA9IFsndmlqZicsICd2aWVyJywgJ3plcyddO1xuXG5leHBvcnQgY29uc3QgcmVzb3VyY2UgPSB7XG4gIGJ1dHRvbkNsYXNzTmFtZTogJ3Zqcy1jb250cm9sIHZqcy1idXR0b24nLFxuICBidXR0b25EaWRBcHBlYXI6IGZ1bmN0aW9uKCkge1xuICAgIC8vIE1vdmUgZnVsbHNjcmVlbiBidXR0b24gdG8gdGhlIHJpZ2h0IHNvIHRoZSBwaXAgYnV0dG9uIGFwcGVhcnMgbGVmdCBvZiBpdFxuICAgIGNvbnN0IGZ1bGxTY3JlZW5CdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd2anMtZnVsbHNjcmVlbi1jb250cm9sJylbMF07XG4gICAgZnVsbFNjcmVlbkJ1dHRvbi5zdHlsZS5vcmRlciA9IDEwO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd2anMtY29udHJvbC1iYXInKVswXTtcbiAgfSxcbiAgYnV0dG9uU3R5bGU6IGB0ZXh0LWluZGVudDowIWltcG9ydGFudDttYXJnaW4tbGVmdDoxMHB4O29yZGVyOjlgLFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlb1twcmVsb2FkPVwibWV0YWRhdGFcIl0nKTtcbiAgfSxcbn07XG4iLCJleHBvcnQgY29uc3QgZG9tYWluID0gJ3ZrJztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICd2aWRlb3BsYXllcl9idG4nLFxuICBidXR0b25FbGVtZW50VHlwZTogJ2RpdicsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi52aWRlb3BsYXllcl9idG5fZnVsbHNjcmVlbicpO1xuICB9LFxuICBidXR0b25TdHlsZTogYHdpZHRoOjI0cHg7aGVpZ2h0OjQ1cHg7cGFkZGluZzowIDhweGAsXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi52aWRlb3BsYXllcl9jb250cm9scycpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlby52aWRlb3BsYXllcl9tZWRpYV9wcm92aWRlcicpO1xuICB9LFxufTtcbiIsImV4cG9ydCBjb25zdCBkb21haW4gPSAndnJ0JztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICd2dXBsYXktY29udHJvbCcsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Z1cGxheS1jb250cm9sLXJpZ2h0JylbMF07XG4gIH0sXG4gIGNhcHRpb25FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRoZW9wbGF5ZXItdGV4dHRyYWNrcycpO1xuICB9LFxuICBidXR0b25TdHlsZTogYHdpZHRoOjMwcHg7aGVpZ2h0OjQ3cHg7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotOXB4O3JpZ2h0OjhweGAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvW3ByZWxvYWQ9XCJtZXRhZGF0YVwiXScpO1xuICB9LFxufTtcbiIsImltcG9ydCB7IGdldFJlc291cmNlLCBieXBhc3NCYWNrZ3JvdW5kVGltZXJUaHJvdHRsaW5nIH0gZnJvbSAnLi8uLi9jb21tb24uanMnXG5pbXBvcnQgeyBnZXRCdXR0b24gfSBmcm9tICcuLy4uL2J1dHRvbi5qcydcbmltcG9ydCB7IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUsIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUgfSBmcm9tICcuLy4uL3ZpZGVvLmpzJ1xuXG5leHBvcnQgY29uc3QgZG9tYWluID0gJ3Zydic7XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAndmpzLWNvbnRyb2wgdmpzLWJ1dHRvbicsXG4gIGJ1dHRvbkRpZEFwcGVhcjogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgbmVpZ2hib3VyQnV0dG9uID0gZ2V0QnV0dG9uKCkubmV4dFNpYmxpbmc7XG4gICAgbmVpZ2hib3VyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCB2aWRlbyA9IC8qKiBAdHlwZSB7P0hUTUxWaWRlb0VsZW1lbnR9ICovIChnZXRSZXNvdXJjZSgpLnZpZGVvRWxlbWVudCgpKTtcbiAgICAgIGlmICh2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKSkgdG9nZ2xlUGljdHVyZUluUGljdHVyZSh2aWRlbyk7XG4gICAgfSk7XG4gICAgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZygpO1xuICB9LFxuICBidXR0b25Ib3ZlclN0eWxlOiBgb3BhY2l0eToxIWltcG9ydGFudGAsXG4gIGJ1dHRvbkluc2VydEJlZm9yZTogZnVuY3Rpb24oLyoqIEVsZW1lbnQgKi8gcGFyZW50KSB7XG4gICAgcmV0dXJuIHBhcmVudC5sYXN0Q2hpbGQ7XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy52anMtY29udHJvbC1iYXInKTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuNixcbiAgYnV0dG9uU3R5bGU6IGBwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMTRweDt3aWR0aDo1MHB4O2N1cnNvcjpwb2ludGVyO29wYWNpdHk6LjZgLFxuICBjYXB0aW9uRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5saWJqYXNzLXN1YnMnKTtcbiAgfSxcbiAgdmlkZW9FbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXllcl9odG1sNV9hcGknKTtcbiAgfSxcbn07XG4iLCJpbXBvcnQgeyBnZXRSZXNvdXJjZSB9IGZyb20gJy4vLi4vY29tbW9uLmpzJ1xuXG5leHBvcnQgY29uc3QgZG9tYWluID0gJ3llbG9wbGF5JztcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlID0ge1xuICBidXR0b25DbGFzc05hbWU6ICdidXR0b24nLFxuICBidXR0b25EaWRBcHBlYXI6IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IHBhcmVudCA9IGdldFJlc291cmNlKCkuYnV0dG9uUGFyZW50KCk7XG4gICAgcGFyZW50LnN0eWxlLndpZHRoID0gJzIxMHB4JztcbiAgfSxcbiAgYnV0dG9uSG92ZXJTdHlsZTogYG9wYWNpdHk6MSFpbXBvcnRhbnRgLFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncGxheWVyLWZ1bGxzY3JlZW4tYnV0dG9uJylbMF07XG4gIH0sXG4gIGJ1dHRvblBhcmVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2J1dHRvbnMnKVswXTtcbiAgfSxcbiAgYnV0dG9uU2NhbGU6IDAuOCxcbiAgYnV0dG9uU3R5bGU6IGBtYXJnaW4tbGVmdDoxMHB4O3dpZHRoOjUwcHg7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouODtoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudGAsXG4gIHZpZGVvRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvW3NyY10nKTtcbiAgfSxcbn07XG4iLCJpbXBvcnQgeyBCcm93c2VyLCBnZXRCcm93c2VyLCBnZXRSZXNvdXJjZSwgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZyB9IGZyb20gJy4vLi4vY29tbW9uLmpzJ1xuaW1wb3J0IHsgZ2V0QnV0dG9uIH0gZnJvbSAnLi8uLi9idXR0b24uanMnXG5pbXBvcnQgeyBlbmFibGVDYXB0aW9ucywgZGlzYWJsZUNhcHRpb25zLCBzaG91bGRQcm9jZXNzQ2FwdGlvbnMgfSBmcm9tICcuLy4uL2NhcHRpb25zLmpzJ1xuXG5leHBvcnQgY29uc3QgZG9tYWluID0gWyd5b3V0dWJlJywgJ3lvdXR1J107XG5cbmV4cG9ydCBjb25zdCByZXNvdXJjZSA9IHtcbiAgYnV0dG9uQ2xhc3NOYW1lOiAneXRwLWJ1dHRvbicsXG4gIGJ1dHRvbkRpZEFwcGVhcjogZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnV0dG9uKCk7XG4gICAgY29uc3QgbmVpZ2hib3VyQnV0dG9uID0gLyoqIEB0eXBlIHs/SFRNTEVsZW1lbnR9ICovIChidXR0b24ubmV4dFNpYmxpbmcpO1xuICAgIGNvbnN0IC8qKiBzdHJpbmcgKi8gdGl0bGUgPSBidXR0b24udGl0bGU7XG4gICAgY29uc3QgLyoqIHN0cmluZyAqLyBuZWlnaGJvdXJUaXRsZSA9IG5laWdoYm91ckJ1dHRvbi50aXRsZTtcbiAgICBidXR0b24udGl0bGUgPSAnJztcbiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgZnVuY3Rpb24oKSB7XG4gICAgICBuZWlnaGJvdXJCdXR0b24udGl0bGUgPSB0aXRsZTtcbiAgICAgIG5laWdoYm91ckJ1dHRvbi5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnbW91c2VvdmVyJykpO1xuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIGZ1bmN0aW9uKCkge1xuICAgICAgbmVpZ2hib3VyQnV0dG9uLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdtb3VzZW91dCcpKTtcbiAgICAgIG5laWdoYm91ckJ1dHRvbi50aXRsZSA9IG5laWdoYm91clRpdGxlO1xuICAgIH0pO1xuICAgIGJ5cGFzc0JhY2tncm91bmRUaW1lclRocm90dGxpbmcoKTtcblxuICAgIC8vIFdvcmthcm91bmQgU2FmYXJpIGJ1Zzsgb2xkIGNhcHRpb25zIHBlcnNpc3QgaW4gUGljdHVyZSBpbiBQaWN0dXJlIG1vZGUgd2hlbiBNZWRpYVNvdXJjZSBidWZmZXJzIGNoYW5nZVxuICAgIGlmIChnZXRCcm93c2VyKCkgPT0gQnJvd3Nlci5TQUZBUkkpIHtcbiAgICAgIGNvbnN0IHZpZGVvID0gLyoqIEB0eXBlIHs/SFRNTFZpZGVvRWxlbWVudH0gKi8gKGdldFJlc291cmNlKCkudmlkZW9FbGVtZW50KCkpO1xuICAgICAgbGV0IGNhcHRpb25zVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgY29uc3QgbmF2aWdhdGVTdGFydCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBjYXB0aW9uc1Zpc2libGUgPSBzaG91bGRQcm9jZXNzQ2FwdGlvbnMoKTtcbiAgICAgICAgaWYgKGNhcHRpb25zVmlzaWJsZSkgZGlzYWJsZUNhcHRpb25zKCk7XG4gICAgICB9O1xuICAgICAgY29uc3QgbmF2aWdhdGVGaW5pc2ggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKGNhcHRpb25zVmlzaWJsZSkgZW5hYmxlQ2FwdGlvbnMoKTtcbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3BmcmVxdWVzdCcsIG5hdmlnYXRlU3RhcnQpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3NwZmRvbmUnLCBuYXZpZ2F0ZUZpbmlzaCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigneXQtbmF2aWdhdGUtc3RhcnQnLCBuYXZpZ2F0ZVN0YXJ0KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd5dC1uYXZpZ2F0ZS1maW5pc2gnLCBuYXZpZ2F0ZUZpbmlzaCk7XG4gICAgfVxuICB9LFxuICBidXR0b25JbnNlcnRCZWZvcmU6IGZ1bmN0aW9uKC8qKiBFbGVtZW50ICovIHBhcmVudCkge1xuICAgIHJldHVybiBwYXJlbnQubGFzdENoaWxkO1xuICB9LFxuICBidXR0b25QYXJlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcueXRwLXJpZ2h0LWNvbnRyb2xzJyk7XG4gIH0sXG4gIGJ1dHRvblNjYWxlOiAwLjY4LFxuICBjYXB0aW9uRWxlbWVudDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jYXB0aW9uLXdpbmRvdycpO1xuICB9LFxuICB2aWRlb0VsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlby5odG1sNS1tYWluLXZpZGVvJyk7XG4gIH0sXG59O1xuIiwiaW1wb3J0IHsgaW5mbyB9IGZyb20gJy4vbG9nZ2VyLmpzJ1xuaW1wb3J0IHsgQnJvd3NlciwgZ2V0QnJvd3NlciwgZ2V0UmVzb3VyY2UsIHNldFJlc291cmNlIH0gZnJvbSAnLi9jb21tb24uanMnXG5pbXBvcnQgeyBhZGRWaWRlb0VsZW1lbnRMaXN0ZW5lcnMgfSBmcm9tICcuL3ZpZGVvLmpzJ1xuaW1wb3J0IHsgcmVzb3VyY2VzIH0gZnJvbSAnLi9yZXNvdXJjZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgY2hlY2tCdXR0b24sIGFkZEJ1dHRvbiB9IGZyb20gJy4vYnV0dG9uLmpzJ1xuaW1wb3J0IHsgc2hvdWxkUHJvY2Vzc0NhcHRpb25zLCBlbmFibGVDYXB0aW9ucywgcHJvY2Vzc0NhcHRpb25zLCBhZGRWaWRlb0NhcHRpb25UcmFja3MgfSBmcm9tICcuL2NhcHRpb25zLmpzJ1xuaW1wb3J0IHsgaW5pdGlhbGlzZUNhY2hlcyB9IGZyb20gJy4vY2FjaGUuanMnXG5cbi8qKlxuICogVHJhY2tzIGluamVjdGVkIGJ1dHRvbiBhbmQgY2FwdGlvbnNcbiAqL1xuY29uc3QgbXV0YXRpb25PYnNlcnZlciA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBjdXJyZW50UmVzb3VyY2UgPSBnZXRSZXNvdXJjZSgpO1xuXG4gIC8vIFByb2Nlc3MgdmlkZW8gY2FwdGlvbnMgaWYgbmVlZGVkXG4gIGlmIChzaG91bGRQcm9jZXNzQ2FwdGlvbnMoKSkgcHJvY2Vzc0NhcHRpb25zKCk7XG5cbiAgLy8gV29ya2Fyb3VuZCBDaHJvbWUncyBsYWNrIG9mIGFuIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIGV2ZW50IGJ5IG1vbml0b3JpbmcgYWxsIHZpZGVvIGVsZW1lbnRzXG4gIGlmIChnZXRCcm93c2VyKCkgPT0gQnJvd3Nlci5DSFJPTUUpIGFkZFZpZGVvRWxlbWVudExpc3RlbmVycygpO1xuXG4gIC8vIFdvcmthcm91bmQgU2FmYXJpIGJ1ZzsgY2FwdGlvbnMgYXJlIG5vdCBkaXNwbGF5ZWQgaWYgdGhlIHRyYWNrIGlzIGFkZGVkIGFmdGVyIHRoZSB2aWRlbyBoYXMgbG9hZGVkXG4gIGlmIChnZXRCcm93c2VyKCkgPT0gQnJvd3Nlci5TQUZBUkkgJiYgY3VycmVudFJlc291cmNlLmNhcHRpb25FbGVtZW50KSBhZGRWaWRlb0NhcHRpb25UcmFja3MoKTtcblxuICAvLyBUcnkgYWRkaW5nIHRoZSBidXR0b24gdG8gdGhlIHBhZ2UgaWYgbmVlZGVkXG4gIGlmIChjaGVja0J1dHRvbigpKSByZXR1cm47XG4gIGNvbnN0IGJ1dHRvblBhcmVudCA9IGN1cnJlbnRSZXNvdXJjZS5idXR0b25QYXJlbnQoKTtcbiAgaWYgKGJ1dHRvblBhcmVudCkge1xuICAgIGFkZEJ1dHRvbihidXR0b25QYXJlbnQpO1xuICAgIGlmIChjdXJyZW50UmVzb3VyY2UuYnV0dG9uRGlkQXBwZWFyKSBjdXJyZW50UmVzb3VyY2UuYnV0dG9uRGlkQXBwZWFyKCk7XG4gICAgaW5mbygnUGljdHVyZSBpbiBQaWN0dXJlIGJ1dHRvbiBhZGRlZCB0byB3ZWJwYWdlJyk7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3Qgbm9uLXB1YmxpYyBzdWJkb21haW4gZnJvbSB0aGUgY3VycmVudCBkb21haW4gbmFtZVxuICpcbiAqIEByZXR1cm4ge3N0cmluZ3x1bmRlZmluZWR9XG4gKi9cbmNvbnN0IGdldEN1cnJlbnREb21haW5OYW1lID0gZnVuY3Rpb24oKSB7XG5cbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBsb2NhbCBQbGV4IE1lZGlhIFNlcnZlciBhY2Nlc3MgdGhhdCBhbHdheXMgdXNlcyBwb3J0IDMyNDAwXG4gIGlmIChsb2NhdGlvbi5wb3J0ID09IDMyNDAwKSB7XG4gICAgcmV0dXJuICdwbGV4JztcbiAgfSBlbHNlIHtcbiAgICAvLyBSZW1vdmUgc3ViZG9tYWluIGFuZCBwdWJsaWMgc3VmZml4IChmYXIgZnJvbSBjb21wcmVoZW5zaXZlIGFzIG9ubHkgcmVtb3ZlcyAuWCBhbmQgLmNvLlkpXG4gICAgcmV0dXJuIChsb2NhdGlvbi5ob3N0bmFtZS5tYXRjaCgvKFteLl0rKVxcLig/OmNvbT9cXC4pP1teLl0rJC8pIHx8IFtdKVsxXTtcbiAgfVxufTtcblxuY29uc3QgZG9tYWluTmFtZSA9IGdldEN1cnJlbnREb21haW5OYW1lKCk7XG5cbmlmIChkb21haW5OYW1lIGluIHJlc291cmNlcykge1xuICBpbmZvKGBNYXRjaGVkIHNpdGUgJHtkb21haW5OYW1lfSAoJHtsb2NhdGlvbn0pYCk7XG4gIHNldFJlc291cmNlKHJlc291cmNlc1tkb21haW5OYW1lXSk7XG5cbiAgaW5pdGlhbGlzZUNhY2hlcygpO1xuXG4gIGlmIChnZXRCcm93c2VyKCkgPT0gQnJvd3Nlci5TQUZBUkkpIHtcbiAgICBlbmFibGVDYXB0aW9ucyh0cnVlKTtcbiAgfVxuXG4gIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25PYnNlcnZlcik7XG4gIG9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQsIHtcbiAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgc3VidHJlZTogdHJ1ZSxcbiAgfSk7XG4gIG11dGF0aW9uT2JzZXJ2ZXIoKTtcbn1cbiJdLAoibmFtZXMiOlsiZXJyb3IiLCJjb25zb2xlIiwiYmluZCIsImxvZ2dpbmdQcmVmaXgiLCJjdXJyZW50UmVzb3VyY2UiLCJieXBhc3NCYWNrZ3JvdW5kVGltZXJUaHJvdHRsaW5nIiwicmVxdWVzdCIsIlhNTEh0dHBSZXF1ZXN0Iiwib3BlbiIsImNocm9tZSIsInJ1bnRpbWUiLCJnZXRVUkwiLCJwYXRoIiwib25sb2FkIiwicmVxdWVzdC5vbmxvYWQiLCJzY3JpcHQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwicmVzcG9uc2VUZXh0IiwiaGVhZCIsInNlbmQiLCJldmVudExpc3RlbmVycyIsInRvZ2dsZVBpY3R1cmVJblBpY3R1cmUiLCJ2aWRlbyIsInZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUiLCJwbGF5aW5nUGljdHVyZUluUGljdHVyZSIsInRleHRDb250ZW50IiwicmVtb3ZlIiwicmVtb3ZlQXR0cmlidXRlIiwicmVxdWVzdFBpY3R1cmVJblBpY3R1cmUiLCJhZGRQaWN0dXJlSW5QaWN0dXJlRXZlbnRMaXN0ZW5lciIsImxpc3RlbmVyIiwiaW5kZXgiLCJpbmRleE9mIiwicHVzaCIsImRpc3BhdGNoUGljdHVyZUluUGljdHVyZUV2ZW50IiwiZXhwZWN0ZWRWaWRlbyIsInZpZGVvRWxlbWVudCIsImlzUGxheWluZ1BpY3R1cmVJblBpY3R1cmUiLCJldmVudExpc3RlbmVyc0NvcHkiLCJzbGljZSIsInBvcCIsImhhc0F0dHJpYnV0ZSIsIkNIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUiLCJ2aWRlb0RpZEVudGVyUGljdHVyZUluUGljdHVyZSIsImV2ZW50IiwidGFyZ2V0IiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uY2UiLCJsb2NhbGl6YXRpb25zIiwibG9jYWxpemVkU3RyaW5nIiwibGFuZ3VhZ2UiLCJuYXZpZ2F0b3IiLCJzdWJzdHJpbmciLCJsb2NhbGl6YXRpb25zRm9yS2V5Iiwia2V5Iiwic3RyaW5nIiwiZGVmYXVsdExhbmd1YWdlIiwiYnV0dG9uIiwiYWRkQnV0dG9uIiwicGFyZW50IiwiYnV0dG9uRWxlbWVudFR5cGUiLCJpZCIsIkJVVFRPTl9JRCIsInRpdGxlIiwiYnV0dG9uU3R5bGUiLCJzdHlsZSIsImNzc1RleHQiLCJidXR0b25DbGFzc05hbWUiLCJjbGFzc05hbWUiLCJpbWFnZSIsIndpZHRoIiwiaGVpZ2h0IiwiYnV0dG9uU2NhbGUiLCJ0cmFuc2Zvcm0iLCJidXR0b25JbWFnZSIsImJ1dHRvbkV4aXRJbWFnZSIsImJ1dHRvbkltYWdlVVJMIiwic3JjIiwiYnV0dG9uRXhpdEltYWdlVVJMIiwiYnV0dG9uSG92ZXJTdHlsZSIsImNzcyIsInByZXZlbnREZWZhdWx0IiwiaW5zZXJ0QmVmb3JlIiwicmVmZXJlbmNlTm9kZSIsImJ1dHRvbkluc2VydEJlZm9yZSIsImdldE5lc3RlZFNoYWRvd1Jvb3QiLCJzZWxlY3RvcnMiLCJkb20iLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJzaGFkb3dSb290IiwiaW5pdGlhbGlzZUNhY2hlcyIsImNhY2hlRWxlbWVudFdyYXBwZXIiLCJlbGVtZW50RnVuY3Rpb24iLCJjYWNoZWRFbGVtZW50SWQiLCJieXBhc3NDYWNoZSIsImNhY2hlZEVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInVuY2FjaGVkRWxlbWVudCIsInVuaXF1ZUlkQ291bnRlciIsImJ1dHRvblBhcmVudCIsImNhcHRpb25FbGVtZW50IiwicmVzb3VyY2VzIiwiZG9tYWluIiwicmVzb3VyY2UiLCJlIiwicGFyZW50RWxlbWVudCIsImxhc3RDaGlsZCIsImludGVybmFsIiwiZnVsbHNjcmVlbkJ1dHRvbiIsImJ1dHRvbkRpZEFwcGVhciIsImxpdmVJbmRpY2F0b3IiLCJ0b29sdGlwIiwiY2xhc3NMaXN0IiwiYWRkIiwiYm90dG9tIiwibmV4dFNpYmxpbmciLCJ0b1VwcGVyQ2FzZSIsImRpc3BsYXkiLCJwcmV2aW91c1NpYmxpbmciLCJwcm9ncmVzc0JhciIsInByb2dyZXNzQmFyU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwicmlnaHQiLCJwYXJzZUludCIsInBsYXlCdXR0b24iLCJpbWciLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiZnVsbFNjcmVlbkJ1dHRvbiIsIm9yZGVyIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJuZWlnaGJvdXJCdXR0b24iLCJuZWlnaGJvdXJUaXRsZSIsImRpc3BhdGNoRXZlbnQiLCJFdmVudCIsIm11dGF0aW9uT2JzZXJ2ZXIiLCJlbGVtZW50cyIsImVsZW1lbnQiLCJkb21haW5OYW1lIiwibG9jYXRpb24iLCJwb3J0IiwiaG9zdG5hbWUiLCJtYXRjaCIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIl0KfQo= diff --git a/out/PiPer-safari-legacy.safariextension/Icon-128.png b/out/PiPer-safari-legacy.safariextension/Icon-128.png new file mode 100644 index 0000000..65b6bd5 Binary files /dev/null and b/out/PiPer-safari-legacy.safariextension/Icon-128.png differ diff --git a/out/PiPer-safari-legacy.safariextension/Info.plist b/out/PiPer-safari-legacy.safariextension/Info.plist new file mode 100644 index 0000000..61c0c89 --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/Info.plist @@ -0,0 +1,56 @@ + + + + + Author + Adam Marcus + Builder Version + 12602.4.8 + CFBundleDisplayName + PiPer + CFBundleIdentifier + com.amarcus.safari.piper + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + 1.0.4 + CFBundleVersion + 235 + Chrome + + Global Page + global.html + + Content + + Scripts + + End + + scripts/main.js + scripts/legacy.js + + + + Description + Adds Picture in Picture functionality to Youtube, Netflix, Amazon Video, Twitch, and more! + DeveloperIdentifier + BQ6Q24MF9X + ExtensionInfoDictionaryVersion + 1.0 + Permissions + + Website Access + + Include Secure Pages + + Level + All + + + Update Manifest URL + https://s3.amazonaws.com/piper-extension/update.plist + Website + https://github.com/amarcu5/PiPer/ + + diff --git a/out/PiPer-safari-legacy.safariextension/global.html b/out/PiPer-safari-legacy.safariextension/global.html new file mode 100644 index 0000000..7751f1e --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/global.html @@ -0,0 +1,9 @@ + + + + PiPer + + + + + diff --git a/out/PiPer-safari-legacy.safariextension/images/default-exit.svg b/out/PiPer-safari-legacy.safariextension/images/default-exit.svg new file mode 100644 index 0000000..06cad65 --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/images/default-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-safari-legacy.safariextension/images/default.svg b/out/PiPer-safari-legacy.safariextension/images/default.svg new file mode 100644 index 0000000..b2178ff --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/images/default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-safari-legacy.safariextension/images/logo.svg b/out/PiPer-safari-legacy.safariextension/images/logo.svg new file mode 100644 index 0000000..e6439fa --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-safari-legacy.safariextension/images/warning.svg b/out/PiPer-safari-legacy.safariextension/images/warning.svg new file mode 100644 index 0000000..e8c74d3 --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/images/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/out/PiPer-safari-legacy.safariextension/scripts/background.js b/out/PiPer-safari-legacy.safariextension/scripts/background.js new file mode 100644 index 0000000..02a327a --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/scripts/background.js @@ -0,0 +1,2 @@ +var a;a||(a=!0,(()=>{'use strict';safari.application.addEventListener("message",function(a){switch(a.name){case "getUpgradeAlertShown":a.target.page.dispatchMessage("upgradeAlertShownResponse",parseInt(safari.extension.settings.upgradeAlertShown||"0",10));break;case "setUpgradeAlertShown":safari.extension.settings.upgradeAlertShown=a.message}},!1);})()); +//# sourceMappingURL=data:application/json;base64,ewoidmVyc2lvbiI6MywKImZpbGUiOiIiLAoibGluZUNvdW50IjoxLAoibWFwcGluZ3MiOiJBLGtDQVlBQSxNQUFBLENBQU9DLFdBQVAsQ0FBbUJDLGdCQUFuQixDQUFvQyxTQUFwQyxDQVp1QkMsUUFBUSxDQUFvQ0MsQ0FBcEMsQ0FBa0QsQ0FDL0UsT0FBUUEsQ0FBUixDQUFxQkMsSUFBckIsRUFDRSxLQUFLLHNCQUFMLENBRWtERCxDQUNoRCxDQUQ2REUsTUFDN0QsQ0FBT0MsSUFBUCxDQUFZQyxlQUFaLENBQTRCLDJCQUE1QixDQUF5REMsUUFBQSxDQUZSVCxNQUVRLENBRkRVLFNBRUMsQ0FGU0MsUUFFVCxDQUZrQkMsaUJBRWxCLEVBQW9CLEdBQXBCLENBQXlCLEVBQXpCLENBQXpELENBQ0EsTUFDRixNQUFLLHNCQUFMLENBQ0VaLE1BQUEsQ0FBT1UsU0FBUCxDQUFpQkMsUUFBakIsQ0FBMEIsaUJBQTFCLENBQWlEUCxDQUFqRCxDQUE4RFMsT0FQbEUsQ0FEK0UsQ0FZakYsQ0FBK0QsQ0FBQSxDQUEvRDsiLAoic291cmNlcyI6WyIuL2JhY2tncm91bmQuanMiXSwKInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1lc3NhZ2VIYW5kbGVyID0gZnVuY3Rpb24oLyoqIFNhZmFyaUV4dGVuc2lvbk1lc3NhZ2VFdmVudCAqLyBtZXNzYWdlRXZlbnQpIHtcbiAgc3dpdGNoIChtZXNzYWdlRXZlbnQubmFtZSkge1xuICAgIGNhc2UgJ2dldFVwZ3JhZGVBbGVydFNob3duJzpcbiAgICAgIGNvbnN0IHNldHRpbmcgPSAvKiogQHR5cGUge3N0cmluZ3x1bmRlZmluZWR9ICovIChzYWZhcmkuZXh0ZW5zaW9uLnNldHRpbmdzWyd1cGdyYWRlQWxlcnRTaG93biddKTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IC8qKiBAdHlwZSB7U2FmYXJpQnJvd3NlclRhYn0gKi8gKG1lc3NhZ2VFdmVudC50YXJnZXQpO1xuICAgICAgdGFyZ2V0LnBhZ2UuZGlzcGF0Y2hNZXNzYWdlKCd1cGdyYWRlQWxlcnRTaG93blJlc3BvbnNlJywgcGFyc2VJbnQoc2V0dGluZyB8fCAnMCcsIDEwKSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzZXRVcGdyYWRlQWxlcnRTaG93bic6XG4gICAgICBzYWZhcmkuZXh0ZW5zaW9uLnNldHRpbmdzWyd1cGdyYWRlQWxlcnRTaG93biddID0gbWVzc2FnZUV2ZW50Lm1lc3NhZ2U7XG4gICAgICBicmVhaztcbiAgfVxufVxuc2FmYXJpLmFwcGxpY2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlciwgZmFsc2UpO1xuIl0sCiJuYW1lcyI6WyJzYWZhcmkiLCJhcHBsaWNhdGlvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJtZXNzYWdlSGFuZGxlciIsIm1lc3NhZ2VFdmVudCIsIm5hbWUiLCJ0YXJnZXQiLCJwYWdlIiwiZGlzcGF0Y2hNZXNzYWdlIiwicGFyc2VJbnQiLCJleHRlbnNpb24iLCJzZXR0aW5ncyIsInNldHRpbmciLCJtZXNzYWdlIl0KfQo= diff --git a/out/PiPer-safari-legacy.safariextension/scripts/fix.js b/out/PiPer-safari-legacy.safariextension/scripts/fix.js new file mode 100644 index 0000000..d9a0559 --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/scripts/fix.js @@ -0,0 +1,5 @@ +var a;a||(a=!0,(()=>{'use strict';let d=null,e=0,f={};const h=[],k=[],l=window.setTimeout,m=window.clearTimeout,n=window.requestAnimationFrame;window.requestAnimationFrame=function(a){let c=0;d||(c=n(a),h.push(c));k.push(a);return c};function p(){h.length=0;k.length=0;n(p)}p();function q(){var a=k.slice();k.length=0;const c=window.performance.now();for(var b;b=a.pop();)b(c);a=f;f={};for(let g in a)if(b=a[g],b[0]<=c)if("function"==typeof b[1])b[1]();else eval(b[1]);else f[g]=b} +function r(a,c){const b=e++;f[b.toString()]=[window.performance.now()+(c||0),a];return b}function t(a){a&&delete f[a.toString()]} +document.addEventListener("visibilitychange",function(){if(document.hidden){var a=document.querySelectorAll("video");for(var c=a.length;c--;){const g=a[c];var b="picture-in-picture"==g.webkitPresentationMode;if(b){d=g;break}}if(d){for(;b=h.pop();)window.cancelAnimationFrame(b);window.setTimeout=r;window.clearTimeout=t;d.addEventListener("timeupdate",q)}}else if(d){window.setTimeout=l;window.clearTimeout=m;d.removeEventListener("timeupdate",q);d=null;for(a=k.length;a--;)c=n(k[a]),h.push(c);a=window.performance.now(); +for(b in f)c=f[b],l(c[1],c[0]-a);f={}}});})()); +//# sourceMappingURL=data:application/json;base64,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QSxDQUVBLElBQUEsQ0FBa0JjLENBQWxCLENBQTRCWCxDQUFBLENBQVNxQixHQUFULEVBQTVCLENBQUEsQ0FDRWxCLE1BQUEsQ0FBT21DLG9CQUFQLENBQTRCM0IsQ0FBNUIsQ0FHRlIsT0FBQSxDQUFPQyxVQUFQLENBQW9Cc0IsQ0FDcEJ2QixPQUFBLENBQU9HLFlBQVAsQ0FBc0JzQixDQUV0Qi9CLEVBQUEsQ0FBWWlDLGdCQUFaLENBQTZCLFlBQTdCLENBQTJDZixDQUEzQyxDQVRBLENBVm1CLENBQXJCLElBdUJPLElBQUlsQixDQUFKLENBQWlCLENBSXRCTSxNQUFBLENBQU9DLFVBQVAsQ0FBb0JGLENBQ3BCQyxPQUFBLENBQU9HLFlBQVAsQ0FBc0JELENBRXRCUixFQUFBLENBQVkwQyxtQkFBWixDQUFnQyxZQUFoQyxDQUE4Q3hCLENBQTlDLENBRUFsQixFQUFBLENBQWMsSUFFZCxLQUFTMkMsQ0FBVCxDQUFzQnZDLENBQXRCLENBQWdDYSxNQUFoQyxDQUF3QzBCLENBQUEsRUFBeEMsQ0FBQSxDQUNNN0IsQ0FDSixDQURjSixDQUFBLENBQThCTixDQUFBLENBQVV1QyxDQUFWLENBQTlCLENBQ2QsQ0FBQXhDLENBQUEsQ0FBU1ksSUFBVCxDQUFjRCxDQUFkLENBR0lPLEVBQUFBLENBQVlmLE1BQUEsQ0FBT2dCLFdBQVAsQ0FBbUJDLEdBQW5CLEVBQ2xCO0lBQVNHLENBQVQsR0FBZXhCLEVBQWYsQ0FDTXlCLENBQ0osQ0FEY3pCLENBQUEsQ0FBU3dCLENBQVQsQ0FDZCxDQUFBckIsQ0FBQSxDQUFtQnNCLENBQUEsQ0FBUSxDQUFSLENBQW5CLENBQStCQSxDQUFBLENBQVEsQ0FBUixDQUEvQixDQUE0Q04sQ0FBNUMsQ0FFRm5CLEVBQUEsQ0FBVyxFQXJCVyxDQXpCeUIsQ0FpRG5EOyIsCiJzb3VyY2VzIjpbIi4vZml4LmpzIiwiLi92aWRlby5qcyJdLAoic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5mbyB9IGZyb20gJy4vbG9nZ2VyLmpzJ1xuaW1wb3J0IHsgdmlkZW9QbGF5aW5nUGljdHVyZUluUGljdHVyZSB9IGZyb20gJy4vdmlkZW8uanMnXG5cbmxldCBhY3RpdmVWaWRlbyA9IG51bGw7XG5sZXQgdGltZW91dElkID0gMDtcbmxldCAvKiogIU9iamVjdDxzdHJpbmcsIEFycmF5PiAqLyB0aW1lb3V0cyA9IHt9O1xuXG5jb25zdCAvKiogIUFycmF5PG51bWJlcj4gKi8gcmVxdWVzdHMgPSBbXTtcbmNvbnN0IC8qKiAhQXJyYXk8ZnVuY3Rpb24obnVtYmVyKTogdW5kZWZpbmVkPiAqLyBjYWxsYmFja3MgPSBbXTtcblxuY29uc3Qgb3JpZ2luYWxTZXRUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQ7XG5jb25zdCBvcmlnaW5hbENsZWFyVGltZW91dCA9IHdpbmRvdy5jbGVhclRpbWVvdXQ7XG5jb25zdCBvcmlnaW5hbFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7XG5cbi8qKlxuICogVHJhY2tzIGFuaW1hdGlvbiBmcmFtZSByZXF1ZXN0cyBhbmQgZm9yd2FyZHMgcmVxdWVzdHMgd2hlbiBwYWdlIHZpc2libGVcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKG51bWJlcik6IHVuZGVmaW5lZH0gY2FsbGJhY2sgLSBhIHJlcXVlc3RBbmltYXRpb25GcmFtZSBjYWxsYmFja1xuICovXG5jb25zdCB0cmFja0FuaW1hdGlvbkZyYW1lUmVxdWVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gIGxldCByZXF1ZXN0ID0gMDtcblxuICBpZiAoIWFjdGl2ZVZpZGVvKSB7XG4gICAgcmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcbiAgICByZXF1ZXN0cy5wdXNoKHJlcXVlc3QpO1xuICB9XG5cbiAgY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuXG4gIHJldHVybiByZXF1ZXN0O1xufTtcbndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB0cmFja0FuaW1hdGlvbkZyYW1lUmVxdWVzdDtcblxuLyoqXG4gKiBDbGVhcnMgdHJhY2tlZCBhbmltYXRpb24gZnJhbWUgcmVxdWVzdHMgb24gbmV3IGZyYW1lXG4gKi9cbmNvbnN0IGNsZWFyQW5pbWF0aW9uRnJhbWVSZXF1ZXN0cyA9IGZ1bmN0aW9uKCkge1xuICByZXF1ZXN0cy5sZW5ndGggPSAwO1xuICBjYWxsYmFja3MubGVuZ3RoID0gMDtcblxuICBvcmlnaW5hbFJlcXVlc3RBbmltYXRpb25GcmFtZShjbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMpO1xufTtcbmNsZWFyQW5pbWF0aW9uRnJhbWVSZXF1ZXN0cygpO1xuXG4vKipcbiAqIENhbGxzIHRyYWNrZWQgYW5pbWF0aW9uIGZyYW1lIHJlcXVlc3RzIGFuZCB0aW1lb3V0c1xuICovXG5jb25zdCBjYWxsQW5pbWF0aW9uRnJhbWVSZXF1ZXN0c0FuZFRpbWVvdXRzID0gZnVuY3Rpb24oKSB7XG4gIFxuICAvLyBDb3B5IGFuaW1hdGlvbiBmcmFtZSBjYWxsYmFja3MgYmVmb3JlIGNhbGxpbmcgdG8gcHJldmVudCBlbmRsZXNzIGxvb3BpbmdcbiAgY29uc3QgY2FsbGJhY2tzQ29weSA9IGNhbGxiYWNrcy5zbGljZSgpO1xuICBjYWxsYmFja3MubGVuZ3RoID0gMDtcblxuICAvLyBDYWxsIGFuaW1hdGlvbiBmcmFtZSByZXF1ZXN0c1xuICBjb25zdCB0aW1lc3RhbXAgPSB3aW5kb3cucGVyZm9ybWFuY2Uubm93KCk7XG4gIGZvciAobGV0IGNhbGxiYWNrOyBjYWxsYmFjayA9IGNhbGxiYWNrc0NvcHkucG9wKCk7KSB7XG4gICAgY2FsbGJhY2sodGltZXN0YW1wKTtcbiAgfVxuXG4gIC8vIENvcHkgdGltZW91dHMgdG8gcHJldmVudCBlbmRsZXNzIGxvb3BpbmdcbiAgY29uc3QgdGltZW91dHNDb3B5ID0gdGltZW91dHM7XG4gIHRpbWVvdXRzID0ge307XG4gIFxuICAvLyBDYWxsIGVsYXBzZWQgdGltZW91dHNcbiAgZm9yIChsZXQgaWQgaW4gdGltZW91dHNDb3B5KSB7XG4gICAgbGV0IHRpbWVvdXQgPSB0aW1lb3V0c0NvcHlbaWRdO1xuICAgIGlmICh0aW1lb3V0WzBdIDw9IHRpbWVzdGFtcCkge1xuICAgICAgaWYgKHR5cGVvZiB0aW1lb3V0WzFdID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICB0aW1lb3V0WzFdKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBldmFsKC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAodGltZW91dFsxXSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aW1lb3V0c1tpZF0gPSB0aW1lb3V0O1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBBdm9pZHMgYmFja2dyb3VuZCB0aHJvdHRsaW5nIGJ5IGludm9raW5nIHRpbWVvdXRzIHdpdGggbWVkaWEgJ3RpbWV1cGRhdGUnIGV2ZW50c1xuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb258VHJ1c3RlZFNjcmlwdHxzdHJpbmd9IGNhbGxiYWNrIC0gYSBzZXRUaW1lb3V0IGNhbGxiYWNrXG4gKiBAcGFyYW0ge251bWJlcj19IHRpbWVvdXQgLSBhIGRlbGF5IGluIG1zXG4gKiBAcmV0dXJuIHtudW1iZXJ9XG4gKi9cbmNvbnN0IHVudGhyb3R0bGVkU2V0VGltZW91dCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aW1lb3V0KSB7XG4gIGNvbnN0IGlkID0gdGltZW91dElkKys7XG4gIHRpbWVvdXRzW2lkLnRvU3RyaW5nKCldID0gW3dpbmRvdy5wZXJmb3JtYW5jZS5ub3coKSArICh0aW1lb3V0IHx8IDApLCBjYWxsYmFja107XG4gIHJldHVybiBpZDtcbn07XG5cbi8qKlxuICogQ2xlYXJzIHF1ZXVlZCB0aW1lb3V0cyB0byBiZSBpbnZva2VkIHdpdGggbWVkaWEgJ3RpbWV1cGRhdGUnIGV2ZW50c1xuICpcbiAqIEBwYXJhbSB7P251bWJlcnx1bmRlZmluZWR9IGlkIC0gYW4gaWQgcmV0dXJuZWQgYnkgdW50aHJvdHRsZWRTZXRUaW1lb3V0XG4gKi9cbmNvbnN0IHVudGhyb3R0bGVkQ2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24oaWQpIHtcbiAgaWYgKGlkKSBkZWxldGUgdGltZW91dHNbaWQudG9TdHJpbmcoKV07XG59O1xuXG4vKipcbiAqIEJ5cGFzc2VzIGJhY2tncm91bmQgdGltZXIgdGhyb3R0bGluZyB3aGVuIHZpZGVvIHBsYXlpbmcgcGljdHVyZSBpbiBwaWN0dXJlXG4gKi9cbmNvbnN0IGJ5cGFzc0JhY2tncm91bmRUaW1lclRocm90dGxpbmcgPSBmdW5jdGlvbigpIHtcblxuICBpZiAoZG9jdW1lbnQuaGlkZGVuKSB7XG5cbiAgICBjb25zdCBhbGxWaWRlb3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd2aWRlbycpO1xuICAgIGZvciAobGV0IHZpZGVvSWQgPSBhbGxWaWRlb3MubGVuZ3RoOyB2aWRlb0lkLS07KSB7XG4gICAgICBjb25zdCB2aWRlbyA9IC8qKiBAdHlwZSB7P0hUTUxWaWRlb0VsZW1lbnR9ICovIChhbGxWaWRlb3NbdmlkZW9JZF0pO1xuICAgICAgaWYgKHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pKSB7XG4gICAgICAgIGFjdGl2ZVZpZGVvID0gdmlkZW87XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWFjdGl2ZVZpZGVvKSByZXR1cm47XG4gICAgXG4gICAgZm9yIChsZXQgcmVxdWVzdDsgcmVxdWVzdCA9IHJlcXVlc3RzLnBvcCgpOykge1xuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHJlcXVlc3QpO1xuICAgIH1cblxuICAgIHdpbmRvdy5zZXRUaW1lb3V0ID0gdW50aHJvdHRsZWRTZXRUaW1lb3V0O1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQgPSB1bnRocm90dGxlZENsZWFyVGltZW91dDtcbiAgICBcbiAgICBhY3RpdmVWaWRlby5hZGRFdmVudExpc3RlbmVyKCd0aW1ldXBkYXRlJywgY2FsbEFuaW1hdGlvbkZyYW1lUmVxdWVzdHNBbmRUaW1lb3V0cyk7XG5cbiAgICBpbmZvKCdCeXBhc3NpbmcgYmFja2dyb3VuZCB0aW1lciB0aHJvdHRsaW5nJyk7XG5cbiAgfSBlbHNlIGlmIChhY3RpdmVWaWRlbykge1xuXG4gICAgaW5mbygnRmluaXNoZWQgYnlwYXNzaW5nIGJhY2tncm91bmQgdGltZXIgdGhyb3R0bGluZycpO1xuXG4gICAgd2luZG93LnNldFRpbWVvdXQgPSBvcmlnaW5hbFNldFRpbWVvdXQ7XG4gICAgd2luZG93LmNsZWFyVGltZW91dCA9IG9yaWdpbmFsQ2xlYXJUaW1lb3V0O1xuXG4gICAgYWN0aXZlVmlkZW8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndGltZXVwZGF0ZScsIGNhbGxBbmltYXRpb25GcmFtZVJlcXVlc3RzQW5kVGltZW91dHMpO1xuXG4gICAgYWN0aXZlVmlkZW8gPSBudWxsO1xuXG4gICAgZm9yIChsZXQgY2FsbGJhY2tJZCA9IGNhbGxiYWNrcy5sZW5ndGg7IGNhbGxiYWNrSWQtLTspIHtcbiAgICAgIGxldCByZXF1ZXN0ID0gb3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2tzW2NhbGxiYWNrSWRdKTtcbiAgICAgIHJlcXVlc3RzLnB1c2gocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGltZXN0YW1wID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1xuICAgIGZvciAobGV0IGlkIGluIHRpbWVvdXRzKSB7XG4gICAgICBsZXQgdGltZW91dCA9IHRpbWVvdXRzW2lkXTtcbiAgICAgIG9yaWdpbmFsU2V0VGltZW91dCh0aW1lb3V0WzFdLCB0aW1lb3V0WzBdIC0gdGltZXN0YW1wKTtcbiAgICB9XG4gICAgdGltZW91dHMgPSB7fTtcbiAgfVxufTtcbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCBieXBhc3NCYWNrZ3JvdW5kVGltZXJUaHJvdHRsaW5nKTtcbiIsImltcG9ydCB7IGluZm8gfSBmcm9tICcuL2xvZ2dlci5qcydcbmltcG9ydCB7IEJyb3dzZXIsIGdldEJyb3dzZXIsIGdldFJlc291cmNlIH0gZnJvbSAnLi9jb21tb24uanMnXG5cbmNvbnN0IENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUgPSAnZGF0YS1wbGF5aW5nLXBpY3R1cmUtaW4tcGljdHVyZSc7XG5cbmNvbnN0IC8qKiAhQXJyYXk8ZnVuY3Rpb24oSFRNTFZpZGVvRWxlbWVudCwgYm9vbGVhbik+ICovIGV2ZW50TGlzdGVuZXJzID0gW107XG5cbi8qKlxuICogVG9nZ2xlcyB2aWRlbyBQaWN0dXJlIGluIFBpY3R1cmVcbiAqXG4gKiBAcGFyYW0ge0hUTUxWaWRlb0VsZW1lbnR9IHZpZGVvIC0gdmlkZW8gZWxlbWVudCB0byB0b2dnbGUgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGVcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUgPSBmdW5jdGlvbih2aWRlbykge1xuICBjb25zdCBwbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pO1xuICBzd2l0Y2ggKGdldEJyb3dzZXIoKSkge1xuICAgIGNhc2UgQnJvd3Nlci5TQUZBUkk6XG4gICAgICBpZiAocGxheWluZ1BpY3R1cmVJblBpY3R1cmUpIHtcbiAgICAgIFx0dmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgnaW5saW5lJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQnJvd3Nlci5DSFJPTUU6XG4gICAgICBpZiAocGxheWluZ1BpY3R1cmVJblBpY3R1cmUpIHtcbiAgICAgICAgLy8gV29ya2Fyb3VuZCBDaHJvbWUgY29udGVudCBzY3JpcHRzIGJlaW5nIHVuYWJsZSB0byBjYWxsICdleGl0UGljdHVyZUluUGljdHVyZScgZGlyZWN0bHlcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC50ZXh0Q29udGVudCA9ICdkb2N1bWVudC5leGl0UGljdHVyZUluUGljdHVyZSgpJztcbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICBzY3JpcHQucmVtb3ZlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3JjZSBlbmFibGUgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGUgc3VwcG9ydFxuICAgICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVwaWN0dXJlaW5waWN0dXJlJyk7XG4gICAgICAgIFxuICAgICAgICB2aWRlby5yZXF1ZXN0UGljdHVyZUluUGljdHVyZSgpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBCcm93c2VyLlVOS05PV046XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG59O1xuXG4vKipcbiAqIEFkZHMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgbGlzdGVuZXJcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsIGJvb2xlYW4pfSBsaXN0ZW5lciAtIGFuIGV2ZW50IGxpc3RlbmVyIHRvIGFkZFxuICovXG5leHBvcnQgY29uc3QgYWRkUGljdHVyZUluUGljdHVyZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihsaXN0ZW5lcikge1xuICBjb25zdCBpbmRleCA9IGV2ZW50TGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICBpZiAoaW5kZXggPT0gLTEpIHtcbiAgICBldmVudExpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcbiAgfVxuXG4gIGlmIChnZXRCcm93c2VyKCkgPT0gQnJvd3Nlci5TQUZBUkkpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHZpZGVvUHJlc2VudGF0aW9uTW9kZUNoYW5nZWQsIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gIH1cbn07XG5cbi8qKlxuICogUmVtb3ZlcyBhIFBpY3R1cmUgaW4gUGljdHVyZSBldmVudCBsaXN0ZW5lclxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oSFRNTFZpZGVvRWxlbWVudCxib29sZWFuKX0gbGlzdGVuZXIgLSBhbiBldmVudCBsaXN0ZW5lciB0byByZW1vdmVcbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZVBpY3R1cmVJblBpY3R1cmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24obGlzdGVuZXIpIHtcbiAgY29uc3QgaW5kZXggPSBldmVudExpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICBldmVudExpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG4gIFxuICBpZiAoZ2V0QnJvd3NlcigpID09IEJyb3dzZXIuU0FGQVJJICYmIGV2ZW50TGlzdGVuZXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCB2aWRlb1ByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkKTsgICAgXG4gIH1cbn07XG5cbi8qKlxuICogRGlzcGF0Y2hlcyBhIFBpY3R1cmUgaW4gUGljdHVyZSBldmVudFxuICpcbiAqIEBwYXJhbSB7SFRNTFZpZGVvRWxlbWVudH0gdmlkZW8gLSB0YXJnZXQgdmlkZW8gZWxlbWVudFxuICovXG5jb25zdCBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCA9IGZ1bmN0aW9uKHZpZGVvKSB7XG4gIFxuICAvLyBJZ25vcmUgZXZlbnRzIGZyb20gb3RoZXIgdmlkZW8gZWxlbWVudHMgZS5nLiBhZHZlcnRzXG4gIGNvbnN0IGV4cGVjdGVkVmlkZW8gPSBnZXRSZXNvdXJjZSgpLnZpZGVvRWxlbWVudCh0cnVlKTtcbiAgaWYgKHZpZGVvICE9IGV4cGVjdGVkVmlkZW8pIHJldHVybjtcblxuICBjb25zdCBpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlID0gdmlkZW9QbGF5aW5nUGljdHVyZUluUGljdHVyZSh2aWRlbyk7XG4gIGlmIChpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgaW5mbygnVmlkZW8gZW50ZXJpbmcgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGUnKTtcbiAgfSBlbHNlIHtcbiAgICBpbmZvKCdWaWRlbyBsZWF2aW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlJyk7XG4gIH1cblxuICAvLyBDYWxsIGV2ZW50IGxpc3RlbmVycyB1c2luZyBhIGNvcHkgdG8gcHJldmVudCBwb3NzaWJsaXR5IG9mIGVuZGxlc3MgbG9vcGluZ1xuICBjb25zdCBldmVudExpc3RlbmVyc0NvcHkgPSBldmVudExpc3RlbmVycy5zbGljZSgpO1xuICBmb3IgKGxldCBsaXN0ZW5lcjsgbGlzdGVuZXIgPSBldmVudExpc3RlbmVyc0NvcHkucG9wKCk7KSB7XG4gICAgbGlzdGVuZXIodmlkZW8sIGlzUGxheWluZ1BpY3R1cmVJblBpY3R1cmUpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGF0Y2hlcyBhIFBpY3R1cmUgaW4gUGljdHVyZSBldmVudCBmb3IgZXZlcnkgJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJyBldmVudFxuICpcbiAqIEBwYXJhbSB7IUV2ZW50fSBldmVudCAtIGEgd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQgZXZlbnRcbiAqL1xuY29uc3QgdmlkZW9QcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4gIGNvbnN0IHZpZGVvID0gIC8qKiBAdHlwZSB7SFRNTFZpZGVvRWxlbWVudH0gKi8gKGV2ZW50LnRhcmdldCk7XG4gIGRpc3BhdGNoUGljdHVyZUluUGljdHVyZUV2ZW50KHZpZGVvKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHZpZGVvIGlzIHBsYXlpbmcgUGljdHVyZSBpbiBQaWN0dXJlXG4gKlxuICogQHBhcmFtIHtIVE1MVmlkZW9FbGVtZW50fSB2aWRlbyAtIHZpZGVvIGVsZW1lbnQgdG8gdGVzdFxuICogQHJldHVybiB7Ym9vbGVhbn0gXG4gKi9cbmV4cG9ydCBjb25zdCB2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24odmlkZW8pIHtcbiAgc3dpdGNoIChnZXRCcm93c2VyKCkpIHtcbiAgICBjYXNlIEJyb3dzZXIuU0FGQVJJOlxuICAgICAgcmV0dXJuIHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4tcGljdHVyZSc7XG4gICAgY2FzZSBCcm93c2VyLkNIUk9NRTpcbiAgICAgIHJldHVybiB2aWRlby5oYXNBdHRyaWJ1dGUoQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSk7XG4gICAgY2FzZSBCcm93c2VyLlVOS05PV046XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuLyoqXG4gKiBTZXRzIFBpY3R1cmUgaW4gUGljdHVyZSBhdHRyaWJ1dGUgYW5kIHRvZ2dsZXMgY2FwdGlvbnMgb24gZW50ZXJpbmcgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGVcbiAqXG4gKiBAcGFyYW0geyFFdmVudH0gZXZlbnQgLSBhbiBlbnRlcnBpY3R1cmVpbnBpY3R1cmUgZXZlbnRcbiAqL1xuY29uc3QgdmlkZW9EaWRFbnRlclBpY3R1cmVJblBpY3R1cmUgPSBmdW5jdGlvbihldmVudCkge1xuICBjb25zdCB2aWRlbyA9IC8qKiBAdHlwZSB7SFRNTFZpZGVvRWxlbWVudH0gKi8gKGV2ZW50LnRhcmdldCk7XG5cbiAgLy8gU2V0IHBsYXlpbmcgaW4gUGljdHVyZSBpbiBQaWN0dXJlIG1vZGUgYXR0cmlidXRlIGFuZCBkaXNwYXRjaCBldmVudFxuICB2aWRlby5zZXRBdHRyaWJ1dGUoQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSwgdHJ1ZSk7XG4gIGRpc3BhdGNoUGljdHVyZUluUGljdHVyZUV2ZW50KHZpZGVvKTtcblxuICAvLyBSZW1vdmUgUGljdHVyZSBpbiBQaWN0dXJlIGF0dHJpYnV0ZSBhbmQgZGlzcGF0Y2ggZXZlbnQgb24gbGVhdmluZyBQaWN0dXJlIGluIFBpY3R1cmUgbW9kZVxuICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsZWF2ZXBpY3R1cmVpbnBpY3R1cmUnLCBmdW5jdGlvbihldmVudCkge1xuICAgIHZpZGVvLnJlbW92ZUF0dHJpYnV0ZShDSFJPTUVfUExBWUlOR19QSVBfQVRUUklCVVRFKTtcbiAgICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG4gIH0sIHsgb25jZTogdHJ1ZSB9KTtcbn07XG5cbi8qKlxuICogQWRkcyBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgbGlzdGVuZXJzIHRvIGFsbCB2aWRlbyBlbGVtZW50c1xuICovXG5leHBvcnQgY29uc3QgYWRkVmlkZW9FbGVtZW50TGlzdGVuZXJzID0gZnVuY3Rpb24oKSB7XG4gIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJyk7XG4gIGZvciAobGV0IGluZGV4ID0gMCwgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnRzW2luZGV4XTsgaW5kZXgrKykge1xuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZW50ZXJwaWN0dXJlaW5waWN0dXJlJywgdmlkZW9EaWRFbnRlclBpY3R1cmVJblBpY3R1cmUpO1xuICB9XG59O1xuIl0sCiJuYW1lcyI6WyJhY3RpdmVWaWRlbyIsInRpbWVvdXRJZCIsInRpbWVvdXRzIiwicmVxdWVzdHMiLCJjYWxsYmFja3MiLCJvcmlnaW5hbFNldFRpbWVvdXQiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0Iiwib3JpZ2luYWxDbGVhclRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJvcmlnaW5hbFJlcXVlc3RBbmltYXRpb25GcmFtZSIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsInRyYWNrQW5pbWF0aW9uRnJhbWVSZXF1ZXN0IiwiY2FsbGJhY2siLCJyZXF1ZXN0IiwicHVzaCIsImNsZWFyQW5pbWF0aW9uRnJhbWVSZXF1ZXN0cyIsImxlbmd0aCIsImNhbGxBbmltYXRpb25GcmFtZVJlcXVlc3RzQW5kVGltZW91dHMiLCJjYWxsYmFja3NDb3B5Iiwic2xpY2UiLCJ0aW1lc3RhbXAiLCJwZXJmb3JtYW5jZSIsIm5vdyIsInBvcCIsInRpbWVvdXRzQ29weSIsImlkIiwidGltZW91dCIsImV2YWwiLCJ1bnRocm90dGxlZFNldFRpbWVvdXQiLCJ0b1N0cmluZyIsInVudGhyb3R0bGVkQ2xlYXJUaW1lb3V0IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZyIsImhpZGRlbiIsImFsbFZpZGVvcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ2aWRlb0lkIiwidmlkZW8iLCJ3ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2FsbGJhY2tJZCJdCn0K diff --git a/out/PiPer-safari-legacy.safariextension/scripts/legacy.js b/out/PiPer-safari-legacy.safariextension/scripts/legacy.js new file mode 100644 index 0000000..bdebeb5 --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/scripts/legacy.js @@ -0,0 +1,7 @@ +var a;a||(a=!0,(()=>{'use strict';(function(){function f(a){"upgradeAlertShownResponse"===a.name&&(safari.self.removeEventListener("message",f,!1),h(a.message))}function h(a){const c=Date.now();g||c-a<(15566652E5<=c?36E5:15540732E5<=c?864E5:15513984E5<=c?6048E5:2628E6)||(a=k().replace("[url]",'').replace("[/url]",""),l(a,function(){safari.self.tab.dispatchMessage("setUpgradeAlertShown",c)}), +g=!0)}function l(a,c){const d=document.createElement("div");d.style.cssText="position:fixed;top:30px;left:50%;transform:translateX(-50%);width:calc(100% - 80px);max-width:600px;border-radius:5px;background-color:#e66;padding:10px;z-index:9999;font-family:-apple-system;line-height:1.1;color:#fff";var b=document.createElement("img");b.src=safari.extension.baseURI+"images/default.svg";b.style.cssText="float:left;width:25px;height:25px;margin:5px";d.appendChild(b);b=document.createElement("div");b.innerHTML= +"\u00d7";b.style.cssText="float:right;width:25px;margin:0 5px;font-size:30px;text-align:center;opacity:.6;cursor:pointer";d.appendChild(b);const e=document.createElement("div");e.innerHTML=`PiPer
${a}`;e.style.cssText="font-size:16px;margin:0 45px";d.appendChild(e);b.addEventListener("click",function(){document.body.removeChild(d);c()});document.body.appendChild(d)}function k(){switch(navigator.language.substring(0,2)){case "it":return"Apple finir\u00e0 presto il supporto per questa versione di PiPer. Esegui l'upgrade alla versione per [url]Mac App Store[/url] ora"; +case "es":return"Apple terminar\u00e1 el soporte para esta versi\u00f3n de PiPer pronto. Por favor actualice a la versi\u00f3n de [url]Mac App Store[/url] ahora";case "de":return"Apple wird den Support f\u00fcr diese Version von PiPer in K\u00fcrze beenden. Aktualisieren Sie jetzt auf die [url]Mac App Store-Version[/url]";case "nl":return"Apple zal binnenkort de ondersteuning voor deze versie van PiPer be\u00ebindigen. Upgrade nu naar de [url]Mac App Store-versie[/url]";case "fr":return"Apple va bient\u00f4t mettre fin au support de cette version de PiPer. Veuillez passer \u00e0 la version [url]Mac App Store[/url] maintenant"; +case "pt":return"A Apple encerrar\u00e1 o suporte para esta vers\u00e3o do PiPer em breve. Por favor, atualize para a vers\u00e3o [url]Mac App Store[/url] agora";default:return"Apple will end support for this version of PiPer soon. Please upgrade to the [url]Mac App Store version[/url] now"}}let g=!1;document.addEventListener("webkitpresentationmodechanged",function(a){"picture-in-picture"==a.target.webkitPresentationMode&&(safari.self.addEventListener("message",f,!1),safari.self.tab.dispatchMessage("getUpgradeAlertShown"))}, +{capture:!0})})();})()); +//# sourceMappingURL=data:application/json;base64,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LE1BQU8sOElBQ1Q7S0FBSyxJQUFMLENBQ0UsTUFBTyxpSkFFVCxTQUNFLE1BQU8sbUhBZlgsQ0FGOEMsQ0FQaEQsSUFBbUJ6QixFQUFvQixDQUFBLENBNkd2Q1MsU0FBQSxDQUFTWSxnQkFBVCxDQUEwQiwrQkFBMUIsQ0FBMkQsUUFBUSxDQUFDTSxDQUFELENBQU8sQ0FFcEMsb0JBQXBDLEVBRGdEQSxDQUNoRCxDQURzREMsTUFDdEQsQ0FBVUMsc0JBQVYsR0FDRXRDLE1BQUEsQ0FBT0MsSUFBUCxDQUFZNkIsZ0JBQVosQ0FBNkIsU0FBN0IsQ0FBd0NqQyxDQUF4QyxDQUF3RCxDQUFBLENBQXhELENBQ0EsQ0FBQUcsTUFBQSxDQUFPQyxJQUFQLENBQVlhLEdBQVosQ0FBZ0JDLGVBQWhCLENBQWdDLHNCQUFoQyxDQUZGLENBRndFLENBQTFFO0FBTUcsQ0FBRXdCLFFBQVMsQ0FBQSxDQUFYLENBTkgsQ0EvR1csQ0FBWixDQUFEOyIsCiJzb3VyY2VzIjpbIi4vbGVnYWN5LmpzIl0sCiJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICBcbiAgbGV0IC8qKiBib29sZWFuICovIHVwZ3JhZGVBbGVydFNob3duID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgbG9jYWxpemVkIGxlZ2FjeSB1cGdyYWRlIGFsZXJ0IG1lc3NhZ2VcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgY29uc3QgbG9jYWxpemVkVXBncmFkZUFsZXJ0TWVzc2FnZSA9IGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cmluZygwLCAyKTtcbiAgICBzd2l0Y2ggKGxhbmd1YWdlKSB7XG4gICAgICBjYXNlICdpdCc6XG4gICAgICAgIHJldHVybiAnQXBwbGUgZmluaXJcdTAwZTAgcHJlc3RvIGlsIHN1cHBvcnRvIHBlciBxdWVzdGEgdmVyc2lvbmUgZGkgUGlQZXIuIEVzZWd1aSBsXFwndXBncmFkZSBhbGxhIHZlcnNpb25lIHBlciBbdXJsXU1hYyBBcHAgU3RvcmVbL3VybF0gb3JhJztcbiAgICAgIGNhc2UgJ2VzJzpcbiAgICAgICAgcmV0dXJuICdBcHBsZSB0ZXJtaW5hclx1MDBlMSBlbCBzb3BvcnRlIHBhcmEgZXN0YSB2ZXJzaVx1MDBmM24gZGUgUGlQZXIgcHJvbnRvLiBQb3IgZmF2b3IgYWN0dWFsaWNlIGEgbGEgdmVyc2lcdTAwZjNuIGRlIFt1cmxdTWFjIEFwcCBTdG9yZVsvdXJsXSBhaG9yYSc7XG4gICAgICBjYXNlICdkZSc6XG4gICAgICAgIHJldHVybiAnQXBwbGUgd2lyZCBkZW4gU3VwcG9ydCBmXHUwMGZjciBkaWVzZSBWZXJzaW9uIHZvbiBQaVBlciBpbiBLXHUwMGZjcnplIGJlZW5kZW4uIEFrdHVhbGlzaWVyZW4gU2llIGpldHp0IGF1ZiBkaWUgW3VybF1NYWMgQXBwIFN0b3JlLVZlcnNpb25bL3VybF0nO1xuICAgICAgY2FzZSAnbmwnOlxuICAgICAgICByZXR1cm4gJ0FwcGxlIHphbCBiaW5uZW5rb3J0IGRlIG9uZGVyc3RldW5pbmcgdm9vciBkZXplIHZlcnNpZSB2YW4gUGlQZXIgYmVcdTAwZWJpbmRpZ2VuLiBVcGdyYWRlIG51IG5hYXIgZGUgW3VybF1NYWMgQXBwIFN0b3JlLXZlcnNpZVsvdXJsXSc7XG4gICAgICBjYXNlICdmcic6XG4gICAgICAgIHJldHVybiAnQXBwbGUgdmEgYmllbnRcdTAwZjR0IG1ldHRyZSBmaW4gYXUgc3VwcG9ydCBkZSBjZXR0ZSB2ZXJzaW9uIGRlIFBpUGVyLiBWZXVpbGxleiBwYXNzZXIgXHUwMGUwIGxhIHZlcnNpb24gW3VybF1NYWMgQXBwIFN0b3JlWy91cmxdIG1haW50ZW5hbnQnO1xuICAgICAgY2FzZSAncHQnOlxuICAgICAgICByZXR1cm4gJ0EgQXBwbGUgZW5jZXJyYXJcdTAwZTEgbyBzdXBvcnRlIHBhcmEgZXN0YSB2ZXJzXHUwMGUzbyBkbyBQaVBlciBlbSBicmV2ZS4gUG9yIGZhdm9yLCBhdHVhbGl6ZSBwYXJhIGEgdmVyc1x1MDBlM28gW3VybF1NYWMgQXBwIFN0b3JlWy91cmxdIGFnb3JhJztcbiAgICAgIGNhc2UgJ2VuJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnQXBwbGUgd2lsbCBlbmQgc3VwcG9ydCBmb3IgdGhpcyB2ZXJzaW9uIG9mIFBpUGVyIHNvb24uIFBsZWFzZSB1cGdyYWRlIHRvIHRoZSBbdXJsXU1hYyBBcHAgU3RvcmUgdmVyc2lvblsvdXJsXSBub3cnO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogU2hvd3MgYWxlcnRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBhIG1lc3NhZ2UgdG8gZGlzcGxheVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKCl9IGNhbGxiYWNrIC0gYSBmdW5jdGlvbiBjYWxsZWQgYWZ0ZXIgYWxlcnQgZGlzbWlzc2VkXG4gICAqL1xuICBjb25zdCBzaG93QWxlcnQgPSBmdW5jdGlvbihtZXNzYWdlLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGFsZXJ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgYWxlcnQuc3R5bGUuY3NzVGV4dCA9IGBwb3NpdGlvbjpmaXhlZDt0b3A6MzBweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt3aWR0aDpjYWxjKDEwMCUgLSA4MHB4KTttYXgtd2lkdGg6NjAwcHg7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZC1jb2xvcjojZTY2O3BhZGRpbmc6MTBweDt6LWluZGV4Ojk5OTk7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbTtsaW5lLWhlaWdodDoxLjE7Y29sb3I6I2ZmZmA7XG5cbiAgICBjb25zdCBpbWFnZSA9IC8qKiBAdHlwZSB7SFRNTEltYWdlRWxlbWVudH0gKi8gKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpKTtcbiAgICBpbWFnZS5zcmMgPSBzYWZhcmkuZXh0ZW5zaW9uLmJhc2VVUkkgKyAnaW1hZ2VzL2RlZmF1bHQuc3ZnJztcbiAgICBpbWFnZS5zdHlsZS5jc3NUZXh0ID0gYGZsb2F0OmxlZnQ7d2lkdGg6MjVweDtoZWlnaHQ6MjVweDttYXJnaW46NXB4YDtcbiAgICBhbGVydC5hcHBlbmRDaGlsZChpbWFnZSk7XG5cbiAgICBjb25zdCBjbG9zZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNsb3NlLmlubmVySFRNTCA9ICdcdTAwZDcnO1xuICAgIGNsb3NlLnN0eWxlLmNzc1RleHQgPSBgZmxvYXQ6cmlnaHQ7d2lkdGg6MjVweDttYXJnaW46MCA1cHg7Zm9udC1zaXplOjMwcHg7dGV4dC1hbGlnbjpjZW50ZXI7b3BhY2l0eTouNjtjdXJzb3I6cG9pbnRlcmA7XG4gICAgYWxlcnQuYXBwZW5kQ2hpbGQoY2xvc2UpO1xuXG4gICAgY29uc3QgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gYDxiIHN0eWxlPVwiZm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6NzAwXCI+UGlQZXI8L2I+PC9icj4ke21lc3NhZ2V9YDtcbiAgICBjb250ZW50LnN0eWxlLmNzc1RleHQgPSBgZm9udC1zaXplOjE2cHg7bWFyZ2luOjAgNDVweGA7XG4gICAgYWxlcnQuYXBwZW5kQ2hpbGQoY29udGVudCk7XG5cbiAgICBjbG9zZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhbGVydCk7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH0pO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhbGVydCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNob3dzIHVwZ3JhZGUgdG8gTWFjIEFwcCBTdG9yZSBhbGVydCBpZiBuZWVkZWRcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGRpc21pc3NlZFRpbWVzdGFtcCAtIHRpbWVzdGFtcCB1cGdyYWRlIGFsZXJ0IHdhcyBsYXN0IGRpc21pc3NlZCBpbiBtaWxsaXNlY29uZHNcbiAgICovXG4gIGNvbnN0IHNob3dVcGdyYWRlQWxlcnRJZk5lZWRlZCA9IGZ1bmN0aW9uKGRpc21pc3NlZFRpbWVzdGFtcCkge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuXG4gICAgbGV0IC8qKiBudW1iZXIgKi8gYWxlcnRJbnRlcnZhbDtcbiAgICBpZiAoY3VycmVudFRpbWVzdGFtcCA+PSAxNTU2NjY1MjAwMDAwKSB7IC8vIDIwMTktMDUtMDFcbiAgICAgIGFsZXJ0SW50ZXJ2YWwgPSAzLjZlKzY7IC8vIGhvdXJseVxuICAgIH0gZWxzZSBpZiAoY3VycmVudFRpbWVzdGFtcCA+PSAxNTU0MDczMjAwMDAwKSB7IC8vIDIwMTktMDQtMDFcbiAgICAgIGFsZXJ0SW50ZXJ2YWwgPSA4LjY0ZSs3OyAvLyBkYWlseVxuICAgIH0gZWxzZSBpZiAoY3VycmVudFRpbWVzdGFtcCA+PSAxNTUxMzk4NDAwMDAwKSB7IC8vIDIwMTktMDMtMDFcbiAgICAgIGFsZXJ0SW50ZXJ2YWwgPSA2LjA0OGUrODsgLy8gd2Vla2x5XG4gICAgfSBlbHNlIHtcbiAgICAgIGFsZXJ0SW50ZXJ2YWwgPSAyLjYyOGUrOTsgLy8gbW9udGhseVxuICAgIH1cblxuICAgIGlmICh1cGdyYWRlQWxlcnRTaG93biB8fCBjdXJyZW50VGltZXN0YW1wIC0gZGlzbWlzc2VkVGltZXN0YW1wIDwgYWxlcnRJbnRlcnZhbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBsb2NhbGl6ZWRVcGdyYWRlQWxlcnRNZXNzYWdlKClcbiAgICAgIC5yZXBsYWNlKCdbdXJsXScsICc8YSBocmVmPVwiaHR0cHM6Ly9pdHVuZXMuYXBwbGUuY29tL2FwcC9pZDE0MjE5MTU1MTg/bXQ9MTImbHM9MVwiIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtjb2xvcjp3aGl0ZVwiIHRhcmdldD1cIl9ibGFua1wiPicpXG4gICAgICAucmVwbGFjZSgnWy91cmxdJywgJzwvYT4nKTtcblxuICAgIHNob3dBbGVydChtZXNzYWdlLCBmdW5jdGlvbigpIHtcbiAgICAgIHNhZmFyaS5zZWxmLnRhYi5kaXNwYXRjaE1lc3NhZ2UoJ3NldFVwZ3JhZGVBbGVydFNob3duJywgY3VycmVudFRpbWVzdGFtcCk7XG4gICAgfSk7XG5cbiAgICB1cGdyYWRlQWxlcnRTaG93biA9IHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgU2FmYXJpICd1cGdyYWRlQWxlcnRTaG93blJlc3BvbnNlJyBtZXNzYWdlcyBmcm9tIGdsb2JhbCBwYWdlIGFuZCBzaG93cyBhbGVydCBpZiBuZWVkZWRcbiAgICpcbiAgICogQHBhcmFtIHtTYWZhcmlFeHRlbnNpb25NZXNzYWdlRXZlbnR9IG1lc3NhZ2VFdmVudCAtIGEgU2FmYXJpIGV4dGVuc2lvbiBtZXNzYWdlXG4gICAqL1xuICBjb25zdCBtZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKC8qKiBTYWZhcmlFeHRlbnNpb25NZXNzYWdlRXZlbnQgKi8gbWVzc2FnZUV2ZW50KSB7XG4gICAgaWYgKG1lc3NhZ2VFdmVudC5uYW1lID09PSAndXBncmFkZUFsZXJ0U2hvd25SZXNwb25zZScpIHtcbiAgICAgIHNhZmFyaS5zZWxmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlciwgZmFsc2UpO1xuICAgICAgY29uc3QgZGlzbWlzc2VkVGltZXN0YW1wID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIChtZXNzYWdlRXZlbnQubWVzc2FnZSk7XG4gICAgICBzaG93VXBncmFkZUFsZXJ0SWZOZWVkZWQoZGlzbWlzc2VkVGltZXN0YW1wKTtcbiAgICB9XG4gIH1cblxuICAvLyBMaXN0ZW4gZm9yIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIGV2ZW50cyBhbmQgcmVxdWVzdCBsYXN0IHVwZ3JhZGUgYWxlcnQgc2hvd24gdGltZVxuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICBjb25zdCB2aWRlbyA9ICAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuICAgIGlmICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnKSB7XG4gICAgICBzYWZhcmkuc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIsIGZhbHNlKTtcbiAgICAgIHNhZmFyaS5zZWxmLnRhYi5kaXNwYXRjaE1lc3NhZ2UoJ2dldFVwZ3JhZGVBbGVydFNob3duJyk7XG4gICAgfVxuICB9LCB7IGNhcHR1cmU6IHRydWUgfSk7IFxuXG59KSgpO1xuIl0sCiJuYW1lcyI6WyJtZXNzYWdlSGFuZGxlciIsIm1lc3NhZ2VFdmVudCIsIm5hbWUiLCJzYWZhcmkiLCJzZWxmIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNob3dVcGdyYWRlQWxlcnRJZk5lZWRlZCIsIm1lc3NhZ2UiLCJkaXNtaXNzZWRUaW1lc3RhbXAiLCJjdXJyZW50VGltZXN0YW1wIiwiRGF0ZSIsIm5vdyIsInVwZ3JhZGVBbGVydFNob3duIiwiYWxlcnRJbnRlcnZhbCIsImxvY2FsaXplZFVwZ3JhZGVBbGVydE1lc3NhZ2UiLCJyZXBsYWNlIiwic2hvd0FsZXJ0IiwidGFiIiwiZGlzcGF0Y2hNZXNzYWdlIiwiY2FsbGJhY2siLCJhbGVydCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiY3NzVGV4dCIsImltYWdlIiwic3JjIiwiZXh0ZW5zaW9uIiwiYmFzZVVSSSIsImFwcGVuZENoaWxkIiwiY2xvc2UiLCJpbm5lckhUTUwiLCJjb250ZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImJvZHkiLCJyZW1vdmVDaGlsZCIsIm5hdmlnYXRvciIsImxhbmd1YWdlIiwic3Vic3RyaW5nIiwiZXZlbnQiLCJ0YXJnZXQiLCJ3ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwiY2FwdHVyZSJdCn0K diff --git a/out/PiPer-safari-legacy.safariextension/scripts/main.js b/out/PiPer-safari-legacy.safariextension/scripts/main.js new file mode 100644 index 0000000..7afbf64 --- /dev/null +++ b/out/PiPer-safari-legacy.safariextension/scripts/main.js @@ -0,0 +1,38 @@ +var a;a||(a=!0,(()=>{'use strict';const d=console.error.bind(console,"[PiPer] ");let f=null;function g(){const a=new XMLHttpRequest;a.open("GET",safari.extension.baseURI+"scripts/fix.js");a.onload=function(){const b=document.createElement("script");b.setAttribute("type","module");b.appendChild(document.createTextNode(a.responseText));document.head.appendChild(b)};a.send()};const l=[];function m(a){n(a)?a.webkitSetPresentationMode("inline"):a.webkitSetPresentationMode("picture-in-picture")}function p(a){-1==l.indexOf(a)&&l.push(a);document.addEventListener("webkitpresentationmodechanged",r,{capture:!0})}function r(a){a=a.target;var b=f.a(!0);if(a==b){b=n(a);var c=l.slice();for(let e;e=c.pop();)e(a,b)}}function n(a){return"picture-in-picture"==a.webkitPresentationMode};const t={"button-title":{en:"Open Picture in Picture mode",de:"Bild-in-Bild starten",nl:"Beeld in beeld starten",fr:"D\u00e9marrer Image dans l\u2019image"}};function u(){var a=navigator.language.substring(0,2);const b=t["button-title"];if(b&&(a=b[a]||b.en))return a;d("No localized string found for key 'button-title'");return""};let v=null,w=!1,x=!1,y=!1,z="";function A(a){f.l&&(w=!0,p(B),!a&&(a=f.a(!0)))&&(x=n(a),v=C(a),D())}function C(a){const b=a.textTracks;for(let c=b.length;c--;)if("PiPer_track"===b[c].label)return b[c];return a.addTextTrack("captions","PiPer_track","en")}function B(a,b){if(x=b)v=C(a),v.mode="showing";z="";D()}function E(a,b=!0){for(;v.activeCues.length;)v.removeCue(v.activeCues[0]);b&&a&&!y&&(v.addCue(new VTTCue(a.currentTime,a.currentTime+60,"")),y=!0)} +function D(){var a=f.l();const b=f.a();if(x&&a){a.style.visibility="hidden";var c=a.textContent;if(c!=z&&(z=c,E(b,!c),c)){c="";for(a=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1);a.nextNode();){const e=a.currentNode.nodeValue.trim();if(e){const k=window.getComputedStyle(a.currentNode.parentElement);c="italic"==k.fontStyle?c+`${e}`:"underline"==k.textDecoration?c+`${e}`:c+e;c+=" "}else"\n"!=c.charAt(c.length-1)&&(c+="\n")}c=c.trim();v.mode="showing";v.addCue(new VTTCue(b.currentTime, +b.currentTime+60,c));y=!1}}else E(b),a&&(a.style.visibility="")};let F=null; +function G(a){if(!F){F=document.createElement(f.i||"button");F.id="PiPer_button";F.title=u();var b=f.f;b&&(F.style.cssText=b);if(b=f.g)F.className=b;const e=document.createElement("img");e.style.width=e.style.height="100%";if(b=f.h)e.style.transform=`scale(${b})`;F.appendChild(e);b=f.s;var c=f.o;b||(b="default",c="default-exit");const k=safari.extension.baseURI+`images/${b}.svg`;e.src=k;if(c){const h=safari.extension.baseURI+`images/${c}.svg`;p(function(q,L){e.src=L?h:k})}if(b=f.j)c=document.createElement("style"),c.appendChild(document.createTextNode(`#${"PiPer_button"}:hover{${b}}`)), +F.appendChild(c);F.addEventListener("click",function(h){h.preventDefault();(h=f.a(!0))?m(h):d("Unable to find video")})}a.insertBefore(F,f.c?f.c(a):null)};function H(a){let b=document;for(const c of a)if(b=(b=b.querySelector(c))&&b.shadowRoot,!b)return null;return b};function I(){function a(e){let k=null;return function(h){const q=k?document.getElementById(k):null;if(q&&!h)return q;if(h=e())h.id||(h.id="PiPer_"+b++),k=h.id;return h}}let b=0;const c=f;c.b=a(c.b);c.a=a(c.a);c.l&&(c.l=a(c.l))};const J={"9now":{g:"vjs-control vjs-button",j:"filter:brightness(50%) sepia(1) hue-rotate(167deg) saturate(253%) brightness(104%)",c:function(a){return a.querySelector(".vjs-fullscreen-control")},b:function(){return document.querySelector(".vjs-control-bar")},h:.7,f:"order:999999;cursor:pointer;height:44px;width:40px",l:function(){const a=f.a();return a&&a.parentElement.querySelector(".vjs-text-track-display")},a:function(){return document.querySelector("video.vjs-tech")}},aktualne:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo", +i:"div",j:"filter:brightness(50%) sepia(1) hue-rotate(311deg) saturate(550%) brightness(49%)!important",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"width:38px;filter:brightness(80%)",a:function(){return document.querySelector("video.jw-video")}},amazon:{j:"opacity:1!important",c:function(a){return a.querySelector(".fullscreenButtonWrapper")},b:function(){const a=document.getElementById("dv-web-player");return a&&a.querySelector(".hideableTopButtons")}, +f:"position:relative;left:8px;width:3vw;height:2vw;min-width:35px;min-height:24px;border:0;padding:0;background-color:transparent;opacity:.8",l:function(){const a=document.getElementById("dv-web-player");return a&&a.querySelector(".captions")},a:function(){const a=document.querySelector(".rendererContainer");return a&&a.querySelector('video[width="100%"]')}},apple:{g:"footer__control hydrated",i:"div",j:"opacity:.8!important",c:function(a){return a.lastChild},b:function(){var a=H(["apple-tv-plus-player", +"amp-video-player-internal"]);if(a&&(a=a.querySelector("amp-playback-controls-full-screen")))return a.parentElement},f:"transition:opacity .15s;cursor:pointer;opacity:.9",a:function(){const a=H(["apple-tv-plus-player","amp-video-player-internal","amp-video-player"]);if(a)return a.querySelector("video")}},bbc:{b:function(){return null},l:function(){return document.querySelector(".p_subtitlesContainer")},a:function(){return document.querySelector("#mediaContainer video[src]")}},ceskatelevize:{g:"videoButtonShell dontHideControls cursorPointer focusableBtn", +i:"div",j:"filter:brightness(50%) sepia(1) hue-rotate(170deg) saturate(250%) brightness(90%)",c:function(){return document.getElementById("fullScreenShell")},h:1.2,f:"width:18px;height:18px;display:inline-block",b:function(){return document.getElementById("videoButtons")},a:function(){return document.getElementById("video")}},crunchyroll:{g:"vjs-control vjs-button",j:"opacity:1!important",h:.6,f:"position:absolute;right:100px;opacity:.75;cursor:pointer",b:function(){return document.querySelector(".vjs-control-bar")}, +a:function(){return document.getElementById("player_html5_api")}},curiositystream:{g:"vjs-control vjs-button",m:function(){var a=f.a(),b=a.parentElement;a.addEventListener("webkitbeginfullscreen",function(){const c=a.videoHeight+"px";b.style.setProperty("height",Math.floor(100*a.videoHeight/a.videoWidth)+"vw","important");b.style.setProperty("max-height",c)});a.addEventListener("webkitendfullscreen",function(){b.style.removeProperty("height");b.style.removeProperty("max-height")})},j:"opacity:1!important", +c:function(a){return a.lastChild},b:function(){const a=document.getElementById("main-player");return a&&a.querySelector(".vjs-control-bar")},h:.7,f:"opacity:.8;cursor:pointer",a:function(){return document.getElementById("main-player_html5_api")}},dazn:{f:"\n width: 1.5rem;\n height: 1.5rem;\n color: white;\n background: transparent;\n position: relative;\n border: none;\n outline: none;\n border-radius: 0;\n cursor: pointer;\n -webkit-appearance: none;\n margin: 0.5rem;\n z-index: 1;\n ", +c:function(a){const b=document.querySelector('div[data-test-id^="PLAYER_LIVE_INDICATOR"]');return b?b:a.lastChild},b:function(){return document.querySelector('div[data-test-id^="PLAYER_BAR"]')},a:function(){return document.querySelector('div[data-test-id^="PLAYER_SOLUTION"] video')}},disneyplus:{g:"control-icon-btn",c:function(){return document.querySelector(".fullscreen-icon")},b:function(){return document.querySelector(".controls__right")},a:function(){return document.querySelector("video[src]")}}, +espn:{g:"media-icon",m:function(){const a=F,b=a.title;a.title="";const c=document.createElement("div");c.className="control-tooltip";c.style.cssText="right:0;bottom:35px;transition:bottom .2s ease-out";c.textContent=b;a.appendChild(c);a.addEventListener("mouseover",function(){a.classList.add("displaying");c.style.bottom="75px"});a.addEventListener("mouseout",function(){a.classList.remove("displaying");c.style.bottom="35px"})},i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".controls-right-horizontal")}, +h:.7,f:"width:44px;height:44px;order:4",l:function(){return document.querySelector(".text-track-display")},a:function(){return document.querySelector("video.js-video-content")}},eurosportplayer:{i:"div",j:"opacity:1!important",b:function(){return document.querySelector(".controls-bar-right-section")},h:.9,f:"height:100%;margin-right:15px;opacity:.8;cursor:pointer",a:function(){return document.querySelector(".video-player__screen")}},fubo:{i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".css-ja7yk7")}, +h:1.25,f:"height:24px;width:25px;margin:8px 10px 12px;cursor:pointer",a:function(){return document.getElementById("bitmovinplayer-video-video")}},giantbomb:{g:"av-chrome-control",i:"div",c:function(a){return a.querySelector(".js-vid-pin-wrap").nextSibling},b:function(){return document.querySelector(".av-controls--right")},h:.7,f:"height:100%;width:30px;opacity:1;cursor:pointer",a:function(){return document.querySelector('video[id^="video_js-vid-player"]')}},hulu:{m:function(){const a=F,b=a.title; +a.title="";const c=document.createElement("div");c.className="button-tool-tips";c.style.cssText="white-space:nowrap;padding:0 5px;right:0";c.textContent=b.toUpperCase();a.appendChild(c);a.addEventListener("mouseover",function(){c.style.display="block"});a.addEventListener("mouseout",function(){c.style.display="none"})},i:"div",j:"opacity:1!important",c:function(){return document.querySelector(".controls__view-mode-button")},b:function(){return document.querySelector("#dash-player-container .controls__menus-right")}, +f:"opacity:.7;cursor:pointer;width:24px",l:function(){return document.querySelector(".closed-caption-outband")},a:function(){return document.querySelector(".video-player")}},littlethings:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"width:38px",a:function(){return document.querySelector("video.jw-video")}},mashable:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo", +i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"top:-2px;width:38px",a:function(){return document.querySelector("video.jw-video")}},metacafe:{i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector("#player_place .tray")},h:.85,a:function(){return document.querySelector("#player_place video")}},mixer:{g:"control",i:"div",j:"background:rgba(255,255,255,.08)",c:function(a){return a.lastChild.previousSibling}, +b:function(){return document.querySelector(".control-container .toolbar .right")},h:.65,f:"width:36px;height:36px;border-radius:50%;cursor:pointer",a:function(){return document.querySelector(".control-container + video")}},mlb:{h:.7,f:"border:0;background:0 0;filter:brightness(80%)",j:"filter:brightness(120%)!important",b:function(){return document.querySelector(".bottom-controls-right")},c:function(a){return a.lastChild},a:function(){return document.querySelector(".mlbtv-media-player video")}},netflix:{g:"touchable PlayerControls--control-element nfp-button-control default-control-button", +j:"transform:scale(1.2)",c:function(a){return a.lastChild},b:function(){return document.querySelector(".PlayerControlsNeo__button-control-row")},h:.7,f:"min-width:2.3em",l:function(){const a=f.a();return a&&a.parentElement.querySelector(".player-timedtext")},a:function(){return document.querySelector(".VideoContainer video")}},ocs:{g:"footer-elt fltr",c:function(a){return a.querySelector("#togglePlay")},b:function(){return document.querySelector(".footer-block:last-child")},h:1.2,f:"display:block;width:25px;height:18px;margin-right:10px;margin-bottom:-10px;padding:0;border:0;background-color:transparent", +a:function(){return document.getElementById("LgyVideoPlayer")}},openload:{g:"vjs-control vjs-button",c:function(a){return a.lastChild},b:function(){return document.querySelector(".vjs-control-bar")},h:.6,f:"left:5px;cursor:pointer",a:function(){return document.getElementById("olvideo_html5_api")}},panopto:{g:"media-icon",m:function(){const a=F,b=a.title;a.title="";const c=document.createElement("div");c.className="control-tooltip";c.style.cssText="right:0;bottom:35px;transition:bottom .2s ease-out"; +c.textContent=b;a.appendChild(c);a.addEventListener("mouseover",function(){a.classList.add("displaying");c.style.bottom="75px"});a.addEventListener("mouseout",function(){a.classList.remove("displaying");c.style.bottom="35px"})},i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector("#transportControls")},h:.7,f:"width:44px;height:44px;order:4",a:function(){return document.querySelector("video#primaryVideo")}},pbs:{g:"jw-icon jw-icon-inline jw-button-color jw-reset",m:function(){document.querySelector(".jw-icon-fullscreen").addEventListener("click", +function(){const a=f.a();n(a)&&m(a)})},i:"div",j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-button-container")},h:.6,f:"opacity:.8",a:function(){return document.querySelector(".jw-video")}},periscope:{g:"Pill Pill--withIcon",i:"span",j:"opacity:.8!important;filter:brightness(125%)!important",c:function(a){return a.querySelector(".ShareBroadcast").nextSibling},b:function(){return document.querySelector(".VideoOverlayRedesign-BottomBar-Right")}, +h:.6,f:"opacity:.5;filter:brightness(200%)",a:function(){return document.querySelector(".Video video")}},plex:{m:function(){g()},j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){const a=document.querySelector('div[class^="FullPlayerTopControls-topControls"]');return a&&a.lastChild},h:2,f:"position:relative;top:-3px;width:30px;padding:10px;border:0;background:0 0;opacity:.7;outline:0;text-shadow:0 0 4px rgba(0,0,0,.45)",l:function(){return document.querySelector(".libjass-subs")}, +a:function(){return document.querySelector('video[class^="HTMLMedia-mediaElement"]')}},seznam:{g:"sznp-ui-widget-box",i:"div",j:"transform:scale(1.05)",c:function(a){return a.lastChild},b:function(){return document.querySelector(".sznp-ui-ctrl-panel-layout-wrapper")},h:.75,f:"cursor:pointer",a:function(){return document.querySelector(".sznp-ui-tech-video-wrapper video")}},streamable:{m:function(){const a=document.getElementById("player-progress"),b=window.getComputedStyle(a);F.style.right=b.right; +a.style.right=parseInt(b.right,10)+40+"px"},i:"div",j:"opacity:1!important",b:function(){return document.querySelector(".player-controls-right")},f:"position:absolute;bottom:10px;height:26px;width:26px;cursor:pointer;opacity:.9;filter:drop-shadow(rgba(0,0,0,.5) 0 0 2px)",a:function(){return document.getElementById("video-player-tag")}},ted:{g:"z-i:0 pos:r bottom:0 hover/bg:white.7 b-r:.1 p:1 cur:p",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector('[aria-controls="video1"]').parentElement.parentElement}, +m:function(){const a=F.querySelector("img");a.classList.add("w:2");a.classList.add("h:2")},a:function(){return document.querySelector('video[id^="ted-player-"]')}},theonion:{g:"jw-icon jw-icon-inline jw-button-color jw-reset jw-icon-logo",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".jw-controlbar-right-group")},f:"top:-2px;left:10px;width:38px",a:function(){return document.querySelector("video.jw-video")}},twitch:{g:"tw-border-bottom-left-radius-medium tw-border-bottom-right-radius-medium tw-border-top-left-radius-medium tw-border-top-right-radius-medium tw-button-icon tw-button-icon--overlay tw-core-button tw-core-button--overlay tw-inline-flex tw-relative tw-tooltip-wrapper", +m:function(){var a=F;const b=a.title;a.title="";const c=document.createElement("div");c.className="tw-tooltip tw-tooltip--align-right tw-tooltip--up";c.appendChild(document.createTextNode(b));a.appendChild(c);(a=document.querySelector("[data-a-target='player-fullscreen-button']"))&&a.addEventListener("click",function(){const e=f.a();n(e)&&m(e)})},c:function(a){return a.lastChild},b:function(){return document.querySelector(".player-controls__right-control-group,.player-buttons-right")},h:.8,l:function(){return document.querySelector(".player-captions-container")}, +a:function(){return document.querySelector("video[src]")}},udemy:{g:"btn",j:"opacity:1!important",c:function(){return document.querySelector('button[aria-label="Fullscreen"]')},b:function(){return document.querySelector('div[class^="control-bar--control-bar--"]')},h:.8,f:"width:3em;height:3em;padding:0;opacity:.8",l:function(){return document.querySelector('div[class^="captions-display--captions-container"]')},a:function(){return document.querySelector("video.vjs-tech")}},ustream:{g:"component shown", +i:"div",j:"opacity:1!important;filter:drop-shadow(0 0 5px rgba(255,255,255,.5))",c:function(a){return a.lastChild},h:.8,f:"opacity:.7",b:function(){return document.getElementById("controlPanelRight")},a:function(){return document.querySelector("#ViewerContainer video")}},vevo:{g:"player-control",c:function(a){return a.lastChild},b:function(){return document.querySelector("#control-bar .right-controls")},h:.7,f:"border:0;background:0 0",a:function(){return document.getElementById("html5-player")}}, +vice:{g:"vp__controls__icon__popup__container",i:"div",c:function(a){return a.lastChild},b:function(){return document.querySelector(".vp__controls__icons")},h:.6,f:"top:-11px",a:function(){return document.querySelector("video.jw-video")}},vid:{c:function(a){return a.lastChild},b:function(){return document.querySelector(".vjs-control-bar")},h:.7,f:"position:relative;top:-2px;left:9px;padding:0;margin:0",a:function(){return document.getElementById("video_player_html5_api")}},vijf:{g:"vjs-control vjs-button", +m:function(){document.getElementsByClassName("vjs-fullscreen-control")[0].style.order=10},b:function(){return document.getElementsByClassName("vjs-control-bar")[0]},f:"text-indent:0!important;margin-left:10px;order:9",a:function(){return document.querySelector('video[preload="metadata"]')}},vk:{g:"videoplayer_btn",i:"div",c:function(){return document.querySelector("div.videoplayer_btn_fullscreen")},f:"width:24px;height:45px;padding:0 8px",b:function(){return document.querySelector("div.videoplayer_controls")}, +a:function(){return document.querySelector("video.videoplayer_media_provider")}},vrt:{g:"vuplay-control",c:function(a){return a.lastChild},b:function(){return document.getElementsByClassName("vuplay-control-right")[0]},l:function(){return document.querySelector(".theoplayer-texttracks")},f:"width:30px;height:47px;padding:0;position:relative;top:-9px;right:8px",a:function(){return document.querySelector('video[preload="metadata"]')}},vrv:{g:"vjs-control vjs-button",m:function(){F.nextSibling.addEventListener("click", +function(){const a=f.a();n(a)&&m(a)});g()},j:"opacity:1!important",c:function(a){return a.lastChild},b:function(){return document.querySelector(".vjs-control-bar")},h:.6,f:"position:absolute;right:114px;width:50px;cursor:pointer;opacity:.6",l:function(){return document.querySelector(".libjass-subs")},a:function(){return document.getElementById("player_html5_api")}},yeloplay:{g:"button",m:function(){f.b().style.width="210px"},j:"opacity:1!important",c:function(){return document.getElementsByTagName("player-fullscreen-button")[0]}, +b:function(){return document.getElementsByClassName("buttons")[0]},h:.8,f:"margin-left:10px;width:50px;cursor:pointer;opacity:.8;height:40px!important;margin-bottom:0!important",a:function(){return document.querySelector("video[src]")}},youtube:{g:"ytp-button",m:function(){var a=F;const b=a.nextSibling,c=a.title,e=b.title;a.title="";a.addEventListener("mouseover",function(){b.title=c;b.dispatchEvent(new Event("mouseover"))});a.addEventListener("mouseout",function(){b.dispatchEvent(new Event("mouseout")); +b.title=e});g();{f.a();let k=!1;a=function(){if(k=w&&x){x=w=!1;D();{const q=l.indexOf(B);-1CFBundleShortVersionString 1.0.4 CFBundleVersion - 234 + 235 Developer Identifier BQ6Q24MF9X URL