Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-12-06 16:12:32 +0300
committerJulius Härtl <jus@bitgrid.net>2019-12-06 16:12:32 +0300
commit6b7d87ff4faaff99f576954b8dc46fd766d76c77 (patch)
tree880b074253679e4cce66407dc236bbac322d5461 /js/vendors~files-modal.js.map
parent797e29ccf94d253c70879f75ea92a1f812b76572 (diff)
Bump bundles
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'js/vendors~files-modal.js.map')
-rw-r--r--js/vendors~files-modal.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/js/vendors~files-modal.js.map b/js/vendors~files-modal.js.map
index 660553a0e..0ad4013d6 100644
--- a/js/vendors~files-modal.js.map
+++ b/js/vendors~files-modal.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/internals/forced-string-trim-method.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/Modal.js","webpack:///./node_modules/hammerjs/hammer.js"],"names":["DESCRIPTORS","defineProperty","f","FunctionPrototype","Function","prototype","FunctionPrototypeToString","toString","nameRE","configurable","get","call","this","match","error","$","$trim","trim","target","proto","forced","forcedStringTrimMethod","fails","whitespaces","module","exports","METHOD_NAME","name","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","create","getOwnPropertyNames","getOwnPropertyDescriptor","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","length","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","arguments","dummy","valueOf","keys","split","j","constructor","isObject","setPrototypeOf","$this","Wrapper","NewTarget","NewTargetPrototype","$filter","filter","HAS_SPECIES_SUPPORT","arrayMethodHasSpeciesSupport","USES_TO_LENGTH","0","callbackfn","undefined","DOMIterables","forEach","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","$forEach","sloppyArrayMethod","assign","stat","Object","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","max","Math","min","splice","start","deleteCount","insertCount","actualDeleteCount","A","k","from","to","O","len","actualStart","argumentsLength","TypeError","t","window","e","o","i","l","m","c","d","enumerable","r","Symbol","toStringTag","__esModule","bind","n","default","hasOwnProperty","p","s","a","options","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","concat","1","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","join","push","10","104","locals","11","111","112","12","VTooltip","defaultTemplate","defaultHtml","125","13","before","$slots","text","util","warn","$destroy","$el","remove","beforeUpdate","getText","data","computed","isLongText","methods","14","149","Date","setTimeout","pause","clearTimeout","clear","getTimeLeft","getStateRunning","components","Actions","ActionButton","directives","tooltip","props","title","type","String","hasPrevious","Boolean","hasNext","outTransition","enableSlideshow","clearViewDelay","Number","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","size","validator","indexOf","canClose","mc","showModal","clearView","clearViewTimeout","playing","slideshowTimeout","modalTransitionName","playPauseTitle","watch","beforeMount","addEventListener","handleKeydown","beforeDestroy","removeEventListener","mounted","handleMouseMove","$refs","mask","on","handleSwipe","document","body","insertBefore","lastChild","unmounted","off","destroy","previous","resetSlideshow","$emit","next","close","keyCode","togglePlayPause","handleSlideshow","clearSlideshowTimeout","$nextTick","u","g","$createElement","_self","_c","attrs","ref","staticClass","click","mousemove","touchmove","rawName","expression","class","invisible","_v","_s","_e","_t","modifiers","auto","height","width","stroke","fill","cx","cy","icon","currentTarget","15","16","17","18","19","2","id","css","media","sourceMap","parts","DEBUG","Error","head","getElementsByTagName","navigator","test","userAgent","toLowerCase","refs","b","createElement","appendChild","querySelector","parentNode","removeChild","w","setAttribute","ssrId","styleSheet","cssText","firstChild","createTextNode","h","v","childNodes","20","21","random","replace","substr","218","219","22","23","24","$parent","mixins","closeAfterClick","isIconUrl","URL","onClick","closeMenu","25","29","3","30","33","Array","isArray","34","getBoundingClientRect","documentElement","clientHeight","clientWidth","top","left","bottom","right","any","all","offsetY","offsetX","componentOptions","tag","ClickOutside","directive","open","menuAlign","defaultIcon","actions","opened","focusIndex","randomId","offsetYArrow","rotateArrow","children","$children","hasMultipleActions","isValidSingleAction","firstActionElement","firstActionVNode","firstAction","firstActionBinding","is","href","exact","firstActionEvent","listeners","firstActionEventBinding","firstActionClass","onOpen","initActions","toggleMenu","focusFirstAction","menu","round","onMouseFocusAction","activeElement","closest","querySelectorAll","focusAction","removeCurrentActive","classList","focus","focusPreviousAction","focusNextAction","focusLastAction","execFirstAction","_b","rel","_d","hidden","keydown","_k","ctrlKey","shiftKey","altKey","metaKey","preventDefault","style","marginRight","marginTop","tabindex","transform","36","37","38","4","41","48","disabled","isFocusable","focusable","backgroundImage","domProps","textContent","49","5","50","55","6","7","71","72","73","74","75","76","8","80","9","exportName","VENDOR_PREFIXES","TEST_ELEMENT","TYPE_FUNCTION","abs","now","setTimeoutContext","fn","timeout","context","bindFn","invokeArrayArg","arg","each","obj","iterator","deprecate","method","message","deprecationMessage","stack","log","console","apply","output","source","nextKey","extend","dest","src","merge","inherit","child","base","properties","childP","baseP","_super","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","removeEventListeners","hasParent","node","inStr","str","find","inArray","findByKey","toArray","uniqueArray","sort","results","values","prefixed","property","prefix","prop","camelProp","toUpperCase","_uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","inputTarget","domHandler","ev","enable","init","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offset","offsetDelta","prevDelta","prevInput","x","deltaX","y","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","end","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","direction","last","lastInterval","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","sqrt","atan2","PI","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","DEDUP_TIMEOUT","DEDUP_DISTANCE","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","set","compute","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","Recognizer","defaults","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","isValid","threshold","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","toggleCssProps","item","stop","force","stopped","curRecognizer","existing","events","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press"],"mappings":"uFAAA,IAAIA,EAAc,EAAQ,KACtBC,EAAiB,EAAQ,KAAuCC,EAEhEC,EAAoBC,SAASC,UAC7BC,EAA4BH,EAAkBI,SAC9CC,EAAS,yBAKTR,GAJO,SAIkBG,GAC3BF,EAAeE,EALN,OAK+B,CACtCM,cAAc,EACdC,IAAK,WACH,IACE,OAAOJ,EAA0BK,KAAKC,MAAMC,MAAML,GAAQ,GAC1D,MAAOM,GACP,MAAO,Q,iCChBf,IAAIC,EAAI,EAAQ,KACZC,EAAQ,EAAQ,KAA4BC,KAKhDF,EAAE,CAAEG,OAAQ,SAAUC,OAAO,EAAMC,OAJN,EAAQ,IAIMC,CAAuB,SAAW,CAC3EJ,KAAM,WACJ,OAAOD,EAAMJ,U,oBCTjB,IAAIU,EAAQ,EAAQ,KAChBC,EAAc,EAAQ,KAM1BC,EAAOC,QAAU,SAAUC,GACzB,OAAOJ,GAAM,WACX,QAASC,EAAYG,MANf,aAMqCA,MAAyBH,EAAYG,GAAaC,OAASD,O,iCCR1G,IAAI1B,EAAc,EAAQ,KACtB4B,EAAS,EAAQ,KACjBC,EAAW,EAAQ,KACnBC,EAAW,EAAQ,KACnBC,EAAM,EAAQ,KACdC,EAAU,EAAQ,KAClBC,EAAoB,EAAQ,KAC5BC,EAAc,EAAQ,KACtBZ,EAAQ,EAAQ,KAChBa,EAAS,EAAQ,KACjBC,EAAsB,EAAQ,KAA8ClC,EAC5EmC,EAA2B,EAAQ,KAAmDnC,EACtFD,EAAiB,EAAQ,KAAuCC,EAChEe,EAAO,EAAQ,KAA4BA,KAG3CqB,EAAeV,EAAa,OAC5BW,EAAkBD,EAAajC,UAG/BmC,EALS,UAKQR,EAAQG,EAAOI,IAIhCE,EAAW,SAAUC,GACvB,IACIC,EAAOC,EAAOC,EAAOC,EAASC,EAAQC,EAAQC,EAAOC,EADrDC,EAAKjB,EAAYQ,GAAU,GAE/B,GAAiB,iBAANS,GAAkBA,EAAGH,OAAS,EAGvC,GAAc,MADdL,GADAQ,EAAKlC,EAAKkC,IACCC,WAAW,KACQ,KAAVT,GAElB,GAAc,MADdC,EAAQO,EAAGC,WAAW,KACQ,MAAVR,EAAe,OAAOS,SACrC,GAAc,KAAVV,EAAc,CACvB,OAAQQ,EAAGC,WAAW,IACpB,KAAK,GAAI,KAAK,GAAIP,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQK,EAInB,IADAH,GADAD,EAASI,EAAGG,MAAM,IACFN,OACXC,EAAQ,EAAGA,EAAQD,EAAQC,IAI9B,IAHAC,EAAOH,EAAOK,WAAWH,IAGd,IAAMC,EAAOJ,EAAS,OAAOO,IACxC,OAAOE,SAASR,EAAQF,GAE5B,OAAQM,GAKZ,GAAItB,EAtCS,UAsCSS,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAS3F,IARA,IAcqBkB,EAdjBC,EAAgB,SAAgBC,GAClC,IAAIP,EAAKQ,UAAUX,OAAS,EAAI,EAAIU,EAChCE,EAAQhD,KACZ,OAAOgD,aAAiBH,IAElBjB,EAAiBlB,GAAM,WAAciB,EAAgBsB,QAAQlD,KAAKiD,MA5C/D,UA4C4E5B,EAAQ4B,IACvF3B,EAAkB,IAAIK,EAAaG,EAASU,IAAMS,EAAOH,GAAiBhB,EAASU,IAElFW,EAAO9D,EAAcoC,EAAoBE,GAAgB,6KAMhEyB,MAAM,KAAMC,EAAI,EAAQF,EAAKd,OAASgB,EAAGA,IACrCjC,EAAIO,EAAckB,EAAMM,EAAKE,MAAQjC,EAAI0B,EAAeD,IAC1DvD,EAAewD,EAAeD,EAAKnB,EAAyBC,EAAckB,IAG9EC,EAAcpD,UAAYkC,EAC1BA,EAAgB0B,YAAcR,EAC9B3B,EAASF,EA5DE,SA4Dc6B,K,oBC5E3B,IAAIS,EAAW,EAAQ,KACnBC,EAAiB,EAAQ,KAG7B3C,EAAOC,QAAU,SAAU2C,EAAOR,EAAOS,GACvC,IAAIC,EAAWC,EAUf,OAPEJ,GAE0C,mBAAlCG,EAAYV,EAAMK,cAC1BK,IAAcD,GACdH,EAASK,EAAqBD,EAAUjE,YACxCkE,IAAuBF,EAAQhE,WAC/B8D,EAAeC,EAAOG,GACjBH,I,iCCdT,IAAIrD,EAAI,EAAQ,KACZyD,EAAU,EAAQ,KAAgCC,OAClDnD,EAAQ,EAAQ,KAGhBoD,EAF+B,EAAQ,IAEjBC,CAA6B,UAEnDC,EAAiBF,IAAwBpD,GAAM,WACjD,GAAGmD,OAAO9D,KAAK,CAAEqC,QAAS,EAAG6B,EAAG,IAAK,SAAU1B,GAAM,MAAMA,QAM7DpC,EAAE,CAAEG,OAAQ,QAASC,OAAO,EAAMC,QAASsD,IAAwBE,GAAkB,CACnFH,OAAQ,SAAgBK,GACtB,OAAON,EAAQ5D,KAAMkE,EAAYnB,UAAUX,OAAS,EAAIW,UAAU,QAAKoB,O,oBCjB3E,IAAInD,EAAS,EAAQ,KACjBoD,EAAe,EAAQ,KACvBC,EAAU,EAAQ,KAClBC,EAA8B,EAAQ,KAE1C,IAAK,IAAIC,KAAmBH,EAAc,CACxC,IAAII,EAAaxD,EAAOuD,GACpBE,EAAsBD,GAAcA,EAAW/E,UAEnD,GAAIgF,GAAuBA,EAAoBJ,UAAYA,EAAS,IAClEC,EAA4BG,EAAqB,UAAWJ,GAC5D,MAAOnE,GACPuE,EAAoBJ,QAAUA,K,iCCXlC,IAAIK,EAAW,EAAQ,KAAgCL,QACnDM,EAAoB,EAAQ,KAIhC/D,EAAOC,QAAU8D,EAAkB,WAAa,SAAiBT,GAC/D,OAAOQ,EAAS1E,KAAMkE,EAAYnB,UAAUX,OAAS,EAAIW,UAAU,QAAKoB,IACtE,GAAGE,S,oBCRP,IAAIlE,EAAI,EAAQ,KACZyE,EAAS,EAAQ,KAIrBzE,EAAE,CAAEG,OAAQ,SAAUuE,MAAM,EAAMrE,OAAQsE,OAAOF,SAAWA,GAAU,CACpEA,OAAQA,K,iCCLV,IAAIzE,EAAI,EAAQ,KACZ4E,EAAkB,EAAQ,KAC1BC,EAAY,EAAQ,KACpBC,EAAW,EAAQ,KACnBC,EAAW,EAAQ,KACnBC,EAAqB,EAAQ,KAC7BC,EAAiB,EAAQ,KACzBrB,EAA+B,EAAQ,KAEvCsB,EAAMC,KAAKD,IACXE,EAAMD,KAAKC,IAOfpF,EAAE,CAAEG,OAAQ,QAASC,OAAO,EAAMC,QAASuD,EAA6B,WAAa,CACnFyB,OAAQ,SAAgBC,EAAOC,GAC7B,IAIIC,EAAaC,EAAmBC,EAAGC,EAAGC,EAAMC,EAJ5CC,EAAIf,EAASlF,MACbkG,EAAMjB,EAASgB,EAAE7D,QACjB+D,EAAcpB,EAAgBU,EAAOS,GACrCE,EAAkBrD,UAAUX,OAWhC,GATwB,IAApBgE,EACFT,EAAcC,EAAoB,EACL,IAApBQ,GACTT,EAAc,EACdC,EAAoBM,EAAMC,IAE1BR,EAAcS,EAAkB,EAChCR,EAAoBL,EAAIF,EAAIL,EAAUU,GAAc,GAAIQ,EAAMC,IAE5DD,EAAMP,EAAcC,EAtBL,iBAuBjB,MAAMS,UAtB0B,mCAyBlC,IADAR,EAAIV,EAAmBc,EAAGL,GACrBE,EAAI,EAAGA,EAAIF,EAAmBE,KACjCC,EAAOI,EAAcL,KACTG,GAAGb,EAAeS,EAAGC,EAAGG,EAAEF,IAGxC,GADAF,EAAEzD,OAASwD,EACPD,EAAcC,EAAmB,CACnC,IAAKE,EAAIK,EAAaL,EAAII,EAAMN,EAAmBE,IAEjDE,EAAKF,EAAIH,GADTI,EAAOD,EAAIF,KAECK,EAAGA,EAAED,GAAMC,EAAEF,UACbE,EAAED,GAEhB,IAAKF,EAAII,EAAKJ,EAAII,EAAMN,EAAoBD,EAAaG,WAAYG,EAAEH,EAAI,QACtE,GAAIH,EAAcC,EACvB,IAAKE,EAAII,EAAMN,EAAmBE,EAAIK,EAAaL,IAEjDE,EAAKF,EAAIH,EAAc,GADvBI,EAAOD,EAAIF,EAAoB,KAEnBK,EAAGA,EAAED,GAAMC,EAAEF,UACbE,EAAED,GAGlB,IAAKF,EAAI,EAAGA,EAAIH,EAAaG,IAC3BG,EAAEH,EAAIK,GAAepD,UAAU+C,EAAI,GAGrC,OADAG,EAAE7D,OAAS8D,EAAMN,EAAoBD,EAC9BE,M,qBC/DV,SAASA,EAAES,GAAqD1F,EAAOC,QAAQyF,IAA/E,CAA8RC,QAAO,WAAW,OAAO,SAASV,GAAG,IAAIS,EAAE,GAAG,SAASE,EAAEC,GAAG,GAAGH,EAAEG,GAAG,OAAOH,EAAEG,GAAG5F,QAAQ,IAAI6F,EAAEJ,EAAEG,GAAG,CAACC,EAAED,EAAEE,GAAE,EAAG9F,QAAQ,IAAI,OAAOgF,EAAEY,GAAG1G,KAAK2G,EAAE7F,QAAQ6F,EAAEA,EAAE7F,QAAQ2F,GAAGE,EAAEC,GAAE,EAAGD,EAAE7F,QAAQ,OAAO2F,EAAEI,EAAEf,EAAEW,EAAEK,EAAEP,EAAEE,EAAEM,EAAE,SAASjB,EAAES,EAAEG,GAAGD,EAAEC,EAAEZ,EAAES,IAAIxB,OAAOzF,eAAewG,EAAES,EAAE,CAACS,YAAW,EAAGjH,IAAI2G,KAAKD,EAAEQ,EAAE,SAASnB,GAAG,oBAAoBoB,QAAQA,OAAOC,aAAapC,OAAOzF,eAAewG,EAAEoB,OAAOC,YAAY,CAACpE,MAAM,WAAWgC,OAAOzF,eAAewG,EAAE,aAAa,CAAC/C,OAAM,KAAM0D,EAAEF,EAAE,SAAST,EAAES,GAAG,GAAG,EAAEA,IAAIT,EAAEW,EAAEX,IAAI,EAAES,EAAE,OAAOT,EAAE,GAAG,EAAES,GAAG,iBAAiBT,GAAGA,GAAGA,EAAEsB,WAAW,OAAOtB,EAAE,IAAIY,EAAE3B,OAAOvD,OAAO,MAAM,GAAGiF,EAAEQ,EAAEP,GAAG3B,OAAOzF,eAAeoH,EAAE,UAAU,CAACM,YAAW,EAAGjE,MAAM+C,IAAI,EAAES,GAAG,iBAAiBT,EAAE,IAAI,IAAIa,KAAKb,EAAEW,EAAEM,EAAEL,EAAEC,EAAE,SAASJ,GAAG,OAAOT,EAAES,IAAIc,KAAK,KAAKV,IAAI,OAAOD,GAAGD,EAAEa,EAAE,SAASxB,GAAG,IAAIS,EAAET,GAAGA,EAAEsB,WAAW,WAAW,OAAOtB,EAAEyB,SAAS,WAAW,OAAOzB,GAAG,OAAOW,EAAEM,EAAER,EAAE,IAAIA,GAAGA,GAAGE,EAAEC,EAAE,SAASZ,EAAES,GAAG,OAAOxB,OAAOrF,UAAU8H,eAAexH,KAAK8F,EAAES,IAAIE,EAAEgB,EAAE,SAAShB,EAAEA,EAAEiB,EAAE,KAAv5B,CAA65B,CAACxD,EAAE,SAAS4B,EAAES,EAAEE,GAAG,aAAa,SAASC,EAAEZ,EAAES,EAAEE,EAAEC,EAAEC,EAAEW,EAAEK,EAAEV,GAAG,IAAIS,EAAEZ,EAAE,mBAAmBhB,EAAEA,EAAE8B,QAAQ9B,EAAE,GAAGS,IAAIO,EAAEe,OAAOtB,EAAEO,EAAEgB,gBAAgBrB,EAAEK,EAAEiB,WAAU,GAAIrB,IAAII,EAAEkB,YAAW,GAAIV,IAAIR,EAAEmB,SAAS,UAAUX,GAAGK,GAAGD,EAAE,SAAS5B,IAAIA,EAAEA,GAAG7F,KAAKiI,QAAQjI,KAAKiI,OAAOC,YAAYlI,KAAKmI,QAAQnI,KAAKmI,OAAOF,QAAQjI,KAAKmI,OAAOF,OAAOC,aAAa,oBAAoBE,sBAAsBvC,EAAEuC,qBAAqB1B,GAAGA,EAAE3G,KAAKC,KAAK6F,GAAGA,GAAGA,EAAEwC,uBAAuBxC,EAAEwC,sBAAsBC,IAAIZ,IAAIb,EAAE0B,aAAad,GAAGf,IAAIe,EAAET,EAAE,WAAWN,EAAE3G,KAAKC,KAAKA,KAAKwI,MAAMC,SAASC,aAAahC,GAAGe,EAAE,GAAGZ,EAAEkB,WAAW,CAAClB,EAAE8B,cAAclB,EAAE,IAAId,EAAEE,EAAEe,OAAOf,EAAEe,OAAO,SAAS/B,EAAES,GAAG,OAAOmB,EAAE1H,KAAKuG,GAAGK,EAAEd,EAAES,QAAQ,CAAC,IAAIQ,EAAED,EAAE+B,aAAa/B,EAAE+B,aAAa9B,EAAE,GAAG+B,OAAO/B,EAAEW,GAAG,CAACA,GAAG,MAAM,CAAC5G,QAAQgF,EAAE8B,QAAQd,GAAGL,EAAEM,EAAER,EAAE,KAAI,WAAW,OAAOG,MAAKqC,EAAE,SAASjD,EAAES,EAAEE,GAAG,aAAaX,EAAEhF,QAAQ,SAASgF,GAAG,IAAIS,EAAE,GAAG,OAAOA,EAAE3G,SAAS,WAAW,OAAOK,KAAK+I,KAAI,SAASzC,GAAG,IAAIE,EAAE,SAASX,EAAES,GAAG,IAAmXoB,EAAEV,EAAES,EAAnXjB,EAAEX,EAAE,IAAI,GAAGY,EAAEZ,EAAE,GAAG,IAAIY,EAAE,OAAOD,EAAE,GAAGF,GAAG,mBAAmB0C,KAAK,CAAC,IAAItC,GAAGgB,EAAEjB,EAAEO,EAAEgC,KAAKC,SAASC,mBAAmBC,KAAKC,UAAU1B,MAAMD,EAAE,+DAA+DoB,OAAO7B,GAAG,OAAO6B,OAAOpB,EAAE,QAAQJ,EAAEZ,EAAE4C,QAAQN,KAAI,SAASlD,GAAG,MAAM,iBAAiBgD,OAAOpC,EAAE6C,YAAYT,OAAOhD,EAAE,UAAS,MAAM,CAACW,GAAGqC,OAAOxB,GAAGwB,OAAO,CAACnC,IAAI6C,KAAK,MAAgB,MAAM,CAAC/C,GAAG+C,KAAK,MAAtZ,CAA6ZjD,EAAET,GAAG,OAAOS,EAAE,GAAG,UAAUuC,OAAOvC,EAAE,GAAG,KAAKuC,OAAOrC,EAAE,KAAKA,KAAI+C,KAAK,KAAKjD,EAAEI,EAAE,SAASb,EAAEW,GAAG,iBAAiBX,IAAIA,EAAE,CAAC,CAAC,KAAKA,EAAE,MAAM,IAAI,IAAIY,EAAE,GAAGC,EAAE,EAAEA,EAAE1G,KAAKoC,OAAOsE,IAAI,CAAC,IAAIW,EAAErH,KAAK0G,GAAG,GAAG,MAAMW,IAAIZ,EAAEY,IAAG,GAAI,IAAI,IAAIK,EAAE,EAAEA,EAAE7B,EAAEzD,OAAOsF,IAAI,CAAC,IAAIV,EAAEnB,EAAE6B,GAAG,MAAMV,EAAE,IAAIP,EAAEO,EAAE,MAAMR,IAAIQ,EAAE,GAAGA,EAAE,GAAGR,EAAEA,IAAIQ,EAAE,GAAG,IAAI6B,OAAO7B,EAAE,GAAG,WAAW6B,OAAOrC,EAAE,MAAMF,EAAEkD,KAAKxC,MAAMV,IAAImD,GAAG,SAAS5D,EAAES,GAAGT,EAAEhF,QAAQ,qsGAAqsG6I,IAAI,SAAS7D,EAAES,EAAEE,GAAG,IAAIC,EAAED,EAAE,KAAK,iBAAiBC,IAAIA,EAAE,CAAC,CAACZ,EAAEa,EAAED,EAAE,MAAMA,EAAEkD,SAAS9D,EAAEhF,QAAQ4F,EAAEkD,SAAQ,EAAGnD,EAAE,GAAGc,SAAS,WAAWb,GAAE,EAAG,KAAKmD,GAAG,SAAS/D,EAAES,GAAGT,EAAEhF,QAAQ,82JAA82JgJ,IAAI,SAAShE,EAAES,EAAEE,GAAG,aAAa,IAAIC,EAAED,EAAE,IAAIA,EAAEa,EAAEZ,GAAGiB,GAAGoC,IAAI,SAASjE,EAAES,EAAEE,IAAIX,EAAEhF,QAAQ2F,EAAE,EAAFA,EAAK,IAAKgD,KAAK,CAAC3D,EAAEa,EAAE,ioCAAioC,MAAMqD,GAAG,SAASlE,EAAES,EAAEE,GAAG,aAAaA,EAAEQ,EAAEV,GAAG,IAAIG,EAAED,EAAE,GAAGA,EAAE;;;;;;;;;;;;;;;;;;;;;;;AAuB72YC,EAAEuD,SAASrC,QAAQsC,gBAAgB,kDAAkDpB,OAAO,UAAU,6EAA6EpC,EAAEuD,SAASrC,QAAQuC,aAAY,EAAG5D,EAAEgB,QAAQb,EAAEuD,UAAUG,IAAI,SAAStE,EAAES,KAAK8D,GAAG,SAASvE,EAAES,EAAEE,GAAG,aAAaA,EAAE,GAAGA,EAAE,IAAI,IAAIC,EAAED,EAAE,GAAGE,EAAEF,EAAEa,EAAEZ;;;;;;;;;;;;;;;;;;;;;GAqBxTH,EAAEoB,EAAE,CAAC2C,OAAO,WAAWrK,KAAKsK,OAAOhD,SAAS,KAAKtH,KAAKuK,KAAKlK,SAASqG,EAAEgB,EAAE8C,KAAKC,KAAK,GAAG5B,OAAO7I,KAAKyI,SAAS1H,KAAK,2DAA2Df,MAAMA,KAAK0K,WAAW1K,KAAK2K,IAAIC,WAAWC,aAAa,WAAW7K,KAAKuK,KAAKvK,KAAK8K,WAAWC,KAAK,WAAW,MAAM,CAACR,KAAKvK,KAAK8K,YAAYE,SAAS,CAACC,WAAW,WAAW,OAAOjL,KAAKuK,MAAMvK,KAAKuK,KAAKlK,OAAO+B,OAAO,KAAK8I,QAAQ,CAACJ,QAAQ,WAAW,OAAO9K,KAAKsK,OAAOhD,QAAQtH,KAAKsK,OAAOhD,QAAQ,GAAGiD,KAAKlK,OAAO,OAAO8K,GAAG,SAAStF,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAoBuK,IAAI,SAASvF,EAAEW,EAAEC,GAAG,aAAaA,EAAEO,EAAER,GAAG,IAAIE,EAAED,EAAE,IAAIY,GAAGZ,EAAE,IAAIA,EAAE,IAAIA,EAAE,KAAKiB,EAAEjB,EAAEY,EAAEA,GAAGL,EAAEP,EAAE,IAAIgB,EAAEhB,EAAE,IAAII,EAAEJ,EAAE;;;;;;;;;;;;;;;;;;;;;GAsBpoB,SAASE,EAAEd,EAAES,GAAG,IAAIE,EAAEC,EAAEC,EAAEW,EAAEf,EAAEtG,KAAKyF,MAAM,WAAWiB,GAAE,EAAGD,EAAE,IAAI4E,KAAK7E,EAAE8E,WAAWzF,EAAEwB,IAAIrH,KAAKuL,MAAM,WAAW7E,GAAE,EAAG8E,aAAahF,GAAGa,GAAG,IAAIgE,KAAK5E,GAAGzG,KAAKyL,MAAM,WAAW/E,GAAE,EAAG8E,aAAahF,GAAGa,EAAE,GAAGrH,KAAK0L,YAAY,WAAW,OAAOhF,IAAI1G,KAAKuL,QAAQvL,KAAKyF,SAAS4B,GAAGrH,KAAK2L,gBAAgB,WAAW,OAAOjF,GAAG1G,KAAKyF,QAAQ,IAAIqB,EAAE,CAAC/F,KAAK,QAAQ6K,WAAW,CAACC,QAAQ7E,EAAEM,QAAQwE,aAAarE,EAAEH,SAASyE,WAAW,CAACC,QAAQnF,EAAES,SAAS2E,MAAM,CAACC,MAAM,CAACC,KAAKC,OAAO9E,QAAQ,IAAI+E,YAAY,CAACF,KAAKG,QAAQhF,SAAQ,GAAIiF,QAAQ,CAACJ,KAAKG,QAAQhF,SAAQ,GAAIkF,cAAc,CAACL,KAAKG,QAAQhF,SAAQ,GAAImF,gBAAgB,CAACN,KAAKG,QAAQhF,SAAQ,GAAIoF,eAAe,CAACP,KAAKQ,OAAOrF,QAAQ,KAAKsF,eAAe,CAACT,KAAKQ,OAAOrF,QAAQ,KAAKuF,gBAAgB,CAACV,KAAKG,QAAQhF,SAAQ,GAAIwF,YAAY,CAACX,KAAKG,QAAQhF,SAAQ,GAAIyF,iBAAiB,CAACZ,KAAKG,QAAQhF,SAAQ,GAAI0F,KAAK,CAACb,KAAKC,OAAO9E,QAAQ,SAAS2F,UAAU,SAASpH,GAAG,OAAO,IAAI,CAAC,SAAS,QAAQ,QAAQqH,QAAQrH,KAAKsH,SAAS,CAAChB,KAAKG,QAAQhF,SAAQ,IAAKyD,KAAK,WAAW,MAAM,CAACqC,GAAG,KAAKC,WAAU,EAAGC,WAAU,EAAGC,iBAAiB,KAAKC,SAAQ,EAAGC,iBAAiB,OAAOzC,SAAS,CAAC0C,oBAAoB,WAAW,MAAM,SAAS7E,OAAO7I,KAAKwM,cAAc,MAAM,OAAOmB,eAAe,WAAW,OAAO3N,KAAKwN,QAAQlH,EAAE,OAAO,mBAAmBA,EAAE,OAAO,qBAAqBsH,MAAM,CAACf,gBAAgB,SAAShH,GAAG7F,KAAKyN,mBAAmB5H,EAAE7F,KAAKyN,iBAAiBlC,QAAQvL,KAAKyN,iBAAiBhI,WAAWoI,YAAY,WAAWtH,OAAOuH,iBAAiB,UAAU9N,KAAK+N,gBAAgBC,cAAc,WAAWzH,OAAO0H,oBAAoB,UAAUjO,KAAK+N,gBAAgBG,QAAQ,WAAW,IAAIrI,EAAE7F,KAAKA,KAAKqN,WAAU,EAAGrN,KAAKmO,kBAAkBnO,KAAKoN,GAAG,IAAI1F,EAAEA,EAAE1H,KAAKoO,MAAMC,MAAMrO,KAAKoN,GAAGkB,GAAG,wBAAuB,SAAShI,GAAGT,EAAE0I,YAAYjI,MAAKkI,SAASC,KAAKC,aAAa1O,KAAK2K,IAAI6D,SAASC,KAAKE,YAAYC,UAAU,WAAW5O,KAAKoN,GAAGyB,IAAI,wBAAwB7O,KAAKoN,GAAG0B,WAAW5D,QAAQ,CAAC6D,SAAS,SAASlJ,GAAG7F,KAAKqM,cAAcxG,GAAG7F,KAAKgP,iBAAiBhP,KAAKiP,MAAM,WAAWpJ,KAAKqJ,KAAK,SAASrJ,GAAG7F,KAAKuM,UAAU1G,GAAG7F,KAAKgP,iBAAiBhP,KAAKiP,MAAM,OAAOpJ,KAAKsJ,MAAM,SAAStJ,GAAG,IAAIS,EAAEtG,KAAKA,KAAKmN,WAAWnN,KAAKqN,WAAU,EAAG/B,YAAW,WAAWhF,EAAE2I,MAAM,QAAQpJ,KAAI,OAAOkI,cAAc,SAASlI,GAAG,OAAOA,EAAEuJ,SAAS,KAAK,GAAGpP,KAAK+O,SAASlJ,GAAG,MAAM,KAAK,GAAG,KAAK,GAAG7F,KAAKkP,KAAKrJ,GAAG,MAAM,KAAK,GAAG7F,KAAKmP,MAAMtJ,KAAK0I,YAAY,SAAS1I,GAAG7F,KAAK8M,cAAc,cAAcjH,EAAEsG,KAAKnM,KAAKkP,KAAKrJ,GAAG,eAAeA,EAAEsG,MAAMnM,KAAK+O,SAASlJ,KAAKsI,gBAAgB,WAAW,IAAItI,EAAE7F,KAAKA,KAAK0M,eAAe,IAAI1M,KAAKsN,WAAU,EAAG9B,aAAaxL,KAAKuN,kBAAkBvN,KAAKuN,iBAAiBjC,YAAW,WAAWzF,EAAEyH,WAAU,IAAItN,KAAK0M,kBAAkB2C,gBAAgB,WAAWrP,KAAKwN,SAASxN,KAAKwN,QAAQxN,KAAKwN,QAAQxN,KAAKsP,kBAAkBtP,KAAKuP,yBAAyBP,eAAe,WAAWhP,KAAKwN,SAASxN,KAAKwN,QAAQxN,KAAKuP,wBAAwBvP,KAAKwP,WAAU,WAAWxP,KAAKqP,sBAAqBC,gBAAgB,WAAW,IAAIzJ,EAAE7F,KAAKA,KAAKwN,SAAQ,EAAGxN,KAAKuM,QAAQvM,KAAKyN,iBAAiB,IAAI9G,GAAE,WAAWd,EAAEqJ,OAAOrJ,EAAEyJ,oBAAmBtP,KAAK4M,iBAAiB5M,KAAKwN,SAAQ,EAAGxN,KAAKuP,0BAA0BA,sBAAsB,WAAWvP,KAAKyN,kBAAkBzN,KAAKyN,iBAAiBhC,WAAWgE,GAAGhJ,EAAE,KAAKA,EAAE,IAAInH,EAAEmH,EAAE,KAAKiJ,EAAEjJ,EAAEY,EAAE/H,GAAGkI,EAAE1C,OAAO2K,EAAE/H,EAAT5C,CAAYgC,GAAE,WAAW,IAAIjB,EAAE7F,KAAKsG,EAAET,EAAE8J,eAAenJ,EAAEX,EAAE+J,MAAMC,IAAIvJ,EAAE,OAAOE,EAAE,aAAa,CAACsJ,MAAM,CAAC/O,KAAK,SAAS,CAACyF,EAAE,MAAM,CAACuJ,IAAI,OAAOC,YAAY,aAAa1B,GAAG,CAAC2B,MAAMpK,EAAEsI,gBAAgB+B,UAAUrK,EAAEsI,gBAAgBgC,UAAUtK,EAAEsI,kBAAkB,CAAC3H,EAAE,aAAa,CAACsJ,MAAM,CAAC/O,KAAK,oBAAoB,CAACyF,EAAE,MAAM,CAACuF,WAAW,CAAC,CAAChL,KAAK,OAAOqP,QAAQ,SAAStN,OAAO+C,EAAEyH,UAAU+C,WAAW,eAAeL,YAAY,eAAeM,MAAM,CAACC,UAAU1K,EAAEyH,YAAY,CAAC,KAAKzH,EAAEqG,MAAM7L,OAAOmG,EAAE,MAAM,CAACwJ,YAAY,eAAe,CAACnK,EAAE2K,GAAG,eAAe3K,EAAE4K,GAAG5K,EAAEqG,OAAO,gBAAgBrG,EAAE6K,KAAK7K,EAAE2K,GAAG,KAAKhK,EAAE,MAAM,CAACwJ,YAAY,cAAc,CAACxJ,EAAE,UAAU,CAACwJ,YAAY,kBAAkB,CAACnK,EAAE8K,GAAG,YAAY,GAAG9K,EAAE2K,GAAG,KAAK3K,EAAE0G,SAAS1G,EAAE4G,gBAAgBjG,EAAE,SAAS,CAACuF,WAAW,CAAC,CAAChL,KAAK,UAAUqP,QAAQ,iBAAiBtN,MAAM+C,EAAE8H,eAAe0C,WAAW,iBAAiBO,UAAU,CAACC,MAAK,KAAMb,YAAY,aAAaM,MAAM,CAAC,qBAAqBzK,EAAEgH,iBAAiByB,GAAG,CAAC2B,MAAMpK,EAAEwJ,kBAAkB,CAAC7I,EAAE,MAAM,CAAC8J,MAAM,CAACzK,EAAE2H,QAAQ,aAAa,cAAc,CAAChH,EAAE,OAAO,CAACwJ,YAAY,mBAAmB,CAACnK,EAAE2K,GAAG,qBAAqB3K,EAAE4K,GAAG5K,EAAE8H,gBAAgB,wBAAwB9H,EAAE2K,GAAG,KAAK3K,EAAE2H,QAAQhH,EAAE,MAAM,CAACwJ,YAAY,gBAAgBF,MAAM,CAACgB,OAAO,KAAKC,MAAM,OAAO,CAACvK,EAAE,SAAS,CAACwJ,YAAY,wBAAwBF,MAAM,CAACkB,OAAO,QAAQ,eAAe,IAAIC,KAAK,cAAcjK,EAAE,KAAKkK,GAAG,KAAKC,GAAG,UAAUtL,EAAE6K,OAAO7K,EAAE6K,KAAK7K,EAAE2K,GAAG,KAAK3K,EAAEsH,SAAS3G,EAAE,UAAU,CAACwJ,YAAY,gBAAgB,CAACxJ,EAAE,eAAe,CAACsJ,MAAM,CAACsB,KAAK,cAAc9C,GAAG,CAAC2B,MAAMpK,EAAEsJ,QAAQ,CAACtJ,EAAE2K,GAAG,mBAAmB3K,EAAE4K,GAAG5K,EAAES,EAAE,OAAO,UAAU,qBAAqB,GAAGT,EAAE6K,MAAM,OAAO7K,EAAE2K,GAAG,KAAKhK,EAAE,aAAa,CAACsJ,MAAM,CAAC/O,KAAK8E,EAAE6H,sBAAsB,CAAClH,EAAE,MAAM,CAACuF,WAAW,CAAC,CAAChL,KAAK,OAAOqP,QAAQ,SAAStN,MAAM+C,EAAEwH,UAAUgD,WAAW,cAAcL,YAAY,gBAAgBM,MAAM,CAAC,kBAAkBzK,EAAEmH,KAAKnH,EAAEkH,iBAAiB,mCAAmC,IAAIuB,GAAG,CAAC2B,MAAM,SAAS3J,GAAG,OAAOA,EAAEhG,SAASgG,EAAE+K,cAAc,KAAKxL,EAAEsJ,MAAM7I,MAAM,CAACE,EAAE,aAAa,CAACsJ,MAAM,CAAC/O,KAAK,oBAAoB,CAACyF,EAAE,IAAI,CAACuF,WAAW,CAAC,CAAChL,KAAK,OAAOqP,QAAQ,SAAStN,MAAM+C,EAAEwG,cAAcxG,EAAEyH,UAAU+C,WAAW,8BAA8BL,YAAY,OAAOM,MAAM,CAACC,UAAU1K,EAAEyH,YAAYzH,EAAEwG,aAAaiC,GAAG,CAAC2B,MAAMpK,EAAEkJ,WAAW,CAACvI,EAAE,MAAM,CAACwJ,YAAY,sBAAsB,CAACxJ,EAAE,OAAO,CAACwJ,YAAY,mBAAmB,CAACnK,EAAE2K,GAAG,qBAAqB3K,EAAE4K,GAAG5K,EAAES,EAAE,OAAO,aAAa,4BAA4BT,EAAE2K,GAAG,KAAKhK,EAAE,MAAM,CAACwJ,YAAY,mBAAmB,CAACnK,EAAE8K,GAAG,YAAY,GAAG9K,EAAE2K,GAAG,KAAKhK,EAAE,aAAa,CAACsJ,MAAM,CAAC/O,KAAK,oBAAoB,CAACyF,EAAE,IAAI,CAACuF,WAAW,CAAC,CAAChL,KAAK,OAAOqP,QAAQ,SAAStN,MAAM+C,EAAE0G,UAAU1G,EAAEyH,UAAU+C,WAAW,0BAA0BL,YAAY,OAAOM,MAAM,CAACC,UAAU1K,EAAEyH,YAAYzH,EAAE0G,SAAS+B,GAAG,CAAC2B,MAAMpK,EAAEqJ,OAAO,CAAC1I,EAAE,MAAM,CAACwJ,YAAY,kBAAkB,CAACxJ,EAAE,OAAO,CAACwJ,YAAY,mBAAmB,CAACnK,EAAE2K,GAAG,qBAAqB3K,EAAE4K,GAAG5K,EAAES,EAAE,OAAO,SAAS,6BAA6B,MAAM,OAAM,IAAG,EAAG,KAAK,WAAW,MAAM,mBAAmBoJ,EAAEhI,GAAGgI,IAAIlI,GAAG,IAAIZ,EAAEY,EAAE3G,QAAQ4F,EAAEK,EAAEN,EAAE,SAAQ,WAAW,OAAOI;;;;;;;;;;;;;;;;;;;;;;AAsB1hM9B,OAAO4B,EAAEgB,EAAT5C,CAAY8B,GAAGJ,EAAEc,QAAQV,GAAG0K,GAAG,SAASzL,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAsC0Q,GAAG,SAAS1L,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAuC2Q,GAAG,SAAS3L,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAiD4Q,GAAG,SAAS5L,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAsC6Q,GAAG,SAAS7L,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAwC8Q,EAAE,SAAS9L,EAAES,EAAEE,GAAG,aAAa,SAASC,EAAEZ,EAAES,GAAG,IAAI,IAAIE,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAEA,EAAEJ,EAAElE,OAAOsE,IAAI,CAAC,IAAIW,EAAEf,EAAEI,GAAGgB,EAAEL,EAAE,GAAGL,EAAE,CAAC4K,GAAG/L,EAAE,IAAIa,EAAEmL,IAAIxK,EAAE,GAAGyK,MAAMzK,EAAE,GAAG0K,UAAU1K,EAAE,IAAIZ,EAAEiB,GAAGjB,EAAEiB,GAAGsK,MAAMxI,KAAKxC,GAAGR,EAAEgD,KAAK/C,EAAEiB,GAAG,CAACkK,GAAGlK,EAAEsK,MAAM,CAAChL,KAAK,OAAOR,EAAEA,EAAEQ,EAAEV,GAAGE,EAAEM,EAAER,EAAE,WAAU,WAAW,OAAOoJ,KAAI,IAAIhJ,EAAE,oBAAoB8H,SAAS,GAAG,oBAAoByD,OAAOA,QAAQvL,EAAE,MAAM,IAAIwL,MAAM,2JAA2J,IAAI7K,EAAE,GAAGK,EAAEhB,IAAI8H,SAAS2D,MAAM3D,SAAS4D,qBAAqB,QAAQ,IAAIpL,EAAE,KAAKS,EAAE,EAAEZ,GAAE,EAAGF,EAAE,aAAaG,EAAE,KAAK2I,EAAE,kBAAkBnQ,EAAE,oBAAoB+S,WAAW,eAAeC,KAAKD,UAAUE,UAAUC,eAAe,SAAS9C,EAAE7J,EAAES,EAAEE,EAAEE,GAAGG,EAAEL,EAAEM,EAAEJ,GAAG,GAAG,IAAIgB,EAAEjB,EAAEZ,EAAES,GAAG,OAAOkB,EAAEE,GAAG,SAASpB,GAAG,IAAI,IAAIE,EAAE,GAAGE,EAAE,EAAEA,EAAEgB,EAAEtF,OAAOsE,IAAI,CAAC,IAAIM,EAAEU,EAAEhB,IAAIe,EAAEJ,EAAEL,EAAE4K,KAAKa,OAAOjM,EAAEgD,KAAK/B,GAAsB,IAAnBnB,EAAEkB,EAAEE,EAAEjB,EAAEZ,EAAES,IAAIoB,EAAE,GAAOhB,EAAE,EAAEA,EAAEF,EAAEpE,OAAOsE,IAAI,CAAC,IAAIe,EAAE,GAAG,KAAKA,EAAEjB,EAAEE,IAAI+L,KAAK,CAAC,IAAI,IAAI5L,EAAE,EAAEA,EAAEY,EAAEuK,MAAM5P,OAAOyE,IAAIY,EAAEuK,MAAMnL,YAAYQ,EAAEI,EAAEmK,OAAO,SAASpK,EAAE3B,GAAG,IAAI,IAAIS,EAAE,EAAEA,EAAET,EAAEzD,OAAOkE,IAAI,CAAC,IAAIE,EAAEX,EAAES,GAAGG,EAAEY,EAAEb,EAAEoL,IAAI,GAAGnL,EAAE,CAACA,EAAEgM,OAAO,IAAI,IAAI/L,EAAE,EAAEA,EAAED,EAAEuL,MAAM5P,OAAOsE,IAAID,EAAEuL,MAAMtL,GAAGF,EAAEwL,MAAMtL,IAAI,KAAKA,EAAEF,EAAEwL,MAAM5P,OAAOsE,IAAID,EAAEuL,MAAMxI,KAAKkJ,EAAElM,EAAEwL,MAAMtL,KAAKD,EAAEuL,MAAM5P,OAAOoE,EAAEwL,MAAM5P,SAASqE,EAAEuL,MAAM5P,OAAOoE,EAAEwL,MAAM5P,YAAY,CAAC,IAAIsF,EAAE,GAAG,IAAIhB,EAAE,EAAEA,EAAEF,EAAEwL,MAAM5P,OAAOsE,IAAIgB,EAAE8B,KAAKkJ,EAAElM,EAAEwL,MAAMtL,KAAKW,EAAEb,EAAEoL,IAAI,CAACA,GAAGpL,EAAEoL,GAAGa,KAAK,EAAET,MAAMtK,KAAK,SAASd,IAAI,IAAIf,EAAE2I,SAASmE,cAAc,SAAS,OAAO9M,EAAEsG,KAAK,WAAWzE,EAAEkL,YAAY/M,GAAGA,EAAE,SAAS6M,EAAE7M,GAAG,IAAIS,EAAEE,EAAEC,EAAE+H,SAASqE,cAAc,SAASpD,EAAE,MAAM5J,EAAE+L,GAAG,MAAM,GAAGnL,EAAE,CAAC,GAAGI,EAAE,OAAOF,EAAEF,EAAEqM,WAAWC,YAAYtM,GAAG,GAAGnH,EAAE,CAAC,IAAIoH,EAAEe,IAAIhB,EAAEO,IAAIA,EAAEJ,KAAKN,EAAE0M,EAAE5L,KAAK,KAAKX,EAAEC,GAAE,GAAIF,EAAEwM,EAAE5L,KAAK,KAAKX,EAAEC,GAAE,QAASD,EAAEG,IAAIN,EAAE,SAAST,EAAES,GAAG,IAAIE,EAAEF,EAAEuL,IAAIpL,EAAEH,EAAEwL,MAAMpL,EAAEJ,EAAEyL,UAA2O,GAAjOtL,GAAGZ,EAAEoN,aAAa,QAAQxM,GAAGK,EAAEoM,OAAOrN,EAAEoN,aAAaxD,EAAEnJ,EAAEsL,IAAIlL,IAAIF,GAAG,mBAAmBE,EAAE2C,QAAQ,GAAG,MAAM7C,GAAG,uDAAuDwC,KAAKC,SAASC,mBAAmBC,KAAKC,UAAU1C,MAAM,OAAUb,EAAEsN,WAAWtN,EAAEsN,WAAWC,QAAQ5M,MAAM,CAAC,KAAKX,EAAEwN,YAAYxN,EAAEkN,YAAYlN,EAAEwN,YAAYxN,EAAE+M,YAAYpE,SAAS8E,eAAe9M,MAAMY,KAAK,KAAKX,GAAGD,EAAE,WAAWC,EAAEqM,WAAWC,YAAYtM,IAAI,OAAOH,EAAET,GAAG,SAASY,GAAG,GAAGA,EAAE,CAAC,GAAGA,EAAEoL,MAAMhM,EAAEgM,KAAKpL,EAAEqL,QAAQjM,EAAEiM,OAAOrL,EAAEsL,YAAYlM,EAAEkM,UAAU,OAAOzL,EAAET,EAAEY,QAAQD,KAAK,IAAI+M,EAAEC,GAAGD,EAAE,GAAG,SAAS1N,EAAES,GAAG,OAAOiN,EAAE1N,GAAGS,EAAEiN,EAAE1P,OAAOyI,SAAS/C,KAAK,QAAQ,SAASyJ,EAAEnN,EAAES,EAAEE,EAAEC,GAAG,IAAIC,EAAEF,EAAE,GAAGC,EAAEoL,IAAI,GAAGhM,EAAEsN,WAAWtN,EAAEsN,WAAWC,QAAQI,EAAElN,EAAEI,OAAO,CAAC,IAAIW,EAAEmH,SAAS8E,eAAe5M,GAAGgB,EAAE7B,EAAE4N,WAAW/L,EAAEpB,IAAIT,EAAEkN,YAAYrL,EAAEpB,IAAIoB,EAAEtF,OAAOyD,EAAE6I,aAAarH,EAAEK,EAAEpB,IAAIT,EAAE+M,YAAYvL,MAAMqM,GAAG,SAAS7N,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAsC8S,GAAG,SAAS9N,EAAES,EAAEE,GAAG,aAAaA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAIF,EAAEoB,EAAE,SAAS7B,GAAG,OAAOP,KAAKsO,SAASjU,SAAS,IAAIkU,QAAQ,WAAW,IAAIC,OAAO,EAAEjO,GAAG,KAAKkO,IAAI,SAASlO,EAAES,EAAEE,GAAG,aAAa,IAAIC,EAAED,EAAE,KAAKA,EAAEa,EAAEZ,GAAGiB,GAAGsM,IAAI,SAASnO,EAAES,EAAEE,GAAGF,EAAET,EAAEhF,QAAQ2F,EAAE,EAAFA,EAAK,GAAI,IAAIC,EAAED,EAAE,GAAGE,EAAED,EAAED,EAAE,IAAIa,EAAEZ,EAAED,EAAE,IAAIkB,EAAEjB,EAAED,EAAE,KAAKQ,EAAEP,EAAED,EAAE,KAAKF,EAAEkD,KAAK,CAAC3D,EAAEa,EAAE,iDAAiDA,EAAE,aAAaA,EAAE,qCAAqCW,EAAE,wBAAwBK,EAAE,4BAA4BV,EAAE,2iPAA2iP,MAAMiN,GAAG,SAASpO,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAA4BqT,GAAG,SAASrO,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAmCsT,GAAG,SAAStO,EAAES,EAAEE,GAAG,aAAaA,EAAE,IAAIA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI,IAAIC,EAAED,EAAE,IAAIE,GAAGF,EAAE,GAAG,SAASX,EAAES,GAAG,IAAI,IAAIE,EAAEX,EAAEuO,QAAQ5N,GAAG,CAAC,GAAGA,EAAEiC,SAAS1H,OAAOuF,EAAE,OAAOE,EAAEA,EAAEA,EAAE4N,WAAW9N,EAAEoB,EAAE,CAAC2M,OAAO,CAAC5N,EAAEiB,GAAGuE,MAAM,CAACmF,KAAK,CAACjF,KAAKC,OAAO9E,QAAQ,IAAI4E,MAAM,CAACC,KAAKC,OAAO9E,QAAQ,IAAIgN,gBAAgB,CAACnI,KAAKG,QAAQhF,SAAQ,IAAK0D,SAAS,CAACuJ,UAAU,WAAW,IAAI,OAAO,IAAIC,IAAIxU,KAAKoR,MAAM,MAAMvL,GAAG,OAAM,KAAMqF,QAAQ,CAACuJ,QAAQ,SAAS5O,GAAG,GAAG7F,KAAKiP,MAAM,QAAQpJ,GAAG7F,KAAKsU,gBAAgB,CAAC,IAAIhO,EAAEI,EAAE1G,KAAK,WAAWsG,GAAGA,EAAEoO,WAAWpO,EAAEoO,iBAAiBC,GAAG,SAAS9O,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAoC+T,GAAG,SAAS/O,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAA0CgU,EAAE,SAAShP,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAwCiU,GAAG,SAASjP,EAAES,EAAEE,GAAG,IAAIC,EAAED,EAAE,IAAI,iBAAiBC,IAAIA,EAAE,CAAC,CAACZ,EAAEa,EAAED,EAAE,MAAMA,EAAEkD,SAAS9D,EAAEhF,QAAQ4F,EAAEkD,SAAQ,EAAGnD,EAAE,GAAGc,SAAS,WAAWb,GAAE,EAAG,KAAKsO,GAAG,SAASlP,EAAES,EAAEE,GAAG;;;;;;;;;;;;;;;;;;;;;GAqBv7XF,EAAEoB,EAAE,SAAS7B,GAAGA,EAAEqI,QAAQ8G,MAAMC,QAAQpP,EAAEqI,WAAWrI,EAAEqI,QAAQ,CAACrI,EAAEqI,UAAUrI,EAAEqI,QAAQ,GAAGrI,EAAEqI,QAAQ1E,MAAK,WAAWxJ,KAAK2K,IAAIsI,aAAa,UAAUpK,OAAO,WAAW,SAAQqM,GAAG,SAASrP,EAAES,EAAEE,GAAG,aAAaA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI,IAAIC,EAAED,EAAE,IAAIE,EAAEF,EAAE,IAAIa,EAAEb,EAAE,IAAIkB,GAAGlB,EAAE,IAAI,SAASX,GAAG,IAAIS,EAAET,EAAEsP,wBAAwB3O,EAAEgI,SAAS4G,gBAAgBC,aAAa5O,EAAE+H,SAAS4G,gBAAgBE,YAAY5O,EAAE5B,OAAOF,OAAO,IAAI,OAAO8B,EAAE6O,IAAIjP,EAAEiP,IAAI,EAAE7O,EAAE8O,KAAKlP,EAAEkP,KAAK,EAAE9O,EAAE+O,OAAOnP,EAAEmP,OAAOjP,EAAEE,EAAEgP,MAAMpP,EAAEoP,MAAMjP,EAAEC,EAAEiP,IAAIjP,EAAE6O,KAAK7O,EAAE8O,MAAM9O,EAAE+O,QAAQ/O,EAAEgP,MAAMhP,EAAEkP,IAAIlP,EAAE6O,KAAK7O,EAAE8O,MAAM9O,EAAE+O,QAAQ/O,EAAEgP,MAAMhP,EAAEmP,QAAQnP,EAAE6O,IAAIjP,EAAEiP,IAAI7O,EAAE+O,OAAOnP,EAAEmP,OAAOjP,EAAE,EAAEE,EAAEoP,QAAQpP,EAAE8O,KAAKlP,EAAEkP,KAAK9O,EAAEgP,MAAMpP,EAAEoP,MAAMjP,EAAE,EAAEC,IAAIM,GAAGR,EAAE,IAAIA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAIiB,EAAEjB,EAAEa,EAAEL,GAAGH,EAAE,SAAShB,EAAES,EAAEE,QAAG,IAASX,GAAGA,EAAExB,SAAQ,SAASoC,EAAEC,GAAG,IAAIW,GAAGZ,EAAEsP,kBAAkBtP,EAAEuP,MAAM,IAAI1P,EAAE4G,QAAQzG,EAAEuP,KAAKtO,IAAIjB,EAAEsP,kBAAkB,iBAAiBtP,EAAEsP,iBAAiBC,MAAM,IAAI1P,EAAE4G,QAAQzG,EAAEsP,iBAAiBC,MAAM3O,GAAGK,KAAKD,EAAEC,EAAE8C,KAAKC,KAAK,GAAG5B,OAAOxB,EAAEZ,EAAEuP,IAAIvP,EAAEsP,iBAAiBC,IAAI,+BAA+BnN,OAAOrC,EAAEiC,SAAS1H,KAAK,cAAcyF,GAAGX,EAAEL,OAAOkB,EAAE,QAAOC,EAAE,CAAC,eAAe,iBAAiB,cAAc,aAAa,cAAc,eAAe,kBAAkB,aAAa,sBAAsBG,EAAE,CAAC/F,KAAK,UAAUgL,WAAW,CAACkK,aAAaxP,EAAEyP,UAAUlK,QAAQtF,EAAEY,SAAS2E,MAAM,CAACkK,KAAK,CAAChK,KAAKG,QAAQhF,SAAQ,GAAI8O,UAAU,CAACjK,KAAKC,OAAO9E,QAAQ,SAAS2F,UAAU,SAASpH,GAAG,MAAM,CAAC,OAAO,SAAS,SAASqH,QAAQrH,IAAI,IAAIwQ,YAAY,CAAClK,KAAKC,OAAO9E,QAAQ,0CAA0CyD,KAAK,WAAW,MAAM,CAACuL,QAAQ,GAAGC,OAAOvW,KAAKmW,KAAKK,WAAW,EAAEC,SAAS,QAAQ3R,OAAOuC,EAAEK,EAAT5C,GAAcgR,QAAQ,EAAED,QAAQ,EAAEa,aAAa,EAAEC,aAAY,EAAGC,SAAS5W,KAAK6W,YAAY7L,SAAS,CAAC8L,mBAAmB,WAAW,OAAO9W,KAAKsW,QAAQlU,OAAO,GAAG2U,oBAAoB,WAAW,OAAO,IAAI/W,KAAKsW,QAAQlU,QAAQ,OAAOpC,KAAKgX,oBAAoBC,iBAAiB,WAAW,OAAOjX,KAAKsW,QAAQ,IAAIY,YAAY,WAAW,OAAOlX,KAAK4W,SAAS,GAAG5W,KAAK4W,SAAS,GAAG,IAAIO,mBAAmB,WAAW,GAAGnX,KAAKiX,kBAAkBjX,KAAKiX,iBAAiBlB,iBAAiB,CAAC,IAAIlQ,EAAE7F,KAAKiX,iBAAiBlB,iBAAiBC,IAAI,GAAG,eAAenQ,EAAE,MAAM,CAACuR,GAAG,IAAIC,KAAKrX,KAAKkX,YAAYG,KAAK/W,OAAON,KAAKkX,YAAY5W,QAAQ,GAAG,iBAAiBuF,EAAE,MAAM,CAACuR,GAAG,cAAcpR,GAAGhG,KAAKkX,YAAYlR,GAAGsR,MAAMtX,KAAKkX,YAAYI,OAAO,GAAG,iBAAiBzR,EAAE,MAAM,CAACuR,GAAG,UAAU,OAAO,MAAMG,iBAAiB,WAAW,OAAOvX,KAAKiX,kBAAkBjX,KAAKiX,iBAAiBlB,kBAAkB/V,KAAKiX,iBAAiBlB,iBAAiByB,WAAWxX,KAAKiX,iBAAiBlB,iBAAiByB,UAAUvH,OAAOwH,wBAAwB,WAAW,OAAOzX,KAAKuX,iBAAiB,QAAQ,MAAMG,iBAAiB,WAAW,IAAI7R,EAAE7F,KAAKiX,kBAAkBjX,KAAKiX,iBAAiBlM,KAAKiF,YAAY1J,EAAEtG,KAAKiX,kBAAkBjX,KAAKiX,iBAAiBlM,KAAKuF,MAAM,MAAM,GAAGzH,OAAOhD,EAAE,KAAKgD,OAAOvC,KAAKsH,MAAM,CAACuI,KAAK,SAAStQ,GAAG,IAAIS,EAAEtG,KAAKA,KAAKuW,OAAO1Q,EAAE7F,KAAKuW,QAAQvW,KAAKwP,WAAU,WAAWlJ,EAAEqR,cAAa9J,YAAY,WAAW7N,KAAK4X,cAAc/Q,EAAE7G,KAAKsK,OAAOhD,QAAQX,EAAE3G,OAAO6K,aAAa,WAAW7K,KAAK4X,cAAc/Q,EAAE7G,KAAKsK,OAAOhD,QAAQX,EAAE3G,OAAOkL,QAAQ,CAAC2M,WAAW,WAAW,IAAIhS,EAAE7F,KAAKA,KAAKuW,QAAQvW,KAAKuW,OAAOvW,KAAKuW,QAAQvW,KAAKwP,WAAU,WAAW3J,EAAE8R,SAAS9R,EAAEiS,sBAAqB9X,KAAKiP,MAAM,UAAUjP,KAAK8V,QAAQ,EAAE9V,KAAK6V,QAAQ,EAAE7V,KAAK0W,aAAa,EAAE1W,KAAK2W,aAAY,GAAI3W,KAAKiP,MAAM,cAAcjP,KAAKuW,SAAS7B,UAAU,WAAW1U,KAAKuW,SAASvW,KAAKiP,MAAM,eAAc,GAAIjP,KAAKiP,MAAM,UAAUjP,KAAKuW,QAAO,EAAGvW,KAAK8V,QAAQ,EAAE9V,KAAK6V,QAAQ,EAAE7V,KAAK0W,aAAa,EAAE1W,KAAK2W,aAAY,GAAIgB,OAAO,WAAW,GAAG3X,KAAK8V,QAAQ,EAAE9V,KAAK6V,QAAQ,EAAE7V,KAAK0W,aAAa,EAAE1W,KAAK2W,aAAY,EAAG,WAAW3W,KAAKoW,UAAU,CAAC,IAAIvQ,EAAE6B,EAAE1H,KAAKoO,MAAM2J,OAAOlS,EAAE2P,MAAM3P,EAAE6P,SAAS1V,KAAK8V,QAAQjQ,EAAEiQ,QAAQ,EAAExQ,KAAK0S,MAAMnS,EAAEiQ,SAAS,EAAExQ,KAAK0S,MAAMnS,EAAEiQ,SAAS,GAAGjQ,EAAE4P,SAASzV,KAAK6V,QAAQ,EAAEvQ,KAAK0S,MAAMhY,KAAKoO,MAAM2J,KAAK1C,cAAc,GAAGrV,KAAK0W,aAAapR,KAAK0S,MAAMhY,KAAKoO,MAAM2J,KAAK1C,cAAc,GAAGrV,KAAK2W,aAAY,KAAMsB,mBAAmB,SAASpS,GAAG,GAAG2I,SAAS0J,gBAAgBrS,EAAEvF,OAAO,CAAC,IAAIgG,EAAET,EAAEvF,OAAO6X,QAAQ,MAAM,GAAG7R,EAAE,CAAC,IAAIE,EAAEF,EAAEuM,cAAc,cAAc,GAAGrM,EAAE,CAAC,IAAIC,EAAEzG,KAAKoO,MAAM2J,KAAKK,iBAAiB,cAAc1R,EAAEsO,MAAMvV,UAAUyN,QAAQnN,KAAK0G,EAAED,GAAGE,GAAG,IAAI1G,KAAKwW,WAAW9P,EAAE1G,KAAKqY,mBAAmBC,oBAAoB,WAAW,IAAIzS,EAAE7F,KAAKoO,MAAM2J,KAAKlF,cAAc,aAAahN,GAAGA,EAAE0S,UAAU3N,OAAO,WAAWyN,YAAY,WAAW,IAAIxS,EAAE7F,KAAKoO,MAAM2J,KAAKK,iBAAiB,cAAcpY,KAAKwW,YAAY,GAAG3Q,EAAE,CAAC,IAAIS,EAAET,EAAEsS,QAAQ,MAAMtS,EAAE2S,QAAQlS,IAAItG,KAAKsY,sBAAsBhS,EAAEiS,UAAUjQ,IAAI,aAAamQ,oBAAoB,WAAWzY,KAAKwW,WAAWlR,KAAKD,IAAIrF,KAAKwW,WAAW,EAAE,GAAGxW,KAAKqY,eAAeK,gBAAgB,WAAW1Y,KAAKwW,WAAWlR,KAAKC,IAAIvF,KAAKwW,WAAW,EAAExW,KAAKoO,MAAM2J,KAAKK,iBAAiB,cAAchW,OAAO,GAAGpC,KAAKqY,eAAeP,iBAAiB,WAAW9X,KAAKwW,WAAW,EAAExW,KAAKqY,eAAeM,gBAAgB,WAAW3Y,KAAKwW,WAAWxW,KAAK2K,IAAIyN,iBAAiB,cAAchW,OAAO,EAAEpC,KAAKqY,eAAeO,gBAAgB,SAAS/S,GAAG7F,KAAKuX,kBAAkBvX,KAAKuX,iBAAiB1R,IAAI+R,YAAY,WAAW5X,KAAKsW,SAAStW,KAAKsK,OAAOhD,SAAS,IAAIzD,QAAO,SAASgC,GAAG,QAAQA,KAAKA,EAAEkQ,uBAAsBtG,GAAGjJ,EAAE,IAAIA,EAAE,IAAIlH,EAAEkH,EAAE,IAAIkJ,EAAElJ,EAAEa,EAAE/H,GAAGkI,EAAE1C,OAAO2K,EAAE/H,EAAT5C,CAAYgC,GAAE,WAAW,IAAIjB,EAAE7F,KAAKsG,EAAET,EAAE8J,eAAenJ,EAAEX,EAAE+J,MAAMC,IAAIvJ,EAAE,OAAOT,EAAEkR,oBAAoBvQ,EAAE,UAAUX,EAAEgT,GAAG,CAAC9M,WAAW,CAAC,CAAChL,KAAK,UAAUqP,QAAQ,iBAAiBtN,MAAM+C,EAAEqR,YAAY3M,KAAK8F,WAAW,mBAAmBO,UAAU,CAACC,MAAK,KAAMb,YAAY,kCAAkCM,MAAM,CAACzK,EAAEqR,YAAY9F,KAAKvL,EAAE6R,kBAAkB5H,MAAM,CAAC,aAAajK,EAAEqR,YAAY3M,KAAKuO,IAAI,uBAAuBxK,GAAGzI,EAAEkT,GAAG,GAAG,CAAClT,EAAE4R,wBAAwB5R,EAAE+S,mBAAmB,UAAU/S,EAAEsR,oBAAmB,GAAI,CAAC3Q,EAAE,OAAO,CAACsJ,MAAM,CAAC,eAAc,EAAGkJ,OAAO,KAAK,CAACnT,EAAE8K,GAAG,YAAY,KAAKnK,EAAE,MAAM,CAACuF,WAAW,CAAC,CAAChL,KAAK,OAAOqP,QAAQ,SAAStN,MAAM+C,EAAEiR,mBAAmBzG,WAAW,uBAAuBL,YAAY,cAAcM,MAAM,CAAC,oBAAoBzK,EAAE0Q,QAAQjI,GAAG,CAAC2K,QAAQ,CAAC,SAAS3S,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,KAAK,GAAG9I,EAAE1D,IAAI,CAAC,KAAK,YAAY,KAAK0D,EAAE6S,SAAS7S,EAAE8S,UAAU9S,EAAE+S,QAAQ/S,EAAEgT,QAAQ,MAAMhT,EAAEiT,iBAAiB1T,EAAE4S,oBAAoBnS,KAAK,SAASA,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,OAAO,GAAG9I,EAAE1D,IAAI,CAAC,OAAO,cAAc,KAAK0D,EAAE6S,SAAS7S,EAAE8S,UAAU9S,EAAE+S,QAAQ/S,EAAEgT,QAAQ,MAAMhT,EAAEiT,iBAAiB1T,EAAE6S,gBAAgBpS,KAAK,SAASA,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,MAAM,EAAE9I,EAAE1D,IAAI,OAAO,KAAK0D,EAAE8S,UAAU9S,EAAEiT,iBAAiB1T,EAAE4S,oBAAoBnS,IAAI,MAAM,SAASA,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,eAAU,EAAO9I,EAAE1D,SAAI,GAAQ,KAAK0D,EAAE6S,SAAS7S,EAAE8S,UAAU9S,EAAE+S,QAAQ/S,EAAEgT,QAAQ,MAAMhT,EAAEiT,iBAAiB1T,EAAEiS,iBAAiBxR,KAAK,SAASA,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,iBAAY,EAAO9I,EAAE1D,SAAI,GAAQ,KAAK0D,EAAE6S,SAAS7S,EAAE8S,UAAU9S,EAAE+S,QAAQ/S,EAAEgT,QAAQ,MAAMhT,EAAEiT,iBAAiB1T,EAAE8S,gBAAgBrS,KAAK,SAASA,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,MAAM,GAAG9I,EAAE1D,IAAI,CAAC,MAAM,WAAW,KAAK0D,EAAE6S,SAAS7S,EAAE8S,UAAU9S,EAAE+S,QAAQ/S,EAAEgT,QAAQ,MAAMhT,EAAEiT,iBAAiB1T,EAAE6O,UAAUpO,QAAQ,CAACE,EAAE,IAAI,CAACwJ,YAAY,+BAA+BM,MAAMzK,EAAEwQ,YAAYvG,MAAM,CAACuH,KAAK,IAAI,gBAAgB,OAAO,gBAAgBxR,EAAE4Q,SAAS,gBAAgB5Q,EAAE0Q,QAAQjI,GAAG,CAAC2B,MAAM,SAAS3J,GAAG,OAAOA,EAAEiT,iBAAiB1T,EAAEgS,WAAWvR,IAAI2S,QAAQ,SAAS3S,GAAG,OAAOA,EAAE6F,KAAKe,QAAQ,QAAQrH,EAAEqT,GAAG5S,EAAE8I,QAAQ,QAAQ,GAAG9I,EAAE1D,IAAI,CAAC,IAAI,aAAa,KAAK0D,EAAE6S,SAAS7S,EAAE8S,UAAU9S,EAAE+S,QAAQ/S,EAAEgT,QAAQ,MAAMhT,EAAEiT,iBAAiB1T,EAAEgS,WAAWvR,QAAQT,EAAE2K,GAAG,KAAK3K,EAAE0Q,OAAO/P,EAAE,MAAM,CAACuF,WAAW,CAAC,CAAChL,KAAK,gBAAgBqP,QAAQ,kBAAkBtN,MAAM+C,EAAE6O,UAAUrE,WAAW,cAAcN,IAAI,OAAOC,YAAY,oBAAoBM,MAAM,CAAC,QAAQzK,EAAEuQ,UAAU,CAACD,KAAKtQ,EAAE0Q,SAASiD,MAAM,CAACC,YAAY5T,EAAEiQ,QAAQ,KAAK4D,UAAU7T,EAAEgQ,QAAQ,MAAM/F,MAAM,CAAC6J,SAAS,MAAMrL,GAAG,CAAC4B,UAAUrK,EAAEoS,qBAAqB,CAACzR,EAAE,MAAM,CAACwJ,YAAY,0BAA0BwJ,MAAM,CAACI,UAAU,cAAc/T,EAAEiQ,QAAQ,kBAAkBjQ,EAAE6Q,aAAa,QAAQ7Q,EAAE8Q,YAAY,kBAAkB,OAAO9Q,EAAE2K,GAAG,KAAKhK,EAAE,KAAK,CAACsJ,MAAM,CAAC8B,GAAG/L,EAAE4Q,SAASkD,SAAS,OAAO,CAAC9T,EAAE8K,GAAG,YAAY,KAAK9K,EAAE6K,SAAQ,IAAG,EAAG,KAAK,WAAW,MAAM,mBAAmBhB,EAAEhI,GAAGgI,IAAIlI,GAAGlB,EAAEoB,EAAEF,EAAE3G,SAASgZ,GAAG,SAAShU,EAAES,EAAEE,GAAG,IAAIC,EAAED,EAAE,IAAI,iBAAiBC,IAAIA,EAAE,CAAC,CAACZ,EAAEa,EAAED,EAAE,MAAMA,EAAEkD,SAAS9D,EAAEhF,QAAQ4F,EAAEkD,SAAQ,EAAGnD,EAAE,GAAGc,SAAS,WAAWb,GAAE,EAAG,KAAKqT,GAAG,SAASjU,EAAES,EAAEE,IAAIX,EAAEhF,QAAQ2F,EAAE,EAAFA,EAAK,IAAKgD,KAAK,CAAC3D,EAAEa,EAAE,igEAAigE,MAAMqT,GAAG,SAASlU,EAAES,EAAEE,GAAG,IAAIC,EAAED,EAAE,KAAK,iBAAiBC,IAAIA,EAAE,CAAC,CAACZ,EAAEa,EAAED,EAAE,MAAMA,EAAEkD,SAAS9D,EAAEhF,QAAQ4F,EAAEkD,SAAQ,EAAGnD,EAAE,GAAGc,SAAS,WAAWb,GAAE,EAAG,KAAKuT,EAAE,SAASnU,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAcoZ,GAAG,SAASpU,EAAES,KAAK4T,GAAG,SAASrU,EAAES,EAAEE,GAAG,aAAa,IAAIC,EAAE,CAAC1F,KAAK,eAAesT,OAAO,CAAC7N,EAAE,IAAIkB,GAAGuE,MAAM,CAACkO,SAAS,CAAChO,KAAKG,QAAQhF,SAAQ,IAAK0D,SAAS,CAACoP,YAAY,WAAW,OAAOpa,KAAKma,YAAYzT,GAAGF,EAAE,KAAKA,EAAE,IAAIa,EAAEb,EAAE,IAAIkB,EAAElB,EAAEa,EAAEA,GAAGL,EAAElC,OAAO4B,EAAEgB,EAAT5C,CAAY2B,GAAE,WAAW,IAAIZ,EAAE7F,KAAKsG,EAAET,EAAE8J,eAAenJ,EAAEX,EAAE+J,MAAMC,IAAIvJ,EAAE,OAAOE,EAAE,KAAK,CAAC8J,MAAM,CAAC,mBAAmBzK,EAAEsU,WAAW,CAAC3T,EAAE,SAAS,CAACwJ,YAAY,gBAAgBM,MAAM,CAAC+J,UAAUxU,EAAEuU,aAAa9L,GAAG,CAAC2B,MAAMpK,EAAE4O,UAAU,CAACjO,EAAE,OAAO,CAACwJ,YAAY,sBAAsBM,MAAM,CAACzK,EAAE0O,UAAU,2BAA2B1O,EAAEuL,MAAMoI,MAAM,CAACc,gBAAgBzU,EAAE0O,UAAU,OAAO1O,EAAEuL,KAAK,IAAI,QAAQvL,EAAE2K,GAAG,KAAK3K,EAAEqG,MAAM1F,EAAE,IAAI,CAACA,EAAE,SAAS,CAACwJ,YAAY,wBAAwB,CAACnK,EAAE2K,GAAG,aAAa3K,EAAE4K,GAAG5K,EAAEqG,OAAO,cAAcrG,EAAE2K,GAAG,KAAKhK,EAAE,MAAMX,EAAE2K,GAAG,KAAKhK,EAAE,OAAO,CAACwJ,YAAY,0BAA0BuK,SAAS,CAACC,YAAY3U,EAAE4K,GAAG5K,EAAE0E,WAAW1E,EAAEoF,WAAWzE,EAAE,IAAI,CAACwJ,YAAY,0BAA0BuK,SAAS,CAACC,YAAY3U,EAAE4K,GAAG5K,EAAE0E,SAAS/D,EAAE,OAAO,CAACwJ,YAAY,uBAAuB,CAACnK,EAAE2K,GAAG3K,EAAE4K,GAAG5K,EAAE0E,SAAS1E,EAAE2K,GAAG,KAAK3K,EAAE6K,MAAM,OAAM,IAAG,EAAG,KAAK,WAAW,MAAM,mBAAmBhJ,EAAEA,GAAGA,IAAIV,GAAGV,EAAEoB,EAAEV,EAAEnG,SAAS4Z,GAAG,SAAS5U,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAoC6Z,EAAE,SAAS7U,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAQ8Z,GAAG,SAAS9U,EAAES,KAAKsU,GAAG,SAAS/U,EAAES,EAAEE,GAAG,aAAaA,EAAEQ,EAAEV,GAAG,IAAIG,EAAED,EAAE,IAAIA,EAAEM,EAAER,EAAE,WAAU,WAAW,OAAOG,EAAEiB;;;;;;;;;;;;;;;;;;;;;;AAqBviXpB,EAAEgB,QAAQb,EAAEiB,GAAGmT,EAAE,SAAShV,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAqCia,EAAE,SAASjV,EAAES,EAAEE,GAAG,aAAaX,EAAEhF,QAAQ,SAASgF,EAAES,GAAG,MAAM,iBAAiBT,EAAEA,EAAEsB,WAAWtB,EAAEyB,QAAQzB,GAAGA,GAAG,eAAeyM,KAAKzM,KAAKA,EAAEA,EAAEnD,MAAM,GAAG,IAAI,cAAc4P,KAAKzM,IAAIS,EAAE,IAAIuC,OAAOhD,EAAEgO,QAAQ,KAAK,OAAOA,QAAQ,MAAM,OAAO,KAAKhO,KAAKkV,GAAG,SAASlV,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAiDma,GAAG,SAASnV,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAaoa,GAAG,SAASpV,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAqCqa,GAAG,SAASrV,EAAES,GAAGT,EAAEhF,QAAQ,EAAQ,MAAoCsa,GAAG,SAAStV,EAAES,EAAEE,GAAG,aAAa,IAAIC,EAAED,EAAE,IAAIA,EAAEa,EAAEZ,GAAGiB,GAAG0T,GAAG,SAASvV,EAAES,EAAEE,GAAGF,EAAET,EAAEhF,QAAQ2F,EAAE,EAAFA,EAAK,GAAI,IAAIC,EAAED,EAAE,GAAGE,EAAED,EAAED,EAAE,IAAIa,EAAEZ,EAAED,EAAE,IAAIkB,EAAEjB,EAAED,EAAE,KAAKQ,EAAEP,EAAED,EAAE,KAAKF,EAAEkD,KAAK,CAAC3D,EAAEa,EAAE,iDAAiDA,EAAE,aAAaA,EAAE,qCAAqCW,EAAE,wBAAwBK,EAAE,4BAA4BV,EAAE,2sHAA2sH,MAAMqU,EAAE,SAASxV,EAAES,GAAGT,EAAEhF,QAAQ,87GAA87Gya,GAAG,SAASzV,EAAES,EAAEE,GAAG,aAAaA,EAAEQ,EAAEV,GAAG,IAAIG,EAAED,EAAE,IAAIA,EAAEM,EAAER,EAAE,gBAAe,WAAW,OAAOG,EAAEiB;;;;;;;;;;;;;;;;;;;;;;AAqB9pQpB,EAAEgB,QAAQb,EAAEiB,GAAG6T,EAAE,SAAS1V,EAAES,GAAGT,EAAEhF,QAAQ,4yG,oBCvJ5C;;;;;qCAKA,SAAU0F,EAAQiI,EAAUgN,EAAYrX,GACtC,aAEF,IA+FIS,EA/FA6W,EAAkB,CAAC,GAAI,SAAU,MAAO,KAAM,KAAM,KACpDC,EAAelN,EAASmE,cAAc,OAEtCgJ,EAAgB,WAEhB3D,EAAQ1S,KAAK0S,MACb4D,EAAMtW,KAAKsW,IACXC,EAAMxQ,KAAKwQ,IASf,SAASC,EAAkBC,EAAIC,EAASC,GACpC,OAAO3Q,WAAW4Q,EAAOH,EAAIE,GAAUD,GAY3C,SAASG,EAAeC,EAAKL,EAAIE,GAC7B,QAAIjH,MAAMC,QAAQmH,KACdC,EAAKD,EAAKH,EAAQF,GAAKE,IAChB,GAWf,SAASI,EAAKC,EAAKC,EAAUN,GACzB,IAAIvV,EAEJ,GAAK4V,EAIL,GAAIA,EAAIjY,QACJiY,EAAIjY,QAAQkY,EAAUN,QACnB,GAAIK,EAAIla,SAAW+B,EAEtB,IADAuC,EAAI,EACGA,EAAI4V,EAAIla,QACXma,EAASxc,KAAKkc,EAASK,EAAI5V,GAAIA,EAAG4V,GAClC5V,SAGJ,IAAKA,KAAK4V,EACNA,EAAI/U,eAAeb,IAAM6V,EAASxc,KAAKkc,EAASK,EAAI5V,GAAIA,EAAG4V,GAYvE,SAASE,EAAUC,EAAQ1b,EAAM2b,GAC7B,IAAIC,EAAqB,sBAAwB5b,EAAO,KAAO2b,EAAU,SACzE,OAAO,WACH,IAAIlW,EAAI,IAAI0L,MAAM,mBACd0K,EAAQpW,GAAKA,EAAEoW,MAAQpW,EAAEoW,MAAM/I,QAAQ,kBAAmB,IACzDA,QAAQ,cAAe,IACvBA,QAAQ,6BAA8B,kBAAoB,sBAE3DgJ,EAAMtW,EAAOuW,UAAYvW,EAAOuW,QAAQrS,MAAQlE,EAAOuW,QAAQD,KAInE,OAHIA,GACAA,EAAI9c,KAAKwG,EAAOuW,QAASH,EAAoBC,GAE1CH,EAAOM,MAAM/c,KAAM+C,YAa9B6B,EADyB,mBAAlBE,OAAOF,OACL,SAAgBtE,GACrB,GAAIA,IAAW6D,GAAwB,OAAX7D,EACxB,MAAM,IAAI+F,UAAU,8CAIxB,IADA,IAAI2W,EAASlY,OAAOxE,GACX+B,EAAQ,EAAGA,EAAQU,UAAUX,OAAQC,IAAS,CACnD,IAAI4a,EAASla,UAAUV,GACvB,GAAI4a,IAAW9Y,GAAwB,OAAX8Y,EACxB,IAAK,IAAIC,KAAWD,EACZA,EAAO1V,eAAe2V,KACtBF,EAAOE,GAAWD,EAAOC,IAKzC,OAAOF,GAGFlY,OAAOF,OAWpB,IAAIuY,EAASX,GAAU,SAAgBY,EAAMC,EAAKC,GAG9C,IAFA,IAAIpa,EAAO4B,OAAO5B,KAAKma,GACnB3W,EAAI,EACDA,EAAIxD,EAAKd,UACPkb,GAAUA,GAASF,EAAKla,EAAKwD,MAAQvC,KACtCiZ,EAAKla,EAAKwD,IAAM2W,EAAIna,EAAKwD,KAE7BA,IAEJ,OAAO0W,IACR,SAAU,iBASTE,EAAQd,GAAU,SAAeY,EAAMC,GACvC,OAAOF,EAAOC,EAAMC,GAAK,KAC1B,QAAS,iBAQZ,SAASE,EAAQC,EAAOC,EAAMC,GAC1B,IACIC,EADAC,EAAQH,EAAKhe,WAGjBke,EAASH,EAAM/d,UAAYqF,OAAOvD,OAAOqc,IAClCva,YAAcma,EACrBG,EAAOE,OAASD,EAEZF,GACA9Y,EAAO+Y,EAAQD,GAUvB,SAASxB,EAAOH,EAAIE,GAChB,OAAO,WACH,OAAOF,EAAGgB,MAAMd,EAASlZ,YAWjC,SAAS+a,EAASC,EAAKC,GACnB,cAAWD,GAAOpC,EACPoC,EAAIhB,MAAMiB,GAAOA,EAAK,IAAkB7Z,EAAW6Z,GAEvDD,EASX,SAASE,EAAYC,EAAMC,GACvB,OAAQD,IAAS/Z,EAAaga,EAAOD,EASzC,SAASE,EAAkB9d,EAAQ+d,EAAOC,GACtCjC,EAAKkC,EAASF,IAAQ,SAASlS,GAC3B7L,EAAOwN,iBAAiB3B,EAAMmS,GAAS,MAU/C,SAASE,EAAqBle,EAAQ+d,EAAOC,GACzCjC,EAAKkC,EAASF,IAAQ,SAASlS,GAC3B7L,EAAO2N,oBAAoB9B,EAAMmS,GAAS,MAWlD,SAASG,EAAUC,EAAMvW,GACrB,KAAOuW,GAAM,CACT,GAAIA,GAAQvW,EACR,OAAO,EAEXuW,EAAOA,EAAK5L,WAEhB,OAAO,EASX,SAAS6L,EAAMC,EAAKC,GAChB,OAAOD,EAAI1R,QAAQ2R,IAAS,EAQhC,SAASN,EAASK,GACd,OAAOA,EAAIve,OAAO8C,MAAM,QAU5B,SAAS2b,EAAQzB,EAAKwB,EAAME,GACxB,GAAI1B,EAAInQ,UAAY6R,EAChB,OAAO1B,EAAInQ,QAAQ2R,GAGnB,IADA,IAAInY,EAAI,EACDA,EAAI2W,EAAIjb,QAAQ,CACnB,GAAK2c,GAAa1B,EAAI3W,GAAGqY,IAAcF,IAAWE,GAAa1B,EAAI3W,KAAOmY,EACtE,OAAOnY,EAEXA,IAEJ,OAAQ,EAShB,SAASsY,EAAQ1C,GACb,OAAOtH,MAAMvV,UAAUiD,MAAM3C,KAAKuc,EAAK,GAU3C,SAAS2C,EAAY5B,EAAKza,EAAKsc,GAK3B,IAJA,IAAIC,EAAU,GACVC,EAAS,GACT1Y,EAAI,EAEDA,EAAI2W,EAAIjb,QAAQ,CACnB,IAAI2b,EAAMnb,EAAMya,EAAI3W,GAAG9D,GAAOya,EAAI3W,GAC9BoY,EAAQM,EAAQrB,GAAO,GACvBoB,EAAQ3V,KAAK6T,EAAI3W,IAErB0Y,EAAO1Y,GAAKqX,EACZrX,IAaJ,OAVIwY,IAIIC,EAHCvc,EAGSuc,EAAQD,MAAK,SAAyBxX,EAAGgL,GAC/C,OAAOhL,EAAE9E,GAAO8P,EAAE9P,MAHZuc,EAAQD,QAQnBC,EASX,SAASE,EAAS/C,EAAKgD,GAKnB,IAJA,IAAIC,EAAQC,EACRC,EAAYH,EAAS,GAAGI,cAAgBJ,EAAS5c,MAAM,GAEvDgE,EAAI,EACDA,EAAI+U,EAAgBrZ,QAAQ,CAI/B,IAFAod,GADAD,EAAS9D,EAAgB/U,IACP6Y,EAASE,EAAYH,KAE3BhD,EACR,OAAOkD,EAEX9Y,IAEJ,OAAOvC,EAOX,IAAIwb,EAAY,EAUhB,SAASC,EAAoBC,GACzB,IAAIC,EAAMD,EAAQE,eAAiBF,EACnC,OAAQC,EAAIE,aAAeF,EAAIG,cAAgB1Z,EAGnD,IAEI2Z,EAAiB,iBAAkB3Z,EACnC4Z,EAAyBd,EAAS9Y,EAAQ,kBAAoBpC,EAC9Dic,EAAqBF,GAJN,wCAIoC5N,KAAKD,UAAUE,WAOlE8N,EAAmB,GAEnBC,EAAc,EACdC,EAAa,EACbC,EAAY,EACZC,EAAe,EAEfC,EAAiB,EACjBC,EAAiB,EACjBC,EAAkB,EAClBC,EAAe,EACfC,EAAiB,GAEjBC,EAAuBJ,EAAiBC,EACxCI,EAAqBH,EAAeC,EACpCG,EAAgBF,EAAuBC,EAEvCE,EAAW,CAAC,IAAK,KACjBC,EAAkB,CAAC,UAAW,WASlC,SAASC,GAAMC,EAASC,GACpB,IAAIC,EAAOvhB,KACXA,KAAKqhB,QAAUA,EACfrhB,KAAKshB,SAAWA,EAChBthB,KAAK6f,QAAUwB,EAAQxB,QACvB7f,KAAKM,OAAS+gB,EAAQ1Z,QAAQ6Z,YAI9BxhB,KAAKyhB,WAAa,SAASC,GACnB5D,EAASuD,EAAQ1Z,QAAQga,OAAQ,CAACN,KAClCE,EAAKjD,QAAQoD,IAIrB1hB,KAAK4hB,OA4DT,SAASC,GAAaR,EAASS,EAAWC,GACtC,IAAIC,EAAcD,EAAME,SAAS7f,OAC7B8f,EAAqBH,EAAMI,gBAAgB/f,OAC3CggB,EAAWN,EAAYxB,GAAgB0B,EAAcE,GAAuB,EAC5EG,EAAWP,GAAatB,EAAYC,IAAkBuB,EAAcE,GAAuB,EAE/FH,EAAMK,UAAYA,EAClBL,EAAMM,UAAYA,EAEdD,IACAf,EAAQiB,QAAU,IAKtBP,EAAMD,UAAYA,EAiBtB,SAA0BT,EAASU,GAC/B,IAAIO,EAAUjB,EAAQiB,QAClBL,EAAWF,EAAME,SACjBM,EAAiBN,EAAS7f,OAGzBkgB,EAAQE,aACTF,EAAQE,WAAaC,GAAqBV,IAI1CQ,EAAiB,IAAMD,EAAQI,cAC/BJ,EAAQI,cAAgBD,GAAqBV,GACnB,IAAnBQ,IACPD,EAAQI,eAAgB,GAG5B,IAAIF,EAAaF,EAAQE,WACrBE,EAAgBJ,EAAQI,cACxBC,EAAeD,EAAgBA,EAAcE,OAASJ,EAAWI,OAEjEA,EAASb,EAAMa,OAASC,GAAUZ,GACtCF,EAAMe,UAAYjH,IAClBkG,EAAMgB,UAAYhB,EAAMe,UAAYN,EAAWM,UAE/Cf,EAAMiB,MAAQC,GAASN,EAAcC,GACrCb,EAAMmB,SAAWC,GAAYR,EAAcC,GA0B/C,SAAwBN,EAASP,GAC7B,IAAIa,EAASb,EAAMa,OACfQ,EAASd,EAAQe,aAAe,GAChCC,EAAYhB,EAAQgB,WAAa,GACjCC,EAAYjB,EAAQiB,WAAa,GAEjCxB,EAAMD,YAAcxB,GAAeiD,EAAUzB,YAActB,IAC3D8C,EAAYhB,EAAQgB,UAAY,CAC5BE,EAAGD,EAAUE,QAAU,EACvBC,EAAGH,EAAUI,QAAU,GAG3BP,EAASd,EAAQe,YAAc,CAC3BG,EAAGZ,EAAOY,EACVE,EAAGd,EAAOc,IAIlB3B,EAAM0B,OAASH,EAAUE,GAAKZ,EAAOY,EAAIJ,EAAOI,GAChDzB,EAAM4B,OAASL,EAAUI,GAAKd,EAAOc,EAAIN,EAAOM,GA3ChDE,CAAetB,EAASP,GACxBA,EAAM8B,gBAAkBC,GAAa/B,EAAM0B,OAAQ1B,EAAM4B,QAEzD,IAAII,EAAkBC,GAAYjC,EAAMgB,UAAWhB,EAAM0B,OAAQ1B,EAAM4B,QACvE5B,EAAMkC,iBAAmBF,EAAgBP,EACzCzB,EAAMmC,iBAAmBH,EAAgBL,EACzC3B,EAAMgC,gBAAmBnI,EAAImI,EAAgBP,GAAK5H,EAAImI,EAAgBL,GAAMK,EAAgBP,EAAIO,EAAgBL,EAEhH3B,EAAMoC,MAAQzB,GAkNAjd,EAlNyBid,EAAcT,SAkNhCmC,EAlN0CnC,EAmNxDkB,GAAYiB,EAAI,GAAIA,EAAI,GAAIjD,GAAmBgC,GAAY1d,EAAM,GAAIA,EAAM,GAAI0b,IAnNX,EAC3EY,EAAMsC,SAAW3B,EAsMrB,SAAqBjd,EAAO2e,GACxB,OAAOnB,GAASmB,EAAI,GAAIA,EAAI,GAAIjD,GAAmB8B,GAASxd,EAAM,GAAIA,EAAM,GAAI0b,GAvM/CmD,CAAY5B,EAAcT,SAAUA,GAAY,EAEjFF,EAAMwC,YAAejC,EAAQiB,UAAsCxB,EAAME,SAAS7f,OAC9EkgB,EAAQiB,UAAUgB,YAAexC,EAAME,SAAS7f,OAASkgB,EAAQiB,UAAUgB,YADtCxC,EAAME,SAAS7f,OAwC5D,SAAkCkgB,EAASP,GACvC,IAEIyC,EAAUC,EAAWC,EAAWC,EAFhCC,EAAOtC,EAAQuC,cAAgB9C,EAC/BgB,EAAYhB,EAAMe,UAAY8B,EAAK9B,UAGvC,GAAIf,EAAMD,WAAarB,IAAiBsC,EAAY1C,GAAoBuE,EAAKJ,WAAargB,GAAY,CAClG,IAAIsf,EAAS1B,EAAM0B,OAASmB,EAAKnB,OAC7BE,EAAS5B,EAAM4B,OAASiB,EAAKjB,OAE7BnQ,EAAIwQ,GAAYjB,EAAWU,EAAQE,GACvCc,EAAYjR,EAAEgQ,EACdkB,EAAYlR,EAAEkQ,EACdc,EAAY5I,EAAIpI,EAAEgQ,GAAK5H,EAAIpI,EAAEkQ,GAAMlQ,EAAEgQ,EAAIhQ,EAAEkQ,EAC3CiB,EAAYb,GAAaL,EAAQE,GAEjCrB,EAAQuC,aAAe9C,OAGvByC,EAAWI,EAAKJ,SAChBC,EAAYG,EAAKH,UACjBC,EAAYE,EAAKF,UACjBC,EAAYC,EAAKD,UAGrB5C,EAAMyC,SAAWA,EACjBzC,EAAM0C,UAAYA,EAClB1C,EAAM2C,UAAYA,EAClB3C,EAAM4C,UAAYA,EAhElBG,CAAyBxC,EAASP,GA4MtC,IAAkBtc,EAAO2e,EAzMrB,IAAI9jB,EAAS+gB,EAAQxB,QACjBpB,EAAUsD,EAAMgD,SAASzkB,OAAQA,KACjCA,EAASyhB,EAAMgD,SAASzkB,QAE5ByhB,EAAMzhB,OAASA,EA/Df0kB,CAAiB3D,EAASU,GAG1BV,EAAQ4D,KAAK,eAAgBlD,GAE7BV,EAAQ6D,UAAUnD,GAClBV,EAAQiB,QAAQiB,UAAYxB,EA0HhC,SAASU,GAAqBV,GAK1B,IAFA,IAAIE,EAAW,GACXvb,EAAI,EACDA,EAAIqb,EAAME,SAAS7f,QACtB6f,EAASvb,GAAK,CACVye,QAASnN,EAAM+J,EAAME,SAASvb,GAAGye,SACjCC,QAASpN,EAAM+J,EAAME,SAASvb,GAAG0e,UAErC1e,IAGJ,MAAO,CACHoc,UAAWjH,IACXoG,SAAUA,EACVW,OAAQC,GAAUZ,GAClBwB,OAAQ1B,EAAM0B,OACdE,OAAQ5B,EAAM4B,QAStB,SAASd,GAAUZ,GACf,IAAIM,EAAiBN,EAAS7f,OAG9B,GAAuB,IAAnBmgB,EACA,MAAO,CACHiB,EAAGxL,EAAMiK,EAAS,GAAGkD,SACrBzB,EAAG1L,EAAMiK,EAAS,GAAGmD,UAK7B,IADA,IAAI5B,EAAI,EAAGE,EAAI,EAAGhd,EAAI,EACfA,EAAI6b,GACPiB,GAAKvB,EAASvb,GAAGye,QACjBzB,GAAKzB,EAASvb,GAAG0e,QACjB1e,IAGJ,MAAO,CACH8c,EAAGxL,EAAMwL,EAAIjB,GACbmB,EAAG1L,EAAM0L,EAAInB,IAWrB,SAASyB,GAAYjB,EAAWS,EAAGE,GAC/B,MAAO,CACHF,EAAGA,EAAIT,GAAa,EACpBW,EAAGA,EAAIX,GAAa,GAU5B,SAASe,GAAaN,EAAGE,GACrB,OAAIF,IAAME,EACChD,EAGP9E,EAAI4H,IAAM5H,EAAI8H,GACPF,EAAI,EAAI7C,EAAiBC,EAE7B8C,EAAI,EAAI7C,EAAeC,EAUlC,SAASqC,GAAYkC,EAAIC,EAAIrZ,GACpBA,IACDA,EAAQiV,GAEZ,IAAIsC,EAAI8B,EAAGrZ,EAAM,IAAMoZ,EAAGpZ,EAAM,IAC5ByX,EAAI4B,EAAGrZ,EAAM,IAAMoZ,EAAGpZ,EAAM,IAEhC,OAAO3G,KAAKigB,KAAM/B,EAAIA,EAAME,EAAIA,GAUpC,SAAST,GAASoC,EAAIC,EAAIrZ,GACjBA,IACDA,EAAQiV,GAEZ,IAAIsC,EAAI8B,EAAGrZ,EAAM,IAAMoZ,EAAGpZ,EAAM,IAC5ByX,EAAI4B,EAAGrZ,EAAM,IAAMoZ,EAAGpZ,EAAM,IAChC,OAA0B,IAAnB3G,KAAKkgB,MAAM9B,EAAGF,GAAWle,KAAKmgB,GA1TzCrE,GAAM3hB,UAAY,CAKd6e,QAAS,aAKTsD,KAAM,WACF5hB,KAAK0lB,MAAQtH,EAAkBpe,KAAK6f,QAAS7f,KAAK0lB,KAAM1lB,KAAKyhB,YAC7DzhB,KAAK2lB,UAAYvH,EAAkBpe,KAAKM,OAAQN,KAAK2lB,SAAU3lB,KAAKyhB,YACpEzhB,KAAK4lB,OAASxH,EAAkBwB,EAAoB5f,KAAK6f,SAAU7f,KAAK4lB,MAAO5lB,KAAKyhB,aAMxF3S,QAAS,WACL9O,KAAK0lB,MAAQlH,EAAqBxe,KAAK6f,QAAS7f,KAAK0lB,KAAM1lB,KAAKyhB,YAChEzhB,KAAK2lB,UAAYnH,EAAqBxe,KAAKM,OAAQN,KAAK2lB,SAAU3lB,KAAKyhB,YACvEzhB,KAAK4lB,OAASpH,EAAqBoB,EAAoB5f,KAAK6f,SAAU7f,KAAK4lB,MAAO5lB,KAAKyhB,cA4T/F,IAAIoE,GAAkB,CAClBC,UAAWxF,EACXpQ,UAAWqQ,EACXwF,QAASvF,GAGTwF,GAAuB,YACvBC,GAAsB,oBAO1B,SAASC,KACLlmB,KAAK0lB,KAAOM,GACZhmB,KAAK4lB,MAAQK,GAEbjmB,KAAKmmB,SAAU,EAEf/E,GAAMrE,MAAM/c,KAAM+C,WAGtBwa,EAAQ2I,GAAY9E,GAAO,CAKvB9C,QAAS,SAAmBoD,GACxB,IAAII,EAAY+D,GAAgBnE,EAAGvV,MAG/B2V,EAAYxB,GAA6B,IAAdoB,EAAG0E,SAC9BpmB,KAAKmmB,SAAU,GAGfrE,EAAYvB,GAA2B,IAAbmB,EAAG2E,QAC7BvE,EAAYtB,GAIXxgB,KAAKmmB,UAINrE,EAAYtB,IACZxgB,KAAKmmB,SAAU,GAGnBnmB,KAAKshB,SAASthB,KAAKqhB,QAASS,EAAW,CACnCG,SAAU,CAACP,GACXS,gBAAiB,CAACT,GAClB4E,YAvbW,QAwbXvB,SAAUrD,QAKtB,IAAI6E,GAAoB,CACpBC,YAAalG,EACbmG,YAAalG,EACbmG,UAAWlG,EACXmG,cAAelG,EACfmG,WAAYnG,GAIZoG,GAAyB,CACzBlV,EAzcmB,QA0cnBkD,EAzciB,MA0cjBmF,EAzcmB,QA0cnBU,EAzcoB,UA4cpBoM,GAAyB,cACzBC,GAAwB,sCAa5B,SAASC,KACLhnB,KAAK0lB,KAAOoB,GACZ9mB,KAAK4lB,MAAQmB,GAEb3F,GAAMrE,MAAM/c,KAAM+C,WAElB/C,KAAKinB,MAASjnB,KAAKqhB,QAAQiB,QAAQ4E,cAAgB,GAhBnD3gB,EAAO4gB,iBAAmB5gB,EAAO6gB,eACjCN,GAAyB,gBACzBC,GAAwB,6CAiB5BxJ,EAAQyJ,GAAmB5F,GAAO,CAK9B9C,QAAS,SAAmBoD,GACxB,IAAIuF,EAAQjnB,KAAKinB,MACbI,GAAgB,EAEhBC,EAAsB5F,EAAGvV,KAAKqG,cAAcqB,QAAQ,KAAM,IAC1DiO,EAAYyE,GAAkBe,GAC9BhB,EAAcO,GAAuBnF,EAAG4E,cAAgB5E,EAAG4E,YAE3DiB,EAnfW,SAmfAjB,EAGXkB,EAAa1I,EAAQmI,EAAOvF,EAAG+F,UAAW,aAG1C3F,EAAYxB,IAA8B,IAAdoB,EAAG0E,QAAgBmB,GAC3CC,EAAa,IACbP,EAAMzd,KAAKkY,GACX8F,EAAaP,EAAM7kB,OAAS,GAEzB0f,GAAatB,EAAYC,KAChC4G,GAAgB,GAIhBG,EAAa,IAKjBP,EAAMO,GAAc9F,EAEpB1hB,KAAKshB,SAASthB,KAAKqhB,QAASS,EAAW,CACnCG,SAAUgF,EACV9E,gBAAiB,CAACT,GAClB4E,YAAaA,EACbvB,SAAUrD,IAGV2F,GAEAJ,EAAMzhB,OAAOgiB,EAAY,OAKrC,IAAIE,GAAyB,CACzBC,WAAYrH,EACZnQ,UAAWoQ,EACXqH,SAAUpH,EACVqH,YAAapH,GAGbqH,GAA6B,aAC7BC,GAA6B,4CAOjC,SAASC,KACLhoB,KAAK2lB,SAAWmC,GAChB9nB,KAAK4lB,MAAQmC,GACb/nB,KAAKioB,SAAU,EAEf7G,GAAMrE,MAAM/c,KAAM+C,WAsCtB,SAASmlB,GAAuBxG,EAAIvV,GAChC,IAAIyJ,EAAMoJ,EAAQ0C,EAAGyG,SACjBC,EAAUpJ,EAAQ0C,EAAG2G,gBAMzB,OAJIlc,GAAQqU,EAAYC,KACpB7K,EAAMqJ,EAAYrJ,EAAI/M,OAAOuf,GAAU,cAAc,IAGlD,CAACxS,EAAKwS,GA3CjB7K,EAAQyK,GAAkB5G,GAAO,CAC7B9C,QAAS,SAAmBoD,GACxB,IAAIvV,EAAOub,GAAuBhG,EAAGvV,MAOrC,GAJIA,IAASmU,IACTtgB,KAAKioB,SAAU,GAGdjoB,KAAKioB,QAAV,CAIA,IAAIE,EAAUD,GAAuBnoB,KAAKC,KAAM0hB,EAAIvV,GAGhDA,GAAQqU,EAAYC,IAAiB0H,EAAQ,GAAG/lB,OAAS+lB,EAAQ,GAAG/lB,QAAW,IAC/EpC,KAAKioB,SAAU,GAGnBjoB,KAAKshB,SAASthB,KAAKqhB,QAASlV,EAAM,CAC9B8V,SAAUkG,EAAQ,GAClBhG,gBAAiBgG,EAAQ,GACzB7B,YAtkBW,QAukBXvB,SAAUrD,QAsBtB,IAAI4G,GAAkB,CAClBX,WAAYrH,EACZnQ,UAAWoQ,EACXqH,SAAUpH,EACVqH,YAAapH,GAGb8H,GAAsB,4CAO1B,SAASC,KACLxoB,KAAK2lB,SAAW4C,GAChBvoB,KAAKyoB,UAAY,GAEjBrH,GAAMrE,MAAM/c,KAAM+C,WA0BtB,SAAS2lB,GAAWhH,EAAIvV,GACpB,IAAIwc,EAAa3J,EAAQ0C,EAAGyG,SACxBM,EAAYzoB,KAAKyoB,UAGrB,GAAItc,GAAQmU,EAAcC,IAAqC,IAAtBoI,EAAWvmB,OAEhD,OADAqmB,EAAUE,EAAW,GAAGC,aAAc,EAC/B,CAACD,EAAYA,GAGxB,IAAIjiB,EACAmiB,EACAR,EAAiBrJ,EAAQ0C,EAAG2G,gBAC5BS,EAAuB,GACvBxoB,EAASN,KAAKM,OAQlB,GALAuoB,EAAgBF,EAAW9kB,QAAO,SAASklB,GACvC,OAAOtK,EAAUsK,EAAMzoB,OAAQA,MAI/B6L,IAASmU,EAET,IADA5Z,EAAI,EACGA,EAAImiB,EAAczmB,QACrBqmB,EAAUI,EAAcniB,GAAGkiB,aAAc,EACzCliB,IAMR,IADAA,EAAI,EACGA,EAAI2hB,EAAejmB,QAClBqmB,EAAUJ,EAAe3hB,GAAGkiB,aAC5BE,EAAqBtf,KAAK6e,EAAe3hB,IAIzCyF,GAAQqU,EAAYC,WACbgI,EAAUJ,EAAe3hB,GAAGkiB,YAEvCliB,IAGJ,OAAKoiB,EAAqB1mB,OAInB,CAEH6c,EAAY4J,EAAchgB,OAAOigB,GAAuB,cAAc,GACtEA,QAPJ,EAnEJvL,EAAQiL,GAAYpH,GAAO,CACvB9C,QAAS,SAAoBoD,GACzB,IAAIvV,EAAOmc,GAAgB5G,EAAGvV,MAC1Bgc,EAAUO,GAAW3oB,KAAKC,KAAM0hB,EAAIvV,GACnCgc,GAILnoB,KAAKshB,SAASthB,KAAKqhB,QAASlV,EAAM,CAC9B8V,SAAUkG,EAAQ,GAClBhG,gBAAiBgG,EAAQ,GACzB7B,YA7nBW,QA8nBXvB,SAAUrD,OA4EtB,IAAIsH,GAAgB,KAChBC,GAAiB,GAErB,SAASC,KACL9H,GAAMrE,MAAM/c,KAAM+C,WAElB,IAAIub,EAAUpC,EAAOlc,KAAKse,QAASte,MACnCA,KAAK+oB,MAAQ,IAAIP,GAAWxoB,KAAKqhB,QAAS/C,GAC1Cte,KAAKmpB,MAAQ,IAAIjD,GAAWlmB,KAAKqhB,QAAS/C,GAE1Cte,KAAKopB,aAAe,KACpBppB,KAAKqpB,YAAc,GAqCvB,SAASC,GAAcxH,EAAWyH,GAC1BzH,EAAYxB,GACZtgB,KAAKopB,aAAeG,EAAUpH,gBAAgB,GAAGyG,WACjDY,GAAazpB,KAAKC,KAAMupB,IACjBzH,GAAatB,EAAYC,IAChC+I,GAAazpB,KAAKC,KAAMupB,GAIhC,SAASC,GAAaD,GAClB,IAAIR,EAAQQ,EAAUpH,gBAAgB,GAEtC,GAAI4G,EAAMH,aAAe5oB,KAAKopB,aAAc,CACxC,IAAIK,EAAY,CAACjG,EAAGuF,EAAM5D,QAASzB,EAAGqF,EAAM3D,SAC5CplB,KAAKqpB,YAAY7f,KAAKigB,GACtB,IAAIC,EAAM1pB,KAAKqpB,YAOf/d,YANsB,WAClB,IAAI5E,EAAIgjB,EAAIxc,QAAQuc,GAChB/iB,GAAK,GACLgjB,EAAIlkB,OAAOkB,EAAG,KAGMsiB,KAIpC,SAASW,GAAiBJ,GAEtB,IADA,IAAI/F,EAAI+F,EAAUxE,SAASI,QAASzB,EAAI6F,EAAUxE,SAASK,QAClD1e,EAAI,EAAGA,EAAI1G,KAAKqpB,YAAYjnB,OAAQsE,IAAK,CAC9C,IAAIJ,EAAItG,KAAKqpB,YAAY3iB,GACrBkjB,EAAKtkB,KAAKsW,IAAI4H,EAAIld,EAAEkd,GAAIqG,EAAKvkB,KAAKsW,IAAI8H,EAAIpd,EAAEod,GAChD,GAAIkG,GAAMX,IAAkBY,GAAMZ,GAC9B,OAAO,EAGf,OAAO,EArEX1L,EAAQ2L,GAAiB9H,GAAO,CAO5B9C,QAAS,SAAoB+C,EAASyI,EAAYC,GAC9C,IAAIxC,EAhuBW,SAguBAwC,EAAUzD,YACrB0D,EA/tBW,SA+tBAD,EAAUzD,YAEzB,KAAI0D,GAAWD,EAAUE,oBAAsBF,EAAUE,mBAAmBC,kBAA5E,CAKA,GAAI3C,EACA+B,GAAcvpB,KAAKC,KAAM8pB,EAAYC,QAClC,GAAIC,GAAWL,GAAiB5pB,KAAKC,KAAM+pB,GAC9C,OAGJ/pB,KAAKshB,SAASD,EAASyI,EAAYC,KAMvCjb,QAAS,WACL9O,KAAK+oB,MAAMja,UACX9O,KAAKmpB,MAAMra,aA0CnB,IAAIqb,GAAwB9K,EAAS3D,EAAalC,MAAO,eACrD4Q,GAAsBD,KAA0BhmB,EAIhDkmB,GAAoB,OACpBC,GAA4B,eAC5BC,GAAoB,OACpBC,GAAqB,QACrBC,GAAqB,QACrBC,GA4IJ,WACI,IAAKN,GACD,OAAO,EAEX,IAAIO,EAAW,GACXC,EAAcrkB,EAAOskB,KAAOtkB,EAAOskB,IAAIC,SAO3C,MANA,CAAC,OAAQ,eAAgB,QAAS,QAAS,cAAe,QAAQzmB,SAAQ,SAAS0Z,GAI/E4M,EAAS5M,IAAO6M,GAAcrkB,EAAOskB,IAAIC,SAAS,eAAgB/M,MAE/D4M,EAxJYI,GASvB,SAASC,GAAY3J,EAASve,GAC1B9C,KAAKqhB,QAAUA,EACfrhB,KAAKirB,IAAInoB,GAGbkoB,GAAYvrB,UAAY,CAKpBwrB,IAAK,SAASnoB,GAzBS,WA2BfA,IACAA,EAAQ9C,KAAKkrB,WAGbd,IAAuBpqB,KAAKqhB,QAAQxB,QAAQrG,OAASkR,GAAiB5nB,KACtE9C,KAAKqhB,QAAQxB,QAAQrG,MAAM2Q,IAAyBrnB,GAExD9C,KAAKsW,QAAUxT,EAAM0P,cAAcnS,QAMvC8qB,OAAQ,WACJnrB,KAAKirB,IAAIjrB,KAAKqhB,QAAQ1Z,QAAQyjB,cAOlCF,QAAS,WACL,IAAI5U,EAAU,GAMd,OALA+F,EAAKrc,KAAKqhB,QAAQgK,aAAa,SAASC,GAChCxN,EAASwN,EAAW3jB,QAAQga,OAAQ,CAAC2J,MACrChV,EAAUA,EAAQzN,OAAOyiB,EAAWC,sBAgEpD,SAA2BjV,GAEvB,GAAIqI,EAAMrI,EAASiU,IACf,OAAOA,GAGX,IAAIiB,EAAU7M,EAAMrI,EAASkU,IACzBiB,EAAU9M,EAAMrI,EAASmU,IAM7B,GAAIe,GAAWC,EACX,OAAOlB,GAIX,GAAIiB,GAAWC,EACX,OAAOD,EAAUhB,GAAqBC,GAI1C,GAAI9L,EAAMrI,EAASgU,IACf,OAAOA,GAGX,OAAOD,GAxFIqB,CAAkBpV,EAAQ/M,KAAK,OAO1CoiB,gBAAiB,SAAS5J,GACtB,IAAIgD,EAAWhD,EAAMgD,SACjBJ,EAAY5C,EAAM8B,gBAGtB,GAAI7jB,KAAKqhB,QAAQiB,QAAQsJ,UACrB7G,EAASxL,qBADb,CAKA,IAAIjD,EAAUtW,KAAKsW,QACfuV,EAAUlN,EAAMrI,EAASiU,MAAuBG,GAAiBH,IACjEkB,EAAU9M,EAAMrI,EAASmU,MAAwBC,GAAiBD,IAClEe,EAAU7M,EAAMrI,EAASkU,MAAwBE,GAAiBF,IAEtE,GAAIqB,EAAS,CAGT,IAAIC,EAAyC,IAA1B/J,EAAME,SAAS7f,OAC9B2pB,EAAgBhK,EAAMmB,SAAW,EACjC8I,EAAiBjK,EAAMgB,UAAY,IAEvC,GAAI+I,GAAgBC,GAAiBC,EACjC,OAIR,IAAIR,IAAWC,EAKf,OAAII,GACCJ,GAAW9G,EAAY5D,GACvByK,GAAW7G,EAAY3D,EACjBhhB,KAAKisB,WAAWlH,QAH3B,IAWJkH,WAAY,SAASlH,GACjB/kB,KAAKqhB,QAAQiB,QAAQsJ,WAAY,EACjC7G,EAASxL,mBAiFjB,IAAI2S,GAAiB,EACjBC,GAAc,EACdC,GAAgB,EAChBC,GAAc,EACdC,GAAmBD,GACnBE,GAAkB,GAStB,SAASC,GAAW7kB,GAChB3H,KAAK2H,QAAU/C,EAAO,GAAI5E,KAAKysB,SAAU9kB,GAAW,IAEpD3H,KAAK4R,GApgCE+N,IAsgCP3f,KAAKqhB,QAAU,KAGfrhB,KAAK2H,QAAQga,OAAS1D,EAAYje,KAAK2H,QAAQga,QAAQ,GAEvD3hB,KAAK0sB,MAAQR,GAEblsB,KAAK2sB,aAAe,GACpB3sB,KAAK4sB,YAAc,GAqOvB,SAASC,GAASH,GACd,OAAIA,EAAQH,GACD,SACAG,EAAQL,GACR,MACAK,EAAQN,GACR,OACAM,EAAQP,GACR,QAEJ,GAQX,SAASW,GAAanI,GAClB,OAAIA,GAAa7D,EACN,OACA6D,GAAa9D,EACb,KACA8D,GAAahE,EACb,OACAgE,GAAa/D,EACb,QAEJ,GASX,SAASmM,GAA6BC,EAAiB1B,GACnD,IAAIjK,EAAUiK,EAAWjK,QACzB,OAAIA,EACOA,EAAQvhB,IAAIktB,GAEhBA,EAQX,SAASC,KACLT,GAAWzP,MAAM/c,KAAM+C,WA6D3B,SAASmqB,KACLD,GAAelQ,MAAM/c,KAAM+C,WAE3B/C,KAAKmtB,GAAK,KACVntB,KAAKotB,GAAK,KA4Ed,SAASC,KACLJ,GAAelQ,MAAM/c,KAAM+C,WAsC/B,SAASuqB,KACLd,GAAWzP,MAAM/c,KAAM+C,WAEvB/C,KAAKutB,OAAS,KACdvtB,KAAKwtB,OAAS,KAmElB,SAASC,KACLR,GAAelQ,MAAM/c,KAAM+C,WA8B/B,SAAS2qB,KACLT,GAAelQ,MAAM/c,KAAM+C,WA2D/B,SAAS4qB,KACLnB,GAAWzP,MAAM/c,KAAM+C,WAIvB/C,KAAK4tB,OAAQ,EACb5tB,KAAK6tB,SAAU,EAEf7tB,KAAKutB,OAAS,KACdvtB,KAAKwtB,OAAS,KACdxtB,KAAK8tB,MAAQ,EAqGjB,SAASC,GAAOlO,EAASlY,GAGrB,OAFAA,EAAUA,GAAW,IACb0jB,YAAcpN,EAAYtW,EAAQ0jB,YAAa0C,GAAOtB,SAASuB,QAChE,IAAIC,GAAQpO,EAASlY,GA7tBhC6kB,GAAW/sB,UAAY,CAKnBgtB,SAAU,GAOVxB,IAAK,SAAStjB,GAKV,OAJA/C,EAAO5E,KAAK2H,QAASA,GAGrB3H,KAAKqhB,SAAWrhB,KAAKqhB,QAAQ+J,YAAYD,SAClCnrB,MAQXkuB,cAAe,SAASlB,GACpB,GAAI7Q,EAAe6Q,EAAiB,gBAAiBhtB,MACjD,OAAOA,KAGX,IAAI2sB,EAAe3sB,KAAK2sB,aAMxB,OAJKA,GADLK,EAAkBD,GAA6BC,EAAiBhtB,OAC9B4R,MAC9B+a,EAAaK,EAAgBpb,IAAMob,EACnCA,EAAgBkB,cAAcluB,OAE3BA,MAQXmuB,kBAAmB,SAASnB,GACxB,OAAI7Q,EAAe6Q,EAAiB,oBAAqBhtB,MAC9CA,MAGXgtB,EAAkBD,GAA6BC,EAAiBhtB,aACzDA,KAAK2sB,aAAaK,EAAgBpb,IAClC5R,OAQXouB,eAAgB,SAASpB,GACrB,GAAI7Q,EAAe6Q,EAAiB,iBAAkBhtB,MAClD,OAAOA,KAGX,IAAI4sB,EAAc5sB,KAAK4sB,YAMvB,OAJ+C,IAA3C9N,EAAQ8N,EADZI,EAAkBD,GAA6BC,EAAiBhtB,SAE5D4sB,EAAYpjB,KAAKwjB,GACjBA,EAAgBoB,eAAepuB,OAE5BA,MAQXquB,mBAAoB,SAASrB,GACzB,GAAI7Q,EAAe6Q,EAAiB,qBAAsBhtB,MACtD,OAAOA,KAGXgtB,EAAkBD,GAA6BC,EAAiBhtB,MAChE,IAAIqC,EAAQyc,EAAQ9e,KAAK4sB,YAAaI,GAItC,OAHI3qB,GAAS,GACTrC,KAAK4sB,YAAYpnB,OAAOnD,EAAO,GAE5BrC,MAOXsuB,mBAAoB,WAChB,OAAOtuB,KAAK4sB,YAAYxqB,OAAS,GAQrCmsB,iBAAkB,SAASvB,GACvB,QAAShtB,KAAK2sB,aAAaK,EAAgBpb,KAQ/CqT,KAAM,SAASlD,GACX,IAAIR,EAAOvhB,KACP0sB,EAAQ1sB,KAAK0sB,MAEjB,SAASzH,EAAKuJ,GACVjN,EAAKF,QAAQ4D,KAAKuJ,EAAOzM,GAIzB2K,EAAQL,IACRpH,EAAK1D,EAAK5Z,QAAQ6mB,MAAQ3B,GAASH,IAGvCzH,EAAK1D,EAAK5Z,QAAQ6mB,OAEdzM,EAAM0M,iBACNxJ,EAAKlD,EAAM0M,iBAIX/B,GAASL,IACTpH,EAAK1D,EAAK5Z,QAAQ6mB,MAAQ3B,GAASH,KAU3CgC,QAAS,SAAS3M,GACd,GAAI/hB,KAAK2uB,UACL,OAAO3uB,KAAKilB,KAAKlD,GAGrB/hB,KAAK0sB,MA7KM,IAoLfiC,QAAS,WAEL,IADA,IAAIjoB,EAAI,EACDA,EAAI1G,KAAK4sB,YAAYxqB,QAAQ,CAChC,KAAMpC,KAAK4sB,YAAYlmB,GAAGgmB,OAvLnB,GAuL2CR,KAC9C,OAAO,EAEXxlB,IAEJ,OAAO,GAOXwe,UAAW,SAAS6E,GAGhB,IAAI6E,EAAiBhqB,EAAO,GAAImlB,GAGhC,IAAKjM,EAAS9d,KAAK2H,QAAQga,OAAQ,CAAC3hB,KAAM4uB,IAGtC,OAFA5uB,KAAK6uB,aACL7uB,KAAK0sB,MA3ME,IAgNP1sB,KAAK0sB,OAASJ,GAAmBC,GAhN1B,MAiNPvsB,KAAK0sB,MAAQR,IAGjBlsB,KAAK0sB,MAAQ1sB,KAAK8uB,QAAQF,GAItB5uB,KAAK0sB,OAASP,GAAcC,GAAgBC,GAAcE,KAC1DvsB,KAAK0uB,QAAQE,IAWrBE,QAAS,SAAS/E,KAOlBwB,eAAgB,aAOhBsD,MAAO,cA8DXtR,EAAQ0P,GAAgBT,GAAY,CAKhCC,SAAU,CAKNxK,SAAU,GASd8M,SAAU,SAAShN,GACf,IAAIiN,EAAiBhvB,KAAK2H,QAAQsa,SAClC,OAA0B,IAAnB+M,GAAwBjN,EAAME,SAAS7f,SAAW4sB,GAS7DF,QAAS,SAAS/M,GACd,IAAI2K,EAAQ1sB,KAAK0sB,MACb5K,EAAYC,EAAMD,UAElBmN,EAAevC,GAASP,GAAcC,IACtC8C,EAAUlvB,KAAK+uB,SAAShN,GAG5B,OAAIkN,IAAiBnN,EAAYrB,IAAiByO,GACvCxC,EAAQH,GACR0C,GAAgBC,EACnBpN,EAAYtB,EACLkM,EAAQL,GACNK,EAAQP,GAGdO,EAAQN,GAFJD,GA5VJ,MAiXnB5O,EAAQ2P,GAAeD,GAAgB,CAKnCR,SAAU,CACN+B,MAAO,MACPW,UAAW,GACXlN,SAAU,EACV0C,UAAW1D,GAGfsK,eAAgB,WACZ,IAAI5G,EAAY3kB,KAAK2H,QAAQgd,UACzBrO,EAAU,GAOd,OANIqO,EAAY5D,GACZzK,EAAQ9M,KAAKihB,IAEb9F,EAAY3D,GACZ1K,EAAQ9M,KAAKghB,IAEVlU,GAGX8Y,cAAe,SAASrN,GACpB,IAAIpa,EAAU3H,KAAK2H,QACf0nB,GAAW,EACXnM,EAAWnB,EAAMmB,SACjByB,EAAY5C,EAAM4C,UAClBnB,EAAIzB,EAAM0B,OACVC,EAAI3B,EAAM4B,OAed,OAZMgB,EAAYhd,EAAQgd,YAClBhd,EAAQgd,UAAY5D,GACpB4D,EAAmB,IAANnB,EAAW9C,EAAkB8C,EAAI,EAAK7C,EAAiBC,EACpEyO,EAAW7L,GAAKxjB,KAAKmtB,GACrBjK,EAAW5d,KAAKsW,IAAImG,EAAM0B,UAE1BkB,EAAmB,IAANjB,EAAWhD,EAAkBgD,EAAI,EAAK7C,EAAeC,EAClEuO,EAAW3L,GAAK1jB,KAAKotB,GACrBlK,EAAW5d,KAAKsW,IAAImG,EAAM4B,UAGlC5B,EAAM4C,UAAYA,EACX0K,GAAYnM,EAAWvb,EAAQwnB,WAAaxK,EAAYhd,EAAQgd,WAG3EoK,SAAU,SAAShN,GACf,OAAOkL,GAAextB,UAAUsvB,SAAShvB,KAAKC,KAAM+hB,KAC/C/hB,KAAK0sB,MAAQP,MAAkBnsB,KAAK0sB,MAAQP,KAAgBnsB,KAAKovB,cAAcrN,KAGxFkD,KAAM,SAASlD,GAEX/hB,KAAKmtB,GAAKpL,EAAM0B,OAChBzjB,KAAKotB,GAAKrL,EAAM4B,OAEhB,IAAIgB,EAAYmI,GAAa/K,EAAM4C,WAE/BA,IACA5C,EAAM0M,gBAAkBzuB,KAAK2H,QAAQ6mB,MAAQ7J,GAEjD3kB,KAAK6d,OAAOoH,KAAKllB,KAAKC,KAAM+hB,MAcpCxE,EAAQ8P,GAAiBJ,GAAgB,CAKrCR,SAAU,CACN+B,MAAO,QACPW,UAAW,EACXlN,SAAU,GAGdsJ,eAAgB,WACZ,MAAO,CAAChB,KAGZwE,SAAU,SAAShN,GACf,OAAO/hB,KAAK6d,OAAOkR,SAAShvB,KAAKC,KAAM+hB,KAClCzc,KAAKsW,IAAImG,EAAMoC,MAAQ,GAAKnkB,KAAK2H,QAAQwnB,WAAanvB,KAAK0sB,MAAQP,KAG5ElH,KAAM,SAASlD,GACX,GAAoB,IAAhBA,EAAMoC,MAAa,CACnB,IAAImL,EAAQvN,EAAMoC,MAAQ,EAAI,KAAO,MACrCpC,EAAM0M,gBAAkBzuB,KAAK2H,QAAQ6mB,MAAQc,EAEjDtvB,KAAK6d,OAAOoH,KAAKllB,KAAKC,KAAM+hB,MAiBpCxE,EAAQ+P,GAAiBd,GAAY,CAKjCC,SAAU,CACN+B,MAAO,QACPvM,SAAU,EACVsN,KAAM,IACNJ,UAAW,GAGf5D,eAAgB,WACZ,MAAO,CAAClB,KAGZyE,QAAS,SAAS/M,GACd,IAAIpa,EAAU3H,KAAK2H,QACf6nB,EAAgBzN,EAAME,SAAS7f,SAAWuF,EAAQsa,SAClDwN,EAAgB1N,EAAMmB,SAAWvb,EAAQwnB,UACzCO,EAAY3N,EAAMgB,UAAYpb,EAAQ4nB,KAM1C,GAJAvvB,KAAKwtB,OAASzL,GAIT0N,IAAkBD,GAAkBzN,EAAMD,WAAatB,EAAYC,KAAkBiP,EACtF1vB,KAAK6uB,aACF,GAAI9M,EAAMD,UAAYxB,EACzBtgB,KAAK6uB,QACL7uB,KAAKutB,OAASzR,GAAkB,WAC5B9b,KAAK0sB,MAAQJ,GACbtsB,KAAK0uB,YACN/mB,EAAQ4nB,KAAMvvB,WACd,GAAI+hB,EAAMD,UAAYtB,EACzB,OAAO8L,GAEX,OA7gBW,IAghBfuC,MAAO,WACHrjB,aAAaxL,KAAKutB,SAGtBtI,KAAM,SAASlD,GACP/hB,KAAK0sB,QAAUJ,KAIfvK,GAAUA,EAAMD,UAAYtB,EAC5BxgB,KAAKqhB,QAAQ4D,KAAKjlB,KAAK2H,QAAQ6mB,MAAQ,KAAMzM,IAE7C/hB,KAAKwtB,OAAO1K,UAAYjH,IACxB7b,KAAKqhB,QAAQ4D,KAAKjlB,KAAK2H,QAAQ6mB,MAAOxuB,KAAKwtB,aAevDjQ,EAAQkQ,GAAkBR,GAAgB,CAKtCR,SAAU,CACN+B,MAAO,SACPW,UAAW,EACXlN,SAAU,GAGdsJ,eAAgB,WACZ,MAAO,CAAChB,KAGZwE,SAAU,SAAShN,GACf,OAAO/hB,KAAK6d,OAAOkR,SAAShvB,KAAKC,KAAM+hB,KAClCzc,KAAKsW,IAAImG,EAAMsC,UAAYrkB,KAAK2H,QAAQwnB,WAAanvB,KAAK0sB,MAAQP,OAc/E5O,EAAQmQ,GAAiBT,GAAgB,CAKrCR,SAAU,CACN+B,MAAO,QACPW,UAAW,GACX3K,SAAU,GACVG,UAAW5D,EAAuBC,EAClCiB,SAAU,GAGdsJ,eAAgB,WACZ,OAAO2B,GAAcztB,UAAU8rB,eAAexrB,KAAKC,OAGvD+uB,SAAU,SAAShN,GACf,IACIyC,EADAG,EAAY3kB,KAAK2H,QAAQgd,UAW7B,OARIA,GAAa5D,EAAuBC,GACpCwD,EAAWzC,EAAMgC,gBACVY,EAAY5D,EACnByD,EAAWzC,EAAMkC,iBACVU,EAAY3D,IACnBwD,EAAWzC,EAAMmC,kBAGdlkB,KAAK6d,OAAOkR,SAAShvB,KAAKC,KAAM+hB,IACnC4C,EAAY5C,EAAM8B,iBAClB9B,EAAMmB,SAAWljB,KAAK2H,QAAQwnB,WAC9BpN,EAAMwC,aAAevkB,KAAK2H,QAAQsa,UAClCrG,EAAI4I,GAAYxkB,KAAK2H,QAAQ6c,UAAYzC,EAAMD,UAAYtB,GAGnEyE,KAAM,SAASlD,GACX,IAAI4C,EAAYmI,GAAa/K,EAAM8B,iBAC/Bc,GACA3kB,KAAKqhB,QAAQ4D,KAAKjlB,KAAK2H,QAAQ6mB,MAAQ7J,EAAW5C,GAGtD/hB,KAAKqhB,QAAQ4D,KAAKjlB,KAAK2H,QAAQ6mB,MAAOzM,MA2B9CxE,EAAQoQ,GAAenB,GAAY,CAK/BC,SAAU,CACN+B,MAAO,MACPvM,SAAU,EACV0N,KAAM,EACNC,SAAU,IACVL,KAAM,IACNJ,UAAW,EACXU,aAAc,IAGlBtE,eAAgB,WACZ,MAAO,CAACjB,KAGZwE,QAAS,SAAS/M,GACd,IAAIpa,EAAU3H,KAAK2H,QAEf6nB,EAAgBzN,EAAME,SAAS7f,SAAWuF,EAAQsa,SAClDwN,EAAgB1N,EAAMmB,SAAWvb,EAAQwnB,UACzCW,EAAiB/N,EAAMgB,UAAYpb,EAAQ4nB,KAI/C,GAFAvvB,KAAK6uB,QAEA9M,EAAMD,UAAYxB,GAAgC,IAAftgB,KAAK8tB,MACzC,OAAO9tB,KAAK+vB,cAKhB,GAAIN,GAAiBK,GAAkBN,EAAe,CAClD,GAAIzN,EAAMD,WAAatB,EACnB,OAAOxgB,KAAK+vB,cAGhB,IAAIC,GAAgBhwB,KAAK4tB,OAAS7L,EAAMe,UAAY9iB,KAAK4tB,MAAQjmB,EAAQioB,SACrEK,GAAiBjwB,KAAK6tB,SAAW1K,GAAYnjB,KAAK6tB,QAAS9L,EAAMa,QAAUjb,EAAQkoB,aAgBvF,GAdA7vB,KAAK4tB,MAAQ7L,EAAMe,UACnB9iB,KAAK6tB,QAAU9L,EAAMa,OAEhBqN,GAAkBD,EAGnBhwB,KAAK8tB,OAAS,EAFd9tB,KAAK8tB,MAAQ,EAKjB9tB,KAAKwtB,OAASzL,EAKG,IADF/hB,KAAK8tB,MAAQnmB,EAAQgoB,KAIhC,OAAK3vB,KAAKsuB,sBAGNtuB,KAAKutB,OAASzR,GAAkB,WAC5B9b,KAAK0sB,MAAQJ,GACbtsB,KAAK0uB,YACN/mB,EAAQioB,SAAU5vB,MACdmsB,IANAG,GAUnB,OAttBW,IAytBfyD,YAAa,WAIT,OAHA/vB,KAAKutB,OAASzR,GAAkB,WAC5B9b,KAAK0sB,MA3tBE,KA4tBR1sB,KAAK2H,QAAQioB,SAAU5vB,MA5tBf,IAguBf6uB,MAAO,WACHrjB,aAAaxL,KAAKutB,SAGtBtI,KAAM,WACEjlB,KAAK0sB,OAASJ,KACdtsB,KAAKwtB,OAAO0C,SAAWlwB,KAAK8tB,MAC5B9tB,KAAKqhB,QAAQ4D,KAAKjlB,KAAK2H,QAAQ6mB,MAAOxuB,KAAKwtB,YAoBvDO,GAAOoC,QAAU,QAMjBpC,GAAOtB,SAAW,CAOd2D,WAAW,EAQXhF,YAl9BuB,UAw9BvBzJ,QAAQ,EASRH,YAAa,KAOb6O,WAAY,KAOZrC,OAAQ,CAEJ,CAACP,GAAkB,CAAC9L,QAAQ,IAC5B,CAAC0L,GAAiB,CAAC1L,QAAQ,GAAQ,CAAC,WACpC,CAAC+L,GAAiB,CAAC/I,UAAW5D,IAC9B,CAACmM,GAAe,CAACvI,UAAW5D,GAAuB,CAAC,UACpD,CAAC4M,IACD,CAACA,GAAe,CAACa,MAAO,YAAamB,KAAM,GAAI,CAAC,QAChD,CAACrC,KAQLgD,SAAU,CAMNC,WAAY,OAOZC,YAAa,OASbC,aAAc,OAOdC,eAAgB,OAOhBC,SAAU,OAQVC,kBAAmB,kBAa3B,SAAS3C,GAAQpO,EAASlY,GAzwD1B,IAA6B0Z,EA0wDzBrhB,KAAK2H,QAAU/C,EAAO,GAAImpB,GAAOtB,SAAU9kB,GAAW,IAEtD3H,KAAK2H,QAAQ6Z,YAAcxhB,KAAK2H,QAAQ6Z,aAAe3B,EAEvD7f,KAAK6wB,SAAW,GAChB7wB,KAAKsiB,QAAU,GACftiB,KAAKqrB,YAAc,GACnBrrB,KAAK8wB,YAAc,GAEnB9wB,KAAK6f,QAAUA,EACf7f,KAAK+hB,MArwDE,KAfkBV,EAoxDQrhB,MAlxDR2H,QAAQ0oB,aAItBlQ,EACA6G,GACA5G,EACAoI,GACCtI,EAGDgJ,GAFAhD,KAIO7E,EAASQ,IAswD3B7hB,KAAKorB,YAAc,IAAIJ,GAAYhrB,KAAMA,KAAK2H,QAAQyjB,aAEtD2F,GAAe/wB,MAAM,GAErBqc,EAAKrc,KAAK2H,QAAQ0jB,aAAa,SAAS2F,GACpC,IAAI1F,EAAatrB,KAAKsI,IAAI,IAAK0oB,EAAK,GAAIA,EAAK,KAC7CA,EAAK,IAAM1F,EAAW4C,cAAc8C,EAAK,IACzCA,EAAK,IAAM1F,EAAW8C,eAAe4C,EAAK,MAC3ChxB,MA4PP,SAAS+wB,GAAe1P,EAAS/Y,GAC7B,IAIIkX,EAJAK,EAAUwB,EAAQxB,QACjBA,EAAQrG,QAIb6C,EAAKgF,EAAQ1Z,QAAQ2oB,UAAU,SAASxtB,EAAO/B,GAC3Cye,EAAOH,EAASQ,EAAQrG,MAAOzY,GAC3BuH,GACA+Y,EAAQyP,YAAYtR,GAAQK,EAAQrG,MAAMgG,GAC1CK,EAAQrG,MAAMgG,GAAQ1c,GAEtB+c,EAAQrG,MAAMgG,GAAQ6B,EAAQyP,YAAYtR,IAAS,MAGtDlX,IACD+Y,EAAQyP,YAAc,KAzQ9B7C,GAAQxuB,UAAY,CAMhBwrB,IAAK,SAAStjB,GAaV,OAZA/C,EAAO5E,KAAK2H,QAASA,GAGjBA,EAAQyjB,aACRprB,KAAKorB,YAAYD,SAEjBxjB,EAAQ6Z,cAERxhB,KAAK+hB,MAAMjT,UACX9O,KAAK+hB,MAAMzhB,OAASqH,EAAQ6Z,YAC5BxhB,KAAK+hB,MAAMH,QAER5hB,MASXixB,KAAM,SAASC,GACXlxB,KAAKsiB,QAAQ6O,QAAUD,EA5Db,EADP,GAsEPhM,UAAW,SAAS6E,GAChB,IAAIzH,EAAUtiB,KAAKsiB,QACnB,IAAIA,EAAQ6O,QAAZ,CAOA,IAAI7F,EAFJtrB,KAAKorB,YAAYO,gBAAgB5B,GAGjC,IAAIsB,EAAcrrB,KAAKqrB,YAKnB+F,EAAgB9O,EAAQ8O,gBAIvBA,GAAkBA,GAAiBA,EAAc1E,MAAQJ,MAC1D8E,EAAgB9O,EAAQ8O,cAAgB,MAI5C,IADA,IAAI1qB,EAAI,EACDA,EAAI2kB,EAAYjpB,QACnBkpB,EAAaD,EAAY3kB,GA9FnB,IAsGF4b,EAAQ6O,SACHC,GAAiB9F,GAAc8F,IAChC9F,EAAWiD,iBAAiB6C,GAGhC9F,EAAWuD,QAFXvD,EAAWpG,UAAU6E,IAOpBqH,GAAiB9F,EAAWoB,OAASP,GAAcC,GAAgBC,MACpE+E,EAAgB9O,EAAQ8O,cAAgB9F,GAE5C5kB,MASR5G,IAAK,SAASwrB,GACV,GAAIA,aAAsBkB,GACtB,OAAOlB,EAIX,IADA,IAAID,EAAcrrB,KAAKqrB,YACd3kB,EAAI,EAAGA,EAAI2kB,EAAYjpB,OAAQsE,IACpC,GAAI2kB,EAAY3kB,GAAGiB,QAAQ6mB,OAASlD,EAChC,OAAOD,EAAY3kB,GAG3B,OAAO,MASX4B,IAAK,SAASgjB,GACV,GAAInP,EAAemP,EAAY,MAAOtrB,MAClC,OAAOA,KAIX,IAAIqxB,EAAWrxB,KAAKF,IAAIwrB,EAAW3jB,QAAQ6mB,OAS3C,OARI6C,GACArxB,KAAK4K,OAAOymB,GAGhBrxB,KAAKqrB,YAAY7hB,KAAK8hB,GACtBA,EAAWjK,QAAUrhB,KAErBA,KAAKorB,YAAYD,SACVG,GAQX1gB,OAAQ,SAAS0gB,GACb,GAAInP,EAAemP,EAAY,SAAUtrB,MACrC,OAAOA,KAMX,GAHAsrB,EAAatrB,KAAKF,IAAIwrB,GAGN,CACZ,IAAID,EAAcrrB,KAAKqrB,YACnBhpB,EAAQyc,EAAQuM,EAAaC,IAElB,IAAXjpB,IACAgpB,EAAY7lB,OAAOnD,EAAO,GAC1BrC,KAAKorB,YAAYD,UAIzB,OAAOnrB,MASXsO,GAAI,SAASgjB,EAAQhT,GACjB,GAAIgT,IAAWntB,GAGXma,IAAYna,EAAhB,CAIA,IAAI0sB,EAAW7wB,KAAK6wB,SAKpB,OAJAxU,EAAKkC,EAAS+S,IAAS,SAAS9C,GAC5BqC,EAASrC,GAASqC,EAASrC,IAAU,GACrCqC,EAASrC,GAAOhlB,KAAK8U,MAElBte,OASX6O,IAAK,SAASyiB,EAAQhT,GAClB,GAAIgT,IAAWntB,EAAf,CAIA,IAAI0sB,EAAW7wB,KAAK6wB,SAQpB,OAPAxU,EAAKkC,EAAS+S,IAAS,SAAS9C,GACvBlQ,EAGDuS,EAASrC,IAAUqC,EAASrC,GAAOhpB,OAAOsZ,EAAQ+R,EAASrC,GAAQlQ,GAAU,UAFtEuS,EAASrC,MAKjBxuB,OAQXilB,KAAM,SAASuJ,EAAOzjB,GAEd/K,KAAK2H,QAAQyoB,WAkEzB,SAAyB5B,EAAOzjB,GAC5B,IAAIwmB,EAAe/iB,EAASgjB,YAAY,SACxCD,EAAaE,UAAUjD,GAAO,GAAM,GACpC+C,EAAaG,QAAU3mB,EACvBA,EAAKzK,OAAOqxB,cAAcJ,GArElBK,CAAgBpD,EAAOzjB,GAI3B,IAAI8lB,EAAW7wB,KAAK6wB,SAASrC,IAAUxuB,KAAK6wB,SAASrC,GAAO9rB,QAC5D,GAAKmuB,GAAaA,EAASzuB,OAA3B,CAIA2I,EAAKoB,KAAOqiB,EACZzjB,EAAKwO,eAAiB,WAClBxO,EAAKga,SAASxL,kBAIlB,IADA,IAAI7S,EAAI,EACDA,EAAImqB,EAASzuB,QAChByuB,EAASnqB,GAAGqE,GACZrE,MAQRoI,QAAS,WACL9O,KAAK6f,SAAWkR,GAAe/wB,MAAM,GAErCA,KAAK6wB,SAAW,GAChB7wB,KAAKsiB,QAAU,GACftiB,KAAK+hB,MAAMjT,UACX9O,KAAK6f,QAAU,OAyCvBjb,EAAOmpB,GAAQ,CACXzN,YAAaA,EACbC,WAAYA,EACZC,UAAWA,EACXC,aAAcA,EAEdyL,eAAgBA,GAChBC,YAAaA,GACbC,cAAeA,GACfC,YAAaA,GACbC,iBAAkBA,GAClBC,gBAAiBA,GACjBsF,aAlrCe,GAorCfnR,eAAgBA,EAChBC,eAAgBA,EAChBC,gBAAiBA,EACjBC,aAAcA,EACdC,eAAgBA,EAChBC,qBAAsBA,EACtBC,mBAAoBA,EACpBC,cAAeA,EAEfgN,QAASA,GACT7M,MAAOA,GACP4J,YAAaA,GAEbxC,WAAYA,GACZtC,WAAYA,GACZc,kBAAmBA,GACnBkC,gBAAiBA,GACjBlB,iBAAkBA,GAElBwE,WAAYA,GACZS,eAAgBA,GAChB6E,IAAKnE,GACLoE,IAAK7E,GACL8E,MAAOtE,GACPuE,MAAO5E,GACP6E,OAAQzE,GACR0E,MAAO7E,GAEPhf,GAAI8P,EACJvP,IAAK2P,EACLnC,KAAMA,EACNiB,MAAOA,EACPH,OAAQA,EACRvY,OAAQA,EACR2Y,QAASA,EACTrB,OAAQA,EACRmD,SAAUA,UAKsB,IAAX9Y,EAAyBA,EAA0B,oBAATgb,KAAuBA,KAAO,IACtFwM,OAASA,IAGhB,aACI,OAAOA,IACV,kCAtkFL,CA6kFGxnB,OAAQiI","file":"vendors~files-modal.js?v=a45eae5d71a1a74975d9","sourcesContent":["var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar fails = require('../internals/fails');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {\n [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });\n});\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","!function(A,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Components/Modal\",[],t):\"object\"==typeof exports?exports[\"Components/Modal\"]=t():(A.NextcloudVue=A.NextcloudVue||{},A.NextcloudVue[\"Components/Modal\"]=t())}(window,function(){return function(A){var t={};function e(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return A[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=A,e.c=t,e.d=function(A,t,o){e.o(A,t)||Object.defineProperty(A,t,{enumerable:!0,get:o})},e.r=function(A){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(A,\"__esModule\",{value:!0})},e.t=function(A,t){if(1&t&&(A=e(A)),8&t)return A;if(4&t&&\"object\"==typeof A&&A&&A.__esModule)return A;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:A}),2&t&&\"string\"!=typeof A)for(var i in A)e.d(o,i,function(t){return A[t]}.bind(null,i));return o},e.n=function(A){var t=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(t,\"a\",t),t},e.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},e.p=\"/dist/\",e(e.s=149)}({0:function(A,t,e){\"use strict\";function o(A,t,e,o,i,n,a,r){var s,c=\"function\"==typeof A?A.options:A;if(t&&(c.render=t,c.staticRenderFns=e,c._compiled=!0),o&&(c.functional=!0),n&&(c._scopeId=\"data-v-\"+n),a?(s=function(A){(A=A||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(A=__VUE_SSR_CONTEXT__),i&&i.call(this,A),A&&A._registeredComponents&&A._registeredComponents.add(a)},c._ssrRegister=s):i&&(s=r?function(){i.call(this,this.$root.$options.shadowRoot)}:i),s)if(c.functional){c._injectStyles=s;var l=c.render;c.render=function(A,t){return s.call(t),l(A,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:A,options:c}}e.d(t,\"a\",function(){return o})},1:function(A,t,e){\"use strict\";A.exports=function(A){var t=[];return t.toString=function(){return this.map(function(t){var e=function(A,t){var e=A[1]||\"\",o=A[3];if(!o)return e;if(t&&\"function\"==typeof btoa){var i=(a=o,r=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),s=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\"/*# \".concat(s,\" */\")),n=o.sources.map(function(A){return\"/*# sourceURL=\".concat(o.sourceRoot).concat(A,\" */\")});return[e].concat(n).concat([i]).join(\"\\n\")}var a,r,s;return[e].join(\"\\n\")}(t,A);return t[2]?\"@media \".concat(t[2],\"{\").concat(e,\"}\"):e}).join(\"\")},t.i=function(A,e){\"string\"==typeof A&&(A=[[null,A,\"\"]]);for(var o={},i=0;i<this.length;i++){var n=this[i][0];null!=n&&(o[n]=!0)}for(var a=0;a<A.length;a++){var r=A[a];null!=r[0]&&o[r[0]]||(e&&!r[2]?r[2]=e:e&&(r[2]=\"(\".concat(r[2],\") and (\").concat(e,\")\")),t.push(r))}},t}},10:function(A,t){A.exports=\"data:font/ttf;base64,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\"},104:function(A,t,e){var o=e(219);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"acfb770c\",o,!0,{})},11:function(A,t){A.exports=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlIiBob3Jpei1hZHYteD0iNTAwMCI+PGZvbnQtZmFjZSBmb250LWZhbWlseT0iaWNvbmZvbnQtdnVlIiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSI1MDAwIiBwYW5vc2UtMT0iMiAwIDUgMyAwIDAgMCAwIDAgMCIgYXNjZW50PSI1MDAwIiBkZXNjZW50PSIwIiB4LWhlaWdodD0iMCIgYmJveD0iLTEgMCA1MDExIDQ4NDQiIHVuZGVybGluZS10aGlja25lc3M9IjAiIHVuZGVybGluZS1wb3NpdGlvbj0iNTAiIHVuaWNvZGUtcmFuZ2U9IlUrZWEwMS1lYTBjIiAvPjxtaXNzaW5nLWdseXBoIGhvcml6LWFkdi14PSIwIiAgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctbGVmdC1kb3VibGUiIHVuaWNvZGU9IiYjeGVhMDE7IiBkPSJNMzc1MCAzOTA2IGwtMTQwNiAtMTQwNiBsMTQwNiAtMTQwNiBsMCAzMTIgbC0xMDk0IDEwOTQgbDEwOTQgMTA5NCBsMCAzMTIgWk0yMzQ0IDM5MDYgbC0xNDA2IC0xNDA2IGwxNDA2IC0xNDA2IGwwIDMxMiBsLTEwOTQgMTA5NCBsMTA5NCAxMDk0IGwwIDMxMiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1sZWZ0IiB1bmljb2RlPSImI3hlYTAyOyIgZD0iTTE1NjMgMjUwMCBsMTg3NSAtMTg3NSBsMCAtMzEyIGwtMjE4OCAyMTg3IGwyMTg4IDIxODggbDAgLTMxMyBsLTE4NzUgLTE4NzUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctcmlnaHQtZG91YmxlIiB1bmljb2RlPSImI3hlYTAzOyIgZD0iTTEyNTAgMTA5NCBsMTQwNiAxNDA2IGwtMTQwNiAxNDA2IGwwIC0zMTIgbDEwOTQgLTEwOTQgbC0xMDk0IC0xMDk0IGwwIC0zMTIgWk0yNjU2IDEwOTQgbDE0MDcgMTQwNiBsLTE0MDcgMTQwNiBsMCAtMzEyIGwxMDk0IC0xMDk0IGwtMTA5NCAtMTA5NCBsMCAtMzEyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LXJpZ2h0IiB1bmljb2RlPSImI3hlYTA0OyIgZD0iTTM0MzggMjUwMCBsLTE4NzUgMTg3NSBsMCAzMTMgbDIxODcgLTIxODggbC0yMTg3IC0yMTg3IGwwIDMxMiBsMTg3NSAxODc1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNoZWNrbWFyayIgdW5pY29kZT0iJiN4ZWEwNTsiIGQ9Ik00MDQ1IDM5NzEgbC0yMDYxIC0yMDYxIGwtMTAyOSAxMDI5IGwtNDQyIC00NDEgbDE0NzEgLTE0NzEgbDI1MDMgMjUwMiBsLTQ0MiA0NDIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY2xvc2UiIHVuaWNvZGU9IiYjeGVhMDY7IiBkPSJNNDM3NSAxMTU2IGwtNTMxIC01MzEgbC0xMzQ0IDEzNDQgbC0xMzQ0IC0xMzQ0IGwtNTMxIDUzMSBsMTM0NCAxMzQ0IGwtMTM0NCAxMzQ0IGw1MzEgNTMxIGwxMzQ0IC0xMzQ0IGwxMzQ0IDEzNDQgbDUzMSAtNTMxIGwtMTM0NCAtMTM0NCBsMTM0NCAtMTM0NCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjb25maXJtIiB1bmljb2RlPSImI3hlYTA3OyIgZD0iTTI2NTYgNDg0NCBxLTEwMSAwIC0xODAgLTU3IHEtNzQgLTUyIC0xMDkgLTEzOCBxLTM1IC04NiAtMTkgLTE3NSBxMTggLTk2IDkwIC0xNjcgbDE0OTUgLTE0OTQgbC0zNjE2IDAgcS03NyAxIC0xMzkgLTI2IHEtNTggLTI0IC05OSAtNzAgcS0zOSAtNDQgLTU5IC0xMDEgcS0yMCAtNTYgLTIwIC0xMTYgcTAgLTYwIDIwIC0xMTYgcTIwIC01NyA1OSAtMTAxIHE0MSAtNDYgOTkgLTcwIHE2MiAtMjcgMTM5IC0yNSBsMzYxNiAwIGwtMTQ5NSAtMTQ5NSBxLTU1IC01MyAtODEgLTExNiBxLTI0IC01OSAtMjEgLTEyMSBxMyAtNTggMzAgLTExMyBxMjUgLTU0IDY4IC05NyBxNDMgLTQzIDk2IC02OCBxNTUgLTI2IDExNCAtMjkgcTYyIC0zIDEyMCAyMSBxNjMgMjUgMTE2IDgxIGwyMDI5IDIwMjggcTU5IDYwIDgwIDE0MSBxMjEgODAgMSAxNTkgcS0yMSA4MiAtODEgMTQyIGwtMjAyOSAyMDI4IHEtNDQgNDUgLTEwMiA3MCBxLTU4IDI1IC0xMjIgMjUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0ibWVudSIgdW5pY29kZT0iJiN4ZWEwODsiIGQ9Ik02MjUgNDM3NSBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFpNNjI1IDI4MTMgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaTTYyNSAxMjUwIGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0ibW9yZSIgdW5pY29kZT0iJiN4ZWEwOTsiIGQ9Ik05MzggMzEyNSBxLTEyOCAwIC0yNDQgLTQ5IHEtMTEyIC00OCAtMTk4LjUgLTEzNC41IHEtODYuNSAtODYuNSAtMTMzLjUgLTE5OC41IHEtNTAgLTExNiAtNDkuNSAtMjQzIHEwLjUgLTEyNyA0OS41IC0yNDMgcTQ3IC0xMTIgMTMzLjUgLTE5OC41IHE4Ni41IC04Ni41IDE5OC41IC0xMzQuNSBxMTE2IC00OSAyNDMuNSAtNDkgcTEyNy41IDAgMjQzLjUgNDkgcTExMiA0OCAxOTguNSAxMzQuNSBxODYuNSA4Ni41IDEzMy41IDE5OC41IHE1MCAxMTYgNTAgMjQzIHEwIDEyNyAtNTAgMjQzIHEtNDcgMTEyIC0xMzMuNSAxOTguNSBxLTg2LjUgODYuNSAtMTk4LjUgMTM0LjUgcS0xMTYgNDkgLTI0MyA0OSBaTTI1MDAgMzEyNSBxLTEyNyAwIC0yNDMgLTQ5IHEtMTEyIC00OCAtMTk4LjUgLTEzNC41IHEtODYuNSAtODYuNSAtMTM0LjUgLTE5OC41IHEtNDkgLTExNiAtNDkgLTI0MyBxMCAtMTI3IDQ5IC0yNDMgcTQ4IC0xMTIgMTM0LjUgLTE5OC41IHE4Ni41IC04Ni41IDE5OC41IC0xMzQuNSBxMTE2IC00OSAyNDMgLTQ5IHExMjcgMCAyNDMgNDkgcTExMiA0OCAxOTguNSAxMzQuNSBxODYuNSA4Ni41IDEzNC41IDE5OC41IHE0OSAxMTYgNDkgMjQzIHEwIDEyNyAtNDkgMjQzIHEtNDggMTEyIC0xMzQuNSAxOTguNSBxLTg2LjUgODYuNSAtMTk4LjUgMTM0LjUgcS0xMTYgNDkgLTI0MyA0OSBaTTQwNjMgMzEyNSBxLTEyOCAwIC0yNDQgLTQ5IHEtMTEyIC00OCAtMTk4LjUgLTEzNC41IHEtODYuNSAtODYuNSAtMTMzLjUgLTE5OC41IHEtNDkgLTExNiAtNDkgLTI0MyBxMCAtMTI3IDQ5IC0yNDMgcTQ3IC0xMTIgMTMzLjUgLTE5OC41IHE4Ni41IC04Ni41IDE5OC41IC0xMzQuNSBxMTE2IC00OSAyNDMuNSAtNDkgcTEyNy41IDAgMjQzLjUgNDkgcTExMiA0OCAxOTguNSAxMzQuNSBxODYuNSA4Ni41IDEzMy41IDE5OC41IHE1MCAxMTYgNTAgMjQzIHEwIDEyNyAtNTAgMjQzIHEtNDcgMTEyIC0xMzMuNSAxOTguNSBxLTg2LjUgODYuNSAtMTk4LjUgMTM0LjUgcS0xMTYgNDkgLTI0MyA0OSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJwYXVzZSIgdW5pY29kZT0iJiN4ZWEwYTsiIGQ9Ik05MzggNDA2MyBsMCAtMzEyNSBsMTI1MCAwIGwwIDMxMjUgbC0xMjUwIDAgWk0yODEzIDQwNjMgbDAgLTMxMjUgbDEyNTAgMCBsMCAzMTI1IGwtMTI1MCAwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InBsYXkiIHVuaWNvZGU9IiYjeGVhMGI7IiBkPSJNNjI1IDQzNzUgbDM3NTAgLTE4NzUgbC0zNzUwIC0xODc1IGwwIDM3NTAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idHJpYW5nbGUtcyIgdW5pY29kZT0iJiN4ZWEwYzsiIGQ9Ik0xMjUwIDMxMjUgbDEyNTAgLTEyNTAgbDEyNTAgMTI0OCBsLTI1MDAgMiBaIiAvPjwvZm9udD48L2RlZnM+PC9zdmc+\"},111:function(A,t,e){\"use strict\";var o=e(38);e.n(o).a},112:function(A,t,e){(A.exports=e(1)(!1)).push([A.i,\"li.active[data-v-42604de1]{box-shadow:inset 4px 0 var(--color-primary)}.action--disabled[data-v-42604de1]{pointer-events:none;opacity:.5}.action--disabled[data-v-42604de1]:hover,.action--disabled[data-v-42604de1]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-42604de1]{opacity:1 !important}.action-button[data-v-42604de1]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:normal;line-height:44px}.action-button[data-v-42604de1]:hover,.action-button[data-v-42604de1]:focus{opacity:1}.action-button>span[data-v-42604de1]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-42604de1]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px}.action-button p[data-v-42604de1]{width:150px;padding:7px 0;margin:auto;cursor:pointer;text-align:left;line-height:1.6em}.action-button__longtext[data-v-42604de1]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-42604de1]{font-weight:bold}\\n\",\"\"])},12:function(A,t,e){\"use strict\";e.r(t);var o=e(4);e(36);\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\no.VTooltip.options.defaultTemplate='<div class=\"vue-tooltip\" role=\"tooltip\" data-v-'.concat(\"bf701da\",'><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>'),o.VTooltip.options.defaultHtml=!1,t.default=o.VTooltip},125:function(A,t){},13:function(A,t,e){\"use strict\";e(6),e(23);var o=e(5),i=e.n(o);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.a={before:function(){this.$slots.default&&\"\"!==this.text.trim()||(i.a.util.warn(\"\".concat(this.$options.name,\" cannot be empty and requires a meaningful text content\"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():\"\"}}}},14:function(A,t){A.exports=require(\"v-click-outside\")},149:function(A,e,o){\"use strict\";o.r(e);var i=o(33),n=(o(18),o(29),o(72)),a=o.n(n),r=o(55),s=o(80),c=o(12);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nfunction l(A,t){var e,o,i,n=t;this.start=function(){i=!0,o=new Date,e=setTimeout(A,n)},this.pause=function(){i=!1,clearTimeout(e),n-=new Date-o},this.clear=function(){i=!1,clearTimeout(e),n=0},this.getTimeLeft=function(){return i&&(this.pause(),this.start()),n},this.getStateRunning=function(){return i},this.start()}var d={name:\"Modal\",components:{Actions:r.default,ActionButton:s.default},directives:{tooltip:c.default},props:{title:{type:String,default:\"\"},hasPrevious:{type:Boolean,default:!1},hasNext:{type:Boolean,default:!1},outTransition:{type:Boolean,default:!1},enableSlideshow:{type:Boolean,default:!1},clearViewDelay:{type:Number,default:5e3},slideshowDelay:{type:Number,default:3e3},slideshowPaused:{type:Boolean,default:!1},enableSwipe:{type:Boolean,default:!0},spreadNavigation:{type:Boolean,default:!1},size:{type:String,default:\"normal\",validator:function(A){return-1!==[\"normal\",\"large\",\"full\"].indexOf(A)}},canClose:{type:Boolean,default:!0}},data:function(){return{mc:null,showModal:!1,clearView:!1,clearViewTimeout:null,playing:!1,slideshowTimeout:null}},computed:{modalTransitionName:function(){return\"modal-\".concat(this.outTransition?\"out\":\"in\")},playPauseTitle:function(){return this.playing?t(\"core\",\"Pause slideshow\"):t(\"core\",\"Start slideshow\")}},watch:{slideshowPaused:function(A){this.slideshowTimeout&&(A?this.slideshowTimeout.pause():this.slideshowTimeout.start())}},beforeMount:function(){window.addEventListener(\"keydown\",this.handleKeydown)},beforeDestroy:function(){window.removeEventListener(\"keydown\",this.handleKeydown)},mounted:function(){var A=this;this.showModal=!0,this.handleMouseMove(),this.mc=new a.a(this.$refs.mask),this.mc.on(\"swipeleft swiperight\",function(t){A.handleSwipe(t)}),document.body.insertBefore(this.$el,document.body.lastChild)},unmounted:function(){this.mc.off(\"swipeleft swiperight\"),this.mc.destroy()},methods:{previous:function(A){this.hasPrevious&&(A&&this.resetSlideshow(),this.$emit(\"previous\",A))},next:function(A){this.hasNext&&(A&&this.resetSlideshow(),this.$emit(\"next\",A))},close:function(A){var t=this;this.canClose&&(this.showModal=!1,setTimeout(function(){t.$emit(\"close\",A)},300))},handleKeydown:function(A){switch(A.keyCode){case 37:this.previous(A);break;case 13:case 39:this.next(A);break;case 27:this.close(A)}},handleSwipe:function(A){this.enableSwipe&&(\"swipeleft\"===A.type?this.next(A):\"swiperight\"===A.type&&this.previous(A))},handleMouseMove:function(){var A=this;this.clearViewDelay>0&&(this.clearView=!1,clearTimeout(this.clearViewTimeout),this.clearViewTimeout=setTimeout(function(){A.clearView=!0},this.clearViewDelay))},togglePlayPause:function(){this.playing=!this.playing,this.playing?this.handleSlideshow():this.clearSlideshowTimeout()},resetSlideshow:function(){this.playing=!this.playing,this.clearSlideshowTimeout(),this.$nextTick(function(){this.togglePlayPause()})},handleSlideshow:function(){var A=this;this.playing=!0,this.hasNext?this.slideshowTimeout=new l(function(){A.next(),A.handleSlideshow()},this.slideshowDelay):(this.playing=!1,this.clearSlideshowTimeout())},clearSlideshowTimeout:function(){this.slideshowTimeout&&this.slideshowTimeout.clear()}}},u=(o(218),o(0)),f=o(125),g=o.n(f),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"transition\",{attrs:{name:\"fade\"}},[e(\"div\",{ref:\"mask\",staticClass:\"modal-mask\",on:{click:A.handleMouseMove,mousemove:A.handleMouseMove,touchmove:A.handleMouseMove}},[e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:!A.clearView,expression:\"!clearView\"}],staticClass:\"modal-header\",class:{invisible:A.clearView}},[\"\"!==A.title.trim()?e(\"div\",{staticClass:\"modal-title\"},[A._v(\"\\n\\t\\t\\t\\t\\t\"+A._s(A.title)+\"\\n\\t\\t\\t\\t\")]):A._e(),A._v(\" \"),e(\"div\",{staticClass:\"icons-menu\"},[e(\"Actions\",{staticClass:\"header-actions\"},[A._t(\"actions\")],2),A._v(\" \"),A.hasNext&&A.enableSlideshow?e(\"button\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:A.playPauseTitle,expression:\"playPauseTitle\",modifiers:{auto:!0}}],staticClass:\"play-pause\",class:{\"play-pause--paused\":A.slideshowPaused},on:{click:A.togglePlayPause}},[e(\"div\",{class:[A.playing?\"icon-pause\":\"icon-play\"]},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]),A._v(\" \"),A.playing?e(\"svg\",{staticClass:\"progress-ring\",attrs:{height:\"50\",width:\"50\"}},[e(\"circle\",{staticClass:\"progress-ring__circle\",attrs:{stroke:\"white\",\"stroke-width\":\"2\",fill:\"transparent\",r:\"15\",cx:\"25\",cy:\"25\"}})]):A._e()]):A._e(),A._v(\" \"),A.canClose?e(\"Actions\",{staticClass:\"header-close\"},[e(\"ActionButton\",{attrs:{icon:\"icon-close\"},on:{click:A.close}},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Close\"))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):A._e()],1)])]),A._v(\" \"),e(\"transition\",{attrs:{name:A.modalTransitionName}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.showModal,expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\"modal-wrapper--\"+A.size,A.spreadNavigation?\"modal-wrapper--spread-navigation\":\"\"],on:{click:function(t){return t.target!==t.currentTarget?null:A.close(t)}}},[e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"a\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasPrevious&&!A.clearView,expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{invisible:A.clearView||!A.hasPrevious},on:{click:A.previous}},[e(\"div\",{staticClass:\"icon icon-previous\"},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Previous\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])]),A._v(\" \"),e(\"div\",{staticClass:\"modal-container\"},[A._t(\"default\")],2),A._v(\" \"),e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"a\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasNext&&!A.clearView,expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{invisible:A.clearView||!A.hasNext},on:{click:A.next}},[e(\"div\",{staticClass:\"icon icon-next\"},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Next\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])])],1)])],1)])},[],!1,null,\"9c792ef2\",null);\"function\"==typeof g.a&&g()(p);var m=p.exports;o.d(e,\"Modal\",function(){return m}),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nObject(i.a)(m);e.default=m},15:function(A,t){A.exports=require(\"core-js/modules/es.array.iterator\")},16:function(A,t){A.exports=require(\"core-js/modules/es.string.iterator\")},17:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.iterator\")},18:function(A,t){A.exports=require(\"core-js/modules/es.array.index-of\")},19:function(A,t){A.exports=require(\"core-js/modules/es.regexp.to-string\")},2:function(A,t,e){\"use strict\";function o(A,t){for(var e=[],o={},i=0;i<t.length;i++){var n=t[i],a=n[0],r={id:A+\":\"+i,css:n[1],media:n[2],sourceMap:n[3]};o[a]?o[a].parts.push(r):e.push(o[a]={id:a,parts:[r]})}return e}e.r(t),e.d(t,\"default\",function(){return g});var i=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!i)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var n={},a=i&&(document.head||document.getElementsByTagName(\"head\")[0]),r=null,s=0,c=!1,l=function(){},d=null,u=\"data-vue-ssr-id\",f=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function g(A,t,e,i){c=e,d=i||{};var a=o(A,t);return p(a),function(t){for(var e=[],i=0;i<a.length;i++){var r=a[i];(s=n[r.id]).refs--,e.push(s)}t?p(a=o(A,t)):a=[];for(i=0;i<e.length;i++){var s;if(0===(s=e[i]).refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete n[s.id]}}}}function p(A){for(var t=0;t<A.length;t++){var e=A[t],o=n[e.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](e.parts[i]);for(;i<e.parts.length;i++)o.parts.push(b(e.parts[i]));o.parts.length>e.parts.length&&(o.parts.length=e.parts.length)}else{var a=[];for(i=0;i<e.parts.length;i++)a.push(b(e.parts[i]));n[e.id]={id:e.id,refs:1,parts:a}}}}function m(){var A=document.createElement(\"style\");return A.type=\"text/css\",a.appendChild(A),A}function b(A){var t,e,o=document.querySelector(\"style[\"+u+'~=\"'+A.id+'\"]');if(o){if(c)return l;o.parentNode.removeChild(o)}if(f){var i=s++;o=r||(r=m()),t=w.bind(null,o,i,!1),e=w.bind(null,o,i,!0)}else o=m(),t=function(A,t){var e=t.css,o=t.media,i=t.sourceMap;o&&A.setAttribute(\"media\",o);d.ssrId&&A.setAttribute(u,t.id);i&&(e+=\"\\n/*# sourceURL=\"+i.sources[0]+\" */\",e+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\");if(A.styleSheet)A.styleSheet.cssText=e;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(e))}}.bind(null,o),e=function(){o.parentNode.removeChild(o)};return t(A),function(o){if(o){if(o.css===A.css&&o.media===A.media&&o.sourceMap===A.sourceMap)return;t(A=o)}else e()}}var h,v=(h=[],function(A,t){return h[A]=t,h.filter(Boolean).join(\"\\n\")});function w(A,t,e,o){var i=e?\"\":o.css;if(A.styleSheet)A.styleSheet.cssText=v(t,i);else{var n=document.createTextNode(i),a=A.childNodes;a[t]&&A.removeChild(a[t]),a.length?A.insertBefore(n,a[t]):A.appendChild(n)}}},20:function(A,t){A.exports=require(\"core-js/modules/es.string.replace\")},21:function(A,t,e){\"use strict\";e(3),e(19),e(20);t.a=function(A){return Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,A||5)}},218:function(A,t,e){\"use strict\";var o=e(104);e.n(o).a},219:function(A,t,e){t=A.exports=e(1)(!1);var o=e(7),i=o(e(8)),n=o(e(9)),a=o(e(10)),r=o(e(11));t.push([A.i,'@font-face{font-family:\"iconfont-vue\";src:url('+i+\");src:url(\"+i+') format(\"embedded-opentype\"),url('+n+') format(\"woff\"),url('+a+') format(\"truetype\"),url('+r+') format(\"svg\")}.icon[data-v-9c792ef2]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-left[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right-double[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.checkmark[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.close[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.confirm[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.menu[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.more[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.pause[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.play[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.triangle-s[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.modal-mask[data-v-9c792ef2]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,0.92)}.modal-header[data-v-9c792ef2]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;transition:opacity 250ms, visibility 250ms}.modal-header.invisible[style*=\\'display:none\\'][data-v-9c792ef2],.modal-header.invisible[style*=\\'display: none\\'][data-v-9c792ef2]{visibility:hidden}.modal-header .modal-title[data-v-9c792ef2]{overflow-x:hidden;box-sizing:border-box;max-width:100%;padding:0 88px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px}.modal-header .icons-menu[data-v-9c792ef2]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .icon-close[data-v-9c792ef2]{box-sizing:border-box;margin:3px;padding:10px 11px;color:#fff;background-image:none;font-size:23px}.modal-header .icons-menu .icon-close[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .play-pause[data-v-9c792ef2]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;color:white;border:none;background-color:transparent;font-size:22px}.modal-header .icons-menu .play-pause:hover .icon-play[data-v-9c792ef2],.modal-header .icons-menu .play-pause:hover .icon-pause[data-v-9c792ef2],.modal-header .icons-menu .play-pause:focus .icon-play[data-v-9c792ef2],.modal-header .icons-menu .play-pause:focus .icon-pause[data-v-9c792ef2]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.modal-header .icons-menu .play-pause .icon-play[data-v-9c792ef2],.modal-header .icons-menu .play-pause .icon-pause[data-v-9c792ef2]{box-sizing:border-box;width:44px;height:44px;margin:3px;opacity:.7;background-image:none;cursor:pointer}.modal-header .icons-menu .play-pause .icon-play[data-v-9c792ef2]{padding:11px 13px}.modal-header .icons-menu .play-pause .icon-play[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .play-pause .icon-pause[data-v-9c792ef2]{padding:12px;font-size:19.5px}.modal-header .icons-menu .play-pause .icon-pause[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .header-actions[data-v-9c792ef2]{margin:3px;color:white}.modal-header .icons-menu .action-item--single[data-v-9c792ef2]{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-9c792ef2] .action-item__menutoggle{padding:13px 11px;color:#fff;font-size:22px}.modal-wrapper[data-v-9c792ef2]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-9c792ef2],.modal-wrapper .next[data-v-9c792ef2]{z-index:10000;display:flex !important;align-items:center;justify-content:center;width:15%;min-width:60px;height:100%;transition:opacity 250ms, visibility 250ms}.modal-wrapper .prev.invisible[style*=\\'display:none\\'][data-v-9c792ef2],.modal-wrapper .prev.invisible[style*=\\'display: none\\'][data-v-9c792ef2],.modal-wrapper .next.invisible[style*=\\'display:none\\'][data-v-9c792ef2],.modal-wrapper .next.invisible[style*=\\'display: none\\'][data-v-9c792ef2]{visibility:hidden}.modal-wrapper .icon-next[data-v-9c792ef2],.modal-wrapper .icon-previous[data-v-9c792ef2]{box-sizing:border-box;width:44px;height:44px;padding:12px 11px;color:white;border-radius:22px;background-image:none;font-size:24px}.modal-wrapper .icon-previous[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .icon-next[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .modal-container[data-v-9c792ef2]{display:block;overflow:hidden;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 2px 8px rgba(0,0,0,0.33)}.modal-wrapper:not(.modal-wrapper--large):not(.modal-wrapper--full) .modal-container[data-v-9c792ef2]{max-width:900px;max-height:80%}.modal-wrapper--full .modal-container[data-v-9c792ef2]{max-width:100%;max-height:100%;border-radius:0}.modal-wrapper--full .prev[data-v-9c792ef2],.modal-wrapper--full .next[data-v-9c792ef2],.modal-wrapper--spread-navigation .prev[data-v-9c792ef2],.modal-wrapper--spread-navigation .next[data-v-9c792ef2]{position:absolute;width:10%}.modal-wrapper--full .prev[data-v-9c792ef2],.modal-wrapper--spread-navigation .prev[data-v-9c792ef2]{left:0}.modal-wrapper--full .next[data-v-9c792ef2],.modal-wrapper--spread-navigation .next[data-v-9c792ef2]{right:0}.modal-wrapper--large .modal-container[data-v-9c792ef2]{max-width:70%;max-height:90%}.modal-wrapper--large .prev[data-v-9c792ef2],.modal-wrapper--large .next[data-v-9c792ef2]{width:10%}.fade-enter-active[data-v-9c792ef2],.fade-leave-active[data-v-9c792ef2]{transition:opacity 250ms}.fade-enter[data-v-9c792ef2],.fade-leave-to[data-v-9c792ef2]{opacity:0}.fade-visibility-enter[data-v-9c792ef2],.fade-visibility-leave-to[data-v-9c792ef2]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-9c792ef2],.modal-in-leave-active[data-v-9c792ef2],.modal-out-enter-active[data-v-9c792ef2],.modal-out-leave-active[data-v-9c792ef2]{transition:opacity 250ms}.modal-in-enter[data-v-9c792ef2],.modal-in-leave-to[data-v-9c792ef2],.modal-out-enter[data-v-9c792ef2],.modal-out-leave-to[data-v-9c792ef2]{opacity:0}.modal-in-enter .modal-container[data-v-9c792ef2],.modal-in-leave-to .modal-container[data-v-9c792ef2]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-9c792ef2],.modal-out-leave-to .modal-container[data-v-9c792ef2]{transform:scale(1.1)}.modal-mask .play-pause .progress-ring[data-v-9c792ef2]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause .progress-ring .progress-ring__circle[data-v-9c792ef2]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-data-v-9c792ef2 linear 3s infinite;stroke-linecap:round;stroke-dashoffset:94.24778;stroke-dasharray:94.24778}.modal-mask .play-pause--paused .icon-pause[data-v-9c792ef2]{animation:breath-data-v-9c792ef2 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause--paused .progress-ring__circle[data-v-9c792ef2]{animation-play-state:paused !important}@keyframes progressring-data-v-9c792ef2{from{stroke-dashoffset:94.24778}to{stroke-dashoffset:0}}@keyframes breath-data-v-9c792ef2{0%{opacity:1}50%{opacity:0}100%{opacity:1}}\\n',\"\"])},22:function(A,t){A.exports=require(\"core-js/modules/web.url\")},23:function(A,t){A.exports=require(\"core-js/modules/es.string.trim\")},24:function(A,t,e){\"use strict\";e(15),e(3),e(16),e(17),e(22);var o=e(13),i=(e(6),function(A,t){for(var e=A.$parent;e;){if(e.$options.name===t)return e;e=e.$parent}});t.a={mixins:[o.a],props:{icon:{type:String,default:\"\"},title:{type:String,default:\"\"},closeAfterClick:{type:Boolean,default:!1}},computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(A){return!1}}},methods:{onClick:function(A){if(this.$emit(\"click\",A),this.closeAfterClick){var t=i(this,\"Actions\");t&&t.closeMenu&&t.closeMenu()}}}}},25:function(A,t){A.exports=require(\"core-js/modules/es.array.concat\")},29:function(A,t){A.exports=require(\"core-js/modules/es.number.constructor\")},3:function(A,t){A.exports=require(\"core-js/modules/es.object.to-string\")},30:function(A,t,e){var o=e(76);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"aba74858\",o,!0,{})},33:function(A,t,e){\"use strict\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.a=function(A){A.mounted?Array.isArray(A.mounted)||(A.mounted=[A.mounted]):A.mounted=[],A.mounted.push(function(){this.$el.setAttribute(\"data-v-\".concat(\"bf701da\"),\"\")})}},34:function(A,t,e){\"use strict\";e(25),e(49),e(18);var o=e(14),i=e(12),n=e(21),a=(e(73),function(A){var t=A.getBoundingClientRect(),e=document.documentElement.clientHeight,o=document.documentElement.clientWidth,i=Object.assign({});return i.top=t.top<0,i.left=t.left<0,i.bottom=t.bottom>e,i.right=t.right>o,i.any=i.top||i.left||i.bottom||i.right,i.all=i.top&&i.left&&i.bottom&&i.right,i.offsetY=i.top?t.top:i.bottom?t.bottom-e:0,i.offsetX=i.left?t.left:i.right?t.right-o:0,i}),r=(e(74),e(6),e(71),e(5)),s=e.n(r),c=function(A,t,e){void 0!==A&&A.forEach(function(o,i){var n=!o.componentOptions&&o.tag&&-1===t.indexOf(o.tag),a=!!o.componentOptions&&\"string\"==typeof o.componentOptions.tag&&-1===t.indexOf(o.componentOptions.tag);(n||a)&&(s.a.util.warn(\"\".concat(n?o.tag:o.componentOptions.tag,\" is not allowed inside the \").concat(e.$options.name,\" component\"),e),A.splice(i,1))})},l=[\"ActionButton\",\"ActionCheckbox\",\"ActionInput\",\"ActionLink\",\"ActionRadio\",\"ActionRouter\",\"ActionSeparator\",\"ActionText\",\"ActionTextEditable\"],d={name:\"Actions\",directives:{ClickOutside:o.directive,tooltip:i.default},props:{open:{type:Boolean,default:!1},menuAlign:{type:String,default:\"center\",validator:function(A){return[\"left\",\"center\",\"right\"].indexOf(A)>-1}},defaultIcon:{type:String,default:\"action-item__menutoggle--default-icon\"}},data:function(){return{actions:[],opened:this.open,focusIndex:0,randomId:\"menu-\"+Object(n.a)(),offsetX:0,offsetY:0,offsetYArrow:0,rotateArrow:!1,children:this.$children}},computed:{hasMultipleActions:function(){return this.actions.length>1},isValidSingleAction:function(){return 1===this.actions.length&&null!==this.firstActionElement},firstActionVNode:function(){return this.actions[0]},firstAction:function(){return this.children[0]?this.children[0]:{}},firstActionBinding:function(){if(this.firstActionVNode&&this.firstActionVNode.componentOptions){var A=this.firstActionVNode.componentOptions.tag;if(\"ActionLink\"===A)return{is:\"a\",href:this.firstAction.href,target:this.firstAction.target};if(\"ActionRouter\"===A)return{is:\"router-link\",to:this.firstAction.to,exact:this.firstAction.exact};if(\"ActionButton\"===A)return{is:\"button\"}}return null},firstActionEvent:function(){return this.firstActionVNode&&this.firstActionVNode.componentOptions&&this.firstActionVNode.componentOptions.listeners&&this.firstActionVNode.componentOptions.listeners.click},firstActionEventBinding:function(){return this.firstActionEvent?\"click\":null},firstActionClass:function(){var A=this.firstActionVNode&&this.firstActionVNode.data.staticClass,t=this.firstActionVNode&&this.firstActionVNode.data.class;return\"\".concat(A,\" \").concat(t)}},watch:{open:function(A){var t=this;this.opened=A,this.opened&&this.$nextTick(function(){t.onOpen()})}},beforeMount:function(){this.initActions(),c(this.$slots.default,l,this)},beforeUpdate:function(){this.initActions(),c(this.$slots.default,l,this)},methods:{toggleMenu:function(){var A=this;this.opened=!this.opened,this.opened?(this.$nextTick(function(){A.onOpen(),A.focusFirstAction()}),this.$emit(\"open\")):(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1),this.$emit(\"update:open\",this.opened)},closeMenu:function(){this.opened&&(this.$emit(\"update:open\",!1),this.$emit(\"close\")),this.opened=!1,this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1},onOpen:function(){if(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1,\"center\"===this.menuAlign){var A=a(this.$refs.menu);(A.left||A.right)&&(this.offsetX=A.offsetX>0?Math.round(A.offsetX)+5:Math.round(A.offsetX)-5),A.bottom&&(this.offsetY=0-Math.round(this.$refs.menu.clientHeight)-42,this.offsetYArrow=Math.round(this.$refs.menu.clientHeight)+18,this.rotateArrow=!0)}},onMouseFocusAction:function(A){if(document.activeElement!==A.target){var t=A.target.closest(\"li\");if(t){var e=t.querySelector(\".focusable\");if(e){var o=this.$refs.menu.querySelectorAll(\".focusable\"),i=Array.prototype.indexOf.call(o,e);i>-1&&(this.focusIndex=i,this.focusAction())}}}},removeCurrentActive:function(){var A=this.$refs.menu.querySelector(\"li.active\");A&&A.classList.remove(\"active\")},focusAction:function(){var A=this.$refs.menu.querySelectorAll(\".focusable\")[this.focusIndex];if(A){var t=A.closest(\"li\");A.focus(),t&&(this.removeCurrentActive(),t.classList.add(\"active\"))}},focusPreviousAction:function(){this.focusIndex=Math.max(this.focusIndex-1,0),this.focusAction()},focusNextAction:function(){this.focusIndex=Math.min(this.focusIndex+1,this.$refs.menu.querySelectorAll(\".focusable\").length-1),this.focusAction()},focusFirstAction:function(){this.focusIndex=0,this.focusAction()},focusLastAction:function(){this.focusIndex=this.$el.querySelectorAll(\".focusable\").length-1,this.focusAction()},execFirstAction:function(A){this.firstActionEvent&&this.firstActionEvent(A)},initActions:function(){this.actions=(this.$slots.default||[]).filter(function(A){return!!A&&!!A.componentOptions})}}},u=(e(75),e(0)),f=e(41),g=e.n(f),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return A.isValidSingleAction?e(\"element\",A._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:A.firstAction.text,expression:\"firstAction.text\",modifiers:{auto:!0}}],staticClass:\"action-item action-item--single\",class:[A.firstAction.icon,A.firstActionClass],attrs:{\"aria-label\":A.firstAction.text,rel:\"noreferrer noopener\"},on:A._d({},[A.firstActionEventBinding,A.execFirstAction])},\"element\",A.firstActionBinding,!1),[e(\"span\",{attrs:{\"aria-hidden\":!0,hidden:\"\"}},[A._t(\"default\")],2)]):e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasMultipleActions,expression:\"hasMultipleActions\"}],staticClass:\"action-item\",class:{\"action-item--open\":A.opened},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusPreviousAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusNextAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"tab\",9,t.key,\"Tab\")?null:t.shiftKey?(t.preventDefault(),A.focusPreviousAction(t)):null},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"page-up\",void 0,t.key,void 0)?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusFirstAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"page-down\",void 0,t.key,void 0)?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusLastAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"esc\",27,t.key,[\"Esc\",\"Escape\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.closeMenu(t))}]}},[e(\"a\",{staticClass:\"icon action-item__menutoggle\",class:A.defaultIcon,attrs:{href:\"#\",\"aria-haspopup\":\"true\",\"aria-controls\":A.randomId,\"aria-expanded\":A.opened},on:{click:function(t){return t.preventDefault(),A.toggleMenu(t)},keydown:function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"space\",32,t.key,[\" \",\"Spacebar\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.toggleMenu(t))}}}),A._v(\" \"),A.opened?e(\"div\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:A.closeMenu,expression:\"closeMenu\"}],ref:\"menu\",staticClass:\"action-item__menu\",class:[\"menu-\"+A.menuAlign,{open:A.opened}],style:{marginRight:A.offsetX+\"px\",marginTop:A.offsetY+\"px\"},attrs:{tabindex:\"-1\"},on:{mousemove:A.onMouseFocusAction}},[e(\"div\",{staticClass:\"action-item__menu_arrow\",style:{transform:\"translateX(\"+A.offsetX+\"px) translateY(\"+A.offsetYArrow+\"px) \"+(A.rotateArrow?\" rotate(180deg)\":\"\")}}),A._v(\" \"),e(\"ul\",{attrs:{id:A.randomId,tabindex:\"-1\"}},[A._t(\"default\")],2)]):A._e()])},[],!1,null,\"53cb6bd0\",null);\"function\"==typeof g.a&&g()(p);t.a=p.exports},36:function(A,t,e){var o=e(37);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"941c791e\",o,!0,{})},37:function(A,t,e){(A.exports=e(1)(!1)).push([A.i,\".vue-tooltip[data-v-bf701da]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;white-space:normal;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;word-wrap:normal;word-break:normal;opacity:0;text-shadow:none;font-family:'Nunito', 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif;font-size:12px;font-weight:normal;font-style:normal;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-bf701da][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-bf701da][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-bf701da][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-bf701da][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-bf701da][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-bf701da][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-bf701da] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-bf701da] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\",\"\"])},38:function(A,t,e){var o=e(112);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"4a580912\",o,!0,{})},4:function(A,t){A.exports=require(\"v-tooltip\")},41:function(A,t){},48:function(A,t,e){\"use strict\";var o={name:\"ActionButton\",mixins:[e(24).a],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return!this.disabled}}},i=(e(111),e(0)),n=e(50),a=e.n(n),r=Object(i.a)(o,function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"li\",{class:{\"action--disabled\":A.disabled}},[e(\"button\",{staticClass:\"action-button\",class:{focusable:A.isFocusable},on:{click:A.onClick}},[e(\"span\",{staticClass:\"action-button__icon\",class:[A.isIconUrl?\"action-button__icon--url\":A.icon],style:{backgroundImage:A.isIconUrl?\"url(\"+A.icon+\")\":null}}),A._v(\" \"),A.title?e(\"p\",[e(\"strong\",{staticClass:\"action-button__title\"},[A._v(\"\\n\\t\\t\\t\\t\"+A._s(A.title)+\"\\n\\t\\t\\t\")]),A._v(\" \"),e(\"br\"),A._v(\" \"),e(\"span\",{staticClass:\"action-button__longtext\",domProps:{textContent:A._s(A.text)}})]):A.isLongText?e(\"p\",{staticClass:\"action-button__longtext\",domProps:{textContent:A._s(A.text)}}):e(\"span\",{staticClass:\"action-button__text\"},[A._v(A._s(A.text))]),A._v(\" \"),A._e()],2)])},[],!1,null,\"42604de1\",null);\"function\"==typeof a.a&&a()(r);t.a=r.exports},49:function(A,t){A.exports=require(\"core-js/modules/es.array.filter\")},5:function(A,t){A.exports=require(\"vue\")},50:function(A,t){},55:function(A,t,e){\"use strict\";e.r(t);var o=e(34);e.d(t,\"Actions\",function(){return o.a}),\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=o.a},6:function(A,t){A.exports=require(\"core-js/modules/es.function.name\")},7:function(A,t,e){\"use strict\";A.exports=function(A,t){return\"string\"!=typeof(A=A.__esModule?A.default:A)?A:(/^['\"].*['\"]$/.test(A)&&(A=A.slice(1,-1)),/[\"'() \\t\\n]/.test(A)||t?'\"'.concat(A.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\"),'\"'):A)}},71:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.for-each\")},72:function(A,t){A.exports=require(\"hammerjs\")},73:function(A,t){A.exports=require(\"core-js/modules/es.object.assign\")},74:function(A,t){A.exports=require(\"core-js/modules/es.array.splice\")},75:function(A,t,e){\"use strict\";var o=e(30);e.n(o).a},76:function(A,t,e){t=A.exports=e(1)(!1);var o=e(7),i=o(e(8)),n=o(e(9)),a=o(e(10)),r=o(e(11));t.push([A.i,'@font-face{font-family:\"iconfont-vue\";src:url('+i+\");src:url(\"+i+') format(\"embedded-opentype\"),url('+n+') format(\"woff\"),url('+a+') format(\"truetype\"),url('+r+') format(\"svg\")}.icon[data-v-53cb6bd0]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-left[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right-double[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.checkmark[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.close[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.confirm[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.menu[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.more[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.pause[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.play[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.triangle-s[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.action-item[data-v-53cb6bd0]{position:relative;display:inline-block}.action-item--single[data-v-53cb6bd0]:hover,.action-item--single[data-v-53cb6bd0]:focus,.action-item--single[data-v-53cb6bd0]:active,.action-item__menutoggle[data-v-53cb6bd0]:hover,.action-item__menutoggle[data-v-53cb6bd0]:focus,.action-item__menutoggle[data-v-53cb6bd0]:active{border-radius:22px;background-color:rgba(127,127,127,0.25) !important;opacity:1}.action-item.action-item--open .action-item__menutoggle[data-v-53cb6bd0]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.action-item--single[data-v-53cb6bd0],.action-item__menutoggle[data-v-53cb6bd0]{box-sizing:border-box;width:44px;height:44px;margin:0;padding:14px;cursor:pointer;border:none;background-color:transparent}.action-item__menutoggle[data-v-53cb6bd0]{display:flex;align-items:center;justify-content:center;opacity:.7}.action-item__menutoggle[data-v-53cb6bd0]:before{content:\\'\\'}.action-item__menutoggle--default-icon[data-v-53cb6bd0]{font-size:16px}.action-item__menutoggle--default-icon[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.action-item--single[data-v-53cb6bd0]{opacity:.7}.action-item--single[data-v-53cb6bd0]:hover,.action-item--single[data-v-53cb6bd0]:focus,.action-item--single[data-v-53cb6bd0]:active{opacity:1}.action-item--single>[hidden][data-v-53cb6bd0]{display:none}.action-item--multiple[data-v-53cb6bd0]{position:relative}.action-item__menu[data-v-53cb6bd0]{position:absolute;z-index:110;right:50%;display:none;margin-bottom:10px;margin-top:-5px;transform:translateX(50%);color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background);filter:drop-shadow(0 1px 3px var(--color-box-shadow))}.action-item__menu ul[data-v-53cb6bd0]>:not(li){display:none}.action-item__menu.open[data-v-53cb6bd0]{display:block}.action-item__menu .action-item__menu_arrow[data-v-53cb6bd0]{position:absolute;right:50%;bottom:100%;width:0;height:0;margin-right:-9px;content:\\' \\';pointer-events:none;border:solid transparent;border-width:9px;border-bottom-color:var(--color-main-background)}.action-item__menu.menu-right[data-v-53cb6bd0]{right:0;left:auto;transform:none}.action-item__menu.menu-right .action-item__menu_arrow[data-v-53cb6bd0]{right:13px;margin-right:0}.action-item__menu.menu-left[data-v-53cb6bd0]{right:auto;left:0;transform:none}.action-item__menu.menu-left .action-item__menu_arrow[data-v-53cb6bd0]{right:auto;left:13px;margin-right:0}.ie .action-item__menu[data-v-53cb6bd0],.ie .action-item__menu .action-item__menu_arrow[data-v-53cb6bd0],.edge .action-item__menu[data-v-53cb6bd0],.edge .action-item__menu .action-item__menu_arrow[data-v-53cb6bd0]{border:1px solid var(--color-border)}\\n',\"\"])},8:function(A,t){A.exports=\"data:application/vnd.ms-fontobject;base64,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\"},80:function(A,t,e){\"use strict\";e.r(t);var o=e(48);e.d(t,\"ActionButton\",function(){return o.a}),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=o.a},9:function(A,t){A.exports=\"data:font/woff;base64,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\"}})});\n//# sourceMappingURL=Modal.js.map","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/internals/forced-string-trim-method.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@nextcloud/vue/node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/Modal.js","webpack:///./node_modules/hammerjs/hammer.js"],"names":["DESCRIPTORS","defineProperty","f","FunctionPrototype","Function","prototype","FunctionPrototypeToString","toString","nameRE","configurable","get","call","this","match","error","$","$trim","trim","target","proto","forced","forcedStringTrimMethod","fails","whitespaces","module","exports","METHOD_NAME","name","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","create","getOwnPropertyNames","getOwnPropertyDescriptor","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","length","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","arguments","dummy","valueOf","keys","split","j","constructor","isObject","setPrototypeOf","$this","Wrapper","NewTarget","NewTargetPrototype","$filter","filter","HAS_SPECIES_SUPPORT","arrayMethodHasSpeciesSupport","USES_TO_LENGTH","0","callbackfn","undefined","DOMIterables","forEach","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","$forEach","sloppyArrayMethod","assign","stat","Object","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","max","Math","min","splice","start","deleteCount","insertCount","actualDeleteCount","A","k","from","to","O","len","actualStart","argumentsLength","TypeError","t","window","e","o","i","l","m","c","d","enumerable","r","Symbol","toStringTag","__esModule","bind","n","default","hasOwnProperty","p","s","a","options","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","concat","1","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","join","push","10","104","locals","11","111","112","12","VTooltip","defaultTemplate","defaultHtml","125","13","before","$slots","text","util","warn","$destroy","$el","remove","beforeUpdate","getText","data","computed","isLongText","methods","14","149","Date","setTimeout","pause","clearTimeout","clear","getTimeLeft","getStateRunning","components","Actions","ActionButton","directives","tooltip","props","title","type","String","hasPrevious","Boolean","hasNext","outTransition","enableSlideshow","clearViewDelay","Number","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","size","validator","indexOf","canClose","mc","showModal","clearView","clearViewTimeout","playing","slideshowTimeout","modalTransitionName","playPauseTitle","watch","beforeMount","addEventListener","handleKeydown","beforeDestroy","removeEventListener","mounted","handleMouseMove","$refs","mask","on","handleSwipe","document","body","insertBefore","lastChild","unmounted","off","destroy","previous","resetSlideshow","$emit","next","close","keyCode","togglePlayPause","handleSlideshow","clearSlideshowTimeout","$nextTick","u","g","$createElement","_self","_c","attrs","ref","staticClass","click","mousemove","touchmove","rawName","expression","class","invisible","_v","_s","_e","_t","modifiers","auto","height","width","stroke","fill","cx","cy","icon","currentTarget","15","16","17","18","19","2","id","css","media","sourceMap","parts","DEBUG","Error","head","getElementsByTagName","navigator","test","userAgent","toLowerCase","refs","b","createElement","appendChild","querySelector","parentNode","removeChild","w","setAttribute","ssrId","styleSheet","cssText","firstChild","createTextNode","h","v","childNodes","20","21","random","replace","substr","218","219","22","23","24","$parent","mixins","closeAfterClick","isIconUrl","URL","onClick","closeMenu","25","29","3","30","33","Array","isArray","34","getBoundingClientRect","documentElement","clientHeight","clientWidth","top","left","bottom","right","any","all","offsetY","offsetX","componentOptions","tag","ClickOutside","directive","open","menuAlign","defaultIcon","actions","opened","focusIndex","randomId","offsetYArrow","rotateArrow","children","$children","hasMultipleActions","isValidSingleAction","firstActionElement","firstActionVNode","firstAction","firstActionBinding","is","href","exact","firstActionEvent","listeners","firstActionEventBinding","firstActionClass","onOpen","initActions","toggleMenu","focusFirstAction","menu","round","onMouseFocusAction","activeElement","closest","querySelectorAll","focusAction","removeCurrentActive","classList","focus","focusPreviousAction","focusNextAction","focusLastAction","execFirstAction","_b","rel","_d","hidden","keydown","_k","ctrlKey","shiftKey","altKey","metaKey","preventDefault","style","marginRight","marginTop","tabindex","transform","36","37","38","4","41","48","disabled","isFocusable","focusable","backgroundImage","domProps","textContent","49","5","50","55","6","7","71","72","73","74","75","76","8","80","9","exportName","VENDOR_PREFIXES","TEST_ELEMENT","TYPE_FUNCTION","abs","now","setTimeoutContext","fn","timeout","context","bindFn","invokeArrayArg","arg","each","obj","iterator","deprecate","method","message","deprecationMessage","stack","log","console","apply","output","source","nextKey","extend","dest","src","merge","inherit","child","base","properties","childP","baseP","_super","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","removeEventListeners","hasParent","node","inStr","str","find","inArray","findByKey","toArray","uniqueArray","sort","results","values","prefixed","property","prefix","prop","camelProp","toUpperCase","_uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","inputTarget","domHandler","ev","enable","init","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offset","offsetDelta","prevDelta","prevInput","x","deltaX","y","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","end","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","direction","last","lastInterval","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","sqrt","atan2","PI","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","DEDUP_TIMEOUT","DEDUP_DISTANCE","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","set","compute","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","Recognizer","defaults","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","isValid","threshold","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","toggleCssProps","item","stop","force","stopped","curRecognizer","existing","events","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press"],"mappings":"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","file":"vendors~files-modal.js?v=e1cbc972f626939fffd6","sourcesContent":["var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar fails = require('../internals/fails');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {\n [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });\n});\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar sloppyArrayMethod = require('../internals/sloppy-array-method');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","!function(A,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Components/Modal\",[],t):\"object\"==typeof exports?exports[\"Components/Modal\"]=t():(A.NextcloudVue=A.NextcloudVue||{},A.NextcloudVue[\"Components/Modal\"]=t())}(window,function(){return function(A){var t={};function e(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return A[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=A,e.c=t,e.d=function(A,t,o){e.o(A,t)||Object.defineProperty(A,t,{enumerable:!0,get:o})},e.r=function(A){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(A,\"__esModule\",{value:!0})},e.t=function(A,t){if(1&t&&(A=e(A)),8&t)return A;if(4&t&&\"object\"==typeof A&&A&&A.__esModule)return A;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:A}),2&t&&\"string\"!=typeof A)for(var i in A)e.d(o,i,function(t){return A[t]}.bind(null,i));return o},e.n=function(A){var t=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(t,\"a\",t),t},e.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},e.p=\"/dist/\",e(e.s=149)}({0:function(A,t,e){\"use strict\";function o(A,t,e,o,i,n,a,r){var s,c=\"function\"==typeof A?A.options:A;if(t&&(c.render=t,c.staticRenderFns=e,c._compiled=!0),o&&(c.functional=!0),n&&(c._scopeId=\"data-v-\"+n),a?(s=function(A){(A=A||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(A=__VUE_SSR_CONTEXT__),i&&i.call(this,A),A&&A._registeredComponents&&A._registeredComponents.add(a)},c._ssrRegister=s):i&&(s=r?function(){i.call(this,this.$root.$options.shadowRoot)}:i),s)if(c.functional){c._injectStyles=s;var l=c.render;c.render=function(A,t){return s.call(t),l(A,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:A,options:c}}e.d(t,\"a\",function(){return o})},1:function(A,t,e){\"use strict\";A.exports=function(A){var t=[];return t.toString=function(){return this.map(function(t){var e=function(A,t){var e=A[1]||\"\",o=A[3];if(!o)return e;if(t&&\"function\"==typeof btoa){var i=(a=o,r=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),s=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\"/*# \".concat(s,\" */\")),n=o.sources.map(function(A){return\"/*# sourceURL=\".concat(o.sourceRoot).concat(A,\" */\")});return[e].concat(n).concat([i]).join(\"\\n\")}var a,r,s;return[e].join(\"\\n\")}(t,A);return t[2]?\"@media \".concat(t[2],\"{\").concat(e,\"}\"):e}).join(\"\")},t.i=function(A,e){\"string\"==typeof A&&(A=[[null,A,\"\"]]);for(var o={},i=0;i<this.length;i++){var n=this[i][0];null!=n&&(o[n]=!0)}for(var a=0;a<A.length;a++){var r=A[a];null!=r[0]&&o[r[0]]||(e&&!r[2]?r[2]=e:e&&(r[2]=\"(\".concat(r[2],\") and (\").concat(e,\")\")),t.push(r))}},t}},10:function(A,t){A.exports=\"data:font/ttf;base64,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\"},104:function(A,t,e){var o=e(219);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"acfb770c\",o,!0,{})},11:function(A,t){A.exports=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlIiBob3Jpei1hZHYteD0iNTAwMCI+PGZvbnQtZmFjZSBmb250LWZhbWlseT0iaWNvbmZvbnQtdnVlIiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSI1MDAwIiBwYW5vc2UtMT0iMiAwIDUgMyAwIDAgMCAwIDAgMCIgYXNjZW50PSI1MDAwIiBkZXNjZW50PSIwIiB4LWhlaWdodD0iMCIgYmJveD0iLTEgMCA1MDExIDQ4NDQiIHVuZGVybGluZS10aGlja25lc3M9IjAiIHVuZGVybGluZS1wb3NpdGlvbj0iNTAiIHVuaWNvZGUtcmFuZ2U9IlUrZWEwMS1lYTBjIiAvPjxtaXNzaW5nLWdseXBoIGhvcml6LWFkdi14PSIwIiAgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctbGVmdC1kb3VibGUiIHVuaWNvZGU9IiYjeGVhMDE7IiBkPSJNMzc1MCAzOTA2IGwtMTQwNiAtMTQwNiBsMTQwNiAtMTQwNiBsMCAzMTIgbC0xMDk0IDEwOTQgbDEwOTQgMTA5NCBsMCAzMTIgWk0yMzQ0IDM5MDYgbC0xNDA2IC0xNDA2IGwxNDA2IC0xNDA2IGwwIDMxMiBsLTEwOTQgMTA5NCBsMTA5NCAxMDk0IGwwIDMxMiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1sZWZ0IiB1bmljb2RlPSImI3hlYTAyOyIgZD0iTTE1NjMgMjUwMCBsMTg3NSAtMTg3NSBsMCAtMzEyIGwtMjE4OCAyMTg3IGwyMTg4IDIxODggbDAgLTMxMyBsLTE4NzUgLTE4NzUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctcmlnaHQtZG91YmxlIiB1bmljb2RlPSImI3hlYTAzOyIgZD0iTTEyNTAgMTA5NCBsMTQwNiAxNDA2IGwtMTQwNiAxNDA2IGwwIC0zMTIgbDEwOTQgLTEwOTQgbC0xMDk0IC0xMDk0IGwwIC0zMTIgWk0yNjU2IDEwOTQgbDE0MDcgMTQwNiBsLTE0MDcgMTQwNiBsMCAtMzEyIGwxMDk0IC0xMDk0IGwtMTA5NCAtMTA5NCBsMCAtMzEyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LXJpZ2h0IiB1bmljb2RlPSImI3hlYTA0OyIgZD0iTTM0MzggMjUwMCBsLTE4NzUgMTg3NSBsMCAzMTMgbDIxODcgLTIxODggbC0yMTg3IC0yMTg3IGwwIDMxMiBsMTg3NSAxODc1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNoZWNrbWFyayIgdW5pY29kZT0iJiN4ZWEwNTsiIGQ9Ik00MDQ1IDM5NzEgbC0yMDYxIC0yMDYxIGwtMTAyOSAxMDI5IGwtNDQyIC00NDEgbDE0NzEgLTE0NzEgbDI1MDMgMjUwMiBsLTQ0MiA0NDIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY2xvc2UiIHVuaWNvZGU9IiYjeGVhMDY7IiBkPSJNNDM3NSAxMTU2IGwtNTMxIC01MzEgbC0xMzQ0IDEzNDQgbC0xMzQ0IC0xMzQ0IGwtNTMxIDUzMSBsMTM0NCAxMzQ0IGwtMTM0NCAxMzQ0IGw1MzEgNTMxIGwxMzQ0IC0xMzQ0IGwxMzQ0IDEzNDQgbDUzMSAtNTMxIGwtMTM0NCAtMTM0NCBsMTM0NCAtMTM0NCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjb25maXJtIiB1bmljb2RlPSImI3hlYTA3OyIgZD0iTTI2NTYgNDg0NCBxLTEwMSAwIC0xODAgLTU3IHEtNzQgLTUyIC0xMDkgLTEzOCBxLTM1IC04NiAtMTkgLTE3NSBxMTggLTk2IDkwIC0xNjcgbDE0OTUgLTE0OTQgbC0zNjE2IDAgcS03NyAxIC0xMzkgLTI2IHEtNTggLTI0IC05OSAtNzAgcS0zOSAtNDQgLTU5IC0xMDEgcS0yMCAtNTYgLTIwIC0xMTYgcTAgLTYwIDIwIC0xMTYgcTIwIC01NyA1OSAtMTAxIHE0MSAtNDYgOTkgLTcwIHE2MiAtMjcgMTM5IC0yNSBsMzYxNiAwIGwtMTQ5NSAtMTQ5NSBxLTU1IC01MyAtODEgLTExNiBxLTI0IC01OSAtMjEgLTEyMSBxMyAtNTggMzAgLTExMyBxMjUgLTU0IDY4IC05NyBxNDMgLTQzIDk2IC02OCBxNTUgLTI2IDExNCAtMjkgcTYyIC0zIDEyMCAyMSBxNjMgMjUgMTE2IDgxIGwyMDI5IDIwMjggcTU5IDYwIDgwIDE0MSBxMjEgODAgMSAxNTkgcS0yMSA4MiAtODEgMTQyIGwtMjAyOSAyMDI4IHEtNDQgNDUgLTEwMiA3MCBxLTU4IDI1IC0xMjIgMjUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0ibWVudSIgdW5pY29kZT0iJiN4ZWEwODsiIGQ9Ik02MjUgNDM3NSBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFpNNjI1IDI4MTMgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaTTYyNSAxMjUwIGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0ibW9yZSIgdW5pY29kZT0iJiN4ZWEwOTsiIGQ9Ik05MzggMzEyNSBxLTEyOCAwIC0yNDQgLTQ5IHEtMTEyIC00OCAtMTk4LjUgLTEzNC41IHEtODYuNSAtODYuNSAtMTMzLjUgLTE5OC41IHEtNTAgLTExNiAtNDkuNSAtMjQzIHEwLjUgLTEyNyA0OS41IC0yNDMgcTQ3IC0xMTIgMTMzLjUgLTE5OC41IHE4Ni41IC04Ni41IDE5OC41IC0xMzQuNSBxMTE2IC00OSAyNDMuNSAtNDkgcTEyNy41IDAgMjQzLjUgNDkgcTExMiA0OCAxOTguNSAxMzQuNSBxODYuNSA4Ni41IDEzMy41IDE5OC41IHE1MCAxMTYgNTAgMjQzIHEwIDEyNyAtNTAgMjQzIHEtNDcgMTEyIC0xMzMuNSAxOTguNSBxLTg2LjUgODYuNSAtMTk4LjUgMTM0LjUgcS0xMTYgNDkgLTI0MyA0OSBaTTI1MDAgMzEyNSBxLTEyNyAwIC0yNDMgLTQ5IHEtMTEyIC00OCAtMTk4LjUgLTEzNC41IHEtODYuNSAtODYuNSAtMTM0LjUgLTE5OC41IHEtNDkgLTExNiAtNDkgLTI0MyBxMCAtMTI3IDQ5IC0yNDMgcTQ4IC0xMTIgMTM0LjUgLTE5OC41IHE4Ni41IC04Ni41IDE5OC41IC0xMzQuNSBxMTE2IC00OSAyNDMgLTQ5IHExMjcgMCAyNDMgNDkgcTExMiA0OCAxOTguNSAxMzQuNSBxODYuNSA4Ni41IDEzNC41IDE5OC41IHE0OSAxMTYgNDkgMjQzIHEwIDEyNyAtNDkgMjQzIHEtNDggMTEyIC0xMzQuNSAxOTguNSBxLTg2LjUgODYuNSAtMTk4LjUgMTM0LjUgcS0xMTYgNDkgLTI0MyA0OSBaTTQwNjMgMzEyNSBxLTEyOCAwIC0yNDQgLTQ5IHEtMTEyIC00OCAtMTk4LjUgLTEzNC41IHEtODYuNSAtODYuNSAtMTMzLjUgLTE5OC41IHEtNDkgLTExNiAtNDkgLTI0MyBxMCAtMTI3IDQ5IC0yNDMgcTQ3IC0xMTIgMTMzLjUgLTE5OC41IHE4Ni41IC04Ni41IDE5OC41IC0xMzQuNSBxMTE2IC00OSAyNDMuNSAtNDkgcTEyNy41IDAgMjQzLjUgNDkgcTExMiA0OCAxOTguNSAxMzQuNSBxODYuNSA4Ni41IDEzMy41IDE5OC41IHE1MCAxMTYgNTAgMjQzIHEwIDEyNyAtNTAgMjQzIHEtNDcgMTEyIC0xMzMuNSAxOTguNSBxLTg2LjUgODYuNSAtMTk4LjUgMTM0LjUgcS0xMTYgNDkgLTI0MyA0OSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJwYXVzZSIgdW5pY29kZT0iJiN4ZWEwYTsiIGQ9Ik05MzggNDA2MyBsMCAtMzEyNSBsMTI1MCAwIGwwIDMxMjUgbC0xMjUwIDAgWk0yODEzIDQwNjMgbDAgLTMxMjUgbDEyNTAgMCBsMCAzMTI1IGwtMTI1MCAwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InBsYXkiIHVuaWNvZGU9IiYjeGVhMGI7IiBkPSJNNjI1IDQzNzUgbDM3NTAgLTE4NzUgbC0zNzUwIC0xODc1IGwwIDM3NTAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idHJpYW5nbGUtcyIgdW5pY29kZT0iJiN4ZWEwYzsiIGQ9Ik0xMjUwIDMxMjUgbDEyNTAgLTEyNTAgbDEyNTAgMTI0OCBsLTI1MDAgMiBaIiAvPjwvZm9udD48L2RlZnM+PC9zdmc+\"},111:function(A,t,e){\"use strict\";var o=e(38);e.n(o).a},112:function(A,t,e){(A.exports=e(1)(!1)).push([A.i,\"li.active[data-v-42604de1]{box-shadow:inset 4px 0 var(--color-primary)}.action--disabled[data-v-42604de1]{pointer-events:none;opacity:.5}.action--disabled[data-v-42604de1]:hover,.action--disabled[data-v-42604de1]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-42604de1]{opacity:1 !important}.action-button[data-v-42604de1]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:normal;line-height:44px}.action-button[data-v-42604de1]:hover,.action-button[data-v-42604de1]:focus{opacity:1}.action-button>span[data-v-42604de1]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-42604de1]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px}.action-button p[data-v-42604de1]{width:150px;padding:7px 0;margin:auto;cursor:pointer;text-align:left;line-height:1.6em}.action-button__longtext[data-v-42604de1]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-42604de1]{font-weight:bold}\\n\",\"\"])},12:function(A,t,e){\"use strict\";e.r(t);var o=e(4);e(36);\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\no.VTooltip.options.defaultTemplate='<div class=\"vue-tooltip\" role=\"tooltip\" data-v-'.concat(\"bf701da\",'><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>'),o.VTooltip.options.defaultHtml=!1,t.default=o.VTooltip},125:function(A,t){},13:function(A,t,e){\"use strict\";e(6),e(23);var o=e(5),i=e.n(o);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.a={before:function(){this.$slots.default&&\"\"!==this.text.trim()||(i.a.util.warn(\"\".concat(this.$options.name,\" cannot be empty and requires a meaningful text content\"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():\"\"}}}},14:function(A,t){A.exports=require(\"v-click-outside\")},149:function(A,e,o){\"use strict\";o.r(e);var i=o(33),n=(o(18),o(29),o(72)),a=o.n(n),r=o(55),s=o(80),c=o(12);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nfunction l(A,t){var e,o,i,n=t;this.start=function(){i=!0,o=new Date,e=setTimeout(A,n)},this.pause=function(){i=!1,clearTimeout(e),n-=new Date-o},this.clear=function(){i=!1,clearTimeout(e),n=0},this.getTimeLeft=function(){return i&&(this.pause(),this.start()),n},this.getStateRunning=function(){return i},this.start()}var d={name:\"Modal\",components:{Actions:r.default,ActionButton:s.default},directives:{tooltip:c.default},props:{title:{type:String,default:\"\"},hasPrevious:{type:Boolean,default:!1},hasNext:{type:Boolean,default:!1},outTransition:{type:Boolean,default:!1},enableSlideshow:{type:Boolean,default:!1},clearViewDelay:{type:Number,default:5e3},slideshowDelay:{type:Number,default:3e3},slideshowPaused:{type:Boolean,default:!1},enableSwipe:{type:Boolean,default:!0},spreadNavigation:{type:Boolean,default:!1},size:{type:String,default:\"normal\",validator:function(A){return-1!==[\"normal\",\"large\",\"full\"].indexOf(A)}},canClose:{type:Boolean,default:!0}},data:function(){return{mc:null,showModal:!1,clearView:!1,clearViewTimeout:null,playing:!1,slideshowTimeout:null}},computed:{modalTransitionName:function(){return\"modal-\".concat(this.outTransition?\"out\":\"in\")},playPauseTitle:function(){return this.playing?t(\"core\",\"Pause slideshow\"):t(\"core\",\"Start slideshow\")}},watch:{slideshowPaused:function(A){this.slideshowTimeout&&(A?this.slideshowTimeout.pause():this.slideshowTimeout.start())}},beforeMount:function(){window.addEventListener(\"keydown\",this.handleKeydown)},beforeDestroy:function(){window.removeEventListener(\"keydown\",this.handleKeydown)},mounted:function(){var A=this;this.showModal=!0,this.handleMouseMove(),this.mc=new a.a(this.$refs.mask),this.mc.on(\"swipeleft swiperight\",function(t){A.handleSwipe(t)}),document.body.insertBefore(this.$el,document.body.lastChild)},unmounted:function(){this.mc.off(\"swipeleft swiperight\"),this.mc.destroy()},methods:{previous:function(A){this.hasPrevious&&(A&&this.resetSlideshow(),this.$emit(\"previous\",A))},next:function(A){this.hasNext&&(A&&this.resetSlideshow(),this.$emit(\"next\",A))},close:function(A){var t=this;this.canClose&&(this.showModal=!1,setTimeout(function(){t.$emit(\"close\",A)},300))},handleKeydown:function(A){switch(A.keyCode){case 37:this.previous(A);break;case 13:case 39:this.next(A);break;case 27:this.close(A)}},handleSwipe:function(A){this.enableSwipe&&(\"swipeleft\"===A.type?this.next(A):\"swiperight\"===A.type&&this.previous(A))},handleMouseMove:function(){var A=this;this.clearViewDelay>0&&(this.clearView=!1,clearTimeout(this.clearViewTimeout),this.clearViewTimeout=setTimeout(function(){A.clearView=!0},this.clearViewDelay))},togglePlayPause:function(){this.playing=!this.playing,this.playing?this.handleSlideshow():this.clearSlideshowTimeout()},resetSlideshow:function(){this.playing=!this.playing,this.clearSlideshowTimeout(),this.$nextTick(function(){this.togglePlayPause()})},handleSlideshow:function(){var A=this;this.playing=!0,this.hasNext?this.slideshowTimeout=new l(function(){A.next(),A.handleSlideshow()},this.slideshowDelay):(this.playing=!1,this.clearSlideshowTimeout())},clearSlideshowTimeout:function(){this.slideshowTimeout&&this.slideshowTimeout.clear()}}},u=(o(218),o(0)),f=o(125),g=o.n(f),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"transition\",{attrs:{name:\"fade\"}},[e(\"div\",{ref:\"mask\",staticClass:\"modal-mask\",on:{click:A.handleMouseMove,mousemove:A.handleMouseMove,touchmove:A.handleMouseMove}},[e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:!A.clearView,expression:\"!clearView\"}],staticClass:\"modal-header\",class:{invisible:A.clearView}},[\"\"!==A.title.trim()?e(\"div\",{staticClass:\"modal-title\"},[A._v(\"\\n\\t\\t\\t\\t\\t\"+A._s(A.title)+\"\\n\\t\\t\\t\\t\")]):A._e(),A._v(\" \"),e(\"div\",{staticClass:\"icons-menu\"},[e(\"Actions\",{staticClass:\"header-actions\"},[A._t(\"actions\")],2),A._v(\" \"),A.hasNext&&A.enableSlideshow?e(\"button\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:A.playPauseTitle,expression:\"playPauseTitle\",modifiers:{auto:!0}}],staticClass:\"play-pause\",class:{\"play-pause--paused\":A.slideshowPaused},on:{click:A.togglePlayPause}},[e(\"div\",{class:[A.playing?\"icon-pause\":\"icon-play\"]},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]),A._v(\" \"),A.playing?e(\"svg\",{staticClass:\"progress-ring\",attrs:{height:\"50\",width:\"50\"}},[e(\"circle\",{staticClass:\"progress-ring__circle\",attrs:{stroke:\"white\",\"stroke-width\":\"2\",fill:\"transparent\",r:\"15\",cx:\"25\",cy:\"25\"}})]):A._e()]):A._e(),A._v(\" \"),A.canClose?e(\"Actions\",{staticClass:\"header-close\"},[e(\"ActionButton\",{attrs:{icon:\"icon-close\"},on:{click:A.close}},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Close\"))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):A._e()],1)])]),A._v(\" \"),e(\"transition\",{attrs:{name:A.modalTransitionName}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.showModal,expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\"modal-wrapper--\"+A.size,A.spreadNavigation?\"modal-wrapper--spread-navigation\":\"\"],on:{click:function(t){return t.target!==t.currentTarget?null:A.close(t)}}},[e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"a\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasPrevious&&!A.clearView,expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{invisible:A.clearView||!A.hasPrevious},on:{click:A.previous}},[e(\"div\",{staticClass:\"icon icon-previous\"},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Previous\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])]),A._v(\" \"),e(\"div\",{staticClass:\"modal-container\"},[A._t(\"default\")],2),A._v(\" \"),e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"a\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasNext&&!A.clearView,expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{invisible:A.clearView||!A.hasNext},on:{click:A.next}},[e(\"div\",{staticClass:\"icon icon-next\"},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Next\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])])],1)])],1)])},[],!1,null,\"9c792ef2\",null);\"function\"==typeof g.a&&g()(p);var m=p.exports;o.d(e,\"Modal\",function(){return m}),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nObject(i.a)(m);e.default=m},15:function(A,t){A.exports=require(\"core-js/modules/es.array.iterator\")},16:function(A,t){A.exports=require(\"core-js/modules/es.string.iterator\")},17:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.iterator\")},18:function(A,t){A.exports=require(\"core-js/modules/es.array.index-of\")},19:function(A,t){A.exports=require(\"core-js/modules/es.regexp.to-string\")},2:function(A,t,e){\"use strict\";function o(A,t){for(var e=[],o={},i=0;i<t.length;i++){var n=t[i],a=n[0],r={id:A+\":\"+i,css:n[1],media:n[2],sourceMap:n[3]};o[a]?o[a].parts.push(r):e.push(o[a]={id:a,parts:[r]})}return e}e.r(t),e.d(t,\"default\",function(){return g});var i=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!i)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var n={},a=i&&(document.head||document.getElementsByTagName(\"head\")[0]),r=null,s=0,c=!1,l=function(){},d=null,u=\"data-vue-ssr-id\",f=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function g(A,t,e,i){c=e,d=i||{};var a=o(A,t);return p(a),function(t){for(var e=[],i=0;i<a.length;i++){var r=a[i];(s=n[r.id]).refs--,e.push(s)}t?p(a=o(A,t)):a=[];for(i=0;i<e.length;i++){var s;if(0===(s=e[i]).refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete n[s.id]}}}}function p(A){for(var t=0;t<A.length;t++){var e=A[t],o=n[e.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](e.parts[i]);for(;i<e.parts.length;i++)o.parts.push(b(e.parts[i]));o.parts.length>e.parts.length&&(o.parts.length=e.parts.length)}else{var a=[];for(i=0;i<e.parts.length;i++)a.push(b(e.parts[i]));n[e.id]={id:e.id,refs:1,parts:a}}}}function m(){var A=document.createElement(\"style\");return A.type=\"text/css\",a.appendChild(A),A}function b(A){var t,e,o=document.querySelector(\"style[\"+u+'~=\"'+A.id+'\"]');if(o){if(c)return l;o.parentNode.removeChild(o)}if(f){var i=s++;o=r||(r=m()),t=w.bind(null,o,i,!1),e=w.bind(null,o,i,!0)}else o=m(),t=function(A,t){var e=t.css,o=t.media,i=t.sourceMap;o&&A.setAttribute(\"media\",o);d.ssrId&&A.setAttribute(u,t.id);i&&(e+=\"\\n/*# sourceURL=\"+i.sources[0]+\" */\",e+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\");if(A.styleSheet)A.styleSheet.cssText=e;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(e))}}.bind(null,o),e=function(){o.parentNode.removeChild(o)};return t(A),function(o){if(o){if(o.css===A.css&&o.media===A.media&&o.sourceMap===A.sourceMap)return;t(A=o)}else e()}}var h,v=(h=[],function(A,t){return h[A]=t,h.filter(Boolean).join(\"\\n\")});function w(A,t,e,o){var i=e?\"\":o.css;if(A.styleSheet)A.styleSheet.cssText=v(t,i);else{var n=document.createTextNode(i),a=A.childNodes;a[t]&&A.removeChild(a[t]),a.length?A.insertBefore(n,a[t]):A.appendChild(n)}}},20:function(A,t){A.exports=require(\"core-js/modules/es.string.replace\")},21:function(A,t,e){\"use strict\";e(3),e(19),e(20);t.a=function(A){return Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,A||5)}},218:function(A,t,e){\"use strict\";var o=e(104);e.n(o).a},219:function(A,t,e){t=A.exports=e(1)(!1);var o=e(7),i=o(e(8)),n=o(e(9)),a=o(e(10)),r=o(e(11));t.push([A.i,'@font-face{font-family:\"iconfont-vue\";src:url('+i+\");src:url(\"+i+') format(\"embedded-opentype\"),url('+n+') format(\"woff\"),url('+a+') format(\"truetype\"),url('+r+') format(\"svg\")}.icon[data-v-9c792ef2]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-left[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right-double[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.checkmark[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.close[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.confirm[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.menu[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.more[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.pause[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.play[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.triangle-s[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";content:\"\"}.modal-mask[data-v-9c792ef2]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,0.92)}.modal-header[data-v-9c792ef2]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;transition:opacity 250ms, visibility 250ms}.modal-header.invisible[style*=\\'display:none\\'][data-v-9c792ef2],.modal-header.invisible[style*=\\'display: none\\'][data-v-9c792ef2]{visibility:hidden}.modal-header .modal-title[data-v-9c792ef2]{overflow-x:hidden;box-sizing:border-box;max-width:100%;padding:0 88px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px}.modal-header .icons-menu[data-v-9c792ef2]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .icon-close[data-v-9c792ef2]{box-sizing:border-box;margin:3px;padding:10px 11px;color:#fff;background-image:none;font-size:23px}.modal-header .icons-menu .icon-close[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .play-pause[data-v-9c792ef2]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;color:white;border:none;background-color:transparent;font-size:22px}.modal-header .icons-menu .play-pause:hover .icon-play[data-v-9c792ef2],.modal-header .icons-menu .play-pause:hover .icon-pause[data-v-9c792ef2],.modal-header .icons-menu .play-pause:focus .icon-play[data-v-9c792ef2],.modal-header .icons-menu .play-pause:focus .icon-pause[data-v-9c792ef2]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.modal-header .icons-menu .play-pause .icon-play[data-v-9c792ef2],.modal-header .icons-menu .play-pause .icon-pause[data-v-9c792ef2]{box-sizing:border-box;width:44px;height:44px;margin:3px;opacity:.7;background-image:none;cursor:pointer}.modal-header .icons-menu .play-pause .icon-play[data-v-9c792ef2]{padding:11px 13px}.modal-header .icons-menu .play-pause .icon-play[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .play-pause .icon-pause[data-v-9c792ef2]{padding:12px;font-size:19.5px}.modal-header .icons-menu .play-pause .icon-pause[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .header-actions[data-v-9c792ef2]{margin:3px;color:white}.modal-header .icons-menu .action-item--single[data-v-9c792ef2]{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-9c792ef2] .action-item__menutoggle{padding:13px 11px;color:#fff;font-size:22px}.modal-wrapper[data-v-9c792ef2]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-9c792ef2],.modal-wrapper .next[data-v-9c792ef2]{z-index:10000;display:flex !important;align-items:center;justify-content:center;width:15%;min-width:60px;height:100%;transition:opacity 250ms, visibility 250ms}.modal-wrapper .prev.invisible[style*=\\'display:none\\'][data-v-9c792ef2],.modal-wrapper .prev.invisible[style*=\\'display: none\\'][data-v-9c792ef2],.modal-wrapper .next.invisible[style*=\\'display:none\\'][data-v-9c792ef2],.modal-wrapper .next.invisible[style*=\\'display: none\\'][data-v-9c792ef2]{visibility:hidden}.modal-wrapper .icon-next[data-v-9c792ef2],.modal-wrapper .icon-previous[data-v-9c792ef2]{box-sizing:border-box;width:44px;height:44px;padding:12px 11px;color:white;border-radius:22px;background-image:none;font-size:24px}.modal-wrapper .icon-previous[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .icon-next[data-v-9c792ef2]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .modal-container[data-v-9c792ef2]{display:block;overflow:hidden;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 2px 8px rgba(0,0,0,0.33)}.modal-wrapper:not(.modal-wrapper--large):not(.modal-wrapper--full) .modal-container[data-v-9c792ef2]{max-width:900px;max-height:80%}.modal-wrapper--full .modal-container[data-v-9c792ef2]{max-width:100%;max-height:100%;border-radius:0}.modal-wrapper--full .prev[data-v-9c792ef2],.modal-wrapper--full .next[data-v-9c792ef2],.modal-wrapper--spread-navigation .prev[data-v-9c792ef2],.modal-wrapper--spread-navigation .next[data-v-9c792ef2]{position:absolute;width:10%}.modal-wrapper--full .prev[data-v-9c792ef2],.modal-wrapper--spread-navigation .prev[data-v-9c792ef2]{left:0}.modal-wrapper--full .next[data-v-9c792ef2],.modal-wrapper--spread-navigation .next[data-v-9c792ef2]{right:0}.modal-wrapper--large .modal-container[data-v-9c792ef2]{max-width:70%;max-height:90%}.modal-wrapper--large .prev[data-v-9c792ef2],.modal-wrapper--large .next[data-v-9c792ef2]{width:10%}.fade-enter-active[data-v-9c792ef2],.fade-leave-active[data-v-9c792ef2]{transition:opacity 250ms}.fade-enter[data-v-9c792ef2],.fade-leave-to[data-v-9c792ef2]{opacity:0}.fade-visibility-enter[data-v-9c792ef2],.fade-visibility-leave-to[data-v-9c792ef2]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-9c792ef2],.modal-in-leave-active[data-v-9c792ef2],.modal-out-enter-active[data-v-9c792ef2],.modal-out-leave-active[data-v-9c792ef2]{transition:opacity 250ms}.modal-in-enter[data-v-9c792ef2],.modal-in-leave-to[data-v-9c792ef2],.modal-out-enter[data-v-9c792ef2],.modal-out-leave-to[data-v-9c792ef2]{opacity:0}.modal-in-enter .modal-container[data-v-9c792ef2],.modal-in-leave-to .modal-container[data-v-9c792ef2]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-9c792ef2],.modal-out-leave-to .modal-container[data-v-9c792ef2]{transform:scale(1.1)}.modal-mask .play-pause .progress-ring[data-v-9c792ef2]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause .progress-ring .progress-ring__circle[data-v-9c792ef2]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-data-v-9c792ef2 linear 3s infinite;stroke-linecap:round;stroke-dashoffset:94.24778;stroke-dasharray:94.24778}.modal-mask .play-pause--paused .icon-pause[data-v-9c792ef2]{animation:breath-data-v-9c792ef2 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause--paused .progress-ring__circle[data-v-9c792ef2]{animation-play-state:paused !important}@keyframes progressring-data-v-9c792ef2{from{stroke-dashoffset:94.24778}to{stroke-dashoffset:0}}@keyframes breath-data-v-9c792ef2{0%{opacity:1}50%{opacity:0}100%{opacity:1}}\\n',\"\"])},22:function(A,t){A.exports=require(\"core-js/modules/web.url\")},23:function(A,t){A.exports=require(\"core-js/modules/es.string.trim\")},24:function(A,t,e){\"use strict\";e(15),e(3),e(16),e(17),e(22);var o=e(13),i=(e(6),function(A,t){for(var e=A.$parent;e;){if(e.$options.name===t)return e;e=e.$parent}});t.a={mixins:[o.a],props:{icon:{type:String,default:\"\"},title:{type:String,default:\"\"},closeAfterClick:{type:Boolean,default:!1}},computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(A){return!1}}},methods:{onClick:function(A){if(this.$emit(\"click\",A),this.closeAfterClick){var t=i(this,\"Actions\");t&&t.closeMenu&&t.closeMenu()}}}}},25:function(A,t){A.exports=require(\"core-js/modules/es.array.concat\")},29:function(A,t){A.exports=require(\"core-js/modules/es.number.constructor\")},3:function(A,t){A.exports=require(\"core-js/modules/es.object.to-string\")},30:function(A,t,e){var o=e(76);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"aba74858\",o,!0,{})},33:function(A,t,e){\"use strict\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.a=function(A){A.mounted?Array.isArray(A.mounted)||(A.mounted=[A.mounted]):A.mounted=[],A.mounted.push(function(){this.$el.setAttribute(\"data-v-\".concat(\"bf701da\"),\"\")})}},34:function(A,t,e){\"use strict\";e(25),e(49),e(18);var o=e(14),i=e(12),n=e(21),a=(e(73),function(A){var t=A.getBoundingClientRect(),e=document.documentElement.clientHeight,o=document.documentElement.clientWidth,i=Object.assign({});return i.top=t.top<0,i.left=t.left<0,i.bottom=t.bottom>e,i.right=t.right>o,i.any=i.top||i.left||i.bottom||i.right,i.all=i.top&&i.left&&i.bottom&&i.right,i.offsetY=i.top?t.top:i.bottom?t.bottom-e:0,i.offsetX=i.left?t.left:i.right?t.right-o:0,i}),r=(e(74),e(6),e(71),e(5)),s=e.n(r),c=function(A,t,e){void 0!==A&&A.forEach(function(o,i){var n=!o.componentOptions&&o.tag&&-1===t.indexOf(o.tag),a=!!o.componentOptions&&\"string\"==typeof o.componentOptions.tag&&-1===t.indexOf(o.componentOptions.tag);(n||a)&&(s.a.util.warn(\"\".concat(n?o.tag:o.componentOptions.tag,\" is not allowed inside the \").concat(e.$options.name,\" component\"),e),A.splice(i,1))})},l=[\"ActionButton\",\"ActionCheckbox\",\"ActionInput\",\"ActionLink\",\"ActionRadio\",\"ActionRouter\",\"ActionSeparator\",\"ActionText\",\"ActionTextEditable\"],d={name:\"Actions\",directives:{ClickOutside:o.directive,tooltip:i.default},props:{open:{type:Boolean,default:!1},menuAlign:{type:String,default:\"center\",validator:function(A){return[\"left\",\"center\",\"right\"].indexOf(A)>-1}},defaultIcon:{type:String,default:\"action-item__menutoggle--default-icon\"}},data:function(){return{actions:[],opened:this.open,focusIndex:0,randomId:\"menu-\"+Object(n.a)(),offsetX:0,offsetY:0,offsetYArrow:0,rotateArrow:!1,children:this.$children}},computed:{hasMultipleActions:function(){return this.actions.length>1},isValidSingleAction:function(){return 1===this.actions.length&&null!==this.firstActionElement},firstActionVNode:function(){return this.actions[0]},firstAction:function(){return this.children[0]?this.children[0]:{}},firstActionBinding:function(){if(this.firstActionVNode&&this.firstActionVNode.componentOptions){var A=this.firstActionVNode.componentOptions.tag;if(\"ActionLink\"===A)return{is:\"a\",href:this.firstAction.href,target:this.firstAction.target};if(\"ActionRouter\"===A)return{is:\"router-link\",to:this.firstAction.to,exact:this.firstAction.exact};if(\"ActionButton\"===A)return{is:\"button\"}}return null},firstActionEvent:function(){return this.firstActionVNode&&this.firstActionVNode.componentOptions&&this.firstActionVNode.componentOptions.listeners&&this.firstActionVNode.componentOptions.listeners.click},firstActionEventBinding:function(){return this.firstActionEvent?\"click\":null},firstActionClass:function(){var A=this.firstActionVNode&&this.firstActionVNode.data.staticClass,t=this.firstActionVNode&&this.firstActionVNode.data.class;return\"\".concat(A,\" \").concat(t)}},watch:{open:function(A){var t=this;this.opened=A,this.opened&&this.$nextTick(function(){t.onOpen()})}},beforeMount:function(){this.initActions(),c(this.$slots.default,l,this)},beforeUpdate:function(){this.initActions(),c(this.$slots.default,l,this)},methods:{toggleMenu:function(){var A=this;this.opened=!this.opened,this.opened?(this.$nextTick(function(){A.onOpen(),A.focusFirstAction()}),this.$emit(\"open\")):(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1),this.$emit(\"update:open\",this.opened)},closeMenu:function(){this.opened&&(this.$emit(\"update:open\",!1),this.$emit(\"close\")),this.opened=!1,this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1},onOpen:function(){if(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1,\"center\"===this.menuAlign){var A=a(this.$refs.menu);(A.left||A.right)&&(this.offsetX=A.offsetX>0?Math.round(A.offsetX)+5:Math.round(A.offsetX)-5),A.bottom&&(this.offsetY=0-Math.round(this.$refs.menu.clientHeight)-42,this.offsetYArrow=Math.round(this.$refs.menu.clientHeight)+18,this.rotateArrow=!0)}},onMouseFocusAction:function(A){if(document.activeElement!==A.target){var t=A.target.closest(\"li\");if(t){var e=t.querySelector(\".focusable\");if(e){var o=this.$refs.menu.querySelectorAll(\".focusable\"),i=Array.prototype.indexOf.call(o,e);i>-1&&(this.focusIndex=i,this.focusAction())}}}},removeCurrentActive:function(){var A=this.$refs.menu.querySelector(\"li.active\");A&&A.classList.remove(\"active\")},focusAction:function(){var A=this.$refs.menu.querySelectorAll(\".focusable\")[this.focusIndex];if(A){var t=A.closest(\"li\");A.focus(),t&&(this.removeCurrentActive(),t.classList.add(\"active\"))}},focusPreviousAction:function(){this.focusIndex=Math.max(this.focusIndex-1,0),this.focusAction()},focusNextAction:function(){this.focusIndex=Math.min(this.focusIndex+1,this.$refs.menu.querySelectorAll(\".focusable\").length-1),this.focusAction()},focusFirstAction:function(){this.focusIndex=0,this.focusAction()},focusLastAction:function(){this.focusIndex=this.$el.querySelectorAll(\".focusable\").length-1,this.focusAction()},execFirstAction:function(A){this.firstActionEvent&&this.firstActionEvent(A)},initActions:function(){this.actions=(this.$slots.default||[]).filter(function(A){return!!A&&!!A.componentOptions})}}},u=(e(75),e(0)),f=e(41),g=e.n(f),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return A.isValidSingleAction?e(\"element\",A._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:A.firstAction.text,expression:\"firstAction.text\",modifiers:{auto:!0}}],staticClass:\"action-item action-item--single\",class:[A.firstAction.icon,A.firstActionClass],attrs:{\"aria-label\":A.firstAction.text,rel:\"noreferrer noopener\"},on:A._d({},[A.firstActionEventBinding,A.execFirstAction])},\"element\",A.firstActionBinding,!1),[e(\"span\",{attrs:{\"aria-hidden\":!0,hidden:\"\"}},[A._t(\"default\")],2)]):e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasMultipleActions,expression:\"hasMultipleActions\"}],staticClass:\"action-item\",class:{\"action-item--open\":A.opened},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusPreviousAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusNextAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"tab\",9,t.key,\"Tab\")?null:t.shiftKey?(t.preventDefault(),A.focusPreviousAction(t)):null},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"page-up\",void 0,t.key,void 0)?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusFirstAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"page-down\",void 0,t.key,void 0)?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusLastAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"esc\",27,t.key,[\"Esc\",\"Escape\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.closeMenu(t))}]}},[e(\"a\",{staticClass:\"icon action-item__menutoggle\",class:A.defaultIcon,attrs:{href:\"#\",\"aria-haspopup\":\"true\",\"aria-controls\":A.randomId,\"aria-expanded\":A.opened},on:{click:function(t){return t.preventDefault(),A.toggleMenu(t)},keydown:function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"space\",32,t.key,[\" \",\"Spacebar\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.toggleMenu(t))}}}),A._v(\" \"),A.opened?e(\"div\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:A.closeMenu,expression:\"closeMenu\"}],ref:\"menu\",staticClass:\"action-item__menu\",class:[\"menu-\"+A.menuAlign,{open:A.opened}],style:{marginRight:A.offsetX+\"px\",marginTop:A.offsetY+\"px\"},attrs:{tabindex:\"-1\"},on:{mousemove:A.onMouseFocusAction}},[e(\"div\",{staticClass:\"action-item__menu_arrow\",style:{transform:\"translateX(\"+A.offsetX+\"px) translateY(\"+A.offsetYArrow+\"px) \"+(A.rotateArrow?\" rotate(180deg)\":\"\")}}),A._v(\" \"),e(\"ul\",{attrs:{id:A.randomId,tabindex:\"-1\"}},[A._t(\"default\")],2)]):A._e()])},[],!1,null,\"53cb6bd0\",null);\"function\"==typeof g.a&&g()(p);t.a=p.exports},36:function(A,t,e){var o=e(37);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"941c791e\",o,!0,{})},37:function(A,t,e){(A.exports=e(1)(!1)).push([A.i,\".vue-tooltip[data-v-bf701da]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;white-space:normal;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;word-wrap:normal;word-break:normal;opacity:0;text-shadow:none;font-family:'Nunito', 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif;font-size:12px;font-weight:normal;font-style:normal;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-bf701da][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-bf701da][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-bf701da][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-bf701da][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-bf701da][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-bf701da][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-bf701da] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-bf701da] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\",\"\"])},38:function(A,t,e){var o=e(112);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"4a580912\",o,!0,{})},4:function(A,t){A.exports=require(\"v-tooltip\")},41:function(A,t){},48:function(A,t,e){\"use strict\";var o={name:\"ActionButton\",mixins:[e(24).a],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return!this.disabled}}},i=(e(111),e(0)),n=e(50),a=e.n(n),r=Object(i.a)(o,function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"li\",{class:{\"action--disabled\":A.disabled}},[e(\"button\",{staticClass:\"action-button\",class:{focusable:A.isFocusable},on:{click:A.onClick}},[e(\"span\",{staticClass:\"action-button__icon\",class:[A.isIconUrl?\"action-button__icon--url\":A.icon],style:{backgroundImage:A.isIconUrl?\"url(\"+A.icon+\")\":null}}),A._v(\" \"),A.title?e(\"p\",[e(\"strong\",{staticClass:\"action-button__title\"},[A._v(\"\\n\\t\\t\\t\\t\"+A._s(A.title)+\"\\n\\t\\t\\t\")]),A._v(\" \"),e(\"br\"),A._v(\" \"),e(\"span\",{staticClass:\"action-button__longtext\",domProps:{textContent:A._s(A.text)}})]):A.isLongText?e(\"p\",{staticClass:\"action-button__longtext\",domProps:{textContent:A._s(A.text)}}):e(\"span\",{staticClass:\"action-button__text\"},[A._v(A._s(A.text))]),A._v(\" \"),A._e()],2)])},[],!1,null,\"42604de1\",null);\"function\"==typeof a.a&&a()(r);t.a=r.exports},49:function(A,t){A.exports=require(\"core-js/modules/es.array.filter\")},5:function(A,t){A.exports=require(\"vue\")},50:function(A,t){},55:function(A,t,e){\"use strict\";e.r(t);var o=e(34);e.d(t,\"Actions\",function(){return o.a}),\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=o.a},6:function(A,t){A.exports=require(\"core-js/modules/es.function.name\")},7:function(A,t,e){\"use strict\";A.exports=function(A,t){return\"string\"!=typeof(A=A.__esModule?A.default:A)?A:(/^['\"].*['\"]$/.test(A)&&(A=A.slice(1,-1)),/[\"'() \\t\\n]/.test(A)||t?'\"'.concat(A.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\"),'\"'):A)}},71:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.for-each\")},72:function(A,t){A.exports=require(\"hammerjs\")},73:function(A,t){A.exports=require(\"core-js/modules/es.object.assign\")},74:function(A,t){A.exports=require(\"core-js/modules/es.array.splice\")},75:function(A,t,e){\"use strict\";var o=e(30);e.n(o).a},76:function(A,t,e){t=A.exports=e(1)(!1);var o=e(7),i=o(e(8)),n=o(e(9)),a=o(e(10)),r=o(e(11));t.push([A.i,'@font-face{font-family:\"iconfont-vue\";src:url('+i+\");src:url(\"+i+') format(\"embedded-opentype\"),url('+n+') format(\"woff\"),url('+a+') format(\"truetype\"),url('+r+') format(\"svg\")}.icon[data-v-53cb6bd0]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-left[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right-double[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.arrow-right[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.checkmark[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.close[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.confirm[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.menu[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.more[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.pause[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.play[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.icon.triangle-s[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";content:\"\"}.action-item[data-v-53cb6bd0]{position:relative;display:inline-block}.action-item--single[data-v-53cb6bd0]:hover,.action-item--single[data-v-53cb6bd0]:focus,.action-item--single[data-v-53cb6bd0]:active,.action-item__menutoggle[data-v-53cb6bd0]:hover,.action-item__menutoggle[data-v-53cb6bd0]:focus,.action-item__menutoggle[data-v-53cb6bd0]:active{border-radius:22px;background-color:rgba(127,127,127,0.25) !important;opacity:1}.action-item.action-item--open .action-item__menutoggle[data-v-53cb6bd0]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.action-item--single[data-v-53cb6bd0],.action-item__menutoggle[data-v-53cb6bd0]{box-sizing:border-box;width:44px;height:44px;margin:0;padding:14px;cursor:pointer;border:none;background-color:transparent}.action-item__menutoggle[data-v-53cb6bd0]{display:flex;align-items:center;justify-content:center;opacity:.7}.action-item__menutoggle[data-v-53cb6bd0]:before{content:\\'\\'}.action-item__menutoggle--default-icon[data-v-53cb6bd0]{font-size:16px}.action-item__menutoggle--default-icon[data-v-53cb6bd0]:before{font-family:\"iconfont-vue\";font-style:normal;font-weight:400;content:\"\"}.action-item--single[data-v-53cb6bd0]{opacity:.7}.action-item--single[data-v-53cb6bd0]:hover,.action-item--single[data-v-53cb6bd0]:focus,.action-item--single[data-v-53cb6bd0]:active{opacity:1}.action-item--single>[hidden][data-v-53cb6bd0]{display:none}.action-item--multiple[data-v-53cb6bd0]{position:relative}.action-item__menu[data-v-53cb6bd0]{position:absolute;z-index:110;right:50%;display:none;margin-bottom:10px;margin-top:-5px;transform:translateX(50%);color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background);filter:drop-shadow(0 1px 3px var(--color-box-shadow))}.action-item__menu ul[data-v-53cb6bd0]>:not(li){display:none}.action-item__menu.open[data-v-53cb6bd0]{display:block}.action-item__menu .action-item__menu_arrow[data-v-53cb6bd0]{position:absolute;right:50%;bottom:100%;width:0;height:0;margin-right:-9px;content:\\' \\';pointer-events:none;border:solid transparent;border-width:9px;border-bottom-color:var(--color-main-background)}.action-item__menu.menu-right[data-v-53cb6bd0]{right:0;left:auto;transform:none}.action-item__menu.menu-right .action-item__menu_arrow[data-v-53cb6bd0]{right:13px;margin-right:0}.action-item__menu.menu-left[data-v-53cb6bd0]{right:auto;left:0;transform:none}.action-item__menu.menu-left .action-item__menu_arrow[data-v-53cb6bd0]{right:auto;left:13px;margin-right:0}.ie .action-item__menu[data-v-53cb6bd0],.ie .action-item__menu .action-item__menu_arrow[data-v-53cb6bd0],.edge .action-item__menu[data-v-53cb6bd0],.edge .action-item__menu .action-item__menu_arrow[data-v-53cb6bd0]{border:1px solid var(--color-border)}\\n',\"\"])},8:function(A,t){A.exports=\"data:application/vnd.ms-fontobject;base64,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\"},80:function(A,t,e){\"use strict\";e.r(t);var o=e(48);e.d(t,\"ActionButton\",function(){return o.a}),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=o.a},9:function(A,t){A.exports=\"data:font/woff;base64,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\"}})});\n//# sourceMappingURL=Modal.js.map","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n"],"sourceRoot":""} \ No newline at end of file