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

angular-split

Package Overview
Dependencies
Maintainers
1
Versions
102
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-split - npm Package Compare versions

Comparing version 3.0.0-beta.8 to 3.0.0-beta.9

2

bundles/angular-split.umd.min.js

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

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-split",["exports","@angular/core","rxjs","rxjs/operators","@angular/common"],t):t(e["angular-split"]={},e.ng.core,e.rxjs,e.rxjs.operators,e.ng.common)}(this,function(e,r,s,i,t){"use strict";function n(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,r,s=i.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(n=s.next()).done;)a.push(n.value)}catch(o){r={error:o}}finally{try{n&&!n.done&&(i=s["return"])&&i.call(s)}finally{if(r)throw r.error}}return a}function l(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(n(arguments[t]));return e}function u(e){return e.touches!==undefined&&0<e.touches.length?{x:e.touches[0].clientX,y:e.touches[0].clientY}:e.clientX!==undefined&&e.clientY!==undefined?{x:e.clientX,y:e.clientY}:null}function a(e,t){var i=e.nativeElement.getBoundingClientRect();return"horizontal"===t?i.width:i.height}function o(e){return"boolean"==typeof e?e:"false"!==e}function p(e,t){return null===e||e===undefined?t:(e=Number(e),!isNaN(e)&&0<=e?e:t)}function h(e,t){if("percent"===e){var i=t.reduce(function(e,t){return null!==t?e+t:e},0);return t.every(function(e){return null!==e})&&99.9<i&&i<100.1}if("pixel"===e)return 1===t.filter(function(e){return null===e}).length}function c(e){return null===e.size?null:!0===e.component.lockSize?e.size:null===e.component.minSize?null:e.component.minSize>e.size?e.size:e.component.minSize}function d(e){return null===e.size?null:!0===e.component.lockSize?e.size:null===e.component.maxSize?null:e.component.maxSize<e.size?e.size:e.component.maxSize}function f(n,e,t,r){return e.reduce(function(e,t){var i=function s(e,t,i,n){if(0===i)return{areaSnapshot:t,pixelAbsorb:0,percentAfterAbsorption:t.sizePercentAtStart,pixelRemain:0};if(0===t.sizePixelAtStart&&i<0)return{areaSnapshot:t,pixelAbsorb:0,percentAfterAbsorption:0,pixelRemain:i};if("percent"===e)return function a(e,t,i){var n=(e.sizePixelAtStart+t)/i*100;{if(0<t){if(null!==e.area.maxSize&&n>e.area.maxSize){var r=e.area.maxSize/100*i;return{areaSnapshot:e,pixelAbsorb:r,percentAfterAbsorption:e.area.maxSize,pixelRemain:e.sizePixelAtStart+t-r}}return{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:100<n?100:n,pixelRemain:0}}if(t<0){if(null!==e.area.minSize&&n<e.area.minSize){var s=e.area.minSize/100*i;return{areaSnapshot:e,pixelAbsorb:s,percentAfterAbsorption:e.area.minSize,pixelRemain:e.sizePixelAtStart+t-s}}return n<0?{areaSnapshot:e,pixelAbsorb:-e.sizePixelAtStart,percentAfterAbsorption:0,pixelRemain:t+e.sizePixelAtStart}:{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:n,pixelRemain:0}}}}(t,i,n);if("pixel"===e)return function r(e,t,i){var n=e.sizePixelAtStart+t;{if(0<t)return null!==e.area.maxSize&&n>e.area.maxSize?{areaSnapshot:e,pixelAbsorb:e.area.maxSize-e.sizePixelAtStart,percentAfterAbsorption:-1,pixelRemain:n-e.area.maxSize}:{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:-1,pixelRemain:0};if(t<0)return null!==e.area.minSize&&n<e.area.minSize?{areaSnapshot:e,pixelAbsorb:e.area.minSize+t-n,percentAfterAbsorption:-1,pixelRemain:n-e.area.minSize}:n<0?{areaSnapshot:e,pixelAbsorb:-e.sizePixelAtStart,percentAfterAbsorption:-1,pixelRemain:t+e.sizePixelAtStart}:{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:-1,pixelRemain:0}}}(t,i)}(n,t,e.remain,r);return e.list.push(i),e.remain=i.pixelRemain,e},{remain:t,list:[]})}function g(e,t){"percent"===e?t.areaSnapshot.area.size=t.percentAfterAbsorption:"pixel"===e&&null!==t.areaSnapshot.area.size&&(t.areaSnapshot.area.size=t.areaSnapshot.sizePixelAtStart+t.pixelAbsorb)}var m=function(){function e(e,t,i,n){this.ngZone=e,this.elRef=t,this.cdRef=i,this.renderer=n,this._direction="horizontal",this._unit="percent",this._gutterSize=11,this._gutterStep=1,this._restrictMove=!1,this._useTransition=!1,this._disabled=!1,this._dir="ltr",this._gutterDblClickDuration=0,this.dragStart=new r.EventEmitter(!1),this.dragEnd=new r.EventEmitter(!1),this.gutterClick=new r.EventEmitter(!1),this.gutterDblClick=new r.EventEmitter(!1),this.dragProgressSubject=new s.Subject,this.dragProgress$=this.dragProgressSubject.asObservable(),this.isDragging=!1,this.dragListeners=[],this.snapshot=null,this.startPoint=null,this.endPoint=null,this.displayedAreas=[],this.hidedAreas=[],this._clickTimeout=null,this.direction=this._direction}return Object.defineProperty(e.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction="vertical"===e?"vertical":"horizontal",this.renderer.addClass(this.elRef.nativeElement,"as-"+this._direction),this.renderer.removeClass(this.elRef.nativeElement,"as-"+("vertical"===this._direction?"horizontal":"vertical")),this.build(!1,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"unit",{get:function(){return this._unit},set:function(e){this._unit="pixel"===e?"pixel":"percent",this.renderer.addClass(this.elRef.nativeElement,"as-"+this._unit),this.renderer.removeClass(this.elRef.nativeElement,"as-"+("pixel"===this._unit?"percent":"pixel")),this.build(!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gutterSize",{get:function(){return this._gutterSize},set:function(e){this._gutterSize=p(e,11),this.build(!1,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gutterStep",{get:function(){return this._gutterStep},set:function(e){this._gutterStep=p(e,1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"restrictMove",{get:function(){return this._restrictMove},set:function(e){this._restrictMove=o(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useTransition",{get:function(){return this._useTransition},set:function(e){this._useTransition=o(e),this._useTransition?this.renderer.addClass(this.elRef.nativeElement,"as-transition"):this.renderer.removeClass(this.elRef.nativeElement,"as-transition")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=o(e),this._disabled?this.renderer.addClass(this.elRef.nativeElement,"as-disabled"):this.renderer.removeClass(this.elRef.nativeElement,"as-disabled")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dir",{get:function(){return this._dir},set:function(e){this._dir="rtl"===e?"rtl":"ltr",this.renderer.setAttribute(this.elRef.nativeElement,"dir",this._dir)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gutterDblClickDuration",{get:function(){return this._gutterDblClickDuration},set:function(e){this._gutterDblClickDuration=p(e,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"transitionEnd",{get:function(){var t=this;return new s.Observable(function(e){return t.transitionEndSubscriber=e}).pipe(i.debounceTime(20))},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.ngZone.runOutsideAngular(function(){setTimeout(function(){return e.renderer.addClass(e.elRef.nativeElement,"as-init")})})},e.prototype.getNbGutters=function(){return 0===this.displayedAreas.length?0:this.displayedAreas.length-1},e.prototype.addArea=function(e){var t={component:e,order:0,size:0,minSize:null,maxSize:null};!0===e.visible?(this.displayedAreas.push(t),this.build(!0,!0)):this.hidedAreas.push(t)},e.prototype.removeArea=function(t){if(this.displayedAreas.some(function(e){return e.component===t})){var e=this.displayedAreas.find(function(e){return e.component===t});this.displayedAreas.splice(this.displayedAreas.indexOf(e),1),this.build(!0,!0)}else if(this.hidedAreas.some(function(e){return e.component===t})){e=this.hidedAreas.find(function(e){return e.component===t});this.hidedAreas.splice(this.hidedAreas.indexOf(e),1)}},e.prototype.updateArea=function(e,t,i){!0===e.visible&&this.build(t,i)},e.prototype.showArea=function(t){var e,i=this.hidedAreas.find(function(e){return e.component===t});if(i!==undefined){var n=this.hidedAreas.splice(this.hidedAreas.indexOf(i),1);(e=this.displayedAreas).push.apply(e,l(n)),this.build(!0,!0)}},e.prototype.hideArea=function(t){var e,i=this.displayedAreas.find(function(e){return e.component===t});if(i!==undefined){var n=this.displayedAreas.splice(this.displayedAreas.indexOf(i),1);n.forEach(function(e){e.order=0,e.size=0}),(e=this.hidedAreas).push.apply(e,l(n)),this.build(!0,!0)}},e.prototype.getVisibleAreaSizes=function(){return this.displayedAreas.map(function(e){return null===e.size?"*":e.size})},e.prototype.setVisibleAreaSizes=function(e){if(e.length!==this.displayedAreas.length)return!1;var i=e.map(function(e){return p(e,null)});return!1!==h(this.unit,i)&&(this.displayedAreas.forEach(function(e,t){return e.component._size=i[t]}),this.build(!1,!0),!0)},e.prototype.build=function(e,t){if(this.stopDragging(),!0===e&&(this.displayedAreas.every(function(e){return null!==e.component.order})&&this.displayedAreas.sort(function(e,t){return e.component.order-t.component.order}),this.displayedAreas.forEach(function(e,t){e.order=2*t,e.component.setStyleOrder(e.order)})),!0===t){var i=h(this.unit,this.displayedAreas.map(function(e){return e.component.size}));switch(this.unit){case"percent":var n=100/this.displayedAreas.length;this.displayedAreas.forEach(function(e){e.size=i?e.component.size:n,e.minSize=c(e),e.maxSize=d(e)});break;case"pixel":if(i)this.displayedAreas.forEach(function(e){e.size=e.component.size,e.minSize=c(e),e.maxSize=d(e)});else{var r=this.displayedAreas.filter(function(e){return null===e.component.size});0===r.length||r.length}}}this.refreshStyleSizes(),this.cdRef.markForCheck()},e.prototype.refreshStyleSizes=function(){if(1===this.displayedAreas.length)this.displayedAreas[0].component.setStyleFlex(0,0,"100%",!1,!1);else if("percent"===this.unit){var t=this.getNbGutters()*this.gutterSize;this.displayedAreas.forEach(function(e){e.component.setStyleFlex(0,0,"calc( "+e.size+"% - "+e.size/100*t+"px )",null!==e.minSize&&e.minSize===e.size,null!==e.maxSize&&e.maxSize===e.size)})}else"pixel"===this.unit&&this.displayedAreas.forEach(function(e){null===e.size?e.component.setStyleFlex(1,1,"auto",null!==e.minSize&&e.minSize===e.size,null!==e.maxSize&&e.maxSize===e.size):e.component.setStyleFlex(0,0,e.size+"px",null!==e.minSize&&e.minSize===e.size,null!==e.maxSize&&e.maxSize===e.size)})},e.prototype.clickGutter=function(e,t){var i=this,n=u(e);this.startPoint&&this.startPoint.x===n.x&&this.startPoint.y===n.y&&(null!==this._clickTimeout?(window.clearTimeout(this._clickTimeout),this._clickTimeout=null,this.notify("dblclick",t),this.stopDragging()):this._clickTimeout=window.setTimeout(function(){i._clickTimeout=null,i.notify("click",t),i.stopDragging()},this.gutterDblClickDuration))},e.prototype.startDragging=function(e,i,t){var n=this;e.preventDefault(),e.stopPropagation(),this.startPoint=u(e),null!==this.startPoint&&!0!==this.disabled&&(this.snapshot={gutterNum:t,lastSteppedOffset:0,allAreasSizePixel:a(this.elRef,this.direction)-this.getNbGutters()*this.gutterSize,allInvolvedAreasSizePercent:100,areasBeforeGutter:[],areasAfterGutter:[]},this.displayedAreas.forEach(function(e){var t={area:e,sizePixelAtStart:a(e.component.elRef,n.direction),sizePercentAtStart:"percent"===n.unit?e.size:-1};e.order<i?!0===n.restrictMove?n.snapshot.areasBeforeGutter=[t]:n.snapshot.areasBeforeGutter.unshift(t):e.order>i&&(!0===n.restrictMove?0===n.snapshot.areasAfterGutter.length&&(n.snapshot.areasAfterGutter=[t]):n.snapshot.areasAfterGutter.push(t))}),this.snapshot.allInvolvedAreasSizePercent=l(this.snapshot.areasBeforeGutter,this.snapshot.areasAfterGutter).reduce(function(e,t){return e+t.sizePercentAtStart},0),0!==this.snapshot.areasBeforeGutter.length&&0!==this.snapshot.areasAfterGutter.length&&(this.ngZone.runOutsideAngular(function(){n.dragListeners.push(n.renderer.listen("document","mouseup",n.stopDragging.bind(n))),n.dragListeners.push(n.renderer.listen("document","touchend",n.stopDragging.bind(n))),n.dragListeners.push(n.renderer.listen("document","touchcancel",n.stopDragging.bind(n))),n.dragListeners.push(n.renderer.listen("document","mousemove",n.dragEvent.bind(n))),n.dragListeners.push(n.renderer.listen("document","touchmove",n.dragEvent.bind(n)))}),this.displayedAreas.forEach(function(e){return e.component.lockEvents()}),this.isDragging=!0,this.renderer.addClass(this.elRef.nativeElement,"as-dragging"),this.renderer.addClass(this.gutterEls.toArray()[this.snapshot.gutterNum-1].nativeElement,"as-dragged"),this.notify("start",this.snapshot.gutterNum)))},e.prototype.dragEvent=function(e){var t=this;if(e.preventDefault(),e.stopPropagation(),null!==this._clickTimeout&&(window.clearTimeout(this._clickTimeout),this._clickTimeout=null),!1!==this.isDragging&&(this.endPoint=u(e),null!==this.endPoint)){var i="horizontal"===this.direction?this.startPoint.x-this.endPoint.x:this.startPoint.y-this.endPoint.y;"rtl"===this.dir&&(i=-i);var n=Math.round(i/this.gutterStep)*this.gutterStep;if(n!==this.snapshot.lastSteppedOffset){this.snapshot.lastSteppedOffset=n;var r=f(this.unit,this.snapshot.areasBeforeGutter,-n,this.snapshot.allAreasSizePixel),s=f(this.unit,this.snapshot.areasAfterGutter,n,this.snapshot.allAreasSizePixel);if(0!==r.remain&&0!==s.remain?Math.abs(r.remain)===Math.abs(s.remain)||(Math.abs(r.remain)>Math.abs(s.remain)?s=f(this.unit,this.snapshot.areasAfterGutter,n+r.remain,this.snapshot.allAreasSizePixel):r=f(this.unit,this.snapshot.areasBeforeGutter,-(n-s.remain),this.snapshot.allAreasSizePixel)):0!==r.remain?s=f(this.unit,this.snapshot.areasAfterGutter,n+r.remain,this.snapshot.allAreasSizePixel):0!==s.remain&&(r=f(this.unit,this.snapshot.areasBeforeGutter,-(n-s.remain),this.snapshot.allAreasSizePixel)),"percent"===this.unit){var a=l(r.list,s.list),o=a.find(function(e){return 0!==e.percentAfterAbsorption&&e.percentAfterAbsorption!==e.areaSnapshot.area.minSize&&e.percentAfterAbsorption!==e.areaSnapshot.area.maxSize});o&&(o.percentAfterAbsorption=this.snapshot.allInvolvedAreasSizePercent-a.filter(function(e){return e!==o}).reduce(function(e,t){return e+t.percentAfterAbsorption},0))}r.list.forEach(function(e){return g(t.unit,e)}),s.list.forEach(function(e){return g(t.unit,e)}),this.refreshStyleSizes(),this.notify("progress",this.snapshot.gutterNum)}}},e.prototype.stopDragging=function(e){var t=this;if(e&&(e.preventDefault(),e.stopPropagation()),!1!==this.isDragging){for(this.displayedAreas.forEach(function(e){return e.component.unlockEvents()});0<this.dragListeners.length;){var i=this.dragListeners.pop();i&&i()}this.isDragging=!1,!this.endPoint||this.startPoint.x===this.endPoint.x&&this.startPoint.y===this.endPoint.y||this.notify("end",this.snapshot.gutterNum),this.renderer.removeClass(this.elRef.nativeElement,"as-dragging"),this.renderer.removeClass(this.gutterEls.toArray()[this.snapshot.gutterNum-1].nativeElement,"as-dragged"),this.snapshot=null,this.ngZone.runOutsideAngular(function(){setTimeout(function(){t.startPoint=null,t.endPoint=null})})}},e.prototype.notify=function(e,t){var i=this,n=this.getVisibleAreaSizes();"start"===e?this.dragStart.emit({gutterNum:t,sizes:n}):"end"===e?this.dragEnd.emit({gutterNum:t,sizes:n}):"click"===e?this.gutterClick.emit({gutterNum:t,sizes:n}):"dblclick"===e?this.gutterDblClick.emit({gutterNum:t,sizes:n}):"transitionEnd"===e?this.transitionEndSubscriber&&this.ngZone.run(function(){return i.transitionEndSubscriber.next(n)}):"progress"===e&&this.dragProgressSubject.next({gutterNum:t,sizes:n})},e.prototype.ngOnDestroy=function(){this.stopDragging()},e.decorators=[{type:r.Component,args:[{selector:"as-split",exportAs:"asSplit",changeDetection:r.ChangeDetectionStrategy.OnPush,template:'\n <ng-content></ng-content>\n <ng-template ngFor [ngForOf]="displayedAreas" let-index="index" let-last="last">\n <div *ngIf="last === false" \n #gutterEls\n class="as-split-gutter"\n [style.flex-basis.px]="gutterSize"\n [style.order]="index*2+1"\n (mousedown)="startDragging($event, index*2+1, index+1)"\n (touchstart)="startDragging($event, index*2+1, index+1)"\n (mouseup)="clickGutter($event, index+1)"\n (touchend)="clickGutter($event, index+1)">\n <div class="as-split-gutter-icon"></div>\n </div>\n </ng-template>',styles:[':host{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow:hidden;width:100%;height:100%}:host>.as-split-gutter{flex-grow:0;flex-shrink:0;background-color:#eee;display:flex;align-items:center;justify-content:center}:host>.as-split-gutter>.as-split-gutter-icon{width:100%;height:100%;background-position:center center;background-repeat:no-repeat}:host ::ng-deep>.as-split-area{flex-grow:0;flex-shrink:0;overflow-x:hidden;overflow-y:auto}:host ::ng-deep>.as-split-area.as-hidden{flex-basis:0!important;overflow-x:hidden;overflow-y:hidden}:host.as-horizontal{flex-direction:row}:host.as-horizontal>.as-split-gutter{flex-direction:row;cursor:col-resize;height:100%}:host.as-horizontal>.as-split-gutter>.as-split-gutter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}:host.as-horizontal ::ng-deep>.as-split-area{height:100%}:host.as-vertical{flex-direction:column}:host.as-vertical>.as-split-gutter{flex-direction:column;cursor:row-resize;width:100%}:host.as-vertical>.as-split-gutter .as-split-gutter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFCAMAAABl/6zIAAAABlBMVEUAAADMzMzIT8AyAAAAAXRSTlMAQObYZgAAABRJREFUeAFjYGRkwIMJSeMHlBkOABP7AEGzSuPKAAAAAElFTkSuQmCC)}:host.as-vertical ::ng-deep>.as-split-area{width:100%}:host.as-vertical ::ng-deep>.as-split-area.as-hidden{max-width:0}:host.as-disabled>.as-split-gutter{cursor:default}:host.as-disabled>.as-split-gutter .as-split-gutter-icon{background-image:url("")}:host.as-transition.as-init:not(.as-dragging) ::ng-deep>.as-split-area,:host.as-transition.as-init:not(.as-dragging)>.as-split-gutter{transition:flex-basis .3s}']}]}],e.ctorParameters=function(){return[{type:r.NgZone},{type:r.ElementRef},{type:r.ChangeDetectorRef},{type:r.Renderer2}]},e.propDecorators={direction:[{type:r.Input}],unit:[{type:r.Input}],gutterSize:[{type:r.Input}],gutterStep:[{type:r.Input}],restrictMove:[{type:r.Input}],useTransition:[{type:r.Input}],disabled:[{type:r.Input}],dir:[{type:r.Input}],gutterDblClickDuration:[{type:r.Input}],dragStart:[{type:r.Output}],dragEnd:[{type:r.Output}],gutterClick:[{type:r.Output}],gutterDblClick:[{type:r.Output}],transitionEnd:[{type:r.Output}],gutterEls:[{type:r.ViewChildren,args:["gutterEls"]}]},e}(),A=function(){function e(e,t,i,n){this.ngZone=e,this.elRef=t,this.renderer=i,this.split=n,this._order=null,this._size=null,this._minSize=null,this._maxSize=null,this._lockSize=!1,this._visible=!0,this.lockListeners=[],this.renderer.addClass(this.elRef.nativeElement,"as-split-area")}return Object.defineProperty(e.prototype,"order",{get:function(){return this._order},set:function(e){this._order=p(e,null),this.split.updateArea(this,!0,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._size},set:function(e){this._size=p(e,null),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minSize",{get:function(){return this._minSize},set:function(e){this._minSize=p(e,null),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxSize",{get:function(){return this._maxSize},set:function(e){this._maxSize=p(e,null),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lockSize",{get:function(){return this._lockSize},set:function(e){this._lockSize=o(e),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=o(e),this._visible?(this.split.showArea(this),this.renderer.removeClass(this.elRef.nativeElement,"as-hidden")):(this.split.hideArea(this),this.renderer.addClass(this.elRef.nativeElement,"as-hidden"))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.split.addArea(this),this.ngZone.runOutsideAngular(function(){t.transitionListener=t.renderer.listen(t.elRef.nativeElement,"transitionend",function(e){"flex-basis"===e.propertyName&&t.split.notify("transitionEnd",-1)})})},e.prototype.setStyleOrder=function(e){this.renderer.setStyle(this.elRef.nativeElement,"order",e)},e.prototype.setStyleFlex=function(e,t,i,n,r){this.renderer.setStyle(this.elRef.nativeElement,"flex-grow",e),this.renderer.setStyle(this.elRef.nativeElement,"flex-shrink",t),this.renderer.setStyle(this.elRef.nativeElement,"flex-basis",i),!0===n?this.renderer.addClass(this.elRef.nativeElement,"as-min"):this.renderer.removeClass(this.elRef.nativeElement,"as-min"),!0===r?this.renderer.addClass(this.elRef.nativeElement,"as-max"):this.renderer.removeClass(this.elRef.nativeElement,"as-max")},e.prototype.lockEvents=function(){var e=this;this.ngZone.runOutsideAngular(function(){e.lockListeners.push(e.renderer.listen(e.elRef.nativeElement,"selectstart",function(e){return!1})),e.lockListeners.push(e.renderer.listen(e.elRef.nativeElement,"dragstart",function(e){return!1}))})},e.prototype.unlockEvents=function(){for(;0<this.lockListeners.length;){var e=this.lockListeners.pop();e&&e()}},e.prototype.ngOnDestroy=function(){this.unlockEvents(),this.transitionListener&&this.transitionListener(),this.split.removeArea(this)},e.decorators=[{type:r.Directive,args:[{selector:"as-split-area, [as-split-area]",exportAs:"asSplitArea"}]}],e.ctorParameters=function(){return[{type:r.NgZone},{type:r.ElementRef},{type:r.Renderer2},{type:m}]},e.propDecorators={order:[{type:r.Input}],size:[{type:r.Input}],minSize:[{type:r.Input}],maxSize:[{type:r.Input}],lockSize:[{type:r.Input}],visible:[{type:r.Input}]},e}(),b=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.forChild=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:r.NgModule,args:[{imports:[t.CommonModule],declarations:[m,A],exports:[m,A]}]}],e}();e.AngularSplitModule=b,e.SplitComponent=m,e.SplitAreaDirective=A,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-split",["exports","@angular/core","rxjs","rxjs/operators","@angular/common"],t):t(e["angular-split"]={},e.ng.core,e.rxjs,e.rxjs.operators,e.ng.common)}(this,function(e,r,s,i,t){"use strict";function n(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var n,r,s=i.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(n=s.next()).done;)a.push(n.value)}catch(o){r={error:o}}finally{try{n&&!n.done&&(i=s["return"])&&i.call(s)}finally{if(r)throw r.error}}return a}function l(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(n(arguments[t]));return e}function u(e){return e.changedTouches!==undefined&&0<e.changedTouches.length?{x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}:e.clientX!==undefined&&e.clientY!==undefined?{x:e.clientX,y:e.clientY}:null}function a(e,t){var i=e.nativeElement.getBoundingClientRect();return"horizontal"===t?i.width:i.height}function o(e){return"boolean"==typeof e?e:"false"!==e}function h(e,t){return null===e||e===undefined?t:(e=Number(e),!isNaN(e)&&0<=e?e:t)}function p(e,t){if("percent"===e){var i=t.reduce(function(e,t){return null!==t?e+t:e},0);return t.every(function(e){return null!==e})&&99.9<i&&i<100.1}if("pixel"===e)return 1===t.filter(function(e){return null===e}).length}function c(e){return null===e.size?null:!0===e.component.lockSize?e.size:null===e.component.minSize?null:e.component.minSize>e.size?e.size:e.component.minSize}function d(e){return null===e.size?null:!0===e.component.lockSize?e.size:null===e.component.maxSize?null:e.component.maxSize<e.size?e.size:e.component.maxSize}function f(n,e,t,r){return e.reduce(function(e,t){var i=function s(e,t,i,n){if(0===i)return{areaSnapshot:t,pixelAbsorb:0,percentAfterAbsorption:t.sizePercentAtStart,pixelRemain:0};if(0===t.sizePixelAtStart&&i<0)return{areaSnapshot:t,pixelAbsorb:0,percentAfterAbsorption:0,pixelRemain:i};if("percent"===e)return function a(e,t,i){var n=(e.sizePixelAtStart+t)/i*100;{if(0<t){if(null!==e.area.maxSize&&n>e.area.maxSize){var r=e.area.maxSize/100*i;return{areaSnapshot:e,pixelAbsorb:r,percentAfterAbsorption:e.area.maxSize,pixelRemain:e.sizePixelAtStart+t-r}}return{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:100<n?100:n,pixelRemain:0}}if(t<0){if(null!==e.area.minSize&&n<e.area.minSize){var s=e.area.minSize/100*i;return{areaSnapshot:e,pixelAbsorb:s,percentAfterAbsorption:e.area.minSize,pixelRemain:e.sizePixelAtStart+t-s}}return n<0?{areaSnapshot:e,pixelAbsorb:-e.sizePixelAtStart,percentAfterAbsorption:0,pixelRemain:t+e.sizePixelAtStart}:{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:n,pixelRemain:0}}}}(t,i,n);if("pixel"===e)return function r(e,t,i){var n=e.sizePixelAtStart+t;{if(0<t)return null!==e.area.maxSize&&n>e.area.maxSize?{areaSnapshot:e,pixelAbsorb:e.area.maxSize-e.sizePixelAtStart,percentAfterAbsorption:-1,pixelRemain:n-e.area.maxSize}:{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:-1,pixelRemain:0};if(t<0)return null!==e.area.minSize&&n<e.area.minSize?{areaSnapshot:e,pixelAbsorb:e.area.minSize+t-n,percentAfterAbsorption:-1,pixelRemain:n-e.area.minSize}:n<0?{areaSnapshot:e,pixelAbsorb:-e.sizePixelAtStart,percentAfterAbsorption:-1,pixelRemain:t+e.sizePixelAtStart}:{areaSnapshot:e,pixelAbsorb:t,percentAfterAbsorption:-1,pixelRemain:0}}}(t,i)}(n,t,e.remain,r);return e.list.push(i),e.remain=i.pixelRemain,e},{remain:t,list:[]})}function g(e,t){"percent"===e?t.areaSnapshot.area.size=t.percentAfterAbsorption:"pixel"===e&&null!==t.areaSnapshot.area.size&&(t.areaSnapshot.area.size=t.areaSnapshot.sizePixelAtStart+t.pixelAbsorb)}var m=function(){function e(e,t,i,n){this.ngZone=e,this.elRef=t,this.cdRef=i,this.renderer=n,this._direction="horizontal",this._unit="percent",this._gutterSize=11,this._gutterStep=1,this._restrictMove=!1,this._useTransition=!1,this._disabled=!1,this._dir="ltr",this._gutterDblClickDuration=0,this.dragStart=new r.EventEmitter(!1),this.dragEnd=new r.EventEmitter(!1),this.gutterClick=new r.EventEmitter(!1),this.gutterDblClick=new r.EventEmitter(!1),this.dragProgressSubject=new s.Subject,this.dragProgress$=this.dragProgressSubject.asObservable(),this.isDragging=!1,this.dragListeners=[],this.snapshot=null,this.startPoint=null,this.endPoint=null,this.displayedAreas=[],this.hidedAreas=[],this._clickTimeout=null,this.direction=this._direction}return Object.defineProperty(e.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction="vertical"===e?"vertical":"horizontal",this.renderer.addClass(this.elRef.nativeElement,"as-"+this._direction),this.renderer.removeClass(this.elRef.nativeElement,"as-"+("vertical"===this._direction?"horizontal":"vertical")),this.build(!1,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"unit",{get:function(){return this._unit},set:function(e){this._unit="pixel"===e?"pixel":"percent",this.renderer.addClass(this.elRef.nativeElement,"as-"+this._unit),this.renderer.removeClass(this.elRef.nativeElement,"as-"+("pixel"===this._unit?"percent":"pixel")),this.build(!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gutterSize",{get:function(){return this._gutterSize},set:function(e){this._gutterSize=h(e,11),this.build(!1,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gutterStep",{get:function(){return this._gutterStep},set:function(e){this._gutterStep=h(e,1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"restrictMove",{get:function(){return this._restrictMove},set:function(e){this._restrictMove=o(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"useTransition",{get:function(){return this._useTransition},set:function(e){this._useTransition=o(e),this._useTransition?this.renderer.addClass(this.elRef.nativeElement,"as-transition"):this.renderer.removeClass(this.elRef.nativeElement,"as-transition")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=o(e),this._disabled?this.renderer.addClass(this.elRef.nativeElement,"as-disabled"):this.renderer.removeClass(this.elRef.nativeElement,"as-disabled")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dir",{get:function(){return this._dir},set:function(e){this._dir="rtl"===e?"rtl":"ltr",this.renderer.setAttribute(this.elRef.nativeElement,"dir",this._dir)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"gutterDblClickDuration",{get:function(){return this._gutterDblClickDuration},set:function(e){this._gutterDblClickDuration=h(e,0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"transitionEnd",{get:function(){var t=this;return new s.Observable(function(e){return t.transitionEndSubscriber=e}).pipe(i.debounceTime(20))},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;this.ngZone.runOutsideAngular(function(){setTimeout(function(){return e.renderer.addClass(e.elRef.nativeElement,"as-init")})})},e.prototype.getNbGutters=function(){return 0===this.displayedAreas.length?0:this.displayedAreas.length-1},e.prototype.addArea=function(e){var t={component:e,order:0,size:0,minSize:null,maxSize:null};!0===e.visible?(this.displayedAreas.push(t),this.build(!0,!0)):this.hidedAreas.push(t)},e.prototype.removeArea=function(t){if(this.displayedAreas.some(function(e){return e.component===t})){var e=this.displayedAreas.find(function(e){return e.component===t});this.displayedAreas.splice(this.displayedAreas.indexOf(e),1),this.build(!0,!0)}else if(this.hidedAreas.some(function(e){return e.component===t})){e=this.hidedAreas.find(function(e){return e.component===t});this.hidedAreas.splice(this.hidedAreas.indexOf(e),1)}},e.prototype.updateArea=function(e,t,i){!0===e.visible&&this.build(t,i)},e.prototype.showArea=function(t){var e,i=this.hidedAreas.find(function(e){return e.component===t});if(i!==undefined){var n=this.hidedAreas.splice(this.hidedAreas.indexOf(i),1);(e=this.displayedAreas).push.apply(e,l(n)),this.build(!0,!0)}},e.prototype.hideArea=function(t){var e,i=this.displayedAreas.find(function(e){return e.component===t});if(i!==undefined){var n=this.displayedAreas.splice(this.displayedAreas.indexOf(i),1);n.forEach(function(e){e.order=0,e.size=0}),(e=this.hidedAreas).push.apply(e,l(n)),this.build(!0,!0)}},e.prototype.getVisibleAreaSizes=function(){return this.displayedAreas.map(function(e){return null===e.size?"*":e.size})},e.prototype.setVisibleAreaSizes=function(e){if(e.length!==this.displayedAreas.length)return!1;var i=e.map(function(e){return h(e,null)});return!1!==p(this.unit,i)&&(this.displayedAreas.forEach(function(e,t){return e.component._size=i[t]}),this.build(!1,!0),!0)},e.prototype.build=function(e,t){if(this.stopDragging(),!0===e&&(this.displayedAreas.every(function(e){return null!==e.component.order})&&this.displayedAreas.sort(function(e,t){return e.component.order-t.component.order}),this.displayedAreas.forEach(function(e,t){e.order=2*t,e.component.setStyleOrder(e.order)})),!0===t){var i=p(this.unit,this.displayedAreas.map(function(e){return e.component.size}));switch(this.unit){case"percent":var n=100/this.displayedAreas.length;this.displayedAreas.forEach(function(e){e.size=i?e.component.size:n,e.minSize=c(e),e.maxSize=d(e)});break;case"pixel":if(i)this.displayedAreas.forEach(function(e){e.size=e.component.size,e.minSize=c(e),e.maxSize=d(e)});else{var r=this.displayedAreas.filter(function(e){return null===e.component.size});0===r.length||r.length}}}this.refreshStyleSizes(),this.cdRef.markForCheck()},e.prototype.refreshStyleSizes=function(){if(1===this.displayedAreas.length)this.displayedAreas[0].component.setStyleFlex(0,0,"100%",!1,!1);else if("percent"===this.unit){var t=this.getNbGutters()*this.gutterSize;this.displayedAreas.forEach(function(e){e.component.setStyleFlex(0,0,"calc( "+e.size+"% - "+e.size/100*t+"px )",null!==e.minSize&&e.minSize===e.size,null!==e.maxSize&&e.maxSize===e.size)})}else"pixel"===this.unit&&this.displayedAreas.forEach(function(e){null===e.size?e.component.setStyleFlex(1,1,"auto",null!==e.minSize&&e.minSize===e.size,null!==e.maxSize&&e.maxSize===e.size):e.component.setStyleFlex(0,0,e.size+"px",null!==e.minSize&&e.minSize===e.size,null!==e.maxSize&&e.maxSize===e.size)})},e.prototype.clickGutter=function(e,t){var i=this,n=u(e);this.startPoint&&this.startPoint.x===n.x&&this.startPoint.y===n.y&&(null!==this._clickTimeout?(window.clearTimeout(this._clickTimeout),this._clickTimeout=null,this.notify("dblclick",t),this.stopDragging()):this._clickTimeout=window.setTimeout(function(){i._clickTimeout=null,i.notify("click",t),i.stopDragging()},this.gutterDblClickDuration))},e.prototype.startDragging=function(e,i,t){var n=this;e.preventDefault(),e.stopPropagation(),this.startPoint=u(e),null!==this.startPoint&&!0!==this.disabled&&(this.snapshot={gutterNum:t,lastSteppedOffset:0,allAreasSizePixel:a(this.elRef,this.direction)-this.getNbGutters()*this.gutterSize,allInvolvedAreasSizePercent:100,areasBeforeGutter:[],areasAfterGutter:[]},this.displayedAreas.forEach(function(e){var t={area:e,sizePixelAtStart:a(e.component.elRef,n.direction),sizePercentAtStart:"percent"===n.unit?e.size:-1};e.order<i?!0===n.restrictMove?n.snapshot.areasBeforeGutter=[t]:n.snapshot.areasBeforeGutter.unshift(t):e.order>i&&(!0===n.restrictMove?0===n.snapshot.areasAfterGutter.length&&(n.snapshot.areasAfterGutter=[t]):n.snapshot.areasAfterGutter.push(t))}),this.snapshot.allInvolvedAreasSizePercent=l(this.snapshot.areasBeforeGutter,this.snapshot.areasAfterGutter).reduce(function(e,t){return e+t.sizePercentAtStart},0),0!==this.snapshot.areasBeforeGutter.length&&0!==this.snapshot.areasAfterGutter.length&&(this.ngZone.runOutsideAngular(function(){n.dragListeners.push(n.renderer.listen("document","mouseup",n.stopDragging.bind(n))),n.dragListeners.push(n.renderer.listen("document","touchend",n.stopDragging.bind(n))),n.dragListeners.push(n.renderer.listen("document","touchcancel",n.stopDragging.bind(n))),n.dragListeners.push(n.renderer.listen("document","mousemove",n.dragEvent.bind(n))),n.dragListeners.push(n.renderer.listen("document","touchmove",n.dragEvent.bind(n)))}),this.displayedAreas.forEach(function(e){return e.component.lockEvents()}),this.isDragging=!0,this.renderer.addClass(this.elRef.nativeElement,"as-dragging"),this.renderer.addClass(this.gutterEls.toArray()[this.snapshot.gutterNum-1].nativeElement,"as-dragged"),this.notify("start",this.snapshot.gutterNum)))},e.prototype.dragEvent=function(e){var t=this;if(e.preventDefault(),e.stopPropagation(),null!==this._clickTimeout&&(window.clearTimeout(this._clickTimeout),this._clickTimeout=null),!1!==this.isDragging&&(this.endPoint=u(e),null!==this.endPoint)){var i="horizontal"===this.direction?this.startPoint.x-this.endPoint.x:this.startPoint.y-this.endPoint.y;"rtl"===this.dir&&(i=-i);var n=Math.round(i/this.gutterStep)*this.gutterStep;if(n!==this.snapshot.lastSteppedOffset){this.snapshot.lastSteppedOffset=n;var r=f(this.unit,this.snapshot.areasBeforeGutter,-n,this.snapshot.allAreasSizePixel),s=f(this.unit,this.snapshot.areasAfterGutter,n,this.snapshot.allAreasSizePixel);if(0!==r.remain&&0!==s.remain?Math.abs(r.remain)===Math.abs(s.remain)||(Math.abs(r.remain)>Math.abs(s.remain)?s=f(this.unit,this.snapshot.areasAfterGutter,n+r.remain,this.snapshot.allAreasSizePixel):r=f(this.unit,this.snapshot.areasBeforeGutter,-(n-s.remain),this.snapshot.allAreasSizePixel)):0!==r.remain?s=f(this.unit,this.snapshot.areasAfterGutter,n+r.remain,this.snapshot.allAreasSizePixel):0!==s.remain&&(r=f(this.unit,this.snapshot.areasBeforeGutter,-(n-s.remain),this.snapshot.allAreasSizePixel)),"percent"===this.unit){var a=l(r.list,s.list),o=a.find(function(e){return 0!==e.percentAfterAbsorption&&e.percentAfterAbsorption!==e.areaSnapshot.area.minSize&&e.percentAfterAbsorption!==e.areaSnapshot.area.maxSize});o&&(o.percentAfterAbsorption=this.snapshot.allInvolvedAreasSizePercent-a.filter(function(e){return e!==o}).reduce(function(e,t){return e+t.percentAfterAbsorption},0))}r.list.forEach(function(e){return g(t.unit,e)}),s.list.forEach(function(e){return g(t.unit,e)}),this.refreshStyleSizes(),this.notify("progress",this.snapshot.gutterNum)}}},e.prototype.stopDragging=function(e){var t=this;if(e&&(e.preventDefault(),e.stopPropagation()),!1!==this.isDragging){for(this.displayedAreas.forEach(function(e){return e.component.unlockEvents()});0<this.dragListeners.length;){var i=this.dragListeners.pop();i&&i()}this.isDragging=!1,!this.endPoint||this.startPoint.x===this.endPoint.x&&this.startPoint.y===this.endPoint.y||this.notify("end",this.snapshot.gutterNum),this.renderer.removeClass(this.elRef.nativeElement,"as-dragging"),this.renderer.removeClass(this.gutterEls.toArray()[this.snapshot.gutterNum-1].nativeElement,"as-dragged"),this.snapshot=null,this.ngZone.runOutsideAngular(function(){setTimeout(function(){t.startPoint=null,t.endPoint=null})})}},e.prototype.notify=function(e,t){var i=this,n=this.getVisibleAreaSizes();"start"===e?this.dragStart.emit({gutterNum:t,sizes:n}):"end"===e?this.dragEnd.emit({gutterNum:t,sizes:n}):"click"===e?this.gutterClick.emit({gutterNum:t,sizes:n}):"dblclick"===e?this.gutterDblClick.emit({gutterNum:t,sizes:n}):"transitionEnd"===e?this.transitionEndSubscriber&&this.ngZone.run(function(){return i.transitionEndSubscriber.next(n)}):"progress"===e&&this.dragProgressSubject.next({gutterNum:t,sizes:n})},e.prototype.ngOnDestroy=function(){this.stopDragging()},e.decorators=[{type:r.Component,args:[{selector:"as-split",exportAs:"asSplit",changeDetection:r.ChangeDetectionStrategy.OnPush,template:'\n <ng-content></ng-content>\n <ng-template ngFor [ngForOf]="displayedAreas" let-index="index" let-last="last">\n <div *ngIf="last === false" \n #gutterEls\n class="as-split-gutter"\n [style.flex-basis.px]="gutterSize"\n [style.order]="index*2+1"\n (mousedown)="startDragging($event, index*2+1, index+1)"\n (touchstart)="startDragging($event, index*2+1, index+1)"\n (mouseup)="clickGutter($event, index+1)"\n (touchend)="clickGutter($event, index+1)">\n <div class="as-split-gutter-icon"></div>\n </div>\n </ng-template>',styles:[':host{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow:hidden;width:100%;height:100%}:host>.as-split-gutter{flex-grow:0;flex-shrink:0;background-color:#eee;display:flex;align-items:center;justify-content:center}:host>.as-split-gutter>.as-split-gutter-icon{width:100%;height:100%;background-position:center center;background-repeat:no-repeat}:host ::ng-deep>.as-split-area{flex-grow:0;flex-shrink:0;overflow-x:hidden;overflow-y:auto}:host ::ng-deep>.as-split-area.as-hidden{flex-basis:0!important;overflow-x:hidden;overflow-y:hidden}:host.as-horizontal{flex-direction:row}:host.as-horizontal>.as-split-gutter{flex-direction:row;cursor:col-resize;height:100%}:host.as-horizontal>.as-split-gutter>.as-split-gutter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}:host.as-horizontal ::ng-deep>.as-split-area{height:100%}:host.as-vertical{flex-direction:column}:host.as-vertical>.as-split-gutter{flex-direction:column;cursor:row-resize;width:100%}:host.as-vertical>.as-split-gutter .as-split-gutter-icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFCAMAAABl/6zIAAAABlBMVEUAAADMzMzIT8AyAAAAAXRSTlMAQObYZgAAABRJREFUeAFjYGRkwIMJSeMHlBkOABP7AEGzSuPKAAAAAElFTkSuQmCC)}:host.as-vertical ::ng-deep>.as-split-area{width:100%}:host.as-vertical ::ng-deep>.as-split-area.as-hidden{max-width:0}:host.as-disabled>.as-split-gutter{cursor:default}:host.as-disabled>.as-split-gutter .as-split-gutter-icon{background-image:url("")}:host.as-transition.as-init:not(.as-dragging) ::ng-deep>.as-split-area,:host.as-transition.as-init:not(.as-dragging)>.as-split-gutter{transition:flex-basis .3s}']}]}],e.ctorParameters=function(){return[{type:r.NgZone},{type:r.ElementRef},{type:r.ChangeDetectorRef},{type:r.Renderer2}]},e.propDecorators={direction:[{type:r.Input}],unit:[{type:r.Input}],gutterSize:[{type:r.Input}],gutterStep:[{type:r.Input}],restrictMove:[{type:r.Input}],useTransition:[{type:r.Input}],disabled:[{type:r.Input}],dir:[{type:r.Input}],gutterDblClickDuration:[{type:r.Input}],dragStart:[{type:r.Output}],dragEnd:[{type:r.Output}],gutterClick:[{type:r.Output}],gutterDblClick:[{type:r.Output}],transitionEnd:[{type:r.Output}],gutterEls:[{type:r.ViewChildren,args:["gutterEls"]}]},e}(),A=function(){function e(e,t,i,n){this.ngZone=e,this.elRef=t,this.renderer=i,this.split=n,this._order=null,this._size=null,this._minSize=null,this._maxSize=null,this._lockSize=!1,this._visible=!0,this.lockListeners=[],this.renderer.addClass(this.elRef.nativeElement,"as-split-area")}return Object.defineProperty(e.prototype,"order",{get:function(){return this._order},set:function(e){this._order=h(e,null),this.split.updateArea(this,!0,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._size},set:function(e){this._size=h(e,null),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minSize",{get:function(){return this._minSize},set:function(e){this._minSize=h(e,null),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxSize",{get:function(){return this._maxSize},set:function(e){this._maxSize=h(e,null),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lockSize",{get:function(){return this._lockSize},set:function(e){this._lockSize=o(e),this.split.updateArea(this,!1,!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=o(e),this._visible?(this.split.showArea(this),this.renderer.removeClass(this.elRef.nativeElement,"as-hidden")):(this.split.hideArea(this),this.renderer.addClass(this.elRef.nativeElement,"as-hidden"))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this.split.addArea(this),this.ngZone.runOutsideAngular(function(){t.transitionListener=t.renderer.listen(t.elRef.nativeElement,"transitionend",function(e){"flex-basis"===e.propertyName&&t.split.notify("transitionEnd",-1)})})},e.prototype.setStyleOrder=function(e){this.renderer.setStyle(this.elRef.nativeElement,"order",e)},e.prototype.setStyleFlex=function(e,t,i,n,r){this.renderer.setStyle(this.elRef.nativeElement,"flex-grow",e),this.renderer.setStyle(this.elRef.nativeElement,"flex-shrink",t),this.renderer.setStyle(this.elRef.nativeElement,"flex-basis",i),!0===n?this.renderer.addClass(this.elRef.nativeElement,"as-min"):this.renderer.removeClass(this.elRef.nativeElement,"as-min"),!0===r?this.renderer.addClass(this.elRef.nativeElement,"as-max"):this.renderer.removeClass(this.elRef.nativeElement,"as-max")},e.prototype.lockEvents=function(){var e=this;this.ngZone.runOutsideAngular(function(){e.lockListeners.push(e.renderer.listen(e.elRef.nativeElement,"selectstart",function(e){return!1})),e.lockListeners.push(e.renderer.listen(e.elRef.nativeElement,"dragstart",function(e){return!1}))})},e.prototype.unlockEvents=function(){for(;0<this.lockListeners.length;){var e=this.lockListeners.pop();e&&e()}},e.prototype.ngOnDestroy=function(){this.unlockEvents(),this.transitionListener&&this.transitionListener(),this.split.removeArea(this)},e.decorators=[{type:r.Directive,args:[{selector:"as-split-area, [as-split-area]",exportAs:"asSplitArea"}]}],e.ctorParameters=function(){return[{type:r.NgZone},{type:r.ElementRef},{type:r.Renderer2},{type:m}]},e.propDecorators={order:[{type:r.Input}],size:[{type:r.Input}],minSize:[{type:r.Input}],maxSize:[{type:r.Input}],lockSize:[{type:r.Input}],visible:[{type:r.Input}]},e}(),b=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.forChild=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:r.NgModule,args:[{imports:[t.CommonModule],declarations:[m,A],exports:[m,A]}]}],e}();e.AngularSplitModule=b,e.SplitComponent=m,e.SplitAreaDirective=A,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=angular-split.umd.min.js.map

@@ -11,6 +11,6 @@ /**

// TouchEvent
if (((/** @type {?} */ (event))).touches !== undefined && ((/** @type {?} */ (event))).touches.length > 0) {
if (((/** @type {?} */ (event))).changedTouches !== undefined && ((/** @type {?} */ (event))).changedTouches.length > 0) {
return {
x: ((/** @type {?} */ (event))).touches[0].clientX,
y: ((/** @type {?} */ (event))).touches[0].clientY,
x: ((/** @type {?} */ (event))).changedTouches[0].clientX,
y: ((/** @type {?} */ (event))).changedTouches[0].clientY,
};

@@ -295,2 +295,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNwbGl0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQThCO0lBQzVELGFBQWE7SUFDYixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN0RixPQUFPO1lBQ0gsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUMxQyxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1NBQzdDLENBQUM7S0FDTDtJQUNELGFBQWE7U0FDUixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQzlGLE9BQU87WUFDSCxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLE9BQU87WUFDL0IsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPO1NBQ2xDLENBQUM7S0FDTDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFpQixFQUFFLFNBQW9DOztVQUNqRixJQUFJLEdBQUcsQ0FBQyxtQkFBYyxLQUFLLENBQUMsYUFBYSxFQUFBLENBQUMsQ0FBQyxxQkFBcUIsRUFBRTtJQUV4RSxPQUFPLENBQUMsU0FBUyxLQUFLLFlB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QUNMLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBeUIsRUFBRSxJQUE2QjtJQUVuRixJQUFHLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztLQUM3RDtTQUNJLElBQUcsSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUN0QixnREFBZ0Q7UUFDaEQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDdkY7S0FDSjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJQXJlYSwgSVBvaW50LCBJQXJlYVNuYXBzaG90LCBJU3BsaXRTaWRlQWJzb3JwdGlvbkNhcGFjaXR5LCBJQXJlYUFic29ycHRpb25DYXBhY2l0eSB9IGZyb20gJy4vaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQb2ludEZyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBJUG9pbnQge1xyXG4gICAgLy8gVG91Y2hFdmVudFxyXG4gICAgaWYoKDxUb3VjaEV2ZW50PiBldmVudCkudG91Y2hlcyAhPT0gdW5kZWZpbmVkICYmICg8VG91Y2hFdmVudD4gZXZlbnQpLnRvdWNoZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHg6ICg8VG91Y2hFdmVudD4gZXZlbnQpLnRvdWNoZXNbMF0uY2xpZW50WCxcclxuICAgICAgICAgICAgeTogKDxUb3VjaEV2ZW50PiBldmVudCkudG91Y2hlc1swXS5jbGllbnRZLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICAvLyBNb3VzZUV2ZW50XHJcbiAgICBlbHNlIGlmKCg8TW91c2VFdmVudD4gZXZlbnQpLmNsaWVudFggIT09IHVuZGVmaW5lZCAmJiAoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRZICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB4OiAoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRYLFxyXG4gICAgICAgICAgICB5OiAoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRZLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQaXhlbFNpemUoZWxSZWY6IEVsZW1lbnRSZWYsIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyk6IG51bWJlciB7XHJcbiAgICBjb25zdCByZWN0ID0gKDxIVE1MRWxlbWVudD4gZWxSZWYubmF0aXZlRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgcmV0dXJuIChkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykgPyByZWN0LndpZHRoIDogcmVjdC5oZWlnaHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dEJvb2xlYW4odjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHR5cGVvZih2KSA9PT0gJ2Jvb2xlYW4nKSA/IHYgOiAodiA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdHJ1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dFBvc2l0aXZlTnVtYmVyPFQ+KHY6IGFueSwgZGVmYXVsdFZhbHVlOiBUKTogbnVtYmVyIHwgVCB7XHJcbiAgICBpZih2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICB2ID0gTnVtYmVyKHYpO1xyXG4gICAgcmV0dXJuICFpc05hTih2KSAmJiB2ID49IDAgPyB2IDogZGVmYXVsdFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNVc2VyU2l6ZXNWYWxpZCh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBzaXplczogQXJyYXk8bnVtYmVyIHwgbnVsbD4pOiBib29sZWFuIHtcclxuICAgIC8vIEFsbCBzaXplcyBoYXZlIHRvIGJlIG5vdCBudWxsIGFuZCB0b3RhbCBzaG91bGQgYmUgMTAwXHJcbiAgICBpZih1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgICAgICBjb25zdCB0b3RhbCA9IHNpemVzLnJlZHVjZSgodG90YWwsIHMpID0+IHMgIT09IG51bGwgPyB0b3RhbCArIHMgOiB0b3RhbCwgMCk7XHJcbiAgICAgICAgcmV0dXJuIHNpemVzLmV2ZXJ5KHMgPT4gcyAhPT0gbnVsbCkgJiYgdG90YWwgPiA5OS45ICYmIHRvdGFsIDwgMTAwLjE7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIEEgc2l6ZSBhdCBudWxsIGlzIG1hbmRhdG9yeSBidXQgb25seSBvbmUuXHJcbiAgICBpZih1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAgICAgcmV0dXJuIHNpemVzLmZpbHRlcihzID0+IHMgPT09IG51bGwpLmxlbmd0aCA9PT0gMTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNaW5TaXplKGE6IElBcmVhKTogbnVsbCB8IG51bWJlciB7XHJcbiAgICBpZihhLnNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoYS5jb21wb25lbnQubG9ja1NpemUgPT09IHRydWUpIHtcclxuICAgICAgICByZXR1cm4gYS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGEuY29tcG9uZW50Lm1pblNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZihhLmNvbXBvbmVudC5taW5TaXplID4gYS5zaXplKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYS5jb21wb25lbnQubWluU2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNYXhTaXplKGE6IElBcmVhKTogbnVsbCB8IG51bWJlciB7XHJcbiAgICBpZihhLnNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoYS5jb21wb25lbnQubG9ja1NpemUgPT09IHRydWUpIHtcclxuICAgICAgICByZXR1cm4gYS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGEuY29tcG9uZW50Lm1heFNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZihhLmNvbXBvbmVudC5tYXhTaXplIDwgYS5zaXplKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYS5jb21wb25lbnQubWF4U2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEd1dHRlclNpZGVBYnNvcnB0aW9uQ2FwYWNpdHkodW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJywgc2lkZUFyZWFzOiBBcnJheTxJQXJlYVNuYXBzaG90PiwgcGl4ZWxzOiBudW1iZXIsIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXIpOiBJU3BsaXRTaWRlQWJzb3JwdGlvbkNhcGFjaXR5IHtcclxuICAgIHJldHVybiBzaWRlQXJlYXMucmVkdWNlKChhY2MsIGFyZWEpID0+IHtcclxuICAgICAgICBjb25zdCByZXMgPSBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5KHVuaXQsIGFyZWEsIGFjYy5yZW1haW4sIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICAgICAgICBhY2MubGlzdC5wdXNoKHJlcyk7XHJcbiAgICAgICAgYWNjLnJlbWFpbiAgPSByZXMucGl4ZWxSZW1haW47XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHtyZW1haW46IHBpeGVscywgbGlzdDogW119KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eSh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBhcmVhU25hcHNob3Q6IElBcmVhU25hcHNob3QsIHBpeGVsczogbnVtYmVyLCBhbGxBcmVhc1NpemVQaXhlbDogbnVtYmVyKTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkge1xyXG4gICAgLy8gTm8gcGFpbiBubyBnYWluXHJcbiAgICBpZihwaXhlbHMgPT09IDApIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiAwLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3Quc2l6ZVBlcmNlbnRBdFN0YXJ0LFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBBcmVhIHN0YXJ0IGF0IHplcm8gYW5kIG5lZWQgdG8gYmUgcmVkdWNlZCwgbm90IHBvc3NpYmxlXHJcbiAgICBpZihhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCA9PT0gMCAmJiBwaXhlbHMgPCAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogMCxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogMCxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IHBpeGVscyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZih1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgICAgICByZXR1cm4gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBlcmNlbnQoYXJlYVNuYXBzaG90LCBwaXhlbHMsIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICAgIH1cclxuICAgIFxyXG5cdGlmKHVuaXQgPT09ICdwaXhlbCcpIHtcclxuICAgICAgICByZXR1cm4gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBpeGVsKGFyZWFTbmFwc2hvdCwgcGl4ZWxzLCBhbGxBcmVhc1NpemVQaXhlbCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQZXJjZW50KGFyZWFTbmFwc2hvdDogSUFyZWFTbmFwc2hvdCwgcGl4ZWxzOiBudW1iZXIsIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXIpOiBJQXJlYUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcbiAgICBjb25zdCB0ZW1wUGVyY2VudFNpemUgPSB0ZW1wUGl4ZWxTaXplIC8gYWxsQXJlYXNTaXplUGl4ZWwgKiAxMDA7XHJcbiAgICBcclxuICAgIC8vIEVOTEFSR0UgQVJFQVxyXG4gICAgXHJcbiAgICBpZihwaXhlbHMgPiAwKSB7XHJcbiAgICAgICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVscyBcclxuICAgICAgICBpZihhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplICE9PSBudWxsICYmIHRlbXBQZXJjZW50U2l6ZSA+IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUpIHtcclxuICAgICAgICAgICAgLy8gVXNlIGFyZWEuYXJlYS5tYXhTaXplIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgICAgICAgY29uc3QgbWF4U2l6ZVBpeGVsID0gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAvIDEwMCAqIGFsbEFyZWFzU2l6ZVBpeGVsO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IG1heFNpemVQaXhlbCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHMgLSBtYXhTaXplUGl4ZWxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiB0ZW1wUGVyY2VudFNpemUgPiAxMDAgPyAxMDAgOiB0ZW1wUGVyY2VudFNpemUsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSRURVQ0UgQVJFQVxyXG4gICAgXHJcbiAgICBlbHNlIGlmKHBpeGVscyA8IDApIHtcclxuICAgICAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVscyBcclxuICAgICAgICBpZihhcmVhU25hcHNob3QuYXJlYS5taW5TaXplICE9PSBudWxsICYmIHRlbXBQZXJjZW50U2l6ZSA8IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUpIHtcclxuICAgICAgICAgICAgLy8gVXNlIGFyZWEuYXJlYS5taW5TaXplIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgICAgICAgY29uc3QgbWluU2l6ZVBpeGVsID0gYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAvIDEwMCAqIGFsbEFyZWFzU2l6ZVBpeGVsO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IG1pblNpemVQaXhlbCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHMgLSBtaW5TaXplUGl4ZWxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgcmVkdWNlZCB1bmRlciB6ZXJvID4gcmV0dXJuIHJlbWFpbmluZyBwaXhlbHNcclxuICAgICAgICBlbHNlIGlmKHRlbXBQZXJjZW50U2l6ZSA8IDApIHtcclxuICAgICAgICAgICAgLy8gVXNlIDAgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IC1hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IDAsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzICsgYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiB0ZW1wUGVyY2VudFNpemUsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBpeGVsKGFyZWFTbmFwc2hvdDogSUFyZWFTbmFwc2hvdCwgcGl4ZWxzOiBudW1iZXIsIGNvbnRhaW5lclNpemVQaXhlbDogbnVtYmVyKTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkge1xyXG4gICAgY29uc3QgdGVtcFBpeGVsU2l6ZSA9IGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ICsgcGl4ZWxzO1xyXG4gICAgICAgICAgICBcclxuICAgIC8vIEVOTEFSR0UgQVJFQVxyXG5cclxuICAgIGlmKHBpeGVscyA+IDApIHtcclxuICAgICAgICAvLyBJZiBtYXhTaXplICYgbmV3U2l6ZSBiaWdnZXIgdGhhbiBpdCA+IGFic29yYiB0byBtYXggYW5kIHJldHVybiByZW1haW5pbmcgcGl4ZWxzIFxyXG4gICAgICAgIGlmKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA+IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplIC0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiB0ZW1wUGl4ZWxTaXplIC0gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUkVEVUNFIEFSRUFcclxuICAgIFxyXG4gICAgZWxzZSBpZihwaXhlbHMgPCAwKSB7XHJcbiAgICAgICAgLy8gSWYgbWluU2l6ZSAmIG5ld1NpemUgc21hbGxlciB0aGFuIGl0ID4gYWJzb3JiIHRvIG1pbiBhbmQgcmV0dXJuIHJlbWFpbmluZyBwaXhlbHMgXHJcbiAgICAgICAgaWYoYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAhPT0gbnVsbCAmJiB0ZW1wUGl4ZWxTaXplIDwgYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgKyBwaXhlbHMgLSB0ZW1wUGl4ZWxTaXplLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogdGVtcFBpeGVsU2l6ZSAtIGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgcmVkdWNlZCB1bmRlciB6ZXJvID4gcmV0dXJuIHJlbWFpbmluZyBwaXhlbHNcclxuICAgICAgICBlbHNlIGlmKHRlbXBQaXhlbFNpemUgPCAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogLWFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0LFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzICsgYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IDBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQXJlYVNpemUodW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJywgaXRlbTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkpIHtcclxuICAgIFxyXG4gICAgaWYodW5pdCA9PT0gJ3BlcmNlbnQnKSB7XHJcbiAgICAgICAgaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplID0gaXRlbS5wZXJjZW50QWZ0ZXJBYnNvcnB0aW9uO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZih1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAgICAgLy8gVXBkYXRlIHNpemUgZXhjZXB0IGZvciB0aGUgd2lsZGNhcmQgc2l6ZSBhcmVhXHJcbiAgICAgICAgaWYoaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uYXJlYVNuYXBzaG90LmFyZWEuc2l6ZSA9IGl0ZW0uYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBpdGVtLnBpeGVsQWJzb3JiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNwbGl0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQThCO0lBQzVELGFBQWE7SUFDYixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxjQUFjLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNwRyxPQUFPO1lBQ0gsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUNqRCxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1NBQ3BELENBQUM7S0FDTDtJQUNELGFBQWE7U0FDUixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQzlGLE9BQU87WUFDSCxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLE9BQU87WUFDL0IsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPO1NBQ2xDLENBQUM7S0FDTDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFpQixFQUFFLFNBQW9DOztVQUNqRixJQUFJLEdBQUcsQ0FBQyxtQkFBYyxLQUFLLENBQUMsYUFBYSxFQUFBLENBQUMsQ0FBQyxxQkFBcUIsRUFBRTtJQUV4RSxPQUFPLENBQUMsU0FBUyxLQUFLLFlB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QUNMLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBeUIsRUFBRSxJQUE2QjtJQUVuRixJQUFHLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztLQUM3RDtTQUNJLElBQUcsSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUN0QixnREFBZ0Q7UUFDaEQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDdkY7S0FDSjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJQXJlYSwgSVBvaW50LCBJQXJlYVNuYXBzaG90LCBJU3BsaXRTaWRlQWJzb3JwdGlvbkNhcGFjaXR5LCBJQXJlYUFic29ycHRpb25DYXBhY2l0eSB9IGZyb20gJy4vaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRQb2ludEZyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBJUG9pbnQge1xyXG4gICAgLy8gVG91Y2hFdmVudFxyXG4gICAgaWYoKDxUb3VjaEV2ZW50PiBldmVudCkuY2hhbmdlZFRvdWNoZXMgIT09IHVuZGVmaW5lZCAmJiAoPFRvdWNoRXZlbnQ+IGV2ZW50KS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgeDogKDxUb3VjaEV2ZW50PiBldmVudCkuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCxcclxuICAgICAgICAgICAgeTogKDxUb3VjaEV2ZW50PiBldmVudCkuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgLy8gTW91c2VFdmVudFxyXG4gICAgZWxzZSBpZigoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRYICE9PSB1bmRlZmluZWQgJiYgKDxNb3VzZUV2ZW50PiBldmVudCkuY2xpZW50WSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgeDogKDxNb3VzZUV2ZW50PiBldmVudCkuY2xpZW50WCxcclxuICAgICAgICAgICAgeTogKDxNb3VzZUV2ZW50PiBldmVudCkuY2xpZW50WSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UGl4ZWxTaXplKGVsUmVmOiBFbGVtZW50UmVmLCBkaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcpOiBudW1iZXIge1xyXG4gICAgY29uc3QgcmVjdCA9ICg8SFRNTEVsZW1lbnQ+IGVsUmVmLm5hdGl2ZUVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIHJldHVybiAoZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpID8gcmVjdC53aWR0aCA6IHJlY3QuaGVpZ2h0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5wdXRCb29sZWFuKHY6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0eXBlb2YodikgPT09ICdib29sZWFuJykgPyB2IDogKHYgPT09ICdmYWxzZScgPyBmYWxzZSA6IHRydWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5wdXRQb3NpdGl2ZU51bWJlcjxUPih2OiBhbnksIGRlZmF1bHRWYWx1ZTogVCk6IG51bWJlciB8IFQge1xyXG4gICAgaWYodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgdiA9IE51bWJlcih2KTtcclxuICAgIHJldHVybiAhaXNOYU4odikgJiYgdiA+PSAwID8gdiA6IGRlZmF1bHRWYWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVXNlclNpemVzVmFsaWQodW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJywgc2l6ZXM6IEFycmF5PG51bWJlciB8IG51bGw+KTogYm9vbGVhbiB7XHJcbiAgICAvLyBBbGwgc2l6ZXMgaGF2ZSB0byBiZSBub3QgbnVsbCBhbmQgdG90YWwgc2hvdWxkIGJlIDEwMFxyXG4gICAgaWYodW5pdCA9PT0gJ3BlcmNlbnQnKSB7XHJcbiAgICAgICAgY29uc3QgdG90YWwgPSBzaXplcy5yZWR1Y2UoKHRvdGFsLCBzKSA9PiBzICE9PSBudWxsID8gdG90YWwgKyBzIDogdG90YWwsIDApO1xyXG4gICAgICAgIHJldHVybiBzaXplcy5ldmVyeShzID0+IHMgIT09IG51bGwpICYmIHRvdGFsID4gOTkuOSAmJiB0b3RhbCA8IDEwMC4xO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBBIHNpemUgYXQgbnVsbCBpcyBtYW5kYXRvcnkgYnV0IG9ubHkgb25lLlxyXG4gICAgaWYodW5pdCA9PT0gJ3BpeGVsJykge1xyXG4gICAgICAgIHJldHVybiBzaXplcy5maWx0ZXIocyA9PiBzID09PSBudWxsKS5sZW5ndGggPT09IDE7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBcmVhTWluU2l6ZShhOiBJQXJlYSk6IG51bGwgfCBudW1iZXIge1xyXG4gICAgaWYoYS5zaXplID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKGEuY29tcG9uZW50LmxvY2tTaXplID09PSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZihhLmNvbXBvbmVudC5taW5TaXplID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoYS5jb21wb25lbnQubWluU2l6ZSA+IGEuc2l6ZSkge1xyXG4gICAgICAgIHJldHVybiBhLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGEuY29tcG9uZW50Lm1pblNpemU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBcmVhTWF4U2l6ZShhOiBJQXJlYSk6IG51bGwgfCBudW1iZXIge1xyXG4gICAgaWYoYS5zaXplID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKGEuY29tcG9uZW50LmxvY2tTaXplID09PSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZihhLmNvbXBvbmVudC5tYXhTaXplID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoYS5jb21wb25lbnQubWF4U2l6ZSA8IGEuc2l6ZSkge1xyXG4gICAgICAgIHJldHVybiBhLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGEuY29tcG9uZW50Lm1heFNpemU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRHdXR0ZXJTaWRlQWJzb3JwdGlvbkNhcGFjaXR5KHVuaXQ6ICdwZXJjZW50JyB8ICdwaXhlbCcsIHNpZGVBcmVhczogQXJyYXk8SUFyZWFTbmFwc2hvdD4sIHBpeGVsczogbnVtYmVyLCBhbGxBcmVhc1NpemVQaXhlbDogbnVtYmVyKTogSVNwbGl0U2lkZUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgICByZXR1cm4gc2lkZUFyZWFzLnJlZHVjZSgoYWNjLCBhcmVhKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzID0gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eSh1bml0LCBhcmVhLCBhY2MucmVtYWluLCBhbGxBcmVhc1NpemVQaXhlbCk7XHJcbiAgICAgICAgYWNjLmxpc3QucHVzaChyZXMpO1xyXG4gICAgICAgIGFjYy5yZW1haW4gID0gcmVzLnBpeGVsUmVtYWluO1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7cmVtYWluOiBwaXhlbHMsIGxpc3Q6IFtdfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkodW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJywgYXJlYVNuYXBzaG90OiBJQXJlYVNuYXBzaG90LCBwaXhlbHM6IG51bWJlciwgYWxsQXJlYXNTaXplUGl4ZWw6IG51bWJlcik6IElBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IHtcclxuICAgIC8vIE5vIHBhaW4gbm8gZ2FpblxyXG4gICAgaWYocGl4ZWxzID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogMCxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogYXJlYVNuYXBzaG90LnNpemVQZXJjZW50QXRTdGFydCxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IDAsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gQXJlYSBzdGFydCBhdCB6ZXJvIGFuZCBuZWVkIHRvIGJlIHJlZHVjZWQsIG5vdCBwb3NzaWJsZVxyXG4gICAgaWYoYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgPT09IDAgJiYgcGl4ZWxzIDwgMCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IDAsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IDAsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYodW5pdCA9PT0gJ3BlcmNlbnQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQZXJjZW50KGFyZWFTbmFwc2hvdCwgcGl4ZWxzLCBhbGxBcmVhc1NpemVQaXhlbCk7XHJcbiAgICB9XHJcbiAgICBcclxuXHRpZih1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAgICAgcmV0dXJuIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQaXhlbChhcmVhU25hcHNob3QsIHBpeGVscywgYWxsQXJlYXNTaXplUGl4ZWwpO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGVyY2VudChhcmVhU25hcHNob3Q6IElBcmVhU25hcHNob3QsIHBpeGVsczogbnVtYmVyLCBhbGxBcmVhc1NpemVQaXhlbDogbnVtYmVyKTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkge1xyXG4gICAgY29uc3QgdGVtcFBpeGVsU2l6ZSA9IGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ICsgcGl4ZWxzO1xyXG4gICAgY29uc3QgdGVtcFBlcmNlbnRTaXplID0gdGVtcFBpeGVsU2l6ZSAvIGFsbEFyZWFzU2l6ZVBpeGVsICogMTAwO1xyXG4gICAgXHJcbiAgICAvLyBFTkxBUkdFIEFSRUFcclxuICAgIFxyXG4gICAgaWYocGl4ZWxzID4gMCkge1xyXG4gICAgICAgIC8vIElmIG1heFNpemUgJiBuZXdTaXplIGJpZ2dlciB0aGFuIGl0ID4gYWJzb3JiIHRvIG1heCBhbmQgcmV0dXJuIHJlbWFpbmluZyBwaXhlbHMgXHJcbiAgICAgICAgaWYoYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAhPT0gbnVsbCAmJiB0ZW1wUGVyY2VudFNpemUgPiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplKSB7XHJcbiAgICAgICAgICAgIC8vIFVzZSBhcmVhLmFyZWEubWF4U2l6ZSBhcyBuZXdQZXJjZW50U2l6ZSBhbmQgcmV0dXJuIGNhbGN1bGF0ZSBwaXhlbHMgcmVtYWluaW5nXHJcbiAgICAgICAgICAgIGNvbnN0IG1heFNpemVQaXhlbCA9IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgLyAxMDAgKiBhbGxBcmVhc1NpemVQaXhlbDtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBtYXhTaXplUGl4ZWwsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplLFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxSZW1haW46IGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ICsgcGl4ZWxzIC0gbWF4U2l6ZVBpeGVsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogdGVtcFBlcmNlbnRTaXplID4gMTAwID8gMTAwIDogdGVtcFBlcmNlbnRTaXplLFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUkVEVUNFIEFSRUFcclxuICAgIFxyXG4gICAgZWxzZSBpZihwaXhlbHMgPCAwKSB7XHJcbiAgICAgICAgLy8gSWYgbWluU2l6ZSAmIG5ld1NpemUgc21hbGxlciB0aGFuIGl0ID4gYWJzb3JiIHRvIG1pbiBhbmQgcmV0dXJuIHJlbWFpbmluZyBwaXhlbHMgXHJcbiAgICAgICAgaWYoYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAhPT0gbnVsbCAmJiB0ZW1wUGVyY2VudFNpemUgPCBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplKSB7XHJcbiAgICAgICAgICAgIC8vIFVzZSBhcmVhLmFyZWEubWluU2l6ZSBhcyBuZXdQZXJjZW50U2l6ZSBhbmQgcmV0dXJuIGNhbGN1bGF0ZSBwaXhlbHMgcmVtYWluaW5nXHJcbiAgICAgICAgICAgIGNvbnN0IG1pblNpemVQaXhlbCA9IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgLyAxMDAgKiBhbGxBcmVhc1NpemVQaXhlbDtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBtaW5TaXplUGl4ZWwsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplLFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxSZW1haW46IGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ICsgcGl4ZWxzIC0gbWluU2l6ZVBpeGVsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHJlZHVjZWQgdW5kZXIgemVybyA+IHJldHVybiByZW1haW5pbmcgcGl4ZWxzXHJcbiAgICAgICAgZWxzZSBpZih0ZW1wUGVyY2VudFNpemUgPCAwKSB7XHJcbiAgICAgICAgICAgIC8vIFVzZSAwIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiAtYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAwLFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxSZW1haW46IHBpeGVscyArIGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogdGVtcFBlcmNlbnRTaXplLFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQaXhlbChhcmVhU25hcHNob3Q6IElBcmVhU25hcHNob3QsIHBpeGVsczogbnVtYmVyLCBjb250YWluZXJTaXplUGl4ZWw6IG51bWJlcik6IElBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IHtcclxuICAgIGNvbnN0IHRlbXBQaXhlbFNpemUgPSBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscztcclxuICAgICAgICAgICAgXHJcbiAgICAvLyBFTkxBUkdFIEFSRUFcclxuXHJcbiAgICBpZihwaXhlbHMgPiAwKSB7XHJcbiAgICAgICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVscyBcclxuICAgICAgICBpZihhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplICE9PSBudWxsICYmIHRlbXBQaXhlbFNpemUgPiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAtIGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0LFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogdGVtcFBpeGVsU2l6ZSAtIGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IDBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJFRFVDRSBBUkVBXHJcbiAgICBcclxuICAgIGVsc2UgaWYocGl4ZWxzIDwgMCkge1xyXG4gICAgICAgIC8vIElmIG1pblNpemUgJiBuZXdTaXplIHNtYWxsZXIgdGhhbiBpdCA+IGFic29yYiB0byBtaW4gYW5kIHJldHVybiByZW1haW5pbmcgcGl4ZWxzIFxyXG4gICAgICAgIGlmKGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA8IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplICsgcGl4ZWxzIC0gdGVtcFBpeGVsU2l6ZSxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxSZW1haW46IHRlbXBQaXhlbFNpemUgLSBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIElmIHJlZHVjZWQgdW5kZXIgemVybyA+IHJldHVybiByZW1haW5pbmcgcGl4ZWxzXHJcbiAgICAgICAgZWxzZSBpZih0ZW1wUGl4ZWxTaXplIDwgMCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IC1hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxSZW1haW46IHBpeGVscyArIGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUFyZWFTaXplKHVuaXQ6ICdwZXJjZW50JyB8ICdwaXhlbCcsIGl0ZW06IElBcmVhQWJzb3JwdGlvbkNhcGFjaXR5KSB7XHJcbiAgICBcclxuICAgIGlmKHVuaXQgPT09ICdwZXJjZW50Jykge1xyXG4gICAgICAgIGl0ZW0uYXJlYVNuYXBzaG90LmFyZWEuc2l6ZSA9IGl0ZW0ucGVyY2VudEFmdGVyQWJzb3JwdGlvbjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYodW5pdCA9PT0gJ3BpeGVsJykge1xyXG4gICAgICAgIC8vIFVwZGF0ZSBzaXplIGV4Y2VwdCBmb3IgdGhlIHdpbGRjYXJkIHNpemUgYXJlYVxyXG4gICAgICAgIGlmKGl0ZW0uYXJlYVNuYXBzaG90LmFyZWEuc2l6ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgPSBpdGVtLmFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ICsgaXRlbS5waXhlbEFic29yYjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=

@@ -11,6 +11,6 @@ /**

// TouchEvent
if (((/** @type {?} */ (event))).touches !== undefined && ((/** @type {?} */ (event))).touches.length > 0) {
if (((/** @type {?} */ (event))).changedTouches !== undefined && ((/** @type {?} */ (event))).changedTouches.length > 0) {
return {
x: ((/** @type {?} */ (event))).touches[0].clientX,
y: ((/** @type {?} */ (event))).touches[0].clientY,
x: ((/** @type {?} */ (event))).changedTouches[0].clientX,
y: ((/** @type {?} */ (event))).changedTouches[0].clientY,
};

@@ -295,2 +295,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNwbGl0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQThCO0lBQzVELGFBQWE7SUFDYixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN0RixPQUFPO1lBQ0gsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUMxQyxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1NBQzdDLENBQUM7S0FDTDtJQUNELGFBQWE7U0FDUixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQzlGLE9BQU87WUFDSCxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLE9BQU87WUFDL0IsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPO1NBQ2xDLENBQUM7S0FDTDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFpQixFQUFFLFNBQW9DOztRQUNqRixJQUFJLEdBQUcsQ0FBQyxtQkFBYyxLQUFLLENBQUMsYUFBYSxFQUFBLENBQUMsQ0FBQyxxQkFBcUIsRUFBRTtJQUV4RSxPQUFPLENBQUMsU0FBUyxLQUFLLFlB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LEVBQUUsTUFBTTtZQUNuQixzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDMUIsV0FBVyxFQUFFLENBQUM7U0FDakIsQ0FBQztLQUNMO0FBQ0wsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUF5QixFQUFFLElBQTZCO0lBRW5GLElBQUcsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0tBQzdEO1NBQ0ksSUFBRyxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQ3RCLGdEQUFnRDtRQUNoRCxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN2RjtLQUNKO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElBcmVhLCBJUG9pbnQsIElBcmVhU25hcHNob3QsIElTcGxpdFNpZGVBYnNvcnB0aW9uQ2FwYWNpdHksIElBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvaW50RnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IElQb2ludCB7XHJcbiAgICAvLyBUb3VjaEV2ZW50XHJcbiAgICBpZigoPFRvdWNoRXZlbnQ+IGV2ZW50KS50b3VjaGVzICE9PSB1bmRlZmluZWQgJiYgKDxUb3VjaEV2ZW50PiBldmVudCkudG91Y2hlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgeDogKDxUb3VjaEV2ZW50PiBldmVudCkudG91Y2hlc1swXS5jbGllbnRYLFxyXG4gICAgICAgICAgICB5OiAoPFRvdWNoRXZlbnQ+IGV2ZW50KS50b3VjaGVzWzBdLmNsaWVudFksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIE1vdXNlRXZlbnRcclxuICAgIGVsc2UgaWYoKDxNb3VzZUV2ZW50PiBldmVudCkuY2xpZW50WCAhPT0gdW5kZWZpbmVkICYmICg8TW91c2VFdmVudD4gZXZlbnQpLmNsaWVudFkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHg6ICg8TW91c2VFdmVudD4gZXZlbnQpLmNsaWVudFgsXHJcbiAgICAgICAgICAgIHk6ICg8TW91c2VFdmVudD4gZXZlbnQpLmNsaWVudFksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBpeGVsU2l6ZShlbFJlZjogRWxlbWVudFJlZiwgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHJlY3QgPSAoPEhUTUxFbGVtZW50PiBlbFJlZi5uYXRpdmVFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICByZXR1cm4gKGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSA/IHJlY3Qud2lkdGggOiByZWN0LmhlaWdodDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0Qm9vbGVhbih2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodHlwZW9mKHYpID09PSAnYm9vbGVhbicpID8gdiA6ICh2ID09PSAnZmFsc2UnID8gZmFsc2UgOiB0cnVlKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0UG9zaXRpdmVOdW1iZXI8VD4odjogYW55LCBkZWZhdWx0VmFsdWU6IFQpOiBudW1iZXIgfCBUIHtcclxuICAgIGlmKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG5cclxuICAgIHYgPSBOdW1iZXIodik7XHJcbiAgICByZXR1cm4gIWlzTmFOKHYpICYmIHYgPj0gMCA/IHYgOiBkZWZhdWx0VmFsdWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1VzZXJTaXplc1ZhbGlkKHVuaXQ6ICdwZXJjZW50JyB8ICdwaXhlbCcsIHNpemVzOiBBcnJheTxudW1iZXIgfCBudWxsPik6IGJvb2xlYW4ge1xyXG4gICAgLy8gQWxsIHNpemVzIGhhdmUgdG8gYmUgbm90IG51bGwgYW5kIHRvdGFsIHNob3VsZCBiZSAxMDBcclxuICAgIGlmKHVuaXQgPT09ICdwZXJjZW50Jykge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsID0gc2l6ZXMucmVkdWNlKCh0b3RhbCwgcykgPT4gcyAhPT0gbnVsbCA/IHRvdGFsICsgcyA6IHRvdGFsLCAwKTtcclxuICAgICAgICByZXR1cm4gc2l6ZXMuZXZlcnkocyA9PiBzICE9PSBudWxsKSAmJiB0b3RhbCA+IDk5LjkgJiYgdG90YWwgPCAxMDAuMTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gQSBzaXplIGF0IG51bGwgaXMgbWFuZGF0b3J5IGJ1dCBvbmx5IG9uZS5cclxuICAgIGlmKHVuaXQgPT09ICdwaXhlbCcpIHtcclxuICAgICAgICByZXR1cm4gc2l6ZXMuZmlsdGVyKHMgPT4gcyA9PT0gbnVsbCkubGVuZ3RoID09PSAxO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXJlYU1pblNpemUoYTogSUFyZWEpOiBudWxsIHwgbnVtYmVyIHtcclxuICAgIGlmKGEuc2l6ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZihhLmNvbXBvbmVudC5sb2NrU2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBhLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoYS5jb21wb25lbnQubWluU2l6ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGEuY29tcG9uZW50Lm1pblNpemUgPiBhLnNpemUpIHtcclxuICAgICAgICByZXR1cm4gYS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhLmNvbXBvbmVudC5taW5TaXplO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXJlYU1heFNpemUoYTogSUFyZWEpOiBudWxsIHwgbnVtYmVyIHtcclxuICAgIGlmKGEuc2l6ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZihhLmNvbXBvbmVudC5sb2NrU2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBhLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoYS5jb21wb25lbnQubWF4U2l6ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGEuY29tcG9uZW50Lm1heFNpemUgPCBhLnNpemUpIHtcclxuICAgICAgICByZXR1cm4gYS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhLmNvbXBvbmVudC5tYXhTaXplO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3V0dGVyU2lkZUFic29ycHRpb25DYXBhY2l0eSh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBzaWRlQXJlYXM6IEFycmF5PElBcmVhU25hcHNob3Q+LCBwaXhlbHM6IG51bWJlciwgYWxsQXJlYXNTaXplUGl4ZWw6IG51bWJlcik6IElTcGxpdFNpZGVBYnNvcnB0aW9uQ2FwYWNpdHkge1xyXG4gICAgcmV0dXJuIHNpZGVBcmVhcy5yZWR1Y2UoKGFjYywgYXJlYSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlcyA9IGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkodW5pdCwgYXJlYSwgYWNjLnJlbWFpbiwgYWxsQXJlYXNTaXplUGl4ZWwpO1xyXG4gICAgICAgIGFjYy5saXN0LnB1c2gocmVzKTtcclxuICAgICAgICBhY2MucmVtYWluICA9IHJlcy5waXhlbFJlbWFpbjtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgfSwge3JlbWFpbjogcGl4ZWxzLCBsaXN0OiBbXX0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5KHVuaXQ6ICdwZXJjZW50JyB8ICdwaXhlbCcsIGFyZWFTbmFwc2hvdDogSUFyZWFTbmFwc2hvdCwgcGl4ZWxzOiBudW1iZXIsIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXIpOiBJQXJlYUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgICAvLyBObyBwYWluIG5vIGdhaW5cclxuICAgIGlmKHBpeGVscyA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IDAsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IGFyZWFTbmFwc2hvdC5zaXplUGVyY2VudEF0U3RhcnQsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIEFyZWEgc3RhcnQgYXQgemVybyBhbmQgbmVlZCB0byBiZSByZWR1Y2VkLCBub3QgcG9zc2libGVcclxuICAgIGlmKGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ID09PSAwICYmIHBpeGVscyA8IDApIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiAwLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAwLFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKHVuaXQgPT09ICdwZXJjZW50Jykge1xyXG4gICAgICAgIHJldHVybiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGVyY2VudChhcmVhU25hcHNob3QsIHBpeGVscywgYWxsQXJlYXNTaXplUGl4ZWwpO1xyXG4gICAgfVxyXG4gICAgXHJcblx0aWYodW5pdCA9PT0gJ3BpeGVsJykge1xyXG4gICAgICAgIHJldHVybiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGl4ZWwoYXJlYVNuYXBzaG90LCBwaXhlbHMsIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBlcmNlbnQoYXJlYVNuYXBzaG90OiBJQXJlYVNuYXBzaG90LCBwaXhlbHM6IG51bWJlciwgYWxsQXJlYXNTaXplUGl4ZWw6IG51bWJlcik6IElBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IHtcclxuICAgIGNvbnN0IHRlbXBQaXhlbFNpemUgPSBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscztcclxuICAgIGNvbnN0IHRlbXBQZXJjZW50U2l6ZSA9IHRlbXBQaXhlbFNpemUgLyBhbGxBcmVhc1NpemVQaXhlbCAqIDEwMDtcclxuICAgIFxyXG4gICAgLy8gRU5MQVJHRSBBUkVBXHJcbiAgICBcclxuICAgIGlmKHBpeGVscyA+IDApIHtcclxuICAgICAgICAvLyBJZiBtYXhTaXplICYgbmV3U2l6ZSBiaWdnZXIgdGhhbiBpdCA+IGFic29yYiB0byBtYXggYW5kIHJldHVybiByZW1haW5pbmcgcGl4ZWxzIFxyXG4gICAgICAgIGlmKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBlcmNlbnRTaXplID4gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSkge1xyXG4gICAgICAgICAgICAvLyBVc2UgYXJlYS5hcmVhLm1heFNpemUgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICAgICAgICBjb25zdCBtYXhTaXplUGl4ZWwgPSBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplIC8gMTAwICogYWxsQXJlYXNTaXplUGl4ZWw7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogbWF4U2l6ZVBpeGVsLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscyAtIG1heFNpemVQaXhlbFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IHRlbXBQZXJjZW50U2l6ZSA+IDEwMCA/IDEwMCA6IHRlbXBQZXJjZW50U2l6ZSxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IDBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJFRFVDRSBBUkVBXHJcbiAgICBcclxuICAgIGVsc2UgaWYocGl4ZWxzIDwgMCkge1xyXG4gICAgICAgIC8vIElmIG1pblNpemUgJiBuZXdTaXplIHNtYWxsZXIgdGhhbiBpdCA+IGFic29yYiB0byBtaW4gYW5kIHJldHVybiByZW1haW5pbmcgcGl4ZWxzIFxyXG4gICAgICAgIGlmKGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgIT09IG51bGwgJiYgdGVtcFBlcmNlbnRTaXplIDwgYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSkge1xyXG4gICAgICAgICAgICAvLyBVc2UgYXJlYS5hcmVhLm1pblNpemUgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICAgICAgICBjb25zdCBtaW5TaXplUGl4ZWwgPSBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplIC8gMTAwICogYWxsQXJlYXNTaXplUGl4ZWw7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogbWluU2l6ZVBpeGVsLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscyAtIG1pblNpemVQaXhlbFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiByZWR1Y2VkIHVuZGVyIHplcm8gPiByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgICAgIGVsc2UgaWYodGVtcFBlcmNlbnRTaXplIDwgMCkge1xyXG4gICAgICAgICAgICAvLyBVc2UgMCBhcyBuZXdQZXJjZW50U2l6ZSBhbmQgcmV0dXJuIGNhbGN1bGF0ZSBwaXhlbHMgcmVtYWluaW5nXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogLWFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0LFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogMCxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMgKyBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IHRlbXBQZXJjZW50U2l6ZSxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IDBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGl4ZWwoYXJlYVNuYXBzaG90OiBJQXJlYVNuYXBzaG90LCBwaXhlbHM6IG51bWJlciwgY29udGFpbmVyU2l6ZVBpeGVsOiBudW1iZXIpOiBJQXJlYUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcbiAgICAgICAgICAgIFxyXG4gICAgLy8gRU5MQVJHRSBBUkVBXHJcblxyXG4gICAgaWYocGl4ZWxzID4gMCkge1xyXG4gICAgICAgIC8vIElmIG1heFNpemUgJiBuZXdTaXplIGJpZ2dlciB0aGFuIGl0ID4gYWJzb3JiIHRvIG1heCBhbmQgcmV0dXJuIHJlbWFpbmluZyBwaXhlbHMgXHJcbiAgICAgICAgaWYoYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAhPT0gbnVsbCAmJiB0ZW1wUGl4ZWxTaXplID4gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgLSBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxSZW1haW46IHRlbXBQaXhlbFNpemUgLSBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSRURVQ0UgQVJFQVxyXG4gICAgXHJcbiAgICBlbHNlIGlmKHBpeGVscyA8IDApIHtcclxuICAgICAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVscyBcclxuICAgICAgICBpZihhcmVhU25hcHNob3QuYXJlYS5taW5TaXplICE9PSBudWxsICYmIHRlbXBQaXhlbFNpemUgPCBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSArIHBpeGVscyAtIHRlbXBQaXhlbFNpemUsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiB0ZW1wUGl4ZWxTaXplIC0gYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBJZiByZWR1Y2VkIHVuZGVyIHplcm8gPiByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgICAgIGVsc2UgaWYodGVtcFBpeGVsU2l6ZSA8IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiAtYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMgKyBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVBcmVhU2l6ZSh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBpdGVtOiBJQXJlYUFic29ycHRpb25DYXBhY2l0eSkge1xyXG4gICAgXHJcbiAgICBpZih1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgICAgICBpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgPSBpdGVtLnBlcmNlbnRBZnRlckFic29ycHRpb247XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHVuaXQgPT09ICdwaXhlbCcpIHtcclxuICAgICAgICAvLyBVcGRhdGUgc2l6ZSBleGNlcHQgZm9yIHRoZSB3aWxkY2FyZCBzaXplIGFyZWFcclxuICAgICAgICBpZihpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplID0gaXRlbS5hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIGl0ZW0ucGl4ZWxBYnNvcmI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXNwbGl0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQThCO0lBQzVELGFBQWE7SUFDYixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxjQUFjLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNwRyxPQUFPO1lBQ0gsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztZQUNqRCxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1NBQ3BELENBQUM7S0FDTDtJQUNELGFBQWE7U0FDUixJQUFHLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1FBQzlGLE9BQU87WUFDSCxDQUFDLEVBQUUsQ0FBQyxtQkFBYSxLQUFLLEVBQUEsQ0FBQyxDQUFDLE9BQU87WUFDL0IsQ0FBQyxFQUFFLENBQUMsbUJBQWEsS0FBSyxFQUFBLENBQUMsQ0FBQyxPQUFPO1NBQ2xDLENBQUM7S0FDTDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFpQixFQUFFLFNBQW9DOztRQUNqRixJQUFJLEdBQUcsQ0FBQyxtQkFBYyxLQUFLLENBQUMsYUFBYSxFQUFBLENBQUMsQ0FBQyxxQkFBcUIsRUFBRTtJQUV4RSxPQUFPLENBQUMsU0FBUyxLQUFLLFlB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LEVBQUUsTUFBTTtZQUNuQixzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDMUIsV0FBVyxFQUFFLENBQUM7U0FDakIsQ0FBQztLQUNMO0FBQ0wsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUF5QixFQUFFLElBQTZCO0lBRW5GLElBQUcsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0tBQzdEO1NBQ0ksSUFBRyxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQ3RCLGdEQUFnRDtRQUNoRCxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN2RjtLQUNKO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElBcmVhLCBJUG9pbnQsIElBcmVhU25hcHNob3QsIElTcGxpdFNpZGVBYnNvcnB0aW9uQ2FwYWNpdHksIElBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvaW50RnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IElQb2ludCB7XHJcbiAgICAvLyBUb3VjaEV2ZW50XHJcbiAgICBpZigoPFRvdWNoRXZlbnQ+IGV2ZW50KS5jaGFuZ2VkVG91Y2hlcyAhPT0gdW5kZWZpbmVkICYmICg8VG91Y2hFdmVudD4gZXZlbnQpLmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB4OiAoPFRvdWNoRXZlbnQ+IGV2ZW50KS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYLFxyXG4gICAgICAgICAgICB5OiAoPFRvdWNoRXZlbnQ+IGV2ZW50KS5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICAvLyBNb3VzZUV2ZW50XHJcbiAgICBlbHNlIGlmKCg8TW91c2VFdmVudD4gZXZlbnQpLmNsaWVudFggIT09IHVuZGVmaW5lZCAmJiAoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRZICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB4OiAoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRYLFxyXG4gICAgICAgICAgICB5OiAoPE1vdXNlRXZlbnQ+IGV2ZW50KS5jbGllbnRZLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQaXhlbFNpemUoZWxSZWY6IEVsZW1lbnRSZWYsIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyk6IG51bWJlciB7XHJcbiAgICBjb25zdCByZWN0ID0gKDxIVE1MRWxlbWVudD4gZWxSZWYubmF0aXZlRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgcmV0dXJuIChkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykgPyByZWN0LndpZHRoIDogcmVjdC5oZWlnaHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dEJvb2xlYW4odjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHR5cGVvZih2KSA9PT0gJ2Jvb2xlYW4nKSA/IHYgOiAodiA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdHJ1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dFBvc2l0aXZlTnVtYmVyPFQ+KHY6IGFueSwgZGVmYXVsdFZhbHVlOiBUKTogbnVtYmVyIHwgVCB7XHJcbiAgICBpZih2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICB2ID0gTnVtYmVyKHYpO1xyXG4gICAgcmV0dXJuICFpc05hTih2KSAmJiB2ID49IDAgPyB2IDogZGVmYXVsdFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNVc2VyU2l6ZXNWYWxpZCh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBzaXplczogQXJyYXk8bnVtYmVyIHwgbnVsbD4pOiBib29sZWFuIHtcclxuICAgIC8vIEFsbCBzaXplcyBoYXZlIHRvIGJlIG5vdCBudWxsIGFuZCB0b3RhbCBzaG91bGQgYmUgMTAwXHJcbiAgICBpZih1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgICAgICBjb25zdCB0b3RhbCA9IHNpemVzLnJlZHVjZSgodG90YWwsIHMpID0+IHMgIT09IG51bGwgPyB0b3RhbCArIHMgOiB0b3RhbCwgMCk7XHJcbiAgICAgICAgcmV0dXJuIHNpemVzLmV2ZXJ5KHMgPT4gcyAhPT0gbnVsbCkgJiYgdG90YWwgPiA5OS45ICYmIHRvdGFsIDwgMTAwLjE7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIEEgc2l6ZSBhdCBudWxsIGlzIG1hbmRhdG9yeSBidXQgb25seSBvbmUuXHJcbiAgICBpZih1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAgICAgcmV0dXJuIHNpemVzLmZpbHRlcihzID0+IHMgPT09IG51bGwpLmxlbmd0aCA9PT0gMTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNaW5TaXplKGE6IElBcmVhKTogbnVsbCB8IG51bWJlciB7XHJcbiAgICBpZihhLnNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoYS5jb21wb25lbnQubG9ja1NpemUgPT09IHRydWUpIHtcclxuICAgICAgICByZXR1cm4gYS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGEuY29tcG9uZW50Lm1pblNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZihhLmNvbXBvbmVudC5taW5TaXplID4gYS5zaXplKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYS5jb21wb25lbnQubWluU2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNYXhTaXplKGE6IElBcmVhKTogbnVsbCB8IG51bWJlciB7XHJcbiAgICBpZihhLnNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoYS5jb21wb25lbnQubG9ja1NpemUgPT09IHRydWUpIHtcclxuICAgICAgICByZXR1cm4gYS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGEuY29tcG9uZW50Lm1heFNpemUgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZihhLmNvbXBvbmVudC5tYXhTaXplIDwgYS5zaXplKSB7XHJcbiAgICAgICAgcmV0dXJuIGEuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYS5jb21wb25lbnQubWF4U2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEd1dHRlclNpZGVBYnNvcnB0aW9uQ2FwYWNpdHkodW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJywgc2lkZUFyZWFzOiBBcnJheTxJQXJlYVNuYXBzaG90PiwgcGl4ZWxzOiBudW1iZXIsIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXIpOiBJU3BsaXRTaWRlQWJzb3JwdGlvbkNhcGFjaXR5IHtcclxuICAgIHJldHVybiBzaWRlQXJlYXMucmVkdWNlKChhY2MsIGFyZWEpID0+IHtcclxuICAgICAgICBjb25zdCByZXMgPSBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5KHVuaXQsIGFyZWEsIGFjYy5yZW1haW4sIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICAgICAgICBhY2MubGlzdC5wdXNoKHJlcyk7XHJcbiAgICAgICAgYWNjLnJlbWFpbiAgPSByZXMucGl4ZWxSZW1haW47XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHtyZW1haW46IHBpeGVscywgbGlzdDogW119KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eSh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBhcmVhU25hcHNob3Q6IElBcmVhU25hcHNob3QsIHBpeGVsczogbnVtYmVyLCBhbGxBcmVhc1NpemVQaXhlbDogbnVtYmVyKTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkge1xyXG4gICAgLy8gTm8gcGFpbiBubyBnYWluXHJcbiAgICBpZihwaXhlbHMgPT09IDApIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiAwLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3Quc2l6ZVBlcmNlbnRBdFN0YXJ0LFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvLyBBcmVhIHN0YXJ0IGF0IHplcm8gYW5kIG5lZWQgdG8gYmUgcmVkdWNlZCwgbm90IHBvc3NpYmxlXHJcbiAgICBpZihhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCA9PT0gMCAmJiBwaXhlbHMgPCAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogMCxcclxuICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogMCxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IHBpeGVscyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZih1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgICAgICByZXR1cm4gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBlcmNlbnQoYXJlYVNuYXBzaG90LCBwaXhlbHMsIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICAgIH1cclxuICAgIFxyXG5cdGlmKHVuaXQgPT09ICdwaXhlbCcpIHtcclxuICAgICAgICByZXR1cm4gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBpeGVsKGFyZWFTbmFwc2hvdCwgcGl4ZWxzLCBhbGxBcmVhc1NpemVQaXhlbCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQZXJjZW50KGFyZWFTbmFwc2hvdDogSUFyZWFTbmFwc2hvdCwgcGl4ZWxzOiBudW1iZXIsIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXIpOiBJQXJlYUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcbiAgICBjb25zdCB0ZW1wUGVyY2VudFNpemUgPSB0ZW1wUGl4ZWxTaXplIC8gYWxsQXJlYXNTaXplUGl4ZWwgKiAxMDA7XHJcbiAgICBcclxuICAgIC8vIEVOTEFSR0UgQVJFQVxyXG4gICAgXHJcbiAgICBpZihwaXhlbHMgPiAwKSB7XHJcbiAgICAgICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVscyBcclxuICAgICAgICBpZihhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplICE9PSBudWxsICYmIHRlbXBQZXJjZW50U2l6ZSA+IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUpIHtcclxuICAgICAgICAgICAgLy8gVXNlIGFyZWEuYXJlYS5tYXhTaXplIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgICAgICAgY29uc3QgbWF4U2l6ZVBpeGVsID0gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAvIDEwMCAqIGFsbEFyZWFzU2l6ZVBpeGVsO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IG1heFNpemVQaXhlbCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHMgLSBtYXhTaXplUGl4ZWxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiB0ZW1wUGVyY2VudFNpemUgPiAxMDAgPyAxMDAgOiB0ZW1wUGVyY2VudFNpemUsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSRURVQ0UgQVJFQVxyXG4gICAgXHJcbiAgICBlbHNlIGlmKHBpeGVscyA8IDApIHtcclxuICAgICAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVscyBcclxuICAgICAgICBpZihhcmVhU25hcHNob3QuYXJlYS5taW5TaXplICE9PSBudWxsICYmIHRlbXBQZXJjZW50U2l6ZSA8IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUpIHtcclxuICAgICAgICAgICAgLy8gVXNlIGFyZWEuYXJlYS5taW5TaXplIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgICAgICAgY29uc3QgbWluU2l6ZVBpeGVsID0gYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAvIDEwMCAqIGFsbEFyZWFzU2l6ZVBpeGVsO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IG1pblNpemVQaXhlbCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHMgLSBtaW5TaXplUGl4ZWxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgcmVkdWNlZCB1bmRlciB6ZXJvID4gcmV0dXJuIHJlbWFpbmluZyBwaXhlbHNcclxuICAgICAgICBlbHNlIGlmKHRlbXBQZXJjZW50U2l6ZSA8IDApIHtcclxuICAgICAgICAgICAgLy8gVXNlIDAgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IC1hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IDAsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzICsgYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiB0ZW1wUGVyY2VudFNpemUsXHJcbiAgICAgICAgICAgIHBpeGVsUmVtYWluOiAwXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eVBpeGVsKGFyZWFTbmFwc2hvdDogSUFyZWFTbmFwc2hvdCwgcGl4ZWxzOiBudW1iZXIsIGNvbnRhaW5lclNpemVQaXhlbDogbnVtYmVyKTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkge1xyXG4gICAgY29uc3QgdGVtcFBpeGVsU2l6ZSA9IGFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0ICsgcGl4ZWxzO1xyXG4gICAgICAgICAgICBcclxuICAgIC8vIEVOTEFSR0UgQVJFQVxyXG5cclxuICAgIGlmKHBpeGVscyA+IDApIHtcclxuICAgICAgICAvLyBJZiBtYXhTaXplICYgbmV3U2l6ZSBiaWdnZXIgdGhhbiBpdCA+IGFic29yYiB0byBtYXggYW5kIHJldHVybiByZW1haW5pbmcgcGl4ZWxzIFxyXG4gICAgICAgIGlmKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA+IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplIC0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQsXHJcbiAgICAgICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgICAgIHBpeGVsUmVtYWluOiB0ZW1wUGl4ZWxTaXplIC0gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgICAgICBwaXhlbFJlbWFpbjogMFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUkVEVUNFIEFSRUFcclxuICAgIFxyXG4gICAgZWxzZSBpZihwaXhlbHMgPCAwKSB7XHJcbiAgICAgICAgLy8gSWYgbWluU2l6ZSAmIG5ld1NpemUgc21hbGxlciB0aGFuIGl0ID4gYWJzb3JiIHRvIG1pbiBhbmQgcmV0dXJuIHJlbWFpbmluZyBwaXhlbHMgXHJcbiAgICAgICAgaWYoYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAhPT0gbnVsbCAmJiB0ZW1wUGl4ZWxTaXplIDwgYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgKyBwaXhlbHMgLSB0ZW1wUGl4ZWxTaXplLFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogdGVtcFBpeGVsU2l6ZSAtIGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWYgcmVkdWNlZCB1bmRlciB6ZXJvID4gcmV0dXJuIHJlbWFpbmluZyBwaXhlbHNcclxuICAgICAgICBlbHNlIGlmKHRlbXBQaXhlbFNpemUgPCAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgICAgICAgICBwaXhlbEFic29yYjogLWFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0LFxyXG4gICAgICAgICAgICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgICAgICAgICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzICsgYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICAgICAgICBwaXhlbEFic29yYjogcGl4ZWxzLFxyXG4gICAgICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICAgICAgcGl4ZWxSZW1haW46IDBcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQXJlYVNpemUodW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJywgaXRlbTogSUFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkpIHtcclxuICAgIFxyXG4gICAgaWYodW5pdCA9PT0gJ3BlcmNlbnQnKSB7XHJcbiAgICAgICAgaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplID0gaXRlbS5wZXJjZW50QWZ0ZXJBYnNvcnB0aW9uO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZih1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAgICAgLy8gVXBkYXRlIHNpemUgZXhjZXB0IGZvciB0aGUgd2lsZGNhcmQgc2l6ZSBhcmVhXHJcbiAgICAgICAgaWYoaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uYXJlYVNuYXBzaG90LmFyZWEuc2l6ZSA9IGl0ZW0uYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBpdGVtLnBpeGVsQWJzb3JiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
{
"name": "angular-split",
"version": "3.0.0-beta.8",
"version": "3.0.0-beta.9",
"description": "Angular UI library to split views and allow dragging to resize areas using CSS flexbox layout.",

@@ -5,0 +5,0 @@ "author": "bertrandg",

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 too big to display

Sorry, the diff of this file is not supported yet

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

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