Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-monaco-editor

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-monaco-editor - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

4

bundles/angular-monaco-editor.umd.js

@@ -183,3 +183,3 @@ (function (global, factory) {

var /** @type {?} */ loaderScript = document.createElement('script');
loaderScript.type = 'application/javascript';
loaderScript.type = 'text/javascript';
loaderScript.src = baseUrl + "/monaco/vs/loader.js";

@@ -436,2 +436,2 @@ loaderScript.addEventListener('load', onGotAmdLoader);

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vYW5ndWxhci1tb25hY28tZWRpdG9yL2xpYi9lZGl0b3IvY29uZmlnLnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9jb25zdGFudHMvZXZlbnRzLnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9zZXJ2aWNlcy9jb2RlLWVkaXRvci5ldmVudC5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudC50cyIsIm5nOi8vYW5ndWxhci1tb25hY28tZWRpdG9yL2xpYi9lZGl0b3IvZWRpdG9yLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbmplY3Rpb25Ub2tlbsOkwr3CnMOnwpTCqMOowq/CtMOmwpjCjlxuLy8gaHR0cHM6Ly9zZWdtZW50ZmF1bHQuY29tL2EvMTE5MDAwMDAwODYyNjM0OFxuZXhwb3J0IGNvbnN0IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0FOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcnKTtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyTW9uYWNvRWRpdG9yQ29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgZGVmYXVsdE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSxcbiAgb25Nb25hY29Mb2FkPzogRnVuY3Rpb247XG59IiwiZXhwb3J0IGNvbnN0IENPREVfRURJVE9SX0VWRU5UUyA9IHtcclxuICAgIG9uSW5pdDogJ29uSW5pdCcsXHJcbiAgICBvbkNoYW5nZTogJ29uQ2hhbmdlJyxcclxuICAgIG9uVG91Y2hlZDogJ29uVG91Y2hlZCdcclxufSIsImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JFdmVudFNlcnZpY2Uge1xyXG4gICAgcHVibGljIGV2ZW50TmFtZXMgPSBPYmplY3Qua2V5cyhDT0RFX0VESVRPUl9FVkVOVFMpO1xyXG4gICAgcHJpdmF0ZSBfZXZlbnRzOiBhbnkgPSB7fTsgLy8gw6TCvcK/w6fClMKow6TCusKLw6TCu8K2XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDDqMKuwr7Dp8K9wq7DpcKQwq/Dp8KUwqjDpMK6wovDpMK7wrZcclxuICAgICAqIEBwYXJhbSAgw6TCusKLw6TCu8K2XHJcbiAgICAgKi9cclxuICAgIGFkZEV2ZW50KGV2ZW50KXtcclxuICAgICAgICBhc3NpZ24odGhpcy5fZXZlbnRzLCBldmVudCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ldmVudHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpcmVFdmVudChldmVudCkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50c1tldmVudC5ldmVudE5hbWVdLmVtaXQoZXZlbnQpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRW1pdCBFdmVudDpcIiArIGV2ZW50KTtcclxuICAgIH1cclxufVxyXG4iLCJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgSW5qZWN0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQ29kZUVkaXRvckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09ERV9FRElUT1JfRVZFTlRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V2ZW50cyc7XG5cbmRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7XG5cbmxldCBsb2FkZWRNb25hY286IGJvb2xlYW4gPSBmYWxzZTtcbmxldCBsb2FkUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjEuw6XCsMKBw6jCo8KFQ29udHJvbFZhbHVlQWNjZXNzb3Jcbi8vIGh0dHBzOi8vY29kZS1leGFtcGxlcy5uZXQvemgtQ04vcS8yMTU0NzYxXG5leHBvcnQgY29uc3QgQ09ERV9FRElUT1JfSU5QVVRfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgLy8gaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdkYW5fMjAxMy9hcnRpY2xlL2RldGFpbHMvODEzMTQ5NTlcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsLy9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudCksLy9cbiAgbXVsdGk6IHRydWUvL1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci1tb25hY28tZWRpdG9yJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZWRpdG9yXCIgI2NvZGVFZGl0b3I+PC9kaXY+YCxcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjIwMHB4fS5lZGl0b3J7d2lkdGg6MTAwJTtoZWlnaHQ6OTglfWBdLFxuICAvLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6Mi7DpcK8wpXDpcKFwqXDpMK+wp3DqMK1wpbDpsKcwo3DpcKKwqFDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwcm92aWRlcnM6IFtDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUiwgQ29kZUVkaXRvckV2ZW50U2VydmljZV1cbn0pXG5cbi8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtiA8LT4gTW9uYWNvIEVkdG9yXG5cbi8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjozLjEgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciBcbmV4cG9ydCBjbGFzcyBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveXtcblxuICBwcm90ZWN0ZWQgX2VkaXRvcjogYW55O1xuICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XG4gIC8vIHByb3RlY3RlZCBfd2luZG93UmVzaXplU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnY29kZUVkaXRvcicpIF9lZGl0b3JDb21wb25lbnQ6IEVsZW1lbnRSZWY7IC8vw6XCisKow6bCgMKBw6bCt8K7w6XCisKgw6TCu8Kjw6fCoMKBw6fCvMKWw6jCvsKRw6XCmcKoXG4gIFxuICBAT3V0cHV0KCkgb25Jbml0O1xuICBAT3V0cHV0KCkgb25DaGFuZ2U7XG4gIEBPdXRwdXQoKSBvblRvdWNoZWQ7XG5cbiAgQElucHV0KCdvcHRpb25zJylcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgLy8gw6nCu8KYw6jCrsKkb3B0aW9ucyh0aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucykgKyDDqMKHwqrDpcKuwprDpMK5wolvcHRpb25zKG9wdGlvbnMpXG4gICAgdGhpcy5fb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLy8gQElucHV0KCdtb2RlbCcpXG4gIC8vIHNldCBtb2RlbChtb2RlbDogQW5ndWxhckVkaXRvck1vZGVsKSB7XG4gIC8vICAgdGhpcy5vcHRpb25zLm1vZGVsID0gbW9kZWw7XG4gIC8vICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAvLyAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgLy8gICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIMOmwrPCqMOlwoXCpUFuZ3VsYXJNb25hY29FZGl0b3JDb25maWfDr8K8wozDpcKcwqjDpcKIwpvDpcK7wrpFZGl0b3LDpcKuwp7DpMK+wovDpsKXwrbDqMKuwr7Dp8K9wq5jb25maWdcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIEBJbmplY3QoQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcsIHByaXZhdGUgY29kZUVkaXRvckV2ZW50U2VydmljZTogQ29kZUVkaXRvckV2ZW50U2VydmljZSkge1xuXG4gICAgLy8gw6XCiMKdw6XCp8KLw6XCjMKWw6jCh8Kqw6XCrsKaw6TCucKJw6TCusKLw6TCu8K2XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5ldmVudE5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIC8vIMOlwojCm8OlwrvCusOowofCqsOlwq7CmsOkwrnCicOkwrrCi8OkwrvCtsOvwrzCjMOmwq3CpMOlwqTChMOkwr3CnMOnwpTCqMOnwq3CicOmwpXCiMOkwrrCjjogQE91dHB1dCgpIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpIFxuICAgICAgc2VsZltuYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgICAgY29uc3QgZXZlbnRQYWlyID0gcGljayhzZWxmLCBuYW1lKTtcbiAgICAgIGNvZGVFZGl0b3JFdmVudFNlcnZpY2UuYWRkRXZlbnQoZXZlbnRQYWlyKTtcbiAgICB9KTtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChsb2FkZWRNb25hY28pIHtcbiAgICAgIC8vIFdhaXQgdW50aWwgbW9uYWNvIGVkaXRvciBpcyBhdmFpbGFibGVcbiAgICAgIGxvYWRQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkZWRNb25hY28gPSB0cnVlO1xuICAgICAgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZy5iYXNlVXJsIHx8ICcvYXNzZXRzJztcbiAgICAgICAgLy8gaWYgKHR5cGVvZigoPGFueT53aW5kb3cpLm1vbmFjbykgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vICAgcmVzb2x2ZSgpO1xuICAgICAgICAvLyAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICBjb25zdCBvbkdvdEFtZExvYWRlcjogYW55ID0gKCkgPT4ge1xuICAgICAgICAgIC8vIExvYWQgbW9uYWNvXG4gICAgICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7ICd2cyc6IGAke2Jhc2VVcmx9L21vbmFjby92c2AgfSB9KTtcbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUoWyd2cy9lZGl0b3IvZWRpdG9yLm1haW4nXSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcub25Nb25hY29Mb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMb2FkIEFNRCBsb2FkZXIgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghKDxhbnk+d2luZG93KS5yZXF1aXJlKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVyU2NyaXB0OiBIVE1MU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5zcmMgPSBgJHtiYXNlVXJsfS9tb25hY28vdnMvbG9hZGVyLmpzYDtcbiAgICAgICAgICBsb2FkZXJTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uR290QW1kTG9hZGVyKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvYWRlclNjcmlwdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25Hb3RBbWRMb2FkZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9lZGl0b3IgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRNb25hY28ob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coXCJJbml0IHRoZSBjdXN0b20gbW9uYWNvIGNvZGUgZWRpdG9yLlwiKTtcblxuICAgIC8vIGNvbnN0IGhhc01vZGVsID0gISFvcHRpb25zLm1vZGVsO1xuICAgIGNvbnN0IGhhc01vZGVsID0gZmFsc2U7XG5cbiAgICAvLyBpZiAoaGFzTW9kZWwpIHtcbiAgICAvLyAgIG9wdGlvbnMubW9kZWwgPSBtb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKG9wdGlvbnMubW9kZWwudmFsdWUsIG9wdGlvbnMubW9kZWwubGFuZ3VhZ2UsIG9wdGlvbnMubW9kZWwudXJpKTtcbiAgICAvLyB9XG4gICAgXG4gICAgdGhpcy5fZWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy5fZWRpdG9yQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFoYXNNb2RlbCkge1xuICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBtb25hY28gZWRpdG9yIC0+IG91dHNpZGUgY29tcG9uZW50XG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KChlOiBhbnkpID0+IHRoaXMub25DaGFuZ2VNb2RlbENvbnRlbnRIYW5kbGVyKGUpKTtcblxuICAgIHRoaXMuX2VkaXRvci5vbkRpZEJsdXJFZGl0b3JUZXh0KChlOiBhbnkpID0+IHRoaXMub25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSkpO1xuXG4gICAgLy8gcmVmcmVzaCBsYXlvdXQgb24gcmVzaXplIGV2ZW50LlxuICAgIC8vIGlmICh0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2VkaXRvci5sYXlvdXQoKSk7XG5cbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vbkluaXQsXG4gICAgICB0YXJnZXQ6IHRoaXMsXG4gICAgICBlZGl0b3I6IHRoaXMuX2VkaXRvclxuICAgIH0pO1xuICB9XG5cbiAgb25DaGFuZ2VNb2RlbENvbnRlbnRIYW5kbGVyKGUpe1xuICAgIGNvbnN0IF92YWx1ZSA9IHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpO1xuICAgIFxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vSlRhbmdtaW5nL3RtL2lzc3Vlcy80IG5nWm9uZcOowq/CpsOowqfCo1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy52YWx1ZSA9IF92YWx1ZSk7Ly8gdmFsdWUgaXMgbm90IHByb3BhZ2F0ZWQgdG8gcGFyZW50IHdoZW4gZXhlY3V0aW5nIG91dHNpZGUgem9uZS5cbiAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIGZyb20gdGhlIG1vbmFjbzpcIiArIHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIG9uQmx1ckVkaXRvclRleHRIYW5kbGVyKGUpe1xuXG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgLy9nZXQgYWNjZXNzb3JcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH07XG5cbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy52YWx1ZSkgey8vIMOmwrPCqMOmwoTCj8Oowr/CmcOnwqfCjcOlwobCmcOmwrPClcOvwrzCjMOlwoDCvMOlwr7Cl8Olwq3CpsOkwrnCoFxuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMudmFsdWUpOy8vw6XCnMKow6XCscKew6bCgMKnw6TCv8Kuw6nCpcKww6XCmcKow6nCh8KMw6jCsMKDw6fClMKob25jaGFuZ2VIYW5kbGVyw6bClsK5w6bCs8KVXG4gIH1cblxuICBsb2NhbEVkaXRvcigpey8vRGVtbzogb3V0c2lkZSBjb21wb25lbnQgLT4gbW9uYWNvIGVkaXRvclxuICAgIHRoaXMud3JpdGVWYWx1ZSgndGVzdCcpO1xuICB9XG5cbiAgLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjMuMiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29cblxuICAvLyBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gIFxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcblxuICAgIC8vIEZpeCBmb3IgdmFsdWUgY2hhbmdlIHdoaWxlIGRpc3Bvc2UgaW4gcHJvY2Vzcy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9lZGl0b3IgLyomJiAhdGhpcy5vcHRpb25zLm1vZGVsKi8pIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJ3cml0ZSB0byB0aGUgZWRpdG9yOlwiICsgdGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlcih0aGlzKTtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuICB9XG4gIFxuICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yw6bCj8KQw6TCvsKbw6fCmsKEw6TCusKLw6TCu8K2w6XCm8Kew6jCsMKDXG4gIG9uQ2hhbmdlSGFuZGxlciA9IChfOiBhbnkpID0+IHsgLy9Qcm9wYWdhdGUgQ2hhbmdlIHRvIG91dHNpZGVcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vbkNoYW5nZSxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGRhdGE6IF9cbiAgICB9KTtcbiAgfTtcblxuICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yw6bCj8KQw6TCvsKbw6fCmsKEw6TCusKLw6TCu8K2w6XCm8Kew6jCsMKDXG4gIG9uVG91Y2hlZEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25Ub3VjaGVkLFxuICAgICAgdGFyZ2V0OiB0aGlzXG4gICAgfSk7XG4gIH07XG59IiwiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLW1vbmFjby1lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgXVxufSlcblxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoY29uZmlnOiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJNb25hY29FZGl0b3JNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiSW5qZWN0aW9uVG9rZW4iLCJhc3NpZ24iLCJJbmplY3RhYmxlIiwiTkdfVkFMVUVfQUNDRVNTT1IiLCJmb3J3YXJkUmVmIiwiRXZlbnRFbWl0dGVyIiwicGljayIsIkNvbXBvbmVudCIsIk5nWm9uZSIsIkluamVjdCIsIlZpZXdDaGlsZCIsIk91dHB1dCIsIklucHV0IiwiTmdNb2R1bGUiLCJDb21tb25Nb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7QUFJQSx5QkFBYSw0QkFBNEIsR0FBRyxJQUFJQSxtQkFBYyxDQUFDLDhCQUE4QixDQUFDOzs7Ozs7QUNKOUYsSUFBTyxxQkFBTSxrQkFBa0IsR0FBRztRQUM5QixNQUFNLEVBQUUsUUFBUTtRQUNoQixRQUFRLEVBQUUsVUFBVTtRQUNwQixTQUFTLEVBQUUsV0FBVztLQUN6QixDQUFBOzs7Ozs7QUNKRDs7OEJBU3dCLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7MkJBQzVCLEVBQUU7Ozs7Ozs7Ozs7O1FBTXpCLHlDQUFROzs7OztZQUFSLFVBQVMsS0FBSztnQkFDVkMsYUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7O2FBRS9COzs7OztRQUVELDBDQUFTOzs7O1lBQVQsVUFBVSxLQUFLO2dCQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs7YUFFN0M7O29CQWpCSkMsZUFBVTs7cUNBUFg7Ozs7Ozs7QUNBQSxJQVlBLHFCQUFJLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDbEMscUJBQUksV0FBMEIsQ0FBQzs7O0FBSS9CLHlCQUFhLGdDQUFnQyxHQUFROztRQUVuRCxPQUFPLEVBQUVDLHVCQUFpQjs7UUFDMUIsV0FBVyxFQUFFQyxlQUFVLENBQUMsY0FBTSxPQUFBLDRCQUE0QixHQUFBLENBQUM7O1FBQzNELEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQzs7Ozs7Ozs7Ozs7UUFnREEsc0NBQW9CLElBQVksRUFBZ0QsUUFBMkMsc0JBQThD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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vYW5ndWxhci1tb25hY28tZWRpdG9yL2xpYi9lZGl0b3IvY29uZmlnLnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9jb25zdGFudHMvZXZlbnRzLnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9zZXJ2aWNlcy9jb2RlLWVkaXRvci5ldmVudC5zZXJ2aWNlLnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudC50cyIsIm5nOi8vYW5ndWxhci1tb25hY28tZWRpdG9yL2xpYi9lZGl0b3IvZWRpdG9yLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbmplY3Rpb25Ub2tlbsOkwr3CnMOnwpTCqMOowq/CtMOmwpjCjlxuLy8gaHR0cHM6Ly9zZWdtZW50ZmF1bHQuY29tL2EvMTE5MDAwMDAwODYyNjM0OFxuZXhwb3J0IGNvbnN0IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0FOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcnKTtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyTW9uYWNvRWRpdG9yQ29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgZGVmYXVsdE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSxcbiAgb25Nb25hY29Mb2FkPzogRnVuY3Rpb247XG59IiwiZXhwb3J0IGNvbnN0IENPREVfRURJVE9SX0VWRU5UUyA9IHtcclxuICAgIG9uSW5pdDogJ29uSW5pdCcsXHJcbiAgICBvbkNoYW5nZTogJ29uQ2hhbmdlJyxcclxuICAgIG9uVG91Y2hlZDogJ29uVG91Y2hlZCdcclxufSIsImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgYXNzaWduIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JFdmVudFNlcnZpY2Uge1xyXG4gICAgcHVibGljIGV2ZW50TmFtZXMgPSBPYmplY3Qua2V5cyhDT0RFX0VESVRPUl9FVkVOVFMpO1xyXG4gICAgcHJpdmF0ZSBfZXZlbnRzOiBhbnkgPSB7fTsgLy8gw6TCvcK/w6fClMKow6TCusKLw6TCu8K2XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDDqMKuwr7Dp8K9wq7DpcKQwq/Dp8KUwqjDpMK6wovDpMK7wrZcclxuICAgICAqIEBwYXJhbSAgw6TCusKLw6TCu8K2XHJcbiAgICAgKi9cclxuICAgIGFkZEV2ZW50KGV2ZW50KXtcclxuICAgICAgICBhc3NpZ24odGhpcy5fZXZlbnRzLCBldmVudCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ldmVudHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpcmVFdmVudChldmVudCkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50c1tldmVudC5ldmVudE5hbWVdLmVtaXQoZXZlbnQpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRW1pdCBFdmVudDpcIiArIGV2ZW50KTtcclxuICAgIH1cclxufVxyXG4iLCJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgSW5qZWN0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQ29kZUVkaXRvckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09ERV9FRElUT1JfRVZFTlRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V2ZW50cyc7XG5cbmRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7XG5cbmxldCBsb2FkZWRNb25hY286IGJvb2xlYW4gPSBmYWxzZTtcbmxldCBsb2FkUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjEuw6XCsMKBw6jCo8KFQ29udHJvbFZhbHVlQWNjZXNzb3Jcbi8vIGh0dHBzOi8vY29kZS1leGFtcGxlcy5uZXQvemgtQ04vcS8yMTU0NzYxXG5leHBvcnQgY29uc3QgQ09ERV9FRElUT1JfSU5QVVRfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgLy8gaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdkYW5fMjAxMy9hcnRpY2xlL2RldGFpbHMvODEzMTQ5NTlcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsLy9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudCksLy9cbiAgbXVsdGk6IHRydWUvL1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci1tb25hY28tZWRpdG9yJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZWRpdG9yXCIgI2NvZGVFZGl0b3I+PC9kaXY+YCxcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjIwMHB4fS5lZGl0b3J7d2lkdGg6MTAwJTtoZWlnaHQ6OTglfWBdLFxuICAvLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6Mi7DpcK8wpXDpcKFwqXDpMK+wp3DqMK1wpbDpsKcwo3DpcKKwqFDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwcm92aWRlcnM6IFtDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUiwgQ29kZUVkaXRvckV2ZW50U2VydmljZV1cbn0pXG5cbi8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtiA8LT4gTW9uYWNvIEVkdG9yXG5cbi8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjozLjEgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciBcbmV4cG9ydCBjbGFzcyBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveXtcblxuICBwcm90ZWN0ZWQgX2VkaXRvcjogYW55O1xuICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XG4gIC8vIHByb3RlY3RlZCBfd2luZG93UmVzaXplU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnY29kZUVkaXRvcicpIF9lZGl0b3JDb21wb25lbnQ6IEVsZW1lbnRSZWY7IC8vw6XCisKow6bCgMKBw6bCt8K7w6XCisKgw6TCu8Kjw6fCoMKBw6fCvMKWw6jCvsKRw6XCmcKoXG4gIFxuICBAT3V0cHV0KCkgb25Jbml0O1xuICBAT3V0cHV0KCkgb25DaGFuZ2U7XG4gIEBPdXRwdXQoKSBvblRvdWNoZWQ7XG5cbiAgQElucHV0KCdvcHRpb25zJylcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgLy8gw6nCu8KYw6jCrsKkb3B0aW9ucyh0aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucykgKyDDqMKHwqrDpcKuwprDpMK5wolvcHRpb25zKG9wdGlvbnMpXG4gICAgdGhpcy5fb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLy8gQElucHV0KCdtb2RlbCcpXG4gIC8vIHNldCBtb2RlbChtb2RlbDogQW5ndWxhckVkaXRvck1vZGVsKSB7XG4gIC8vICAgdGhpcy5vcHRpb25zLm1vZGVsID0gbW9kZWw7XG4gIC8vICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAvLyAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgLy8gICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIMOmwrPCqMOlwoXCpUFuZ3VsYXJNb25hY29FZGl0b3JDb25maWfDr8K8wozDpcKcwqjDpcKIwpvDpcK7wrpFZGl0b3LDpcKuwp7DpMK+wovDpsKXwrbDqMKuwr7Dp8K9wq5jb25maWdcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIEBJbmplY3QoQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcsIHByaXZhdGUgY29kZUVkaXRvckV2ZW50U2VydmljZTogQ29kZUVkaXRvckV2ZW50U2VydmljZSkge1xuXG4gICAgLy8gw6XCiMKdw6XCp8KLw6XCjMKWw6jCh8Kqw6XCrsKaw6TCucKJw6TCusKLw6TCu8K2XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5ldmVudE5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIC8vIMOlwojCm8OlwrvCusOowofCqsOlwq7CmsOkwrnCicOkwrrCi8OkwrvCtsOvwrzCjMOmwq3CpMOlwqTChMOkwr3CnMOnwpTCqMOnwq3CicOmwpXCiMOkwrrCjjogQE91dHB1dCgpIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpIFxuICAgICAgc2VsZltuYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgICAgY29uc3QgZXZlbnRQYWlyID0gcGljayhzZWxmLCBuYW1lKTtcbiAgICAgIGNvZGVFZGl0b3JFdmVudFNlcnZpY2UuYWRkRXZlbnQoZXZlbnRQYWlyKTtcbiAgICB9KTtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChsb2FkZWRNb25hY28pIHtcbiAgICAgIC8vIFdhaXQgdW50aWwgbW9uYWNvIGVkaXRvciBpcyBhdmFpbGFibGVcbiAgICAgIGxvYWRQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkZWRNb25hY28gPSB0cnVlO1xuICAgICAgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZy5iYXNlVXJsIHx8ICcvYXNzZXRzJztcbiAgICAgICAgLy8gaWYgKHR5cGVvZigoPGFueT53aW5kb3cpLm1vbmFjbykgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vICAgcmVzb2x2ZSgpO1xuICAgICAgICAvLyAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICBjb25zdCBvbkdvdEFtZExvYWRlcjogYW55ID0gKCkgPT4ge1xuICAgICAgICAgIC8vIExvYWQgbW9uYWNvXG4gICAgICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7ICd2cyc6IGAke2Jhc2VVcmx9L21vbmFjby92c2AgfSB9KTtcbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUoWyd2cy9lZGl0b3IvZWRpdG9yLm1haW4nXSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcub25Nb25hY29Mb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMb2FkIEFNRCBsb2FkZXIgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghKDxhbnk+d2luZG93KS5yZXF1aXJlKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVyU2NyaXB0OiBIVE1MU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9IGAke2Jhc2VVcmx9L21vbmFjby92cy9sb2FkZXIuanNgO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Hb3RBbWRMb2FkZXIpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkdvdEFtZExvYWRlcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX2VkaXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE1vbmFjbyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhcIkluaXQgdGhlIGN1c3RvbSBtb25hY28gY29kZSBlZGl0b3IuXCIpO1xuXG4gICAgLy8gY29uc3QgaGFzTW9kZWwgPSAhIW9wdGlvbnMubW9kZWw7XG4gICAgY29uc3QgaGFzTW9kZWwgPSBmYWxzZTtcblxuICAgIC8vIGlmIChoYXNNb2RlbCkge1xuICAgIC8vICAgb3B0aW9ucy5tb2RlbCA9IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwob3B0aW9ucy5tb2RlbC52YWx1ZSwgb3B0aW9ucy5tb2RlbC5sYW5ndWFnZSwgb3B0aW9ucy5tb2RlbC51cmkpO1xuICAgIC8vIH1cbiAgICBcbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLl9lZGl0b3JDb21wb25lbnQubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWhhc01vZGVsKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICB0aGlzLl9lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4gdGhpcy5vbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSkpO1xuXG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQmx1ckVkaXRvclRleHQoKGU6IGFueSkgPT4gdGhpcy5vbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKSk7XG5cbiAgICAvLyByZWZyZXNoIGxheW91dCBvbiByZXNpemUgZXZlbnQuXG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZWRpdG9yLmxheW91dCgpKTtcblxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uSW5pdCxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGVkaXRvcjogdGhpcy5fZWRpdG9yXG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSl7XG4gICAgY29uc3QgX3ZhbHVlID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9KVGFuZ21pbmcvdG0vaXNzdWVzLzQgbmdab25lw6jCr8Kmw6jCp8KjXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnZhbHVlID0gX3ZhbHVlKTsvLyB2YWx1ZSBpcyBub3QgcHJvcGFnYXRlZCB0byBwYXJlbnQgd2hlbiBleGVjdXRpbmcgb3V0c2lkZSB6b25lLlxuICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgZnJvbSB0aGUgbW9uYWNvOlwiICsgdGhpcy5fdmFsdWUpO1xuICB9XG5cbiAgb25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSl7XG5cbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLnZhbHVlKSB7Ly8gw6bCs8Kow6bChMKPw6jCv8KZw6fCp8KNw6XChsKZw6bCs8KVw6/CvMKMw6XCgMK8w6XCvsKXw6XCrcKmw6TCucKgXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcy52YWx1ZSk7Ly/DpcKcwqjDpcKxwp7DpsKAwqfDpMK/wq7DqcKlwrDDpcKZwqjDqcKHwozDqMKwwoPDp8KUwqhvbmNoYW5nZUhhbmRsZXLDpsKWwrnDpsKzwpVcbiAgfVxuXG4gIGxvY2FsRWRpdG9yKCl7Ly9EZW1vOiBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gICAgdGhpcy53cml0ZVZhbHVlKCd0ZXN0Jyk7XG4gIH1cblxuICAvLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6My4yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb1xuXG4gIC8vIG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gICAgLy8gRml4IGZvciB2YWx1ZSBjaGFuZ2Ugd2hpbGUgZGlzcG9zZSBpbiBwcm9jZXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VkaXRvciAvKiYmICF0aGlzLm9wdGlvbnMubW9kZWwqLykge1xuICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIHRvIHRoZSBlZGl0b3I6XCIgKyB0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cbiAgXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3LDpsKPwpDDpMK+wpvDp8KawoTDpMK6wovDpMK7wrbDpcKbwp7DqMKwwoNcbiAgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyAvL1Byb3BhZ2F0ZSBDaGFuZ2UgdG8gb3V0c2lkZVxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uQ2hhbmdlLFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZGF0YTogX1xuICAgIH0pO1xuICB9O1xuXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3LDpsKPwpDDpMK+wpvDp8KawoTDpMK6wovDpMK7wrbDpcKbwp7DqMKwwoNcbiAgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vblRvdWNoZWQsXG4gICAgICB0YXJnZXQ6IHRoaXNcbiAgICB9KTtcbiAgfTtcbn0iLCJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQW5ndWxhck1vbmFjb0VkaXRvck1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgPSB7fSk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhck1vbmFjb0VkaXRvck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbmplY3Rpb25Ub2tlbiIsImFzc2lnbiIsIkluamVjdGFibGUiLCJOR19WQUxVRV9BQ0NFU1NPUiIsImZvcndhcmRSZWYiLCJFdmVudEVtaXR0ZXIiLCJwaWNrIiwiQ29tcG9uZW50IiwiTmdab25lIiwiSW5qZWN0IiwiVmlld0NoaWxkIiwiT3V0cHV0IiwiSW5wdXQiLCJOZ01vZHVsZSIsIkNvbW1vbk1vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUlBLHlCQUFhLDRCQUE0QixHQUFHLElBQUlBLG1CQUFjLENBQUMsOEJBQThCLENBQUM7Ozs7OztBQ0o5RixJQUFPLHFCQUFNLGtCQUFrQixHQUFHO1FBQzlCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFNBQVMsRUFBRSxXQUFXO0tBQ3pCLENBQUE7Ozs7OztBQ0pEOzs4QkFTd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQzsyQkFDNUIsRUFBRTs7Ozs7Ozs7Ozs7UUFNekIseUNBQVE7Ozs7O1lBQVIsVUFBUyxLQUFLO2dCQUNWQyxhQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQzs7YUFFL0I7Ozs7O1FBRUQsMENBQVM7Ozs7WUFBVCxVQUFVLEtBQUs7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzthQUU3Qzs7b0JBakJKQyxlQUFVOztxQ0FQWDs7Ozs7OztBQ0FBLElBWUEscUJBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztJQUNsQyxxQkFBSSxXQUEwQixDQUFDOzs7QUFJL0IseUJBQWEsZ0NBQWdDLEdBQVE7O1FBRW5ELE9BQU8sRUFBRUMsdUJBQWlCOztRQUMxQixXQUFXLEVBQUVDLGVBQVUsQ0FBQyxjQUFNLE9BQUEsNEJBQTRCLEdBQUEsQ0FBQzs7UUFDM0QsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDOzs7Ozs7Ozs7OztRQWdEQSxzQ0FBb0IsSUFBWSxFQUFnRCxRQUEyQyxzQkFBOEM7WUFBekss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

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("lodash"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-monaco-editor",["exports","@angular/core","lodash","@angular/forms","@angular/common"],t):t(e["angular-monaco-editor"]={},e.ng.core,null,e.ng.forms,e.ng.common)}(this,function(e,r,a,t,o){"use strict";var n,i=new r.InjectionToken("ANGULAR_MONACO_EDITOR_CONFIG"),s={onInit:"onInit",onChange:"onChange",onTouched:"onTouched"},d=function(){function e(){this.eventNames=Object.keys(s),this._events={}}return e.prototype.addEvent=function(e){a.assign(this._events,e)},e.prototype.fireEvent=function(e){this._events[e.eventName].emit(e)},e.decorators=[{type:r.Injectable}],e}(),u=!1,c={provide:t.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return p}),multi:!0},p=function(){function e(e,t,o){var n=this;this.zone=e,this.config=t,this.codeEditorEventService=o,this._value="",this.onChangeHandler=function(e){n.codeEditorEventService.fireEvent({eventName:s.onChange,target:n,data:e})},this.onTouchedHandler=function(){n.codeEditorEventService.fireEvent({eventName:s.onTouched,target:n})};var i=this;o.eventNames.forEach(function(e){i[e]=new r.EventEmitter;var t=a.pick(i,e);o.addEvent(t)})}return Object.defineProperty(e.prototype,"options",{get:function(){return this._options},set:function(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(e))},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var i=this;u?n.then(function(){i.initMonaco(i.options)}):(u=!0,n=new Promise(function(e){var t=i.config.baseUrl||"/assets",o=function(){window.require.config({paths:{vs:t+"/monaco/vs"}}),window.require(["vs/editor/editor.main"],function(){"function"==typeof i.config.onMonacoLoad&&i.config.onMonacoLoad(),i.initMonaco(i.options),e()})};if(window.require)o();else{var n=document.createElement("script");n.type="application/javascript",n.src=t+"/monaco/vs/loader.js",n.addEventListener("load",o),document.body.appendChild(n)}}))},e.prototype.ngOnDestroy=function(){this._editor&&(this._editor.dispose(),this._editor=undefined)},e.prototype.initMonaco=function(e){var t=this;console.log("Init the custom monaco code editor."),this._editor=monaco.editor.create(this._editorComponent.nativeElement,e),this._editor.setValue(this._value),this._editor.onDidChangeModelContent(function(e){return t.onChangeModelContentHandler(e)}),this._editor.onDidBlurEditorText(function(e){return t.onBlurEditorTextHandler(e)}),this.codeEditorEventService.fireEvent({eventName:s.onInit,target:this,editor:this._editor})},e.prototype.onChangeModelContentHandler=function(e){var t=this,o=this._editor.getValue();this.zone.run(function(){return t.value=o})},e.prototype.onBlurEditorTextHandler=function(e){this.onTouchedHandler()},Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){e!==this.value&&(this._value=e),this.onChangeHandler(this.value)},enumerable:!0,configurable:!0}),e.prototype.localEditor=function(){this.writeValue("test")},e.prototype.writeValue=function(e){var t=this;this.value=e||"",setTimeout(function(){t._editor&&t._editor.setValue(t._value)})},e.prototype.registerOnChange=function(e){this.onChangeHandler(this)},e.prototype.registerOnTouched=function(e){this.onTouchedHandler()},e.decorators=[{type:r.Component,args:[{selector:"angular-monaco-editor",template:'<div class="editor" #codeEditor></div>',styles:[":host{display:block;height:200px}.editor{width:100%;height:98%}"],providers:[c,d]}]}],e.ctorParameters=function(){return[{type:r.NgZone},{type:undefined,decorators:[{type:r.Inject,args:[i]}]},{type:d}]},e.propDecorators={_editorComponent:[{type:r.ViewChild,args:["codeEditor"]}],onInit:[{type:r.Output}],onChange:[{type:r.Output}],onTouched:[{type:r.Output}],options:[{type:r.Input,args:["options"]}]},e}(),h=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={}),{ngModule:t,providers:[{provide:i,useValue:e}]}},t.decorators=[{type:r.NgModule,args:[{imports:[o.CommonModule],declarations:[p],exports:[p],providers:[]}]}],t}();e.AngularMonacoEditorModule=h,e.ANGULAR_MONACO_EDITOR_CONFIG=i,e.ɵb=p,e.ɵa=c,e.ɵc=d,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("lodash"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-monaco-editor",["exports","@angular/core","lodash","@angular/forms","@angular/common"],t):t(e["angular-monaco-editor"]={},e.ng.core,null,e.ng.forms,e.ng.common)}(this,function(e,r,a,t,o){"use strict";var n,i=new r.InjectionToken("ANGULAR_MONACO_EDITOR_CONFIG"),s={onInit:"onInit",onChange:"onChange",onTouched:"onTouched"},d=function(){function e(){this.eventNames=Object.keys(s),this._events={}}return e.prototype.addEvent=function(e){a.assign(this._events,e)},e.prototype.fireEvent=function(e){this._events[e.eventName].emit(e)},e.decorators=[{type:r.Injectable}],e}(),u=!1,c={provide:t.NG_VALUE_ACCESSOR,useExisting:r.forwardRef(function(){return p}),multi:!0},p=function(){function e(e,t,o){var n=this;this.zone=e,this.config=t,this.codeEditorEventService=o,this._value="",this.onChangeHandler=function(e){n.codeEditorEventService.fireEvent({eventName:s.onChange,target:n,data:e})},this.onTouchedHandler=function(){n.codeEditorEventService.fireEvent({eventName:s.onTouched,target:n})};var i=this;o.eventNames.forEach(function(e){i[e]=new r.EventEmitter;var t=a.pick(i,e);o.addEvent(t)})}return Object.defineProperty(e.prototype,"options",{get:function(){return this._options},set:function(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(e))},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var i=this;u?n.then(function(){i.initMonaco(i.options)}):(u=!0,n=new Promise(function(e){var t=i.config.baseUrl||"/assets",o=function(){window.require.config({paths:{vs:t+"/monaco/vs"}}),window.require(["vs/editor/editor.main"],function(){"function"==typeof i.config.onMonacoLoad&&i.config.onMonacoLoad(),i.initMonaco(i.options),e()})};if(window.require)o();else{var n=document.createElement("script");n.type="text/javascript",n.src=t+"/monaco/vs/loader.js",n.addEventListener("load",o),document.body.appendChild(n)}}))},e.prototype.ngOnDestroy=function(){this._editor&&(this._editor.dispose(),this._editor=undefined)},e.prototype.initMonaco=function(e){var t=this;console.log("Init the custom monaco code editor."),this._editor=monaco.editor.create(this._editorComponent.nativeElement,e),this._editor.setValue(this._value),this._editor.onDidChangeModelContent(function(e){return t.onChangeModelContentHandler(e)}),this._editor.onDidBlurEditorText(function(e){return t.onBlurEditorTextHandler(e)}),this.codeEditorEventService.fireEvent({eventName:s.onInit,target:this,editor:this._editor})},e.prototype.onChangeModelContentHandler=function(e){var t=this,o=this._editor.getValue();this.zone.run(function(){return t.value=o})},e.prototype.onBlurEditorTextHandler=function(e){this.onTouchedHandler()},Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){e!==this.value&&(this._value=e),this.onChangeHandler(this.value)},enumerable:!0,configurable:!0}),e.prototype.localEditor=function(){this.writeValue("test")},e.prototype.writeValue=function(e){var t=this;this.value=e||"",setTimeout(function(){t._editor&&t._editor.setValue(t._value)})},e.prototype.registerOnChange=function(e){this.onChangeHandler(this)},e.prototype.registerOnTouched=function(e){this.onTouchedHandler()},e.decorators=[{type:r.Component,args:[{selector:"angular-monaco-editor",template:'<div class="editor" #codeEditor></div>',styles:[":host{display:block;height:200px}.editor{width:100%;height:98%}"],providers:[c,d]}]}],e.ctorParameters=function(){return[{type:r.NgZone},{type:undefined,decorators:[{type:r.Inject,args:[i]}]},{type:d}]},e.propDecorators={_editorComponent:[{type:r.ViewChild,args:["codeEditor"]}],onInit:[{type:r.Output}],onChange:[{type:r.Output}],onTouched:[{type:r.Output}],options:[{type:r.Input,args:["options"]}]},e}(),h=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={}),{ngModule:t,providers:[{provide:i,useValue:e}]}},t.decorators=[{type:r.NgModule,args:[{imports:[o.CommonModule],declarations:[p],exports:[p],providers:[]}]}],t}();e.AngularMonacoEditorModule=h,e.ANGULAR_MONACO_EDITOR_CONFIG=i,e.ɵb=p,e.ɵa=c,e.ɵc=d,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=angular-monaco-editor.umd.min.js.map

@@ -112,3 +112,3 @@ /**

const /** @type {?} */ loaderScript = document.createElement('script');
loaderScript.type = 'application/javascript';
loaderScript.type = 'text/javascript';
loaderScript.src = `${baseUrl}/monaco/vs/loader.js`;

@@ -295,2 +295,2 @@ loaderScript.addEventListener('load', onGotAmdLoader);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci8iLCJzb3VyY2VzIjpbImxpYi9lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE9BQU8sRUFBRSw0QkFBNEIsRUFBNkIsTUFBTSxXQUFXLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJekQscUJBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxxQkFBSSxXQUEwQixDQUFDOzs7QUFJL0IsTUFBTSxDQUFDLHVCQUFNLGdDQUFnQyxHQUFROztJQUVuRCxPQUFPLEVBQUUsaUJBQWlCOztJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDOztJQUMzRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7QUFXQSxNQUFNOzs7Ozs7SUFtQ0osWUFBb0IsSUFBWSxFQUFnRCxRQUEyQyxzQkFBOEM7UUFBckosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFnRCxXQUFNLEdBQU4sTUFBTTtRQUFxQywyQkFBc0Is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SSxDQUFDLE9BQU8sMkJBQTJCLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7O2FBRXBDO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7Ozs7O0lBR0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzVCOzs7OztJQUdELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7S0FDekI7OztZQTFNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFLHdDQUF3QztnQkFDbEQsTUFBTSxFQUFFLENBQUMsaUVBQWlFLENBQUM7O2dCQUUzRSxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxzQkFBc0IsQ0FBQzthQUN0RTs7OztZQTdCNEIsTUFBTTs0Q0FxRUUsTUFBTSxTQUFDLDRCQUE0QjtZQS9EL0Qsc0JBQXNCOzs7aUNBa0M1QixTQUFTLFNBQUMsWUFBWTt1QkFFdEIsTUFBTTt5QkFDTixNQUFNOzBCQUNOLE1BQU07d0JBRU4sS0FBSyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgSW5qZWN0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQ29kZUVkaXRvckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09ERV9FRElUT1JfRVZFTlRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V2ZW50cyc7XG5cbmRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7XG5cbmxldCBsb2FkZWRNb25hY286IGJvb2xlYW4gPSBmYWxzZTtcbmxldCBsb2FkUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2OjEu5bCB6KOFQ29udHJvbFZhbHVlQWNjZXNzb3Jcbi8vIGh0dHBzOi8vY29kZS1leGFtcGxlcy5uZXQvemgtQ04vcS8yMTU0NzYxXG5leHBvcnQgY29uc3QgQ09ERV9FRElUT1JfSU5QVVRfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgLy8gaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdkYW5fMjAxMy9hcnRpY2xlL2RldGFpbHMvODEzMTQ5NTlcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsLy9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudCksLy9cbiAgbXVsdGk6IHRydWUvL1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci1tb25hY28tZWRpdG9yJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZWRpdG9yXCIgI2NvZGVFZGl0b3I+PC9kaXY+YCxcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjIwMHB4fS5lZGl0b3J7d2lkdGg6MTAwJTtoZWlnaHQ6OTglfWBdLFxuICAvLyDoh6rlrprkuYnovpPlhaXmjqfku7Y6Mi7lvJXlhaXkvp3otZbmnI3liqFDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwcm92aWRlcnM6IFtDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUiwgQ29kZUVkaXRvckV2ZW50U2VydmljZV1cbn0pXG5cbi8vIOiHquWumuS5iei+k+WFpeaOp+S7tiA8LT4gTW9uYWNvIEVkdG9yXG5cbi8vIOiHquWumuS5iei+k+WFpeaOp+S7tjozLjEgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciBcbmV4cG9ydCBjbGFzcyBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveXtcblxuICBwcm90ZWN0ZWQgX2VkaXRvcjogYW55O1xuICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XG4gIC8vIHByb3RlY3RlZCBfd2luZG93UmVzaXplU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnY29kZUVkaXRvcicpIF9lZGl0b3JDb21wb25lbnQ6IEVsZW1lbnRSZWY7IC8v5Yqo5oCB5re75Yqg5Luj56CB57yW6L6R5ZmoXG4gIFxuICBAT3V0cHV0KCkgb25Jbml0O1xuICBAT3V0cHV0KCkgb25DaGFuZ2U7XG4gIEBPdXRwdXQoKSBvblRvdWNoZWQ7XG5cbiAgQElucHV0KCdvcHRpb25zJylcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgLy8g6buY6K6kb3B0aW9ucyh0aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucykgKyDoh6rlrprkuYlvcHRpb25zKG9wdGlvbnMpXG4gICAgdGhpcy5fb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLy8gQElucHV0KCdtb2RlbCcpXG4gIC8vIHNldCBtb2RlbChtb2RlbDogQW5ndWxhckVkaXRvck1vZGVsKSB7XG4gIC8vICAgdGhpcy5vcHRpb25zLm1vZGVsID0gbW9kZWw7XG4gIC8vICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAvLyAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgLy8gICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIOazqOWFpUFuZ3VsYXJNb25hY29FZGl0b3JDb25maWfvvIzlnKjliJvlu7pFZGl0b3Llrp7kvovml7borr7nva5jb25maWdcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIEBJbmplY3QoQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcsIHByaXZhdGUgY29kZUVkaXRvckV2ZW50U2VydmljZTogQ29kZUVkaXRvckV2ZW50U2VydmljZSkge1xuXG4gICAgLy8g5Yid5aeL5YyW6Ieq5a6a5LmJ5LqL5Lu2XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5ldmVudE5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIC8vIOWIm+W7uuiHquWumuS5ieS6i+S7tu+8jOatpOWkhOS9nOeUqOetieaViOS6jjogQE91dHB1dCgpIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpIFxuICAgICAgc2VsZltuYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgICAgY29uc3QgZXZlbnRQYWlyID0gcGljayhzZWxmLCBuYW1lKTtcbiAgICAgIGNvZGVFZGl0b3JFdmVudFNlcnZpY2UuYWRkRXZlbnQoZXZlbnRQYWlyKTtcbiAgICB9KTtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChsb2FkZWRNb25hY28pIHtcbiAgICAgIC8vIFdhaXQgdW50aWwgbW9uYWNvIGVkaXRvciBpcyBhdmFpbGFibGVcbiAgICAgIGxvYWRQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkZWRNb25hY28gPSB0cnVlO1xuICAgICAgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZy5iYXNlVXJsIHx8ICcvYXNzZXRzJztcbiAgICAgICAgLy8gaWYgKHR5cGVvZigoPGFueT53aW5kb3cpLm1vbmFjbykgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vICAgcmVzb2x2ZSgpO1xuICAgICAgICAvLyAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICBjb25zdCBvbkdvdEFtZExvYWRlcjogYW55ID0gKCkgPT4ge1xuICAgICAgICAgIC8vIExvYWQgbW9uYWNvXG4gICAgICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7ICd2cyc6IGAke2Jhc2VVcmx9L21vbmFjby92c2AgfSB9KTtcbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUoWyd2cy9lZGl0b3IvZWRpdG9yLm1haW4nXSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcub25Nb25hY29Mb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMb2FkIEFNRCBsb2FkZXIgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghKDxhbnk+d2luZG93KS5yZXF1aXJlKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVyU2NyaXB0OiBIVE1MU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5zcmMgPSBgJHtiYXNlVXJsfS9tb25hY28vdnMvbG9hZGVyLmpzYDtcbiAgICAgICAgICBsb2FkZXJTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIG9uR290QW1kTG9hZGVyKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvYWRlclNjcmlwdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25Hb3RBbWRMb2FkZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9lZGl0b3IgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRNb25hY28ob3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coXCJJbml0IHRoZSBjdXN0b20gbW9uYWNvIGNvZGUgZWRpdG9yLlwiKTtcblxuICAgIC8vIGNvbnN0IGhhc01vZGVsID0gISFvcHRpb25zLm1vZGVsO1xuICAgIGNvbnN0IGhhc01vZGVsID0gZmFsc2U7XG5cbiAgICAvLyBpZiAoaGFzTW9kZWwpIHtcbiAgICAvLyAgIG9wdGlvbnMubW9kZWwgPSBtb25hY28uZWRpdG9yLmNyZWF0ZU1vZGVsKG9wdGlvbnMubW9kZWwudmFsdWUsIG9wdGlvbnMubW9kZWwubGFuZ3VhZ2UsIG9wdGlvbnMubW9kZWwudXJpKTtcbiAgICAvLyB9XG4gICAgXG4gICAgdGhpcy5fZWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGUodGhpcy5fZWRpdG9yQ29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFoYXNNb2RlbCkge1xuICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBtb25hY28gZWRpdG9yIC0+IG91dHNpZGUgY29tcG9uZW50XG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQ2hhbmdlTW9kZWxDb250ZW50KChlOiBhbnkpID0+IHRoaXMub25DaGFuZ2VNb2RlbENvbnRlbnRIYW5kbGVyKGUpKTtcblxuICAgIHRoaXMuX2VkaXRvci5vbkRpZEJsdXJFZGl0b3JUZXh0KChlOiBhbnkpID0+IHRoaXMub25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSkpO1xuXG4gICAgLy8gcmVmcmVzaCBsYXlvdXQgb24gcmVzaXplIGV2ZW50LlxuICAgIC8vIGlmICh0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2VkaXRvci5sYXlvdXQoKSk7XG5cbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vbkluaXQsXG4gICAgICB0YXJnZXQ6IHRoaXMsXG4gICAgICBlZGl0b3I6IHRoaXMuX2VkaXRvclxuICAgIH0pO1xuICB9XG5cbiAgb25DaGFuZ2VNb2RlbENvbnRlbnRIYW5kbGVyKGUpe1xuICAgIGNvbnN0IF92YWx1ZSA9IHRoaXMuX2VkaXRvci5nZXRWYWx1ZSgpO1xuICAgIFxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vSlRhbmdtaW5nL3RtL2lzc3Vlcy80IG5nWm9uZeivpuino1xuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy52YWx1ZSA9IF92YWx1ZSk7Ly8gdmFsdWUgaXMgbm90IHByb3BhZ2F0ZWQgdG8gcGFyZW50IHdoZW4gZXhlY3V0aW5nIG91dHNpZGUgem9uZS5cbiAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIGZyb20gdGhlIG1vbmFjbzpcIiArIHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIG9uQmx1ckVkaXRvclRleHRIYW5kbGVyKGUpe1xuXG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgLy9nZXQgYWNjZXNzb3JcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH07XG5cbiAgLy9zZXQgYWNjZXNzb3IgaW5jbHVkaW5nIGNhbGwgdGhlIG9uY2hhbmdlIGNhbGxiYWNrXG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy52YWx1ZSkgey8vIOazqOaEj+i/meenjeWGmeazle+8jOWAvOW+l+WtpuS5oFxuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMudmFsdWUpOy8v5Zyo5bGe5oCn5L+u6aWw5Zmo6YeM6LCD55Sob25jaGFuZ2VIYW5kbGVy5pa55rOVXG4gIH1cblxuICBsb2NhbEVkaXRvcigpey8vRGVtbzogb3V0c2lkZSBjb21wb25lbnQgLT4gbW9uYWNvIGVkaXRvclxuICAgIHRoaXMud3JpdGVWYWx1ZSgndGVzdCcpO1xuICB9XG5cbiAgLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2OjMuMiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29cblxuICAvLyBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gIFxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcblxuICAgIC8vIEZpeCBmb3IgdmFsdWUgY2hhbmdlIHdoaWxlIGRpc3Bvc2UgaW4gcHJvY2Vzcy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9lZGl0b3IgLyomJiAhdGhpcy5vcHRpb25zLm1vZGVsKi8pIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJ3cml0ZSB0byB0aGUgZWRpdG9yOlwiICsgdGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlcih0aGlzKTtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuICB9XG4gIFxuICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29y5o+Q5L6b55qE5LqL5Lu25Zue6LCDXG4gIG9uQ2hhbmdlSGFuZGxlciA9IChfOiBhbnkpID0+IHsgLy9Qcm9wYWdhdGUgQ2hhbmdlIHRvIG91dHNpZGVcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vbkNoYW5nZSxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGRhdGE6IF9cbiAgICB9KTtcbiAgfTtcblxuICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29y5o+Q5L6b55qE5LqL5Lu25Zue6LCDXG4gIG9uVG91Y2hlZEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25Ub3VjaGVkLFxuICAgICAgdGFyZ2V0OiB0aGlzXG4gICAgfSk7XG4gIH07XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci8iLCJzb3VyY2VzIjpbImxpYi9lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE9BQU8sRUFBRSw0QkFBNEIsRUFBNkIsTUFBTSxXQUFXLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJekQscUJBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxxQkFBSSxXQUEwQixDQUFDOzs7QUFJL0IsTUFBTSxDQUFDLHVCQUFNLGdDQUFnQyxHQUFROztJQUVuRCxPQUFPLEVBQUUsaUJBQWlCOztJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDOztJQUMzRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7QUFXQSxNQUFNOzs7Ozs7SUFtQ0osWUFBb0IsSUFBWSxFQUFnRCxRQUEyQyxzQkFBOEM7UUFBckosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFnRCxXQUFNLEdBQU4sTUFBTTtRQUFxQywyQkFBc0Is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SSxDQUFDLE9BQU8sMkJBQTJCLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7O2FBRXBDO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7Ozs7O0lBR0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzVCOzs7OztJQUdELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7S0FDekI7OztZQTFNRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFLHdDQUF3QztnQkFDbEQsTUFBTSxFQUFFLENBQUMsaUVBQWlFLENBQUM7O2dCQUUzRSxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxzQkFBc0IsQ0FBQzthQUN0RTs7OztZQTdCNEIsTUFBTTs0Q0FxRUUsTUFBTSxTQUFDLDRCQUE0QjtZQS9EL0Qsc0JBQXNCOzs7aUNBa0M1QixTQUFTLFNBQUMsWUFBWTt1QkFFdEIsTUFBTTt5QkFDTixNQUFNOzBCQUNOLE1BQU07d0JBRU4sS0FBSyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgSW5qZWN0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQ29kZUVkaXRvckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09ERV9FRElUT1JfRVZFTlRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V2ZW50cyc7XG5cbmRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7XG5cbmxldCBsb2FkZWRNb25hY286IGJvb2xlYW4gPSBmYWxzZTtcbmxldCBsb2FkUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2OjEu5bCB6KOFQ29udHJvbFZhbHVlQWNjZXNzb3Jcbi8vIGh0dHBzOi8vY29kZS1leGFtcGxlcy5uZXQvemgtQ04vcS8yMTU0NzYxXG5leHBvcnQgY29uc3QgQ09ERV9FRElUT1JfSU5QVVRfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgLy8gaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdkYW5fMjAxMy9hcnRpY2xlL2RldGFpbHMvODEzMTQ5NTlcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsLy9cbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudCksLy9cbiAgbXVsdGk6IHRydWUvL1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci1tb25hY28tZWRpdG9yJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZWRpdG9yXCIgI2NvZGVFZGl0b3I+PC9kaXY+YCxcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjIwMHB4fS5lZGl0b3J7d2lkdGg6MTAwJTtoZWlnaHQ6OTglfWBdLFxuICAvLyDoh6rlrprkuYnovpPlhaXmjqfku7Y6Mi7lvJXlhaXkvp3otZbmnI3liqFDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwcm92aWRlcnM6IFtDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUiwgQ29kZUVkaXRvckV2ZW50U2VydmljZV1cbn0pXG5cbi8vIOiHquWumuS5iei+k+WFpeaOp+S7tiA8LT4gTW9uYWNvIEVkdG9yXG5cbi8vIOiHquWumuS5iei+k+WFpeaOp+S7tjozLjEgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciBcbmV4cG9ydCBjbGFzcyBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveXtcblxuICBwcm90ZWN0ZWQgX2VkaXRvcjogYW55O1xuICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XG4gIC8vIHByb3RlY3RlZCBfd2luZG93UmVzaXplU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnY29kZUVkaXRvcicpIF9lZGl0b3JDb21wb25lbnQ6IEVsZW1lbnRSZWY7IC8v5Yqo5oCB5re75Yqg5Luj56CB57yW6L6R5ZmoXG4gIFxuICBAT3V0cHV0KCkgb25Jbml0O1xuICBAT3V0cHV0KCkgb25DaGFuZ2U7XG4gIEBPdXRwdXQoKSBvblRvdWNoZWQ7XG5cbiAgQElucHV0KCdvcHRpb25zJylcbiAgc2V0IG9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgLy8g6buY6K6kb3B0aW9ucyh0aGlzLmNvbmZpZy5kZWZhdWx0T3B0aW9ucykgKyDoh6rlrprkuYlvcHRpb25zKG9wdGlvbnMpXG4gICAgdGhpcy5fb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuICBnZXQgb3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgLy8gQElucHV0KCdtb2RlbCcpXG4gIC8vIHNldCBtb2RlbChtb2RlbDogQW5ndWxhckVkaXRvck1vZGVsKSB7XG4gIC8vICAgdGhpcy5vcHRpb25zLm1vZGVsID0gbW9kZWw7XG4gIC8vICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAvLyAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgLy8gICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIOazqOWFpUFuZ3VsYXJNb25hY29FZGl0b3JDb25maWfvvIzlnKjliJvlu7pFZGl0b3Llrp7kvovml7borr7nva5jb25maWdcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsIEBJbmplY3QoQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcsIHByaXZhdGUgY29kZUVkaXRvckV2ZW50U2VydmljZTogQ29kZUVkaXRvckV2ZW50U2VydmljZSkge1xuXG4gICAgLy8g5Yid5aeL5YyW6Ieq5a6a5LmJ5LqL5Lu2XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5ldmVudE5hbWVzLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIC8vIOWIm+W7uuiHquWumuS5ieS6i+S7tu+8jOatpOWkhOS9nOeUqOetieaViOS6jjogQE91dHB1dCgpIG9uSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpIFxuICAgICAgc2VsZltuYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgICAgY29uc3QgZXZlbnRQYWlyID0gcGljayhzZWxmLCBuYW1lKTtcbiAgICAgIGNvZGVFZGl0b3JFdmVudFNlcnZpY2UuYWRkRXZlbnQoZXZlbnRQYWlyKTtcbiAgICB9KTtcblxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChsb2FkZWRNb25hY28pIHtcbiAgICAgIC8vIFdhaXQgdW50aWwgbW9uYWNvIGVkaXRvciBpcyBhdmFpbGFibGVcbiAgICAgIGxvYWRQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkZWRNb25hY28gPSB0cnVlO1xuICAgICAgbG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZy5iYXNlVXJsIHx8ICcvYXNzZXRzJztcbiAgICAgICAgLy8gaWYgKHR5cGVvZigoPGFueT53aW5kb3cpLm1vbmFjbykgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vICAgcmVzb2x2ZSgpO1xuICAgICAgICAvLyAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICBjb25zdCBvbkdvdEFtZExvYWRlcjogYW55ID0gKCkgPT4ge1xuICAgICAgICAgIC8vIExvYWQgbW9uYWNvXG4gICAgICAgICAgKDxhbnk+d2luZG93KS5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7ICd2cyc6IGAke2Jhc2VVcmx9L21vbmFjby92c2AgfSB9KTtcbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUoWyd2cy9lZGl0b3IvZWRpdG9yLm1haW4nXSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcub25Nb25hY29Mb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5vcHRpb25zKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMb2FkIEFNRCBsb2FkZXIgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghKDxhbnk+d2luZG93KS5yZXF1aXJlKSB7XG4gICAgICAgICAgY29uc3QgbG9hZGVyU2NyaXB0OiBIVE1MU2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9IGAke2Jhc2VVcmx9L21vbmFjby92cy9sb2FkZXIuanNgO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Hb3RBbWRMb2FkZXIpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkdvdEFtZExvYWRlcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX2VkaXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE1vbmFjbyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhcIkluaXQgdGhlIGN1c3RvbSBtb25hY28gY29kZSBlZGl0b3IuXCIpO1xuXG4gICAgLy8gY29uc3QgaGFzTW9kZWwgPSAhIW9wdGlvbnMubW9kZWw7XG4gICAgY29uc3QgaGFzTW9kZWwgPSBmYWxzZTtcblxuICAgIC8vIGlmIChoYXNNb2RlbCkge1xuICAgIC8vICAgb3B0aW9ucy5tb2RlbCA9IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwob3B0aW9ucy5tb2RlbC52YWx1ZSwgb3B0aW9ucy5tb2RlbC5sYW5ndWFnZSwgb3B0aW9ucy5tb2RlbC51cmkpO1xuICAgIC8vIH1cbiAgICBcbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLl9lZGl0b3JDb21wb25lbnQubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWhhc01vZGVsKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICB0aGlzLl9lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4gdGhpcy5vbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSkpO1xuXG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQmx1ckVkaXRvclRleHQoKGU6IGFueSkgPT4gdGhpcy5vbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKSk7XG5cbiAgICAvLyByZWZyZXNoIGxheW91dCBvbiByZXNpemUgZXZlbnQuXG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZWRpdG9yLmxheW91dCgpKTtcblxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uSW5pdCxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGVkaXRvcjogdGhpcy5fZWRpdG9yXG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSl7XG4gICAgY29uc3QgX3ZhbHVlID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9KVGFuZ21pbmcvdG0vaXNzdWVzLzQgbmdab25l6K+m6KejXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnZhbHVlID0gX3ZhbHVlKTsvLyB2YWx1ZSBpcyBub3QgcHJvcGFnYXRlZCB0byBwYXJlbnQgd2hlbiBleGVjdXRpbmcgb3V0c2lkZSB6b25lLlxuICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgZnJvbSB0aGUgbW9uYWNvOlwiICsgdGhpcy5fdmFsdWUpO1xuICB9XG5cbiAgb25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSl7XG5cbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLnZhbHVlKSB7Ly8g5rOo5oSP6L+Z56eN5YaZ5rOV77yM5YC85b6X5a2m5LmgXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcy52YWx1ZSk7Ly/lnKjlsZ7mgKfkv67ppbDlmajph4zosIPnlKhvbmNoYW5nZUhhbmRsZXLmlrnms5VcbiAgfVxuXG4gIGxvY2FsRWRpdG9yKCl7Ly9EZW1vOiBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gICAgdGhpcy53cml0ZVZhbHVlKCd0ZXN0Jyk7XG4gIH1cblxuICAvLyDoh6rlrprkuYnovpPlhaXmjqfku7Y6My4yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb1xuXG4gIC8vIG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gICAgLy8gRml4IGZvciB2YWx1ZSBjaGFuZ2Ugd2hpbGUgZGlzcG9zZSBpbiBwcm9jZXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VkaXRvciAvKiYmICF0aGlzLm9wdGlvbnMubW9kZWwqLykge1xuICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIHRvIHRoZSBlZGl0b3I6XCIgKyB0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cbiAgXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3Lmj5DkvpvnmoTkuovku7blm57osINcbiAgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyAvL1Byb3BhZ2F0ZSBDaGFuZ2UgdG8gb3V0c2lkZVxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uQ2hhbmdlLFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZGF0YTogX1xuICAgIH0pO1xuICB9O1xuXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3Lmj5DkvpvnmoTkuovku7blm57osINcbiAgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vblRvdWNoZWQsXG4gICAgICB0YXJnZXQ6IHRoaXNcbiAgICB9KTtcbiAgfTtcbn0iXX0=

@@ -123,3 +123,3 @@ /**

var /** @type {?} */ loaderScript = document.createElement('script');
loaderScript.type = 'application/javascript';
loaderScript.type = 'text/javascript';
loaderScript.src = baseUrl + "/monaco/vs/loader.js";

@@ -352,2 +352,2 @@ loaderScript.addEventListener('load', onGotAmdLoader);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci8iLCJzb3VyY2VzIjpbImxpYi9lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE9BQU8sRUFBRSw0QkFBNEIsRUFBNkIsTUFBTSxXQUFXLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJekQscUJBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxxQkFBSSxXQUEwQixDQUFDOzs7QUFJL0IsTUFBTSxDQUFDLHFCQUFNLGdDQUFnQyxHQUFROztJQUVuRCxPQUFPLEVBQUUsaUJBQWlCOztJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSw0QkFBNEIsRUFBNUIsQ0FBNEIsQ0FBQzs7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDOztJQXNDQSxrQkFBa0I7SUFDbEIseUNBQXlDO0lBQ3pDLGdDQUFnQztJQUNoQyx3QkFBd0I7SUFDeEIsOEJBQThCO0lBQzlCLHFDQUFxQztJQUNyQyxNQUFNO0lBQ04sSUFBSTtJQUVKLG1EQUFt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bGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29kZS1lZGl0b3IuZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcblxubGV0IGxvYWRlZE1vbmFjbzogYm9vbGVhbiA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4vLyDoh6rlrprkuYnovpPlhaXmjqfku7Y6MS7lsIHoo4VDb250cm9sVmFsdWVBY2Nlc3NvclxuLy8gaHR0cHM6Ly9jb2RlLWV4YW1wbGVzLm5ldC96aC1DTi9xLzIxNTQ3NjFcbmV4cG9ydCBjb25zdCBDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAvLyBodHRwczovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2Rhbl8yMDEzL2FydGljbGUvZGV0YWlscy84MTMxNDk1OVxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwvL1xuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50KSwvL1xuICBtdWx0aTogdHJ1ZS8vXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJlZGl0b3JcIiAjY29kZUVkaXRvcj48L2Rpdj5gLFxuICBzdHlsZXM6IFtgOmhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwcHh9LmVkaXRvcnt3aWR0aDoxMDAlO2hlaWdodDo5OCV9YF0sXG4gIC8vIOiHquWumuS5iei+k+WFpeaOp+S7tjoyLuW8leWFpeS+nei1luacjeWKoUNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByb3ZpZGVyczogW0NPREVfRURJVE9SX0lOUFVUX1ZBTFVFX0FDQ0VTU09SLCBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlXVxufSlcblxuLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2IDwtPiBNb25hY28gRWR0b3JcblxuLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2OjMuMSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIFxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95e1xuXG4gIHByb3RlY3RlZCBfZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueTtcbiAgLy8gcHJvdGVjdGVkIF93aW5kb3dSZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgX2VkaXRvckNvbXBvbmVudDogRWxlbWVudFJlZjsgLy/liqjmgIHmt7vliqDku6PnoIHnvJbovpHlmahcbiAgXG4gIEBPdXRwdXQoKSBvbkluaXQ7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTtcbiAgQE91dHB1dCgpIG9uVG91Y2hlZDtcblxuICBASW5wdXQoJ29wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICAvLyDpu5jorqRvcHRpb25zKHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zKSArIOiHquWumuS5iW9wdGlvbnMob3B0aW9ucylcbiAgICB0aGlzLl9vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvLyBASW5wdXQoJ21vZGVsJylcbiAgLy8gc2V0IG1vZGVsKG1vZGVsOiBBbmd1bGFyRWRpdG9yTW9kZWwpIHtcbiAgLy8gICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgLy8gICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gIC8vICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAvLyAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8g5rOo5YWlQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZ++8jOWcqOWIm+W7ukVkaXRvcuWunuS+i+aXtuiuvue9rmNvbmZpZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgQEluamVjdChBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZywgcHJpdmF0ZSBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlOiBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyDliJ3lp4vljJboh6rlrprkuYnkuovku7ZcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgLy8g5Yib5bu66Ieq5a6a5LmJ5LqL5Lu277yM5q2k5aSE5L2c55So562J5pWI5LqOOiBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgXG4gICAgICBzZWxmW25hbWVdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgICBjb25zdCBldmVudFBhaXIgPSBwaWNrKHNlbGYsIG5hbWUpO1xuICAgICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5hZGRFdmVudChldmVudFBhaXIpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLy8gV2FpdCB1bnRpbCBtb25hY28gZWRpdG9yIGlzIGF2YWlsYWJsZVxuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgfHwgJy9hc3NldHMnO1xuICAgICAgICAvLyBpZiAodHlwZW9mKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgLy8gTG9hZCBtb25hY29cbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUuY29uZmlnKHsgcGF0aHM6IHsgJ3ZzJzogYCR7YmFzZVVybH0vbW9uYWNvL3ZzYCB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLm9uTW9uYWNvTG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgQU1EIGxvYWRlciBpZiBuZWNlc3NhcnlcbiAgICAgICAgaWYgKCEoPGFueT53aW5kb3cpLnJlcXVpcmUpIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9IGAke2Jhc2VVcmx9L21vbmFjby92cy9sb2FkZXIuanNgO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Hb3RBbWRMb2FkZXIpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkdvdEFtZExvYWRlcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX2VkaXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE1vbmFjbyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhcIkluaXQgdGhlIGN1c3RvbSBtb25hY28gY29kZSBlZGl0b3IuXCIpO1xuXG4gICAgLy8gY29uc3QgaGFzTW9kZWwgPSAhIW9wdGlvbnMubW9kZWw7XG4gICAgY29uc3QgaGFzTW9kZWwgPSBmYWxzZTtcblxuICAgIC8vIGlmIChoYXNNb2RlbCkge1xuICAgIC8vICAgb3B0aW9ucy5tb2RlbCA9IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwob3B0aW9ucy5tb2RlbC52YWx1ZSwgb3B0aW9ucy5tb2RlbC5sYW5ndWFnZSwgb3B0aW9ucy5tb2RlbC51cmkpO1xuICAgIC8vIH1cbiAgICBcbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLl9lZGl0b3JDb21wb25lbnQubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWhhc01vZGVsKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICB0aGlzLl9lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4gdGhpcy5vbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSkpO1xuXG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQmx1ckVkaXRvclRleHQoKGU6IGFueSkgPT4gdGhpcy5vbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKSk7XG5cbiAgICAvLyByZWZyZXNoIGxheW91dCBvbiByZXNpemUgZXZlbnQuXG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZWRpdG9yLmxheW91dCgpKTtcblxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uSW5pdCxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGVkaXRvcjogdGhpcy5fZWRpdG9yXG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSl7XG4gICAgY29uc3QgX3ZhbHVlID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9KVGFuZ21pbmcvdG0vaXNzdWVzLzQgbmdab25l6K+m6KejXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnZhbHVlID0gX3ZhbHVlKTsvLyB2YWx1ZSBpcyBub3QgcHJvcGFnYXRlZCB0byBwYXJlbnQgd2hlbiBleGVjdXRpbmcgb3V0c2lkZSB6b25lLlxuICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgZnJvbSB0aGUgbW9uYWNvOlwiICsgdGhpcy5fdmFsdWUpO1xuICB9XG5cbiAgb25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSl7XG5cbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLnZhbHVlKSB7Ly8g5rOo5oSP6L+Z56eN5YaZ5rOV77yM5YC85b6X5a2m5LmgXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcy52YWx1ZSk7Ly/lnKjlsZ7mgKfkv67ppbDlmajph4zosIPnlKhvbmNoYW5nZUhhbmRsZXLmlrnms5VcbiAgfVxuXG4gIGxvY2FsRWRpdG9yKCl7Ly9EZW1vOiBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gICAgdGhpcy53cml0ZVZhbHVlKCd0ZXN0Jyk7XG4gIH1cblxuICAvLyDoh6rlrprkuYnovpPlhaXmjqfku7Y6My4yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb1xuXG4gIC8vIG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gICAgLy8gRml4IGZvciB2YWx1ZSBjaGFuZ2Ugd2hpbGUgZGlzcG9zZSBpbiBwcm9jZXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VkaXRvciAvKiYmICF0aGlzLm9wdGlvbnMubW9kZWwqLykge1xuICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIHRvIHRoZSBlZGl0b3I6XCIgKyB0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cbiAgXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3Lmj5DkvpvnmoTkuovku7blm57osINcbiAgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyAvL1Byb3BhZ2F0ZSBDaGFuZ2UgdG8gb3V0c2lkZVxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uQ2hhbmdlLFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZGF0YTogX1xuICAgIH0pO1xuICB9O1xuXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3Lmj5DkvpvnmoTkuovku7blm57osINcbiAgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vblRvdWNoZWQsXG4gICAgICB0YXJnZXQ6IHRoaXNcbiAgICB9KTtcbiAgfTtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci8iLCJzb3VyY2VzIjpbImxpYi9lZGl0b3IvYW5ndWxhci1tb25hY28tZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE9BQU8sRUFBRSw0QkFBNEIsRUFBNkIsTUFBTSxXQUFXLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJekQscUJBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxxQkFBSSxXQUEwQixDQUFDOzs7QUFJL0IsTUFBTSxDQUFDLHFCQUFNLGdDQUFnQyxHQUFROztJQUVuRCxPQUFPLEVBQUUsaUJBQWlCOztJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSw0QkFBNEIsRUFBNUIsQ0FBNEIsQ0FBQzs7SUFDM0QsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDOztJQXNDQSxrQkFBa0I7SUFDbEIseUNBQXlDO0lBQ3pDLGdDQUFnQztJQUNoQyx3QkFBd0I7SUFDeEIsOEJBQThCO0lBQzlCLHFDQUFxQztJQUNyQyxNQUFNO0lBQ04sSUFBSTtJQUVKLG1EQUFt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bGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29kZS1lZGl0b3IuZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcblxubGV0IGxvYWRlZE1vbmFjbzogYm9vbGVhbiA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4vLyDoh6rlrprkuYnovpPlhaXmjqfku7Y6MS7lsIHoo4VDb250cm9sVmFsdWVBY2Nlc3NvclxuLy8gaHR0cHM6Ly9jb2RlLWV4YW1wbGVzLm5ldC96aC1DTi9xLzIxNTQ3NjFcbmV4cG9ydCBjb25zdCBDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAvLyBodHRwczovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2Rhbl8yMDEzL2FydGljbGUvZGV0YWlscy84MTMxNDk1OVxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwvL1xuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50KSwvL1xuICBtdWx0aTogdHJ1ZS8vXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJlZGl0b3JcIiAjY29kZUVkaXRvcj48L2Rpdj5gLFxuICBzdHlsZXM6IFtgOmhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwcHh9LmVkaXRvcnt3aWR0aDoxMDAlO2hlaWdodDo5OCV9YF0sXG4gIC8vIOiHquWumuS5iei+k+WFpeaOp+S7tjoyLuW8leWFpeS+nei1luacjeWKoUNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByb3ZpZGVyczogW0NPREVfRURJVE9SX0lOUFVUX1ZBTFVFX0FDQ0VTU09SLCBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlXVxufSlcblxuLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2IDwtPiBNb25hY28gRWR0b3JcblxuLy8g6Ieq5a6a5LmJ6L6T5YWl5o6n5Lu2OjMuMSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIFxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95e1xuXG4gIHByb3RlY3RlZCBfZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueTtcbiAgLy8gcHJvdGVjdGVkIF93aW5kb3dSZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgX2VkaXRvckNvbXBvbmVudDogRWxlbWVudFJlZjsgLy/liqjmgIHmt7vliqDku6PnoIHnvJbovpHlmahcbiAgXG4gIEBPdXRwdXQoKSBvbkluaXQ7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTtcbiAgQE91dHB1dCgpIG9uVG91Y2hlZDtcblxuICBASW5wdXQoJ29wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICAvLyDpu5jorqRvcHRpb25zKHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zKSArIOiHquWumuS5iW9wdGlvbnMob3B0aW9ucylcbiAgICB0aGlzLl9vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvLyBASW5wdXQoJ21vZGVsJylcbiAgLy8gc2V0IG1vZGVsKG1vZGVsOiBBbmd1bGFyRWRpdG9yTW9kZWwpIHtcbiAgLy8gICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgLy8gICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gIC8vICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAvLyAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8g5rOo5YWlQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZ++8jOWcqOWIm+W7ukVkaXRvcuWunuS+i+aXtuiuvue9rmNvbmZpZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgQEluamVjdChBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZywgcHJpdmF0ZSBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlOiBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyDliJ3lp4vljJboh6rlrprkuYnkuovku7ZcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgLy8g5Yib5bu66Ieq5a6a5LmJ5LqL5Lu277yM5q2k5aSE5L2c55So562J5pWI5LqOOiBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgXG4gICAgICBzZWxmW25hbWVdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgICBjb25zdCBldmVudFBhaXIgPSBwaWNrKHNlbGYsIG5hbWUpO1xuICAgICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5hZGRFdmVudChldmVudFBhaXIpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLy8gV2FpdCB1bnRpbCBtb25hY28gZWRpdG9yIGlzIGF2YWlsYWJsZVxuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgfHwgJy9hc3NldHMnO1xuICAgICAgICAvLyBpZiAodHlwZW9mKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgLy8gTG9hZCBtb25hY29cbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUuY29uZmlnKHsgcGF0aHM6IHsgJ3ZzJzogYCR7YmFzZVVybH0vbW9uYWNvL3ZzYCB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLm9uTW9uYWNvTG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgQU1EIGxvYWRlciBpZiBuZWNlc3NhcnlcbiAgICAgICAgaWYgKCEoPGFueT53aW5kb3cpLnJlcXVpcmUpIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICBsb2FkZXJTY3JpcHQuc3JjID0gYCR7YmFzZVVybH0vbW9uYWNvL3ZzL2xvYWRlci5qc2A7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkZXJTY3JpcHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uR290QW1kTG9hZGVyKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIGlmICh0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vIH1cbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5fZWRpdG9yID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0TW9uYWNvKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKFwiSW5pdCB0aGUgY3VzdG9tIG1vbmFjbyBjb2RlIGVkaXRvci5cIik7XG5cbiAgICAvLyBjb25zdCBoYXNNb2RlbCA9ICEhb3B0aW9ucy5tb2RlbDtcbiAgICBjb25zdCBoYXNNb2RlbCA9IGZhbHNlO1xuXG4gICAgLy8gaWYgKGhhc01vZGVsKSB7XG4gICAgLy8gICBvcHRpb25zLm1vZGVsID0gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbChvcHRpb25zLm1vZGVsLnZhbHVlLCBvcHRpb25zLm1vZGVsLmxhbmd1YWdlLCBvcHRpb25zLm1vZGVsLnVyaSk7XG4gICAgLy8gfVxuICAgIFxuICAgIHRoaXMuX2VkaXRvciA9IG1vbmFjby5lZGl0b3IuY3JlYXRlKHRoaXMuX2VkaXRvckNvbXBvbmVudC5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgIGlmICghaGFzTW9kZWwpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIHRoaXMuX2VkaXRvci5vbkRpZENoYW5nZU1vZGVsQ29udGVudCgoZTogYW55KSA9PiB0aGlzLm9uQ2hhbmdlTW9kZWxDb250ZW50SGFuZGxlcihlKSk7XG5cbiAgICB0aGlzLl9lZGl0b3Iub25EaWRCbHVyRWRpdG9yVGV4dCgoZTogYW55KSA9PiB0aGlzLm9uQmx1ckVkaXRvclRleHRIYW5kbGVyKGUpKTtcblxuICAgIC8vIHJlZnJlc2ggbGF5b3V0IG9uIHJlc2l6ZSBldmVudC5cbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9lZGl0b3IubGF5b3V0KCkpO1xuXG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25Jbml0LFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZWRpdG9yOiB0aGlzLl9lZGl0b3JcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlTW9kZWxDb250ZW50SGFuZGxlcihlKXtcbiAgICBjb25zdCBfdmFsdWUgPSB0aGlzLl9lZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICBcbiAgICAvLyBtb25hY28gZWRpdG9yIC0+IG91dHNpZGUgY29tcG9uZW50XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0pUYW5nbWluZy90bS9pc3N1ZXMvNCBuZ1pvbmXor6bop6NcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMudmFsdWUgPSBfdmFsdWUpOy8vIHZhbHVlIGlzIG5vdCBwcm9wYWdhdGVkIHRvIHBhcmVudCB3aGVuIGV4ZWN1dGluZyBvdXRzaWRlIHpvbmUuXG4gICAgLy8gY29uc29sZS5sb2coXCJ3cml0ZSBmcm9tIHRoZSBtb25hY286XCIgKyB0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBvbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKXtcblxuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIC8vZ2V0IGFjY2Vzc29yXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9O1xuXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgIT09IHRoaXMudmFsdWUpIHsvLyDms6jmhI/ov5nnp43lhpnms5XvvIzlgLzlvpflrabkuaBcbiAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlcih0aGlzLnZhbHVlKTsvL+WcqOWxnuaAp+S/rumlsOWZqOmHjOiwg+eUqG9uY2hhbmdlSGFuZGxlcuaWueazlVxuICB9XG5cbiAgbG9jYWxFZGl0b3IoKXsvL0RlbW86IG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgICB0aGlzLndyaXRlVmFsdWUoJ3Rlc3QnKTtcbiAgfVxuXG4gIC8vIOiHquWumuS5iei+k+WFpeaOp+S7tjozLjIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvXG5cbiAgLy8gb3V0c2lkZSBjb21wb25lbnQgLT4gbW9uYWNvIGVkaXRvclxuICBcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG5cbiAgICAvLyBGaXggZm9yIHZhbHVlIGNoYW5nZSB3aGlsZSBkaXNwb3NlIGluIHByb2Nlc3MuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fZWRpdG9yIC8qJiYgIXRoaXMub3B0aW9ucy5tb2RlbCovKSB7XG4gICAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgdG8gdGhlIGVkaXRvcjpcIiArIHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcyk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuICBcbiAgLy9Db250cm9sVmFsdWVBY2Nlc3NvcuaPkOS+m+eahOS6i+S7tuWbnuiwg1xuICBvbkNoYW5nZUhhbmRsZXIgPSAoXzogYW55KSA9PiB7IC8vUHJvcGFnYXRlIENoYW5nZSB0byBvdXRzaWRlXG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25DaGFuZ2UsXG4gICAgICB0YXJnZXQ6IHRoaXMsXG4gICAgICBkYXRhOiBfXG4gICAgfSk7XG4gIH07XG5cbiAgLy9Db250cm9sVmFsdWVBY2Nlc3NvcuaPkOS+m+eahOS6i+S7tuWbnuiwg1xuICBvblRvdWNoZWRIYW5kbGVyID0gKCkgPT4ge1xuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uVG91Y2hlZCxcbiAgICAgIHRhcmdldDogdGhpc1xuICAgIH0pO1xuICB9O1xufSJdfQ==

@@ -159,3 +159,3 @@ import { InjectionToken, Injectable, Component, EventEmitter, Input, Output, ViewChild, forwardRef, Inject, NgZone, NgModule } from '@angular/core';

const /** @type {?} */ loaderScript = document.createElement('script');
loaderScript.type = 'application/javascript';
loaderScript.type = 'text/javascript';
loaderScript.src = `${baseUrl}/monaco/vs/loader.js`;

@@ -350,2 +350,2 @@ loaderScript.addEventListener('load', onGotAmdLoader);

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9jb25maWcudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2NvbnN0YW50cy9ldmVudHMudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9lZGl0b3IubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGluamVjdGlvblRva2Vuw6TCvcKcw6fClMKow6jCr8K0w6bCmMKOXG4vLyBodHRwczovL3NlZ21lbnRmYXVsdC5jb20vYS8xMTkwMDAwMDA4NjI2MzQ4XG5leHBvcnQgY29uc3QgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBkZWZhdWx0T3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55OyB9LFxuICBvbk1vbmFjb0xvYWQ/OiBGdW5jdGlvbjtcbn0iLCJleHBvcnQgY29uc3QgQ09ERV9FRElUT1JfRVZFTlRTID0ge1xyXG4gICAgb25Jbml0OiAnb25Jbml0JyxcclxuICAgIG9uQ2hhbmdlOiAnb25DaGFuZ2UnLFxyXG4gICAgb25Ub3VjaGVkOiAnb25Ub3VjaGVkJ1xyXG59IiwiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmltcG9ydCB7IENPREVfRURJVE9SX0VWRU5UUyB9IGZyb20gJy4uL2NvbnN0YW50cy9ldmVudHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckV2ZW50U2VydmljZSB7XHJcbiAgICBwdWJsaWMgZXZlbnROYW1lcyA9IE9iamVjdC5rZXlzKENPREVfRURJVE9SX0VWRU5UUyk7XHJcbiAgICBwcml2YXRlIF9ldmVudHM6IGFueSA9IHt9OyAvLyDDpMK9wr/Dp8KUwqjDpMK6wovDpMK7wrZcclxuXHJcbiAgICAvKipcclxuICAgICAqIMOowq7CvsOnwr3CrsOlwpDCr8OnwpTCqMOkwrrCi8OkwrvCtlxyXG4gICAgICogQHBhcmFtICDDpMK6wovDpMK7wrZcclxuICAgICAqL1xyXG4gICAgYWRkRXZlbnQoZXZlbnQpe1xyXG4gICAgICAgIGFzc2lnbih0aGlzLl9ldmVudHMsIGV2ZW50KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmV2ZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlyZUV2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRzW2V2ZW50LmV2ZW50TmFtZV0uZW1pdChldmVudCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJFbWl0IEV2ZW50OlwiICsgZXZlbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29kZS1lZGl0b3IuZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcblxubGV0IGxvYWRlZE1vbmFjbzogYm9vbGVhbiA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4vLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6MS7DpcKwwoHDqMKjwoVDb250cm9sVmFsdWVBY2Nlc3NvclxuLy8gaHR0cHM6Ly9jb2RlLWV4YW1wbGVzLm5ldC96aC1DTi9xLzIxNTQ3NjFcbmV4cG9ydCBjb25zdCBDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAvLyBodHRwczovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2Rhbl8yMDEzL2FydGljbGUvZGV0YWlscy84MTMxNDk1OVxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwvL1xuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50KSwvL1xuICBtdWx0aTogdHJ1ZS8vXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJlZGl0b3JcIiAjY29kZUVkaXRvcj48L2Rpdj5gLFxuICBzdHlsZXM6IFtgOmhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwcHh9LmVkaXRvcnt3aWR0aDoxMDAlO2hlaWdodDo5OCV9YF0sXG4gIC8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjoyLsOlwrzClcOlwoXCpcOkwr7CncOowrXClsOmwpzCjcOlworCoUNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByb3ZpZGVyczogW0NPREVfRURJVE9SX0lOUFVUX1ZBTFVFX0FDQ0VTU09SLCBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlXVxufSlcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2IDwtPiBNb25hY28gRWR0b3JcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjMuMSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIFxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95e1xuXG4gIHByb3RlY3RlZCBfZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueTtcbiAgLy8gcHJvdGVjdGVkIF93aW5kb3dSZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgX2VkaXRvckNvbXBvbmVudDogRWxlbWVudFJlZjsgLy/DpcKKwqjDpsKAwoHDpsK3wrvDpcKKwqDDpMK7wqPDp8KgwoHDp8K8wpbDqMK+wpHDpcKZwqhcbiAgXG4gIEBPdXRwdXQoKSBvbkluaXQ7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTtcbiAgQE91dHB1dCgpIG9uVG91Y2hlZDtcblxuICBASW5wdXQoJ29wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICAvLyDDqcK7wpjDqMKuwqRvcHRpb25zKHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zKSArIMOowofCqsOlwq7CmsOkwrnCiW9wdGlvbnMob3B0aW9ucylcbiAgICB0aGlzLl9vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvLyBASW5wdXQoJ21vZGVsJylcbiAgLy8gc2V0IG1vZGVsKG1vZGVsOiBBbmd1bGFyRWRpdG9yTW9kZWwpIHtcbiAgLy8gICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgLy8gICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gIC8vICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAvLyAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gw6bCs8Kow6XChcKlQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZ8OvwrzCjMOlwpzCqMOlwojCm8OlwrvCukVkaXRvcsOlwq7CnsOkwr7Ci8OmwpfCtsOowq7CvsOnwr3CrmNvbmZpZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgQEluamVjdChBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZywgcHJpdmF0ZSBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlOiBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyDDpcKIwp3DpcKnwovDpcKMwpbDqMKHwqrDpcKuwprDpMK5wonDpMK6wovDpMK7wrZcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgLy8gw6XCiMKbw6XCu8K6w6jCh8Kqw6XCrsKaw6TCucKJw6TCusKLw6TCu8K2w6/CvMKMw6bCrcKkw6XCpMKEw6TCvcKcw6fClMKow6fCrcKJw6bClcKIw6TCusKOOiBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgXG4gICAgICBzZWxmW25hbWVdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgICBjb25zdCBldmVudFBhaXIgPSBwaWNrKHNlbGYsIG5hbWUpO1xuICAgICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5hZGRFdmVudChldmVudFBhaXIpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLy8gV2FpdCB1bnRpbCBtb25hY28gZWRpdG9yIGlzIGF2YWlsYWJsZVxuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgfHwgJy9hc3NldHMnO1xuICAgICAgICAvLyBpZiAodHlwZW9mKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgLy8gTG9hZCBtb25hY29cbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUuY29uZmlnKHsgcGF0aHM6IHsgJ3ZzJzogYCR7YmFzZVVybH0vbW9uYWNvL3ZzYCB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLm9uTW9uYWNvTG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgQU1EIGxvYWRlciBpZiBuZWNlc3NhcnlcbiAgICAgICAgaWYgKCEoPGFueT53aW5kb3cpLnJlcXVpcmUpIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9IGAke2Jhc2VVcmx9L21vbmFjby92cy9sb2FkZXIuanNgO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Hb3RBbWRMb2FkZXIpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkdvdEFtZExvYWRlcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX2VkaXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE1vbmFjbyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhcIkluaXQgdGhlIGN1c3RvbSBtb25hY28gY29kZSBlZGl0b3IuXCIpO1xuXG4gICAgLy8gY29uc3QgaGFzTW9kZWwgPSAhIW9wdGlvbnMubW9kZWw7XG4gICAgY29uc3QgaGFzTW9kZWwgPSBmYWxzZTtcblxuICAgIC8vIGlmIChoYXNNb2RlbCkge1xuICAgIC8vICAgb3B0aW9ucy5tb2RlbCA9IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwob3B0aW9ucy5tb2RlbC52YWx1ZSwgb3B0aW9ucy5tb2RlbC5sYW5ndWFnZSwgb3B0aW9ucy5tb2RlbC51cmkpO1xuICAgIC8vIH1cbiAgICBcbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLl9lZGl0b3JDb21wb25lbnQubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWhhc01vZGVsKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICB0aGlzLl9lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4gdGhpcy5vbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSkpO1xuXG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQmx1ckVkaXRvclRleHQoKGU6IGFueSkgPT4gdGhpcy5vbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKSk7XG5cbiAgICAvLyByZWZyZXNoIGxheW91dCBvbiByZXNpemUgZXZlbnQuXG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZWRpdG9yLmxheW91dCgpKTtcblxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uSW5pdCxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGVkaXRvcjogdGhpcy5fZWRpdG9yXG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSl7XG4gICAgY29uc3QgX3ZhbHVlID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9KVGFuZ21pbmcvdG0vaXNzdWVzLzQgbmdab25lw6jCr8Kmw6jCp8KjXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnZhbHVlID0gX3ZhbHVlKTsvLyB2YWx1ZSBpcyBub3QgcHJvcGFnYXRlZCB0byBwYXJlbnQgd2hlbiBleGVjdXRpbmcgb3V0c2lkZSB6b25lLlxuICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgZnJvbSB0aGUgbW9uYWNvOlwiICsgdGhpcy5fdmFsdWUpO1xuICB9XG5cbiAgb25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSl7XG5cbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLnZhbHVlKSB7Ly8gw6bCs8Kow6bChMKPw6jCv8KZw6fCp8KNw6XChsKZw6bCs8KVw6/CvMKMw6XCgMK8w6XCvsKXw6XCrcKmw6TCucKgXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcy52YWx1ZSk7Ly/DpcKcwqjDpcKxwp7DpsKAwqfDpMK/wq7DqcKlwrDDpcKZwqjDqcKHwozDqMKwwoPDp8KUwqhvbmNoYW5nZUhhbmRsZXLDpsKWwrnDpsKzwpVcbiAgfVxuXG4gIGxvY2FsRWRpdG9yKCl7Ly9EZW1vOiBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gICAgdGhpcy53cml0ZVZhbHVlKCd0ZXN0Jyk7XG4gIH1cblxuICAvLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6My4yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb1xuXG4gIC8vIG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gICAgLy8gRml4IGZvciB2YWx1ZSBjaGFuZ2Ugd2hpbGUgZGlzcG9zZSBpbiBwcm9jZXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VkaXRvciAvKiYmICF0aGlzLm9wdGlvbnMubW9kZWwqLykge1xuICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIHRvIHRoZSBlZGl0b3I6XCIgKyB0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cbiAgXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3LDpsKPwpDDpMK+wpvDp8KawoTDpMK6wovDpMK7wrbDpcKbwp7DqMKwwoNcbiAgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyAvL1Byb3BhZ2F0ZSBDaGFuZ2UgdG8gb3V0c2lkZVxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uQ2hhbmdlLFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZGF0YTogX1xuICAgIH0pO1xuICB9O1xuXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3LDpsKPwpDDpMK+wpvDp8KawoTDpMK6wovDpMK7wrbDpcKbwp7DqMKwwoNcbiAgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vblRvdWNoZWQsXG4gICAgICB0YXJnZXQ6IHRoaXNcbiAgICB9KTtcbiAgfTtcbn0iLCJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQW5ndWxhck1vbmFjb0VkaXRvck1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgPSB7fSk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhck1vbmFjb0VkaXRvck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9jb25maWcudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2NvbnN0YW50cy9ldmVudHMudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9lZGl0b3IubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGluamVjdGlvblRva2Vuw6TCvcKcw6fClMKow6jCr8K0w6bCmMKOXG4vLyBodHRwczovL3NlZ21lbnRmYXVsdC5jb20vYS8xMTkwMDAwMDA4NjI2MzQ4XG5leHBvcnQgY29uc3QgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBkZWZhdWx0T3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55OyB9LFxuICBvbk1vbmFjb0xvYWQ/OiBGdW5jdGlvbjtcbn0iLCJleHBvcnQgY29uc3QgQ09ERV9FRElUT1JfRVZFTlRTID0ge1xyXG4gICAgb25Jbml0OiAnb25Jbml0JyxcclxuICAgIG9uQ2hhbmdlOiAnb25DaGFuZ2UnLFxyXG4gICAgb25Ub3VjaGVkOiAnb25Ub3VjaGVkJ1xyXG59IiwiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmltcG9ydCB7IENPREVfRURJVE9SX0VWRU5UUyB9IGZyb20gJy4uL2NvbnN0YW50cy9ldmVudHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckV2ZW50U2VydmljZSB7XHJcbiAgICBwdWJsaWMgZXZlbnROYW1lcyA9IE9iamVjdC5rZXlzKENPREVfRURJVE9SX0VWRU5UUyk7XHJcbiAgICBwcml2YXRlIF9ldmVudHM6IGFueSA9IHt9OyAvLyDDpMK9wr/Dp8KUwqjDpMK6wovDpMK7wrZcclxuXHJcbiAgICAvKipcclxuICAgICAqIMOowq7CvsOnwr3CrsOlwpDCr8OnwpTCqMOkwrrCi8OkwrvCtlxyXG4gICAgICogQHBhcmFtICDDpMK6wovDpMK7wrZcclxuICAgICAqL1xyXG4gICAgYWRkRXZlbnQoZXZlbnQpe1xyXG4gICAgICAgIGFzc2lnbih0aGlzLl9ldmVudHMsIGV2ZW50KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmV2ZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlyZUV2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRzW2V2ZW50LmV2ZW50TmFtZV0uZW1pdChldmVudCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJFbWl0IEV2ZW50OlwiICsgZXZlbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29kZS1lZGl0b3IuZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcblxubGV0IGxvYWRlZE1vbmFjbzogYm9vbGVhbiA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4vLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6MS7DpcKwwoHDqMKjwoVDb250cm9sVmFsdWVBY2Nlc3NvclxuLy8gaHR0cHM6Ly9jb2RlLWV4YW1wbGVzLm5ldC96aC1DTi9xLzIxNTQ3NjFcbmV4cG9ydCBjb25zdCBDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAvLyBodHRwczovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2Rhbl8yMDEzL2FydGljbGUvZGV0YWlscy84MTMxNDk1OVxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwvL1xuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50KSwvL1xuICBtdWx0aTogdHJ1ZS8vXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJlZGl0b3JcIiAjY29kZUVkaXRvcj48L2Rpdj5gLFxuICBzdHlsZXM6IFtgOmhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwcHh9LmVkaXRvcnt3aWR0aDoxMDAlO2hlaWdodDo5OCV9YF0sXG4gIC8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjoyLsOlwrzClcOlwoXCpcOkwr7CncOowrXClsOmwpzCjcOlworCoUNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByb3ZpZGVyczogW0NPREVfRURJVE9SX0lOUFVUX1ZBTFVFX0FDQ0VTU09SLCBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlXVxufSlcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2IDwtPiBNb25hY28gRWR0b3JcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjMuMSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIFxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95e1xuXG4gIHByb3RlY3RlZCBfZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueTtcbiAgLy8gcHJvdGVjdGVkIF93aW5kb3dSZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgX2VkaXRvckNvbXBvbmVudDogRWxlbWVudFJlZjsgLy/DpcKKwqjDpsKAwoHDpsK3wrvDpcKKwqDDpMK7wqPDp8KgwoHDp8K8wpbDqMK+wpHDpcKZwqhcbiAgXG4gIEBPdXRwdXQoKSBvbkluaXQ7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTtcbiAgQE91dHB1dCgpIG9uVG91Y2hlZDtcblxuICBASW5wdXQoJ29wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICAvLyDDqcK7wpjDqMKuwqRvcHRpb25zKHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zKSArIMOowofCqsOlwq7CmsOkwrnCiW9wdGlvbnMob3B0aW9ucylcbiAgICB0aGlzLl9vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvLyBASW5wdXQoJ21vZGVsJylcbiAgLy8gc2V0IG1vZGVsKG1vZGVsOiBBbmd1bGFyRWRpdG9yTW9kZWwpIHtcbiAgLy8gICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgLy8gICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gIC8vICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAvLyAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gw6bCs8Kow6XChcKlQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZ8OvwrzCjMOlwpzCqMOlwojCm8OlwrvCukVkaXRvcsOlwq7CnsOkwr7Ci8OmwpfCtsOowq7CvsOnwr3CrmNvbmZpZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgQEluamVjdChBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZywgcHJpdmF0ZSBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlOiBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyDDpcKIwp3DpcKnwovDpcKMwpbDqMKHwqrDpcKuwprDpMK5wonDpMK6wovDpMK7wrZcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgLy8gw6XCiMKbw6XCu8K6w6jCh8Kqw6XCrsKaw6TCucKJw6TCusKLw6TCu8K2w6/CvMKMw6bCrcKkw6XCpMKEw6TCvcKcw6fClMKow6fCrcKJw6bClcKIw6TCusKOOiBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgXG4gICAgICBzZWxmW25hbWVdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgICBjb25zdCBldmVudFBhaXIgPSBwaWNrKHNlbGYsIG5hbWUpO1xuICAgICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5hZGRFdmVudChldmVudFBhaXIpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLy8gV2FpdCB1bnRpbCBtb25hY28gZWRpdG9yIGlzIGF2YWlsYWJsZVxuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgfHwgJy9hc3NldHMnO1xuICAgICAgICAvLyBpZiAodHlwZW9mKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgLy8gTG9hZCBtb25hY29cbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUuY29uZmlnKHsgcGF0aHM6IHsgJ3ZzJzogYCR7YmFzZVVybH0vbW9uYWNvL3ZzYCB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLm9uTW9uYWNvTG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgQU1EIGxvYWRlciBpZiBuZWNlc3NhcnlcbiAgICAgICAgaWYgKCEoPGFueT53aW5kb3cpLnJlcXVpcmUpIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICBsb2FkZXJTY3JpcHQuc3JjID0gYCR7YmFzZVVybH0vbW9uYWNvL3ZzL2xvYWRlci5qc2A7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkZXJTY3JpcHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uR290QW1kTG9hZGVyKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIGlmICh0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vIH1cbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5fZWRpdG9yID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0TW9uYWNvKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKFwiSW5pdCB0aGUgY3VzdG9tIG1vbmFjbyBjb2RlIGVkaXRvci5cIik7XG5cbiAgICAvLyBjb25zdCBoYXNNb2RlbCA9ICEhb3B0aW9ucy5tb2RlbDtcbiAgICBjb25zdCBoYXNNb2RlbCA9IGZhbHNlO1xuXG4gICAgLy8gaWYgKGhhc01vZGVsKSB7XG4gICAgLy8gICBvcHRpb25zLm1vZGVsID0gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbChvcHRpb25zLm1vZGVsLnZhbHVlLCBvcHRpb25zLm1vZGVsLmxhbmd1YWdlLCBvcHRpb25zLm1vZGVsLnVyaSk7XG4gICAgLy8gfVxuICAgIFxuICAgIHRoaXMuX2VkaXRvciA9IG1vbmFjby5lZGl0b3IuY3JlYXRlKHRoaXMuX2VkaXRvckNvbXBvbmVudC5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgIGlmICghaGFzTW9kZWwpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIHRoaXMuX2VkaXRvci5vbkRpZENoYW5nZU1vZGVsQ29udGVudCgoZTogYW55KSA9PiB0aGlzLm9uQ2hhbmdlTW9kZWxDb250ZW50SGFuZGxlcihlKSk7XG5cbiAgICB0aGlzLl9lZGl0b3Iub25EaWRCbHVyRWRpdG9yVGV4dCgoZTogYW55KSA9PiB0aGlzLm9uQmx1ckVkaXRvclRleHRIYW5kbGVyKGUpKTtcblxuICAgIC8vIHJlZnJlc2ggbGF5b3V0IG9uIHJlc2l6ZSBldmVudC5cbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9lZGl0b3IubGF5b3V0KCkpO1xuXG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25Jbml0LFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZWRpdG9yOiB0aGlzLl9lZGl0b3JcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlTW9kZWxDb250ZW50SGFuZGxlcihlKXtcbiAgICBjb25zdCBfdmFsdWUgPSB0aGlzLl9lZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICBcbiAgICAvLyBtb25hY28gZWRpdG9yIC0+IG91dHNpZGUgY29tcG9uZW50XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0pUYW5nbWluZy90bS9pc3N1ZXMvNCBuZ1pvbmXDqMKvwqbDqMKnwqNcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMudmFsdWUgPSBfdmFsdWUpOy8vIHZhbHVlIGlzIG5vdCBwcm9wYWdhdGVkIHRvIHBhcmVudCB3aGVuIGV4ZWN1dGluZyBvdXRzaWRlIHpvbmUuXG4gICAgLy8gY29uc29sZS5sb2coXCJ3cml0ZSBmcm9tIHRoZSBtb25hY286XCIgKyB0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBvbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKXtcblxuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIC8vZ2V0IGFjY2Vzc29yXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9O1xuXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgIT09IHRoaXMudmFsdWUpIHsvLyDDpsKzwqjDpsKEwo/DqMK/wpnDp8Knwo3DpcKGwpnDpsKzwpXDr8K8wozDpcKAwrzDpcK+wpfDpcKtwqbDpMK5wqBcbiAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlcih0aGlzLnZhbHVlKTsvL8OlwpzCqMOlwrHCnsOmwoDCp8Okwr/CrsOpwqXCsMOlwpnCqMOpwofCjMOowrDCg8OnwpTCqG9uY2hhbmdlSGFuZGxlcsOmwpbCucOmwrPClVxuICB9XG5cbiAgbG9jYWxFZGl0b3IoKXsvL0RlbW86IG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgICB0aGlzLndyaXRlVmFsdWUoJ3Rlc3QnKTtcbiAgfVxuXG4gIC8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjozLjIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvXG5cbiAgLy8gb3V0c2lkZSBjb21wb25lbnQgLT4gbW9uYWNvIGVkaXRvclxuICBcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG5cbiAgICAvLyBGaXggZm9yIHZhbHVlIGNoYW5nZSB3aGlsZSBkaXNwb3NlIGluIHByb2Nlc3MuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fZWRpdG9yIC8qJiYgIXRoaXMub3B0aW9ucy5tb2RlbCovKSB7XG4gICAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgdG8gdGhlIGVkaXRvcjpcIiArIHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcyk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuICBcbiAgLy9Db250cm9sVmFsdWVBY2Nlc3NvcsOmwo/CkMOkwr7Cm8OnwprChMOkwrrCi8OkwrvCtsOlwpvCnsOowrDCg1xuICBvbkNoYW5nZUhhbmRsZXIgPSAoXzogYW55KSA9PiB7IC8vUHJvcGFnYXRlIENoYW5nZSB0byBvdXRzaWRlXG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25DaGFuZ2UsXG4gICAgICB0YXJnZXQ6IHRoaXMsXG4gICAgICBkYXRhOiBfXG4gICAgfSk7XG4gIH07XG5cbiAgLy9Db250cm9sVmFsdWVBY2Nlc3NvcsOmwo/CkMOkwr7Cm8OnwprChMOkwrrCi8OkwrvCtsOlwpvCnsOowrDCg1xuICBvblRvdWNoZWRIYW5kbGVyID0gKCkgPT4ge1xuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uVG91Y2hlZCxcbiAgICAgIHRhcmdldDogdGhpc1xuICAgIH0pO1xuICB9O1xufSIsImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHLCBBbmd1bGFyTW9uYWNvRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci1tb25hY28tZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyTW9uYWNvRWRpdG9yTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFyTW9uYWNvRWRpdG9yTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFB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

@@ -184,3 +184,3 @@ import { InjectionToken, Injectable, Component, EventEmitter, Input, Output, ViewChild, forwardRef, Inject, NgZone, NgModule } from '@angular/core';

var /** @type {?} */ loaderScript = document.createElement('script');
loaderScript.type = 'application/javascript';
loaderScript.type = 'text/javascript';
loaderScript.src = baseUrl + "/monaco/vs/loader.js";

@@ -427,2 +427,2 @@ loaderScript.addEventListener('load', onGotAmdLoader);

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9jb25maWcudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2NvbnN0YW50cy9ldmVudHMudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9lZGl0b3IubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGluamVjdGlvblRva2Vuw6TCvcKcw6fClMKow6jCr8K0w6bCmMKOXG4vLyBodHRwczovL3NlZ21lbnRmYXVsdC5jb20vYS8xMTkwMDAwMDA4NjI2MzQ4XG5leHBvcnQgY29uc3QgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBkZWZhdWx0T3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55OyB9LFxuICBvbk1vbmFjb0xvYWQ/OiBGdW5jdGlvbjtcbn0iLCJleHBvcnQgY29uc3QgQ09ERV9FRElUT1JfRVZFTlRTID0ge1xyXG4gICAgb25Jbml0OiAnb25Jbml0JyxcclxuICAgIG9uQ2hhbmdlOiAnb25DaGFuZ2UnLFxyXG4gICAgb25Ub3VjaGVkOiAnb25Ub3VjaGVkJ1xyXG59IiwiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmltcG9ydCB7IENPREVfRURJVE9SX0VWRU5UUyB9IGZyb20gJy4uL2NvbnN0YW50cy9ldmVudHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckV2ZW50U2VydmljZSB7XHJcbiAgICBwdWJsaWMgZXZlbnROYW1lcyA9IE9iamVjdC5rZXlzKENPREVfRURJVE9SX0VWRU5UUyk7XHJcbiAgICBwcml2YXRlIF9ldmVudHM6IGFueSA9IHt9OyAvLyDDpMK9wr/Dp8KUwqjDpMK6wovDpMK7wrZcclxuXHJcbiAgICAvKipcclxuICAgICAqIMOowq7CvsOnwr3CrsOlwpDCr8OnwpTCqMOkwrrCi8OkwrvCtlxyXG4gICAgICogQHBhcmFtICDDpMK6wovDpMK7wrZcclxuICAgICAqL1xyXG4gICAgYWRkRXZlbnQoZXZlbnQpe1xyXG4gICAgICAgIGFzc2lnbih0aGlzLl9ldmVudHMsIGV2ZW50KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmV2ZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlyZUV2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRzW2V2ZW50LmV2ZW50TmFtZV0uZW1pdChldmVudCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJFbWl0IEV2ZW50OlwiICsgZXZlbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29kZS1lZGl0b3IuZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcblxubGV0IGxvYWRlZE1vbmFjbzogYm9vbGVhbiA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4vLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6MS7DpcKwwoHDqMKjwoVDb250cm9sVmFsdWVBY2Nlc3NvclxuLy8gaHR0cHM6Ly9jb2RlLWV4YW1wbGVzLm5ldC96aC1DTi9xLzIxNTQ3NjFcbmV4cG9ydCBjb25zdCBDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAvLyBodHRwczovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2Rhbl8yMDEzL2FydGljbGUvZGV0YWlscy84MTMxNDk1OVxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwvL1xuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50KSwvL1xuICBtdWx0aTogdHJ1ZS8vXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJlZGl0b3JcIiAjY29kZUVkaXRvcj48L2Rpdj5gLFxuICBzdHlsZXM6IFtgOmhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwcHh9LmVkaXRvcnt3aWR0aDoxMDAlO2hlaWdodDo5OCV9YF0sXG4gIC8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjoyLsOlwrzClcOlwoXCpcOkwr7CncOowrXClsOmwpzCjcOlworCoUNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByb3ZpZGVyczogW0NPREVfRURJVE9SX0lOUFVUX1ZBTFVFX0FDQ0VTU09SLCBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlXVxufSlcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2IDwtPiBNb25hY28gRWR0b3JcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjMuMSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIFxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95e1xuXG4gIHByb3RlY3RlZCBfZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueTtcbiAgLy8gcHJvdGVjdGVkIF93aW5kb3dSZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgX2VkaXRvckNvbXBvbmVudDogRWxlbWVudFJlZjsgLy/DpcKKwqjDpsKAwoHDpsK3wrvDpcKKwqDDpMK7wqPDp8KgwoHDp8K8wpbDqMK+wpHDpcKZwqhcbiAgXG4gIEBPdXRwdXQoKSBvbkluaXQ7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTtcbiAgQE91dHB1dCgpIG9uVG91Y2hlZDtcblxuICBASW5wdXQoJ29wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICAvLyDDqcK7wpjDqMKuwqRvcHRpb25zKHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zKSArIMOowofCqsOlwq7CmsOkwrnCiW9wdGlvbnMob3B0aW9ucylcbiAgICB0aGlzLl9vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvLyBASW5wdXQoJ21vZGVsJylcbiAgLy8gc2V0IG1vZGVsKG1vZGVsOiBBbmd1bGFyRWRpdG9yTW9kZWwpIHtcbiAgLy8gICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgLy8gICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gIC8vICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAvLyAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gw6bCs8Kow6XChcKlQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZ8OvwrzCjMOlwpzCqMOlwojCm8OlwrvCukVkaXRvcsOlwq7CnsOkwr7Ci8OmwpfCtsOowq7CvsOnwr3CrmNvbmZpZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgQEluamVjdChBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZywgcHJpdmF0ZSBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlOiBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyDDpcKIwp3DpcKnwovDpcKMwpbDqMKHwqrDpcKuwprDpMK5wonDpMK6wovDpMK7wrZcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgLy8gw6XCiMKbw6XCu8K6w6jCh8Kqw6XCrsKaw6TCucKJw6TCusKLw6TCu8K2w6/CvMKMw6bCrcKkw6XCpMKEw6TCvcKcw6fClMKow6fCrcKJw6bClcKIw6TCusKOOiBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgXG4gICAgICBzZWxmW25hbWVdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgICBjb25zdCBldmVudFBhaXIgPSBwaWNrKHNlbGYsIG5hbWUpO1xuICAgICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5hZGRFdmVudChldmVudFBhaXIpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLy8gV2FpdCB1bnRpbCBtb25hY28gZWRpdG9yIGlzIGF2YWlsYWJsZVxuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgfHwgJy9hc3NldHMnO1xuICAgICAgICAvLyBpZiAodHlwZW9mKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgLy8gTG9hZCBtb25hY29cbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUuY29uZmlnKHsgcGF0aHM6IHsgJ3ZzJzogYCR7YmFzZVVybH0vbW9uYWNvL3ZzYCB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLm9uTW9uYWNvTG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgQU1EIGxvYWRlciBpZiBuZWNlc3NhcnlcbiAgICAgICAgaWYgKCEoPGFueT53aW5kb3cpLnJlcXVpcmUpIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAnYXBwbGljYXRpb24vamF2YXNjcmlwdCc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9IGAke2Jhc2VVcmx9L21vbmFjby92cy9sb2FkZXIuanNgO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgb25Hb3RBbWRMb2FkZXIpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkdvdEFtZExvYWRlcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgaWYgKHRoaXMuX2VkaXRvcikge1xuICAgICAgdGhpcy5fZWRpdG9yLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX2VkaXRvciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdE1vbmFjbyhvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhcIkluaXQgdGhlIGN1c3RvbSBtb25hY28gY29kZSBlZGl0b3IuXCIpO1xuXG4gICAgLy8gY29uc3QgaGFzTW9kZWwgPSAhIW9wdGlvbnMubW9kZWw7XG4gICAgY29uc3QgaGFzTW9kZWwgPSBmYWxzZTtcblxuICAgIC8vIGlmIChoYXNNb2RlbCkge1xuICAgIC8vICAgb3B0aW9ucy5tb2RlbCA9IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwob3B0aW9ucy5tb2RlbC52YWx1ZSwgb3B0aW9ucy5tb2RlbC5sYW5ndWFnZSwgb3B0aW9ucy5tb2RlbC51cmkpO1xuICAgIC8vIH1cbiAgICBcbiAgICB0aGlzLl9lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLl9lZGl0b3JDb21wb25lbnQubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIWhhc01vZGVsKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIG1vbmFjbyBlZGl0b3IgLT4gb3V0c2lkZSBjb21wb25lbnRcbiAgICB0aGlzLl9lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4gdGhpcy5vbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSkpO1xuXG4gICAgdGhpcy5fZWRpdG9yLm9uRGlkQmx1ckVkaXRvclRleHQoKGU6IGFueSkgPT4gdGhpcy5vbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKSk7XG5cbiAgICAvLyByZWZyZXNoIGxheW91dCBvbiByZXNpemUgZXZlbnQuXG4gICAgLy8gaWYgKHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbikge1xuICAgIC8vICAgdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZWRpdG9yLmxheW91dCgpKTtcblxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uSW5pdCxcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIGVkaXRvcjogdGhpcy5fZWRpdG9yXG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZU1vZGVsQ29udGVudEhhbmRsZXIoZSl7XG4gICAgY29uc3QgX3ZhbHVlID0gdGhpcy5fZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9KVGFuZ21pbmcvdG0vaXNzdWVzLzQgbmdab25lw6jCr8Kmw6jCp8KjXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnZhbHVlID0gX3ZhbHVlKTsvLyB2YWx1ZSBpcyBub3QgcHJvcGFnYXRlZCB0byBwYXJlbnQgd2hlbiBleGVjdXRpbmcgb3V0c2lkZSB6b25lLlxuICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgZnJvbSB0aGUgbW9uYWNvOlwiICsgdGhpcy5fdmFsdWUpO1xuICB9XG5cbiAgb25CbHVyRWRpdG9yVGV4dEhhbmRsZXIoZSl7XG5cbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAvL2dldCBhY2Nlc3NvclxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfTtcblxuICAvL3NldCBhY2Nlc3NvciBpbmNsdWRpbmcgY2FsbCB0aGUgb25jaGFuZ2UgY2FsbGJhY2tcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xuICAgIGlmICh2ICE9PSB0aGlzLnZhbHVlKSB7Ly8gw6bCs8Kow6bChMKPw6jCv8KZw6fCp8KNw6XChsKZw6bCs8KVw6/CvMKMw6XCgMK8w6XCvsKXw6XCrcKmw6TCucKgXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcy52YWx1ZSk7Ly/DpcKcwqjDpcKxwp7DpsKAwqfDpMK/wq7DqcKlwrDDpcKZwqjDqcKHwozDqMKwwoPDp8KUwqhvbmNoYW5nZUhhbmRsZXLDpsKWwrnDpsKzwpVcbiAgfVxuXG4gIGxvY2FsRWRpdG9yKCl7Ly9EZW1vOiBvdXRzaWRlIGNvbXBvbmVudCAtPiBtb25hY28gZWRpdG9yXG4gICAgdGhpcy53cml0ZVZhbHVlKCd0ZXN0Jyk7XG4gIH1cblxuICAvLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6My4yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb1xuXG4gIC8vIG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gICAgLy8gRml4IGZvciB2YWx1ZSBjaGFuZ2Ugd2hpbGUgZGlzcG9zZSBpbiBwcm9jZXNzLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VkaXRvciAvKiYmICF0aGlzLm9wdGlvbnMubW9kZWwqLykge1xuICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIndyaXRlIHRvIHRoZSBlZGl0b3I6XCIgKyB0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2VIYW5kbGVyKHRoaXMpO1xuICB9XG5cbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWRIYW5kbGVyKCk7XG4gIH1cbiAgXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3LDpsKPwpDDpMK+wpvDp8KawoTDpMK6wovDpMK7wrbDpcKbwp7DqMKwwoNcbiAgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyAvL1Byb3BhZ2F0ZSBDaGFuZ2UgdG8gb3V0c2lkZVxuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uQ2hhbmdlLFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZGF0YTogX1xuICAgIH0pO1xuICB9O1xuXG4gIC8vQ29udHJvbFZhbHVlQWNjZXNzb3LDpsKPwpDDpMK+wpvDp8KawoTDpMK6wovDpMK7wrbDpcKbwp7DqMKwwoNcbiAgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHtcbiAgICB0aGlzLmNvZGVFZGl0b3JFdmVudFNlcnZpY2UuZmlyZUV2ZW50KHsgXG4gICAgICBldmVudE5hbWU6IENPREVfRURJVE9SX0VWRU5UUy5vblRvdWNoZWQsXG4gICAgICB0YXJnZXQ6IHRoaXNcbiAgICB9KTtcbiAgfTtcbn0iLCJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQW5ndWxhck1vbmFjb0VkaXRvck1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcgPSB7fSk6IE1vZHVsZVdpdGhQcm92aWRlcnMge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhck1vbmFjb0VkaXRvck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEFOR1VMQVJfTU9OQUNPX0VESVRPUl9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tb25hY28tZWRpdG9yLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9jb25maWcudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2NvbnN0YW50cy9ldmVudHMudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL3NlcnZpY2VzL2NvZGUtZWRpdG9yLmV2ZW50LnNlcnZpY2UudHMiLCJuZzovL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9saWIvZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci9hbmd1bGFyLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwibmc6Ly9hbmd1bGFyLW1vbmFjby1lZGl0b3IvbGliL2VkaXRvci9lZGl0b3IubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGluamVjdGlvblRva2Vuw6TCvcKcw6fClMKow6jCr8K0w6bCmMKOXG4vLyBodHRwczovL3NlZ21lbnRmYXVsdC5jb20vYS8xMTkwMDAwMDA4NjI2MzQ4XG5leHBvcnQgY29uc3QgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJNb25hY29FZGl0b3JDb25maWcge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICBkZWZhdWx0T3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55OyB9LFxuICBvbk1vbmFjb0xvYWQ/OiBGdW5jdGlvbjtcbn0iLCJleHBvcnQgY29uc3QgQ09ERV9FRElUT1JfRVZFTlRTID0ge1xyXG4gICAgb25Jbml0OiAnb25Jbml0JyxcclxuICAgIG9uQ2hhbmdlOiAnb25DaGFuZ2UnLFxyXG4gICAgb25Ub3VjaGVkOiAnb25Ub3VjaGVkJ1xyXG59IiwiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbmltcG9ydCB7IENPREVfRURJVE9SX0VWRU5UUyB9IGZyb20gJy4uL2NvbnN0YW50cy9ldmVudHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckV2ZW50U2VydmljZSB7XHJcbiAgICBwdWJsaWMgZXZlbnROYW1lcyA9IE9iamVjdC5rZXlzKENPREVfRURJVE9SX0VWRU5UUyk7XHJcbiAgICBwcml2YXRlIF9ldmVudHM6IGFueSA9IHt9OyAvLyDDpMK9wr/Dp8KUwqjDpMK6wovDpMK7wrZcclxuXHJcbiAgICAvKipcclxuICAgICAqIMOowq7CvsOnwr3CrsOlwpDCr8OnwpTCqMOkwrrCi8OkwrvCtlxyXG4gICAgICogQHBhcmFtICDDpMK6wovDpMK7wrZcclxuICAgICAqL1xyXG4gICAgYWRkRXZlbnQoZXZlbnQpe1xyXG4gICAgICAgIGFzc2lnbih0aGlzLl9ldmVudHMsIGV2ZW50KTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmV2ZW50cyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlyZUV2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRzW2V2ZW50LmV2ZW50TmFtZV0uZW1pdChldmVudCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJFbWl0IEV2ZW50OlwiICsgZXZlbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29kZS1lZGl0b3IuZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDT0RFX0VESVRPUl9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcblxuZGVjbGFyZSBjb25zdCBtb25hY286IGFueTtcblxubGV0IGxvYWRlZE1vbmFjbzogYm9vbGVhbiA9IGZhbHNlO1xubGV0IGxvYWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXG4vLyDDqMKHwqrDpcKuwprDpMK5wonDqMK+wpPDpcKFwqXDpsKOwqfDpMK7wrY6MS7DpcKwwoHDqMKjwoVDb250cm9sVmFsdWVBY2Nlc3NvclxuLy8gaHR0cHM6Ly9jb2RlLWV4YW1wbGVzLm5ldC96aC1DTi9xLzIxNTQ3NjFcbmV4cG9ydCBjb25zdCBDT0RFX0VESVRPUl9JTlBVVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAvLyBodHRwczovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2Rhbl8yMDEzL2FydGljbGUvZGV0YWlscy84MTMxNDk1OVxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwvL1xuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbmd1bGFyTW9uYWNvRWRpdG9yQ29tcG9uZW50KSwvL1xuICBtdWx0aTogdHJ1ZS8vXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLW1vbmFjby1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJlZGl0b3JcIiAjY29kZUVkaXRvcj48L2Rpdj5gLFxuICBzdHlsZXM6IFtgOmhvc3R7ZGlzcGxheTpibG9jaztoZWlnaHQ6MjAwcHh9LmVkaXRvcnt3aWR0aDoxMDAlO2hlaWdodDo5OCV9YF0sXG4gIC8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjoyLsOlwrzClcOlwoXCpcOkwr7CncOowrXClsOmwpzCjcOlworCoUNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByb3ZpZGVyczogW0NPREVfRURJVE9SX0lOUFVUX1ZBTFVFX0FDQ0VTU09SLCBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlXVxufSlcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2IDwtPiBNb25hY28gRWR0b3JcblxuLy8gw6jCh8Kqw6XCrsKaw6TCucKJw6jCvsKTw6XChcKlw6bCjsKnw6TCu8K2OjMuMSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIFxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95e1xuXG4gIHByb3RlY3RlZCBfZWRpdG9yOiBhbnk7XG4gIHByaXZhdGUgX29wdGlvbnM6IGFueTtcbiAgLy8gcHJvdGVjdGVkIF93aW5kb3dSZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdjb2RlRWRpdG9yJykgX2VkaXRvckNvbXBvbmVudDogRWxlbWVudFJlZjsgLy/DpcKKwqjDpsKAwoHDpsK3wrvDpcKKwqDDpMK7wqPDp8KgwoHDp8K8wpbDqMK+wpHDpcKZwqhcbiAgXG4gIEBPdXRwdXQoKSBvbkluaXQ7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTtcbiAgQE91dHB1dCgpIG9uVG91Y2hlZDtcblxuICBASW5wdXQoJ29wdGlvbnMnKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICAvLyDDqcK7wpjDqMKuwqRvcHRpb25zKHRoaXMuY29uZmlnLmRlZmF1bHRPcHRpb25zKSArIMOowofCqsOlwq7CmsOkwrnCiW9wdGlvbnMob3B0aW9ucylcbiAgICB0aGlzLl9vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9lZGl0b3IpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmluaXRNb25hY28ob3B0aW9ucyk7XG4gICAgfVxuICB9XG4gIGdldCBvcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvLyBASW5wdXQoJ21vZGVsJylcbiAgLy8gc2V0IG1vZGVsKG1vZGVsOiBBbmd1bGFyRWRpdG9yTW9kZWwpIHtcbiAgLy8gICB0aGlzLm9wdGlvbnMubW9kZWwgPSBtb2RlbDtcbiAgLy8gICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gIC8vICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAvLyAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMub3B0aW9ucyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gw6bCs8Kow6XChcKlQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZ8OvwrzCjMOlwpzCqMOlwojCm8OlwrvCukVkaXRvcsOlwq7CnsOkwr7Ci8OmwpfCtsOowq7CvsOnwr3CrmNvbmZpZ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgQEluamVjdChBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZywgcHJpdmF0ZSBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlOiBDb2RlRWRpdG9yRXZlbnRTZXJ2aWNlKSB7XG5cbiAgICAvLyDDpcKIwp3DpcKnwovDpcKMwpbDqMKHwqrDpcKuwprDpMK5wonDpMK6wovDpMK7wrZcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgLy8gw6XCiMKbw6XCu8K6w6jCh8Kqw6XCrsKaw6TCucKJw6TCusKLw6TCu8K2w6/CvMKMw6bCrcKkw6XCpMKEw6TCvcKcw6fClMKow6fCrcKJw6bClcKIw6TCusKOOiBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgXG4gICAgICBzZWxmW25hbWVdID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgICBjb25zdCBldmVudFBhaXIgPSBwaWNrKHNlbGYsIG5hbWUpO1xuICAgICAgY29kZUVkaXRvckV2ZW50U2VydmljZS5hZGRFdmVudChldmVudFBhaXIpO1xuICAgIH0pO1xuXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKGxvYWRlZE1vbmFjbykge1xuICAgICAgLy8gV2FpdCB1bnRpbCBtb25hY28gZWRpdG9yIGlzIGF2YWlsYWJsZVxuICAgICAgbG9hZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRlZE1vbmFjbyA9IHRydWU7XG4gICAgICBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnLmJhc2VVcmwgfHwgJy9hc3NldHMnO1xuICAgICAgICAvLyBpZiAodHlwZW9mKCg8YW55PndpbmRvdykubW9uYWNvKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIGNvbnN0IG9uR290QW1kTG9hZGVyOiBhbnkgPSAoKSA9PiB7XG4gICAgICAgICAgLy8gTG9hZCBtb25hY29cbiAgICAgICAgICAoPGFueT53aW5kb3cpLnJlcXVpcmUuY29uZmlnKHsgcGF0aHM6IHsgJ3ZzJzogYCR7YmFzZVVybH0vbW9uYWNvL3ZzYCB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLm9uTW9uYWNvTG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vbk1vbmFjb0xvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLm9wdGlvbnMpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgQU1EIGxvYWRlciBpZiBuZWNlc3NhcnlcbiAgICAgICAgaWYgKCEoPGFueT53aW5kb3cpLnJlcXVpcmUpIHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICBsb2FkZXJTY3JpcHQuc3JjID0gYCR7YmFzZVVybH0vbW9uYWNvL3ZzL2xvYWRlci5qc2A7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkZXJTY3JpcHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uR290QW1kTG9hZGVyKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIGlmICh0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAvLyAgIHRoaXMuX3dpbmRvd1Jlc2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vIH1cbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICB0aGlzLl9lZGl0b3IuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5fZWRpdG9yID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0TW9uYWNvKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKFwiSW5pdCB0aGUgY3VzdG9tIG1vbmFjbyBjb2RlIGVkaXRvci5cIik7XG5cbiAgICAvLyBjb25zdCBoYXNNb2RlbCA9ICEhb3B0aW9ucy5tb2RlbDtcbiAgICBjb25zdCBoYXNNb2RlbCA9IGZhbHNlO1xuXG4gICAgLy8gaWYgKGhhc01vZGVsKSB7XG4gICAgLy8gICBvcHRpb25zLm1vZGVsID0gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbChvcHRpb25zLm1vZGVsLnZhbHVlLCBvcHRpb25zLm1vZGVsLmxhbmd1YWdlLCBvcHRpb25zLm1vZGVsLnVyaSk7XG4gICAgLy8gfVxuICAgIFxuICAgIHRoaXMuX2VkaXRvciA9IG1vbmFjby5lZGl0b3IuY3JlYXRlKHRoaXMuX2VkaXRvckNvbXBvbmVudC5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgIGlmICghaGFzTW9kZWwpIHtcbiAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gbW9uYWNvIGVkaXRvciAtPiBvdXRzaWRlIGNvbXBvbmVudFxuICAgIHRoaXMuX2VkaXRvci5vbkRpZENoYW5nZU1vZGVsQ29udGVudCgoZTogYW55KSA9PiB0aGlzLm9uQ2hhbmdlTW9kZWxDb250ZW50SGFuZGxlcihlKSk7XG5cbiAgICB0aGlzLl9lZGl0b3Iub25EaWRCbHVyRWRpdG9yVGV4dCgoZTogYW55KSA9PiB0aGlzLm9uQmx1ckVkaXRvclRleHRIYW5kbGVyKGUpKTtcblxuICAgIC8vIHJlZnJlc2ggbGF5b3V0IG9uIHJlc2l6ZSBldmVudC5cbiAgICAvLyBpZiAodGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uKSB7XG4gICAgLy8gICB0aGlzLl93aW5kb3dSZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy5fd2luZG93UmVzaXplU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9lZGl0b3IubGF5b3V0KCkpO1xuXG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25Jbml0LFxuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgZWRpdG9yOiB0aGlzLl9lZGl0b3JcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlTW9kZWxDb250ZW50SGFuZGxlcihlKXtcbiAgICBjb25zdCBfdmFsdWUgPSB0aGlzLl9lZGl0b3IuZ2V0VmFsdWUoKTtcbiAgICBcbiAgICAvLyBtb25hY28gZWRpdG9yIC0+IG91dHNpZGUgY29tcG9uZW50XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0pUYW5nbWluZy90bS9pc3N1ZXMvNCBuZ1pvbmXDqMKvwqbDqMKnwqNcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMudmFsdWUgPSBfdmFsdWUpOy8vIHZhbHVlIGlzIG5vdCBwcm9wYWdhdGVkIHRvIHBhcmVudCB3aGVuIGV4ZWN1dGluZyBvdXRzaWRlIHpvbmUuXG4gICAgLy8gY29uc29sZS5sb2coXCJ3cml0ZSBmcm9tIHRoZSBtb25hY286XCIgKyB0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBvbkJsdXJFZGl0b3JUZXh0SGFuZGxlcihlKXtcblxuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIC8vZ2V0IGFjY2Vzc29yXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9O1xuXG4gIC8vc2V0IGFjY2Vzc29yIGluY2x1ZGluZyBjYWxsIHRoZSBvbmNoYW5nZSBjYWxsYmFja1xuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgIT09IHRoaXMudmFsdWUpIHsvLyDDpsKzwqjDpsKEwo/DqMK/wpnDp8Knwo3DpcKGwpnDpsKzwpXDr8K8wozDpcKAwrzDpcK+wpfDpcKtwqbDpMK5wqBcbiAgICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlcih0aGlzLnZhbHVlKTsvL8OlwpzCqMOlwrHCnsOmwoDCp8Okwr/CrsOpwqXCsMOlwpnCqMOpwofCjMOowrDCg8OnwpTCqG9uY2hhbmdlSGFuZGxlcsOmwpbCucOmwrPClVxuICB9XG5cbiAgbG9jYWxFZGl0b3IoKXsvL0RlbW86IG91dHNpZGUgY29tcG9uZW50IC0+IG1vbmFjbyBlZGl0b3JcbiAgICB0aGlzLndyaXRlVmFsdWUoJ3Rlc3QnKTtcbiAgfVxuXG4gIC8vIMOowofCqsOlwq7CmsOkwrnCicOowr7Ck8OlwoXCpcOmwo7Cp8OkwrvCtjozLjIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvXG5cbiAgLy8gb3V0c2lkZSBjb21wb25lbnQgLT4gbW9uYWNvIGVkaXRvclxuICBcbiAgLy9Gcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG5cbiAgICAvLyBGaXggZm9yIHZhbHVlIGNoYW5nZSB3aGlsZSBkaXNwb3NlIGluIHByb2Nlc3MuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fZWRpdG9yIC8qJiYgIXRoaXMub3B0aW9ucy5tb2RlbCovKSB7XG4gICAgICAgIHRoaXMuX2VkaXRvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwid3JpdGUgdG8gdGhlIGVkaXRvcjpcIiArIHRoaXMuX3ZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIodGhpcyk7XG4gIH1cblxuICAvL0Zyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcbiAgfVxuICBcbiAgLy9Db250cm9sVmFsdWVBY2Nlc3NvcsOmwo/CkMOkwr7Cm8OnwprChMOkwrrCi8OkwrvCtsOlwpvCnsOowrDCg1xuICBvbkNoYW5nZUhhbmRsZXIgPSAoXzogYW55KSA9PiB7IC8vUHJvcGFnYXRlIENoYW5nZSB0byBvdXRzaWRlXG4gICAgdGhpcy5jb2RlRWRpdG9yRXZlbnRTZXJ2aWNlLmZpcmVFdmVudCh7IFxuICAgICAgZXZlbnROYW1lOiBDT0RFX0VESVRPUl9FVkVOVFMub25DaGFuZ2UsXG4gICAgICB0YXJnZXQ6IHRoaXMsXG4gICAgICBkYXRhOiBfXG4gICAgfSk7XG4gIH07XG5cbiAgLy9Db250cm9sVmFsdWVBY2Nlc3NvcsOmwo/CkMOkwr7Cm8OnwprChMOkwrrCi8OkwrvCtsOlwpvCnsOowrDCg1xuICBvblRvdWNoZWRIYW5kbGVyID0gKCkgPT4ge1xuICAgIHRoaXMuY29kZUVkaXRvckV2ZW50U2VydmljZS5maXJlRXZlbnQoeyBcbiAgICAgIGV2ZW50TmFtZTogQ09ERV9FRElUT1JfRVZFTlRTLm9uVG91Y2hlZCxcbiAgICAgIHRhcmdldDogdGhpc1xuICAgIH0pO1xuICB9O1xufSIsImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBTkdVTEFSX01PTkFDT19FRElUT1JfQ09ORklHLCBBbmd1bGFyTW9uYWNvRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQW5ndWxhck1vbmFjb0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci1tb25hY28tZWRpdG9yL2FuZ3VsYXItbW9uYWNvLWVkaXRvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFuZ3VsYXJNb25hY29FZGl0b3JDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyTW9uYWNvRWRpdG9yTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQW5ndWxhck1vbmFjb0VkaXRvckNvbmZpZyA9IHt9KTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFyTW9uYWNvRWRpdG9yTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQU5HVUxBUl9NT05BQ09fRURJVE9SX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFB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
{
"name": "angular-monaco-editor",
"version": "1.2.0",
"version": "1.3.0",
"description": "To utilize the Monaco Code Editor as an Angular Component.",

@@ -5,0 +5,0 @@ "author": "courage007 <wang_xufa@163.com>",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc