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

ngx-ntk-smart-module

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-ntk-smart-module - npm Package Compare versions

Comparing version 1.1.2 to 1.1.3

2

bundles/ngx-ntk-smart-module.umd.min.js

@@ -15,3 +15,3 @@ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-ntk-smart-module",["exports","@angular/core","@angular/common"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["ngx-ntk-smart-module"]={},t.ng.core,t.ng.common)}(this,(function(t,e,n){"use strict";

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */Object.create;function o(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,r=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a}function i(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(o(arguments[e]));return t}Object.create;var r=function(){function t(){this._modalStack=[]}return t.prototype.addModal=function(t,e){if(e){var n=this._modalStack.findIndex((function(e){return e.id===t.id}));n>-1?this._modalStack[n].modal=t.modal:this._modalStack.push(t)}else this._modalStack.push(t)},t.prototype.getModal=function(t){var e=this._modalStack.find((function(e){return e.id===t}));if(void 0!==e)return e.modal;throw new Error("Cannot find modal with identifier "+t)},t.prototype.getModalStack=function(){return this._modalStack},t.prototype.getOpenedModals=function(){return this._modalStack.filter((function(t){return t.modal.visible}))},t.prototype.getTopOpenedModal=function(){if(!this.getOpenedModals().length)throw new Error("No modal is opened");return this.getOpenedModals().map((function(t){return t.modal})).reduce((function(t,e){return e.layerPosition>t.layerPosition?e:t}),this.getOpenedModals()[0].modal)},t.prototype.getHigherIndex=function(){return Math.max.apply(Math,i(this._modalStack.map((function(t){return t.modal.layerPosition})),[1041]))+1},t.prototype.getModalStackCount=function(){return this._modalStack.length},t.prototype.removeModal=function(t){var e=this._modalStack.findIndex((function(e){return e.id===t}));e>-1&&this._modalStack.splice(e,1)},t}();r.decorators=[{type:e.Injectable}],r.ctorParameters=function(){return[]};var a="dialog-open",s="ntk-smart-modal.",l=function(){function t(t,n,o,i,r){this._renderer=t,this._changeDetectorRef=n,this.componentFactoryResolver=o,this._document=i,this._platformId=r,this.closable=!0,this.escapable=!0,this.dismissable=!0,this.identifier="",this.customClass="nsm-dialog-animation-fade",this.visible=!1,this.backdrop=!0,this.force=!0,this.hideDelay=500,this.autostart=!1,this.target="",this.ariaLabel=null,this.ariaLabelledBy=null,this.ariaDescribedBy=null,this.refocus=!0,this.visibleChange=new e.EventEmitter,this.onClose=new e.EventEmitter,this.onCloseFinished=new e.EventEmitter,this.onDismiss=new e.EventEmitter,this.onDismissFinished=new e.EventEmitter,this.onAnyCloseEvent=new e.EventEmitter,this.onAnyCloseEventFinished=new e.EventEmitter,this.onOpen=new e.EventEmitter,this.onOpenFinished=new e.EventEmitter,this.onEscape=new e.EventEmitter,this.onDataAdded=new e.EventEmitter,this.onDataRemoved=new e.EventEmitter,this.layerPosition=1041,this.overlayVisible=!1,this.openedClass=!1,this.createFrom="html"}return t.prototype.ngOnInit=function(){if(!this.identifier||!this.identifier.length)throw new Error("identifier field isn’t set. Please set one before calling <ngx-smart-modal> in a template.");this._sendEvent("create")},t.prototype.ngAfterViewInit=function(){var t=this;if(this.contentComponent){var e=this.componentFactoryResolver.resolveComponentFactory(this.contentComponent);this.createDynamicContent(this.dynamicContentContainer,e),this.dynamicContentContainer.changes.subscribe((function(n){t.createDynamicContent(n,e)}))}},t.prototype.ngOnDestroy=function(){this._sendEvent("delete")},t.prototype.open=function(t){return this._sendEvent("open",{top:t}),this},t.prototype.close=function(){return this._sendEvent("close"),this},t.prototype.dismiss=function(t){return this.dismissable&&t.target.classList.contains("overlay")?(this._sendEvent("dismiss"),this):this},t.prototype.toggle=function(t){return this._sendEvent("toggle",{top:t}),this},t.prototype.addCustomClass=function(t){return this.customClass.length?this.customClass+=" "+t:this.customClass=t,this},t.prototype.removeCustomClass=function(t){return this.customClass=t?this.customClass.replace(t,"").trim():"",this},t.prototype.isVisible=function(){return this.visible},t.prototype.hasData=function(){return void 0!==this._data},t.prototype.setData=function(t,e){return(!this.hasData()||this.hasData()&&e)&&(this._data=t,this.onDataAdded.emit(this._data),this.markForCheck()),this},t.prototype.getData=function(){return this._data},t.prototype.removeData=function(){return this._data=void 0,this.onDataRemoved.emit(!0),this.markForCheck(),this},t.prototype.addBodyClass=function(){return this._renderer.addClass(this._document.body,a),this},t.prototype.removeBodyClass=function(){return this._renderer.removeClass(this._document.body,a),this},t.prototype.markForCheck=function(){try{this._changeDetectorRef.detectChanges()}catch(t){}this._changeDetectorRef.markForCheck()},t.prototype.targetPlacement=function(){if(!(this.isBrowser&&this.nsmDialog.length&&this.nsmContent.length&&this.nsmOverlay.length&&this.target))return!1;var t=this._document.querySelector(this.target);if(!t)return!1;var e=t.getBoundingClientRect(),n=this.nsmOverlay.first.nativeElement.getBoundingClientRect(),o=this.nsmContent.first.nativeElement.getBoundingClientRect(),i=this.nsmDialog.first.nativeElement.getBoundingClientRect(),r=parseInt(getComputedStyle(this.nsmContent.first.nativeElement).marginLeft,10),a=parseInt(getComputedStyle(this.nsmContent.first.nativeElement).marginTop,10),s=e.top-i.top-(o.height-e.height)/2,l=e.left-i.left-(o.width-e.width)/2;l+i.left+o.width+2*r>n.width?l=n.width-(i.left+o.width)-2*r:l+i.left<0&&(l=-i.left),s+i.top+o.height+a>n.height&&(s=n.height-(i.top+o.height)-a),this._renderer.setStyle(this.nsmContent.first.nativeElement,"top",(s<0?0:s)+"px"),this._renderer.setStyle(this.nsmContent.first.nativeElement,"left",l+"px")},t.prototype._sendEvent=function(t,e){if(!this.isBrowser)return!1;var n={extraData:e,instance:{id:this.identifier,modal:this}},o=new CustomEvent(s+t,{detail:n});return window.dispatchEvent(o)},Object.defineProperty(t.prototype,"isBrowser",{get:function(){return n.isPlatformBrowser(this._platformId)},enumerable:!1,configurable:!0}),t.prototype.createDynamicContent=function(t,e){var n=this;t.forEach((function(t){t.clear(),t.createComponent(e),n.markForCheck()}))},t}();l.decorators=[{type:e.Component,args:[{selector:"ntk-smart-modal",template:'\n <div *ngIf="overlayVisible"\n [style.z-index]="visible ? layerPosition-1 : -1"\n [ngClass]="{\'transparent\':!backdrop, \'overlay\':true, \'nsm-overlay-open\':openedClass}"\n (click)="dismiss($event)" #nsmOverlay>\n <div [style.z-index]="visible ? layerPosition : -1"\n [ngClass]="[\'nsm-dialog\', customClass, openedClass ? \'nsm-dialog-open\': \'nsm-dialog-close\']" #nsmDialog\n [attr.aria-hidden]="openedClass ? false : true"\n [attr.aria-label]="ariaLabel"\n [attr.aria-labelledby]="ariaLabelledBy"\n [attr.aria-describedby]="ariaDescribedBy">\n <div class="nsm-content" #nsmContent>\n <div class="nsm-body">\n <ng-template #dynamicContent></ng-template>\n <ng-content></ng-content>\n\n </div>\n <button type="button" *ngIf="closable" (click)="close()" aria-label="Close" class="nsm-dialog-btn-close">\n <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512"\n xml:space="preserve" width="16px" height="16px" role="img" aria-labelledby="closeIconTitle closeIconDesc">\n <title id="closeIconTitle">Close Icon</title>\n <desc id="closeIconDesc">A light-gray close icon used to close the modal</desc>\n <g>\n <path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249 C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306 C514.019,27.23,514.019,14.135,505.943,6.058z"\n fill="currentColor"/>\n </g>\n <g>\n <path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636 c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"\n fill="currentColor"/>\n </g>\n </svg>\n </button>\n </div>\n </div>\n </div>\n '}]}],l.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ChangeDetectorRef},{type:e.ComponentFactoryResolver},{type:void 0,decorators:[{type:e.Inject,args:[n.DOCUMENT]}]},{type:void 0,decorators:[{type:e.Inject,args:[e.PLATFORM_ID]}]}]},l.propDecorators={closable:[{type:e.Input}],escapable:[{type:e.Input}],dismissable:[{type:e.Input}],identifier:[{type:e.Input}],customClass:[{type:e.Input}],visible:[{type:e.Input}],backdrop:[{type:e.Input}],force:[{type:e.Input}],hideDelay:[{type:e.Input}],autostart:[{type:e.Input}],target:[{type:e.Input}],ariaLabel:[{type:e.Input}],ariaLabelledBy:[{type:e.Input}],ariaDescribedBy:[{type:e.Input}],refocus:[{type:e.Input}],visibleChange:[{type:e.Output}],onClose:[{type:e.Output}],onCloseFinished:[{type:e.Output}],onDismiss:[{type:e.Output}],onDismissFinished:[{type:e.Output}],onAnyCloseEvent:[{type:e.Output}],onAnyCloseEventFinished:[{type:e.Output}],onOpen:[{type:e.Output}],onOpenFinished:[{type:e.Output}],onEscape:[{type:e.Output}],onDataAdded:[{type:e.Output}],onDataRemoved:[{type:e.Output}],nsmContent:[{type:e.ViewChildren,args:["nsmContent"]}],nsmDialog:[{type:e.ViewChildren,args:["nsmDialog"]}],nsmOverlay:[{type:e.ViewChildren,args:["nsmOverlay"]}],dynamicContentContainer:[{type:e.ViewChildren,args:["dynamicContent",{read:e.ViewContainerRef}]}],targetPlacement:[{type:e.HostListener,args:["window:resize"]}]};var d=function(){function t(t,e,n,o,i,r,a){var s=this;this._componentFactoryResolver=t,this._appRef=e,this._injector=n,this._modalStack=o,this.applicationRef=i,this._document=r,this._platformId=a,this._escapeKeyboardEvent=function(t){if("Escape"===t.key)try{var e=s.getTopOpenedModal();return!!e.escapable&&(e.onEscape.emit(e),s.closeLatestModal(),!0)}catch(t){return!1}return!1},this._trapFocusModal=function(t){if("Tab"===t.key)try{var e=s.getTopOpenedModal();return e.nsmDialog.first.nativeElement.contains(document.activeElement)||(t.preventDefault(),t.stopPropagation(),e.nsmDialog.first.nativeElement.focus()),!0}catch(t){return!1}return!1},this._addEvents()}return t.prototype.addModal=function(t,e){this._modalStack.addModal(t,e)},t.prototype.getModal=function(t){return this._modalStack.getModal(t)},t.prototype.get=function(t){return this.getModal(t)},t.prototype.open=function(t,e){return void 0===e&&(e=!1),this._openModal(this.get(t),e)},t.prototype.close=function(t){return this._closeModal(this.get(t))},t.prototype.closeAll=function(){var t=this;this.getOpenedModals().forEach((function(e){t._closeModal(e.modal)}))},t.prototype.toggle=function(t,e){return void 0===e&&(e=!1),this._toggleModal(this.get(t),e)},t.prototype.getModalStack=function(){return this._modalStack.getModalStack()},t.prototype.getOpenedModals=function(){return this._modalStack.getOpenedModals()},t.prototype.getTopOpenedModal=function(){return this._modalStack.getTopOpenedModal()},t.prototype.getHigherIndex=function(){return this._modalStack.getHigherIndex()},t.prototype.getModalStackCount=function(){return this._modalStack.getModalStackCount()},t.prototype.removeModal=function(t){this._modalStack.removeModal(t)},t.prototype.setModalData=function(t,e,n){var o;return!!(o=this.get(e))&&(o.setData(t,n),!0)},t.prototype.getModalData=function(t){var e;return(e=this.get(t))?e.getData():null},t.prototype.resetModalData=function(t){if(this._modalStack.getModalStack().find((function(e){return e.id===t}))){var e=this.getModal(t).getData();return this.getModal(t).removeData(),e}return!1},t.prototype.closeLatestModal=function(){this.getTopOpenedModal().close()},t.prototype.create=function(t,n,o){void 0===o&&(o={});try{return this.getModal(t)}catch(d){var i=this._componentFactoryResolver.resolveComponentFactory(l),r=this._resolveNgContent(n),a=i.create(this._injector,r);n instanceof e.Type&&(a.instance.contentComponent=n),a.instance.identifier=t,a.instance.createFrom="service","boolean"==typeof o.closable&&(a.instance.closable=o.closable),"boolean"==typeof o.escapable&&(a.instance.escapable=o.escapable),"boolean"==typeof o.dismissable&&(a.instance.dismissable=o.dismissable),"string"==typeof o.customClass&&(a.instance.customClass=o.customClass),"boolean"==typeof o.backdrop&&(a.instance.backdrop=o.backdrop),"boolean"==typeof o.force&&(a.instance.force=o.force),"number"==typeof o.hideDelay&&(a.instance.hideDelay=o.hideDelay),"boolean"==typeof o.autostart&&(a.instance.autostart=o.autostart),"string"==typeof o.target&&(a.instance.target=o.target),"string"==typeof o.ariaLabel&&(a.instance.ariaLabel=o.ariaLabel),"string"==typeof o.ariaLabelledBy&&(a.instance.ariaLabelledBy=o.ariaLabelledBy),"string"==typeof o.ariaDescribedBy&&(a.instance.ariaDescribedBy=o.ariaDescribedBy),"boolean"==typeof o.refocus&&(a.instance.refocus=o.refocus),this._appRef.attachView(a.hostView);var s=a.hostView.rootNodes[0];return this._document.body.appendChild(s),a.instance}},t.prototype._addEvents=function(){var t=this;return!!this.isBrowser&&(window.addEventListener(s+"create",(function(e){t._initModal(e.detail.instance)})),window.addEventListener(s+"delete",(function(e){t._deleteModal(e.detail.instance)})),window.addEventListener(s+"open",(function(e){t._openModal(e.detail.instance.modal,e.detail.top)})),window.addEventListener(s+"toggle",(function(e){t._toggleModal(e.detail.instance.modal,e.detail.top)})),window.addEventListener(s+"close",(function(e){t._closeModal(e.detail.instance.modal)})),window.addEventListener(s+"dismiss",(function(e){t._dismissModal(e.detail.instance.modal)})),window.addEventListener("keyup",this._escapeKeyboardEvent),!0)},t.prototype._initModal=function(t){t.modal.layerPosition+=this.getModalStackCount(),this.addModal(t,t.modal.force),t.modal.autostart&&this.open(t.id)},t.prototype._openModal=function(t,e){return!t.visible&&(this.lastElementFocused=document.activeElement,t.escapable&&window.addEventListener("keyup",this._escapeKeyboardEvent),t.backdrop&&window.addEventListener("keydown",this._trapFocusModal),e&&(t.layerPosition=this.getHigherIndex()),t.addBodyClass(),t.overlayVisible=!0,t.visible=!0,t.onOpen.emit(t),t.markForCheck(),setTimeout((function(){t.openedClass=!0,t.target&&t.targetPlacement(),t.nsmDialog.first.nativeElement.setAttribute("role","dialog"),t.nsmDialog.first.nativeElement.setAttribute("tabIndex","-1"),t.nsmDialog.first.nativeElement.setAttribute("aria-modal","true"),t.nsmDialog.first.nativeElement.focus(),t.markForCheck(),t.onOpenFinished.emit(t)})),!0)},t.prototype._toggleModal=function(t,e){return t.visible?this._closeModal(t):this._openModal(t,e)},t.prototype._closeModal=function(t){var e=this;return!!t.openedClass&&(t.openedClass=!1,t.onClose.emit(t),t.onAnyCloseEvent.emit(t),this.getOpenedModals().length<2&&(t.removeBodyClass(),window.removeEventListener("keyup",this._escapeKeyboardEvent),window.removeEventListener("keydown",this._trapFocusModal)),setTimeout((function(){t.visibleChange.emit(t.visible),t.visible=!1,t.overlayVisible=!1,t.nsmDialog.first.nativeElement.removeAttribute("tabIndex"),t.markForCheck(),t.onCloseFinished.emit(t),t.onAnyCloseEventFinished.emit(t),t.refocus&&e.lastElementFocused.focus()}),t.hideDelay),!0)},t.prototype._dismissModal=function(t){return!!t.openedClass&&(t.openedClass=!1,t.onDismiss.emit(t),t.onAnyCloseEvent.emit(t),this.getOpenedModals().length<2&&t.removeBodyClass(),setTimeout((function(){t.visible=!1,t.visibleChange.emit(t.visible),t.overlayVisible=!1,t.markForCheck(),t.onDismissFinished.emit(t),t.onAnyCloseEventFinished.emit(t)}),t.hideDelay),!0)},t.prototype._deleteModal=function(t){this.removeModal(t.id),this.getModalStack().length||t.modal.removeBodyClass()},t.prototype._resolveNgContent=function(t){if("string"==typeof t)return[[this._document.createTextNode(t)]];if(t instanceof e.TemplateRef){var n=t.createEmbeddedView(null);return this.applicationRef.attachView(n),[n.rootNodes]}return[]},Object.defineProperty(t.prototype,"isBrowser",{get:function(){return n.isPlatformBrowser(this._platformId)},enumerable:!1,configurable:!0}),t}();d.decorators=[{type:e.Injectable}],d.ctorParameters=function(){return[{type:e.ComponentFactoryResolver},{type:e.ApplicationRef},{type:e.Injector},{type:r},{type:e.ApplicationRef},{type:void 0,decorators:[{type:e.Inject,args:[n.DOCUMENT]}]},{type:void 0,decorators:[{type:e.Inject,args:[e.PLATFORM_ID]}]}]};var c=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[d,r]}},t.forChild=function(){return{ngModule:t,providers:[d,r]}},t}();c.decorators=[{type:e.NgModule,args:[{declarations:[l],exports:[l],imports:[n.CommonModule]}]}];var p=function(){function t(){this.privateloaderStack=[],this.privateActions=[]}return t.prototype.addLoader=function(t,e){if(e){var n=this.privateloaderStack.findIndex((function(e){return e.id===t.id}));n>-1?this.privateloaderStack[n].component=t.component:this.privateloaderStack.push(t)}else{if(this._getLoader(t.id))throw new Error("Loader with "+t.id+" identifier already exist");this.privateloaderStack.push(t)}},t.prototype.removeLoader=function(t){this.privateloaderStack=this.privateloaderStack.filter((function(e){return e.id!==t})),this._removeAction(t,"*")},t.prototype.getLoaderStack=function(){return this.privateloaderStack},t.prototype.getLoaderStackCount=function(){return this.privateloaderStack.length},t.prototype.getOpenedLoaders=function(){return this.privateloaderStack.filter((function(t){return t.component.visible}))},t.prototype.getActiveLoaders=function(){return this.privateloaderStack.filter((function(t){return t.component.loading}))},t.prototype.getHigherIndex=function(){var t=this.getOpenedLoaders().map((function(t){return t.component.layerPosition}));return Math.max.apply(Math,i(t))+1},t.prototype.start=function(t){var e,n=this;Array.isArray(t)?t.forEach((function(t){n.start(t)})):(e=this._getLoader(t))?(e.component.start(),this._removeAction(t,"start")):this._addAction(t,"start")},t.prototype.startAll=function(){var t=this;this.privateloaderStack.forEach((function(e){return t.start(e.id)}))},t.prototype.stop=function(t){var e,n=this;Array.isArray(t)?t.forEach((function(t){n.stop(t)})):(e=this._getLoader(t))?(e.component.stop(),this._removeAction(t,"stop")):this._addAction(t,"stop")},t.prototype.stopAll=function(){var t=this;this.privateloaderStack.forEach((function(e){return t.stop(e.id)}))},t.prototype.isLoading=function(t){var e,n=this;if(Array.isArray(t)){var o=[];return t.forEach((function(t){n.privateloaderStack.forEach((function(e){e.id===t&&o.push(e.component.loading)}))})),-1===o.indexOf(!1)}return!!(e=this._getLoader(t))&&e.component.loading},t.prototype.executeAction=function(t,e){if(this.privateActions.find((function(n){return n.identifier===t&&n.action===e})))switch(e){case"start":this.start(t);break;case"stop":this.stop(t)}},t.prototype._getLoader=function(t){return this.privateloaderStack.find((function(e){return e.id===t}))||null},t.prototype._addAction=function(t,e){var n=this;Array.isArray(t)?t.forEach((function(t){n._addAction(t,e)})):this.privateActions.push({identifier:t,action:e})},t.prototype._removeAction=function(t,e){var n=this;Array.isArray(t)?t.forEach((function(t){n._removeAction(t,e)})):this.privateActions=this.privateActions.filter((function(n){return n.identifier!==t||n.action!==e&&"*"!==e}))},t}();p.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new p},token:p,providedIn:"root"}),p.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}];var u=function(t){this.id=t.identifier,this.component=t},h=function(){function t(t,n){this.ntkSmartLoaderService=t,this.changeDetectorRef=n,this.identifier="",this.customClass="",this.force=!1,this.delayIn=0,this.delayOut=0,this.autostart=!1,this.onStart=new e.EventEmitter,this.onStop=new e.EventEmitter,this.onVisibleChange=new e.EventEmitter,this.loading=!1,this.visible=!1,this.layerPosition=999,this.privateIsProcessing=!1,this.privateLoaderBodyClass="loader-open",this.privateEnterClass="enter",this.privateLeaveClass="leave"}return t.prototype.ngOnInit=function(){try{var t=new u(this);this.ntkSmartLoaderService.addLoader(t,this.force),this.layerPosition+=this.ntkSmartLoaderService.getLoaderStackCount(),this.addCustomClass(this.identifier.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()),this.autostart?this.ntkSmartLoaderService.start(this.identifier):this.ntkSmartLoaderService.executeAction(this.identifier,"start")}catch(t){throw t}},t.prototype.ngOnDestroy=function(){this.ntkSmartLoaderService.removeLoader(this.identifier)},t.prototype.start=function(t){var e=this;this.privateIsProcessing=!0,clearInterval(this.privateDebouncer),this.visible=!0,setTimeout((function(){e.addCustomClass(e.privateEnterClass)})),this.privateDebouncer=setTimeout((function(){t&&(e.layerPosition=e.ntkSmartLoaderService.getHigherIndex()),document.body.classList.contains(e.privateLoaderBodyClass)||document.body.classList.add(e.privateLoaderBodyClass),e.loading=!0,e.onStart.emit(e),e.onVisibleChange.emit(e),e.removeCustomClass(e.privateEnterClass),e.privateIsProcessing=!1}),this.delayIn)},t.prototype.stop=function(){var t=this;this.privateIsProcessing&&(this.visible=!1,this.loading=!1),clearInterval(this.privateDebouncer),this.addCustomClass(this.privateLeaveClass),this.loading=!1,this.privateDebouncer=setTimeout((function(){document.body.classList.contains(t.privateLoaderBodyClass)&&document.body.classList.remove(t.privateLoaderBodyClass),t.visible=!1,t.onStop.emit(t),t.onVisibleChange.emit(t),t.removeCustomClass(t.privateLeaveClass),setTimeout((function(){t.changeDetectorRef.markForCheck()}))}),this.delayOut)},t.prototype.addCustomClass=function(t){this.customClass.length?-1===this.customClass.indexOf(t)&&(this.customClass+=" "+t):this.customClass=t},t.prototype.removeCustomClass=function(t){this.customClass=t?this.customClass.replace(t,"").trim():""},t}();h.decorators=[{type:e.Component,args:[{selector:"ntk-smart-loader",template:'\n <div class="loader-container {{customClass}}" [ngClass]="{\'active\': loading}"\n [style.z-index]="layerPosition - 1" *ngIf="visible">\n <ng-content></ng-content>\n </div>\n '}]}],h.ctorParameters=function(){return[{type:p},{type:e.ChangeDetectorRef}]},h.propDecorators={identifier:[{type:e.Input}],customClass:[{type:e.Input}],force:[{type:e.Input}],delayIn:[{type:e.Input}],delayOut:[{type:e.Input}],autostart:[{type:e.Input}],onStart:[{type:e.Output}],onStop:[{type:e.Output}],onVisibleChange:[{type:e.Output}]};var m=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[p]}},t.forChild=function(){return{ngModule:t,providers:[p]}},t}();m.decorators=[{type:e.NgModule,args:[{declarations:[h],exports:[h],imports:[n.CommonModule]}]}],t.NtkSmartLoaderComponent=h,t.NtkSmartLoaderModule=m,t.NtkSmartLoaderService=p,t.NtkSmartModalComponent=l,t.NtkSmartModalModule=c,t.NtkSmartModalService=d,t.ɵa=r,Object.defineProperty(t,"__esModule",{value:!0})}));
***************************************************************************** */Object.create;function o(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,i,r=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(t){i={error:t}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a}function i(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(o(arguments[e]));return t}Object.create;var r=function(){function t(){this.modalStack=[]}return t.prototype.addModal=function(t,e){if(e){var n=this.modalStack.findIndex((function(e){return e.id===t.id}));n>-1?this.modalStack[n].modal=t.modal:this.modalStack.push(t)}else this.modalStack.push(t)},t.prototype.getModal=function(t){var e=this.modalStack.find((function(e){return e.id===t}));if(void 0!==e)return e.modal;throw new Error("Cannot find modal with identifier "+t)},t.prototype.getModalStack=function(){return this.modalStack},t.prototype.getOpenedModals=function(){return this.modalStack.filter((function(t){return t.modal.visible}))},t.prototype.getTopOpenedModal=function(){if(!this.getOpenedModals().length)throw new Error("No modal is opened");return this.getOpenedModals().map((function(t){return t.modal})).reduce((function(t,e){return e.layerPosition>t.layerPosition?e:t}),this.getOpenedModals()[0].modal)},t.prototype.getHigherIndex=function(){return Math.max.apply(Math,i(this.modalStack.map((function(t){return t.modal.layerPosition})),[1041]))+1},t.prototype.getModalStackCount=function(){return this.modalStack.length},t.prototype.removeModal=function(t){var e=this.modalStack.findIndex((function(e){return e.id===t}));e>-1&&this.modalStack.splice(e,1)},t}();r.decorators=[{type:e.Injectable}],r.ctorParameters=function(){return[]};var a="dialog-open",s="ntk-smart-modal.",l=function(){function t(t,n,o,i,r){this._renderer=t,this._changeDetectorRef=n,this.componentFactoryResolver=o,this._document=i,this._platformId=r,this.closable=!0,this.escapable=!0,this.dismissable=!0,this.identifier="",this.customClass="nsm-dialog-animation-fade",this.visible=!1,this.backdrop=!0,this.force=!0,this.hideDelay=500,this.autostart=!1,this.target="",this.ariaLabel=null,this.ariaLabelledBy=null,this.ariaDescribedBy=null,this.refocus=!0,this.visibleChange=new e.EventEmitter,this.onClose=new e.EventEmitter,this.onCloseFinished=new e.EventEmitter,this.onDismiss=new e.EventEmitter,this.onDismissFinished=new e.EventEmitter,this.onAnyCloseEvent=new e.EventEmitter,this.onAnyCloseEventFinished=new e.EventEmitter,this.onOpen=new e.EventEmitter,this.onOpenFinished=new e.EventEmitter,this.onEscape=new e.EventEmitter,this.onDataAdded=new e.EventEmitter,this.onDataRemoved=new e.EventEmitter,this.layerPosition=1041,this.overlayVisible=!1,this.openedClass=!1,this.createFrom="html"}return t.prototype.ngOnInit=function(){if(!this.identifier||!this.identifier.length)throw new Error("identifier field isn’t set. Please set one before calling <ngx-smart-modal> in a template.");this._sendEvent("create")},t.prototype.ngAfterViewInit=function(){var t=this;if(this.contentComponent){var e=this.componentFactoryResolver.resolveComponentFactory(this.contentComponent);this.createDynamicContent(this.dynamicContentContainer,e),this.dynamicContentContainer.changes.subscribe((function(n){t.createDynamicContent(n,e)}))}},t.prototype.ngOnDestroy=function(){this._sendEvent("delete")},t.prototype.open=function(t){return this._sendEvent("open",{top:t}),this},t.prototype.close=function(){return this._sendEvent("close"),this},t.prototype.dismiss=function(t){return this.dismissable&&t.target.classList.contains("overlay")?(this._sendEvent("dismiss"),this):this},t.prototype.toggle=function(t){return this._sendEvent("toggle",{top:t}),this},t.prototype.addCustomClass=function(t){return this.customClass.length?this.customClass+=" "+t:this.customClass=t,this},t.prototype.removeCustomClass=function(t){return this.customClass=t?this.customClass.replace(t,"").trim():"",this},t.prototype.isVisible=function(){return this.visible},t.prototype.hasData=function(){return void 0!==this._data},t.prototype.setData=function(t,e){return(!this.hasData()||this.hasData()&&e)&&(this._data=t,this.onDataAdded.emit(this._data),this.markForCheck()),this},t.prototype.getData=function(){return this._data},t.prototype.removeData=function(){return this._data=void 0,this.onDataRemoved.emit(!0),this.markForCheck(),this},t.prototype.addBodyClass=function(){return this._renderer.addClass(this._document.body,a),this},t.prototype.removeBodyClass=function(){return this._renderer.removeClass(this._document.body,a),this},t.prototype.markForCheck=function(){try{this._changeDetectorRef.detectChanges()}catch(t){}this._changeDetectorRef.markForCheck()},t.prototype.targetPlacement=function(){if(!(this.isBrowser&&this.nsmDialog.length&&this.nsmContent.length&&this.nsmOverlay.length&&this.target))return!1;var t=this._document.querySelector(this.target);if(!t)return!1;var e=t.getBoundingClientRect(),n=this.nsmOverlay.first.nativeElement.getBoundingClientRect(),o=this.nsmContent.first.nativeElement.getBoundingClientRect(),i=this.nsmDialog.first.nativeElement.getBoundingClientRect(),r=parseInt(getComputedStyle(this.nsmContent.first.nativeElement).marginLeft,10),a=parseInt(getComputedStyle(this.nsmContent.first.nativeElement).marginTop,10),s=e.top-i.top-(o.height-e.height)/2,l=e.left-i.left-(o.width-e.width)/2;l+i.left+o.width+2*r>n.width?l=n.width-(i.left+o.width)-2*r:l+i.left<0&&(l=-i.left),s+i.top+o.height+a>n.height&&(s=n.height-(i.top+o.height)-a),this._renderer.setStyle(this.nsmContent.first.nativeElement,"top",(s<0?0:s)+"px"),this._renderer.setStyle(this.nsmContent.first.nativeElement,"left",l+"px")},t.prototype._sendEvent=function(t,e){if(!this.isBrowser)return!1;var n={extraData:e,instance:{id:this.identifier,modal:this}},o=new CustomEvent(s+t,{detail:n});return window.dispatchEvent(o)},Object.defineProperty(t.prototype,"isBrowser",{get:function(){return n.isPlatformBrowser(this._platformId)},enumerable:!1,configurable:!0}),t.prototype.createDynamicContent=function(t,e){var n=this;t.forEach((function(t){t.clear(),t.createComponent(e),n.markForCheck()}))},t}();l.decorators=[{type:e.Component,args:[{selector:"ntk-smart-modal",template:'\n <div *ngIf="overlayVisible"\n [style.z-index]="visible ? layerPosition-1 : -1"\n [ngClass]="{\'transparent\':!backdrop, \'overlay\':true, \'nsm-overlay-open\':openedClass}"\n (click)="dismiss($event)" #nsmOverlay>\n <div [style.z-index]="visible ? layerPosition : -1"\n [ngClass]="[\'nsm-dialog\', customClass, openedClass ? \'nsm-dialog-open\': \'nsm-dialog-close\']" #nsmDialog\n [attr.aria-hidden]="openedClass ? false : true"\n [attr.aria-label]="ariaLabel"\n [attr.aria-labelledby]="ariaLabelledBy"\n [attr.aria-describedby]="ariaDescribedBy">\n <div class="nsm-content" #nsmContent>\n <div class="nsm-body">\n <ng-template #dynamicContent></ng-template>\n <ng-content></ng-content>\n\n </div>\n <button type="button" *ngIf="closable" (click)="close()" aria-label="Close" class="nsm-dialog-btn-close">\n <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512"\n xml:space="preserve" width="16px" height="16px" role="img" aria-labelledby="closeIconTitle closeIconDesc">\n <title id="closeIconTitle">Close Icon</title>\n <desc id="closeIconDesc">A light-gray close icon used to close the modal</desc>\n <g>\n <path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249 C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306 C514.019,27.23,514.019,14.135,505.943,6.058z"\n fill="currentColor"/>\n </g>\n <g>\n <path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636 c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"\n fill="currentColor"/>\n </g>\n </svg>\n </button>\n </div>\n </div>\n </div>\n '}]}],l.ctorParameters=function(){return[{type:e.Renderer2},{type:e.ChangeDetectorRef},{type:e.ComponentFactoryResolver},{type:void 0,decorators:[{type:e.Inject,args:[n.DOCUMENT]}]},{type:void 0,decorators:[{type:e.Inject,args:[e.PLATFORM_ID]}]}]},l.propDecorators={closable:[{type:e.Input}],escapable:[{type:e.Input}],dismissable:[{type:e.Input}],identifier:[{type:e.Input}],customClass:[{type:e.Input}],visible:[{type:e.Input}],backdrop:[{type:e.Input}],force:[{type:e.Input}],hideDelay:[{type:e.Input}],autostart:[{type:e.Input}],target:[{type:e.Input}],ariaLabel:[{type:e.Input}],ariaLabelledBy:[{type:e.Input}],ariaDescribedBy:[{type:e.Input}],refocus:[{type:e.Input}],visibleChange:[{type:e.Output}],onClose:[{type:e.Output}],onCloseFinished:[{type:e.Output}],onDismiss:[{type:e.Output}],onDismissFinished:[{type:e.Output}],onAnyCloseEvent:[{type:e.Output}],onAnyCloseEventFinished:[{type:e.Output}],onOpen:[{type:e.Output}],onOpenFinished:[{type:e.Output}],onEscape:[{type:e.Output}],onDataAdded:[{type:e.Output}],onDataRemoved:[{type:e.Output}],nsmContent:[{type:e.ViewChildren,args:["nsmContent"]}],nsmDialog:[{type:e.ViewChildren,args:["nsmDialog"]}],nsmOverlay:[{type:e.ViewChildren,args:["nsmOverlay"]}],dynamicContentContainer:[{type:e.ViewChildren,args:["dynamicContent",{read:e.ViewContainerRef}]}],targetPlacement:[{type:e.HostListener,args:["window:resize"]}]};var d=function(){function t(t,e,n,o,i,r,a){var s=this;this._componentFactoryResolver=t,this._appRef=e,this._injector=n,this._modalStack=o,this.applicationRef=i,this._document=r,this._platformId=a,this._escapeKeyboardEvent=function(t){if("Escape"===t.key)try{var e=s.getTopOpenedModal();return!!e.escapable&&(e.onEscape.emit(e),s.closeLatestModal(),!0)}catch(t){return!1}return!1},this._trapFocusModal=function(t){if("Tab"===t.key)try{var e=s.getTopOpenedModal();return e.nsmDialog.first.nativeElement.contains(document.activeElement)||(t.preventDefault(),t.stopPropagation(),e.nsmDialog.first.nativeElement.focus()),!0}catch(t){return!1}return!1},this._addEvents()}return t.prototype.addModal=function(t,e){this._modalStack.addModal(t,e)},t.prototype.getModal=function(t){return this._modalStack.getModal(t)},t.prototype.get=function(t){return this.getModal(t)},t.prototype.open=function(t,e){return void 0===e&&(e=!1),this._openModal(this.get(t),e)},t.prototype.close=function(t){return this._closeModal(this.get(t))},t.prototype.closeAll=function(){var t=this;this.getOpenedModals().forEach((function(e){t._closeModal(e.modal)}))},t.prototype.toggle=function(t,e){return void 0===e&&(e=!1),this._toggleModal(this.get(t),e)},t.prototype.getModalStack=function(){return this._modalStack.getModalStack()},t.prototype.getOpenedModals=function(){return this._modalStack.getOpenedModals()},t.prototype.getTopOpenedModal=function(){return this._modalStack.getTopOpenedModal()},t.prototype.getHigherIndex=function(){return this._modalStack.getHigherIndex()},t.prototype.getModalStackCount=function(){return this._modalStack.getModalStackCount()},t.prototype.removeModal=function(t){this._modalStack.removeModal(t)},t.prototype.setModalData=function(t,e,n){var o;return!!(o=this.get(e))&&(o.setData(t,n),!0)},t.prototype.getModalData=function(t){var e;return(e=this.get(t))?e.getData():null},t.prototype.resetModalData=function(t){if(this._modalStack.getModalStack().find((function(e){return e.id===t}))){var e=this.getModal(t).getData();return this.getModal(t).removeData(),e}return!1},t.prototype.closeLatestModal=function(){this.getTopOpenedModal().close()},t.prototype.create=function(t,n,o){void 0===o&&(o={});try{return this.getModal(t)}catch(d){var i=this._componentFactoryResolver.resolveComponentFactory(l),r=this._resolveNgContent(n),a=i.create(this._injector,r);n instanceof e.Type&&(a.instance.contentComponent=n),a.instance.identifier=t,a.instance.createFrom="service","boolean"==typeof o.closable&&(a.instance.closable=o.closable),"boolean"==typeof o.escapable&&(a.instance.escapable=o.escapable),"boolean"==typeof o.dismissable&&(a.instance.dismissable=o.dismissable),"string"==typeof o.customClass&&(a.instance.customClass=o.customClass),"boolean"==typeof o.backdrop&&(a.instance.backdrop=o.backdrop),"boolean"==typeof o.force&&(a.instance.force=o.force),"number"==typeof o.hideDelay&&(a.instance.hideDelay=o.hideDelay),"boolean"==typeof o.autostart&&(a.instance.autostart=o.autostart),"string"==typeof o.target&&(a.instance.target=o.target),"string"==typeof o.ariaLabel&&(a.instance.ariaLabel=o.ariaLabel),"string"==typeof o.ariaLabelledBy&&(a.instance.ariaLabelledBy=o.ariaLabelledBy),"string"==typeof o.ariaDescribedBy&&(a.instance.ariaDescribedBy=o.ariaDescribedBy),"boolean"==typeof o.refocus&&(a.instance.refocus=o.refocus),this._appRef.attachView(a.hostView);var s=a.hostView.rootNodes[0];return this._document.body.appendChild(s),a.instance}},t.prototype._addEvents=function(){var t=this;return!!this.isBrowser&&(window.addEventListener(s+"create",(function(e){t._initModal(e.detail.instance)})),window.addEventListener(s+"delete",(function(e){t._deleteModal(e.detail.instance)})),window.addEventListener(s+"open",(function(e){t._openModal(e.detail.instance.modal,e.detail.top)})),window.addEventListener(s+"toggle",(function(e){t._toggleModal(e.detail.instance.modal,e.detail.top)})),window.addEventListener(s+"close",(function(e){t._closeModal(e.detail.instance.modal)})),window.addEventListener(s+"dismiss",(function(e){t._dismissModal(e.detail.instance.modal)})),window.addEventListener("keyup",this._escapeKeyboardEvent),!0)},t.prototype._initModal=function(t){t.modal.layerPosition+=this.getModalStackCount(),this.addModal(t,t.modal.force),t.modal.autostart&&this.open(t.id)},t.prototype._openModal=function(t,e){return!t.visible&&(this.lastElementFocused=document.activeElement,t.escapable&&window.addEventListener("keyup",this._escapeKeyboardEvent),t.backdrop&&window.addEventListener("keydown",this._trapFocusModal),e&&(t.layerPosition=this.getHigherIndex()),t.addBodyClass(),t.overlayVisible=!0,t.visible=!0,t.onOpen.emit(t),t.markForCheck(),setTimeout((function(){t.openedClass=!0,t.target&&t.targetPlacement(),t.nsmDialog.first.nativeElement.setAttribute("role","dialog"),t.nsmDialog.first.nativeElement.setAttribute("tabIndex","-1"),t.nsmDialog.first.nativeElement.setAttribute("aria-modal","true"),t.nsmDialog.first.nativeElement.focus(),t.markForCheck(),t.onOpenFinished.emit(t)})),!0)},t.prototype._toggleModal=function(t,e){return t.visible?this._closeModal(t):this._openModal(t,e)},t.prototype._closeModal=function(t){var e=this;return!!t.openedClass&&(t.openedClass=!1,t.onClose.emit(t),t.onAnyCloseEvent.emit(t),this.getOpenedModals().length<2&&(t.removeBodyClass(),window.removeEventListener("keyup",this._escapeKeyboardEvent),window.removeEventListener("keydown",this._trapFocusModal)),setTimeout((function(){t.visibleChange.emit(t.visible),t.visible=!1,t.overlayVisible=!1,t.nsmDialog.first.nativeElement.removeAttribute("tabIndex"),t.markForCheck(),t.onCloseFinished.emit(t),t.onAnyCloseEventFinished.emit(t),t.refocus&&e.lastElementFocused.focus()}),t.hideDelay),!0)},t.prototype._dismissModal=function(t){return!!t.openedClass&&(t.openedClass=!1,t.onDismiss.emit(t),t.onAnyCloseEvent.emit(t),this.getOpenedModals().length<2&&t.removeBodyClass(),setTimeout((function(){t.visible=!1,t.visibleChange.emit(t.visible),t.overlayVisible=!1,t.markForCheck(),t.onDismissFinished.emit(t),t.onAnyCloseEventFinished.emit(t)}),t.hideDelay),!0)},t.prototype._deleteModal=function(t){this.removeModal(t.id),this.getModalStack().length||t.modal.removeBodyClass()},t.prototype._resolveNgContent=function(t){if("string"==typeof t)return[[this._document.createTextNode(t)]];if(t instanceof e.TemplateRef){var n=t.createEmbeddedView(null);return this.applicationRef.attachView(n),[n.rootNodes]}return[]},Object.defineProperty(t.prototype,"isBrowser",{get:function(){return n.isPlatformBrowser(this._platformId)},enumerable:!1,configurable:!0}),t}();d.decorators=[{type:e.Injectable}],d.ctorParameters=function(){return[{type:e.ComponentFactoryResolver},{type:e.ApplicationRef},{type:e.Injector},{type:r},{type:e.ApplicationRef},{type:void 0,decorators:[{type:e.Inject,args:[n.DOCUMENT]}]},{type:void 0,decorators:[{type:e.Inject,args:[e.PLATFORM_ID]}]}]};var c=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[d,r]}},t.forChild=function(){return{ngModule:t,providers:[d,r]}},t}();c.decorators=[{type:e.NgModule,args:[{declarations:[l],exports:[l],imports:[n.CommonModule]}]}];var p=function(){function t(){this.privateloaderStack=[],this.privateActions=[]}return t.prototype.addLoader=function(t,e){if(e){var n=this.privateloaderStack.findIndex((function(e){return e.id===t.id}));n>-1?this.privateloaderStack[n].component=t.component:this.privateloaderStack.push(t)}else{if(this._getLoader(t.id))throw new Error("Loader with "+t.id+" identifier already exist");this.privateloaderStack.push(t)}},t.prototype.removeLoader=function(t){this.privateloaderStack=this.privateloaderStack.filter((function(e){return e.id!==t})),this._removeAction(t,"*")},t.prototype.getLoaderStack=function(){return this.privateloaderStack},t.prototype.getLoaderStackCount=function(){return this.privateloaderStack.length},t.prototype.getOpenedLoaders=function(){return this.privateloaderStack.filter((function(t){return t.component.visible}))},t.prototype.getActiveLoaders=function(){return this.privateloaderStack.filter((function(t){return t.component.loading}))},t.prototype.getHigherIndex=function(){var t=this.getOpenedLoaders().map((function(t){return t.component.layerPosition}));return Math.max.apply(Math,i(t))+1},t.prototype.start=function(t){var e,n=this;Array.isArray(t)?t.forEach((function(t){n.start(t)})):(e=this._getLoader(t))?(e.component.start(),this._removeAction(t,"start")):this._addAction(t,"start")},t.prototype.startAll=function(){var t=this;this.privateloaderStack.forEach((function(e){return t.start(e.id)}))},t.prototype.stop=function(t){var e,n=this;Array.isArray(t)?t.forEach((function(t){n.stop(t)})):(e=this._getLoader(t))?(e.component.stop(),this._removeAction(t,"stop")):this._addAction(t,"stop")},t.prototype.stopAll=function(){var t=this;this.privateloaderStack.forEach((function(e){return t.stop(e.id)}))},t.prototype.isLoading=function(t){var e,n=this;if(Array.isArray(t)){var o=[];return t.forEach((function(t){n.privateloaderStack.forEach((function(e){e.id===t&&o.push(e.component.loading)}))})),-1===o.indexOf(!1)}return!!(e=this._getLoader(t))&&e.component.loading},t.prototype.executeAction=function(t,e){if(this.privateActions.find((function(n){return n.identifier===t&&n.action===e})))switch(e){case"start":this.start(t);break;case"stop":this.stop(t)}},t.prototype._getLoader=function(t){return this.privateloaderStack.find((function(e){return e.id===t}))||null},t.prototype._addAction=function(t,e){var n=this;Array.isArray(t)?t.forEach((function(t){n._addAction(t,e)})):this.privateActions.push({identifier:t,action:e})},t.prototype._removeAction=function(t,e){var n=this;Array.isArray(t)?t.forEach((function(t){n._removeAction(t,e)})):this.privateActions=this.privateActions.filter((function(n){return n.identifier!==t||n.action!==e&&"*"!==e}))},t}();p.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new p},token:p,providedIn:"root"}),p.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}];var u=function(t){this.id=t.identifier,this.component=t},h=function(){function t(t,n){this.ntkSmartLoaderService=t,this.changeDetectorRef=n,this.identifier="",this.customClass="",this.force=!1,this.delayIn=0,this.delayOut=0,this.autostart=!1,this.onStart=new e.EventEmitter,this.onStop=new e.EventEmitter,this.onVisibleChange=new e.EventEmitter,this.loading=!1,this.visible=!1,this.layerPosition=999,this.privateIsProcessing=!1,this.privateLoaderBodyClass="loader-open",this.privateEnterClass="enter",this.privateLeaveClass="leave"}return t.prototype.ngOnInit=function(){try{var t=new u(this);this.ntkSmartLoaderService.addLoader(t,this.force),this.layerPosition+=this.ntkSmartLoaderService.getLoaderStackCount(),this.addCustomClass(this.identifier.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()),this.autostart?this.ntkSmartLoaderService.start(this.identifier):this.ntkSmartLoaderService.executeAction(this.identifier,"start")}catch(t){throw t}},t.prototype.ngOnDestroy=function(){this.ntkSmartLoaderService.removeLoader(this.identifier)},t.prototype.start=function(t){var e=this;this.privateIsProcessing=!0,clearInterval(this.privateDebouncer),this.visible=!0,setTimeout((function(){e.addCustomClass(e.privateEnterClass)})),this.privateDebouncer=setTimeout((function(){t&&(e.layerPosition=e.ntkSmartLoaderService.getHigherIndex()),document.body.classList.contains(e.privateLoaderBodyClass)||document.body.classList.add(e.privateLoaderBodyClass),e.loading=!0,e.onStart.emit(e),e.onVisibleChange.emit(e),e.removeCustomClass(e.privateEnterClass),e.privateIsProcessing=!1}),this.delayIn)},t.prototype.stop=function(){var t=this;this.privateIsProcessing&&(this.visible=!1,this.loading=!1),clearInterval(this.privateDebouncer),this.addCustomClass(this.privateLeaveClass),this.loading=!1,this.privateDebouncer=setTimeout((function(){document.body.classList.contains(t.privateLoaderBodyClass)&&document.body.classList.remove(t.privateLoaderBodyClass),t.visible=!1,t.onStop.emit(t),t.onVisibleChange.emit(t),t.removeCustomClass(t.privateLeaveClass),setTimeout((function(){t.changeDetectorRef.markForCheck()}))}),this.delayOut)},t.prototype.addCustomClass=function(t){this.customClass.length?-1===this.customClass.indexOf(t)&&(this.customClass+=" "+t):this.customClass=t},t.prototype.removeCustomClass=function(t){this.customClass=t?this.customClass.replace(t,"").trim():""},t}();h.decorators=[{type:e.Component,args:[{selector:"ntk-smart-loader",template:'\n <div class="loader-container {{customClass}}" [ngClass]="{\'active\': loading}"\n [style.z-index]="layerPosition - 1" *ngIf="visible">\n <ng-content></ng-content>\n </div>\n '}]}],h.ctorParameters=function(){return[{type:p},{type:e.ChangeDetectorRef}]},h.propDecorators={identifier:[{type:e.Input}],customClass:[{type:e.Input}],force:[{type:e.Input}],delayIn:[{type:e.Input}],delayOut:[{type:e.Input}],autostart:[{type:e.Input}],onStart:[{type:e.Output}],onStop:[{type:e.Output}],onVisibleChange:[{type:e.Output}]};var m=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[p]}},t.forChild=function(){return{ngModule:t,providers:[p]}},t}();m.decorators=[{type:e.NgModule,args:[{declarations:[h],exports:[h],imports:[n.CommonModule]}]}],t.NtkSmartLoaderComponent=h,t.NtkSmartLoaderModule=m,t.NtkSmartLoaderService=p,t.NtkSmartModalComponent=l,t.NtkSmartModalModule=c,t.NtkSmartModalService=d,t.ɵa=r,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=ngx-ntk-smart-module.umd.min.js.map

@@ -7,2 +7,2 @@ export class LoaderInstance {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IkQ6L1NvdXJjZUthcmF2aS9HaXRIdWIvbnBtLW50ay1jbXMtYW5ndWxhci9wcm9qZWN0cy9uZ3gtbnRrLXNtYXJ0LW1vZHVsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbG9hZGVyL2xvYWRlci1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sY0FBYztJQUl6QixZQUFZLFNBQWtDO1FBQzVDLElBQUksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOdGtTbWFydExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExvYWRlckluc3RhbmNlIHtcclxuICBwdWJsaWMgaWQ6IHN0cmluZztcclxuICBwdWJsaWMgY29tcG9uZW50OiBOdGtTbWFydExvYWRlckNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tcG9uZW50OiBOdGtTbWFydExvYWRlckNvbXBvbmVudCkge1xyXG4gICAgdGhpcy5pZCA9IGNvbXBvbmVudC5pZGVudGlmaWVyO1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6Ii9Wb2x1bWVzL3dvcmsvU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXIvbG9hZGVyLWluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQVksU0FBa0M7UUFDNUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE50a1NtYXJ0TG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9udGstc21hcnQtbG9hZGVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBMb2FkZXJJbnN0YW5jZSB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgY29tcG9uZW50OiBOdGtTbWFydExvYWRlckNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihjb21wb25lbnQ6IE50a1NtYXJ0TG9hZGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5pZCA9IGNvbXBvbmVudC5pZGVudGlmaWVyO1xuICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICB9XG59XG4iXX0=

@@ -132,2 +132,2 @@ import { Component, Input, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXIvbnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBRUwsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBV25FLE1BQU0sT0FBTyx1QkFBdUI7SUF1QmxDLFlBQW1CLHFCQUE0QyxFQUFVLGlCQUFvQztRQUExRiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXJCN0YsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUN0RCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFDckQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUV4RSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxHQUFHLENBQUM7UUFHbkIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLDJCQUFzQixH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RUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkU7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7O1lBbklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixRQUFRLEVBQUU7Ozs7O0dBS1Q7YUFDRjs7O1lBVlEscUJBQXFCO1lBTjVCLGlCQUFpQjs7O3lCQW1CaEIsS0FBSzswQkFDTCxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7c0JBQ0wsTUFBTTtxQkFDTixNQUFNOzhCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IExvYWRlckluc3RhbmNlIH0gZnJvbSAnLi9sb2FkZXItaW5zdGFuY2UnO1xyXG5pbXBvcnQgeyBOdGtTbWFydExvYWRlclNlcnZpY2UgfSBmcm9tICcuL250ay1zbWFydC1sb2FkZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ250ay1zbWFydC1sb2FkZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWNvbnRhaW5lciB7e2N1c3RvbUNsYXNzfX1cIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGxvYWRpbmd9XCJcclxuICAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwibGF5ZXJQb3NpdGlvbiAtIDFcIiAqbmdJZj1cInZpc2libGVcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnRrU21hcnRMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZGVudGlmaWVyID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcmNlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRlbGF5SW4gPSAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxheU91dCA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIGF1dG9zdGFydCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25TdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8TnRrU21hcnRMb2FkZXJDb21wb25lbnQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblN0b3AgPSBuZXcgRXZlbnRFbWl0dGVyPE50a1NtYXJ0TG9hZGVyQ29tcG9uZW50PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25WaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOdGtTbWFydExvYWRlckNvbXBvbmVudD4oKTtcclxuXHJcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcclxuICBwdWJsaWMgdmlzaWJsZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsYXllclBvc2l0aW9uID0gOTk5O1xyXG5cclxuICBwcml2YXRlIHByaXZhdGVEZWJvdW5jZXI6IGFueTtcclxuICBwcml2YXRlIHByaXZhdGVJc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBwcml2YXRlTG9hZGVyQm9keUNsYXNzID0gJ2xvYWRlci1vcGVuJztcclxuICBwcml2YXRlIHByaXZhdGVFbnRlckNsYXNzID0gJ2VudGVyJztcclxuICBwcml2YXRlIHByaXZhdGVMZWF2ZUNsYXNzID0gJ2xlYXZlJztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG50a1NtYXJ0TG9hZGVyU2VydmljZTogTnRrU21hcnRMb2FkZXJTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgbG9hZGVyID0gbmV3IExvYWRlckluc3RhbmNlKHRoaXMpO1xyXG5cclxuICAgICAgdGhpcy5udGtTbWFydExvYWRlclNlcnZpY2UuYWRkTG9hZGVyKGxvYWRlciwgdGhpcy5mb3JjZSk7XHJcblxyXG4gICAgICB0aGlzLmxheWVyUG9zaXRpb24gKz0gdGhpcy5udGtTbWFydExvYWRlclNlcnZpY2UuZ2V0TG9hZGVyU3RhY2tDb3VudCgpO1xyXG4gICAgICB0aGlzLmFkZEN1c3RvbUNsYXNzKHRoaXMuaWRlbnRpZmllci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmF1dG9zdGFydCkge1xyXG4gICAgICAgIHRoaXMubnRrU21hcnRMb2FkZXJTZXJ2aWNlLnN0YXJ0KHRoaXMuaWRlbnRpZmllcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5udGtTbWFydExvYWRlclNlcnZpY2UuZXhlY3V0ZUFjdGlvbih0aGlzLmlkZW50aWZpZXIsICdzdGFydCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aHJvdyAoZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5udGtTbWFydExvYWRlclNlcnZpY2UucmVtb3ZlTG9hZGVyKHRoaXMuaWRlbnRpZmllcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhcnQodG9wPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5wcml2YXRlSXNQcm9jZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjbGVhckludGVydmFsKHRoaXMucHJpdmF0ZURlYm91bmNlcik7XHJcblxyXG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hZGRDdXN0b21DbGFzcyh0aGlzLnByaXZhdGVFbnRlckNsYXNzKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucHJpdmF0ZURlYm91bmNlciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodG9wKSB7XHJcbiAgICAgICAgdGhpcy5sYXllclBvc2l0aW9uID0gdGhpcy5udGtTbWFydExvYWRlclNlcnZpY2UuZ2V0SGlnaGVySW5kZXgoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyh0aGlzLnByaXZhdGVMb2FkZXJCb2R5Q2xhc3MpKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHRoaXMucHJpdmF0ZUxvYWRlckJvZHlDbGFzcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLm9uU3RhcnQuZW1pdCh0aGlzKTtcclxuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2UuZW1pdCh0aGlzKTtcclxuXHJcbiAgICAgIHRoaXMucmVtb3ZlQ3VzdG9tQ2xhc3ModGhpcy5wcml2YXRlRW50ZXJDbGFzcyk7XHJcbiAgICAgIHRoaXMucHJpdmF0ZUlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgfSwgdGhpcy5kZWxheUluKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9wKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJpdmF0ZUlzUHJvY2Vzc2luZykge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnByaXZhdGVEZWJvdW5jZXIpO1xyXG5cclxuICAgIHRoaXMuYWRkQ3VzdG9tQ2xhc3ModGhpcy5wcml2YXRlTGVhdmVDbGFzcyk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMucHJpdmF0ZURlYm91bmNlciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnModGhpcy5wcml2YXRlTG9hZGVyQm9keUNsYXNzKSkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLnByaXZhdGVMb2FkZXJCb2R5Q2xhc3MpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMub25TdG9wLmVtaXQodGhpcyk7XHJcbiAgICAgIHRoaXMub25WaXNpYmxlQ2hhbmdlLmVtaXQodGhpcyk7XHJcblxyXG4gICAgICB0aGlzLnJlbW92ZUN1c3RvbUNsYXNzKHRoaXMucHJpdmF0ZUxlYXZlQ2xhc3MpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIH0sIHRoaXMuZGVsYXlPdXQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEN1c3RvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY3VzdG9tQ2xhc3MubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSBjbGFzc05hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5jdXN0b21DbGFzcy5pbmRleE9mKGNsYXNzTmFtZSkgPT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5jdXN0b21DbGFzcyArPSAnICcgKyBjbGFzc05hbWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVDdXN0b21DbGFzcyhjbGFzc05hbWU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChjbGFzc05hbWUpIHtcclxuICAgICAgdGhpcy5jdXN0b21DbGFzcyA9IHRoaXMuY3VzdG9tQ2xhc3MucmVwbGFjZShjbGFzc05hbWUsICcnKS50cmltKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1c3RvbUNsYXNzID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL1ZvbHVtZXMvd29yay9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL2xvYWRlci9udGstc21hcnQtbG9hZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFFTCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFXbkUsTUFBTSxPQUFPLHVCQUF1QjtJQXVCbEMsWUFBbUIscUJBQTRDLEVBQVUsaUJBQW9DO1FBQTFGLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckI3RixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQ3RELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRXhFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUduQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFF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LFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDOzs7WUFuSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFFBQVEsRUFBRTs7Ozs7R0FLVDthQUNGOzs7WUFWUSxxQkFBcUI7WUFONUIsaUJBQWlCOzs7eUJBbUJoQixLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSztzQkFDTCxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSztzQkFDTCxNQUFNO3FCQUNOLE1BQU07OEJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExvYWRlckluc3RhbmNlIH0gZnJvbSAnLi9sb2FkZXItaW5zdGFuY2UnO1xuaW1wb3J0IHsgTnRrU21hcnRMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi9udGstc21hcnQtbG9hZGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudGstc21hcnQtbG9hZGVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGVyLWNvbnRhaW5lciB7e2N1c3RvbUNsYXNzfX1cIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGxvYWRpbmd9XCJcbiAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cImxheWVyUG9zaXRpb24gLSAxXCIgKm5nSWY9XCJ2aXNpYmxlXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgTnRrU21hcnRMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcHVibGljIGlkZW50aWZpZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JjZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZGVsYXlJbiA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxheU91dCA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvc3RhcnQgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxOdGtTbWFydExvYWRlckNvbXBvbmVudD4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblN0b3AgPSBuZXcgRXZlbnRFbWl0dGVyPE50a1NtYXJ0TG9hZGVyQ29tcG9uZW50PigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uVmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnRrU21hcnRMb2FkZXJDb21wb25lbnQ+KCk7XG5cbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcbiAgcHVibGljIGxheWVyUG9zaXRpb24gPSA5OTk7XG5cbiAgcHJpdmF0ZSBwcml2YXRlRGVib3VuY2VyOiBhbnk7XG4gIHByaXZhdGUgcHJpdmF0ZUlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcHJpdmF0ZUxvYWRlckJvZHlDbGFzcyA9ICdsb2FkZXItb3Blbic7XG4gIHByaXZhdGUgcHJpdmF0ZUVudGVyQ2xhc3MgPSAnZW50ZXInO1xuICBwcml2YXRlIHByaXZhdGVMZWF2ZUNsYXNzID0gJ2xlYXZlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbnRrU21hcnRMb2FkZXJTZXJ2aWNlOiBOdGtTbWFydExvYWRlclNlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxvYWRlciA9IG5ldyBMb2FkZXJJbnN0YW5jZSh0aGlzKTtcblxuICAgICAgdGhpcy5udGtTbWFydExvYWRlclNlcnZpY2UuYWRkTG9hZGVyKGxvYWRlciwgdGhpcy5mb3JjZSk7XG5cbiAgICAgIHRoaXMubGF5ZXJQb3NpdGlvbiArPSB0aGlzLm50a1NtYXJ0TG9hZGVyU2VydmljZS5nZXRMb2FkZXJTdGFja0NvdW50KCk7XG4gICAgICB0aGlzLmFkZEN1c3RvbUNsYXNzKHRoaXMuaWRlbnRpZmllci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgaWYgKHRoaXMuYXV0b3N0YXJ0KSB7XG4gICAgICAgIHRoaXMubnRrU21hcnRMb2FkZXJTZXJ2aWNlLnN0YXJ0KHRoaXMuaWRlbnRpZmllcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm50a1NtYXJ0TG9hZGVyU2VydmljZS5leGVjdXRlQWN0aW9uKHRoaXMuaWRlbnRpZmllciwgJ3N0YXJ0Jyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IChlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubnRrU21hcnRMb2FkZXJTZXJ2aWNlLnJlbW92ZUxvYWRlcih0aGlzLmlkZW50aWZpZXIpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KHRvcD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnByaXZhdGVJc1Byb2Nlc3NpbmcgPSB0cnVlO1xuXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnByaXZhdGVEZWJvdW5jZXIpO1xuXG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hZGRDdXN0b21DbGFzcyh0aGlzLnByaXZhdGVFbnRlckNsYXNzKTtcbiAgICB9KTtcblxuICAgIHRoaXMucHJpdmF0ZURlYm91bmNlciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRvcCkge1xuICAgICAgICB0aGlzLmxheWVyUG9zaXRpb24gPSB0aGlzLm50a1NtYXJ0TG9hZGVyU2VydmljZS5nZXRIaWdoZXJJbmRleCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMucHJpdmF0ZUxvYWRlckJvZHlDbGFzcykpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHRoaXMucHJpdmF0ZUxvYWRlckJvZHlDbGFzcyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMub25TdGFydC5lbWl0KHRoaXMpO1xuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2UuZW1pdCh0aGlzKTtcblxuICAgICAgdGhpcy5yZW1vdmVDdXN0b21DbGFzcyh0aGlzLnByaXZhdGVFbnRlckNsYXNzKTtcbiAgICAgIHRoaXMucHJpdmF0ZUlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgIH0sIHRoaXMuZGVsYXlJbik7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcml2YXRlSXNQcm9jZXNzaW5nKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5wcml2YXRlRGVib3VuY2VyKTtcblxuICAgIHRoaXMuYWRkQ3VzdG9tQ2xhc3ModGhpcy5wcml2YXRlTGVhdmVDbGFzcyk7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5wcml2YXRlRGVib3VuY2VyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnModGhpcy5wcml2YXRlTG9hZGVyQm9keUNsYXNzKSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5wcml2YXRlTG9hZGVyQm9keUNsYXNzKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG5cbiAgICAgIHRoaXMub25TdG9wLmVtaXQodGhpcyk7XG4gICAgICB0aGlzLm9uVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMpO1xuXG4gICAgICB0aGlzLnJlbW92ZUN1c3RvbUNsYXNzKHRoaXMucHJpdmF0ZUxlYXZlQ2xhc3MpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9LCB0aGlzLmRlbGF5T3V0KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDdXN0b21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jdXN0b21DbGFzcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSBjbGFzc05hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmN1c3RvbUNsYXNzLmluZGV4T2YoY2xhc3NOYW1lKSA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5jdXN0b21DbGFzcyArPSAnICcgKyBjbGFzc05hbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUN1c3RvbUNsYXNzKGNsYXNzTmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSB0aGlzLmN1c3RvbUNsYXNzLnJlcGxhY2UoY2xhc3NOYW1lLCAnJykudHJpbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1c3RvbUNsYXNzID0gJyc7XG4gICAgfVxuICB9XG59XG4iXX0=

@@ -32,2 +32,2 @@ import { CommonModule } from '@angular/common';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LWxvYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiRDovU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXIvbnRrLXNtYXJ0LWxvYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT3ZFLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0I7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPO1lBQ0wsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7U0FDbkMsQ0FBQztJQUNKLENBQUM7OztZQXpCRixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTnRrU21hcnRMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi9udGstc21hcnQtbG9hZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdGtTbWFydExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtOdGtTbWFydExvYWRlckNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW050a1NtYXJ0TG9hZGVyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnRrU21hcnRMb2FkZXJNb2R1bGUge1xyXG5cclxuICAvKipcclxuICAgKiBVc2UgaW4gQXBwTW9kdWxlOiBuZXcgaW5zdGFuY2Ugb2YgTnRrU21hcnRMb2FkZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TnRrU21hcnRMb2FkZXJNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBOdGtTbWFydExvYWRlck1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbTnRrU21hcnRMb2FkZXJTZXJ2aWNlXVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZSBpbiBmZWF0dXJlcyBtb2R1bGVzIHdpdGggbGF6eSBsb2FkaW5nOiBuZXcgaW5zdGFuY2Ugb2YgTnRrU21hcnRMb2FkZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JDaGlsZCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE50a1NtYXJ0TG9hZGVyTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTnRrU21hcnRMb2FkZXJNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW050a1NtYXJ0TG9hZGVyU2VydmljZV1cclxuICAgIH07XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LWxvYWRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL1ZvbHVtZXMvd29yay9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL2xvYWRlci9udGstc21hcnQtbG9hZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFPdkUsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPO1lBQ0wsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztTQUNuQyxDQUFDO0lBQ0osQ0FBQzs7O1lBekJGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdkMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOdGtTbWFydExvYWRlclNlcnZpY2UgfSBmcm9tICcuL250ay1zbWFydC1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOdGtTbWFydExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOdGtTbWFydExvYWRlckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtOdGtTbWFydExvYWRlckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE50a1NtYXJ0TG9hZGVyTW9kdWxlIHtcblxuICAvKipcbiAgICogVXNlIGluIEFwcE1vZHVsZTogbmV3IGluc3RhbmNlIG9mIE50a1NtYXJ0TG9hZGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TnRrU21hcnRMb2FkZXJNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE50a1NtYXJ0TG9hZGVyTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbTnRrU21hcnRMb2FkZXJTZXJ2aWNlXVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGluIGZlYXR1cmVzIG1vZHVsZXMgd2l0aCBsYXp5IGxvYWRpbmc6IG5ldyBpbnN0YW5jZSBvZiBOdGtTbWFydExvYWRlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOdGtTbWFydExvYWRlck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTnRrU21hcnRMb2FkZXJNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtOdGtTbWFydExvYWRlclNlcnZpY2VdXG4gICAgfTtcbiAgfVxuXG59XG4iXX0=

@@ -228,2 +228,2 @@ import { Injectable } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkQ6L1NvdXJjZUthcmF2aS9HaXRIdWIvbnBtLW50ay1jbXMtYW5ndWxhci9wcm9qZWN0cy9uZ3gtbnRrLXNtYXJ0LW1vZHVsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbG9hZGVyL250ay1zbWFydC1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSVUsdUJBQWtCLEdBQXFCLEVBQUUsQ0FBQztRQUMxQyxtQkFBYyxHQUFrRCxFQUFFLENBQUM7S0FpTzVFO0lBL05DOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsY0FBOEIsRUFBRSxLQUFlO1FBQzlELElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWlCLEVBQUUsRUFBRTtnQkFDeEUsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7YUFDakU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUM5QztZQUNELE9BQU87U0FDUjtRQUNELElBQUksTUFBTSxDQUFDO1FBQ1gsc0RBQXNEO1FBQ3RELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLEdBQUcs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YztRQUN6RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDckIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQy9IO0lBQ0gsQ0FBQzs7OztZQXJPRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMb2FkZXJJbnN0YW5jZSB9IGZyb20gJy4vbG9hZGVyLWluc3RhbmNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdGtTbWFydExvYWRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcHJpdmF0ZWxvYWRlclN0YWNrOiBMb2FkZXJJbnN0YW5jZVtdID0gW107XHJcbiAgcHJpdmF0ZSBwcml2YXRlQWN0aW9uczogQXJyYXk8eyBpZGVudGlmaWVyOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nIH0+ID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG5ldyBsb2FkZXIgaW5zdGFuY2UuIFRoaXMgc3RlcCBpcyBlc3NlbnRpYWwgYW5kIGFsbG93cyB0byByZXRyaWV2ZSBhbnkgbG9hZGVyIGF0IGFueSB0aW1lLlxyXG4gICAqIEl0IHN0b3JlcyBhbiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbG9hZGVyIGlkZW50aWZpZXIgYW5kIHRoZSBsb2FkZXIgaXRzZWxmIGRpcmVjdGx5IGluIHRoZSBgbG9hZGVyU3RhY2tgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGxvYWRlckluc3RhbmNlIFRoZSBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbG9hZGVyIGlkZW50aWZpZXIgYW5kIHRoZSBsb2FkZXIgaXRzZWxmLlxyXG4gICAqIEBwYXJhbSBmb3JjZSBPcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBmb3JjZXMgdGhlIG92ZXJyaWRpbmcgb2YgbG9hZGVyIGluc3RhbmNlIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxyXG4gICAqIEByZXR1cm5zIFJldHVybnMgbm90aGluZyBzcGVjaWFsLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRMb2FkZXIobG9hZGVySW5zdGFuY2U6IExvYWRlckluc3RhbmNlLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChmb3JjZSkge1xyXG4gICAgICBjb25zdCBpOiBudW1iZXIgPSB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5maW5kSW5kZXgoKG86IExvYWRlckluc3RhbmNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG8uaWQgPT09IGxvYWRlckluc3RhbmNlLmlkO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGkgPiAtMSkge1xyXG4gICAgICAgIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrW2ldLmNvbXBvbmVudCA9IGxvYWRlckluc3RhbmNlLmNvbXBvbmVudDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5wdXNoKGxvYWRlckluc3RhbmNlKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgbG9hZGVyO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1jb25kaXRpb25hbC1hc3NpZ25tZW50XHJcbiAgICBpZiAobG9hZGVyID0gdGhpcy5fZ2V0TG9hZGVyKGxvYWRlckluc3RhbmNlLmlkKSkge1xyXG4gICAgICB0aHJvdyAobmV3IEVycm9yKCdMb2FkZXIgd2l0aCAnICsgbG9hZGVySW5zdGFuY2UuaWQgKyAnIGlkZW50aWZpZXIgYWxyZWFkeSBleGlzdCcpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLnB1c2gobG9hZGVySW5zdGFuY2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgbG9hZGVyIGluc3RhbmNlIGZyb20gdGhlIGxvYWRlciBzdGFjay5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUxvYWRlcihpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjayA9IHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLmZpbHRlcigobG9hZGVyKSA9PiBsb2FkZXIuaWQgIT09IGlkKTtcclxuXHJcbiAgICB0aGlzLl9yZW1vdmVBY3Rpb24oaWQsICcqJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIGNyZWF0ZWQgbG9hZGVycy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgbG9hZGVyIGluc3RhbmNlcy5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0TG9hZGVyU3RhY2soKTogTG9hZGVySW5zdGFuY2VbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcml2YXRlbG9hZGVyU3RhY2s7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJdCBnaXZlcyB0aGUgbnVtYmVyIG9mIGxvYWRlciBpbnN0YW5jZXMuIEl0J3MgaGVscGZ1bCB0byBrbm93IGlmIHRoZSBsb2FkZXIgc3RhY2sgaXMgZW1wdHkgb3Igbm90LlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxvYWRlciBpbnN0YW5jZXMuXHJcbiAgICovXHJcbiAgcHVibGljIGdldExvYWRlclN0YWNrQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIG9wZW5lZCBsb2FkZXJzLiBJdCBsb29rcyBmb3IgYWxsIGxvYWRlciBpbnN0YW5jZXMgd2l0aCB0aGVpciBgdmlzaWJsZWAgcHJvcGVydHkgc2V0IHRvIGB0cnVlYC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgdGhlIG9wZW5lZCBsb2FkZXJzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRPcGVuZWRMb2FkZXJzKCk6IExvYWRlckluc3RhbmNlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLmZpbHRlcigobG9hZGVyKSA9PiBsb2FkZXIuY29tcG9uZW50LnZpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYWxsIHRoZSBhY3RpdmUgbG9hZGVycy4gSXQgbG9va3MgZm9yIGFsbCBsb2FkZXIgaW5zdGFuY2VzIHdpdGggdGhlaXIgYGxvYWRpbmdgIHByb3BlcnR5IHNldCB0byBgdHJ1ZWAuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGFuIGFycmF5IHRoYXQgY29udGFpbnMgYWxsIHRoZSBhY3RpdmUgbG9hZGVycy5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0QWN0aXZlTG9hZGVycygpOiBMb2FkZXJJbnN0YW5jZVtdIHtcclxuICAgIHJldHVybiB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5maWx0ZXIoKGxvYWRlcikgPT4gbG9hZGVyLmNvbXBvbmVudC5sb2FkaW5nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgaGlnaGVyIGB6LWluZGV4YCB2YWx1ZSBiZXR3ZWVuIGFsbCB0aGUgbG9hZGVyIGluc3RhbmNlcy4gSXQgaXRlcmF0ZXMgb3ZlciB0aGUgYExvYWRlclN0YWNrYCBhcnJheSBhbmRcclxuICAgKiBjYWxjdWxhdGVzIGEgaGlnaGVyIHZhbHVlIChpdCB0YWtlcyB0aGUgaGlnaGVzdCBpbmRleCB2YWx1ZSBiZXR3ZWVuIGFsbCB0aGUgbG9hZGVyIGluc3RhbmNlcyBhbmQgYWRkcyAxKS5cclxuICAgKiBVc2UgaXQgdG8gbWFrZSBhIGxvYWRlciBhcHBlYXIgZm9yZWdyb3VuZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIFJldHVybnMgYSBoaWdoZXIgaW5kZXggZnJvbSBhbGwgdGhlIGV4aXN0aW5nIGxvYWRlciBpbnN0YW5jZXMuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEhpZ2hlckluZGV4KCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBpbmRleDogbnVtYmVyW10gPSB0aGlzLmdldE9wZW5lZExvYWRlcnMoKS5tYXAoKGxvYWRlcikgPT4gbG9hZGVyLmNvbXBvbmVudC5sYXllclBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gTWF0aC5tYXgoLi4uaW5kZXgpICsgMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZSBsb2FkaW5nIHN0YXRlIHRvIG9uZSBvciBzZXZlcmFsIGxvYWRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGxvYWRlciBpZGVudGlmaWVyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGFydChpZDogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGxldCBsb2FkZXI7XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XHJcbiAgICAgIGlkLmZvckVhY2goKGk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhcnQoaSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChsb2FkZXIgPSB0aGlzLl9nZXRMb2FkZXIoaWQpKSB7XHJcbiAgICAgIGxvYWRlci5jb21wb25lbnQuc3RhcnQoKTtcclxuICAgICAgdGhpcy5fcmVtb3ZlQWN0aW9uKGlkLCAnc3RhcnQnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2FkZEFjdGlvbihpZCwgJ3N0YXJ0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmFibGUgbG9hZGluZyBzdGF0ZSB0byBhbGwgbG9hZGVycy5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhcnRBbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5mb3JFYWNoKChsb2FkZXIpID0+IHRoaXMuc3RhcnQobG9hZGVyLmlkKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNhYmxlIGxvYWRpbmcgc3RhdGUgdG8gb25lIG9yIHNldmVyYWwgbG9hZGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHN0b3AoaWQ6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBsZXQgbG9hZGVyO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGlkKSkge1xyXG4gICAgICBpZC5mb3JFYWNoKChpOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnN0b3AoaSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChsb2FkZXIgPSB0aGlzLl9nZXRMb2FkZXIoaWQpKSB7XHJcbiAgICAgIGxvYWRlci5jb21wb25lbnQuc3RvcCgpO1xyXG4gICAgICB0aGlzLl9yZW1vdmVBY3Rpb24oaWQsICdzdG9wJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9hZGRBY3Rpb24oaWQsICdzdG9wJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNhYmxlIGxvYWRpbmcgc3RhdGUgdG8gYWxsIGxvYWRlcnMuXHJcbiAgICovXHJcbiAgcHVibGljIHN0b3BBbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5mb3JFYWNoKChsb2FkZXIpID0+IHRoaXMuc3RvcChsb2FkZXIuaWQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0xvYWRpbmcoaWQ6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgbG9hZGVyO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XHJcbiAgICAgIGNvbnN0IHRtcDogYW55ID0gW107XHJcblxyXG4gICAgICBpZC5mb3JFYWNoKChpOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5mb3JFYWNoKChsb2FkKSA9PiB7XHJcbiAgICAgICAgICBpZiAobG9hZC5pZCA9PT0gaSkge1xyXG4gICAgICAgICAgICB0bXAucHVzaChsb2FkLmNvbXBvbmVudC5sb2FkaW5nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0bXAuaW5kZXhPZihmYWxzZSkgPT09IC0xO1xyXG4gICAgfSBlbHNlIGlmIChsb2FkZXIgPSB0aGlzLl9nZXRMb2FkZXIoaWQpKSB7XHJcbiAgICAgIHJldHVybiBsb2FkZXIuY29tcG9uZW50LmxvYWRpbmc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlIGFuIGFjdGlvbiBvbiBsb2FkZXJzXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGxvYWRlciBpZGVudGlmaWVyLlxyXG4gICAqIEBwYXJhbSBhY3Rpb24gTmFtZSBvZiB0aGUgYWN0aW9uLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBleGVjdXRlQWN0aW9uKGlkOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wcml2YXRlQWN0aW9ucy5maW5kKChhY3QpID0+IGFjdC5pZGVudGlmaWVyID09PSBpZCAmJiBhY3QuYWN0aW9uID09PSBhY3Rpb24pKSB7XHJcbiAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnc3RhcnQnOlxyXG4gICAgICAgICAgdGhpcy5zdGFydChpZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdG9wJzpcclxuICAgICAgICAgIHRoaXMuc3RvcChpZCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBsb2FkZXIgaW5zdGFuY2UgYnkgaXRzIGlkZW50aWZpZXIuXHJcbiAgICogSWYgdGhlcmUncyBzZXZlcmFsIGxvYWRlcnMgd2l0aCBzYW1lIGlkZW50aWZpZXIsIHRoZSBmaXJzdCBpcyByZXR1cm5lZC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldExvYWRlcihpZDogc3RyaW5nKTogTG9hZGVySW5zdGFuY2UgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5maW5kKChsb2FkKSA9PiBsb2FkLmlkID09PSBpZCkgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgYW4gYWN0aW9uIG9uIG9uZSBvciBtb3JlIGxvYWRlcnNcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXHJcbiAgICogQHBhcmFtIGFjdGlvbiBOYW1lIG9mIHRoZSBhY3Rpb24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfYWRkQWN0aW9uKGlkOiBzdHJpbmcgfCBzdHJpbmdbXSwgYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGlkKSkge1xyXG4gICAgICBpZC5mb3JFYWNoKChpOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLl9hZGRBY3Rpb24oaSwgYWN0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByaXZhdGVBY3Rpb25zLnB1c2goeyBpZGVudGlmaWVyOiBpZCwgYWN0aW9uOiBhY3Rpb24gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYW4gYWN0aW9uIG9uIG9uZSBvciBtb3JlIGxvYWRlcnNcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXHJcbiAgICogQHBhcmFtIGFjdGlvbiBOYW1lIG9mIHRoZSBhY3Rpb24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlQWN0aW9uKGlkOiBzdHJpbmcgfCBzdHJpbmdbXSwgYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGlkKSkge1xyXG4gICAgICBpZC5mb3JFYWNoKChpOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLl9yZW1vdmVBY3Rpb24oaSwgYWN0aW9uKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByaXZhdGVBY3Rpb25zID0gdGhpcy5wcml2YXRlQWN0aW9ucy5maWx0ZXIoKGFjdCkgPT4gYWN0LmlkZW50aWZpZXIgIT09IGlkIHx8IChhY3QuYWN0aW9uICE9PSBhY3Rpb24gJiYgYWN0aW9uICE9PSAnKicpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9Wb2x1bWVzL3dvcmsvU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9sb2FkZXIvbnRrLXNtYXJ0LWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFIbEM7UUFJVSx1QkFBa0IsR0FBcUIsRUFBRSxDQUFDO1FBQzFDLG1CQUFjLEdBQWtELEVBQUUsQ0FBQztLQWlPNUU7SUEvTkM7Ozs7Ozs7T0FPRztJQUNJLFNBQVMsQ0FBQyxjQUE4QixFQUFFLEtBQWU7UUFDOUQsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBaUIsRUFBRSxFQUFFO2dCQUN4RSxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQzthQUNqRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzlDO1lBQ0QsT0FBTztTQUNSO1FBQ0QsSUFBSSxNQUFNLENBQUM7UUFDWCxzREFBc0Q7UUFDdEQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDL0MsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFD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cUIsRUFBRSxNQUFjO1FBQ3pELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNyQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0g7SUFDSCxDQUFDOzs7O1lBck9GLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTG9hZGVySW5zdGFuY2UgfSBmcm9tICcuL2xvYWRlci1pbnN0YW5jZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOdGtTbWFydExvYWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHByaXZhdGVsb2FkZXJTdGFjazogTG9hZGVySW5zdGFuY2VbXSA9IFtdO1xuICBwcml2YXRlIHByaXZhdGVBY3Rpb25zOiBBcnJheTx7IGlkZW50aWZpZXI6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcgfT4gPSBbXTtcblxuICAvKipcbiAgICogQWRkIGEgbmV3IGxvYWRlciBpbnN0YW5jZS4gVGhpcyBzdGVwIGlzIGVzc2VudGlhbCBhbmQgYWxsb3dzIHRvIHJldHJpZXZlIGFueSBsb2FkZXIgYXQgYW55IHRpbWUuXG4gICAqIEl0IHN0b3JlcyBhbiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbG9hZGVyIGlkZW50aWZpZXIgYW5kIHRoZSBsb2FkZXIgaXRzZWxmIGRpcmVjdGx5IGluIHRoZSBgbG9hZGVyU3RhY2tgLlxuICAgKlxuICAgKiBAcGFyYW0gbG9hZGVySW5zdGFuY2UgVGhlIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBnaXZlbiBsb2FkZXIgaWRlbnRpZmllciBhbmQgdGhlIGxvYWRlciBpdHNlbGYuXG4gICAqIEBwYXJhbSBmb3JjZSBPcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBmb3JjZXMgdGhlIG92ZXJyaWRpbmcgb2YgbG9hZGVyIGluc3RhbmNlIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIG5vdGhpbmcgc3BlY2lhbC5cbiAgICovXG4gIHB1YmxpYyBhZGRMb2FkZXIobG9hZGVySW5zdGFuY2U6IExvYWRlckluc3RhbmNlLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoZm9yY2UpIHtcbiAgICAgIGNvbnN0IGk6IG51bWJlciA9IHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLmZpbmRJbmRleCgobzogTG9hZGVySW5zdGFuY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIG8uaWQgPT09IGxvYWRlckluc3RhbmNlLmlkO1xuICAgICAgfSk7XG4gICAgICBpZiAoaSA+IC0xKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrW2ldLmNvbXBvbmVudCA9IGxvYWRlckluc3RhbmNlLmNvbXBvbmVudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLnB1c2gobG9hZGVySW5zdGFuY2UpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgbG9hZGVyO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uZGl0aW9uYWwtYXNzaWdubWVudFxuICAgIGlmIChsb2FkZXIgPSB0aGlzLl9nZXRMb2FkZXIobG9hZGVySW5zdGFuY2UuaWQpKSB7XG4gICAgICB0aHJvdyAobmV3IEVycm9yKCdMb2FkZXIgd2l0aCAnICsgbG9hZGVySW5zdGFuY2UuaWQgKyAnIGlkZW50aWZpZXIgYWxyZWFkeSBleGlzdCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcml2YXRlbG9hZGVyU3RhY2sucHVzaChsb2FkZXJJbnN0YW5jZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGxvYWRlciBpbnN0YW5jZSBmcm9tIHRoZSBsb2FkZXIgc3RhY2suXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlTG9hZGVyKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjayA9IHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLmZpbHRlcigobG9hZGVyKSA9PiBsb2FkZXIuaWQgIT09IGlkKTtcblxuICAgIHRoaXMuX3JlbW92ZUFjdGlvbihpZCwgJyonKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIGNyZWF0ZWQgbG9hZGVycy5cbiAgICpcbiAgICogQHJldHVybnMgUmV0dXJucyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBsb2FkZXIgaW5zdGFuY2VzLlxuICAgKi9cbiAgcHVibGljIGdldExvYWRlclN0YWNrKCk6IExvYWRlckluc3RhbmNlW10ge1xuICAgIHJldHVybiB0aGlzLnByaXZhdGVsb2FkZXJTdGFjaztcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBnaXZlcyB0aGUgbnVtYmVyIG9mIGxvYWRlciBpbnN0YW5jZXMuIEl0J3MgaGVscGZ1bCB0byBrbm93IGlmIHRoZSBsb2FkZXIgc3RhY2sgaXMgZW1wdHkgb3Igbm90LlxuICAgKlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbG9hZGVyIGluc3RhbmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXRMb2FkZXJTdGFja0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIG9wZW5lZCBsb2FkZXJzLiBJdCBsb29rcyBmb3IgYWxsIGxvYWRlciBpbnN0YW5jZXMgd2l0aCB0aGVpciBgdmlzaWJsZWAgcHJvcGVydHkgc2V0IHRvIGB0cnVlYC5cbiAgICpcbiAgICogQHJldHVybnMgUmV0dXJucyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgb3BlbmVkIGxvYWRlcnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0T3BlbmVkTG9hZGVycygpOiBMb2FkZXJJbnN0YW5jZVtdIHtcbiAgICByZXR1cm4gdGhpcy5wcml2YXRlbG9hZGVyU3RhY2suZmlsdGVyKChsb2FkZXIpID0+IGxvYWRlci5jb21wb25lbnQudmlzaWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYWxsIHRoZSBhY3RpdmUgbG9hZGVycy4gSXQgbG9va3MgZm9yIGFsbCBsb2FkZXIgaW5zdGFuY2VzIHdpdGggdGhlaXIgYGxvYWRpbmdgIHByb3BlcnR5IHNldCB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgdGhlIGFjdGl2ZSBsb2FkZXJzLlxuICAgKi9cbiAgcHVibGljIGdldEFjdGl2ZUxvYWRlcnMoKTogTG9hZGVySW5zdGFuY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJpdmF0ZWxvYWRlclN0YWNrLmZpbHRlcigobG9hZGVyKSA9PiBsb2FkZXIuY29tcG9uZW50LmxvYWRpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaGlnaGVyIGB6LWluZGV4YCB2YWx1ZSBiZXR3ZWVuIGFsbCB0aGUgbG9hZGVyIGluc3RhbmNlcy4gSXQgaXRlcmF0ZXMgb3ZlciB0aGUgYExvYWRlclN0YWNrYCBhcnJheSBhbmRcbiAgICogY2FsY3VsYXRlcyBhIGhpZ2hlciB2YWx1ZSAoaXQgdGFrZXMgdGhlIGhpZ2hlc3QgaW5kZXggdmFsdWUgYmV0d2VlbiBhbGwgdGhlIGxvYWRlciBpbnN0YW5jZXMgYW5kIGFkZHMgMSkuXG4gICAqIFVzZSBpdCB0byBtYWtlIGEgbG9hZGVyIGFwcGVhciBmb3JlZ3JvdW5kLlxuICAgKlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIGEgaGlnaGVyIGluZGV4IGZyb20gYWxsIHRoZSBleGlzdGluZyBsb2FkZXIgaW5zdGFuY2VzLlxuICAgKi9cbiAgcHVibGljIGdldEhpZ2hlckluZGV4KCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlcltdID0gdGhpcy5nZXRPcGVuZWRMb2FkZXJzKCkubWFwKChsb2FkZXIpID0+IGxvYWRlci5jb21wb25lbnQubGF5ZXJQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gTWF0aC5tYXgoLi4uaW5kZXgpICsgMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgbG9hZGluZyBzdGF0ZSB0byBvbmUgb3Igc2V2ZXJhbCBsb2FkZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGxvYWRlciBpZGVudGlmaWVyLlxuICAgKi9cbiAgcHVibGljIHN0YXJ0KGlkOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGxldCBsb2FkZXI7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICAgIGlkLmZvckVhY2goKGk6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnN0YXJ0KGkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChsb2FkZXIgPSB0aGlzLl9nZXRMb2FkZXIoaWQpKSB7XG4gICAgICBsb2FkZXIuY29tcG9uZW50LnN0YXJ0KCk7XG4gICAgICB0aGlzLl9yZW1vdmVBY3Rpb24oaWQsICdzdGFydCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hZGRBY3Rpb24oaWQsICdzdGFydCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgbG9hZGluZyBzdGF0ZSB0byBhbGwgbG9hZGVycy5cbiAgICovXG4gIHB1YmxpYyBzdGFydEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5mb3JFYWNoKChsb2FkZXIpID0+IHRoaXMuc3RhcnQobG9hZGVyLmlkKSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBsb2FkaW5nIHN0YXRlIHRvIG9uZSBvciBzZXZlcmFsIGxvYWRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXG4gICAqL1xuICBwdWJsaWMgc3RvcChpZDogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBsZXQgbG9hZGVyO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XG4gICAgICBpZC5mb3JFYWNoKChpOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zdG9wKGkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChsb2FkZXIgPSB0aGlzLl9nZXRMb2FkZXIoaWQpKSB7XG4gICAgICBsb2FkZXIuY29tcG9uZW50LnN0b3AoKTtcbiAgICAgIHRoaXMuX3JlbW92ZUFjdGlvbihpZCwgJ3N0b3AnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYWRkQWN0aW9uKGlkLCAnc3RvcCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGxvYWRpbmcgc3RhdGUgdG8gYWxsIGxvYWRlcnMuXG4gICAqL1xuICBwdWJsaWMgc3RvcEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5mb3JFYWNoKChsb2FkZXIpID0+IHRoaXMuc3RvcChsb2FkZXIuaWQpKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvYWRpbmcoaWQ6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgbGV0IGxvYWRlcjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICAgIGNvbnN0IHRtcDogYW55ID0gW107XG5cbiAgICAgIGlkLmZvckVhY2goKGk6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnByaXZhdGVsb2FkZXJTdGFjay5mb3JFYWNoKChsb2FkKSA9PiB7XG4gICAgICAgICAgaWYgKGxvYWQuaWQgPT09IGkpIHtcbiAgICAgICAgICAgIHRtcC5wdXNoKGxvYWQuY29tcG9uZW50LmxvYWRpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0bXAuaW5kZXhPZihmYWxzZSkgPT09IC0xO1xuICAgIH0gZWxzZSBpZiAobG9hZGVyID0gdGhpcy5fZ2V0TG9hZGVyKGlkKSkge1xuICAgICAgcmV0dXJuIGxvYWRlci5jb21wb25lbnQubG9hZGluZztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGFuIGFjdGlvbiBvbiBsb2FkZXJzXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgbG9hZGVyIGlkZW50aWZpZXIuXG4gICAqIEBwYXJhbSBhY3Rpb24gTmFtZSBvZiB0aGUgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGV4ZWN1dGVBY3Rpb24oaWQ6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcml2YXRlQWN0aW9ucy5maW5kKChhY3QpID0+IGFjdC5pZGVudGlmaWVyID09PSBpZCAmJiBhY3QuYWN0aW9uID09PSBhY3Rpb24pKSB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgdGhpcy5zdGFydChpZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3N0b3AnOlxuICAgICAgICAgIHRoaXMuc3RvcChpZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgbG9hZGVyIGluc3RhbmNlIGJ5IGl0cyBpZGVudGlmaWVyLlxuICAgKiBJZiB0aGVyZSdzIHNldmVyYWwgbG9hZGVycyB3aXRoIHNhbWUgaWRlbnRpZmllciwgdGhlIGZpcnN0IGlzIHJldHVybmVkLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGxvYWRlciBpZGVudGlmaWVyIHVzZWQgYXQgY3JlYXRpb24gdGltZS5cbiAgICovXG4gIHByaXZhdGUgX2dldExvYWRlcihpZDogc3RyaW5nKTogTG9hZGVySW5zdGFuY2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5wcml2YXRlbG9hZGVyU3RhY2suZmluZCgobG9hZCkgPT4gbG9hZC5pZCA9PT0gaWQpIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBhY3Rpb24gb24gb25lIG9yIG1vcmUgbG9hZGVyc1xuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIGxvYWRlciBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0gYWN0aW9uIE5hbWUgb2YgdGhlIGFjdGlvbi5cbiAgICovXG4gIHByaXZhdGUgX2FkZEFjdGlvbihpZDogc3RyaW5nIHwgc3RyaW5nW10sIGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XG4gICAgICBpZC5mb3JFYWNoKChpOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5fYWRkQWN0aW9uKGksIGFjdGlvbik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcml2YXRlQWN0aW9ucy5wdXNoKHsgaWRlbnRpZmllcjogaWQsIGFjdGlvbjogYWN0aW9uIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gYWN0aW9uIG9uIG9uZSBvciBtb3JlIGxvYWRlcnNcbiAgICpcbiAgICogQHBhcmFtIGlkIFRoZSBsb2FkZXIgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIGFjdGlvbiBOYW1lIG9mIHRoZSBhY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIF9yZW1vdmVBY3Rpb24oaWQ6IHN0cmluZyB8IHN0cmluZ1tdLCBhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGlkKSkge1xuICAgICAgaWQuZm9yRWFjaCgoaTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUFjdGlvbihpLCBhY3Rpb24pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJpdmF0ZUFjdGlvbnMgPSB0aGlzLnByaXZhdGVBY3Rpb25zLmZpbHRlcigoYWN0KSA9PiBhY3QuaWRlbnRpZmllciAhPT0gaWQgfHwgKGFjdC5hY3Rpb24gIT09IGFjdGlvbiAmJiBhY3Rpb24gIT09ICcqJykpO1xuICAgIH1cbiAgfVxufVxuIl19
export class ModalInstance {
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiRDovU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC9tb2RhbC1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtDQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1vZGFsSW5zdGFuY2Uge1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudDtcclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiL1ZvbHVtZXMvd29yay9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGFsL21vZGFsLWluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxhQUFhO0NBR3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTnRrU21hcnRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbnRrLXNtYXJ0LW1vZGFsLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBNb2RhbEluc3RhbmNlIHtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyBtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudDtcbn1cbiJdfQ==
import { Injectable } from '@angular/core';
export class NtkSmartModalStackService {
constructor() {
this._modalStack = [];
this.modalStack = [];
}

@@ -16,12 +16,12 @@ /**

if (force) {
const i = this._modalStack.findIndex((o) => o.id === modalInstance.id);
const i = this.modalStack.findIndex((o) => o.id === modalInstance.id);
if (i > -1) {
this._modalStack[i].modal = modalInstance.modal;
this.modalStack[i].modal = modalInstance.modal;
}
else {
this._modalStack.push(modalInstance);
this.modalStack.push(modalInstance);
}
return;
}
this._modalStack.push(modalInstance);
this.modalStack.push(modalInstance);
}

@@ -34,3 +34,3 @@ /**

getModal(id) {
const i = this._modalStack.find((o) => o.id === id);
const i = this.modalStack.find((o) => o.id === id);
if (i !== undefined) {

@@ -49,3 +49,3 @@ return i.modal;

getModalStack() {
return this._modalStack;
return this.modalStack;
}

@@ -58,3 +58,3 @@ /**

getOpenedModals() {
return this._modalStack.filter((o) => o.modal.visible);
return this.modalStack.filter((o) => o.modal.visible);
}

@@ -82,3 +82,3 @@ /**

getHigherIndex() {
return Math.max(...this._modalStack.map((o) => o.modal.layerPosition), 1041) + 1;
return Math.max(...this.modalStack.map((o) => o.modal.layerPosition), 1041) + 1;
}

@@ -91,3 +91,3 @@ /**

getModalStackCount() {
return this._modalStack.length;
return this.modalStack.length;
}

@@ -101,5 +101,5 @@ /**

removeModal(id) {
const i = this._modalStack.findIndex((o) => o.id === id);
const i = this.modalStack.findIndex((o) => o.id === id);
if (i > -1) {
this._modalStack.splice(i, 1);
this.modalStack.splice(i, 1);
}

@@ -112,2 +112,2 @@ }

NtkSmartModalStackService.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLXN0YWNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC9udGstc21hcnQtbW9kYWwtc3RhY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEM7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFFBQVEsQ0FBQyxhQUE0QixFQUFFLEtBQWU7UUFDM0QsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7YUFDakQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdEM7WUFDRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxFQUFVO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ2hCO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFO2FBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDbEMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0JBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLEVBQVU7UUFDM0IsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDOzs7WUE1R0YsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5pbXBvcnQgeyBNb2RhbEluc3RhbmNlIH0gZnJvbSAnLi9tb2RhbC1pbnN0YW5jZSc7XHJcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTnRrU21hcnRNb2RhbFN0YWNrU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfbW9kYWxTdGFjazogTW9kYWxJbnN0YW5jZVtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX21vZGFsU3RhY2sgPSBbXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG5ldyBtb2RhbCBpbnN0YW5jZS4gVGhpcyBzdGVwIGlzIGVzc2VudGlhbCBhbmQgYWxsb3dzIHRvIHJldHJpZXZlIGFueSBtb2RhbCBhdCBhbnkgdGltZS5cclxuICAgKiBJdCBzdG9yZXMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIGdpdmVuIG1vZGFsIGlkZW50aWZpZXIgYW5kIHRoZSBtb2RhbCBpdHNlbGYgZGlyZWN0bHkgaW4gdGhlIGBtb2RhbFN0YWNrYC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBtb2RhbEluc3RhbmNlIFRoZSBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbW9kYWwgaWRlbnRpZmllciBhbmQgdGhlIG1vZGFsIGl0c2VsZi5cclxuICAgKiBAcGFyYW0gZm9yY2UgT3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgZm9yY2VzIHRoZSBvdmVycmlkaW5nIG9mIG1vZGFsIGluc3RhbmNlIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxyXG4gICAqIEByZXR1cm5zIG5vdGhpbmcgc3BlY2lhbC5cclxuICAgKi9cclxuICBwdWJsaWMgYWRkTW9kYWwobW9kYWxJbnN0YW5jZTogTW9kYWxJbnN0YW5jZSwgZm9yY2U/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoZm9yY2UpIHtcclxuICAgICAgY29uc3QgaTogbnVtYmVyID0gdGhpcy5fbW9kYWxTdGFjay5maW5kSW5kZXgoKG86IE1vZGFsSW5zdGFuY2UpID0+IG8uaWQgPT09IG1vZGFsSW5zdGFuY2UuaWQpO1xyXG4gICAgICBpZiAoaSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5fbW9kYWxTdGFja1tpXS5tb2RhbCA9IG1vZGFsSW5zdGFuY2UubW9kYWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fbW9kYWxTdGFjay5wdXNoKG1vZGFsSW5zdGFuY2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX21vZGFsU3RhY2sucHVzaChtb2RhbEluc3RhbmNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGEgbW9kYWwgaW5zdGFuY2UgYnkgaXRzIGlkZW50aWZpZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRNb2RhbChpZDogc3RyaW5nKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICBjb25zdCBpID0gdGhpcy5fbW9kYWxTdGFjay5maW5kKChvOiBNb2RhbEluc3RhbmNlKSA9PiBvLmlkID09PSBpZCk7XHJcblxyXG4gICAgaWYgKGkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gaS5tb2RhbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgbW9kYWwgd2l0aCBpZGVudGlmaWVyICR7aWR9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIGNyZWF0ZWQgbW9kYWxzLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgbW9kYWwgaW5zdGFuY2VzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRNb2RhbFN0YWNrKCk6IE1vZGFsSW5zdGFuY2VbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjaztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIGFsbCB0aGUgb3BlbmVkIG1vZGFscy4gSXQgbG9va3MgZm9yIGFsbCBtb2RhbCBpbnN0YW5jZXMgd2l0aCB0aGVpciBgdmlzaWJsZWAgcHJvcGVydHkgc2V0IHRvIGB0cnVlYC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIGFuIGFycmF5IHRoYXQgY29udGFpbnMgYWxsIHRoZSBvcGVuZWQgbW9kYWxzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRPcGVuZWRNb2RhbHMoKTogTW9kYWxJbnN0YW5jZVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmZpbHRlcigobzogTW9kYWxJbnN0YW5jZSkgPT4gby5tb2RhbC52aXNpYmxlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRoZSBvcGVuZWQgbW9kYWwgd2l0aCBoaWdoZXN0IHotaW5kZXguXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB0aGUgb3BlbmVkIG1vZGFsIHdpdGggaGlnaGVzdCB6LWluZGV4LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUb3BPcGVuZWRNb2RhbCgpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcclxuICAgIGlmICghdGhpcy5nZXRPcGVuZWRNb2RhbHMoKS5sZW5ndGgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBtb2RhbCBpcyBvcGVuZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRPcGVuZWRNb2RhbHMoKVxyXG4gICAgICAubWFwKChvOiBNb2RhbEluc3RhbmNlKSA9PiBvLm1vZGFsKVxyXG4gICAgICAucmVkdWNlKChoaWdoZXN0LCBpdGVtKSA9PiBpdGVtLmxheWVyUG9zaXRpb24gPiBoaWdoZXN0LmxheWVyUG9zaXRpb24gPyBpdGVtIDogaGlnaGVzdCwgdGhpcy5nZXRPcGVuZWRNb2RhbHMoKVswXS5tb2RhbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGhpZ2hlciBgei1pbmRleGAgdmFsdWUgYmV0d2VlbiBhbGwgdGhlIG1vZGFsIGluc3RhbmNlcy4gSXQgaXRlcmF0ZXMgb3ZlciB0aGUgYE1vZGFsU3RhY2tgIGFycmF5IGFuZFxyXG4gICAqIGNhbGN1bGF0ZXMgYSBoaWdoZXIgdmFsdWUgKGl0IHRha2VzIHRoZSBoaWdoZXN0IGluZGV4IHZhbHVlIGJldHdlZW4gYWxsIHRoZSBtb2RhbCBpbnN0YW5jZXMgYW5kIGFkZHMgMSkuXHJcbiAgICogVXNlIGl0IHRvIG1ha2UgYSBtb2RhbCBhcHBlYXIgZm9yZWdyb3VuZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIGEgaGlnaGVyIGluZGV4IGZyb20gYWxsIHRoZSBleGlzdGluZyBtb2RhbCBpbnN0YW5jZXMuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEhpZ2hlckluZGV4KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5tYXgoLi4udGhpcy5fbW9kYWxTdGFjay5tYXAoKG8pID0+IG8ubW9kYWwubGF5ZXJQb3NpdGlvbiksIDEwNDEpICsgMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0IGdpdmVzIHRoZSBudW1iZXIgb2YgbW9kYWwgaW5zdGFuY2VzLiBJdCdzIGhlbHBmdWwgdG8ga25vdyBpZiB0aGUgbW9kYWwgc3RhY2sgaXMgZW1wdHkgb3Igbm90LlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgdGhlIG51bWJlciBvZiBtb2RhbCBpbnN0YW5jZXMuXHJcbiAgICovXHJcbiAgcHVibGljIGdldE1vZGFsU3RhY2tDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGFsU3RhY2subGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgbW9kYWwgaW5zdGFuY2UgZnJvbSB0aGUgbW9kYWwgc3RhY2suXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIuXHJcbiAgICogQHJldHVybnMgdGhlIHJlbW92ZWQgbW9kYWwgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZU1vZGFsKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGk6IG51bWJlciA9IHRoaXMuX21vZGFsU3RhY2suZmluZEluZGV4KChvOiBhbnkpID0+IG8uaWQgPT09IGlkKTtcclxuICAgIGlmIChpID4gLTEpIHtcclxuICAgICAgdGhpcy5fbW9kYWxTdGFjay5zcGxpY2UoaSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLXN0YWNrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1ZvbHVtZXMvd29yay9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGFsL250ay1zbWFydC1tb2RhbC1zdGFjay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPM0MsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQztRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUSxDQUFDLGFBQTRCLEVBQUUsS0FBZTtRQUMzRCxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQzthQUNoRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNyQztZQUNELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLEVBQVU7UUFDeEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNuQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDdkM7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUU7YUFDMUIsR0FBRyxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUNsQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3SCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsRUFBVTtRQUMzQixNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7OztZQTVHRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IE1vZGFsSW5zdGFuY2UgfSBmcm9tICcuL21vZGFsLWluc3RhbmNlJztcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTnRrU21hcnRNb2RhbFN0YWNrU2VydmljZSB7XG4gIHByaXZhdGUgbW9kYWxTdGFjazogTW9kYWxJbnN0YW5jZVtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMubW9kYWxTdGFjayA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBtb2RhbCBpbnN0YW5jZS4gVGhpcyBzdGVwIGlzIGVzc2VudGlhbCBhbmQgYWxsb3dzIHRvIHJldHJpZXZlIGFueSBtb2RhbCBhdCBhbnkgdGltZS5cbiAgICogSXQgc3RvcmVzIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBnaXZlbiBtb2RhbCBpZGVudGlmaWVyIGFuZCB0aGUgbW9kYWwgaXRzZWxmIGRpcmVjdGx5IGluIHRoZSBgbW9kYWxTdGFja2AuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RhbEluc3RhbmNlIFRoZSBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbW9kYWwgaWRlbnRpZmllciBhbmQgdGhlIG1vZGFsIGl0c2VsZi5cbiAgICogQHBhcmFtIGZvcmNlIE9wdGlvbmFsIHBhcmFtZXRlciB0aGF0IGZvcmNlcyB0aGUgb3ZlcnJpZGluZyBvZiBtb2RhbCBpbnN0YW5jZSBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cbiAgICogQHJldHVybnMgbm90aGluZyBzcGVjaWFsLlxuICAgKi9cbiAgcHVibGljIGFkZE1vZGFsKG1vZGFsSW5zdGFuY2U6IE1vZGFsSW5zdGFuY2UsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChmb3JjZSkge1xuICAgICAgY29uc3QgaTogbnVtYmVyID0gdGhpcy5tb2RhbFN0YWNrLmZpbmRJbmRleCgobzogTW9kYWxJbnN0YW5jZSkgPT4gby5pZCA9PT0gbW9kYWxJbnN0YW5jZS5pZCk7XG4gICAgICBpZiAoaSA+IC0xKSB7XG4gICAgICAgIHRoaXMubW9kYWxTdGFja1tpXS5tb2RhbCA9IG1vZGFsSW5zdGFuY2UubW9kYWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGFsU3RhY2sucHVzaChtb2RhbEluc3RhbmNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tb2RhbFN0YWNrLnB1c2gobW9kYWxJbnN0YW5jZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYSBtb2RhbCBpbnN0YW5jZSBieSBpdHMgaWRlbnRpZmllci5cbiAgICpcbiAgICogQHBhcmFtIGlkIFRoZSBtb2RhbCBpZGVudGlmaWVyIHVzZWQgYXQgY3JlYXRpb24gdGltZS5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2RhbChpZDogc3RyaW5nKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XG4gICAgY29uc3QgaSA9IHRoaXMubW9kYWxTdGFjay5maW5kKChvOiBNb2RhbEluc3RhbmNlKSA9PiBvLmlkID09PSBpZCk7XG5cbiAgICBpZiAoaSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gaS5tb2RhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBtb2RhbCB3aXRoIGlkZW50aWZpZXIgJHtpZH1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYWxsIHRoZSBjcmVhdGVkIG1vZGFscy5cbiAgICpcbiAgICogQHJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgbW9kYWwgaW5zdGFuY2VzLlxuICAgKi9cbiAgcHVibGljIGdldE1vZGFsU3RhY2soKTogTW9kYWxJbnN0YW5jZVtdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbFN0YWNrO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFsbCB0aGUgb3BlbmVkIG1vZGFscy4gSXQgbG9va3MgZm9yIGFsbCBtb2RhbCBpbnN0YW5jZXMgd2l0aCB0aGVpciBgdmlzaWJsZWAgcHJvcGVydHkgc2V0IHRvIGB0cnVlYC5cbiAgICpcbiAgICogQHJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgdGhlIG9wZW5lZCBtb2RhbHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0T3BlbmVkTW9kYWxzKCk6IE1vZGFsSW5zdGFuY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMubW9kYWxTdGFjay5maWx0ZXIoKG86IE1vZGFsSW5zdGFuY2UpID0+IG8ubW9kYWwudmlzaWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIG9wZW5lZCBtb2RhbCB3aXRoIGhpZ2hlc3Qgei1pbmRleC5cbiAgICpcbiAgICogQHJldHVybnMgdGhlIG9wZW5lZCBtb2RhbCB3aXRoIGhpZ2hlc3Qgei1pbmRleC5cbiAgICovXG4gIHB1YmxpYyBnZXRUb3BPcGVuZWRNb2RhbCgpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcbiAgICBpZiAoIXRoaXMuZ2V0T3BlbmVkTW9kYWxzKCkubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIG1vZGFsIGlzIG9wZW5lZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldE9wZW5lZE1vZGFscygpXG4gICAgICAubWFwKChvOiBNb2RhbEluc3RhbmNlKSA9PiBvLm1vZGFsKVxuICAgICAgLnJlZHVjZSgoaGlnaGVzdCwgaXRlbSkgPT4gaXRlbS5sYXllclBvc2l0aW9uID4gaGlnaGVzdC5sYXllclBvc2l0aW9uID8gaXRlbSA6IGhpZ2hlc3QsIHRoaXMuZ2V0T3BlbmVkTW9kYWxzKClbMF0ubW9kYWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaGlnaGVyIGB6LWluZGV4YCB2YWx1ZSBiZXR3ZWVuIGFsbCB0aGUgbW9kYWwgaW5zdGFuY2VzLiBJdCBpdGVyYXRlcyBvdmVyIHRoZSBgTW9kYWxTdGFja2AgYXJyYXkgYW5kXG4gICAqIGNhbGN1bGF0ZXMgYSBoaWdoZXIgdmFsdWUgKGl0IHRha2VzIHRoZSBoaWdoZXN0IGluZGV4IHZhbHVlIGJldHdlZW4gYWxsIHRoZSBtb2RhbCBpbnN0YW5jZXMgYW5kIGFkZHMgMSkuXG4gICAqIFVzZSBpdCB0byBtYWtlIGEgbW9kYWwgYXBwZWFyIGZvcmVncm91bmQuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgaGlnaGVyIGluZGV4IGZyb20gYWxsIHRoZSBleGlzdGluZyBtb2RhbCBpbnN0YW5jZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0SGlnaGVySW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoLi4udGhpcy5tb2RhbFN0YWNrLm1hcCgobykgPT4gby5tb2RhbC5sYXllclBvc2l0aW9uKSwgMTA0MSkgKyAxO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IGdpdmVzIHRoZSBudW1iZXIgb2YgbW9kYWwgaW5zdGFuY2VzLiBJdCdzIGhlbHBmdWwgdG8ga25vdyBpZiB0aGUgbW9kYWwgc3RhY2sgaXMgZW1wdHkgb3Igbm90LlxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIG1vZGFsIGluc3RhbmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2RhbFN0YWNrQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbFN0YWNrLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBtb2RhbCBpbnN0YW5jZSBmcm9tIHRoZSBtb2RhbCBzdGFjay5cbiAgICpcbiAgICogQHBhcmFtIGlkIFRoZSBtb2RhbCBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB0aGUgcmVtb3ZlZCBtb2RhbCBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVNb2RhbChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaTogbnVtYmVyID0gdGhpcy5tb2RhbFN0YWNrLmZpbmRJbmRleCgobzogYW55KSA9PiBvLmlkID09PSBpZCk7XG4gICAgaWYgKGkgPiAtMSkge1xuICAgICAgdGhpcy5tb2RhbFN0YWNrLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
import { ChangeDetectorRef, Component, ComponentFactoryResolver, EventEmitter, HostListener, Inject, Input, Output, PLATFORM_ID, QueryList, Renderer2, ViewChildren, ViewContainerRef } from '@angular/core';
import { ChangeDetectorRef, Component, ComponentFactoryResolver, EventEmitter, HostListener, Inject, Input, Output, PLATFORM_ID, Renderer2, ViewChildren, ViewContainerRef } from '@angular/core';
import { NtkSmartModalConfig } from './ntk-smart-modal.config';

@@ -344,2 +344,2 @@ export class NtkSmartModalComponent {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGFsL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULHdCQUF3QixFQUV4QixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUVULFlBQVksRUFDWixnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUEwQy9ELE1BQU0sT0FBTyxzQkFBc0I7SUE0Q2pDLFlBQ1UsU0FBb0IsRUFDcEIsa0JBQXFDLEVBQ3JDLHdCQUFrRCxFQUNoQyxTQUFjLEVBQ1gsV0FBZ0I7UUFKckMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUNYLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBaEQvQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDNUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFXLDJCQUEyQixDQUFDO1FBQ2xELFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsYUFBUSxHQUFZLElB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TUFBTSxTQUFDLFFBQVE7NENBQ2YsTUFBTSxTQUFDLFdBQVc7Ozt1QkFoRHBCLEtBQUs7d0JBQ0wsS0FBSzswQkFDTCxLQUFLO3lCQUNMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3dCQUNMLEtBQUs7cUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7OEJBQ0wsS0FBSztzQkFDTCxLQUFLOzRCQUVMLE1BQU07c0JBQ04sTUFBTTs4QkFDTixNQUFNO3dCQUNOLE1BQU07Z0NBQ04sTUFBTTs4QkFDTixNQUFNO3NDQUNOLE1BQU07cUJBQ04sTUFBTTs2QkFDTixNQUFNO3VCQUNOLE1BQU07MEJBQ04sTUFBTTs0QkFDTixNQUFNO3lCQVdOLFlBQVksU0FBQyxZQUFZO3dCQUN6QixZQUFZLFNBQUMsV0FBVzt5QkFDeEIsWUFBWSxTQUFDLFlBQVk7c0NBQ3pCLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTs4QkF3TXpELFlBQVksU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRGYWN0b3J5LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFBMQVRGT1JNX0lELFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVHlwZSxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOdGtTbWFydE1vZGFsQ29uZmlnIH0gZnJvbSAnLi9udGstc21hcnQtbW9kYWwuY29uZmlnJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ250ay1zbWFydC1tb2RhbCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgKm5nSWY9XCJvdmVybGF5VmlzaWJsZVwiXHJcbiAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cInZpc2libGUgPyBsYXllclBvc2l0aW9uLTEgOiAtMVwiXHJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsndHJhbnNwYXJlbnQnOiFiYWNrZHJvcCwgJ292ZXJsYXknOnRydWUsICduc20tb3ZlcmxheS1vcGVuJzpvcGVuZWRDbGFzc31cIlxyXG4gICAgICAgICAoY2xpY2spPVwiZGlzbWlzcygkZXZlbnQpXCIgI25zbU92ZXJsYXk+XHJcbiAgICAgIDxkaXYgW3N0eWxlLnotaW5kZXhdPVwidmlzaWJsZSA/IGxheWVyUG9zaXRpb24gOiAtMVwiXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwiWyduc20tZGlhbG9nJywgY3VzdG9tQ2xhc3MsIG9wZW5lZENsYXNzID8gJ25zbS1kaWFsb2ctb3Blbic6ICduc20tZGlhbG9nLWNsb3NlJ11cIiAjbnNtRGlhbG9nXHJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwib3BlbmVkQ2xhc3MgPyBmYWxzZSA6IHRydWVcIlxyXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcclxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxyXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5zbS1jb250ZW50XCIgI25zbUNvbnRlbnQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibnNtLWJvZHlcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkeW5hbWljQ29udGVudD48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImNsb3NhYmxlXCIgKGNsaWNrKT1cImNsb3NlKClcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cIm5zbS1kaWFsb2ctYnRuLWNsb3NlXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiBpZD1cIkxheWVyXzFcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiXHJcbiAgICAgICAgICAgICAgICAgeG1sOnNwYWNlPVwicHJlc2VydmVcIiB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgcm9sZT1cImltZ1wiIGFyaWEtbGFiZWxsZWRieT1cImNsb3NlSWNvblRpdGxlIGNsb3NlSWNvbkRlc2NcIj5cclxuICAgICAgICAgICAgICA8dGl0bGUgaWQ9XCJjbG9zZUljb25UaXRsZVwiPkNsb3NlIEljb248L3RpdGxlPlxyXG4gICAgICAgICAgICAgIDxkZXNjIGlkPVwiY2xvc2VJY29uRGVzY1wiPkEgbGlnaHQtZ3JheSBjbG9zZSBpY29uIHVzZWQgdG8gY2xvc2UgdGhlIG1vZGFsPC9kZXNjPlxyXG4gICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01MDUuOTQzLDYuMDU4Yy04LjA3Ny04LjA3Ny0yMS4xNzItOC4wNzctMjkuMjQ5LDBMNi4wNTgsNDc2LjY5M2MtOC4wNzcsOC4wNzctOC4wNzcsMjEuMTcyLDAsMjkuMjQ5ICAgIEMxMC4wOTYsNTA5Ljk4MiwxNS4zOSw1MTIsMjAuNjgzLDUxMmM1LjI5MywwLDEwLjU4Ni0yLjAxOSwxNC42MjUtNi4wNTlMNTA1Ljk0MywzNS4zMDYgICAgQzUxNC4wMTksMjcuMjMsNTE0LjAxOSwxNC4xMzUsNTA1Ljk0Myw2LjA1OHpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUwNS45NDIsNDc2LjY5NEwzNS4zMDYsNi4wNTljLTguMDc2LTguMDc3LTIxLjE3Mi04LjA3Ny0yOS4yNDgsMGMtOC4wNzcsOC4wNzYtOC4wNzcsMjEuMTcxLDAsMjkuMjQ4bDQ3MC42MzYsNDcwLjYzNiAgICBjNC4wMzgsNC4wMzksOS4zMzIsNi4wNTgsMTQuNjI1LDYuMDU4YzUuMjkzLDAsMTAuNTg3LTIuMDE5LDE0LjYyNC02LjA1N0M1MTQuMDE4LDQ5Ny44NjYsNTE0LjAxOCw0ODQuNzcxLDUwNS45NDIsNDc2LjY5NHpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cclxuICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnRrU21hcnRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBwdWJsaWMgY2xvc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlc2NhcGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNtaXNzYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGlkZW50aWZpZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzczogc3RyaW5nID0gJ25zbS1kaWFsb2ctYW5pbWF0aW9uLWZhZGUnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGJhY2tkcm9wOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgZm9yY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlRGVsYXk6IG51bWJlciA9IDUwMDtcclxuICBASW5wdXQoKSBwdWJsaWMgYXV0b3N0YXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHRhcmdldDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVmb2N1czogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNsb3NlRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EaXNtaXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG9uRGlzbWlzc0ZpbmlzaGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG9uQW55Q2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkFueUNsb3NlRXZlbnRGaW5pc2hlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk9wZW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25PcGVuRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Fc2NhcGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EYXRhQWRkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EYXRhUmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBjb250ZW50Q29tcG9uZW50OiBUeXBlPENvbXBvbmVudD47XHJcbiAgcHVibGljIGxheWVyUG9zaXRpb246IG51bWJlciA9IDEwNDE7XHJcbiAgcHVibGljIG92ZXJsYXlWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG9wZW5lZENsYXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVGcm9tID0gJ2h0bWwnO1xyXG5cclxuICBwcml2YXRlIF9kYXRhOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ25zbUNvbnRlbnQnKSBwcml2YXRlIG5zbUNvbnRlbnQ6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuICBAVmlld0NoaWxkcmVuKCduc21EaWFsb2cnKSBwdWJsaWMgbnNtRGlhbG9nOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgQFZpZXdDaGlsZHJlbignbnNtT3ZlcmxheScpIHByaXZhdGUgbnNtT3ZlcmxheTogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2R5bmFtaWNDb250ZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGR5bmFtaWNDb250ZW50Q29udGFpbmVyOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm1JZDogYW55LFxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pZGVudGlmaWVyIHx8ICF0aGlzLmlkZW50aWZpZXIubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignaWRlbnRpZmllciBmaWVsZCBpc27igJl0IHNldC4gUGxlYXNlIHNldCBvbmUgYmVmb3JlIGNhbGxpbmcgPG5neC1zbWFydC1tb2RhbD4gaW4gYSB0ZW1wbGF0ZS4nKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zZW5kRXZlbnQoJ2NyZWF0ZScpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcclxuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29udGVudENvbXBvbmVudCk7XHJcbiAgICAgIHRoaXMuY3JlYXRlRHluYW1pY0NvbnRlbnQodGhpcy5keW5hbWljQ29udGVudENvbnRhaW5lciwgZmFjdG9yeSk7XHJcbiAgICAgIHRoaXMuZHluYW1pY0NvbnRlbnRDb250YWluZXIuY2hhbmdlcy5zdWJzY3JpYmUoKGNvbnRlbnRWaWV3Q29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVEeW5hbWljQ29udGVudChjb250ZW50Vmlld0NvbnRhaW5lcnMsIGZhY3RvcnkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlbmRFdmVudCgnZGVsZXRlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIHRoZSBtb2RhbCBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRvcCBvcGVuIHRoZSBtb2RhbCB0b3Agb2YgYWxsIG90aGVyXHJcbiAgICogQHJldHVybnMgdGhlIG1vZGFsIGNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBvcGVuKHRvcD86IGJvb2xlYW4pOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcclxuICAgIHRoaXMuX3NlbmRFdmVudCgnb3BlbicsIHsgdG9wOiB0b3AgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSB0aGUgbW9kYWwgaW5zdGFuY2VcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRoZSBtb2RhbCBjb21wb25lbnRcclxuICAgKi9cclxuICBwdWJsaWMgY2xvc2UoKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICB0aGlzLl9zZW5kRXZlbnQoJ2Nsb3NlJyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNtaXNzIHRoZSBtb2RhbCBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGUgdGhlIGV2ZW50IHNlbnQgYnkgdGhlIGJyb3dzZXJcclxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIGRpc21pc3MoZTogYW55KTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzbWlzc2FibGUgfHwgIWUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnb3ZlcmxheScpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NlbmRFdmVudCgnZGlzbWlzcycpO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHZpc2liaWxpdHkgb2YgdGhlIG1vZGFsIGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdG9wIG9wZW4gdGhlIG1vZGFsIHRvcCBvZiBhbGwgb3RoZXJcclxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIHRvZ2dsZSh0b3A/OiBib29sZWFuKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICB0aGlzLl9zZW5kRXZlbnQoJ3RvZ2dsZScsIHsgdG9wOiB0b3AgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBjdXN0b20gY2xhc3MgdG8gdGhlIG1vZGFsIGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIHRoZSBjbGFzcyB0byBhZGRcclxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIGFkZEN1c3RvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICBpZiAoIXRoaXMuY3VzdG9tQ2xhc3MubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSBjbGFzc05hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1c3RvbUNsYXNzICs9ICcgJyArIGNsYXNzTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIGN1c3RvbSBjbGFzcyB0byB0aGUgbW9kYWwgaW5zdGFuY2VcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgdGhlIGNsYXNzIHRvIHJlbW92ZVxyXG4gICAqIEByZXR1cm5zIHRoZSBtb2RhbCBjb21wb25lbnRcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlQ3VzdG9tQ2xhc3MoY2xhc3NOYW1lPzogc3RyaW5nKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICBpZiAoY2xhc3NOYW1lKSB7XHJcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSB0aGlzLmN1c3RvbUNsYXNzLnJlcGxhY2UoY2xhc3NOYW1lLCAnJykudHJpbSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21DbGFzcyA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgbW9kYWwgaW5zdGFuY2VcclxuICAgKi9cclxuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiBkYXRhIGlzIGF0dGFjaGVkIHRvIHRoZSBtb2RhbCBpbnN0YW5jZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYXNEYXRhKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGEgIT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF0dGFjaCBkYXRhIHRvIHRoZSBtb2RhbCBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRhdGEgdGhlIGRhdGEgdG8gYXR0YWNoXHJcbiAgICogQHBhcmFtIGZvcmNlIG92ZXJyaWRlIHBvdGVudGlhbGx5IGF0dGFjaGVkIGRhdGFcclxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIHNldERhdGEoZGF0YTogYW55LCBmb3JjZT86IGJvb2xlYW4pOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcclxuICAgIGlmICghdGhpcy5oYXNEYXRhKCkgfHwgKHRoaXMuaGFzRGF0YSgpICYmIGZvcmNlKSkge1xyXG4gICAgICB0aGlzLl9kYXRhID0gZGF0YTtcclxuICAgICAgdGhpcy5vbkRhdGFBZGRlZC5lbWl0KHRoaXMuX2RhdGEpO1xyXG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgdGhlIGRhdGEgYXR0YWNoZWQgdG8gdGhlIG1vZGFsIGluc3RhbmNlXHJcbiAgICovXHJcbiAgcHVibGljIGdldERhdGEoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBkYXRhIGF0dGFjaGVkIHRvIHRoZSBtb2RhbCBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHJldHVybnMgdGhlIG1vZGFsIGNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVEYXRhKCk6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQge1xyXG4gICAgdGhpcy5fZGF0YSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMub25EYXRhUmVtb3ZlZC5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBib2R5IGNsYXNzIG1vZGFsIG9wZW5lZFxyXG4gICAqXHJcbiAgICogQHJldHVybnMgdGhlIG1vZGFsIGNvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRCb2R5Q2xhc3MoKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9kb2N1bWVudC5ib2R5LCBOdGtTbWFydE1vZGFsQ29uZmlnLmJvZHlDbGFzc09wZW4pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGJvZHkgY2xhc3MgbW9kYWwgb3BlbmVkXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUJvZHlDbGFzcygpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcclxuICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2RvY3VtZW50LmJvZHksIE50a1NtYXJ0TW9kYWxDb25maWcuYm9keUNsYXNzT3Blbik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWFya0ZvckNoZWNrKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGVucyBmb3Igd2luZG93IHJlc2l6ZSBldmVudCBhbmQgcmVjYWxjdWxhdGVzIG1vZGFsIGluc3RhbmNlIHBvc2l0aW9uIGlmIGl0IGlzIGVsZW1lbnQtcmVsYXRpdmVcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICBwdWJsaWMgdGFyZ2V0UGxhY2VtZW50KCk6IGJvb2xlYW4gfCB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgIXRoaXMubnNtRGlhbG9nLmxlbmd0aCB8fCAhdGhpcy5uc21Db250ZW50Lmxlbmd0aCB8fCAhdGhpcy5uc21PdmVybGF5Lmxlbmd0aCB8fCAhdGhpcy50YXJnZXQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy50YXJnZXQpO1xyXG5cclxuICAgIGlmICghdGFyZ2V0RWxlbWVudCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudFJlY3QgPSB0YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgYm9keVJlY3QgPSB0aGlzLm5zbU92ZXJsYXkuZmlyc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICBjb25zdCBuc21Db250ZW50UmVjdCA9IHRoaXMubnNtQ29udGVudC5maXJzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgbnNtRGlhbG9nUmVjdCA9IHRoaXMubnNtRGlhbG9nLmZpcnN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgY29uc3QgbWFyZ2luTGVmdCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5uc21Db250ZW50LmZpcnN0Lm5hdGl2ZUVsZW1lbnQpLm1hcmdpbkxlZnQgYXMgYW55LCAxMCk7XHJcbiAgICBjb25zdCBtYXJnaW5Ub3AgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRoaXMubnNtQ29udGVudC5maXJzdC5uYXRpdmVFbGVtZW50KS5tYXJnaW5Ub3AgYXMgYW55LCAxMCk7XHJcblxyXG4gICAgbGV0IG9mZnNldFRvcCA9IHRhcmdldEVsZW1lbnRSZWN0LnRvcCAtIG5zbURpYWxvZ1JlY3QudG9wIC0gKChuc21Db250ZW50UmVjdC5oZWlnaHQgLSB0YXJnZXRFbGVtZW50UmVjdC5oZWlnaHQpIC8gMik7XHJcbiAgICBsZXQgb2Zmc2V0TGVmdCA9IHRhcmdldEVsZW1lbnRSZWN0LmxlZnQgLSBuc21EaWFsb2dSZWN0LmxlZnQgLSAoKG5zbUNvbnRlbnRSZWN0LndpZHRoIC0gdGFyZ2V0RWxlbWVudFJlY3Qud2lkdGgpIC8gMik7XHJcblxyXG4gICAgaWYgKG9mZnNldExlZnQgKyBuc21EaWFsb2dSZWN0LmxlZnQgKyBuc21Db250ZW50UmVjdC53aWR0aCArIChtYXJnaW5MZWZ0ICogMikgPiBib2R5UmVjdC53aWR0aCkge1xyXG4gICAgICBvZmZzZXRMZWZ0ID0gYm9keVJlY3Qud2lkdGggLSAobnNtRGlhbG9nUmVjdC5sZWZ0ICsgbnNtQ29udGVudFJlY3Qud2lkdGgpIC0gKG1hcmdpbkxlZnQgKiAyKTtcclxuICAgIH0gZWxzZSBpZiAob2Zmc2V0TGVmdCArIG5zbURpYWxvZ1JlY3QubGVmdCA8IDApIHtcclxuICAgICAgb2Zmc2V0TGVmdCA9IC1uc21EaWFsb2dSZWN0LmxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9mZnNldFRvcCArIG5zbURpYWxvZ1JlY3QudG9wICsgbnNtQ29udGVudFJlY3QuaGVpZ2h0ICsgbWFyZ2luVG9wID4gYm9keVJlY3QuaGVpZ2h0KSB7XHJcbiAgICAgIG9mZnNldFRvcCA9IGJvZHlSZWN0LmhlaWdodCAtIChuc21EaWFsb2dSZWN0LnRvcCArIG5zbUNvbnRlbnRSZWN0LmhlaWdodCkgLSBtYXJnaW5Ub3A7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5uc21Db250ZW50LmZpcnN0Lm5hdGl2ZUVsZW1lbnQsICd0b3AnLCAob2Zmc2V0VG9wIDwgMCA/IDAgOiBvZmZzZXRUb3ApICsgJ3B4Jyk7XHJcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm5zbUNvbnRlbnQuZmlyc3QubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBvZmZzZXRMZWZ0ICsgJ3B4Jyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZW5kRXZlbnQobmFtZTogc3RyaW5nLCBleHRyYURhdGE/OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGV4dHJhRGF0YTogZXh0cmFEYXRhLFxyXG4gICAgICBpbnN0YW5jZTogeyBpZDogdGhpcy5pZGVudGlmaWVyLCBtb2RhbDogdGhpcyB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KE50a1NtYXJ0TW9kYWxDb25maWcucHJlZml4RXZlbnQgKyBuYW1lLCB7IGRldGFpbDogZGF0YSB9KTtcclxuXHJcbiAgICByZXR1cm4gd2luZG93LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXMgY3VycmVudCBwbGF0Zm9ybSBicm93c2VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXQgaXNCcm93c2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuX3BsYXRmb3JtSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBjb250ZW50IGluc2lkZSBwcm92aWRlZCBWaWV3Q29udGFpbmVyUmVmXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVEeW5hbWljQ29udGVudChjaGFuZ2VzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4sIGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Q29tcG9uZW50Pik6IHZvaWQge1xyXG4gICAgY2hhbmdlcy5mb3JFYWNoKCh2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSA9PiB7XHJcbiAgICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgICAgdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvVm9sdW1lcy93b3JrL1NvdXJjZUthcmF2aS9HaXRIdWIvbnBtLW50ay1jbXMtYW5ndWxhci9wcm9qZWN0cy9uZ3gtbnRrLXNtYXJ0LW1vZHVsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kYWwvbnRrLXNtYXJ0LW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsd0JBQXdCLEVBRXhCLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ04sV0FBVyxFQUVYLFNBQVMsRUFFVCxZQUFZLEVBQ1osZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBMEMvRCxNQUFNLE9BQU8sc0JBQXNCO0lBNENqQyxZQUNVLFNBQW9CLEVBQ3BCLGtCQUFxQyxFQUNyQyx3QkFBa0QsRUFDaEMsU0FBYyxFQUNYLFdBQWdCO1FBSnJDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDWCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQWhEL0IsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZ0JBQVcsR0FBVywyQkFBMkIsQ0FBQztRQUNsRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsVUFBSyxHQUFZLElBQUksQ0FBQztRQUN0QixjQUFTLEdBQVcsR0FBRyxDQUFDO1FBQ3hCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFDckMsb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBQ3RDLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFdkIsa0JBQWEsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNuRSxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRSxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0MsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxrQkFBYSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2hFLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGVBQVUsR0FBRyxNQUFNLENBQUM7SUFldkIsQ0FBQztJQUVFLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsNEZBQTRGLENBQUMsQ0FBQztTQUMvRztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxxQkFBa0QsRUFBRSxFQUFFO2dCQUNwRyxJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLEdBQWE7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUMsQ0FBTTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxHQUFhO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxjQUFjLENBQUMsU0FBaUI7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1NBQzlCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUM7U0FDckM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGlCQUFpQixDQUFDLFNBQWtCO1FBQ3pDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkU7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxPQUFPLENBQUMsSUFBUyxFQUFFLEtBQWU7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWTtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVoRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZTtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUk7WUFDRixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFBQyxPQUFPLENBQUMsRUFBRTtTQUNYO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUVJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25ILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU3RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNuRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVqRixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV2RyxJQUFJLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNySCxJQUFJLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV0SCxJQUFJLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUM5RixVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzlGO2FBQU0sSUFBSSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDOUMsVUFBVSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUNsQztRQUVELElBQUksU0FBUyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN2RixTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN2RjtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWSxFQUFFLFNBQWU7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sSUFBSSxHQUFHO1lBQ1gsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUMvQyxDQUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsbUJBQW1CLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFZLFNBQVM7UUFDbkIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9CLENBQUMsT0FBb0MsRUFBRSxPQUFvQztRQUNyRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQWtDLEVBQUUsRUFBRTtZQUNyRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBN1ZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNUO2FBQ0Y7OztZQTlDQyxTQUFTO1lBZFQsaUJBQWlCO1lBR2pCLHdCQUF3Qjs0Q0EwR3JCLE1BQU0sU0FBQyxRQUFROzRDQUNmLE1BQU0sU0FBQyxXQUFXOzs7dUJBaERwQixLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3FCQUNMLEtBQUs7d0JBQ0wsS0FBSzs2QkFDTCxLQUFLOzhCQUNMLEtBQUs7c0JBQ0wsS0FBSzs0QkFFTCxNQUFNO3NCQUNOLE1BQU07OEJBQ04sTUFBTTt3QkFDTixNQUFNO2dDQUNOLE1BQU07OEJBQ04sTUFBTTtzQ0FDTixNQUFNO3FCQUNOLE1BQU07NkJBQ04sTUFBTTt1QkFDTixNQUFNOzBCQUNOLE1BQU07NEJBQ04sTUFBTTt5QkFXTixZQUFZLFNBQUMsWUFBWTt3QkFDekIsWUFBWSxTQUFDLFdBQVc7eUJBQ3hCLFlBQVksU0FBQyxZQUFZO3NDQUN6QixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7OEJBd016RCxZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5LFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb25maWcgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb25maWcnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ250ay1zbWFydC1tb2RhbCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cIm92ZXJsYXlWaXNpYmxlXCJcbiAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cInZpc2libGUgPyBsYXllclBvc2l0aW9uLTEgOiAtMVwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7J3RyYW5zcGFyZW50JzohYmFja2Ryb3AsICdvdmVybGF5Jzp0cnVlLCAnbnNtLW92ZXJsYXktb3Blbic6b3BlbmVkQ2xhc3N9XCJcbiAgICAgICAgIChjbGljayk9XCJkaXNtaXNzKCRldmVudClcIiAjbnNtT3ZlcmxheT5cbiAgICAgIDxkaXYgW3N0eWxlLnotaW5kZXhdPVwidmlzaWJsZSA/IGxheWVyUG9zaXRpb24gOiAtMVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnbnNtLWRpYWxvZycsIGN1c3RvbUNsYXNzLCBvcGVuZWRDbGFzcyA/ICduc20tZGlhbG9nLW9wZW4nOiAnbnNtLWRpYWxvZy1jbG9zZSddXCIgI25zbURpYWxvZ1xuICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJvcGVuZWRDbGFzcyA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5zbS1jb250ZW50XCIgI25zbUNvbnRlbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5zbS1ib2R5XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2R5bmFtaWNDb250ZW50PjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cImNsb3NhYmxlXCIgKGNsaWNrKT1cImNsb3NlKClcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cIm5zbS1kaWFsb2ctYnRuLWNsb3NlXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgaWQ9XCJMYXllcl8xXCIgeD1cIjBweFwiIHk9XCIwcHhcIiB2aWV3Qm94PVwiMCAwIDUxMiA1MTJcIlxuICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiByb2xlPVwiaW1nXCIgYXJpYS1sYWJlbGxlZGJ5PVwiY2xvc2VJY29uVGl0bGUgY2xvc2VJY29uRGVzY1wiPlxuICAgICAgICAgICAgICA8dGl0bGUgaWQ9XCJjbG9zZUljb25UaXRsZVwiPkNsb3NlIEljb248L3RpdGxlPlxuICAgICAgICAgICAgICA8ZGVzYyBpZD1cImNsb3NlSWNvbkRlc2NcIj5BIGxpZ2h0LWdyYXkgY2xvc2UgaWNvbiB1c2VkIHRvIGNsb3NlIHRoZSBtb2RhbDwvZGVzYz5cbiAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01MDUuOTQzLDYuMDU4Yy04LjA3Ny04LjA3Ny0yMS4xNzItOC4wNzctMjkuMjQ5LDBMNi4wNTgsNDc2LjY5M2MtOC4wNzcsOC4wNzctOC4wNzcsMjEuMTcyLDAsMjkuMjQ5ICAgIEMxMC4wOTYsNTA5Ljk4MiwxNS4zOSw1MTIsMjAuNjgzLDUxMmM1LjI5MywwLDEwLjU4Ni0yLjAxOSwxNC42MjUtNi4wNTlMNTA1Ljk0MywzNS4zMDYgICAgQzUxNC4wMTksMjcuMjMsNTE0LjAxOSwxNC4xMzUsNTA1Ljk0Myw2LjA1OHpcIlxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01MDUuOTQyLDQ3Ni42OTRMMzUuMzA2LDYuMDU5Yy04LjA3Ni04LjA3Ny0yMS4xNzItOC4wNzctMjkuMjQ4LDBjLTguMDc3LDguMDc2LTguMDc3LDIxLjE3MSwwLDI5LjI0OGw0NzAuNjM2LDQ3MC42MzYgICAgYzQuMDM4LDQuMDM5LDkuMzMyLDYuMDU4LDE0LjYyNSw2LjA1OGM1LjI5MywwLDEwLjU4Ny0yLjAxOSwxNC42MjQtNi4wNTdDNTE0LjAxOCw0OTcuODY2LDUxNC4wMTgsNDg0Ljc3MSw1MDUuOTQyLDQ3Ni42OTR6XCJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBOdGtTbWFydE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwdWJsaWMgY2xvc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZXNjYXBhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGRpc21pc3NhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGlkZW50aWZpZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICduc20tZGlhbG9nLWFuaW1hdGlvbi1mYWRlJztcbiAgQElucHV0KCkgcHVibGljIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGJhY2tkcm9wOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGZvcmNlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGhpZGVEZWxheTogbnVtYmVyID0gNTAwO1xuICBASW5wdXQoKSBwdWJsaWMgYXV0b3N0YXJ0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YXJnZXQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyByZWZvY3VzOiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgcHVibGljIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNsb3NlRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRGlzbWlzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EaXNtaXNzRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQW55Q2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25BbnlDbG9zZUV2ZW50RmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uT3BlbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25PcGVuRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRXNjYXBlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRhdGFBZGRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EYXRhUmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGNvbnRlbnRDb21wb25lbnQ6IFR5cGU8Q29tcG9uZW50PjtcbiAgcHVibGljIGxheWVyUG9zaXRpb246IG51bWJlciA9IDEwNDE7XG4gIHB1YmxpYyBvdmVybGF5VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbmVkQ2xhc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY3JlYXRlRnJvbSA9ICdodG1sJztcblxuICBwcml2YXRlIF9kYXRhOiBhbnk7XG5cbiAgQFZpZXdDaGlsZHJlbignbnNtQ29udGVudCcpIHByaXZhdGUgbnNtQ29udGVudDogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkcmVuKCduc21EaWFsb2cnKSBwdWJsaWMgbnNtRGlhbG9nOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIEBWaWV3Q2hpbGRyZW4oJ25zbU92ZXJsYXknKSBwcml2YXRlIG5zbU92ZXJsYXk6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgQFZpZXdDaGlsZHJlbignZHluYW1pY0NvbnRlbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgZHluYW1pY0NvbnRlbnRDb250YWluZXI6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm1JZDogYW55LFxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaWRlbnRpZmllciB8fCAhdGhpcy5pZGVudGlmaWVyLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpZGVudGlmaWVyIGZpZWxkIGlzbuKAmXQgc2V0LiBQbGVhc2Ugc2V0IG9uZSBiZWZvcmUgY2FsbGluZyA8bmd4LXNtYXJ0LW1vZGFsPiBpbiBhIHRlbXBsYXRlLicpO1xuICAgIH1cblxuICAgIHRoaXMuX3NlbmRFdmVudCgnY3JlYXRlJyk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRlbnRDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNvbnRlbnRDb21wb25lbnQpO1xuICAgICAgdGhpcy5jcmVhdGVEeW5hbWljQ29udGVudCh0aGlzLmR5bmFtaWNDb250ZW50Q29udGFpbmVyLCBmYWN0b3J5KTtcbiAgICAgIHRoaXMuZHluYW1pY0NvbnRlbnRDb250YWluZXIuY2hhbmdlcy5zdWJzY3JpYmUoKGNvbnRlbnRWaWV3Q29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlRHluYW1pY0NvbnRlbnQoY29udGVudFZpZXdDb250YWluZXJzLCBmYWN0b3J5KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZW5kRXZlbnQoJ2RlbGV0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIG1vZGFsIGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB0b3Agb3BlbiB0aGUgbW9kYWwgdG9wIG9mIGFsbCBvdGhlclxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgb3Blbih0b3A/OiBib29sZWFuKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XG4gICAgdGhpcy5fc2VuZEV2ZW50KCdvcGVuJywgeyB0b3A6IHRvcCB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBtb2RhbCBpbnN0YW5jZVxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XG4gICAgdGhpcy5fc2VuZEV2ZW50KCdjbG9zZScpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRGlzbWlzcyB0aGUgbW9kYWwgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIGUgdGhlIGV2ZW50IHNlbnQgYnkgdGhlIGJyb3dzZXJcbiAgICogQHJldHVybnMgdGhlIG1vZGFsIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIGRpc21pc3MoZTogYW55KTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XG4gICAgaWYgKCF0aGlzLmRpc21pc3NhYmxlIHx8ICFlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ292ZXJsYXknKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5fc2VuZEV2ZW50KCdkaXNtaXNzJyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdmlzaWJpbGl0eSBvZiB0aGUgbW9kYWwgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIHRvcCBvcGVuIHRoZSBtb2RhbCB0b3Agb2YgYWxsIG90aGVyXG4gICAqIEByZXR1cm5zIHRoZSBtb2RhbCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyB0b2dnbGUodG9wPzogYm9vbGVhbik6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQge1xuICAgIHRoaXMuX3NlbmRFdmVudCgndG9nZ2xlJywgeyB0b3A6IHRvcCB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGN1c3RvbSBjbGFzcyB0byB0aGUgbW9kYWwgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSB0aGUgY2xhc3MgdG8gYWRkXG4gICAqIEByZXR1cm5zIHRoZSBtb2RhbCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyBhZGRDdXN0b21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQge1xuICAgIGlmICghdGhpcy5jdXN0b21DbGFzcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSBjbGFzc05hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VzdG9tQ2xhc3MgKz0gJyAnICsgY2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGN1c3RvbSBjbGFzcyB0byB0aGUgbW9kYWwgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSB0aGUgY2xhc3MgdG8gcmVtb3ZlXG4gICAqIEByZXR1cm5zIHRoZSBtb2RhbCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVDdXN0b21DbGFzcyhjbGFzc05hbWU/OiBzdHJpbmcpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcbiAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICB0aGlzLmN1c3RvbUNsYXNzID0gdGhpcy5jdXN0b21DbGFzcy5yZXBsYWNlKGNsYXNzTmFtZSwgJycpLnRyaW0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXN0b21DbGFzcyA9ICcnO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIG1vZGFsIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGRhdGEgaXMgYXR0YWNoZWQgdG8gdGhlIG1vZGFsIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgaGFzRGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBkYXRhIHRvIHRoZSBtb2RhbCBpbnN0YW5jZVxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgZGF0YSB0byBhdHRhY2hcbiAgICogQHBhcmFtIGZvcmNlIG92ZXJyaWRlIHBvdGVudGlhbGx5IGF0dGFjaGVkIGRhdGFcbiAgICogQHJldHVybnMgdGhlIG1vZGFsIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIHNldERhdGEoZGF0YTogYW55LCBmb3JjZT86IGJvb2xlYW4pOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcbiAgICBpZiAoIXRoaXMuaGFzRGF0YSgpIHx8ICh0aGlzLmhhc0RhdGEoKSAmJiBmb3JjZSkpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgICAgdGhpcy5vbkRhdGFBZGRlZC5lbWl0KHRoaXMuX2RhdGEpO1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZGF0YSBhdHRhY2hlZCB0byB0aGUgbW9kYWwgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBnZXREYXRhKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRoZSBkYXRhIGF0dGFjaGVkIHRvIHRoZSBtb2RhbCBpbnN0YW5jZVxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgbW9kYWwgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRGF0YSgpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcbiAgICB0aGlzLl9kYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub25EYXRhUmVtb3ZlZC5lbWl0KHRydWUpO1xuICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYm9keSBjbGFzcyBtb2RhbCBvcGVuZWRcbiAgICpcbiAgICogQHJldHVybnMgdGhlIG1vZGFsIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIGFkZEJvZHlDbGFzcygpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9kb2N1bWVudC5ib2R5LCBOdGtTbWFydE1vZGFsQ29uZmlnLmJvZHlDbGFzc09wZW4pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGJvZHkgY2xhc3MgbW9kYWwgb3BlbmVkXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBtb2RhbCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVCb2R5Q2xhc3MoKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZG9jdW1lbnQuYm9keSwgTnRrU21hcnRNb2RhbENvbmZpZy5ib2R5Q2xhc3NPcGVuKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICB9XG5cbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW5zIGZvciB3aW5kb3cgcmVzaXplIGV2ZW50IGFuZCByZWNhbGN1bGF0ZXMgbW9kYWwgaW5zdGFuY2UgcG9zaXRpb24gaWYgaXQgaXMgZWxlbWVudC1yZWxhdGl2ZVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHB1YmxpYyB0YXJnZXRQbGFjZW1lbnQoKTogYm9vbGVhbiB8IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgIXRoaXMubnNtRGlhbG9nLmxlbmd0aCB8fCAhdGhpcy5uc21Db250ZW50Lmxlbmd0aCB8fCAhdGhpcy5uc21PdmVybGF5Lmxlbmd0aCB8fCAhdGhpcy50YXJnZXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy50YXJnZXQpO1xuXG4gICAgaWYgKCF0YXJnZXRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudFJlY3QgPSB0YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGJvZHlSZWN0ID0gdGhpcy5uc21PdmVybGF5LmZpcnN0Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBuc21Db250ZW50UmVjdCA9IHRoaXMubnNtQ29udGVudC5maXJzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG5zbURpYWxvZ1JlY3QgPSB0aGlzLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgbWFyZ2luTGVmdCA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGhpcy5uc21Db250ZW50LmZpcnN0Lm5hdGl2ZUVsZW1lbnQpLm1hcmdpbkxlZnQgYXMgYW55LCAxMCk7XG4gICAgY29uc3QgbWFyZ2luVG9wID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm5zbUNvbnRlbnQuZmlyc3QubmF0aXZlRWxlbWVudCkubWFyZ2luVG9wIGFzIGFueSwgMTApO1xuXG4gICAgbGV0IG9mZnNldFRvcCA9IHRhcmdldEVsZW1lbnRSZWN0LnRvcCAtIG5zbURpYWxvZ1JlY3QudG9wIC0gKChuc21Db250ZW50UmVjdC5oZWlnaHQgLSB0YXJnZXRFbGVtZW50UmVjdC5oZWlnaHQpIC8gMik7XG4gICAgbGV0IG9mZnNldExlZnQgPSB0YXJnZXRFbGVtZW50UmVjdC5sZWZ0IC0gbnNtRGlhbG9nUmVjdC5sZWZ0IC0gKChuc21Db250ZW50UmVjdC53aWR0aCAtIHRhcmdldEVsZW1lbnRSZWN0LndpZHRoKSAvIDIpO1xuXG4gICAgaWYgKG9mZnNldExlZnQgKyBuc21EaWFsb2dSZWN0LmxlZnQgKyBuc21Db250ZW50UmVjdC53aWR0aCArIChtYXJnaW5MZWZ0ICogMikgPiBib2R5UmVjdC53aWR0aCkge1xuICAgICAgb2Zmc2V0TGVmdCA9IGJvZHlSZWN0LndpZHRoIC0gKG5zbURpYWxvZ1JlY3QubGVmdCArIG5zbUNvbnRlbnRSZWN0LndpZHRoKSAtIChtYXJnaW5MZWZ0ICogMik7XG4gICAgfSBlbHNlIGlmIChvZmZzZXRMZWZ0ICsgbnNtRGlhbG9nUmVjdC5sZWZ0IDwgMCkge1xuICAgICAgb2Zmc2V0TGVmdCA9IC1uc21EaWFsb2dSZWN0LmxlZnQ7XG4gICAgfVxuXG4gICAgaWYgKG9mZnNldFRvcCArIG5zbURpYWxvZ1JlY3QudG9wICsgbnNtQ29udGVudFJlY3QuaGVpZ2h0ICsgbWFyZ2luVG9wID4gYm9keVJlY3QuaGVpZ2h0KSB7XG4gICAgICBvZmZzZXRUb3AgPSBib2R5UmVjdC5oZWlnaHQgLSAobnNtRGlhbG9nUmVjdC50b3AgKyBuc21Db250ZW50UmVjdC5oZWlnaHQpIC0gbWFyZ2luVG9wO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMubnNtQ29udGVudC5maXJzdC5uYXRpdmVFbGVtZW50LCAndG9wJywgKG9mZnNldFRvcCA8IDAgPyAwIDogb2Zmc2V0VG9wKSArICdweCcpO1xuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMubnNtQ29udGVudC5maXJzdC5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIG9mZnNldExlZnQgKyAncHgnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbmRFdmVudChuYW1lOiBzdHJpbmcsIGV4dHJhRGF0YT86IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgZXh0cmFEYXRhOiBleHRyYURhdGEsXG4gICAgICBpbnN0YW5jZTogeyBpZDogdGhpcy5pZGVudGlmaWVyLCBtb2RhbDogdGhpcyB9XG4gICAgfTtcblxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KE50a1NtYXJ0TW9kYWxDb25maWcucHJlZml4RXZlbnQgKyBuYW1lLCB7IGRldGFpbDogZGF0YSB9KTtcblxuICAgIHJldHVybiB3aW5kb3cuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogSXMgY3VycmVudCBwbGF0Zm9ybSBicm93c2VyXG4gICAqL1xuICBwcml2YXRlIGdldCBpc0Jyb3dzZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuX3BsYXRmb3JtSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgY29udGVudCBpbnNpZGUgcHJvdmlkZWQgVmlld0NvbnRhaW5lclJlZlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEeW5hbWljQ29udGVudChjaGFuZ2VzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4sIGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8Q29tcG9uZW50Pik6IHZvaWQge1xuICAgIGNoYW5nZXMuZm9yRWFjaCgodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikgPT4ge1xuICAgICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=

@@ -5,2 +5,2 @@ export const NtkSmartModalConfig = {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGFsL250ay1zbWFydC1tb2RhbC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsYUFBYSxFQUFFLGFBQWE7SUFDNUIsV0FBVyxFQUFFLGtCQUFrQjtDQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE50a1NtYXJ0TW9kYWxDb25maWcgPSB7XHJcbiAgICBib2R5Q2xhc3NPcGVuOiAnZGlhbG9nLW9wZW4nLFxyXG4gICAgcHJlZml4RXZlbnQ6ICdudGstc21hcnQtbW9kYWwuJ1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTnRrU21hcnRNb2RhbE9wdGlvbnMge1xyXG4gICAgY2xvc2FibGU/OiBib29sZWFuO1xyXG4gICAgZXNjYXBhYmxlPzogYm9vbGVhbjtcclxuICAgIGRpc21pc3NhYmxlPzogYm9vbGVhbjtcclxuICAgIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gICAgYmFja2Ryb3A/OiBib29sZWFuO1xyXG4gICAgZm9yY2U/OiBib29sZWFuO1xyXG4gICAgaGlkZURlbGF5PzogbnVtYmVyO1xyXG4gICAgYXV0b3N0YXJ0PzogYm9vbGVhbjtcclxuICAgIHRhcmdldD86IHN0cmluZztcclxuICAgIGFyaWFMYWJlbD86IHN0cmluZztcclxuICAgIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xyXG4gICAgYXJpYURlc2NyaWJlZEJ5Pzogc3RyaW5nO1xyXG4gICAgcmVmb2N1cz86IGJvb2xlYW47XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIvVm9sdW1lcy93b3JrL1NvdXJjZUthcmF2aS9HaXRIdWIvbnBtLW50ay1jbXMtYW5ndWxhci9wcm9qZWN0cy9uZ3gtbnRrLXNtYXJ0LW1vZHVsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kYWwvbnRrLXNtYXJ0LW1vZGFsLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixhQUFhLEVBQUUsYUFBYTtJQUM1QixXQUFXLEVBQUUsa0JBQWtCO0NBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTnRrU21hcnRNb2RhbENvbmZpZyA9IHtcbiAgICBib2R5Q2xhc3NPcGVuOiAnZGlhbG9nLW9wZW4nLFxuICAgIHByZWZpeEV2ZW50OiAnbnRrLXNtYXJ0LW1vZGFsLidcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU50a1NtYXJ0TW9kYWxPcHRpb25zIHtcbiAgICBjbG9zYWJsZT86IGJvb2xlYW47XG4gICAgZXNjYXBhYmxlPzogYm9vbGVhbjtcbiAgICBkaXNtaXNzYWJsZT86IGJvb2xlYW47XG4gICAgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gICAgYmFja2Ryb3A/OiBib29sZWFuO1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICBoaWRlRGVsYXk/OiBudW1iZXI7XG4gICAgYXV0b3N0YXJ0PzogYm9vbGVhbjtcbiAgICB0YXJnZXQ/OiBzdHJpbmc7XG4gICAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAgIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuICAgIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZztcbiAgICByZWZvY3VzPzogYm9vbGVhbjtcbn1cbiJdfQ==

@@ -39,2 +39,2 @@ import { CommonModule } from '@angular/common';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGFsL250ay1zbWFydC1tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBT2pFLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixTQUFTLEVBQUU7Z0JBQ1Qsb0JBQW9CO2dCQUNwQix5QkFBeUI7YUFDMUI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFO2dCQUNULG9CQUFvQjtnQkFDcEIseUJBQXlCO2FBQzFCO1NBQ0YsQ0FBQztJQUNKLENBQUM7OztZQTlCRixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOdGtTbWFydE1vZGFsU3RhY2tTZXJ2aWNlIH0gZnJvbSAnLi9udGstc21hcnQtbW9kYWwtc3RhY2suc2VydmljZSc7XHJcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOdGtTbWFydE1vZGFsU2VydmljZSB9IGZyb20gJy4vbnRrLXNtYXJ0LW1vZGFsLnNlcnZpY2UnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtOdGtTbWFydE1vZGFsQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbTnRrU21hcnRNb2RhbENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOdGtTbWFydE1vZGFsTW9kdWxlIHtcclxuICAvKipcclxuICAgKiBVc2UgaW4gQXBwTW9kdWxlOiBuZXcgaW5zdGFuY2Ugb2YgTnRrU21hcnRNb2RhbC5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOdGtTbWFydE1vZGFsTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTnRrU21hcnRNb2RhbE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgTnRrU21hcnRNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgTnRrU21hcnRNb2RhbFN0YWNrU2VydmljZVxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZSBpbiBmZWF0dXJlcyBtb2R1bGVzIHdpdGggbGF6eSBsb2FkaW5nOiBuZXcgaW5zdGFuY2Ugb2YgTnRrU21hcnRNb2RhbC5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGZvckNoaWxkKCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TnRrU21hcnRNb2RhbE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IE50a1NtYXJ0TW9kYWxNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIE50a1NtYXJ0TW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIE50a1NtYXJ0TW9kYWxTdGFja1NlcnZpY2VcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvVm9sdW1lcy93b3JrL1NvdXJjZUthcmF2aS9HaXRIdWIvbnBtLW50ay1jbXMtYW5ndWxhci9wcm9qZWN0cy9uZ3gtbnRrLXNtYXJ0LW1vZHVsZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbW9kYWwvbnRrLXNtYXJ0LW1vZGFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPakUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRTtnQkFDVCxvQkFBb0I7Z0JBQ3BCLHlCQUF5QjthQUMxQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPO1lBQ0wsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixTQUFTLEVBQUU7Z0JBQ1Qsb0JBQW9CO2dCQUNwQix5QkFBeUI7YUFDMUI7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBOUJGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnRrU21hcnRNb2RhbFN0YWNrU2VydmljZSB9IGZyb20gJy4vbnRrLXNtYXJ0LW1vZGFsLXN0YWNrLnNlcnZpY2UnO1xuaW1wb3J0IHsgTnRrU21hcnRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbnRrLXNtYXJ0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdGtTbWFydE1vZGFsU2VydmljZSB9IGZyb20gJy4vbnRrLXNtYXJ0LW1vZGFsLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOdGtTbWFydE1vZGFsQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW050a1NtYXJ0TW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTnRrU21hcnRNb2RhbE1vZHVsZSB7XG4gIC8qKlxuICAgKiBVc2UgaW4gQXBwTW9kdWxlOiBuZXcgaW5zdGFuY2Ugb2YgTnRrU21hcnRNb2RhbC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE50a1NtYXJ0TW9kYWxNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE50a1NtYXJ0TW9kYWxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTnRrU21hcnRNb2RhbFNlcnZpY2UsXG4gICAgICAgIE50a1NtYXJ0TW9kYWxTdGFja1NlcnZpY2VcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgaW4gZmVhdHVyZXMgbW9kdWxlcyB3aXRoIGxhenkgbG9hZGluZzogbmV3IGluc3RhbmNlIG9mIE50a1NtYXJ0TW9kYWwuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvckNoaWxkKCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TnRrU21hcnRNb2RhbE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTnRrU21hcnRNb2RhbE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBOdGtTbWFydE1vZGFsU2VydmljZSxcbiAgICAgICAgTnRrU21hcnRNb2RhbFN0YWNrU2VydmljZVxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=

@@ -453,2 +453,2 @@ import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Inject, TemplateRef, Type, PLATFORM_ID } from '@angular/core';

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC9udGstc21hcnQtbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsUUFBUSxFQUVSLE1BQU0sRUFDTixXQUFXLEVBQ1gsSUFBSSxFQUNKLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUF5QixtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS3RGLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFDVSx5QkFBbUQsRUFDbkQsT0FBdUIsRUFDdkIsU0FBbUIsRUFDbkIsV0FBc0MsRUFDdEMsY0FBOEIsRUFDWixTQUFjLEVBQ1gsV0FBZ0I7UUFOckMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUEyQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ1gsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUE4Wi9DOzs7V0FHRztRQUNLLHlCQUFvQixHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQ3RELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7Z0JBQzFCLElBQUk7b0JBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBRXZDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO3dCQUNwQixPQUFPLEtBQUssQ0FBQztxQkFDZDtvQkFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBRXhCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNWLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQTtRQVNEOzs7V0FHRztRQUNLLG9CQUFlLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDakQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRTtnQkFDdkIsSUFBSTtvQkFDRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFFdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO3dCQUN6RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQzt3QkFDeEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO3FCQUM3QztvQkFFRCxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixPQUFPLEtBQUssQ0FBQztpQkFDZDthQUNGO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUE7UUFsZEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksUUFBUSxDQUFDLGFBQTRCLEVBQUUsS0FBZTtRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsRUFBVTtRQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLElBQUksQ0FBQyxFQUFVLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsRUFBVTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBdUIsRUFBRSxFQUFFO1lBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxFQUFVLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsRUFBVTtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFlBQVksQ0FBQyxJQUFTLEVBQUUsRUFBVSxFQUFFLEtBQWU7UUFDeEQsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3BCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUMsRUFBVTtRQUM1QixJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDcEIsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDcEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGNBQWMsQ0FBQyxFQUFVO1FBQzlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUM5RSxNQUFNLE9BQU8sR0FBUSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBSSxFQUFVLEVBQUUsT0FBbUIsRUFBRSxVQUFpQyxFQUFFO1FBQ25GLElBQUk7WUFDRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDeEcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWxELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRXhFLElBQUksT0FBTyxZQUFZLElBQUksRUFBRTtnQkFDM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7YUFDbEQ7WUFFRCxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDdEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBRTdDLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQUU7WUFDakcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO2dCQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFBRTtZQUNwRyxJQUFJLE9BQU8sT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7Z0JBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQzthQUFFO1lBQzFHLElBQUksT0FBTyxPQUFPLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRTtnQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQUU7WUFDekcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFBRTtZQUNqRyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzthQUFFO1lBQ3hGLElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRTtnQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO2FBQUU7WUFDbkcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO2dCQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFBRTtZQUNwRyxJQUFJLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUFFO1lBQzFGLElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsRUFBRTtnQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO2FBQUU7WUFDbkcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxjQUFjLEtBQUssUUFBUSxFQUFFO2dCQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7YUFBRTtZQUNsSCxJQUFJLE9BQU8sT0FBTyxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUU7Z0JBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQzthQUFFO1lBQ3JILElBQUksT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQUU7WUFFOUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRS9DLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7WUFDNUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXpDLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsV0FBVyxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBa0IsQ0FBQyxDQUFDO1FBRXJCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFjLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFrQixDQUFDLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFO1lBQ3BGLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFrQixDQUFDLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFdBQVcsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFrQixDQUFDLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFO1lBQ3JGLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFrQixDQUFDLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFdBQVcsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFrQixDQUFDLENBQUM7UUFFckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUU1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxVQUFVLENBQUMsYUFBNEI7UUFDN0MsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4RCxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUE2QixFQUFFLEdBQWE7UUFDN0QsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUVqRCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMxRDtRQUVELElBQUksR0FBRyxFQUFFO1lBQ1AsS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDN0M7UUFFRCxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckIsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDNUIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXJCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUV6QixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN6QjtZQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ25FLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25FLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZFLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUU1QyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBNkIsRUFBRSxHQUFhO1FBQy9ELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQTZCO1FBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3RCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxLQUFLLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzdEO1FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN0QixLQUFLLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM3QixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hFLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQixLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBNkI7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDdEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzFCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxLQUFLLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM3QixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sWUFBWSxDQUFDLGFBQTRCO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ2hDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssaUJBQWlCLENBQUksT0FBbUI7UUFDOUMsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNwQjtRQUVELElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTtZQUNsQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QjtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQTJCRDs7T0FFRztJQUNILElBQVksU0FBUztRQUNuQixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7WUF2Y0YsVUFBVTs7O1lBbkJULHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsUUFBUTtZQVdELHlCQUF5QjtZQVpoQyxjQUFjOzRDQTRCWCxNQUFNLFNBQUMsUUFBUTs0Q0FDZixNQUFNLFNBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgSW5qZWN0YWJsZSxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgQXBwbGljYXRpb25SZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gIEluamVjdCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUeXBlLFxyXG4gIFBMQVRGT1JNX0lEXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5cclxuaW1wb3J0IHsgTW9kYWxJbnN0YW5jZSB9IGZyb20gJy4vbW9kYWwtaW5zdGFuY2UnO1xyXG5pbXBvcnQgeyBOdGtTbWFydE1vZGFsU3RhY2tTZXJ2aWNlIH0gZnJvbSAnLi9udGstc21hcnQtbW9kYWwtc3RhY2suc2VydmljZSc7XHJcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJTnRrU21hcnRNb2RhbE9wdGlvbnMsIE50a1NtYXJ0TW9kYWxDb25maWcgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb25maWcnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29udGVudDxUPiA9IHN0cmluZyB8IFRlbXBsYXRlUmVmPFQ+IHwgVHlwZTxUPjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE50a1NtYXJ0TW9kYWxTZXJ2aWNlIHtcclxuICBwcml2YXRlIGxhc3RFbGVtZW50Rm9jdXNlZDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX21vZGFsU3RhY2s6IE50a1NtYXJ0TW9kYWxTdGFja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIF9wbGF0Zm9ybUlkOiBhbnlcclxuICApIHtcclxuICAgIHRoaXMuX2FkZEV2ZW50cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgbmV3IG1vZGFsIGluc3RhbmNlLiBUaGlzIHN0ZXAgaXMgZXNzZW50aWFsIGFuZCBhbGxvd3MgdG8gcmV0cmlldmUgYW55IG1vZGFsIGF0IGFueSB0aW1lLlxyXG4gICAqIEl0IHN0b3JlcyBhbiBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbW9kYWwgaWRlbnRpZmllciBhbmQgdGhlIG1vZGFsIGl0c2VsZiBkaXJlY3RseSBpbiB0aGUgYG1vZGFsU3RhY2tgLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGFsSW5zdGFuY2UgVGhlIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBnaXZlbiBtb2RhbCBpZGVudGlmaWVyIGFuZCB0aGUgbW9kYWwgaXRzZWxmLlxyXG4gICAqIEBwYXJhbSBmb3JjZSBPcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBmb3JjZXMgdGhlIG92ZXJyaWRpbmcgb2YgbW9kYWwgaW5zdGFuY2UgaWYgaXQgYWxyZWFkeSBleGlzdHMuXHJcbiAgICogQHJldHVybnMgbm90aGluZyBzcGVjaWFsLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRNb2RhbChtb2RhbEluc3RhbmNlOiBNb2RhbEluc3RhbmNlLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGFsU3RhY2suYWRkTW9kYWwobW9kYWxJbnN0YW5jZSwgZm9yY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgYSBtb2RhbCBpbnN0YW5jZSBieSBpdHMgaWRlbnRpZmllci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXHJcbiAgICovXHJcbiAgcHVibGljIGdldE1vZGFsKGlkOiBzdHJpbmcpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmdldE1vZGFsKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFsaWFzIG9mIGBnZXRNb2RhbGAgdG8gcmV0cmlldmUgYSBtb2RhbCBpbnN0YW5jZSBieSBpdHMgaWRlbnRpZmllci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXHJcbiAgICovXHJcbiAgcHVibGljIGdldChpZDogc3RyaW5nKTogTnRrU21hcnRNb2RhbENvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRNb2RhbChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGEgZ2l2ZW4gbW9kYWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXHJcbiAgICogQHBhcmFtIGZvcmNlIFRlbGwgdGhlIG1vZGFsIHRvIG9wZW4gdG9wIG9mIGFsbCBvdGhlciBvcGVuZWQgbW9kYWxzXHJcbiAgICovXHJcbiAgcHVibGljIG9wZW4oaWQ6IHN0cmluZywgZm9yY2UgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZW5Nb2RhbCh0aGlzLmdldChpZCksIGZvcmNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlIGEgZ2l2ZW4gbW9kYWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXHJcbiAgICovXHJcbiAgcHVibGljIGNsb3NlKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jbG9zZU1vZGFsKHRoaXMuZ2V0KGlkKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSBhbGwgb3BlbmVkIG1vZGFsc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBjbG9zZUFsbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0T3BlbmVkTW9kYWxzKCkuZm9yRWFjaCgoaW5zdGFuY2U6IE1vZGFsSW5zdGFuY2UpID0+IHtcclxuICAgICAgdGhpcy5fY2xvc2VNb2RhbChpbnN0YW5jZS5tb2RhbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgYSBnaXZlbiBtb2RhbFxyXG4gICAqIElmIHRoZSByZXRyaWV2ZWQgbW9kYWwgaXMgb3BlbmVkIGl0IGNsb3NlcyBpdCwgZWxzZSBpdCBvcGVucyBpdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXHJcbiAgICogQHBhcmFtIGZvcmNlIFRlbGwgdGhlIG1vZGFsIHRvIG9wZW4gdG9wIG9mIGFsbCBvdGhlciBvcGVuZWQgbW9kYWxzXHJcbiAgICovXHJcbiAgcHVibGljIHRvZ2dsZShpZDogc3RyaW5nLCBmb3JjZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG9nZ2xlTW9kYWwodGhpcy5nZXQoaWQpLCBmb3JjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIGNyZWF0ZWQgbW9kYWxzLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgbW9kYWwgaW5zdGFuY2VzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRNb2RhbFN0YWNrKCk6IE1vZGFsSW5zdGFuY2VbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5nZXRNb2RhbFN0YWNrKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBhbGwgdGhlIG9wZW5lZCBtb2RhbHMuIEl0IGxvb2tzIGZvciBhbGwgbW9kYWwgaW5zdGFuY2VzIHdpdGggdGhlaXIgYHZpc2libGVgIHByb3BlcnR5IHNldCB0byBgdHJ1ZWAuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgb3BlbmVkIG1vZGFscy5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0T3BlbmVkTW9kYWxzKCk6IE1vZGFsSW5zdGFuY2VbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5nZXRPcGVuZWRNb2RhbHMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRoZSBvcGVuZWQgbW9kYWwgd2l0aCBoaWdoZXN0IHotaW5kZXguXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB0aGUgb3BlbmVkIG1vZGFsIHdpdGggaGlnaGVzdCB6LWluZGV4LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUb3BPcGVuZWRNb2RhbCgpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmdldFRvcE9wZW5lZE1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGhpZ2hlciBgei1pbmRleGAgdmFsdWUgYmV0d2VlbiBhbGwgdGhlIG1vZGFsIGluc3RhbmNlcy4gSXQgaXRlcmF0ZXMgb3ZlciB0aGUgYE1vZGFsU3RhY2tgIGFycmF5IGFuZFxyXG4gICAqIGNhbGN1bGF0ZXMgYSBoaWdoZXIgdmFsdWUgKGl0IHRha2VzIHRoZSBoaWdoZXN0IGluZGV4IHZhbHVlIGJldHdlZW4gYWxsIHRoZSBtb2RhbCBpbnN0YW5jZXMgYW5kIGFkZHMgMSkuXHJcbiAgICogVXNlIGl0IHRvIG1ha2UgYSBtb2RhbCBhcHBlYXIgZm9yZWdyb3VuZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIGEgaGlnaGVyIGluZGV4IGZyb20gYWxsIHRoZSBleGlzdGluZyBtb2RhbCBpbnN0YW5jZXMuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEhpZ2hlckluZGV4KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5nZXRIaWdoZXJJbmRleCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXQgZ2l2ZXMgdGhlIG51bWJlciBvZiBtb2RhbCBpbnN0YW5jZXMuIEl0J3MgaGVscGZ1bCB0byBrbm93IGlmIHRoZSBtb2RhbCBzdGFjayBpcyBlbXB0eSBvciBub3QuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB0aGUgbnVtYmVyIG9mIG1vZGFsIGluc3RhbmNlcy5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0TW9kYWxTdGFja0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5nZXRNb2RhbFN0YWNrQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIG1vZGFsIGluc3RhbmNlIGZyb20gdGhlIG1vZGFsIHN0YWNrLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBtb2RhbCBpZGVudGlmaWVyLlxyXG4gICAqIEByZXR1cm5zIHRoZSByZW1vdmVkIG1vZGFsIGluc3RhbmNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVNb2RhbChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RhbFN0YWNrLnJlbW92ZU1vZGFsKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFzc29jaWF0ZSBkYXRhIHRvIGFuIGlkZW50aWZpZWQgbW9kYWwuIElmIHRoZSBtb2RhbCBpc24ndCBhbHJlYWR5IGFzc29jaWF0ZWQgdG8gc29tZSBkYXRhLCBpdCBjcmVhdGVzIGEgbmV3XHJcbiAgICogZW50cnkgaW4gdGhlIGBtb2RhbERhdGFgIGFycmF5IHdpdGggaXRzIGBpZGAgYW5kIHRoZSBnaXZlbiBgZGF0YWAuIElmIHRoZSBtb2RhbCBhbHJlYWR5IGhhcyBkYXRhLCBpdCByZXdyaXRlc1xyXG4gICAqIHRoZW0gd2l0aCB0aGUgbmV3IG9uZXMuIEZpbmFsbHkgaWYgbm8gbW9kYWwgZm91bmQgaXQgcmV0dXJucyBhbiBlcnJvciBtZXNzYWdlIGluIHRoZSBjb25zb2xlIGFuZCBmYWxzZSB2YWx1ZVxyXG4gICAqIGFzIG1ldGhvZCBvdXRwdXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB5b3Ugd2FudCB0byBhc3NvY2lhdGUgdG8gdGhlIG1vZGFsLlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllci5cclxuICAgKiBAcGFyYW0gZm9yY2UgSWYgdHJ1ZSwgb3ZlcnJpZGVzIHRoZSBwcmV2aW91cyBzdG9yZWQgZGF0YSBpZiB0aGVyZSB3YXMuXHJcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gbW9kYWwgZXhpc3RzIGFuZCB0aGUgcHJvY2VzcyBoYXMgYmVlbiB0cmllZCwgZWl0aGVyIGZhbHNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRNb2RhbERhdGEoZGF0YTogYW55LCBpZDogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgIGxldCBpO1xyXG4gICAgaWYgKGkgPSB0aGlzLmdldChpZCkpIHtcclxuICAgICAgaS5zZXREYXRhKGRhdGEsIGZvcmNlKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBtb2RhbCBkYXRhIGJ5IGl0cyBpZGVudGlmaWVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBtb2RhbCBpZGVudGlmaWVyIHVzZWQgYXQgY3JlYXRpb24gdGltZS5cclxuICAgKiBAcmV0dXJucyB0aGUgYXNzb2NpYXRlZCBtb2RhbCBkYXRhLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRNb2RhbERhdGEoaWQ6IHN0cmluZyk6IGFueSB7XHJcbiAgICBsZXQgaTtcclxuICAgIGlmIChpID0gdGhpcy5nZXQoaWQpKSB7XHJcbiAgICAgIHJldHVybiBpLmdldERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSBkYXRhIGF0dGFjaGVkIHRvIGEgZ2l2ZW4gbW9kYWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxyXG4gICAqIEByZXR1cm5zIHRoZSByZW1vdmVkIGRhdGEgb3IgZmFsc2UgaWYgbW9kYWwgZG9lc24ndCBleGlzdC5cclxuICAgKi9cclxuICBwdWJsaWMgcmVzZXRNb2RhbERhdGEoaWQ6IHN0cmluZyk6IGFueSB8IGJvb2xlYW4ge1xyXG4gICAgaWYgKCEhdGhpcy5fbW9kYWxTdGFjay5nZXRNb2RhbFN0YWNrKCkuZmluZCgobzogTW9kYWxJbnN0YW5jZSkgPT4gby5pZCA9PT0gaWQpKSB7XHJcbiAgICAgIGNvbnN0IHJlbW92ZWQ6IGFueSA9IHRoaXMuZ2V0TW9kYWwoaWQpLmdldERhdGEoKTtcclxuICAgICAgdGhpcy5nZXRNb2RhbChpZCkucmVtb3ZlRGF0YSgpO1xyXG4gICAgICByZXR1cm4gcmVtb3ZlZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlIHRoZSBsYXRlc3Qgb3BlbmVkIG1vZGFsIGlmIGl0IGhhcyBiZWVuIGRlY2xhcmVkIGFzIGVzY2FwYWJsZVxyXG4gICAqIFVzaW5nIGEgZGVib3VuY2Ugc3lzdGVtIGJlY2F1c2Ugb25lIG9yIG1vcmUgbW9kYWxzIGNvdWxkIGJlIGxpc3RlbmluZ1xyXG4gICAqIGVzY2FwZSBrZXkgcHJlc3MgZXZlbnQuXHJcbiAgICovXHJcbiAgcHVibGljIGNsb3NlTGF0ZXN0TW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldFRvcE9wZW5lZE1vZGFsKCkuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBkeW5hbWljIE50a1NtYXJ0TW9kYWxDb21wb25lbnRcclxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxyXG4gICAqIEBwYXJhbSBjb250ZW50IFRoZSBtb2RhbCBjb250ZW50ICggc3RyaW5nLCB0ZW1wbGF0ZVJlZiBvciBDb21wb25lbnQgKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGU8VD4oaWQ6IHN0cmluZywgY29udGVudDogQ29udGVudDxUPiwgb3B0aW9uczogSU50a1NtYXJ0TW9kYWxPcHRpb25zID0ge30pIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldE1vZGFsKGlkKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShOdGtTbWFydE1vZGFsQ29tcG9uZW50KTtcclxuICAgICAgY29uc3QgbmdDb250ZW50ID0gdGhpcy5fcmVzb2x2ZU5nQ29udGVudChjb250ZW50KTtcclxuXHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuX2luamVjdG9yLCBuZ0NvbnRlbnQpO1xyXG5cclxuICAgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUeXBlKSB7XHJcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRlbnRDb21wb25lbnQgPSBjb250ZW50O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuaWRlbnRpZmllciA9IGlkO1xyXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlRnJvbSA9ICdzZXJ2aWNlJztcclxuXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5jbG9zYWJsZSA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jbG9zYWJsZSA9IG9wdGlvbnMuY2xvc2FibGU7IH1cclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmVzY2FwYWJsZSA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5lc2NhcGFibGUgPSBvcHRpb25zLmVzY2FwYWJsZTsgfVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZGlzbWlzc2FibGUgPT09ICdib29sZWFuJykgeyBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGlzbWlzc2FibGUgPSBvcHRpb25zLmRpc21pc3NhYmxlOyB9XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5jdXN0b21DbGFzcyA9PT0gJ3N0cmluZycpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLmN1c3RvbUNsYXNzID0gb3B0aW9ucy5jdXN0b21DbGFzczsgfVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYmFja2Ryb3AgPT09ICdib29sZWFuJykgeyBjb21wb25lbnRSZWYuaW5zdGFuY2UuYmFja2Ryb3AgPSBvcHRpb25zLmJhY2tkcm9wOyB9XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5mb3JjZSA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JjZSA9IG9wdGlvbnMuZm9yY2U7IH1cclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmhpZGVEZWxheSA9PT0gJ251bWJlcicpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLmhpZGVEZWxheSA9IG9wdGlvbnMuaGlkZURlbGF5OyB9XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hdXRvc3RhcnQgPT09ICdib29sZWFuJykgeyBjb21wb25lbnRSZWYuaW5zdGFuY2UuYXV0b3N0YXJ0ID0gb3B0aW9ucy5hdXRvc3RhcnQ7IH1cclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRhcmdldCA9PT0gJ3N0cmluZycpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLnRhcmdldCA9IG9wdGlvbnMudGFyZ2V0OyB9XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hcmlhTGFiZWwgPT09ICdzdHJpbmcnKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5hcmlhTGFiZWwgPSBvcHRpb25zLmFyaWFMYWJlbDsgfVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYXJpYUxhYmVsbGVkQnkgPT09ICdzdHJpbmcnKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5hcmlhTGFiZWxsZWRCeSA9IG9wdGlvbnMuYXJpYUxhYmVsbGVkQnk7IH1cclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmFyaWFEZXNjcmliZWRCeSA9PT0gJ3N0cmluZycpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLmFyaWFEZXNjcmliZWRCeSA9IG9wdGlvbnMuYXJpYURlc2NyaWJlZEJ5OyB9XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5yZWZvY3VzID09PSAnYm9vbGVhbicpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlZm9jdXMgPSBvcHRpb25zLnJlZm9jdXM7IH1cclxuXHJcbiAgICAgIHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcblxyXG4gICAgICBjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG5cclxuICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEV2ZW50cygpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKE50a1NtYXJ0TW9kYWxDb25maWcucHJlZml4RXZlbnQgKyAnY3JlYXRlJywgKChlOiBDdXN0b21FdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLl9pbml0TW9kYWwoZS5kZXRhaWwuaW5zdGFuY2UpO1xyXG4gICAgfSkgYXMgRXZlbnRMaXN0ZW5lcik7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICdkZWxldGUnLCAoKGU6IEN1c3RvbUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX2RlbGV0ZU1vZGFsKGUuZGV0YWlsLmluc3RhbmNlKTtcclxuICAgIH0pIGFzIEV2ZW50TGlzdGVuZXIpO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKE50a1NtYXJ0TW9kYWxDb25maWcucHJlZml4RXZlbnQgKyAnb3BlbicsICgoZTogQ3VzdG9tRXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5fb3Blbk1vZGFsKGUuZGV0YWlsLmluc3RhbmNlLm1vZGFsLCBlLmRldGFpbC50b3ApO1xyXG4gICAgfSkgYXMgRXZlbnRMaXN0ZW5lcik7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICd0b2dnbGUnLCAoKGU6IEN1c3RvbUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX3RvZ2dsZU1vZGFsKGUuZGV0YWlsLmluc3RhbmNlLm1vZGFsLCBlLmRldGFpbC50b3ApO1xyXG4gICAgfSkgYXMgRXZlbnRMaXN0ZW5lcik7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICdjbG9zZScsICgoZTogQ3VzdG9tRXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5fY2xvc2VNb2RhbChlLmRldGFpbC5pbnN0YW5jZS5tb2RhbCk7XHJcbiAgICB9KSBhcyBFdmVudExpc3RlbmVyKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihOdGtTbWFydE1vZGFsQ29uZmlnLnByZWZpeEV2ZW50ICsgJ2Rpc21pc3MnLCAoKGU6IEN1c3RvbUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuX2Rpc21pc3NNb2RhbChlLmRldGFpbC5pbnN0YW5jZS5tb2RhbCk7XHJcbiAgICB9KSBhcyBFdmVudExpc3RlbmVyKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9lc2NhcGVLZXlib2FyZEV2ZW50KTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRNb2RhbChtb2RhbEluc3RhbmNlOiBNb2RhbEluc3RhbmNlKSB7XHJcbiAgICBtb2RhbEluc3RhbmNlLm1vZGFsLmxheWVyUG9zaXRpb24gKz0gdGhpcy5nZXRNb2RhbFN0YWNrQ291bnQoKTtcclxuICAgIHRoaXMuYWRkTW9kYWwobW9kYWxJbnN0YW5jZSwgbW9kYWxJbnN0YW5jZS5tb2RhbC5mb3JjZSk7XHJcblxyXG4gICAgaWYgKG1vZGFsSW5zdGFuY2UubW9kYWwuYXV0b3N0YXJ0KSB7XHJcbiAgICAgIHRoaXMub3Blbihtb2RhbEluc3RhbmNlLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29wZW5Nb2RhbChtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudCwgdG9wPzogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKG1vZGFsLnZpc2libGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFzdEVsZW1lbnRGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpZiAobW9kYWwuZXNjYXBhYmxlKSB7XHJcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2VzY2FwZUtleWJvYXJkRXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChtb2RhbC5iYWNrZHJvcCkge1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX3RyYXBGb2N1c01vZGFsKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodG9wKSB7XHJcbiAgICAgIG1vZGFsLmxheWVyUG9zaXRpb24gPSB0aGlzLmdldEhpZ2hlckluZGV4KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbW9kYWwuYWRkQm9keUNsYXNzKCk7XHJcbiAgICBtb2RhbC5vdmVybGF5VmlzaWJsZSA9IHRydWU7XHJcbiAgICBtb2RhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIG1vZGFsLm9uT3Blbi5lbWl0KG1vZGFsKTtcclxuICAgIG1vZGFsLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBtb2RhbC5vcGVuZWRDbGFzcyA9IHRydWU7XHJcblxyXG4gICAgICBpZiAobW9kYWwudGFyZ2V0KSB7XHJcbiAgICAgICAgbW9kYWwudGFyZ2V0UGxhY2VtZW50KCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncm9sZScsICdkaWFsb2cnKTtcclxuICAgICAgbW9kYWwubnNtRGlhbG9nLmZpcnN0Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICctMScpO1xyXG4gICAgICBtb2RhbC5uc21EaWFsb2cuZmlyc3QubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbW9kYWwnLCAndHJ1ZScpO1xyXG4gICAgICBtb2RhbC5uc21EaWFsb2cuZmlyc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG5cclxuICAgICAgbW9kYWwubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIG1vZGFsLm9uT3BlbkZpbmlzaGVkLmVtaXQobW9kYWwpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90b2dnbGVNb2RhbChtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudCwgdG9wPzogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKG1vZGFsLnZpc2libGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2Nsb3NlTW9kYWwobW9kYWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX29wZW5Nb2RhbChtb2RhbCwgdG9wKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Nsb3NlTW9kYWwobW9kYWw6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQpOiBib29sZWFuIHtcclxuICAgIGlmICghbW9kYWwub3BlbmVkQ2xhc3MpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG1vZGFsLm9wZW5lZENsYXNzID0gZmFsc2U7XHJcbiAgICBtb2RhbC5vbkNsb3NlLmVtaXQobW9kYWwpO1xyXG4gICAgbW9kYWwub25BbnlDbG9zZUV2ZW50LmVtaXQobW9kYWwpO1xyXG5cclxuICAgIGlmICh0aGlzLmdldE9wZW5lZE1vZGFscygpLmxlbmd0aCA8IDIpIHtcclxuICAgICAgbW9kYWwucmVtb3ZlQm9keUNsYXNzKCk7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2VzY2FwZUtleWJvYXJkRXZlbnQpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX3RyYXBGb2N1c01vZGFsKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgbW9kYWwudmlzaWJsZUNoYW5nZS5lbWl0KG1vZGFsLnZpc2libGUpO1xyXG4gICAgICBtb2RhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIG1vZGFsLm92ZXJsYXlWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIG1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndGFiSW5kZXgnKTtcclxuICAgICAgbW9kYWwubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIG1vZGFsLm9uQ2xvc2VGaW5pc2hlZC5lbWl0KG1vZGFsKTtcclxuICAgICAgbW9kYWwub25BbnlDbG9zZUV2ZW50RmluaXNoZWQuZW1pdChtb2RhbCk7XHJcbiAgICAgIGlmIChtb2RhbC5yZWZvY3VzKSB7XHJcbiAgICAgICAgdGhpcy5sYXN0RWxlbWVudEZvY3VzZWQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSwgbW9kYWwuaGlkZURlbGF5KTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Rpc21pc3NNb2RhbChtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFtb2RhbC5vcGVuZWRDbGFzcykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbW9kYWwub3BlbmVkQ2xhc3MgPSBmYWxzZTtcclxuICAgIG1vZGFsLm9uRGlzbWlzcy5lbWl0KG1vZGFsKTtcclxuICAgIG1vZGFsLm9uQW55Q2xvc2VFdmVudC5lbWl0KG1vZGFsKTtcclxuXHJcbiAgICBpZiAodGhpcy5nZXRPcGVuZWRNb2RhbHMoKS5sZW5ndGggPCAyKSB7XHJcbiAgICAgIG1vZGFsLnJlbW92ZUJvZHlDbGFzcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBtb2RhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIG1vZGFsLnZpc2libGVDaGFuZ2UuZW1pdChtb2RhbC52aXNpYmxlKTtcclxuICAgICAgbW9kYWwub3ZlcmxheVZpc2libGUgPSBmYWxzZTtcclxuICAgICAgbW9kYWwubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIG1vZGFsLm9uRGlzbWlzc0ZpbmlzaGVkLmVtaXQobW9kYWwpO1xyXG4gICAgICBtb2RhbC5vbkFueUNsb3NlRXZlbnRGaW5pc2hlZC5lbWl0KG1vZGFsKTtcclxuICAgIH0sIG1vZGFsLmhpZGVEZWxheSk7XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWxldGVNb2RhbChtb2RhbEluc3RhbmNlOiBNb2RhbEluc3RhbmNlKSB7XHJcbiAgICB0aGlzLnJlbW92ZU1vZGFsKG1vZGFsSW5zdGFuY2UuaWQpO1xyXG5cclxuICAgIGlmICghdGhpcy5nZXRNb2RhbFN0YWNrKCkubGVuZ3RoKSB7XHJcbiAgICAgIG1vZGFsSW5zdGFuY2UubW9kYWwucmVtb3ZlQm9keUNsYXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlIGNvbnRlbnQgYWNjb3JkaW5nIHRvIHRoZSB0eXBlc1xyXG4gICAqIEBwYXJhbSBjb250ZW50IFRoZSBtb2RhbCBjb250ZW50ICggc3RyaW5nLCB0ZW1wbGF0ZVJlZiBvciBDb21wb25lbnQgKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3Jlc29sdmVOZ0NvbnRlbnQ8VD4oY29udGVudDogQ29udGVudDxUPik6IGFueVtdW10gfCBUZXh0W11bXSB7XHJcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcclxuICAgICAgcmV0dXJuIFtbZWxlbWVudF1dO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcclxuICAgICAgY29uc3Qgdmlld1JlZiA9IGNvbnRlbnQuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwgYXMgYW55KTtcclxuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KHZpZXdSZWYpO1xyXG4gICAgICByZXR1cm4gW3ZpZXdSZWYucm9vdE5vZGVzXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSB0aGUgbGF0ZXN0IG9wZW5lZCBtb2RhbCBpZiBlc2NhcGUga2V5IGV2ZW50IGlzIGVtaXR0ZWRcclxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIEtleWJvYXJkIEV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZXNjYXBlS2V5Ym9hcmRFdmVudCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBtb2RhbCA9IHRoaXMuZ2V0VG9wT3BlbmVkTW9kYWwoKTtcclxuXHJcbiAgICAgICAgaWYgKCFtb2RhbC5lc2NhcGFibGUpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1vZGFsLm9uRXNjYXBlLmVtaXQobW9kYWwpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VMYXRlc3RNb2RhbCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIElzIGN1cnJlbnQgcGxhdGZvcm0gYnJvd3NlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzQnJvd3NlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoaWxlIG1vZGFsIGlzIG9wZW4sIHRoZSBmb2N1cyBzdGF5IG9uIGl0XHJcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBLZXlib2FyIGRFdmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3RyYXBGb2N1c01vZGFsID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJykge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IG1vZGFsID0gdGhpcy5nZXRUb3BPcGVuZWRNb2RhbCgpO1xyXG5cclxuICAgICAgICBpZiAoIW1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XHJcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICBtb2RhbC5uc21EaWFsb2cuZmlyc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnRrLXNtYXJ0LW1vZGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1ZvbHVtZXMvd29yay9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGFsL250ay1zbWFydC1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxRQUFRLEVBRVIsTUFBTSxFQUNOLFdBQVcsRUFDWCxJQUFJLEVBQ0osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUk5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQXlCLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLdEYsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUNVLHlCQUFtRCxFQUNuRCxPQUF1QixFQUN2QixTQUFtQixFQUNuQixXQUFzQyxFQUN0QyxjQUE4QixFQUNaLFNBQWMsRUFDWCxXQUFnQjtRQU5yQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDWCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQThaL0M7OztXQUdHO1FBQ0sseUJBQW9CLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDdEQsSUFBSSxLQUFL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QyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxpQkFBaUIsQ0FBSSxPQUFtQjtRQUM5QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFXLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVCO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBMkJEOztPQUVHO0lBQ0gsSUFBWSxTQUFTO1FBQ25CLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OztZQXZjRixVQUFVOzs7WUFuQlQsd0JBQXdCO1lBQ3hCLGNBQWM7WUFDZCxRQUFRO1lBV0QseUJBQXlCO1lBWmhDLGNBQWM7NENBNEJYLE1BQU0sU0FBQyxRQUFROzRDQUNmLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBBcHBsaWNhdGlvblJlZixcbiAgSW5qZWN0b3IsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZSxcbiAgUExBVEZPUk1fSURcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cbmltcG9ydCB7IE1vZGFsSW5zdGFuY2UgfSBmcm9tICcuL21vZGFsLWluc3RhbmNlJztcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxTdGFja1NlcnZpY2UgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC1zdGFjay5zZXJ2aWNlJztcbmltcG9ydCB7IE50a1NtYXJ0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSU50a1NtYXJ0TW9kYWxPcHRpb25zLCBOdGtTbWFydE1vZGFsQ29uZmlnIH0gZnJvbSAnLi9udGstc21hcnQtbW9kYWwuY29uZmlnJztcblxuZXhwb3J0IHR5cGUgQ29udGVudDxUPiA9IHN0cmluZyB8IFRlbXBsYXRlUmVmPFQ+IHwgVHlwZTxUPjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE50a1NtYXJ0TW9kYWxTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsYXN0RWxlbWVudEZvY3VzZWQ6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9tb2RhbFN0YWNrOiBOdGtTbWFydE1vZGFsU3RhY2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm1JZDogYW55XG4gICkge1xuICAgIHRoaXMuX2FkZEV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBtb2RhbCBpbnN0YW5jZS4gVGhpcyBzdGVwIGlzIGVzc2VudGlhbCBhbmQgYWxsb3dzIHRvIHJldHJpZXZlIGFueSBtb2RhbCBhdCBhbnkgdGltZS5cbiAgICogSXQgc3RvcmVzIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBnaXZlbiBtb2RhbCBpZGVudGlmaWVyIGFuZCB0aGUgbW9kYWwgaXRzZWxmIGRpcmVjdGx5IGluIHRoZSBgbW9kYWxTdGFja2AuXG4gICAqXG4gICAqIEBwYXJhbSBtb2RhbEluc3RhbmNlIFRoZSBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gbW9kYWwgaWRlbnRpZmllciBhbmQgdGhlIG1vZGFsIGl0c2VsZi5cbiAgICogQHBhcmFtIGZvcmNlIE9wdGlvbmFsIHBhcmFtZXRlciB0aGF0IGZvcmNlcyB0aGUgb3ZlcnJpZGluZyBvZiBtb2RhbCBpbnN0YW5jZSBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cbiAgICogQHJldHVybnMgbm90aGluZyBzcGVjaWFsLlxuICAgKi9cbiAgcHVibGljIGFkZE1vZGFsKG1vZGFsSW5zdGFuY2U6IE1vZGFsSW5zdGFuY2UsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsU3RhY2suYWRkTW9kYWwobW9kYWxJbnN0YW5jZSwgZm9yY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGEgbW9kYWwgaW5zdGFuY2UgYnkgaXRzIGlkZW50aWZpZXIuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9kYWwoaWQ6IHN0cmluZyk6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmdldE1vZGFsKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGlhcyBvZiBgZ2V0TW9kYWxgIHRvIHJldHJpZXZlIGEgbW9kYWwgaW5zdGFuY2UgYnkgaXRzIGlkZW50aWZpZXIuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0KGlkOiBzdHJpbmcpOiBOdGtTbWFydE1vZGFsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5nZXRNb2RhbChpZCk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBhIGdpdmVuIG1vZGFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCBUaGUgbW9kYWwgaWRlbnRpZmllciB1c2VkIGF0IGNyZWF0aW9uIHRpbWUuXG4gICAqIEBwYXJhbSBmb3JjZSBUZWxsIHRoZSBtb2RhbCB0byBvcGVuIHRvcCBvZiBhbGwgb3RoZXIgb3BlbmVkIG1vZGFsc1xuICAgKi9cbiAgcHVibGljIG9wZW4oaWQ6IHN0cmluZywgZm9yY2UgPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuTW9kYWwodGhpcy5nZXQoaWQpLCBmb3JjZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYSBnaXZlbiBtb2RhbFxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VNb2RhbCh0aGlzLmdldChpZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGFsbCBvcGVuZWQgbW9kYWxzXG4gICAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRPcGVuZWRNb2RhbHMoKS5mb3JFYWNoKChpbnN0YW5jZTogTW9kYWxJbnN0YW5jZSkgPT4ge1xuICAgICAgdGhpcy5fY2xvc2VNb2RhbChpbnN0YW5jZS5tb2RhbCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyBhIGdpdmVuIG1vZGFsXG4gICAqIElmIHRoZSByZXRyaWV2ZWQgbW9kYWwgaXMgb3BlbmVkIGl0IGNsb3NlcyBpdCwgZWxzZSBpdCBvcGVucyBpdC5cbiAgICpcbiAgICogQHBhcmFtIGlkIFRoZSBtb2RhbCBpZGVudGlmaWVyIHVzZWQgYXQgY3JlYXRpb24gdGltZS5cbiAgICogQHBhcmFtIGZvcmNlIFRlbGwgdGhlIG1vZGFsIHRvIG9wZW4gdG9wIG9mIGFsbCBvdGhlciBvcGVuZWQgbW9kYWxzXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKGlkOiBzdHJpbmcsIGZvcmNlID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdG9nZ2xlTW9kYWwodGhpcy5nZXQoaWQpLCBmb3JjZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYWxsIHRoZSBjcmVhdGVkIG1vZGFscy5cbiAgICpcbiAgICogQHJldHVybnMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgbW9kYWwgaW5zdGFuY2VzLlxuICAgKi9cbiAgcHVibGljIGdldE1vZGFsU3RhY2soKTogTW9kYWxJbnN0YW5jZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5nZXRNb2RhbFN0YWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYWxsIHRoZSBvcGVuZWQgbW9kYWxzLiBJdCBsb29rcyBmb3IgYWxsIG1vZGFsIGluc3RhbmNlcyB3aXRoIHRoZWlyIGB2aXNpYmxlYCBwcm9wZXJ0eSBzZXQgdG8gYHRydWVgLlxuICAgKlxuICAgKiBAcmV0dXJucyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgb3BlbmVkIG1vZGFscy5cbiAgICovXG4gIHB1YmxpYyBnZXRPcGVuZWRNb2RhbHMoKTogTW9kYWxJbnN0YW5jZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5nZXRPcGVuZWRNb2RhbHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgb3BlbmVkIG1vZGFsIHdpdGggaGlnaGVzdCB6LWluZGV4LlxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgb3BlbmVkIG1vZGFsIHdpdGggaGlnaGVzdCB6LWluZGV4LlxuICAgKi9cbiAgcHVibGljIGdldFRvcE9wZW5lZE1vZGFsKCk6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmdldFRvcE9wZW5lZE1vZGFsKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBoaWdoZXIgYHotaW5kZXhgIHZhbHVlIGJldHdlZW4gYWxsIHRoZSBtb2RhbCBpbnN0YW5jZXMuIEl0IGl0ZXJhdGVzIG92ZXIgdGhlIGBNb2RhbFN0YWNrYCBhcnJheSBhbmRcbiAgICogY2FsY3VsYXRlcyBhIGhpZ2hlciB2YWx1ZSAoaXQgdGFrZXMgdGhlIGhpZ2hlc3QgaW5kZXggdmFsdWUgYmV0d2VlbiBhbGwgdGhlIG1vZGFsIGluc3RhbmNlcyBhbmQgYWRkcyAxKS5cbiAgICogVXNlIGl0IHRvIG1ha2UgYSBtb2RhbCBhcHBlYXIgZm9yZWdyb3VuZC5cbiAgICpcbiAgICogQHJldHVybnMgYSBoaWdoZXIgaW5kZXggZnJvbSBhbGwgdGhlIGV4aXN0aW5nIG1vZGFsIGluc3RhbmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXRIaWdoZXJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmdldEhpZ2hlckluZGV4KCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgZ2l2ZXMgdGhlIG51bWJlciBvZiBtb2RhbCBpbnN0YW5jZXMuIEl0J3MgaGVscGZ1bCB0byBrbm93IGlmIHRoZSBtb2RhbCBzdGFjayBpcyBlbXB0eSBvciBub3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBudW1iZXIgb2YgbW9kYWwgaW5zdGFuY2VzLlxuICAgKi9cbiAgcHVibGljIGdldE1vZGFsU3RhY2tDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9tb2RhbFN0YWNrLmdldE1vZGFsU3RhY2tDb3VudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIG1vZGFsIGluc3RhbmNlIGZyb20gdGhlIG1vZGFsIHN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHRoZSByZW1vdmVkIG1vZGFsIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZU1vZGFsKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFN0YWNrLnJlbW92ZU1vZGFsKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGUgZGF0YSB0byBhbiBpZGVudGlmaWVkIG1vZGFsLiBJZiB0aGUgbW9kYWwgaXNuJ3QgYWxyZWFkeSBhc3NvY2lhdGVkIHRvIHNvbWUgZGF0YSwgaXQgY3JlYXRlcyBhIG5ld1xuICAgKiBlbnRyeSBpbiB0aGUgYG1vZGFsRGF0YWAgYXJyYXkgd2l0aCBpdHMgYGlkYCBhbmQgdGhlIGdpdmVuIGBkYXRhYC4gSWYgdGhlIG1vZGFsIGFscmVhZHkgaGFzIGRhdGEsIGl0IHJld3JpdGVzXG4gICAqIHRoZW0gd2l0aCB0aGUgbmV3IG9uZXMuIEZpbmFsbHkgaWYgbm8gbW9kYWwgZm91bmQgaXQgcmV0dXJucyBhbiBlcnJvciBtZXNzYWdlIGluIHRoZSBjb25zb2xlIGFuZCBmYWxzZSB2YWx1ZVxuICAgKiBhcyBtZXRob2Qgb3V0cHV0LlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB5b3Ugd2FudCB0byBhc3NvY2lhdGUgdG8gdGhlIG1vZGFsLlxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIuXG4gICAqIEBwYXJhbSBmb3JjZSBJZiB0cnVlLCBvdmVycmlkZXMgdGhlIHByZXZpb3VzIHN0b3JlZCBkYXRhIGlmIHRoZXJlIHdhcy5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gbW9kYWwgZXhpc3RzIGFuZCB0aGUgcHJvY2VzcyBoYXMgYmVlbiB0cmllZCwgZWl0aGVyIGZhbHNlLlxuICAgKi9cbiAgcHVibGljIHNldE1vZGFsRGF0YShkYXRhOiBhbnksIGlkOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGxldCBpO1xuICAgIGlmIChpID0gdGhpcy5nZXQoaWQpKSB7XG4gICAgICBpLnNldERhdGEoZGF0YSwgZm9yY2UpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgbW9kYWwgZGF0YSBieSBpdHMgaWRlbnRpZmllci5cbiAgICpcbiAgICogQHBhcmFtIGlkIFRoZSBtb2RhbCBpZGVudGlmaWVyIHVzZWQgYXQgY3JlYXRpb24gdGltZS5cbiAgICogQHJldHVybnMgdGhlIGFzc29jaWF0ZWQgbW9kYWwgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2RhbERhdGEoaWQ6IHN0cmluZyk6IGFueSB7XG4gICAgbGV0IGk7XG4gICAgaWYgKGkgPSB0aGlzLmdldChpZCkpIHtcbiAgICAgIHJldHVybiBpLmdldERhdGEoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgZGF0YSBhdHRhY2hlZCB0byBhIGdpdmVuIG1vZGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxuICAgKiBAcmV0dXJucyB0aGUgcmVtb3ZlZCBkYXRhIG9yIGZhbHNlIGlmIG1vZGFsIGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICBwdWJsaWMgcmVzZXRNb2RhbERhdGEoaWQ6IHN0cmluZyk6IGFueSB8IGJvb2xlYW4ge1xuICAgIGlmICghIXRoaXMuX21vZGFsU3RhY2suZ2V0TW9kYWxTdGFjaygpLmZpbmQoKG86IE1vZGFsSW5zdGFuY2UpID0+IG8uaWQgPT09IGlkKSkge1xuICAgICAgY29uc3QgcmVtb3ZlZDogYW55ID0gdGhpcy5nZXRNb2RhbChpZCkuZ2V0RGF0YSgpO1xuICAgICAgdGhpcy5nZXRNb2RhbChpZCkucmVtb3ZlRGF0YSgpO1xuICAgICAgcmV0dXJuIHJlbW92ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIGxhdGVzdCBvcGVuZWQgbW9kYWwgaWYgaXQgaGFzIGJlZW4gZGVjbGFyZWQgYXMgZXNjYXBhYmxlXG4gICAqIFVzaW5nIGEgZGVib3VuY2Ugc3lzdGVtIGJlY2F1c2Ugb25lIG9yIG1vcmUgbW9kYWxzIGNvdWxkIGJlIGxpc3RlbmluZ1xuICAgKiBlc2NhcGUga2V5IHByZXNzIGV2ZW50LlxuICAgKi9cbiAgcHVibGljIGNsb3NlTGF0ZXN0TW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRUb3BPcGVuZWRNb2RhbCgpLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGR5bmFtaWMgTnRrU21hcnRNb2RhbENvbXBvbmVudFxuICAgKiBAcGFyYW0gaWQgVGhlIG1vZGFsIGlkZW50aWZpZXIgdXNlZCBhdCBjcmVhdGlvbiB0aW1lLlxuICAgKiBAcGFyYW0gY29udGVudCBUaGUgbW9kYWwgY29udGVudCAoIHN0cmluZywgdGVtcGxhdGVSZWYgb3IgQ29tcG9uZW50IClcbiAgICovXG4gIHB1YmxpYyBjcmVhdGU8VD4oaWQ6IHN0cmluZywgY29udGVudDogQ29udGVudDxUPiwgb3B0aW9uczogSU50a1NtYXJ0TW9kYWxPcHRpb25zID0ge30pIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TW9kYWwoaWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTnRrU21hcnRNb2RhbENvbXBvbmVudCk7XG4gICAgICBjb25zdCBuZ0NvbnRlbnQgPSB0aGlzLl9yZXNvbHZlTmdDb250ZW50KGNvbnRlbnQpO1xuXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3RvciwgbmdDb250ZW50KTtcblxuICAgICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUeXBlKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50Q29tcG9uZW50ID0gY29udGVudDtcbiAgICAgIH1cblxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmlkZW50aWZpZXIgPSBpZDtcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jcmVhdGVGcm9tID0gJ3NlcnZpY2UnO1xuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY2xvc2FibGUgPT09ICdib29sZWFuJykgeyBjb21wb25lbnRSZWYuaW5zdGFuY2UuY2xvc2FibGUgPSBvcHRpb25zLmNsb3NhYmxlOyB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZXNjYXBhYmxlID09PSAnYm9vbGVhbicpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLmVzY2FwYWJsZSA9IG9wdGlvbnMuZXNjYXBhYmxlOyB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZGlzbWlzc2FibGUgPT09ICdib29sZWFuJykgeyBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGlzbWlzc2FibGUgPSBvcHRpb25zLmRpc21pc3NhYmxlOyB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY3VzdG9tQ2xhc3MgPT09ICdzdHJpbmcnKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jdXN0b21DbGFzcyA9IG9wdGlvbnMuY3VzdG9tQ2xhc3M7IH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5iYWNrZHJvcCA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5iYWNrZHJvcCA9IG9wdGlvbnMuYmFja2Ryb3A7IH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5mb3JjZSA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JjZSA9IG9wdGlvbnMuZm9yY2U7IH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5oaWRlRGVsYXkgPT09ICdudW1iZXInKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRGVsYXkgPSBvcHRpb25zLmhpZGVEZWxheTsgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmF1dG9zdGFydCA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5hdXRvc3RhcnQgPSBvcHRpb25zLmF1dG9zdGFydDsgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRhcmdldCA9PT0gJ3N0cmluZycpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLnRhcmdldCA9IG9wdGlvbnMudGFyZ2V0OyB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuYXJpYUxhYmVsID09PSAnc3RyaW5nJykgeyBjb21wb25lbnRSZWYuaW5zdGFuY2UuYXJpYUxhYmVsID0gb3B0aW9ucy5hcmlhTGFiZWw7IH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hcmlhTGFiZWxsZWRCeSA9PT0gJ3N0cmluZycpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLmFyaWFMYWJlbGxlZEJ5ID0gb3B0aW9ucy5hcmlhTGFiZWxsZWRCeTsgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmFyaWFEZXNjcmliZWRCeSA9PT0gJ3N0cmluZycpIHsgY29tcG9uZW50UmVmLmluc3RhbmNlLmFyaWFEZXNjcmliZWRCeSA9IG9wdGlvbnMuYXJpYURlc2NyaWJlZEJ5OyB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMucmVmb2N1cyA9PT0gJ2Jvb2xlYW4nKSB7IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yZWZvY3VzID0gb3B0aW9ucy5yZWZvY3VzOyB9XG5cbiAgICAgIHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgICByZXR1cm4gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FkZEV2ZW50cygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICdjcmVhdGUnLCAoKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9pbml0TW9kYWwoZS5kZXRhaWwuaW5zdGFuY2UpO1xuICAgIH0pIGFzIEV2ZW50TGlzdGVuZXIpO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICdkZWxldGUnLCAoKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9kZWxldGVNb2RhbChlLmRldGFpbC5pbnN0YW5jZSk7XG4gICAgfSkgYXMgRXZlbnRMaXN0ZW5lcik7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihOdGtTbWFydE1vZGFsQ29uZmlnLnByZWZpeEV2ZW50ICsgJ29wZW4nLCAoKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLl9vcGVuTW9kYWwoZS5kZXRhaWwuaW5zdGFuY2UubW9kYWwsIGUuZGV0YWlsLnRvcCk7XG4gICAgfSkgYXMgRXZlbnRMaXN0ZW5lcik7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihOdGtTbWFydE1vZGFsQ29uZmlnLnByZWZpeEV2ZW50ICsgJ3RvZ2dsZScsICgoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX3RvZ2dsZU1vZGFsKGUuZGV0YWlsLmluc3RhbmNlLm1vZGFsLCBlLmRldGFpbC50b3ApO1xuICAgIH0pIGFzIEV2ZW50TGlzdGVuZXIpO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICdjbG9zZScsICgoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuX2Nsb3NlTW9kYWwoZS5kZXRhaWwuaW5zdGFuY2UubW9kYWwpO1xuICAgIH0pIGFzIEV2ZW50TGlzdGVuZXIpO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoTnRrU21hcnRNb2RhbENvbmZpZy5wcmVmaXhFdmVudCArICdkaXNtaXNzJywgKChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgdGhpcy5fZGlzbWlzc01vZGFsKGUuZGV0YWlsLmluc3RhbmNlLm1vZGFsKTtcbiAgICB9KSBhcyBFdmVudExpc3RlbmVyKTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2VzY2FwZUtleWJvYXJkRXZlbnQpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIF9pbml0TW9kYWwobW9kYWxJbnN0YW5jZTogTW9kYWxJbnN0YW5jZSkge1xuICAgIG1vZGFsSW5zdGFuY2UubW9kYWwubGF5ZXJQb3NpdGlvbiArPSB0aGlzLmdldE1vZGFsU3RhY2tDb3VudCgpO1xuICAgIHRoaXMuYWRkTW9kYWwobW9kYWxJbnN0YW5jZSwgbW9kYWxJbnN0YW5jZS5tb2RhbC5mb3JjZSk7XG5cbiAgICBpZiAobW9kYWxJbnN0YW5jZS5tb2RhbC5hdXRvc3RhcnQpIHtcbiAgICAgIHRoaXMub3Blbihtb2RhbEluc3RhbmNlLmlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuTW9kYWwobW9kYWw6IE50a1NtYXJ0TW9kYWxDb21wb25lbnQsIHRvcD86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAobW9kYWwudmlzaWJsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMubGFzdEVsZW1lbnRGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgIGlmIChtb2RhbC5lc2NhcGFibGUpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2VzY2FwZUtleWJvYXJkRXZlbnQpO1xuICAgIH1cblxuICAgIGlmIChtb2RhbC5iYWNrZHJvcCkge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl90cmFwRm9jdXNNb2RhbCk7XG4gICAgfVxuXG4gICAgaWYgKHRvcCkge1xuICAgICAgbW9kYWwubGF5ZXJQb3NpdGlvbiA9IHRoaXMuZ2V0SGlnaGVySW5kZXgoKTtcbiAgICB9XG5cbiAgICBtb2RhbC5hZGRCb2R5Q2xhc3MoKTtcbiAgICBtb2RhbC5vdmVybGF5VmlzaWJsZSA9IHRydWU7XG4gICAgbW9kYWwudmlzaWJsZSA9IHRydWU7XG4gICAgbW9kYWwub25PcGVuLmVtaXQobW9kYWwpO1xuICAgIG1vZGFsLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBtb2RhbC5vcGVuZWRDbGFzcyA9IHRydWU7XG5cbiAgICAgIGlmIChtb2RhbC50YXJnZXQpIHtcbiAgICAgICAgbW9kYWwudGFyZ2V0UGxhY2VtZW50KCk7XG4gICAgICB9XG5cbiAgICAgIG1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncm9sZScsICdkaWFsb2cnKTtcbiAgICAgIG1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiSW5kZXgnLCAnLTEnKTtcbiAgICAgIG1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1tb2RhbCcsICd0cnVlJyk7XG4gICAgICBtb2RhbC5uc21EaWFsb2cuZmlyc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICBtb2RhbC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIG1vZGFsLm9uT3BlbkZpbmlzaGVkLmVtaXQobW9kYWwpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVNb2RhbChtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudCwgdG9wPzogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmIChtb2RhbC52aXNpYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY2xvc2VNb2RhbChtb2RhbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcGVuTW9kYWwobW9kYWwsIHRvcCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VNb2RhbChtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICghbW9kYWwub3BlbmVkQ2xhc3MpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBtb2RhbC5vcGVuZWRDbGFzcyA9IGZhbHNlO1xuICAgIG1vZGFsLm9uQ2xvc2UuZW1pdChtb2RhbCk7XG4gICAgbW9kYWwub25BbnlDbG9zZUV2ZW50LmVtaXQobW9kYWwpO1xuXG4gICAgaWYgKHRoaXMuZ2V0T3BlbmVkTW9kYWxzKCkubGVuZ3RoIDwgMikge1xuICAgICAgbW9kYWwucmVtb3ZlQm9keUNsYXNzKCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9lc2NhcGVLZXlib2FyZEV2ZW50KTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fdHJhcEZvY3VzTW9kYWwpO1xuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbW9kYWwudmlzaWJsZUNoYW5nZS5lbWl0KG1vZGFsLnZpc2libGUpO1xuICAgICAgbW9kYWwudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgbW9kYWwub3ZlcmxheVZpc2libGUgPSBmYWxzZTtcbiAgICAgIG1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndGFiSW5kZXgnKTtcbiAgICAgIG1vZGFsLm1hcmtGb3JDaGVjaygpO1xuICAgICAgbW9kYWwub25DbG9zZUZpbmlzaGVkLmVtaXQobW9kYWwpO1xuICAgICAgbW9kYWwub25BbnlDbG9zZUV2ZW50RmluaXNoZWQuZW1pdChtb2RhbCk7XG4gICAgICBpZiAobW9kYWwucmVmb2N1cykge1xuICAgICAgICB0aGlzLmxhc3RFbGVtZW50Rm9jdXNlZC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIG1vZGFsLmhpZGVEZWxheSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc21pc3NNb2RhbChtb2RhbDogTnRrU21hcnRNb2RhbENvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICghbW9kYWwub3BlbmVkQ2xhc3MpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBtb2RhbC5vcGVuZWRDbGFzcyA9IGZhbHNlO1xuICAgIG1vZGFsLm9uRGlzbWlzcy5lbWl0KG1vZGFsKTtcbiAgICBtb2RhbC5vbkFueUNsb3NlRXZlbnQuZW1pdChtb2RhbCk7XG5cbiAgICBpZiAodGhpcy5nZXRPcGVuZWRNb2RhbHMoKS5sZW5ndGggPCAyKSB7XG4gICAgICBtb2RhbC5yZW1vdmVCb2R5Q2xhc3MoKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIG1vZGFsLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIG1vZGFsLnZpc2libGVDaGFuZ2UuZW1pdChtb2RhbC52aXNpYmxlKTtcbiAgICAgIG1vZGFsLm92ZXJsYXlWaXNpYmxlID0gZmFsc2U7XG4gICAgICBtb2RhbC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIG1vZGFsLm9uRGlzbWlzc0ZpbmlzaGVkLmVtaXQobW9kYWwpO1xuICAgICAgbW9kYWwub25BbnlDbG9zZUV2ZW50RmluaXNoZWQuZW1pdChtb2RhbCk7XG4gICAgfSwgbW9kYWwuaGlkZURlbGF5KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsZXRlTW9kYWwobW9kYWxJbnN0YW5jZTogTW9kYWxJbnN0YW5jZSkge1xuICAgIHRoaXMucmVtb3ZlTW9kYWwobW9kYWxJbnN0YW5jZS5pZCk7XG5cbiAgICBpZiAoIXRoaXMuZ2V0TW9kYWxTdGFjaygpLmxlbmd0aCkge1xuICAgICAgbW9kYWxJbnN0YW5jZS5tb2RhbC5yZW1vdmVCb2R5Q2xhc3MoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBjb250ZW50IGFjY29yZGluZyB0byB0aGUgdHlwZXNcbiAgICogQHBhcmFtIGNvbnRlbnQgVGhlIG1vZGFsIGNvbnRlbnQgKCBzdHJpbmcsIHRlbXBsYXRlUmVmIG9yIENvbXBvbmVudCApXG4gICAqL1xuICBwcml2YXRlIF9yZXNvbHZlTmdDb250ZW50PFQ+KGNvbnRlbnQ6IENvbnRlbnQ8VD4pOiBhbnlbXVtdIHwgVGV4dFtdW10ge1xuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcbiAgICAgIHJldHVybiBbW2VsZW1lbnRdXTtcbiAgICB9XG5cbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICBjb25zdCB2aWV3UmVmID0gY29udGVudC5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCBhcyBhbnkpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KHZpZXdSZWYpO1xuICAgICAgcmV0dXJuIFt2aWV3UmVmLnJvb3ROb2Rlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBsYXRlc3Qgb3BlbmVkIG1vZGFsIGlmIGVzY2FwZSBrZXkgZXZlbnQgaXMgZW1pdHRlZFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIEtleWJvYXJkIEV2ZW50XG4gICAqL1xuICBwcml2YXRlIF9lc2NhcGVLZXlib2FyZEV2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1vZGFsID0gdGhpcy5nZXRUb3BPcGVuZWRNb2RhbCgpO1xuXG4gICAgICAgIGlmICghbW9kYWwuZXNjYXBhYmxlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9kYWwub25Fc2NhcGUuZW1pdChtb2RhbCk7XG4gICAgICAgIHRoaXMuY2xvc2VMYXRlc3RNb2RhbCgpO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElzIGN1cnJlbnQgcGxhdGZvcm0gYnJvd3NlclxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgaXNCcm93c2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGlsZSBtb2RhbCBpcyBvcGVuLCB0aGUgZm9jdXMgc3RheSBvbiBpdFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIEtleWJvYXIgZEV2ZW50XG4gICAqL1xuICBwcml2YXRlIF90cmFwRm9jdXNNb2RhbCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBtb2RhbCA9IHRoaXMuZ2V0VG9wT3BlbmVkTW9kYWwoKTtcblxuICAgICAgICBpZiAoIW1vZGFsLm5zbURpYWxvZy5maXJzdC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBtb2RhbC5uc21EaWFsb2cuZmlyc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==

@@ -6,2 +6,2 @@ /**

export { NtkSmartModalStackService as ɵa } from './lib/modal/ntk-smart-modal-stack.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW50ay1zbWFydC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiRDovU291cmNlS2FyYXZpL0dpdEh1Yi9ucG0tbnRrLWNtcy1hbmd1bGFyL3Byb2plY3RzL25neC1udGstc21hcnQtbW9kdWxlL3NyYy8iLCJzb3VyY2VzIjpbIm5neC1udGstc21hcnQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge050a1NtYXJ0TW9kYWxTdGFja1NlcnZpY2UgYXMgybVhfSBmcm9tICcuL2xpYi9tb2RhbC9udGstc21hcnQtbW9kYWwtc3RhY2suc2VydmljZSc7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW50ay1zbWFydC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL1ZvbHVtZXMvd29yay9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsibmd4LW50ay1zbWFydC1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TnRrU21hcnRNb2RhbFN0YWNrU2VydmljZSBhcyDJtWF9IGZyb20gJy4vbGliL21vZGFsL250ay1zbWFydC1tb2RhbC1zdGFjay5zZXJ2aWNlJzsiXX0=

@@ -10,2 +10,2 @@ /*

export { NtkSmartLoaderModule } from './lib/loader/ntk-smart-loader.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Tb3VyY2VLYXJhdmkvR2l0SHViL25wbS1udGstY21zLWFuZ3VsYXIvcHJvamVjdHMvbmd4LW50ay1zbWFydC1tb2R1bGUvc3JjLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG50ay1jbXMtbW9kdWxlXHJcbiAqL1xyXG5cclxuZXhwb3J0IHtOdGtTbWFydE1vZGFsU2VydmljZX0gZnJvbSAnLi9saWIvbW9kYWwvbnRrLXNtYXJ0LW1vZGFsLnNlcnZpY2UnO1xyXG5leHBvcnQge050a1NtYXJ0TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbGliL21vZGFsL250ay1zbWFydC1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQge050a1NtYXJ0TW9kYWxNb2R1bGV9IGZyb20gJy4vbGliL21vZGFsL250ay1zbWFydC1tb2RhbC5tb2R1bGUnO1xyXG5cclxuZXhwb3J0IHsgTnRrU21hcnRMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi9saWIvbG9hZGVyL250ay1zbWFydC1sb2FkZXIuc2VydmljZSc7XHJcbmV4cG9ydCB7IE50a1NtYXJ0TG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvbG9hZGVyL250ay1zbWFydC1sb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgTnRrU21hcnRMb2FkZXJNb2R1bGUgfSBmcm9tICcuL2xpYi9sb2FkZXIvbnRrLXNtYXJ0LWxvYWRlci5tb2R1bGUnO1xyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIvVm9sdW1lcy93b3JrL1NvdXJjZUthcmF2aS9HaXRIdWIvbnBtLW50ay1jbXMtYW5ndWxhci9wcm9qZWN0cy9uZ3gtbnRrLXNtYXJ0LW1vZHVsZS9zcmMvIiwic291cmNlcyI6WyJwdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG50ay1jbXMtbW9kdWxlXG4gKi9cblxuZXhwb3J0IHtOdGtTbWFydE1vZGFsU2VydmljZX0gZnJvbSAnLi9saWIvbW9kYWwvbnRrLXNtYXJ0LW1vZGFsLnNlcnZpY2UnO1xuZXhwb3J0IHtOdGtTbWFydE1vZGFsQ29tcG9uZW50fSBmcm9tICcuL2xpYi9tb2RhbC9udGstc21hcnQtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7TnRrU21hcnRNb2RhbE1vZHVsZX0gZnJvbSAnLi9saWIvbW9kYWwvbnRrLXNtYXJ0LW1vZGFsLm1vZHVsZSc7XG5cbmV4cG9ydCB7IE50a1NtYXJ0TG9hZGVyU2VydmljZSB9IGZyb20gJy4vbGliL2xvYWRlci9udGstc21hcnQtbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgTnRrU21hcnRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9sb2FkZXIvbnRrLXNtYXJ0LWxvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgTnRrU21hcnRMb2FkZXJNb2R1bGUgfSBmcm9tICcuL2xpYi9sb2FkZXIvbnRrLXNtYXJ0LWxvYWRlci5tb2R1bGUnO1xuIl19

@@ -6,3 +6,3 @@ import { Injectable, EventEmitter, Component, Renderer2, ChangeDetectorRef, ComponentFactoryResolver, Inject, PLATFORM_ID, Input, Output, ViewChildren, ViewContainerRef, HostListener, Type, TemplateRef, ApplicationRef, Injector, NgModule, ɵɵdefineInjectable } from '@angular/core';

constructor() {
this._modalStack = [];
this.modalStack = [];
}

@@ -19,12 +19,12 @@ /**

if (force) {
const i = this._modalStack.findIndex((o) => o.id === modalInstance.id);
const i = this.modalStack.findIndex((o) => o.id === modalInstance.id);
if (i > -1) {
this._modalStack[i].modal = modalInstance.modal;
this.modalStack[i].modal = modalInstance.modal;
}
else {
this._modalStack.push(modalInstance);
this.modalStack.push(modalInstance);
}
return;
}
this._modalStack.push(modalInstance);
this.modalStack.push(modalInstance);
}

@@ -37,3 +37,3 @@ /**

getModal(id) {
const i = this._modalStack.find((o) => o.id === id);
const i = this.modalStack.find((o) => o.id === id);
if (i !== undefined) {

@@ -52,3 +52,3 @@ return i.modal;

getModalStack() {
return this._modalStack;
return this.modalStack;
}

@@ -61,3 +61,3 @@ /**

getOpenedModals() {
return this._modalStack.filter((o) => o.modal.visible);
return this.modalStack.filter((o) => o.modal.visible);
}

@@ -85,3 +85,3 @@ /**

getHigherIndex() {
return Math.max(...this._modalStack.map((o) => o.modal.layerPosition), 1041) + 1;
return Math.max(...this.modalStack.map((o) => o.modal.layerPosition), 1041) + 1;
}

@@ -94,3 +94,3 @@ /**

getModalStackCount() {
return this._modalStack.length;
return this.modalStack.length;
}

@@ -104,5 +104,5 @@ /**

removeModal(id) {
const i = this._modalStack.findIndex((o) => o.id === id);
const i = this.modalStack.findIndex((o) => o.id === id);
if (i > -1) {
this._modalStack.splice(i, 1);
this.modalStack.splice(i, 1);
}

@@ -109,0 +109,0 @@ }

@@ -0,0 +0,0 @@ import { NtkSmartLoaderComponent } from './ntk-smart-loader.component';

@@ -0,0 +0,0 @@ import { OnInit, OnDestroy, ChangeDetectorRef, EventEmitter } from '@angular/core';

@@ -0,0 +0,0 @@ import { ModuleWithProviders } from '@angular/core';

@@ -0,0 +0,0 @@ import { LoaderInstance } from './loader-instance';

@@ -0,0 +0,0 @@ import { NtkSmartModalComponent } from './ntk-smart-modal.component';

import { ModalInstance } from './modal-instance';
import { NtkSmartModalComponent } from './ntk-smart-modal.component';
export declare class NtkSmartModalStackService {
private _modalStack;
private modalStack;
constructor();

@@ -6,0 +6,0 @@ /**

@@ -0,0 +0,0 @@ import { AfterViewInit, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, Renderer2, Type, ViewContainerRef } from '@angular/core';

@@ -0,0 +0,0 @@ export declare const NtkSmartModalConfig: {

@@ -0,0 +0,0 @@ import { ModuleWithProviders } from '@angular/core';

@@ -0,0 +0,0 @@ import { ComponentFactoryResolver, ApplicationRef, Injector, TemplateRef, Type } from '@angular/core';

@@ -0,0 +0,0 @@ /**

{
"name": "ngx-ntk-smart-module",
"version": "1.1.2",
"version": "1.1.3",
"description": "Ntk Cms Modal ",

@@ -5,0 +5,0 @@ "author": "Alireza-Karavi",

@@ -0,0 +0,0 @@ export { NtkSmartModalService } from './lib/modal/ntk-smart-modal.service';

@@ -0,0 +0,0 @@ # NgxNtkSmartModule

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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