{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./src/@core/comp-functions/forms/form-validation.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./src/views/admin-panel/profile/ProfileUser.vue?636e","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?0089","webpack:///./src/views/admin-panel/profile/useProfile.ts","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?e51c","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?23d3","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue?bff2","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue?2bae","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue?52d9","webpack:///./src/views/admin-panel/profile/ProfileTabChangePassword.vue","webpack:///./src/views/admin-panel/profile/ProfileUser.vue?bab2","webpack:///./src/views/admin-panel/profile/ProfileUser.vue?6c07","webpack:///./src/views/admin-panel/profile/ProfileUser.vue","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/esm/utils/locale.js","webpack:///./src/views/admin-panel/profile/ProfileTabInfo.vue?63f6","webpack:///./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/esm/constants/date.js","webpack:///./node_modules/bootstrap-vue/esm/utils/date.js","webpack:///./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack:///./node_modules/bootstrap-vue/esm/directives/hover/hover.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","noBody","rightAlign","tag","verticalAlign","BMedia","slots","scopedSlots","$children","slotScope","$slots","$scopedSlots","push","$aside","right","staticClass","formValidation","resetFormData","clearFormData","arguments","length","undefined","refFormObserver","ref","resetObserver","_refFormObserver$valu","value","reset","getValidationState","dirty","fieldRequired","required","changed","_ref$valid","valid","result","resetForm","nextTick","clearForm","_defineProperty","obj","key","Object","defineProperty","enumerable","configurable","writable","computeJustifyContent","concat","align","cardHeader","fill","justified","pills","small","tabs","vertical","BNav","_class","_watch","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","i","source","forEach","getOwnPropertyDescriptors","defineProperties","_makeModelMixin","type","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","parseCountDown","show","parseShow","dismissLabel","dismissible","fade","variant","BAlert","mixins","countDown","localShow","this","watch","newValue","_this","clearCountDownInterval","$emit","$_countDownTimeout","setTimeout","$nextTick","created","$_filterTimer","beforeDestroy","methods","dismiss","clearTimeout","$alert","$dismissButton","on","click","normalizeSlot","role","noFade","_objectSpread2","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","BTab","inject","bvTabs","default","localActive","disabled","computed","_isTab","tabClasses","active","card","activeTabClass","controlledBy","buttonId","safeId","computedNoFade","computedLazy","lazy","oldValue","activate","deactivate","firstTab","mounted","registerTab","updated","updateButton","hasNormalizedSlot","unregisterTab","activateTab","deactivateTab","$content","directives","mode","_vm","_h","$createElement","_c","_self","model","callback","$$v","tabIndex","expression","_u","fn","_v","proxy","staticRenderFns","handleSubmit","$event","preventDefault","onSubmit","validationContext","isSaving","userLocal","$set","_s","errors","profileOptions","$store","state","appConfig","isRTL","economicGroupOptions","reduceOptionValue","_e","groupTitle","groupOptions","dealershipsOptions","setDealerships","rawName","modifiers","validator","warn","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","every","v","item","getAsEntry","webkitGetAsEntry","dataTransferItemList","traverseDirectories","Promise","all","array","kind","map","entry","isDirectory","createReader","isFile","resolve","file","$path","identity","getAllFileEntriesInDirectory","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","then","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","placeholder","BFormFile","inheritAttrs","files","dragging","dropAllowed","hasFocus","computedAccept","trim","split","extOrType","startMatch","endMatch","test","slice","rx","RegExp","computedCapture","computedAttrs","form","bvAttrs","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","allowed","filesTraversed","names","$_form","$form","$el","isFileValid","some","a","isFilesArrayValid","join","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","add","$refs","input","_unused","$input","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","plain","onChange","_this2","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","_this3","onDrop","_this4","custom","size","stateClass","focus","style","zIndex","change","focusin","focusout","$label","for","pointerEvents","dragenter","dragover","dragleave","drop","useProfile","ctx","fetchListGroups","_asyncToGenerator","_regeneratorRuntime","mark","_callee","option","wrap","_context","prev","next","useGroup","requestListGroup","draw","response","group","Id","label","Nome","catch","$toast","component","ToastificationContent","title","icon","sent","abrupt","stop","fetchListProfile","_ref2","_callee2","_context2","useAdministrator","requestGetProfiles","profile","nome","fetchListDealerships","_ref3","_callee3","amountPerRequest","requests","total","businessData","pages","page","_context3","useDealerships","requestList","paginate","Data","recordsTotal","Math","ceil","reduce","prevValue","currentValue","dealerships","NomeFantasia","fetchGetLoggedUser","_ref4","_callee4","_context4","useUser","requestGetLoggedUser","fetchUpdateUser","_ref5","_callee5","_context5","dispatch","perfilId","email","receberBoletimDiario","receiveDailyReport","status","_x","Profile","_Vue","_classCallCheck","_len","args","Array","_key","_callSuper","params","GRUPO_EMPRESA_TITLE","useGroupEconomic","verifyEconomicGroupPermission","_inherits","_createClass","get","saving","showEconomicGroup","requestGet","groupEconomic","user","dateInc","Control_DatInc","timeInc","dateUp","Control_DatAlter","timeUp","login","Login","Email","cpfCnpj","CpfCnpj","ConcessionariasIds","economicGroup","ReceberBoletimDiario","Ativo","PerfilNome","PerfilId","insertedBy","Control_UsuInc","updatedBy","Control_UsuAlter","finally","options","Vue","__decorate","Component","components","AvButton","BImg","BFormGroup","BFormInput","BRow","BCol","BCard","BCardText","BMediaAside","BMediaBody","BLink","vSelect","BFormRadio","BFormDatepicker","ValidationProvider","ValidationObserver","BFormInvalidFeedback","Ripple","passwordFieldTypeOld","passwordValueOld","passwordToggleIconOld","togglePasswordOld","passwordFieldTypeNew","newPasswordValue","passwordToggleIconNew","togglePasswordNew","passwordFieldTypeRetype","retypePassword","passwordToggleIconRetype","togglePasswordRetype","ProfileSettingPassword","requestChangePassword","senha","novaSenha","Status","BButton","BInputGroup","BInputGroupAppend","ProfilePage","BTabs","ProfileTabInfo","ProfileTabChangePassword","stableSort","compareFn","index","sort","b","bind","e","RTL_LANGS","locale","toLowerCase","isLocaleRTL","parts","replace","locale1","locale2","bvGroup","from","computedLocalChecked","CALENDAR_GREGORY","CALENDAR_LONG","CALENDAR_NARROW","CALENDAR_SHORT","DATE_FORMAT_2_DIGIT","DATE_FORMAT_NUMERIC","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","prototype","toString","call","constructor","len","arr2","Symbol","iterator","_arr","_n","_d","_i","done","err","isArray","_construct","Parent","Class","_isNativeReflectConstruct","Reflect","construct","Constructor","Function","instance","_setPrototypeOf","sham","Proxy","Date","p","setPrototypeOf","__proto__","createDate","date","_date$split$map","_date$split$map2","year","month","day","getFullYear","getMonth","getDate","formatYMD","locales","calendar","fmt","Intl","DateTimeFormat","resolvedOptions","createDateFormatter","dtf","format","datesEqual","date1","date2","firstDateOfMonth","setDate","lastDateOfMonth","setMonth","addYears","numberOfYears","setFullYear","oneMonthAgo","oneMonthAhead","oneYearAgo","oneYearAhead","oneDecadeAgo","oneDecadeAhead","min","max","ariaControls","block","dateDisabledFn","dateFormatOptions","weekday","dateInfoFn","direction","hidden","hideHeader","initialDate","labelCalendar","labelCurrentMonth","labelHelp","labelNav","labelNextDecade","labelNextMonth","labelNextYear","labelNoDateSelected","labelPrevDecade","labelPrevMonth","labelPrevYear","labelSelected","labelToday","navButtonVariant","noHighlightToday","noKeyNav","readonly","roleDescription","selectedVariant","showDecadeNav","startWeekday","todayVariant","valueAsDate","weekdayHeaderFormat","width","BCalendar","selected","selectedYMD","activeYMD","getToday","gridHasFocus","isLive","valueId","widgetId","navId","gridId","gridCaptionId","gridHelpId","activeId","selectedDate","activeDate","computedMin","computedMax","computedWeekStarts","math","computedLocale","computedDateDisabledFn","computedDateInfoFn","calendarLocale","calendarYear","calendarMonth","calendarFirstDay","calendarDaysInMonth","computedVariant","computedTodayVariant","computedNavButtonVariant","dir","context","selectedFormatted","formatDateString","activeFormatted","dateDisabled","rtl","dateOutOfRange","rangeFn","ymd","hour","minute","second","formatYearMonth","formatWeekdayName","formatWeekdayNameShort","formatDay","nf","NumberFormat","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","prevDecadeDisabled","prevYearDisabled","prevMonthDisabled","thisMonthDisabled","nextMonthDisabled","nextYearDisabled","nextDecadeDisabled","matrix","firstDay","daysInMonth","startIndex","getDay","weekOffset","currentDay","week","j","dayYMD","dayDisabled","dateInfo","isThisMonth","isDisabled","info","calendarHeadings","d","text","old","newYMD","oldYMD","constrainDate","setLive","activated","deactivated","grid","blur","emitSelected","_this5","setGridFocusFlag","onKeydownWrapper","altKey","ctrlKey","keyCode","checkDate","constrainedToday","onKeydownGrid","onClickDay","clickedDate","gotoPrevDecade","gotoPrevYear","gotoPrevMonth","gotoCurrentMonth","gotoNextMonth","gotoNextYear","gotoNextDecade","onHeaderClick","_this6","hideDecadeNav","todayYMD","highlightToday","$header","tabindex","labelSelectedDate","navScope","navProps","shiftV","navPrevProps","flipH","navNextProps","$prevDecadeIcon","$prevYearIcon","$prevMonthIcon","$thisMonthIcon","$nextMonthIcon","$nextYearIcon","$nextDecadeIcon","makeNavBtn","content","handler","btnDisabled","shortcut","$nav","$gridCaption","$gridWeekDays","idx","$gridBody","$cells","dIndex","isSelected","isActive","isToday","idCell","$btn","$gridHelp","$grid","keydown","$slot","$widget","lang","PROP","MOUSEENTER","MOUSELEAVE","createListener","listener","el","_ref$value","hasListener","handlerChanged","VBHover","componentUpdated","unbind","dropdown","buttonOnly","buttonVariant","formattedValue","menuClass","BVFormBtnLabelControl","isHovered","idButton","idLabel","idMenu","idWrapper","computedDir","toggle","setFocus","handleHover","hovered","visible","invalid","btnScope","opened","$button","mousedown","onMousedown","scale","$hidden","$menu","onKeydown","sizeFormClass","directionClass","boundaryClass","calendarProps","formBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","localYMD","isVisible","localLocale","calendarYM","computedLang","computedResetValue","control","updatePopper","setAndClose","hide","onSelected","onInput","onContext","onTodayButton","onResetButton","onCloseButton","onShow","onShown","onHidden","defaultButtonFn","$props","$footer","_label","_label2","$calendar","shown","textTag","notDisabled","tab","BVTabButton","controls","posInSet","setSize","link","handleEvt","shiftKey","indexOf","_this$tab","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","contentClass","end","navClass","navWrapperClass","noNavStyle","provide","currentTab","registeredTabs","localNavClass","classes","$tab","previousTab","nextTab","updateTabs","$_observer","setObserver","$t","disconnect","childList","subtree","attributes","attributeFilter","getTabs","$tabs","order","selector","reverse","find","getButtonForTab","buttons","$forceUpdate","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","focusButton","emitTabClick","clickTab","currentIndex","lastTab","$activeTab","$fallbackTab","$buttons","_on","refInFor","$empty","col","row"],"mappings":"kHAAA,kGAKWA,EAAQ,eAAsB,CACvCC,GAAI,eAAS,QACbC,OAAQ,eAAS,QAAmB,GACpCC,WAAY,eAAS,QAAmB,GACxCC,UAAW,eAAS,QAAmB,IACtC,QAGQC,EAAqB,aAAIC,OAAO,CACzCC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SACpB,OAAOH,EAAE,OAAQ,eAAUE,EAAM,CAC/BE,MAAO,CACL,cAAed,EAAME,OACrB,gBAAiBF,EAAMI,WAEzBW,MAAO,CACLd,GAAID,EAAMC,GACVE,WAAYH,EAAMG,cAElBU,O,6DC9BR,kJASWb,EAAQ,eAAsB,CACvCgB,OAAQ,eAAS,QAAmB,GACpCC,WAAY,eAAS,QAAmB,GACxCC,IAAK,eAAS,OAAkB,OAChCC,cAAe,eAAS,OAAkB,QACzC,QAGQC,EAAsB,aAAId,OAAO,CAC1CC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZS,EAAQV,EAAKU,MACbC,EAAcX,EAAKW,YACnBT,EAAWF,EAAKE,SAChBG,EAAShB,EAAMgB,OACfC,EAAajB,EAAMiB,WACnBE,EAAgBnB,EAAMmB,cACtBI,EAAYP,EAASH,EAAW,GAEpC,IAAKG,EAAQ,CACX,IAAIQ,EAAY,GACZC,EAASJ,IACTK,EAAeJ,GAAe,GAClCC,EAAUI,KAAKjB,EAAE,OAAY,eAAc,OAAmBc,EAAWE,EAAcD,KACvF,IAAIG,EAAS,eAAc,OAAiBJ,EAAWE,EAAcD,GAEjEG,GACFL,EAAUN,EAAa,OAAS,WAAWP,EAAE,OAAa,CACxDV,MAAO,CACL6B,MAAOZ,EACPE,cAAeA,IAEhBS,IAIP,OAAOlB,EAAEV,EAAMkB,IAAK,eAAUN,EAAM,CAClCkB,YAAa,UACXP,O,oCCnDR,kDAMe,SAASQ,EACtBC,GAEA,IADAC,EAAaC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,aAOVG,EAAkBC,iBAAI,MAOtBC,EAAgB,WAAM,IAAAC,EACL,QAArBA,EAAAH,EAAgBI,aAAK,IAAAD,GAArBA,EAAuBE,SASnBC,EAAqB,SAAHhC,GAMlB,IALJiC,EAAKjC,EAALiC,MACAxC,EAASO,EAATP,UACUyC,EAAalC,EAAvBmC,SACAC,EAAOpC,EAAPoC,QAAOC,EAAArC,EACPsC,aAAK,IAAAD,EAAG,KAAIA,EAENE,EAASN,GAASxC,EAAY6C,EAAQ,KAC5C,OAAQJ,GAAkBE,EAAiBG,EAAP,MAQhCC,EAAY,WAChBnB,IACAoB,uBAAS,WACPb,QASEc,EAAY,WAChBpB,IACAmB,uBAAS,WACPb,QAIJ,MAAO,CACLF,kBACAE,gBACAI,qBACAQ,YACAE,e,oCCxEJ,6IAASC,EAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAO3M,IAAIO,EAAwB,SAA+BrB,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBsB,OAAOtB,IAIxBzC,EAAQ,eAAsB,CACvCgE,MAAO,eAAS,QAEhBC,WAAY,eAAS,QAAmB,GACxCC,KAAM,eAAS,QAAmB,GAClCC,UAAW,eAAS,QAAmB,GACvCC,MAAO,eAAS,QAAmB,GACnCC,MAAO,eAAS,QAAmB,GACnCC,KAAM,eAAS,QAAmB,GAClCpD,IAAK,eAAS,OAAkB,MAChCqD,SAAU,eAAS,QAAmB,IACrC,SAGQC,EAAoB,aAAIlE,OAAO,CACxCC,KAAM,QACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAI8D,EAEAzE,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAChByD,EAAOtE,EAAMsE,KACbF,EAAQpE,EAAMoE,MACdG,EAAWvE,EAAMuE,SACjBP,EAAQhE,EAAMgE,MACdC,EAAajE,EAAMiE,WACvB,OAAOvD,EAAEV,EAAMkB,IAAK,eAAUN,EAAM,CAClCkB,YAAa,MACbhB,OAAQ2D,EAAS,CACf,WAAYH,EACZ,YAAaF,IAAUE,EACvB,oBAAqBC,GAAYN,GAAcK,EAC/C,qBAAsBC,GAAYN,GAAcG,IAAUE,EAC1D,cAAeC,EACf,YAAaA,GAAYvE,EAAMkE,KAC/B,iBAAkBK,GAAYvE,EAAMmE,WACnCb,EAAgBmB,EAAQX,EAAsBE,IAASO,GAAYP,GAAQV,EAAgBmB,EAAQ,QAASzE,EAAMqE,OAAQI,KAC3H5D,O,oCCrDR,sCAAI6D,EAAJ,oLAEA,SAASC,EAAQC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAKZ,EAAQlB,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAOF,EAAgBgC,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmBb,EAAQlB,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAShC,EAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAiB3M,IAAIqC,EAAkB,eAAe,OAAQ,CAC3CC,KAAM,OACNC,cAAc,IAEZC,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgB5F,MAC7BkG,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBS,MAInCC,EAAiB,SAAwBC,GAC3C,MAAa,KAATA,GAAe,eAAUA,GACpB,GAGTA,EAAO,eAAUA,EAAM,GAChBA,EAAO,EAAIA,EAAO,IAIvBC,EAAY,SAAmBD,GACjC,MAAa,KAATA,IAAwB,IAATA,KAIf,eAAUA,EAAM,GAAK,MAKhBA,GAIAvG,EAAQ,eAAsB,eAASqF,EAAcA,EAAc,GAAIY,GAAa,GAAI,CACjGQ,aAAc,eAAS,OAAkB,SACzCC,YAAa,eAAS,QAAmB,GACzCC,KAAM,eAAS,QAAmB,GAClCC,QAAS,eAAS,OAAkB,WACjC,QAGMC,EAAsB,aAAIvG,OAAO,CAC1CC,KAAM,OACNuG,OAAQ,CAACf,EAAY,QACrB/F,MAAOA,EACPY,KAAM,WACJ,MAAO,CACLmG,UAAW,EAEXC,UAAWR,EAAUS,KAAKf,MAG9BgB,OAAQxC,EAAS,GAAIpB,EAAgBoB,EAAQwB,GAAiB,SAAUiB,GACtEF,KAAKF,UAAYT,EAAea,GAChCF,KAAKD,UAAYR,EAAUW,MACzB7D,EAAgBoB,EAAQ,aAAa,SAAmByC,GAC1D,IAAIC,EAAQH,KAEZA,KAAKI,yBACL,IAAId,EAAOU,KAAKf,GAEZ,eAAUK,KACZU,KAAKK,MAAM,OAA+BH,GAEtCZ,IAASY,GACXF,KAAKK,MAAMlB,EAAkBe,GAG3BA,EAAW,GACbF,KAAKD,WAAY,EACjBC,KAAKM,mBAAqBC,YAAW,WACnCJ,EAAML,cACL,MAGHE,KAAKQ,WAAU,WACb,gBAAU,WACRL,EAAMJ,WAAY,YAKxB1D,EAAgBoB,EAAQ,aAAa,SAAmByC,GAC1D,IAAIZ,EAAOU,KAAKf,GAEXiB,IAAaF,KAAKP,cAAe,eAAUH,IAC9CU,KAAKK,MAAM,QAIR,eAAUf,IAASA,IAASY,GAC/BF,KAAKK,MAAMlB,EAAkBe,MAE7BzC,GACJgD,QAAS,WAEPT,KAAKU,cAAgB,KACrB,IAAIpB,EAAOU,KAAKf,GAChBe,KAAKF,UAAYT,EAAeC,GAChCU,KAAKD,UAAYR,EAAUD,IAE7BqB,cAAe,WACbX,KAAKI,0BAEPQ,QAAS,CACPC,QAAS,WACPb,KAAKI,yBACLJ,KAAKF,UAAY,EACjBE,KAAKD,WAAY,GAEnBK,uBAAwB,WACtBU,aAAad,KAAKM,oBAClBN,KAAKM,mBAAqB,OAG9B9G,OAAQ,SAAgBC,GACtB,IAAIsH,EAAStH,IAEb,GAAIuG,KAAKD,UAAW,CAClB,IAAIN,EAAcO,KAAKP,YACnBE,EAAUK,KAAKL,QACfqB,EAAiBvH,IAEjBgG,IAEFuB,EAAiBvH,EAAE,OAAc,CAC/BK,MAAO,CACL,aAAckG,KAAKR,cAErByB,GAAI,CACFC,MAAOlB,KAAKa,UAEb,CAACb,KAAKmB,cAAc,WAGzBJ,EAAStH,EAAE,MAAO,CAChBoB,YAAa,QACbhB,MAAOwC,EAAgB,CACrB,oBAAqBoD,GACpB,SAAS3C,OAAO6C,GAAUA,GAC7B7F,MAAO,CACLsH,KAAM,QACN,YAAa,SACb,eAAe,GAEjB7E,IAAKyD,KAAK,SACT,CAACgB,EAAgBhB,KAAKmB,kBAG3B,OAAO1H,EAAE,OAAc,CACrBV,MAAO,CACLsI,QAASrB,KAAKN,OAEf,CAACqB,Q,kCClLR,sCAAIO,EAAgB7D,EAApB,wHAEA,SAASC,EAAQC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAKZ,EAAQlB,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAOF,EAAgBgC,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmBb,EAAQlB,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAShC,EAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAa3M,IAAIiF,EAAyB,SACzBC,EAA0B,QAA0BD,EAE7CxI,EAAQ,eAAsB,eAASqF,EAAcA,EAAc,GAAI,QAAU,IAAKkD,EAAiB,GAAIjF,EAAgBiF,EAAgBC,EAAwB,eAAS,QAAmB,IAASlF,EAAgBiF,EAAgB,WAAY,eAAS,SAAoBjF,EAAgBiF,EAAgB,WAAY,eAAS,QAAmB,IAASjF,EAAgBiF,EAAgB,OAAQ,eAAS,QAAmB,IAASjF,EAAgBiF,EAAgB,SAAU,eAAS,QAAmB,IAASjF,EAAgBiF,EAAgB,MAAO,eAAS,OAAkB,QAASjF,EAAgBiF,EAAgB,QAAS,eAAS,SAAoBjF,EAAgBiF,EAAgB,iBAAkB,eAAS,SAAiCjF,EAAgBiF,EAAgB,sBAAuB,eAAS,SAAoBjF,EAAgBiF,EAAgB,iBAAkB,eAAS,SAAiCA,KAAmB,SAG96BG,EAAoB,aAAIpI,OAAO,CACxCC,KAAM,QACNuG,OAAQ,CAAC,OAAS,QAClB6B,OAAQ,CACNC,OAAQ,CACNC,QAAS,WACP,MAAO,MAIb7I,MAAOA,EACPY,KAAM,WACJ,MAAO,CACLkI,YAAa7B,KAAKuB,KAA4BvB,KAAK8B,WAGvDC,SAAU,CAERC,OAAQ,WACN,OAAO,GAETC,WAAY,WACV,IAAIC,EAASlC,KAAK6B,YACdC,EAAW9B,KAAK8B,SACpB,MAAO,CAAC,CACNI,OAAQA,EACRJ,SAAUA,EACV,YAAa9B,KAAK2B,OAAOQ,OAASnC,KAAKjG,QAEzCmI,EAASlC,KAAK2B,OAAOS,eAAiB,OAExCC,aAAc,WACZ,OAAOrC,KAAKsC,UAAYtC,KAAKuC,OAAO,sBAEtCC,eAAgB,WACd,OAASxC,KAAK2B,OAAOjC,MAEvB+C,aAAc,WACZ,OAAOzC,KAAK2B,OAAOe,MAAQ1C,KAAK0C,OAGpCzC,OAAQxC,EAAS,GAAIpB,EAAgBoB,EAAQ8D,GAAwB,SAAUrB,EAAUyC,GACnFzC,IAAayC,IACXzC,EAEFF,KAAK4C,WAGA5C,KAAK6C,cAGR7C,KAAKK,MAAMmB,EAAyBxB,KAAK6B,iBAI7CxF,EAAgBoB,EAAQ,YAAY,SAAkByC,EAAUyC,GAClE,GAAIzC,IAAayC,EAAU,CACzB,IAAIG,EAAW9C,KAAK2B,OAAOmB,SAEvB5C,GAAYF,KAAK6B,aAAeiB,IAClC9C,KAAK6B,aAAc,EACnBiB,SAGFzG,EAAgBoB,EAAQ,eAAe,SAAqByC,GAE9DF,KAAKK,MAAMmB,EAAyBtB,MAClCzC,GACJsF,QAAS,WAEP/C,KAAKgD,eAEPC,QAAS,WAGP,IAAIC,EAAelD,KAAK2B,OAAOuB,aAE3BA,GAAgBlD,KAAKmD,kBAAkB,UACzCD,EAAalD,OAGjBW,cAAe,WAEbX,KAAKoD,iBAEPxC,QAAS,CAEPoC,YAAa,WAEX,IAAIA,EAAchD,KAAK2B,OAAOqB,YAE1BA,GACFA,EAAYhD,OAGhBoD,cAAe,WAEb,IAAIA,EAAgBpD,KAAK2B,OAAOyB,cAE5BA,GACFA,EAAcpD,OAIlB4C,SAAU,WAER,IAAIS,EAAcrD,KAAK2B,OAAO0B,YAC9B,SAAOA,GAAgBrD,KAAK8B,WAAWuB,EAAYrD,OAErD6C,WAAY,WAEV,IAAIS,EAAgBtD,KAAK2B,OAAO2B,cAChC,SAAOA,IAAiBtD,KAAK6B,cAAcyB,EAActD,QAG7DxG,OAAQ,SAAgBC,GACtB,IAAIoI,EAAc7B,KAAK6B,YACnB0B,EAAW9J,EAAEuG,KAAK/F,IAAK,CACzBY,YAAa,WACbhB,MAAOmG,KAAKiC,WACZuB,WAAY,CAAC,CACXlK,KAAM,OACNkC,MAAOqG,IAET/H,MAAO,CACLsH,KAAM,WACNpI,GAAIgH,KAAKuC,SACT,cAAeV,EAAc,QAAU,OACvC,kBAAmB7B,KAAKqC,cAAgB,MAE1ChH,IAAK,SAEP,CAACwG,IAAgB7B,KAAKyC,aAAezC,KAAKmB,gBAAkB1H,MAC5D,OAAOA,EAAE,OAAc,CACrBV,MAAO,CACL0K,KAAM,SACNpC,OAAQrB,KAAKwC,iBAEd,CAACe,Q,2CCnKR,ICAI9F,EDAAjE,EAAS,WAAa,IAAIkK,EAAI1D,KAAS2D,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,SAAS,CAACE,MAAM,CAACvI,MAAOkI,EAAY,SAAEM,SAAS,SAAUC,GAAMP,EAAIQ,SAASD,GAAKE,WAAW,aAAa,CAACN,EAAG,QAAQ,CAACxJ,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,QAAQ8H,GAAG,WAAW,MAAO,CAACR,EAAG,eAAe,CAAChJ,YAAY,gBAAgBf,MAAM,CAAC,KAAO,WAAW,KAAO,QAAQ+J,EAAG,OAAO,CAAChJ,YAAY,sBAAsB,CAAC6I,EAAIY,GAAG,qCAAqCC,OAAM,MAAS,CAACV,EAAG,qBAAqB,GAAGA,EAAG,QAAQ,CAACxJ,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,QAAQ8H,GAAG,WAAW,MAAO,CAACR,EAAG,eAAe,CAAChJ,YAAY,gBAAgBf,MAAM,CAAC,KAAO,YAAY,KAAO,QAAQ+J,EAAG,OAAO,CAAChJ,YAAY,sBAAsB,CAAC6I,EAAIY,GAAG,0BAA0BC,OAAM,MAAS,CAACV,EAAG,gCAAgC,IAAI,IAAI,IAC1xBW,EAAkB,G,6MEDlB,EAAS,WAAa,IAAId,EAAI1D,KAAS2D,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,MAAM,CAAChJ,YAAY,QAAQ,CAACgJ,EAAG,KAAK,CAACH,EAAIY,GAAG,4BAA4BT,EAAG,sBAAsB,CAACxI,IAAI,kBAAkBhB,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAAShJ,GACvR,IAAIoJ,EAAepJ,EAAIoJ,aACvB,MAAO,CAACZ,EAAG,SAAS,CAAChJ,YAAY,OAAOoG,GAAG,CAAC,OAAS,SAASyD,GAAgC,OAAxBA,EAAOC,iBAAwBF,EAAaf,EAAIkB,aAAa,CAACf,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,MAAM,CAAC+J,EAAG,sBAAsB,CAAC/J,MAAM,CAAC,KAAO,SAAS,MAAQ,kBAAkBO,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAASQ,GAAmB,MAAO,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,SAAS,YAAY,UAAU,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,QAAQ,YAAc,SAAS,MAAQ4J,EAAI5I,eAAeY,mBAAmBmJ,GAAmB,SAAWnB,EAAIoB,UAAUf,MAAM,CAACvI,MAAOkI,EAAIqB,UAAe,MAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,QAASd,IAAME,WAAW,qBAAqBN,EAAG,0BAA0B,CAACH,EAAIY,GAAG,IAAIZ,EAAIuB,GAAGJ,EAAkBK,OAAO,IAAI,QAAQ,OAAO,MAAK,MAAS,GAAGrB,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,MAAM,CAAC+J,EAAG,sBAAsB,CAAC/J,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAYO,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAASQ,GAAmB,MAAO,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,OAAO,YAAY,SAAS,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,OAAO,YAAc,OAAO,MAAQ4J,EAAI5I,eAAeY,mBAAmBmJ,GAAmB,SAAWnB,EAAIoB,UAAUf,MAAM,CAACvI,MAAOkI,EAAIqB,UAAc,KAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,OAAQd,IAAME,WAAW,qBAAqB,OAAO,MAAK,MAAS,GAAGN,EAAG,QAAQ,CAAChJ,YAAY,OAAOf,MAAM,CAAC,KAAO,OAAO,CAAC+J,EAAG,MAAM,CAAChJ,YAAY,QAAQ,CAACgJ,EAAG,KAAK,CAACH,EAAIY,GAAG,+BAA+BT,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,QAAQ,YAAY,UAAU,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,QAAQ,YAAc,QAAQ,SAAW,IAAIiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAAe,MAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,QAASd,IAAME,WAAW,sBAAsB,IAAI,GAAGN,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,SAAS,YAAY,YAAY,CAAC+J,EAAG,WAAW,CAAC/J,MAAM,CAAC,WAAY,EAAM,WAAW,UAAU,QAAU4J,EAAIyB,eAAe,SAAW,IAAIpB,MAAM,CAACvI,MAAOkI,EAAIqB,UAAiB,QAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,UAAWd,IAAME,WAAW,wBAAwB,IAAI,GAAIT,EAAqB,kBAAEG,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,kBAAkB,YAAY,kBAAkB,CAAC+J,EAAG,WAAW,CAAC/J,MAAM,CAAC,IAAM4J,EAAI0B,OAAOC,MAAMC,UAAUC,MAAQ,MAAQ,MAAM,WAAY,EAAM,WAAW,gBAAgB,QAAU7B,EAAI8B,qBAAqB,OAAS9B,EAAI+B,kBAAkB,SAAW,IAAI1B,MAAM,CAACvI,MAAOkI,EAAIqB,UAAuB,cAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,gBAAiBd,IAAME,WAAW,8BAA8B,IAAI,GAAGT,EAAIgC,KAAK7B,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ4J,EAAIiC,WAAW,YAAY,UAAU,CAAC9B,EAAG,WAAW,CAAC/J,MAAM,CAAC,IAAM4J,EAAI0B,OAAOC,MAAMC,UAAUC,MAAQ,MAAQ,MAAM,WAAY,EAAM,WAAW,QAAQ,QAAU7B,EAAIkC,aAAa,OAASlC,EAAI+B,kBAAkB,SAAW,IAAI1B,MAAM,CAACvI,MAAOkI,EAAIqB,UAAuB,cAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,gBAAiBd,IAAME,WAAW,8BAA8B,IAAI,GAAGN,EAAG,QAAQ,CAAChJ,YAAY,OAAOf,MAAM,CAAC,GAAK,KAAK,KAAO,KAAK,GAAK,KAAK,GAAK,OAAO,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,kBAAkB,YAAY,aAAa,CAAC,CAAC+J,EAAG,WAAW,CAAC/J,MAAM,CAAC,IAAM4J,EAAI0B,OAAOC,MAAMC,UAAUC,MAAQ,MAAQ,MAAM,SAAW,GAAG,QAAU7B,EAAImC,mBAAmB,OAASnC,EAAIoC,eAAe,SAAW,IAAI/B,MAAM,CAACvI,MAAOkI,EAAIqB,UAAqB,YAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,cAAed,IAAME,WAAW,6BAA6B,IAAI,GAAGN,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,2BAA2B,CAAC+J,EAAG,MAAM,CAAChJ,YAAY,4BAA4B,CAACgJ,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,iCAAiC,KAAO,yBAAyB,OAAQ,GAAMiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAA4B,mBAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,qBAAsBd,IAAME,WAAW,iCAAiC,CAACT,EAAIY,GAAG,WAAWT,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,gCAAgC,KAAO,yBAAyB,OAAQ,GAAOiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAA4B,mBAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,qBAAsBd,IAAME,WAAW,iCAAiC,CAACT,EAAIY,GAAG,YAAY,MAAM,GAAGT,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,WAAW,CAAC+J,EAAG,MAAM,CAAChJ,YAAY,4BAA4B,CAACgJ,EAAG,eAAe,CAAC/J,MAAM,CAAC,KAAO,SAAS,OAAQ,EAAK,SAAW,IAAIiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAAgB,OAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,SAAUd,IAAME,WAAW,qBAAqB,CAACT,EAAIY,GAAG,aAAaT,EAAG,eAAe,CAAC/J,MAAM,CAAC,KAAO,SAAS,OAAQ,EAAM,SAAW,IAAIiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAAgB,OAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,SAAUd,IAAME,WAAW,qBAAqB,CAACT,EAAIY,GAAG,gBAAgB,MAAM,GAAGT,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,eAAe,YAAY,iBAAiB,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,eAAe,YAAc,eAAe,SAAW,IAAIiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAAoB,WAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,aAAcd,IAAME,WAAW,2BAA2B,IAAI,GAAGN,EAAG,QAAQ,CAAC/J,MAAM,CAAC,GAAK,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,eAAe,YAAY,iBAAiB,CAAC+J,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,eAAe,YAAc,eAAe,SAAW,IAAIiK,MAAM,CAACvI,MAAOkI,EAAIqB,UAAmB,UAAEf,SAAS,SAAUC,GAAMP,EAAIsB,KAAKtB,EAAIqB,UAAW,YAAad,IAAME,WAAW,0BAA0B,IAAI,GAAGN,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,OAAO,CAAC+J,EAAG,YAAY,CAACL,WAAW,CAAC,CAAClK,KAAK,SAASyM,QAAQ,eAAevK,MAAM,4BAA8B2I,WAAW,8BAA8B6B,UAAU,CAAC,KAAM,KAAQnL,YAAY,YAAYf,MAAM,CAAC,QAAU,UAAU,KAAO,SAAS,QAAU4J,EAAIoB,WAAW,CAACpB,EAAIY,GAAG,eAAe,IAAI,IAAI,WAAW,IAC59L,EAAkB,G,sWDDtB,SAAS5G,EAAQC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAKZ,EAAQlB,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAOF,GAAgBgC,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmBb,EAAQlB,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAShC,GAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EA8B3M,IAAIqC,GAAkB,eAAe,QAAS,CAC5CC,KAAM,CAAC,OAAiB,QACxBC,aAAc,KACdoH,UAAW,SAAmBzK,GAE5B,MAAc,KAAVA,GACF,OAAA0K,EAAA,MAAKC,GAA4B,SAC1B,GAGF,eAAkB3K,IAAU,GAAaA,MAGhDsD,GAAaH,GAAgBI,MAC7BC,GAAaL,GAAgB5F,MAC7BkG,GAAkBN,GAAgBO,KAClCC,GAAmBR,GAAgBS,MAEnC+G,GAA6B,+FAE7B,GAAe,SAASC,EAAa5K,GACvC,OAAO,eAAOA,IAAU,eAAQA,IAAUA,EAAM6K,OAAM,SAAUC,GAC9D,OAAOF,EAAaE,OAOpB,GAA2B,SAAkCC,GAC/D,OAAO,eAAWA,EAAKC,YAAcD,EAAKC,aAAe,eAAWD,EAAKE,kBAAoBF,EAAKE,mBAAqB,MAMrH,GAAoB,SAA2BC,GACjD,IAAIC,IAAsB1L,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,KAAmBA,UAAU,GACzF,OAAO2L,QAAQC,IAAI,OAAAC,EAAA,MAAUJ,GAAsB1I,QAAO,SAAUuI,GAClE,MAAqB,SAAdA,EAAKQ,QACXC,KAAI,SAAUT,GACf,IAAIU,EAAQ,GAAyBV,GAErC,GAAIU,EAAO,CACT,GAAIA,EAAMC,aAAeP,EACvB,OAAO,GAA6BM,EAAME,eAAgB,GAAGrK,OAAOmK,EAAM3N,KAAM,MAC3E,GAAI2N,EAAMG,OACf,OAAO,IAAIR,SAAQ,SAAUS,GAC3BJ,EAAMK,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GACbF,EAAQC,SAMhB,OAAO,QACNtJ,OAAOwJ,EAAA,QAMR,GAA+B,SAASC,EAA6BC,GACvE,IAAIC,EAAO1M,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAO,IAAI2L,SAAQ,SAAUS,GAC3B,IAAIO,EAAgB,GAEhBC,EAAuB,SAASA,IAClCH,EAAgBI,aAAY,SAAUC,GACb,IAAnBA,EAAQ7M,OACVmM,EAAQT,QAAQC,IAAIe,GAAeI,MAAK,SAAUD,GAChD,OAAO,eAAQA,QAGjBH,EAAclN,KAAKkM,QAAQC,IAAIkB,EAAQf,KAAI,SAAUC,GACnD,GAAIA,EAAO,CACT,GAAIA,EAAMC,YACR,OAAOO,EAA6BR,EAAME,eAAgB,GAAGrK,OAAO6K,GAAM7K,OAAOmK,EAAM3N,KAAM,MACxF,GAAI2N,EAAMG,OACf,OAAO,IAAIR,SAAQ,SAAUS,GAC3BJ,EAAMK,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GAAGzK,OAAO6K,GAAM7K,OAAOwK,EAAKhO,MACzC+N,EAAQC,SAMhB,OAAO,QACNtJ,OAAOwJ,EAAA,QACVK,SAKNA,QAKA,GAAQ,eAAsB,eAASzJ,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAIpF,EAAA,MAAUgG,IAAa,QAAmB,QAAkB,QAAiB,QAAgB,GAAI,CAChPiJ,OAAQ,eAAS,OAAkB,IACnCC,WAAY,eAAS,OAAkB,UAEvCC,QAAS,eAAS,QAAmB,GACrCC,UAAW,eAAS,QAAmB,GACvCC,gBAAiB,eAAS,OAAkB,mBAC5CC,kBAAmB,eAAS,QAC5BC,SAAU,eAAS,QAAmB,GACtCC,OAAQ,eAAS,QAAmB,GACpCC,kBAAmB,eAAS,OAAkB,eAS9CC,WAAY,eAAS,QAAmB,GACxCC,YAAa,eAAS,OAAkB,qBACrC,QAGMC,GAAyB,aAAIvP,OAAO,CAC7CC,KAAM,OACNuG,OAAQ,CAAC/F,EAAA,KAAYd,EAAA,KAAS8F,GAAY,OAAoB,OAAkB,OAAgB,OAAiB,QACjH+J,cAAc,EACd9P,MAAO,GACPY,KAAM,WACJ,MAAO,CACLmP,MAAO,GACPC,UAAU,EAIVC,aAAchJ,KAAKwI,OACnBS,UAAU,IAGdlH,SAAU,CAERmH,eAAgB,WACd,IAAIjB,EAASjI,KAAKiI,OAGlB,OAFAA,GAAUA,GAAU,IAAIkB,OAAOC,MAAM,UAAUpL,OAAOwJ,EAAA,MAEhC,IAAlBS,EAAO/M,OACF,KAGF+M,EAAOjB,KAAI,SAAUqC,GAC1B,IAAInK,EAAO,OACPoK,EAAa,IACbC,EAAW,IAEX,OAAaC,KAAKH,GAEpBC,EAAa,IAGbpK,EAAO,OAEH,OAAQsK,KAAKH,KACfE,EAAW,MAEXF,EAAYA,EAAUI,MAAM,GAAI,KAKpCJ,EAAY,eAAaA,GACzB,IAAIK,EAAK,IAAIC,OAAO,GAAG7M,OAAOwM,GAAYxM,OAAOuM,GAAWvM,OAAOyM,IACnE,MAAO,CACLG,GAAIA,EACJxK,KAAMA,OAIZ0K,gBAAiB,WACf,IAAIzB,EAAUnI,KAAKmI,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,IAAwBA,GAAW,OAEhE0B,cAAe,WACb,IAAIvQ,EAAO0G,KAAK1G,KACZwI,EAAW9B,KAAK8B,SAChBjG,EAAWmE,KAAKnE,SAChBiO,EAAO9J,KAAK8J,KACZF,EAAkB5J,KAAK4J,gBACvB3B,EAASjI,KAAKiI,OACdM,EAAWvI,KAAKuI,SAChBH,EAAYpI,KAAKoI,UACrB,OAAOhK,EAAcA,EAAc,GAAI4B,KAAK+J,SAAU,GAAI,CACxDnL,KAAM,OACN5F,GAAIgH,KAAKuC,SACTjJ,KAAMA,EACNwI,SAAUA,EACVjG,SAAUA,EACViO,KAAMA,GAAQ,KACd3B,QAASyB,EACT3B,OAAQA,GAAU,KAClBM,SAAUA,EACVH,UAAWA,EACX4B,gBAAiB5B,EACjB,gBAAiBvM,EAAW,OAAS,QAGzCoO,0BAA2B,WACzB,IAAI3B,EAAoBtI,KAAKsI,kBAC7B,OAAO,eAAgBA,GAAqBA,EAAoBtI,KAAKkK,0BAEvEC,YAAa,WACX,OAAO,eAAUnK,KAAK8I,QAExBsB,eAAgB,WACd,OAAO,eAAYpK,KAAK8I,QAE1BuB,UAAW,WACT,OAAOrK,KAAKoK,eAAepD,KAAI,SAAUM,GACvC,OAAOA,EAAKhO,SAGhBgR,aAAc,WAIZ,GAAItK,KAAK+I,WAAa/I,KAAKwI,OACzB,OACExI,KAAKmB,cAAc,OAA4B,CAC7CoJ,QAASvK,KAAKgJ,gBACThJ,KAAKgJ,YAAchJ,KAAKqI,gBAAkBrI,KAAK4D,eAAe,OAAQ,CAC3E/I,YAAa,eACZmF,KAAKyI,oBAKZ,GAA0B,IAAtBzI,KAAK8I,MAAM5N,OACb,OAAO8E,KAAKmB,cAAc,SAA0BnB,KAAK2I,YAG3D,IAAIyB,EAAiBpK,KAAKoK,eACtBD,EAAcnK,KAAKmK,YACnBE,EAAYrK,KAAKqK,UACjBJ,EAA4BjK,KAAKiK,0BAErC,OAAIjK,KAAKmD,kBAAkB,QAClBnD,KAAKmB,cAAc,OAAqB,CAC7C2H,MAAOsB,EACPI,eAAgBL,EAChBM,MAAOJ,IAIJJ,EAA0BG,EAAgBD,EAAaE,KAGlEpK,OAAQxC,EAAS,GAAIpB,GAAgBoB,EAAQwB,IAAiB,SAAUiB,KACjEA,GAAY,eAAQA,IAAiC,IAApBA,EAAShF,SAC7C8E,KAAKvE,WAELY,GAAgBoB,EAAQ,SAAS,SAAeyC,EAAUyC,GAC5D,IAAK,eAAWzC,EAAUyC,GAAW,CACnC,IAAI4F,EAAWvI,KAAKuI,SAChBG,EAAa1I,KAAK0I,WAClBI,GAASP,GAAYG,EAAa,eAAYxI,GAAYA,EAC9DF,KAAKK,MAAMlB,GAAkBoJ,EAAWO,EAAQA,EAAM,IAAM,UAE5DrL,GACJgD,QAAS,WAEPT,KAAK0K,OAAS,MAEhB3H,QAAS,WAEP,IAAI4H,EAAQ,eAAQ,OAAQ3K,KAAK4K,KAE7BD,IACF,eAAQA,EAAO,QAAS3K,KAAKvE,MAAO,QACpCuE,KAAK0K,OAASC,IAGlBhK,cAAe,WACb,IAAIgK,EAAQ3K,KAAK0K,OAEbC,GACF,eAASA,EAAO,QAAS3K,KAAKvE,MAAO,SAGzCmF,QAAS,CACPiK,YAAa,SAAqBvD,GAChC,IAAKA,EACH,OAAO,EAGT,IAAIW,EAASjI,KAAKkJ,eAClB,OAAOjB,GAASA,EAAO6C,MAAK,SAAUC,GACpC,OAAOA,EAAErB,GAAGF,KAAKlC,EAAKyD,EAAE7L,WAG5B8L,kBAAmB,SAA2BlC,GAC5C,IAAI3I,EAAQH,KAEZ,OAAO,eAAQ8I,GAASA,EAAMzC,OAAM,SAAUiB,GAC5C,OAAOnH,EAAM0K,YAAYvD,MACtBtH,KAAK6K,YAAY/B,IAExBoB,yBAA0B,SAAkCE,EAAgBD,EAAaE,GACvF,OAAOA,EAAUY,KAAK,OAExBC,SAAU,SAAkBpC,GAE1B9I,KAAKgJ,aAAehJ,KAAKwI,OACzBxI,KAAK+I,UAAW,EAEhB/I,KAAK8I,MAAQ9I,KAAKuI,SAAWvI,KAAKoI,UAAYU,EAAQ,eAAYA,GAAS,eAAYA,GAAOW,MAAM,EAAG,IAIzG0B,cAAe,SAAuBrC,GAIpC,IAEE,IAAIsC,EAAe,IAAIC,eAAe,IAAIC,eAAiB,IAAIC,aAE/D,eAAY,eAAUzC,IAAQtK,SAAQ,SAAU8I,UAEvCA,EAAKC,MACZ6D,EAAaI,MAAMC,IAAInE,MAEzBtH,KAAK0L,MAAMC,MAAM7C,MAAQsC,EAAatC,MACtC,MAAO8C,MAEXnQ,MAAO,WAKL,IACE,IAAIoQ,EAAS7L,KAAK0L,MAAMC,MACxBE,EAAOrQ,MAAQ,GACfqQ,EAAOjN,KAAO,GACdiN,EAAOjN,KAAO,OACd,MAAOkN,IAET9L,KAAK8I,MAAQ,IAEfiD,YAAa,SAAqBjD,GAChC,IAAIkD,EAAS/Q,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,IAAmBA,UAAU,GAE5E,GAAI+Q,EAAQ,CAEV,IAAIC,EAAgBnD,EAAM9K,OAAOgC,KAAKgL,mBAElCiB,EAAc/Q,OAAS,IACzB8E,KAAKkL,SAASe,GAGdjM,KAAKmL,cAAcc,SAIrBjM,KAAKkL,SAASpC,IAGlBoD,aAAc,SAAsB9M,GAI9BY,KAAKmM,OAAwB,aAAf/M,EAAMR,KACtBoB,KAAKiJ,UAAW,EAGhBjJ,KAAKiJ,UAAW,GAGpBmD,SAAU,SAAkBhN,GAC1B,IAAIiN,EAASrM,KAETpB,EAAOQ,EAAMR,KACbP,EAASe,EAAMf,OACfiO,EAAsBlN,EAAMgM,aAC5BA,OAAuC,IAAxBkB,EAAiC,GAAKA,EACrDN,EAAkB,SAATpN,EAEboB,KAAKK,MAAM,OAAmBjB,GAC9B,IAAIoM,EAAQ,OAAA1E,EAAA,MAAUsE,EAAaI,OAAS,IAE5C,GAAI,QAAuBA,EAAMtQ,OAAS,IAAM,eAAO,GAAyBsQ,EAAM,KAKpF,GAAkBA,EAAOxL,KAAKoI,WAAWJ,MAAK,SAAUc,GACtD,OAAOuD,EAAON,YAAYjD,EAAOkD,UAE9B,CAGL,IAAIlD,EAAQ,OAAAhC,EAAA,MAAUzI,EAAOyK,OAASsC,EAAatC,OAAS,IAAI9B,KAAI,SAAUM,GAG5E,OADAA,EAAKC,MAAQD,EAAKiF,oBAAsB,GACjCjF,KAETtH,KAAK+L,YAAYjD,EAAOkD,KAG5BQ,YAAa,SAAqBpN,GAChC,eAAUA,GACVY,KAAK+I,UAAW,EAChB,IAAI0D,EAAuBrN,EAAMgM,aAC7BA,OAAwC,IAAzBqB,EAAkC,GAAKA,EAE1D,GAAIzM,KAAKwI,QAAUxI,KAAK8B,WAAa9B,KAAKgJ,YAMxC,OAFAoC,EAAasB,WAAa,YAC1B1M,KAAKgJ,aAAc,GAMrBoC,EAAasB,WAAa,QAI5BC,WAAY,SAAoBvN,GAC9B,eAAUA,GACVY,KAAK+I,UAAW,EAChB,IAAI6D,EAAuBxN,EAAMgM,aAC7BA,OAAwC,IAAzBwB,EAAkC,GAAKA,EAE1D,GAAI5M,KAAKwI,QAAUxI,KAAK8B,WAAa9B,KAAKgJ,YAMxC,OAFAoC,EAAasB,WAAa,YAC1B1M,KAAKgJ,aAAc,GAMrBoC,EAAasB,WAAa,QAE5BG,YAAa,SAAqBzN,GAChC,IAAI0N,EAAS9M,KAEb,eAAUZ,GACVY,KAAKQ,WAAU,WACbsM,EAAO/D,UAAW,EAElB+D,EAAO9D,aAAe8D,EAAOtE,WAIjCuE,OAAQ,SAAgB3N,GACtB,IAAI4N,EAAShN,KAEb,eAAUZ,GACVY,KAAK+I,UAAW,EAEZ/I,KAAKwI,QAAUxI,KAAK8B,WAAa9B,KAAKgJ,YACxChJ,KAAKQ,WAAU,WAEbwM,EAAOhE,aAAegE,EAAOxE,UAKjCxI,KAAKoM,SAAShN,KAGlB5F,OAAQ,SAAgBC,GACtB,IAAIwT,EAASjN,KAAKiN,OACdd,EAAQnM,KAAKmM,MACbe,EAAOlN,KAAKkN,KACZnE,EAAW/I,KAAK+I,SAChBoE,EAAanN,KAAKmN,WAClBpD,EAAU/J,KAAK+J,QAEf8B,EAASpS,EAAE,QAAS,CACtBI,MAAO,CAAC,CACN,oBAAqBsS,EACrB,oBAAqBc,EACrBG,MAAOH,GAAUjN,KAAKiJ,UACrBkE,GAIHE,MAAOJ,EAAS,CACdK,QAAS,GACP,GACJxT,MAAOkG,KAAK6J,cACZ5I,GAAI,CACFsM,OAAQvN,KAAKoM,SACboB,QAASxN,KAAKkM,aACduB,SAAUzN,KAAKkM,aACfzQ,MAAOuE,KAAKvE,OAEdJ,IAAK,UAGP,GAAI8Q,EACF,OAAON,EAIT,IAAI6B,EAASjU,EAAE,QAAS,CACtBoB,YAAa,oBACbhB,MAAO,CACLkP,SAAUA,GAEZjP,MAAO,CACL6T,IAAK3N,KAAKuC,SAEV,cAAevC,KAAKkI,YAAc,OAEnC,CAACzO,EAAE,OAAQ,CACZoB,YAAa,yBAGbwS,MAAO,CACLO,cAAe,SAEhB,CAAC5N,KAAKsK,iBAET,OAAO7Q,EAAE,MAAO,CACdoB,YAAa,0BACbhB,MAAO,CAACwC,GAAgB,GAAI,oBAAoBS,OAAOoQ,GAAOA,GAAOC,EAAYpD,EAAQlQ,OACzFwT,MAAOtD,EAAQsD,MACfvT,MAAO,CACLd,GAAIgH,KAAKuC,OAAO,oBAElBtB,GAAI,CACF4M,UAAW7N,KAAKwM,YAChBsB,SAAU9N,KAAK2M,WACfoB,UAAW/N,KAAK6M,YAChBmB,KAAMhO,KAAK+M,SAEZ,CAAClB,EAAQ6B,O,kQEziBF,SAAUO,GAAWC,GAKjC,IAAMC,EAAe,eAAAzU,EAAA0U,gBAAAC,kBAAAC,MAAG,SAAAC,IAAA,IAAAC,EAAA,OAAAH,kBAAAI,MAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAGDC,QAClBC,iBAAiB,CAChBC,KAAM,EACN7T,OAAQ,MAET8M,MAAK,SAACgH,GACL,IAAMrV,EACJqV,EAASrV,KAAKA,KAAKqN,KAAI,SAACiI,GAAiB,MAAM,CAC7CzT,MAAOyT,EAAMC,GACbC,MAAOF,EAAMG,SAGjB,OAAOzV,KAER0V,OAAM,WAUL,OATAnB,EAAIoB,OAAO,CACTC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,iDACPC,KAAM,oBACN/P,QAAS,YAIN,MACP,OAzBQ,OAAN6O,EAAME,EAAAiB,KAAAjB,EAAAkB,OAAA,SA2BLpB,GAAM,wBAAAE,EAAAmB,UAAAtB,OACd,kBA/BoB,OAAA7U,EAAAyE,MAAA,KAAAlD,YAAA,GAiCf6U,EAAgB,eAAAC,EAAA3B,gBAAAC,kBAAAC,MAAG,SAAA0B,IAAA,IAAAxB,EAAA,OAAAH,kBAAAI,MAAA,SAAAwB,GAAA,eAAAA,EAAAtB,KAAAsB,EAAArB,MAAA,OAuBnB,OAtBEJ,EAAS0B,QACZC,qBACAnI,MAAK,SAACgH,GACL,IAAMrV,EACJqV,EAASrV,KAAKA,KAAKqN,KAAI,SAACoJ,GAAO,MAAM,CACnC5U,MAAO4U,EAAQpX,GACfmW,MAAOiB,EAAQC,SAGnB,OAAO1W,KAER0V,OAAM,WAUL,OATAnB,EAAIoB,OAAO,CACTC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,oCACPC,KAAM,oBACN/P,QAAS,YAIN,MACPsQ,EAAAL,OAAA,SAEGpB,GAAM,wBAAAyB,EAAAJ,UAAAG,OACd,kBA1BqB,OAAAD,EAAA5R,MAAA,KAAAlD,YAAA,GA4BhBqV,EAAoB,eAAAC,EAAAnC,gBAAAC,kBAAAC,MAAG,SAAAkC,IAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAtC,EAAA,OAAAH,kBAAAI,MAAA,SAAAsC,GAAA,eAAAA,EAAApC,KAAAoC,EAAAnC,MAAA,OAOU,OAJ/B6B,EAAmB,IACrBC,EAAW,GACXC,EAAQ,GACE,EACVC,EAA+B,GAAEG,EAAAnC,KAAA,EAE/BoC,QACHC,YAAY,CACXC,UAAU,EACVnC,KAAM,EACN7T,OAAQuV,IAETzI,MAAK,SAACgH,GACL2B,EAAQ3B,EAASrV,KAAKwX,KAAKC,aAC3BR,EAAe5B,EAASrV,KAAKwX,KAAKxX,QAEnC0V,OAAM,YACK,KACV,OAGJ,IADMwB,EAAQQ,KAAKC,KAAKX,EAAQF,GACvBK,EAAO,EAAGA,GAAQD,EAAOC,IAChCJ,EAAShW,KACPsW,QAAeC,YAAY,CACzBC,UAAU,EACVnC,KAAM+B,EACN5V,OAAQuV,KAGb,OAAAM,EAAAnC,KAAA,GAEKhI,QAAQC,IAAI6J,GACf1I,MAAK,SAACgH,GACL4B,EAAe5B,EAASuC,QACtB,SACEC,EACAC,GAEA,OAAOD,EAAU1U,OAAO2U,EAAa9X,KAAKwX,KAAKxX,QAEjDiX,MAGHvB,OAAM,YACK,KACV,QAKD,OAHGb,EAASoC,EAAa5J,KAAI,SAAC0K,GAAyB,MAAM,CAC9DlW,MAAOkW,EAAYxC,GACnBC,MAAOuC,EAAYC,iBAClBZ,EAAAnB,OAAA,SAEIpB,GAAM,yBAAAuC,EAAAlB,UAAAW,OACd,kBAxDyB,OAAAD,EAAApS,MAAA,KAAAlD,YAAA,GA0DpB2W,EAAkB,eAAAC,EAAAzD,gBAAAC,kBAAAC,MAAG,SAAAwD,IAAA,IAAAtD,EAAA,OAAAH,kBAAAI,MAAA,SAAAsD,GAAA,eAAAA,EAAApD,KAAAoD,EAAAnD,MAAA,cAAAmD,EAAAnD,KAAA,EACJoD,QAClBC,uBACAjK,MAAK,SAACgH,GACL,OAAOA,EAASrV,KAAKwX,QAEtB9B,OAAM,WAUL,OATAnB,EAAIoB,OAAO,CACTC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,mCACPC,KAAM,oBACN/P,QAAS,YAIN,MACP,OAhBQ,OAAN6O,EAAMuD,EAAApC,KAAAoC,EAAAnC,OAAA,SAkBLpB,GAAM,wBAAAuD,EAAAlC,UAAAiC,OACd,kBApBuB,OAAAD,EAAA1T,MAAA,KAAAlD,YAAA,GAyBlBiX,EAAe,eAAAC,EAAA/D,gBAAAC,kBAAAC,MAAG,SAAA8D,EAAOhC,GAAY,OAAA/B,kBAAAI,MAAA,SAAA4D,GAAA,eAAAA,EAAA1D,KAAA0D,EAAAzD,MAAA,cAAAyD,EAAAzD,KAAA,EACnCV,EAAI9I,OACPkN,SAAS,2BAA4B,CACpCtZ,GAAIoX,EAAQpX,GACZuZ,SAAUnC,EAAQA,QAAQ5U,MAC1BgX,MAAOpC,EAAQoC,MACfnC,KAAMD,EAAQ9W,KACdmZ,qBAAsBrC,EAAQsC,qBAE/B1K,MAAK,SAACgH,GACkB,KAAnBA,EAAS2D,QAAoC,KAAnB3D,EAAS2D,QACrCzE,EAAIoB,OAAO,CACTC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,kCACPC,KAAM,YACN/P,QAAS,aAIbuO,EAAI7N,MAAM,iBAEV6N,EAAIoB,OAAO,CACTC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,8BACPC,KAAM,oBACN/P,QAAS,eAKhB0P,OAAM,WACLnB,EAAIoB,OAAO,CACTC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,6BACPC,KAAM,oBACN/P,QAAS,eAGb,wBAAA0S,EAAAxC,UAAAuC,OACL,gBA1CoBQ,GAAA,OAAAT,EAAAhU,MAAA,KAAAlD,YAAA,GA4CrB,MAAO,CACL6U,mBACA3B,kBACAmC,uBACAsB,qBACAM,mB,8BCqDiBW,GAAO,SAAAC,GAAA,SAAAD,IAAA,IAAA1S,EAAA4S,eAAA,KAAAF,GAAA,QAAAG,EAAA/X,UAAAC,OAAA+X,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAlY,UAAAkY,GA6GzB,OA7GyBhT,EAAAiT,eAAA,KAAAP,EAAA,GAAA/V,OAAAmW,IAAA5W,eAAA8D,EAAA,aAExBA,EAAKiF,OAAOC,MAAM,aAAagO,OAAOC,qBACtC,iBAAejX,eAAA8D,EAAA,gBAC+C,CAC9D3E,MAAO,KACP2T,MAAO,OACR9S,eAAA8D,EAAA,uBAC+D,IAAE9D,eAAA8D,EAAA,iBACR,IAAE9D,eAAA8D,EAAA,eACJ,IAAE9D,eAAA8D,EAAA,qBACI,IAAE9D,eAAA8D,EAAA,OACzD,IAAW9D,eAAA8D,EAAA,UACT,GAAK9D,eAAA8D,EAAA,oBACeoT,QAAiBC,iCAA+BnX,eAAA8D,EAAA,YACjE,IAaX9D,eAAA8D,EAAA,aAEY8N,GAAU9N,IAAM9D,eAAA8D,EAAA,iBACZrF,mBAAgBuB,eAAA8D,EAAA,qBA4Eb,SAACqO,GACnB,OAAOA,EAAOhT,SACf2E,EAAA,OAAAsT,eAAAZ,EAAAC,GAAAY,eAAAb,EAAA,EAAAtW,IAAA,WAAAoX,IA3ED,WACE,OAAO3T,KAAK4T,SAGd,CAAArX,IAAA,UAAAf,MACA,WAAO,IAAA6Q,EAAA,KACDrM,KAAK6T,mBACPN,QACGO,aACA9L,MAAK,SAACgH,GACL3C,EAAK7G,qBAAuBwJ,EAASrV,KAAKA,KAAKqN,KAC7C,SAAC+M,GAAa,MAAM,CAClBvY,MAAOuY,EAAc7E,GACrBC,MAAO4E,EAAc3E,YAM/BpP,KAAKiO,WACF6B,mBACA9H,MAAK,SAACrO,GACL0S,EAAKlH,eAAiBxL,KAG1BqG,KAAKiO,WACFE,kBACAnG,MAAK,SAACrO,GACL0S,EAAKzG,aAAejM,KAGxBqG,KAAKiO,WACFqC,uBACAtI,MAAK,SAACrO,GACL0S,EAAKxG,mBAAqBlM,KAG9BqG,KAAKiO,WAAW2D,qBAAqB5J,MAAK,SAACrO,GACzC0S,EAAK2H,KAAOra,EACZ,IAAMsa,EAAkBta,EAAKua,eAAe9K,MAAM,KAAK,GACjD+K,EAAkBxa,EAAKua,eAAe9K,MAAM,KAAK,GACjDgL,EAAiBza,EAAK0a,iBAAiBjL,MAAM,KAAK,GAClDkL,EAAiB3a,EAAK0a,iBAAiBjL,MAAM,KAAK,GAExDiD,EAAKtH,UAAY,CACf/L,GAAIW,EAAKuV,GACT5V,KAAMK,EAAKyV,KACXmF,MAAO5a,EAAK6a,MACZhC,MAAO7Y,EAAK8a,MACZC,QAAS/a,EAAKgb,QACdjD,YAAa/X,EAAKib,mBAClBC,cAAe,KACfnC,mBAAoB/Y,EAAKmb,qBACzBnC,OAAQhZ,EAAKob,MACb3E,QAAS,CAAEjB,MAAOxV,EAAKqb,WAAYxZ,MAAO7B,EAAKsb,UAC/CC,WAAY,GAAFpY,OAAKnD,EAAKwb,eAAc,OAAArY,OAAMmX,EAAQ7K,MAAM,KAAK,GAAE,KAAAtM,OAC3DmX,EAAQ7K,MAAM,KAAK,GACrB,KAAAtM,OAAImX,EAAQ7K,MAAM,KAAK,GAAE,KAAAtM,OAAIqX,EAAQ/K,MAAM,KAAK,IAChDgM,UAAW,GAAFtY,OAAKnD,EAAK0b,iBAAgB,OAAAvY,OAAMsX,EAAOhL,MAAM,KAAK,GAAE,KAAAtM,OAC3DsX,EAAOhL,MAAM,KAAK,GACpB,KAAAtM,OAAIsX,EAAOhL,MAAM,KAAK,GAAE,KAAAtM,OAAIwX,EAAOlL,MAAM,KAAK,UAKpD,CAAA7M,IAAA,WAAAf,MACA,WAAQ,IAAAsR,EAAA,KACN9M,KAAK4T,QAAS,EACd5T,KAAKiO,WAAWiE,gBAAgBlS,KAAK+E,WAAWuQ,SAAQ,WACtDxI,EAAK8G,QAAS,OAEjB,CAAArX,IAAA,iBAAAf,MAMD,SAAe+Z,GACb,OAAOA,EAAQ/Z,UAhHS,CAASga,SAAhB3C,GAAO4C,eAAA,CA7B3BC,gBAAU,CACTpc,KAAM,cACNqc,WAAY,CACVC,iBACAxc,aACAyc,YACAjN,aACAkN,kBACAC,kBACAC,YACAC,YACArW,cACAsW,aACAC,kBACAhc,eACAic,oBACAC,mBACAC,aACAC,aACAC,mBACAC,wBACAC,2BACAC,2BACAC,8BAEFpT,WAAY,CACVqT,mBAGiBhE,cCtRuZ,M,yBCQxatD,GAAY,gBACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,GAAAA,G,QCnBX,GAAS,WAAa,IAAI7L,EAAI1D,KAAS2D,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,sBAAsB,CAACxI,IAAI,kBAAkBhB,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAAShJ,GAC5M,IAAIoJ,EAAepJ,EAAIoJ,aACvB,MAAO,CAACZ,EAAG,SAAS,CAAChJ,YAAY,MAAMoG,GAAG,CAAC,OAAS,SAASyD,GAAgC,OAAxBA,EAAOC,iBAAwBF,EAAaf,EAAIkB,aAAa,CAACf,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,OAAO,CAAC+J,EAAG,sBAAsB,CAAC/J,MAAM,CAAC,KAAO,cAAc,MAAQ,YAAYO,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAASQ,GAAmB,MAAO,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,MAAQ,cAAc,YAAY,qBAAqB,CAAC+J,EAAG,gBAAgB,CAAChJ,YAAY,oBAAoBhB,MAAM,CAC/b,aAEE,GADA6J,EAAI5I,eAAeY,mBAAmBmJ,KAEvC,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,mBAAmB,YAAc,cAAc,MAAQ4J,EAAI5I,eAAeY,mBAAmBmJ,GAAmB,KAAOnB,EAAIoT,qBAAqB,SAAW,GAAG,KAAO,GAAG,SAAWpT,EAAIoB,UAAUf,MAAM,CAACvI,MAAOkI,EAAoB,iBAAEM,SAAS,SAAUC,GAAMP,EAAIqT,iBAAiB9S,GAAKE,WAAW,sBAAsBN,EAAG,uBAAuB,CAAC/J,MAAM,CAAC,UAAU,KAAK,CAAC+J,EAAG,eAAe,CAAChJ,YAAY,iBAAiBf,MAAM,CAAC,KAAO4J,EAAIsT,uBAAuB/V,GAAG,CAAC,MAAQ,SAASyD,GAAQ,OAAOhB,EAAIuT,yBAAyB,IAAI,GAAGpT,EAAG,0BAA0B,CAACH,EAAIY,GAAG,IAAIZ,EAAIuB,GAAGJ,EAAkBK,OAAO,IAAI,QAAQ,OAAO,MAAK,MAAS,IAAI,GAAGrB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,sBAAsB,CAAC/J,MAAM,CAAC,KAAO,aAAa,MAAQ,YAAYO,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAASQ,GAAmB,MAAO,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,YAAY,WAAW,MAAQ,eAAe,CAAC+J,EAAG,gBAAgB,CAAChJ,YAAY,oBAAoBhB,MAAM,CACp/B,aAEE,GADA6J,EAAI5I,eAAeY,mBAAmBmJ,KAEvC,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,WAAW,KAAO4J,EAAIwT,qBAAqB,YAAc,aAAa,MAAQxT,EAAI5I,eAAeY,mBAAmBmJ,GAAmB,KAAO,GAAG,SAAWnB,EAAIoB,UAAUf,MAAM,CAACvI,MAAOkI,EAAoB,iBAAEM,SAAS,SAAUC,GAAMP,EAAIyT,iBAAiBlT,GAAKE,WAAW,sBAAsBN,EAAG,uBAAuB,CAAC/J,MAAM,CAAC,UAAU,KAAK,CAAC+J,EAAG,eAAe,CAAChJ,YAAY,iBAAiBf,MAAM,CAAC,KAAO4J,EAAI0T,uBAAuBnW,GAAG,CAAC,MAAQ,SAASyD,GAAQ,OAAOhB,EAAI2T,yBAAyB,IAAI,GAAGxT,EAAG,0BAA0B,CAACH,EAAIY,GAAG,IAAIZ,EAAIuB,GAAGJ,EAAkBK,OAAO,IAAI,QAAQ,OAAO,MAAK,MAAS,GAAGrB,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,KAAK,GAAK,IAAI,GAAK,MAAM,CAAC+J,EAAG,sBAAsB,CAAC/J,MAAM,CAAC,KAAO,eAAe,MAAQ,wBAAwBO,YAAYqJ,EAAIU,GAAG,CAAC,CAAC7H,IAAI,UAAU8H,GAAG,SAASQ,GAAmB,MAAO,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,YAAY,oBAAoB,MAAQ,0BAA0B,CAAC+J,EAAG,gBAAgB,CAAChJ,YAAY,oBAAoBhB,MAAM,CAC/+B,aAEE,GADA6J,EAAI5I,eAAeY,mBAAmBmJ,KAEvC,CAAChB,EAAG,eAAe,CAAC/J,MAAM,CAAC,GAAK,oBAAoB,KAAO4J,EAAI4T,wBAAwB,YAAc,wBAAwB,MAAQ5T,EAAI5I,eAAeY,mBAAmBmJ,GAAmB,SAAWnB,EAAIoB,UAAUf,MAAM,CAACvI,MAAOkI,EAAkB,eAAEM,SAAS,SAAUC,GAAMP,EAAI6T,eAAetT,GAAKE,WAAW,oBAAoBN,EAAG,uBAAuB,CAAC/J,MAAM,CAAC,UAAU,KAAK,CAAC+J,EAAG,eAAe,CAAChJ,YAAY,iBAAiBf,MAAM,CAAC,KAAO4J,EAAI8T,0BAA0BvW,GAAG,CAAC,MAAQ,SAASyD,GAAQ,OAAOhB,EAAI+T,4BAA4B,IAAI,GAAG5T,EAAG,0BAA0B,CAACH,EAAIY,GAAG,IAAIZ,EAAIuB,GAAGJ,EAAkBK,OAAO,IAAI,QAAQ,OAAO,MAAK,MAAS,GAAGrB,EAAG,QAAQ,CAAC/J,MAAM,CAAC,KAAO,OAAO,CAAC+J,EAAG,YAAY,CAACL,WAAW,CAAC,CAAClK,KAAK,SAASyM,QAAQ,eAAevK,MAAM,4BAA8B2I,WAAW,8BAA8B6B,UAAU,CAAC,KAAM,KAAQnL,YAAY,YAAYf,MAAM,CAAC,QAAU,UAAU,KAAO,SAAS,QAAU4J,EAAIoB,WAAW,CAACpB,EAAIY,GAAG,eAAe,IAAI,IAAI,WAAW,IAC9+B,GAAkB,G,uCC0LDoT,GAAsB,SAAA5E,GAAA,SAAA4E,IAAA,IAAAvX,EAAA4S,eAAA,KAAA2E,GAAA,QAAA1E,EAAA/X,UAAAC,OAAA+X,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAlY,UAAAkY,GAUR,OAVQhT,EAAAiT,eAAA,KAAAsE,EAAA,GAAA5a,OAAAmW,IACzC5W,eAAA8D,EAAA,mBAC2B,IAAE9D,eAAA8D,EAAA,mBACF,IAAE9D,eAAA8D,EAAA,iBACJ,IAAE9D,eAAA8D,EAAA,uBACI,YAAU9D,eAAA8D,EAAA,uBACV,YAAU9D,eAAA8D,EAAA,0BACP,YAAU9D,eAAA8D,EAAA,UACnC,GAAK9D,eAAA8D,EAAA,iBAEGrF,mBAAgBqF,EAAA,OAAAsT,eAAAiE,EAAA5E,GAAAY,eAAAgE,EAAA,EAAAnb,IAAA,WAAAoX,IAGjC,WACE,OAAO3T,KAAK4T,SACb,CAAArX,IAAA,wBAAAoX,IAED,WACE,MAAqC,aAA9B3T,KAAK8W,qBAAsC,UAAY,eAC/D,CAAAva,IAAA,wBAAAoX,IAED,WACE,MAAqC,aAA9B3T,KAAKkX,qBAAsC,UAAY,eAC/D,CAAA3a,IAAA,2BAAAoX,IAED,WACE,MAAwC,aAAjC3T,KAAKsX,wBACR,UACA,eACL,CAAA/a,IAAA,oBAAAoX,IAED,WACE,MAA6B,IAAzB3T,KAAKmX,kBAAiD,IAAvBnX,KAAKuX,eAA6B,KAE9DvX,KAAKmX,mBAAqBnX,KAAKuX,iBAGxC,CAAAhb,IAAA,oBAAAf,MACA,WACEwE,KAAK8W,qBAC2B,aAA9B9W,KAAK8W,qBAAsC,OAAS,aACvD,CAAAva,IAAA,oBAAAf,MAED,WACEwE,KAAKkX,qBAC2B,aAA9BlX,KAAKkX,qBAAsC,OAAS,aACvD,CAAA3a,IAAA,uBAAAf,MAED,WACEwE,KAAKsX,wBAC8B,aAAjCtX,KAAKsX,wBAAyC,OAAS,aAC1D,CAAA/a,IAAA,WAAAf,MAED,WAAQ,IAAA6Q,EAAA,KACNrM,KAAK4T,QAAS,EACd1D,QACGyH,sBAAsB,CACrBC,MAAO5X,KAAK+W,iBACZc,UAAW7X,KAAKmX,mBAEjBnP,MAAK,SAACgH,GACuB,KAAxBA,EAASrV,KAAKme,QAAyC,KAAxB9I,EAASrV,KAAKme,OAC/CzL,EAAKiD,OAAO,CACVC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,gCACPC,KAAM,YACN/P,QAAS,aAIb0M,EAAKiD,OAAO,CACVC,UAAWC,QACXzW,MAAO,CACL0W,MAAO,8BACPC,KAAM,oBACN/P,QAAS,eAKhB0P,OAAM,WACLhD,EAAKiD,OAAO,CACVC,UAAWC,QACXzW,MAAO,CACL0W,MACE,uFACFC,KAAM,oBACN/P,QAAS,eAId2V,SAAQ,WACPjJ,EAAKuH,QAAS,SA7FqB,CAAS4B,SAA/BkC,GAAsBjC,eAAA,CArB1CC,gBAAU,CACTpc,KAAM,yBACNqc,WAAY,CACVoC,gBACA3e,aACA0c,kBACAC,kBACAC,YACAC,YACAC,aACA8B,oBACApB,6BACAqB,0BACAvB,2BACAC,2BACAf,kBAEFpS,WAAY,CACVqT,mBAGiBa,cCzMia,MCOlb,GAAY,gBACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCwCMQ,GAAW,SAAApF,GAAA,SAAAoF,IAAA,IAAA/X,EAAA4S,eAAA,KAAAmF,GAAA,QAAAlF,EAAA/X,UAAAC,OAAA+X,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAAlY,UAAAkY,GAClB,OADkBhT,EAAAiT,eAAA,KAAA8E,EAAA,GAAApb,OAAAmW,IAAA5W,eAAA8D,EAAA,WACnB,GAACA,EAAA,OAAAsT,eAAAyE,EAAApF,GAAAY,eAAAwE,GADkB,CAAS1C,SAApB0C,GAAWzC,eAAA,CAjB/BC,gBAAU,CACTpc,KAAM,cACNqc,WAAY,CACVlU,YACA0W,aACAjC,aACAtW,cACA0W,aACAR,kBACA1c,aACA4c,YACAC,YACAF,kBACAqC,kBACAC,gCAGiBH,cC1DoZ,MCOra,GAAY,gBACd,GACA1e,EACAgL,GACA,EACA,KACA,KACA,MAIa,gB,6CClBf,2GAASnI,EAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAOpM,IAAIvD,EAAQ,eAAsB,CACvC6B,MAAO,eAAS,QAAmB,GACnCX,IAAK,eAAS,OAAkB,OAChCC,cAAe,eAAS,OAAkB,QACzC,SAGQkc,EAA2B,aAAI/c,OAAO,CAC/CC,KAAM,QACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAChBM,EAAgBnB,EAAMmB,cACtB6C,EAA0B,QAAlB7C,EAA0B,QAA4B,WAAlBA,EAA6B,MAE7EA,EACA,OAAOT,EAAEV,EAAMkB,IAAK,eAAUN,EAAM,CAClCkB,YAAa,cACbhB,MAAOwC,EAAgB,CACrB,oBAAqBtD,EAAM6B,OAC1B,cAAckC,OAAOC,GAAQA,KAC9BnD,O,oCC/BR,kGAKWb,EAAQ,eAAsB,CACvCkB,IAAK,eAAS,OAAkB,QAC/B,SAGQoc,EAA0B,aAAIhd,OAAO,CAC9CC,KAAM,QACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SACpB,OAAOH,EAAEV,EAAMkB,IAAK,eAAUN,EAAM,CAClCkB,YAAa,eACXjB,O,kCCpBR,kCAiBO,IAAI0e,EAAa,SAAoBxR,EAAOyR,GAKjD,OAAOzR,EAAME,KAAI,SAAU+D,EAAGyN,GAC5B,MAAO,CAACA,EAAOzN,MACd0N,KAAK,SAAU1N,EAAG2N,GACnB,OAAO1Y,KAAK+K,EAAE,GAAI2N,EAAE,KAAO3N,EAAE,GAAK2N,EAAE,IACpCC,KAAKJ,IAAYvR,KAAI,SAAU4R,GAC/B,OAAOA,EAAE,Q,oCC3Bb,0EAKIC,EAAY,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAM7R,KAAI,SAAU8R,GACpH,OAAOA,EAAOC,iBAGLC,EAAc,SAAqBF,GAE5C,IAAIG,EAAQ,eAASH,GAAQC,cAAcG,QAAQ,OAAsB,IAAI9P,MAAM,KAC/E+P,EAAUF,EAAMxP,MAAM,EAAG,GAAGwB,KAAK,KACjCmO,EAAUH,EAAM,GACpB,OAAO,eAAcJ,EAAWM,IAAY,eAAcN,EAAWO,K,oCCdvE,W,oCCAA,uKAAS1b,EAAQC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAKZ,EAAQlB,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAOF,EAAgBgC,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmBb,EAAQlB,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAShC,EAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAapM,IAAIvD,EAAQ,eAAsB,eAASqF,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAmB,QAAsB,QAAgB,SAAkB,QAGtMoY,EAA0B,aAAInd,OAAO,CAC9CC,KAAM,OACNuG,OAAQ,CAAC,OAAS,OAClB,OAAkB,OAAe,QACjC6B,OAAQ,CACN2X,QAAS,CACPC,KAAM,eACN1X,SAAS,IAGb7I,MAAOA,EACPkH,MAAO,CACLsZ,qBAAsB,SAA8BrZ,EAAUyC,GACvD,eAAWzC,EAAUyC,IACxB3C,KAAKK,MAAM,OAAkBH,Q,qIClC1BsZ,EAAmB,UACnBC,EAAgB,OAChBC,EAAkB,SAClBC,EAAiB,QACjBC,EAAsB,UACtBC,EAAsB,U,4DCLjC,SAASC,EAAeC,EAAKzb,GAAK,OAAO0b,EAAgBD,IAAQE,EAAsBF,EAAKzb,IAAM4b,EAA4BH,EAAKzb,IAAM6b,IAEzI,SAASA,IAAqB,MAAM,IAAIC,UAAU,6IAElD,SAASF,EAA4BG,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOE,EAAkBF,EAAGC,GAAS,IAAIE,EAAIhe,OAAOie,UAAUC,SAASC,KAAKN,GAAG5Q,MAAM,GAAI,GAAiE,MAAnD,WAAN+Q,GAAkBH,EAAEO,cAAaJ,EAAIH,EAAEO,YAAYthB,MAAgB,QAANkhB,GAAqB,QAANA,EAAoBtH,MAAMoG,KAAKe,GAAc,cAANG,GAAqB,2CAA2ChR,KAAKgR,GAAWD,EAAkBF,EAAGC,QAAzG,GAE7S,SAASC,EAAkBR,EAAKc,IAAkB,MAAPA,GAAeA,EAAMd,EAAI7e,UAAQ2f,EAAMd,EAAI7e,QAAQ,IAAK,IAAIoD,EAAI,EAAGwc,EAAO,IAAI5H,MAAM2H,GAAMvc,EAAIuc,EAAKvc,IAAOwc,EAAKxc,GAAKyb,EAAIzb,GAAM,OAAOwc,EAEhL,SAASb,EAAsBF,EAAKzb,GAAK,GAAsB,qBAAXyc,QAA4BA,OAAOC,YAAYxe,OAAOud,GAAjE,CAAgF,IAAIkB,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWzV,OAAKvK,EAAW,IAAM,IAAK,IAAiC8J,EAA7BmW,EAAKrB,EAAIgB,OAAOC,cAAmBE,GAAMjW,EAAKmW,EAAGxM,QAAQyM,MAAOH,GAAK,EAA6B,GAArBD,EAAKvgB,KAAKuK,EAAGzJ,OAAY8C,GAAK2c,EAAK/f,SAAWoD,EAAG,MAAW,MAAOgd,GAAOH,GAAK,EAAMzV,EAAK4V,EAAO,QAAU,IAAWJ,GAAsB,MAAhBE,EAAG,WAAmBA,EAAG,YAAe,QAAU,GAAID,EAAI,MAAMzV,GAAQ,OAAOuV,GAEle,SAASjB,EAAgBD,GAAO,GAAI7G,MAAMqI,QAAQxB,GAAM,OAAOA,EAE/D,SAASyB,EAAWC,EAAQxI,EAAMyI,GAAqV,OAAzSF,EAA/BG,IAA4CC,QAAQC,UAAiC,SAAoBJ,EAAQxI,EAAMyI,GAAS,IAAI3Q,EAAI,CAAC,MAAOA,EAAErQ,KAAKyD,MAAM4M,EAAGkI,GAAO,IAAI6I,EAAcC,SAASpD,KAAKxa,MAAMsd,EAAQ1Q,GAAQiR,EAAW,IAAIF,EAAsE,OAAnDJ,GAAOO,EAAgBD,EAAUN,EAAMjB,WAAmBuB,GAAsBR,EAAWrd,MAAM,KAAMlD,WAErZ,SAAS0gB,IAA8B,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUK,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3EC,KAAK3B,UAAUC,SAASC,KAAKiB,QAAQC,UAAUO,KAAM,IAAI,iBAAyB,EAAQ,MAAOxD,GAAK,OAAO,GAE1T,SAASqD,EAAgB5B,EAAGgC,GAA+G,OAA1GJ,EAAkBzf,OAAO8f,gBAAkB,SAAyBjC,EAAGgC,GAAsB,OAAjBhC,EAAEkC,UAAYF,EAAUhC,GAAa4B,EAAgB5B,EAAGgC,GAW9J,IC3BH5e,ED2BO+e,EAAa,WACtB,IAAK,IAAIxJ,EAAO/X,UAAUC,OAAQ+X,EAAO,IAAIC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EF,EAAKE,GAAQlY,UAAUkY,GAGzB,OAAOqI,EAAWY,KAAMnJ,IAGf,EAAW,SAAkBwJ,GACtC,GAAI,eAASA,IAAS,OAAQjT,KAAKiT,EAAKtT,QAAS,CAC/C,IAAIuT,EAAkBD,EAAKrT,MAAM,QAAepC,KAAI,SAAUV,GAC5D,OAAO,eAAUA,EAAG,MAElBqW,EAAmB7C,EAAe4C,EAAiB,GACnDE,EAAOD,EAAiB,GACxBE,EAAQF,EAAiB,GACzBG,EAAMH,EAAiB,GAE3B,OAAOH,EAAWI,EAAMC,EAAQ,EAAGC,GAC9B,OAAI,eAAOL,GACTD,EAAWC,EAAKM,cAAeN,EAAKO,WAAYP,EAAKQ,WAGvD,MAGEC,EAAY,SAAmBT,GAGxC,GAFAA,EAAO,EAASA,IAEXA,EACH,OAAO,KAGT,IAAIG,EAAOH,EAAKM,cACZF,EAAQ,IAAI/f,OAAO2f,EAAKO,WAAa,GAAGvT,OAAO,GAC/CqT,EAAM,IAAIhgB,OAAO2f,EAAKQ,WAAWxT,OAAO,GAC5C,MAAO,GAAG3M,OAAO8f,EAAM,KAAK9f,OAAO+f,EAAO,KAAK/f,OAAOggB,IAG7C,EAAgB,SAAuBK,GAGhD,IAAIC,EAAWniB,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAKue,EACnF2D,EAAU,eAAOA,GAASnf,OAAOwJ,EAAA,MACjC,IAAI6V,EAAM,IAAIC,KAAKC,eAAeJ,EAAS,CACzCC,SAAUA,IAEZ,OAAOC,EAAIG,kBAAkB1E,QAGpB2E,EAAsB,SAA6B3E,EAAQvD,GAGpE,IAAImI,EAAM,IAAIJ,KAAKC,eAAezE,EAAQvD,GAC1C,OAAOmI,EAAIC,QAGFC,EAAa,SAAoBC,EAAOC,GAGjD,OAAOZ,EAAUW,KAAWX,EAAUY,IAG7BC,EAAmB,SAA0BtB,GAGtD,OAFAA,EAAOD,EAAWC,GAClBA,EAAKuB,QAAQ,GACNvB,GAEEwB,EAAkB,SAAyBxB,GAIpD,OAHAA,EAAOD,EAAWC,GAClBA,EAAKyB,SAASzB,EAAKO,WAAa,GAChCP,EAAKuB,QAAQ,GACNvB,GAEE0B,EAAW,SAAkB1B,EAAM2B,GAC5C3B,EAAOD,EAAWC,GAClB,IAAII,EAAQJ,EAAKO,WAOjB,OANAP,EAAK4B,YAAY5B,EAAKM,cAAgBqB,GAElC3B,EAAKO,aAAeH,GACtBJ,EAAKuB,QAAQ,GAGRvB,GAEE6B,EAAc,SAAqB7B,GAC5CA,EAAOD,EAAWC,GAClB,IAAII,EAAQJ,EAAKO,WAOjB,OANAP,EAAKyB,SAASrB,EAAQ,GAElBJ,EAAKO,aAAeH,GACtBJ,EAAKuB,QAAQ,GAGRvB,GAEE8B,EAAgB,SAAuB9B,GAChDA,EAAOD,EAAWC,GAClB,IAAII,EAAQJ,EAAKO,WAOjB,OANAP,EAAKyB,SAASrB,EAAQ,GAElBJ,EAAKO,cAAgBH,EAAQ,GAAK,IACpCJ,EAAKuB,QAAQ,GAGRvB,GAEE+B,EAAa,SAAoB/B,GAC1C,OAAO0B,EAAS1B,GAAO,IAEdgC,EAAe,SAAsBhC,GAC9C,OAAO0B,EAAS1B,EAAM,IAEbiC,EAAe,SAAsBjC,GAC9C,OAAO0B,EAAS1B,GAAO,KAEdkC,EAAiB,SAAwBlC,GAClD,OAAO0B,EAAS1B,EAAM,KAIb,EAAgB,SAAuBA,GAChD,IAAImC,EAAM3jB,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,KAC1E4jB,EAAM5jB,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,KAM9E,OAJAwhB,EAAO,EAASA,GAChBmC,EAAM,EAASA,IAAQnC,EACvBoC,EAAM,EAASA,IAAQpC,EAEhBA,EAAOA,EAAOmC,EAAMA,EAAMnC,EAAOoC,EAAMA,EAAMpC,EAAO,M,0LC1J7D,SAAS/e,GAAQC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAASO,GAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAKZ,GAAQlB,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAOF,GAAgBgC,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmBb,GAAQlB,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAShC,GAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EA4B3M,IAAIqC,GAAkB,eAAe,QAAS,CAC5CC,KAAM,SAEJE,GAAaH,GAAgBI,MAC7BC,GAAaL,GAAgB5F,MAC7BkG,GAAkBN,GAAgBO,KAClCC,GAAmBR,GAAgBS,MAG5B,GAAQ,eAAsB,eAAShB,GAAcA,GAAcA,GAAc,GAAIpF,EAAA,MAAUgG,IAAa,GAAI,CACzH8f,aAAc,eAAS,QAEvBC,MAAO,eAAS,QAAmB,GACnCC,eAAgB,eAAS,QAEzBC,kBAAmB,eAAS,OAAkB,CAC5CrC,KAAM/C,EACNgD,MAAOpD,EACPqD,IAAKjD,EACLqF,QAASzF,IAOX0F,WAAY,eAAS,QAErBC,UAAW,eAAS,QACpBtd,SAAU,eAAS,QAAmB,GAKtCud,OAAQ,eAAS,QAAmB,GAEpCC,WAAY,eAAS,QAAmB,GAIxCC,YAAa,eAAS,QAEtBC,cAAe,eAAS,OAAkB,YAC1CC,kBAAmB,eAAS,OAAkB,iBAC9CC,UAAW,eAAS,OAAkB,8CACtCC,SAAU,eAAS,OAAkB,uBACrCC,gBAAiB,eAAS,OAAkB,eAC5CC,eAAgB,eAAS,OAAkB,cAC3CC,cAAe,eAAS,OAAkB,aAC1CC,oBAAqB,eAAS,OAAkB,oBAChDC,gBAAiB,eAAS,OAAkB,mBAC5CC,eAAgB,eAAS,OAAkB,kBAC3CC,cAAe,eAAS,OAAkB,iBAC1CC,cAAe,eAAS,OAAkB,iBAC1CC,WAAY,eAAS,OAAkB,SAGvCtH,OAAQ,eAAS,QACjB+F,IAAK,eAAS,QACdD,IAAK,eAAS,QAEdyB,iBAAkB,eAAS,OAAkB,aAE7CC,iBAAkB,eAAS,QAAmB,GAC9CC,SAAU,eAAS,QAAmB,GACtCC,SAAU,eAAS,QAAmB,GACtCC,gBAAiB,eAAS,QAE1BC,gBAAiB,eAAS,OAAkB,WAE5CC,cAAe,eAAS,QAAmB,GAG3CC,aAAc,eAAS,OAAyB,GAEhDC,aAAc,eAAS,QAEvBC,YAAa,eAAS,QAAmB,GAMzCC,oBAAqB,eAAS,OAAkBpH,GAAgB,SAAUne,GACxE,OAAO,OAAAsL,EAAA,MAAc,CAAC2S,EAAeE,EAAgBD,GAAkBle,MAGzEwlB,MAAO,eAAS,OAAkB,YAC/B,QAGMC,GAAY,aAAI5nB,OAAO,CAChCC,KAAM,OAENuG,OAAQ,CAAC/F,GAAA,KAAYd,EAAA,KAAS8F,GAAY,SAC1C/F,MAAO,GACPY,KAAM,WACJ,IAAIunB,EAAWhE,EAAUld,KAAKf,MAAqB,GACnD,MAAO,CAELkiB,YAAaD,EAEbE,UAAWF,GAAYhE,EAAU,EAAeld,KAAKuf,aAAevf,KAAKqhB,YAAarhB,KAAK4e,IAAK5e,KAAK6e,KAErGyC,cAAc,EAGdC,QAAQ,IAGZxf,SAAU,CACRyf,QAAS,WACP,OAAOxhB,KAAKuC,UAEdkf,SAAU,WACR,OAAOzhB,KAAKuC,OAAO,uBAErBmf,MAAO,WACL,OAAO1hB,KAAKuC,OAAO,mBAErBof,OAAQ,WACN,OAAO3hB,KAAKuC,OAAO,oBAErBqf,cAAe,WACb,OAAO5hB,KAAKuC,OAAO,4BAErBsf,WAAY,WACV,OAAO7hB,KAAKuC,OAAO,yBAErBuf,SAAU,WACR,OAAO9hB,KAAKohB,UAAYphB,KAAKuC,OAAO,SAASzF,OAAOkD,KAAKohB,UAAW,MAAQ,MAG9EW,aAAc,WAEZ,OAAO,EAAS/hB,KAAKmhB,cAEvBa,WAAY,WAEV,OAAO,EAAShiB,KAAKohB,YAEvBa,YAAa,WACX,OAAO,EAASjiB,KAAK4e,MAEvBsD,YAAa,WACX,OAAO,EAASliB,KAAK6e,MAEvBsD,mBAAoB,WAElB,OAAO,OAAAC,GAAA,MAAQ,eAAUpiB,KAAK4gB,aAAc,GAAI,GAAK,GAEvDyB,eAAgB,WAEd,OAAO,EAAc,eAAOriB,KAAK8Y,QAAQ9a,OAAOwJ,EAAA,MAAWgS,IAE7D8I,uBAAwB,WACtB,IAAItD,EAAiBhf,KAAKgf,eAC1B,OAAO,eAAgBA,GAAkBA,EAAiB,WACxD,OAAO,IAIXuD,mBAAoB,WAClB,IAAIpD,EAAanf,KAAKmf,WACtB,OAAO,eAAgBA,GAAcA,EAAa,WAChD,MAAO,KAGXqD,eAAgB,WAKd,IAAInF,EAAM,IAAIC,KAAKC,eAAevd,KAAKqiB,eAAgB,CACrDjF,SAAU5D,IAER4D,EAAWC,EAAIG,kBAAkBJ,SACjCtE,EAASuE,EAAIG,kBAAkB1E,OAUnC,OAPIsE,IAAa5D,IAIfV,EAASA,EAAOI,QAAQ,UAAW,IAAIpc,OAAO,kBAGzCgc,GAET2J,aAAc,WACZ,OAAOziB,KAAKgiB,WAAWjF,eAEzB2F,cAAe,WACb,OAAO1iB,KAAKgiB,WAAWhF,YAEzB2F,iBAAkB,WAIhB,OAAOnG,EAAWxc,KAAKyiB,aAAcziB,KAAK0iB,cAAe,EAAG,KAE9DE,oBAAqB,WAEnB,IAAInG,EAAOD,EAAWxc,KAAK2iB,kBAE3B,OADAlG,EAAKyB,SAASzB,EAAKO,WAAa,EAAG,GAC5BP,EAAKQ,WAEd4F,gBAAiB,WACf,MAAO,OAAO/lB,OAAOkD,KAAK0gB,iBAAmB,YAE/CoC,qBAAsB,WACpB,MAAO,eAAehmB,OAAOkD,KAAK6gB,cAAgB7gB,KAAK0gB,iBAAmB,YAE5EqC,yBAA0B,WACxB,MAAO,eAAejmB,OAAOkD,KAAKqgB,kBAAoB,YAExD9a,MAAO,WAEL,IAAIyd,EAAM,gBAAShjB,KAAKof,WAAWrG,cAEnC,MAAY,QAARiK,GAGe,QAARA,GAKJ,gBAAYhjB,KAAKqiB,iBAE1BY,QAAS,WACP,IAAI9B,EAAcnhB,KAAKmhB,YACnBC,EAAYphB,KAAKohB,UACjBW,EAAe,EAASZ,GACxBa,EAAa,EAASZ,GAC1B,MAAO,CAELD,YAAaA,EACbY,aAAcA,EACdmB,kBAAmBnB,EAAe/hB,KAAKmjB,iBAAiBpB,GAAgB/hB,KAAK+f,oBAE7EqB,UAAWA,EACXY,WAAYA,EACZoB,gBAAiBpB,EAAahiB,KAAKmjB,iBAAiBnB,GAAc,GAElElgB,SAAU9B,KAAKqjB,aAAarB,GAE5BlJ,OAAQ9Y,KAAKqiB,eACbG,eAAgBxiB,KAAKwiB,eACrBc,IAAKtjB,KAAKuF,QAIdge,eAAgB,WAKd,IAAI3E,EAAM5e,KAAKiiB,YACXpD,EAAM7e,KAAKkiB,YACf,OAAO,SAAUzF,GAGf,OADAA,EAAO,EAASA,GACTmC,GAAOnC,EAAOmC,GAAOC,GAAOpC,EAAOoC,IAG9CwE,aAAc,WACZ,IAAIljB,EAAQH,KAORwjB,EAAUxjB,KAAKujB,eAEnB,OAAO,SAAU9G,GAEfA,EAAO,EAASA,GAChB,IAAIgH,EAAMvG,EAAUT,GACpB,SAAU+G,EAAQ/G,KAAStc,EAAMmiB,uBAAuBmB,EAAKhH,MAIjE0G,iBAAkB,WAEhB,OAAO1F,EAAoBzd,KAAKwiB,eAAgBpkB,GAAcA,GAAc,CAI1Ewe,KAAM/C,EACNgD,MAAOjD,EACPkD,IAAKlD,GACJ5Z,KAAKif,mBAAoB,GAAI,CAG9ByE,UAAMvoB,EACNwoB,YAAQxoB,EACRyoB,YAAQzoB,EAERiiB,SAAU5D,MAGdqK,gBAAiB,WAEf,OAAOpG,EAAoBzd,KAAKwiB,eAAgB,CAC9C5F,KAAM/C,EACNgD,MAAOpD,EACP2D,SAAU5D,KAGdsK,kBAAmB,WAEjB,OAAOrG,EAAoBzd,KAAKwiB,eAAgB,CAC9CtD,QAASzF,EACT2D,SAAU5D,KAGduK,uBAAwB,WAGtB,OAAOtG,EAAoBzd,KAAKwiB,eAAgB,CAC9CtD,QAASlf,KAAK+gB,qBAAuBpH,EACrCyD,SAAU5D,KAGdwK,UAAW,WAIT,IAAIC,EAAK,IAAI3G,KAAK4G,aAAa,CAAClkB,KAAKqiB,gBAAiB,CACpDhV,MAAO,UACP8W,qBAAsB,EACtBC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAU,aAGZ,OAAO,SAAU7H,GACf,OAAOwH,EAAGtG,OAAOlB,EAAKQ,aAI1BsH,mBAAoB,WAClB,IAAI3F,EAAM5e,KAAKiiB,YACf,OAAOjiB,KAAK8B,UAAY8c,GAAOX,EAAgBS,EAAa1e,KAAKgiB,aAAepD,GAElF4F,iBAAkB,WAChB,IAAI5F,EAAM5e,KAAKiiB,YACf,OAAOjiB,KAAK8B,UAAY8c,GAAOX,EAAgBO,EAAWxe,KAAKgiB,aAAepD,GAEhF6F,kBAAmB,WACjB,IAAI7F,EAAM5e,KAAKiiB,YACf,OAAOjiB,KAAK8B,UAAY8c,GAAOX,EAAgBK,EAAYte,KAAKgiB,aAAepD,GAEjF8F,kBAAmB,WAEjB,OAAO1kB,KAAK8B,UAEd6iB,kBAAmB,WACjB,IAAI9F,EAAM7e,KAAKkiB,YACf,OAAOliB,KAAK8B,UAAY+c,GAAOd,EAAiBQ,EAAcve,KAAKgiB,aAAenD,GAEpF+F,iBAAkB,WAChB,IAAI/F,EAAM7e,KAAKkiB,YACf,OAAOliB,KAAK8B,UAAY+c,GAAOd,EAAiBU,EAAaze,KAAKgiB,aAAenD,GAEnFgG,mBAAoB,WAClB,IAAIhG,EAAM7e,KAAKkiB,YACf,OAAOliB,KAAK8B,UAAY+c,GAAOd,EAAiBY,EAAe3e,KAAKgiB,aAAenD,GAGrFzB,SAAU,WAYR,IAXA,IAAI0H,EAAS,GACTC,EAAW/kB,KAAK2iB,iBAChBF,EAAesC,EAAShI,cACxB2F,EAAgBqC,EAAS/H,WACzBgI,EAAchlB,KAAK4iB,oBACnBqC,EAAaF,EAASG,SAEtBC,GAAcnlB,KAAKmiB,mBAAqB8C,EAAa,EAAI,GAAKjlB,KAAKmiB,mBAEnEiD,EAAa,EAAID,EAAaF,EAEzBI,EAAO,EAAGA,EAAO,GAAKD,EAAaJ,EAAaK,IAAQ,CAE/DP,EAAOO,GAAQ,GAEf,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1BF,IACA,IAAI3I,EAAOD,EAAWiG,EAAcC,EAAe0C,GAC/CvI,EAAQJ,EAAKO,WACbuI,EAASrI,EAAUT,GACnB+I,EAAcxlB,KAAKqjB,aAAa5G,GAEhCgJ,EAAWzlB,KAAKuiB,mBAAmBgD,EAAQ,EAASA,IACxDE,EAAW,eAASA,IAAa,eAAQA,GAEzC,CACE5rB,MAAO4rB,GACL,eAAcA,GAAYrnB,GAAc,CAC1CvE,MAAO,IACN4rB,GAEH,CACE5rB,MAAO,IAETirB,EAAOO,GAAM3qB,KAAK,CAChB+oB,IAAK8B,EAELzI,IAAK9c,KAAKgkB,UAAUvH,GACpBtN,MAAOnP,KAAKmjB,iBAAiB1G,GAE7BiJ,YAAa7I,IAAU6F,EACvBiD,WAAYH,EAEZI,KAAMH,KAKZ,OAAOX,GAETe,iBAAkB,WAChB,IAAIxZ,EAASrM,KAEb,OAAOA,KAAKod,SAAS,GAAGpW,KAAI,SAAU8e,GACpC,MAAO,CACLC,KAAM1Z,EAAO0X,uBAAuB,EAAS+B,EAAErC,MAC/CtU,MAAO9C,EAAOyX,kBAAkB,EAASgC,EAAErC,YAKnDxjB,OAAQxC,EAAS,GAAIpB,GAAgBoB,EAAQwB,IAAiB,SAAUiB,EAAUyC,GAChF,IAAIue,EAAWhE,EAAUhd,IAAa,GAClC8lB,EAAM9I,EAAUva,IAAa,GAE5Bib,EAAWsD,EAAU8E,KACxBhmB,KAAKohB,UAAYF,GAAYlhB,KAAKohB,UAClCphB,KAAKmhB,YAAcD,MAEnB7kB,GAAgBoB,EAAQ,eAAe,SAAqBwoB,EAAQC,GAIlED,IAAWC,GACblmB,KAAKK,MAAMlB,GAAkBa,KAAK8gB,YAAc,EAASmF,IAAW,KAAOA,GAAU,OAErF5pB,GAAgBoB,EAAQ,WAAW,SAAiByC,EAAUyC,GAC3D,gBAAWzC,EAAUyC,IACxB3C,KAAKK,MAAM,OAAoBH,MAE/B7D,GAAgBoB,EAAQ,UAAU,SAAgByC,GAEpDF,KAAKohB,UAAYphB,KAAKmhB,aAAejE,EAAUld,KAAKf,KAAoBe,KAAKmmB,cAAcnmB,KAAKuf,aAAevf,KAAKqhB,aAEpHrhB,KAAKomB,SAASlmB,MACZzC,GACJgD,QAAS,WACP,IAAIqM,EAAS9M,KAEbA,KAAKQ,WAAU,WACbsM,EAAOzM,MAAM,OAAoByM,EAAOmW,aAG5ClgB,QAAS,WACP/C,KAAKomB,SAAQ,IAIfC,UAAW,WACTrmB,KAAKomB,SAAQ,IAIfE,YAAa,WACXtmB,KAAKomB,SAAQ,IAEfzlB,cAAe,WACbX,KAAKomB,SAAQ,IAEfxlB,QAAS,CAEPwM,MAAO,WACApN,KAAK8B,UACR,eAAa9B,KAAK0L,MAAM6a,OAG5BC,KAAM,WACCxmB,KAAK8B,UACR,eAAY9B,KAAK0L,MAAM6a,OAI3BH,QAAS,SAAiBnlB,GACxB,IAAI+L,EAAShN,KAETiB,EACFjB,KAAKQ,WAAU,WACb,gBAAU,WACRwM,EAAOuU,QAAS,QAIpBvhB,KAAKuhB,QAAS,GAGlBF,SAAU,WACR,OAAO,EAAS7E,MAElB2J,cAAe,SAAuB1J,GAGpC,OAAO,EAAeA,EAAMzc,KAAKiiB,YAAajiB,KAAKkiB,cAErDuE,aAAc,SAAsBhK,GAClC,IAAIiK,EAAS1mB,KAIbA,KAAKQ,WAAU,WACbkmB,EAAOrmB,MAAM,OAAqB6c,EAAUT,IAAS,GAAI,EAASA,IAAS,UAI/EkK,iBAAkB,SAA0BvnB,GAE1CY,KAAKshB,cAAgBthB,KAAK8B,UAA2B,UAAf1C,EAAMR,MAE9CgoB,iBAAkB,SAA0BxnB,GAI1C,IAAIY,KAAKugB,SAAT,CAKA,IAAIsG,EAASznB,EAAMynB,OACfC,EAAU1nB,EAAM0nB,QAChBC,EAAU3nB,EAAM2nB,QAEpB,GAAK,OAAAjgB,EAAA,MAAc,CAAC,OAAa,OAAe,OAAU,OAAW,OAAW,OAAS,OAAY,QAAYigB,GAAjH,CAKA,eAAU3nB,GACV,IAAI4iB,EAAaxF,EAAWxc,KAAKgiB,YAC7BgF,EAAYxK,EAAWxc,KAAKgiB,YAC5BlF,EAAMkF,EAAW/E,UACjBgK,EAAmBjnB,KAAKmmB,cAAcnmB,KAAKqhB,YAC3C9b,EAAQvF,KAAKuF,MAEbwhB,IAAY,QAEd/E,GAAc6E,EAASC,EAAUpI,EAAeF,EAAaF,GAAa0D,GAE1EgF,EAAYxK,EAAWwF,GACvBgF,EAAUhJ,QAAQ,IACT+I,IAAY,QAErB/E,GAAc6E,EAASC,EAAUnI,EAAiBF,EAAeF,GAAeyD,GAEhFgF,EAAYxK,EAAWwF,GACvBgF,EAAU9I,SAAS8I,EAAUhK,WAAa,GAC1CgK,EAAUhJ,QAAQ,IACT+I,IAAY,QAErB/E,EAAWhE,QAAQlB,GAAOvX,EAAQ,GAAK,IACvCyc,EAAahiB,KAAKmmB,cAAcnE,GAChCgF,EAAYhF,GACH+E,IAAY,QAErB/E,EAAWhE,QAAQlB,GAAOvX,GAAS,EAAI,IACvCyc,EAAahiB,KAAKmmB,cAAcnE,GAChCgF,EAAYhF,GACH+E,IAAY,QAErB/E,EAAWhE,QAAQlB,EAAM,GACzBkF,EAAahiB,KAAKmmB,cAAcnE,GAChCgF,EAAYhF,GACH+E,IAAY,QAErB/E,EAAWhE,QAAQlB,EAAM,GACzBkF,EAAahiB,KAAKmmB,cAAcnE,GAChCgF,EAAYhF,GACH+E,IAAY,QAErB/E,EAAaiF,EACbD,EAAYhF,GACH+E,IAAY,SAErB/E,EAAa,EAAShiB,KAAK+hB,eAAiBkF,EAC5CD,EAAYhF,GAGThiB,KAAKujB,eAAeyD,IAAepJ,EAAWoE,EAAYhiB,KAAKgiB,cAGlEhiB,KAAKohB,UAAYlE,EAAU8E,IAI7BhiB,KAAKoN,WAEP8Z,cAAe,SAAuB9nB,GAEpC,IAAI2nB,EAAU3nB,EAAM2nB,QAChB/E,EAAahiB,KAAKgiB,WAElB+E,IAAY,QAAcA,IAAY,SACxC,eAAU3nB,GAELY,KAAK8B,UAAa9B,KAAKwgB,UAAaxgB,KAAKqjB,aAAarB,KACzDhiB,KAAKmhB,YAAcjE,EAAU8E,GAC7BhiB,KAAKymB,aAAazE,IAIpBhiB,KAAKoN,UAGT+Z,WAAY,SAAoBrK,GAE9B,IAAIiF,EAAe/hB,KAAK+hB,aACpBC,EAAahiB,KAAKgiB,WAClBoF,EAAc,EAAStK,EAAI2G,KAE1BzjB,KAAK8B,UAAagb,EAAI6I,YAAe3lB,KAAKqjB,aAAa+D,KACrDpnB,KAAKwgB,WAGRxgB,KAAKmhB,YAAcjE,EAAUU,EAAWwJ,EAAarF,GAAgBA,EAAeqF,GACpFpnB,KAAKymB,aAAaW,IAGpBpnB,KAAKohB,UAAYlE,EAAUU,EAAWwJ,EAAapF,GAAcA,EAAaxF,EAAW4K,IAEzFpnB,KAAKoN,UAGTia,eAAgB,WACdrnB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAczH,EAAa1e,KAAKgiB,eAElEsF,aAAc,WACZtnB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAc3H,EAAWxe,KAAKgiB,eAEhEuF,cAAe,WACbvnB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAc7H,EAAYte,KAAKgiB,eAEjEwF,iBAAkB,WAEhBxnB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAcnmB,KAAKqhB,cAErDoG,cAAe,WACbznB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAc5H,EAAcve,KAAKgiB,eAEnE0F,aAAc,WACZ1nB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAc1H,EAAaze,KAAKgiB,eAElE2F,eAAgB,WACd3nB,KAAKohB,UAAYlE,EAAUld,KAAKmmB,cAAcxH,EAAe3e,KAAKgiB,eAEpE4F,cAAe,WACR5nB,KAAK8B,WACR9B,KAAKohB,UAAYphB,KAAKmhB,aAAejE,EAAUld,KAAKqhB,YACpDrhB,KAAKoN,WAIX5T,OAAQ,SAAgBC,GACtB,IAAIouB,EAAS7nB,KAGb,GAAIA,KAAKqf,OACP,OAAO5lB,IAGT,IAAI+nB,EAAUxhB,KAAKwhB,QACfC,EAAWzhB,KAAKyhB,SAChBC,EAAQ1hB,KAAK0hB,MACbC,EAAS3hB,KAAK2hB,OACdC,EAAgB5hB,KAAK4hB,cACrBC,EAAa7hB,KAAK6hB,WAClBC,EAAW9hB,KAAK8hB,SAChBhgB,EAAW9B,KAAK8B,SAChBye,EAAWvgB,KAAKugB,SAChBgB,EAASvhB,KAAKuhB,OACdhc,EAAQvF,KAAKuF,MACb6b,EAAYphB,KAAKohB,UACjBD,EAAcnhB,KAAKmhB,YACnB5e,EAASvC,KAAKuC,OACdulB,GAAiB9nB,KAAK2gB,cACtBoH,EAAW7K,EAAUld,KAAKqhB,YAC1B2G,GAAkBhoB,KAAKsgB,iBAEvB2H,EAAUxuB,EAAE,SAAU,CACxBoB,YAAa,2CACbhB,MAAO,CACL,aAAciI,EACd0e,SAAUxgB,KAAKwgB,UAAY1e,GAE7BhI,MAAO,CACLd,GAAIwoB,EACJ7T,IAAKgU,EACLvgB,KAAM,SACN8mB,SAAUpmB,EAAW,KAAO,KAG5B,gBAAiB,gBAASqf,GAG1B,YAAaI,EAAS,SAAW,MACjC,cAAeA,EAAS,OAAS,MAEnCtgB,GAAI,CAGFC,MAAOlB,KAAK4nB,cACZxa,MAAOpN,KAAK4nB,gBAEb5nB,KAAK+hB,aAAe,CAEvBtoB,EAAE,MAAO,CACPoB,YAAa,WACZ,KAAKiC,OAAO,gBAASkD,KAAKmgB,eAAgB,OAAQ1mB,EAAE,MAAOuG,KAAKmjB,iBAAiBnjB,KAAK+hB,gBAAkB/hB,KAAK+f,qBAAuB,KAEvIkI,EAAUxuB,EAAE,SAAU,CACpBoB,YAAa,oBACbhB,MAAO,CACL,UAAWmG,KAAKsf,YAElBxlB,MAAO,CACL2V,MAAOzP,KAAK+hB,cAAe/hB,KAAKmoB,mBAA4B,OAE7D,CAACF,IAEJ,IAAIG,EAAW,CACb7iB,MAAOA,GAEL8iB,EAAW,CACbC,OAAQ,IAGNC,EAAenqB,GAAcA,GAAc,GAAIiqB,GAAW,GAAI,CAChEG,MAAOjjB,IAGLkjB,EAAerqB,GAAcA,GAAc,GAAIiqB,GAAW,GAAI,CAChEG,OAAQjjB,IAGNmjB,EAAkB1oB,KAAKmB,cAAc,OAA0BinB,IAAa3uB,EAAE,OAAqB,CACrGV,MAAOwvB,IAELI,EAAgB3oB,KAAKmB,cAAc,OAAwBinB,IAAa3uB,EAAE,OAAwB,CACpGV,MAAOwvB,IAELK,EAAiB5oB,KAAKmB,cAAc,OAAyBinB,IAAa3uB,EAAE,OAAkB,CAChGV,MAAOwvB,IAELM,EAAiB7oB,KAAKmB,cAAc,OAA0BinB,IAAa3uB,EAAE,OAAiB,CAChGV,MAAOsvB,IAELS,EAAiB9oB,KAAKmB,cAAc,OAA0BinB,IAAa3uB,EAAE,OAAkB,CACjGV,MAAO0vB,IAELM,EAAgB/oB,KAAKmB,cAAc,OAAyBinB,IAAa3uB,EAAE,OAAwB,CACrGV,MAAO0vB,IAELO,EAAkBhpB,KAAKmB,cAAc,OAA2BinB,IAAa3uB,EAAE,OAAqB,CACtGV,MAAO0vB,IAGLQ,EAAa,SAAoBC,EAAS/Z,EAAOga,EAASC,EAAaC,GACzE,OAAO5vB,EAAE,SAAU,CACjBoB,YAAa,gCACbhB,MAAO,CAACguB,EAAO9E,yBAA0B,CACvCjhB,SAAUsnB,IAEZtvB,MAAO,CACL2V,MAAON,GAAS,KAChBvQ,KAAM,SACNspB,SAAU3H,EAAW,KAAO,KAC5B,aAAcpR,GAAS,KACvB,gBAAiBia,EAAc,OAAS,KACxC,oBAAqBC,GAAY,MAEnCpoB,GAAImoB,EAAc,GAAK,CACrBloB,MAAOioB,IAER,CAAC1vB,EAAE,MAAO,CACXK,MAAO,CACL,cAAe,SAEhB,CAACovB,OAIFI,EAAO7vB,EAAE,MAAO,CAClBoB,YAAa,wBACbf,MAAO,CACLd,GAAI0oB,EACJtgB,KAAM,QACN8mB,SAAU3H,EAAW,KAAO,KAC5B,cAAeze,EAAW,OAAS,KACnC,aAAc9B,KAAK2f,UAAY,KAC/B,gBAAiBgC,IAElB,CAACmG,EAAgBruB,IAAMwvB,EAAWP,EAAiB1oB,KAAKggB,gBAAiBhgB,KAAKqnB,eAAgBrnB,KAAKukB,mBAAoB,qBAAsB0E,EAAWN,EAAe3oB,KAAKkgB,cAAelgB,KAAKsnB,aAActnB,KAAKwkB,iBAAkB,gBAAiByE,EAAWL,EAAgB5oB,KAAKigB,eAAgBjgB,KAAKunB,cAAevnB,KAAKykB,kBAAmB,YAAawE,EAAWJ,EAAgB7oB,KAAKyf,kBAAmBzf,KAAKwnB,iBAAkBxnB,KAAK0kB,kBAAmB,QAASuE,EAAWH,EAAgB9oB,KAAK6f,eAAgB7f,KAAKynB,cAAeznB,KAAK2kB,kBAAmB,UAAWsE,EAAWF,EAAe/oB,KAAK8f,cAAe9f,KAAK0nB,aAAc1nB,KAAK4kB,iBAAkB,cAAekD,EAAgBruB,IAAMwvB,EAAWD,EAAiBhpB,KAAK4f,gBAAiB5f,KAAK2nB,eAAgB3nB,KAAK6kB,mBAAoB,qBAE7wB0E,EAAe9vB,EAAE,SAAU,CAC7BoB,YAAa,uDACbhB,MAAO,CACL,aAAciI,GAEhBhI,MAAO,CACLd,GAAI4oB,EACJ,YAAaL,EAAS,SAAW,KACjC,cAAeA,EAAS,OAAS,MAEnChlB,IAAK,gBACJyD,KAAK6jB,gBAAgB7jB,KAAK2iB,mBAEzB6G,EAAgB/vB,EAAE,MAAO,CAC3BoB,YAAa,wDACbf,MAAO,CACL,cAAe,SAEhBkG,KAAK6lB,iBAAiB7e,KAAI,SAAU8e,EAAG2D,GACxC,OAAOhwB,EAAE,QAAS,CAChBoB,YAAa,oBACbhB,MAAO,CACL,aAAciI,GAEhBhI,MAAO,CACL2V,MAAOqW,EAAE3W,QAAU2W,EAAEC,KAAO,KAAOD,EAAE3W,MACrC,aAAc2W,EAAE3W,OAElB5S,IAAKktB,GACJ3D,EAAEC,UAGH2D,EAAY1pB,KAAKod,SAASpW,KAAI,SAAUqe,GAC1C,IAAIsE,EAAStE,EAAKre,KAAI,SAAU8V,EAAK8M,GACnC,IAAIpsB,EAEAqsB,EAAa/M,EAAI2G,MAAQtC,EACzB2I,EAAWhN,EAAI2G,MAAQrC,EACvB2I,EAAUjN,EAAI2G,MAAQsE,EACtBiC,EAASznB,EAAO,SAASzF,OAAOggB,EAAI2G,IAAK,MAEzCwG,EAAOxwB,EAAE,OAAQ,CACnBoB,YAAa,0CAEbhB,OAAQ2D,EAAS,CAEf4P,MAAO0c,GAAYjC,EAAOvG,aAE1Bxf,SAAUgb,EAAI6I,YAAc7jB,EAC5BI,OAAQ2nB,GACPxtB,GAAgBmB,EAAQqqB,EAAOhF,gBAAiBgH,GAAaxtB,GAAgBmB,EAAQqqB,EAAO/E,qBAAsBiH,GAAW/B,IAAmB6B,GAAc/M,EAAI4I,aAAcrpB,GAAgBmB,EAAQ,sBAAuBusB,GAAW/B,KAAoB6B,IAAeC,GAAWztB,GAAgBmB,EAAQ,cAAeusB,GAAW/B,KAAoB6B,GAAcC,GAAWztB,GAAgBmB,EAAQ,cAAesf,EAAI4I,cAAgBmE,GAAaxtB,GAAgBmB,EAAQ,cAAeusB,GAAW/B,KAAoB6B,IAAeC,GAAYhN,EAAI4I,aAAcrpB,GAAgBmB,EAAQ,oBAAqBqsB,GAAc/M,EAAI4I,eAAiB5I,EAAI6I,YAAanoB,GACtpByD,GAAI,CACFC,MAAO,WACL,OAAO2mB,EAAOV,WAAWrK,MAG5BA,EAAIA,KACP,OAAOrjB,EAAE,MACT,CACEoB,YAAa,UACbhB,MAAOijB,EAAI6I,WAAa,WAAa7I,EAAI8I,KAAK/rB,OAAS,GACvDC,MAAO,CACLd,GAAIgxB,EACJ5oB,KAAM,SACN,YAAa0b,EAAI2G,IAGjB,cAAe3G,EAAI4I,YAAc,KAAO,OACxC,gBAAiB5I,EAAI6I,YAAc7jB,EAAW,OAAS,KACvD,aAAc,CAACgb,EAAI3N,MAAO0a,EAAa,IAAI/sB,OAAO+qB,EAAO1H,cAAe,KAAO,KAAM4J,EAAU,IAAIjtB,OAAO+qB,EAAOzH,WAAY,KAAO,MAAMpiB,OAAOwJ,EAAA,MAAUyD,KAAK,KAIhK,gBAAiB4e,EAAa,OAAS,KACvC,eAAgBA,EAAa,OAAS,MAExCttB,IAAKqtB,GACJ,CAACK,OAKN,OAAOxwB,EAAE,MAAO,CACdoB,YAAa,iBACb0B,IAAK8oB,EAAK,GAAG5B,KACZkG,MAELD,EAAYjwB,EAAE,MAAO,CAEnBoB,YAAa,uBACbwS,MAAOvL,EAAW,CAChB8L,cAAe,QACb,IAEH8b,GACH,IAAIQ,EAAYzwB,EAAE,SAAU,CAC1BoB,YAAa,wEACbf,MAAO,CACLd,GAAI6oB,IAEL,CAACpoB,EAAE,MAAO,CACXoB,YAAa,SACZmF,KAAK0f,aACJyK,EAAQ1wB,EAAE,MAAO,CACnBoB,YAAa,kDACbf,MAAO,CACLd,GAAI2oB,EACJvgB,KAAM,cACN8mB,SAAU3H,EAAW,KAAOze,EAAW,KAAO,IAC9C,aAAcsf,EAAU3X,MAAM,GAAI,GAElC,uBAAwBzJ,KAAKwf,eAAiB,KAC9C,kBAAmBoC,EACnB,mBAAoBC,EAIpB,gBAAiB/f,EAAW,OAAS,KACrC,wBAAyBggB,GAE3B7gB,GAAI,CACFmpB,QAASpqB,KAAKknB,cACd9Z,MAAOpN,KAAK2mB,iBACZH,KAAMxmB,KAAK2mB,kBAEbtrB,IAAK,QACJ,CAACkuB,EAAcC,EAAeE,EAAWQ,IAExCG,EAAQrqB,KAAKmB,gBACjBkpB,EAAQA,EAAQ5wB,EAAE,SAAU,CAC1BoB,YAAa,qBACZwvB,GAAS5wB,IACZ,IAAI6wB,EAAU7wB,EAAE,MAAO,CACrBoB,YAAa,mBACbwS,MAAOrN,KAAK+e,MAAQ,GAAK,CACvBiC,MAAOhhB,KAAKghB,OAEdlnB,MAAO,CACLd,GAAIyoB,EACJuB,IAAKzd,EAAQ,MAAQ,MACrBglB,KAAMvqB,KAAKqiB,gBAAkB,KAC7BjhB,KAAM,QACN,gBAAiBU,EAAW,OAAS,KAErC,gBAAiB9B,KAAK8e,cAAgB,KAEtC,uBAAwB9e,KAAKygB,iBAAmB,KAChD,mBAAoB,CAEpBzgB,KAAK+J,QAAQ,oBAAqByX,EAASK,GAAY7jB,OAAOwJ,EAAA,MAAUyD,KAAK,MAE/EhK,GAAI,CACFmpB,QAASpqB,KAAK4mB,mBAEf,CAACqB,EAASqB,EAAMa,EAAOE,IAE1B,OAAO5wB,EAAE,MAAO,CACdoB,YAAa,aACbhB,MAAO,CACL,UAAWmG,KAAK+e,QAEjB,CAACuL,O,iEC3+BJE,GAAO,uBACPC,GAAa,aACbC,GAAa,aAEbC,GAAiB,SAAwBxB,GAC3C,IAAIyB,EAAW,SAAkBxrB,GAC/B+pB,EAAQ/pB,EAAMR,OAAS6rB,GAAYrrB,IAIrC,OADAwrB,EAASvmB,GAAK8kB,EACPyB,GAGL,GAAkB,SAAyB3pB,EAAI4pB,EAAID,GACrD,eAAW3pB,EAAI4pB,EAAIJ,GAAYG,EAAU,QACzC,eAAW3pB,EAAI4pB,EAAIH,GAAYE,EAAU,SAIvC,GAAY,SAAmBC,EAAInxB,GACrC,IAAIoxB,EAAapxB,EAAK8B,MAClB2tB,OAAyB,IAAf2B,EAAwB,KAAOA,EAE7C,GAAI,QAAY,CACd,IAAIF,EAAWC,EAAGL,IACdO,EAAc,eAAWH,GACzBI,IAAmBD,GAAeH,EAASvmB,KAAO8kB,GAElD4B,GAAeC,IACjB,IAAgB,EAAOH,EAAID,UACpBC,EAAGL,KAGR,eAAWrB,IAAY6B,IACzBH,EAAGL,IAAQG,GAAexB,GAC1B,IAAgB,EAAM0B,EAAIA,EAAGL,QAMxBS,GAAU,CACnBtS,KAAM,GACNuS,iBAAkB,GAClBC,OAAQ,SAAgBN,GACtB,GAAUA,EAAI,CACZrvB,MAAO,SCpDb,SAAS,GAAQmC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAK,GAAQ9B,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAO,GAAgB8B,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmB,GAAQ/B,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAS,GAAgB/B,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAuBpM,IC3BH,GD2BO,GAAQ,eAAS,GAAc,GAAc,GAAc,GAAc,GAAc,GAAc,GAAItD,EAAA,MAAU,SAAgB,SAAiB,eAAKoyB,GAAA,KAAe,CAAC,cAAe,eAAK,QAAkB,CAAC,eAAgB,GAAI,CAE7OC,WAAY,eAAS,QAAmB,GAExCC,cAAe,eAAS,OAAkB,aAG1CC,eAAgB,eAAS,QAEzBpL,cAAe,eAAS,QACxBoK,KAAM,eAAS,QAEfiB,UAAW,eAAS,QAEpB7iB,YAAa,eAAS,QACtB6X,SAAU,eAAS,QAAmB,GAEtC8C,IAAK,eAAS,OAAmB,MACjC9nB,MAAO,eAAS,OAAkB,OAIzBiwB,GAAqC,aAAIpyB,OAAO,CACzDC,KAAM,OACNkK,WAAY,CACV,UAAWynB,IAEbprB,OAAQ,CAAC7G,EAAA,KAAS,QAAe,QAAgBoyB,GAAA,KAAe,SAChEryB,MAAO,GACPY,KAAM,WACJ,MAAO,CACL+xB,WAAW,EACXziB,UAAU,IAGdlH,SAAU,CACR4pB,SAAU,WACR,OAAO3rB,KAAKuC,UAEdqpB,QAAS,WACP,OAAO5rB,KAAKuC,OAAO,YAErBspB,OAAQ,WACN,OAAO7rB,KAAKuC,OAAO,aAErBupB,UAAW,WACT,OAAO9rB,KAAKuC,OAAO,YAErBwpB,YAAa,WACX,OAAoB,IAAb/rB,KAAKsjB,IAAe,OAAqB,IAAbtjB,KAAKsjB,IAAgB,MAAQ,OAGpE1iB,QAAS,CACPwM,MAAO,WACApN,KAAK8B,UACR,eAAa9B,KAAK0L,MAAMsgB,SAG5BxF,KAAM,WACCxmB,KAAK8B,UACR,eAAY9B,KAAK0L,MAAMsgB,SAG3BC,SAAU,SAAkB7sB,GAC1BY,KAAKiJ,SAA0B,UAAf7J,EAAMR,MAExBstB,YAAa,SAAqBC,GAChCnsB,KAAK0rB,UAAYS,IAGrB3yB,OAAQ,SAAgBC,GACtB,IAAI+D,EAEAmuB,EAAW3rB,KAAK2rB,SAChBC,EAAU5rB,KAAK4rB,QACfC,EAAS7rB,KAAK6rB,OACdC,EAAY9rB,KAAK8rB,UACjBhqB,EAAW9B,KAAK8B,SAChB0e,EAAWxgB,KAAKwgB,SAChB3kB,EAAWmE,KAAKnE,SAChBvC,EAAO0G,KAAK1G,KACZ+L,EAAQrF,KAAKqF,MACb+mB,EAAUpsB,KAAKosB,QACflf,EAAOlN,KAAKkN,KACZwe,EAAY1rB,KAAK0rB,UACjBziB,EAAWjJ,KAAKiJ,SAChBkX,EAAgBngB,KAAKmgB,cACrBmL,EAAgBtrB,KAAKsrB,cACrBD,EAAarrB,KAAKqrB,WAClB7vB,EAAQ,gBAASwE,KAAKxE,QAAU,GAChC6wB,GAAoB,IAAVhnB,GAAmBxJ,IAAaL,EAC1C8wB,EAAW,CACbZ,UAAWA,EACXziB,SAAUA,EACV5D,MAAOA,EACPknB,OAAQH,GAENI,EAAU/yB,EAAE,SAAU,CACxBoB,YAAa,MACbhB,OAAQ2D,EAAS,GAAI,GAAgBA,EAAQ,OAAOV,OAAOwuB,GAAgBD,GAAa,GAAgB7tB,EAAQ,OAAOV,OAAOoQ,GAAOA,GAAO,GAAgB1P,EAAQ,UAAW6tB,GAAa,GAAgB7tB,EAAQ,kBAAmB6tB,GAAa,GAAgB7tB,EAAQ,2BAA4B6tB,GAAa7tB,GACrT1D,MAAO,CACLd,GAAI2yB,EACJ/sB,KAAM,SACNkD,SAAUA,EACV,gBAAiB,SACjB,gBAAiBsqB,EAAU,OAAS,QACpC,eAAgBC,EAAU,OAAS,KACnC,gBAAiBxwB,EAAW,OAAS,MAEvC2H,WAAY,CAAC,CACXlK,KAAM,UACNkC,MAAOwE,KAAKksB,cAEdjrB,GAAI,CACFwrB,UAAWzsB,KAAK0sB,YAChBxrB,MAAOlB,KAAKgsB,OACZ5B,QAASpqB,KAAKgsB,OAEd,SAAUhsB,KAAKisB,SACf,QAASjsB,KAAKisB,UAEhB5wB,IAAK,UACJ,CAAC2E,KAAKmD,kBAAkB,QAA4BnD,KAAKmB,cAAc,OAA0BmrB,GAEpG7yB,EAAE,OAAkB,CAClBV,MAAO,CACL4zB,MAAO,UAIPC,EAAUnzB,IAEVH,IAASwI,IACX8qB,EAAUnzB,EAAE,QAAS,CACnBK,MAAO,CACL8E,KAAM,SACNtF,KAAMA,GAAQ,KACdwQ,KAAM9J,KAAK8J,MAAQ,KACnBtO,MAAOA,MAMb,IAAIqxB,EAAQpzB,EAAE,MAAO,CACnBoB,YAAa,gBACbhB,MAAO,CAACmG,KAAKwrB,UAAW,CACtBlsB,KAAM8sB,EACN,sBAAuBpsB,KAAKpF,QAE9Bd,MAAO,CACLd,GAAI6yB,EACJzqB,KAAM,SACN8mB,SAAU,KACV,aAAc,QACd,kBAAmB0D,GAErB3qB,GAAI,CACFmpB,QAASpqB,KAAK8sB,WAGhBzxB,IAAK,QACJ,CAAC2E,KAAKmB,cAAc,OAAmB,CACxCorB,OAAQH,MAGN1e,EAASjU,EAAE,QAAS,CACtBI,MAAOwxB,EAAa,UAClB,CAAC,eAAgB,aAAc,YAAa,iBAC9C,CACE,cAAe7vB,GACdwE,KAAKmN,WAAYnN,KAAK+sB,eACzBjzB,MAAO,CACLd,GAAI4yB,EACJje,IAAKge,EACL,eAAgBU,EAAU,OAAS,KACnC,gBAAiBxwB,EAAW,OAAS,MAEvC2H,WAAY,CAAC,CACXlK,KAAM,UACNkC,MAAOwE,KAAKksB,cAEdjrB,GAAI,CAGF,SAEA,SAAe7B,GACb,eAAUA,EAAO,CACfuF,gBAAgB,OAIrB,CAACnJ,EAAQwE,KAAKurB,gBAAkB/vB,EAAQwE,KAAK2I,aAAe,GAC/DnN,GAAS2kB,EAAgB1mB,EAAE,MAAO,CAChCoB,YAAa,WACZslB,GAAiB,KAEpB,OAAO1mB,EAAE,MAAO,CACdoB,YAAa,oCACbhB,MAAO,CAACmG,KAAKgtB,eAAgBhtB,KAAKitB,cAAe,CAAC,CAChD,YAAa5B,EACb,gBAAiBA,EACjB,UAAWA,EACX,UAAWA,EACX,uBAAwBA,EACxBje,MAAOnE,IAAaoiB,EACpB/rB,KAAM8sB,EACN,YAAsB,IAAV/mB,EACZ,cAAwB,IAAVA,GACbgmB,EAAa,KAAOrrB,KAAK+sB,gBAC5BjzB,MAAO,CACLd,GAAI8yB,EACJ1qB,KAAMiqB,EAAa,KAAO,QAC1Bd,KAAMvqB,KAAKuqB,MAAQ,KACnBvH,IAAKhjB,KAAK+rB,YACV,gBAAiBjqB,EACjB,gBAAiB0e,IAAa1e,EAC9B,kBAAmB8pB,EACnB,gBAA0B,IAAVvmB,GAAmBxJ,IAAaL,EAAQ,OAAS,KACjE,gBAAiBK,EAAW,OAAS,OAEtC,CAAC2wB,EAASI,EAASC,EAAOnf,OCvPjC,SAAS,GAAQ/P,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAAS,GAAcQ,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAK,GAAQ9B,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAO,GAAgB8B,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmB,GAAQ/B,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAS,GAAgB/B,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EAmB3M,IAAI,GAAkB,eAAe,QAAS,CAC5CsC,KAAM,SAEJ,GAAa,GAAgBG,MAC7B,GAAa,GAAgBhG,MAC7B,GAAkB,GAAgBmG,KAClC,GAAmB,GAAgBE,MAGnC8tB,GAAgB,eAAK,GAAgB,CAAC,QAAS,SAAU,KAAM,WAAY,kBAAmB,QAAS,UACvGC,GAA2B,eAAK,GAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7F,GAAQ,eAAsB,eAAS,GAAc,GAAc,GAAc,GAAc,GAAc,GAAIn0B,EAAA,MAAU,IAAak0B,IAAgBC,IAA2B,GAAI,CAEhMC,cAAe,eAAS,OAAkB,SAC1CC,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,qBAE/CC,KAAM,eAAS,QAAmB,GAClCC,iBAAkB,eAAS,OAAkB,SAC7CC,iBAAkB,eAAS,OAAkB,SAC7CC,iBAAkB,eAAS,OAAkB,gBAC7CC,gBAAiB,eAAS,QAAmB,GAC7CC,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,kBAC/CC,WAAY,eAAS,QACrBC,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,sBAC5C,QAGMvX,GAA+B,aAAIpd,OAAO,CACnDC,KAAM,OACNuG,OAAQ,CAAC7G,EAAA,KAAS,IAClBD,MAAO,GACPY,KAAM,WACJ,MAAO,CAELs0B,SAAU/Q,EAAUld,KAAK,MAAqB,GAE9CkuB,WAAW,EAEXC,YAAa,KACb5oB,OAAO,EACPgmB,eAAgB,GAChBnK,UAAW,KAGfrf,SAAU,CACRqsB,WAAY,WAGV,OAAOpuB,KAAKohB,UAAU3X,MAAM,GAAI,IAElC4kB,aAAc,WACZ,OAAQruB,KAAKmuB,aAAe,IAAIjV,QAAQ,UAAW,KAAO,MAE5DoV,mBAAoB,WAClB,OAAOpR,EAAU,EAAcld,KAAK8tB,cAAgB,KAGxD7tB,OAAQ,GAAS,GAAI,GAAgB,GAAQ,IAAiB,SAAUC,GACtEF,KAAKiuB,SAAW/Q,EAAUhd,IAAa,MACrC,GAAgB,GAAQ,YAAY,SAAkBA,GAEpDF,KAAKkuB,WACPluB,KAAKK,MAAM,GAAkBL,KAAK8gB,YAAc,EAAS5gB,IAAa,KAAOA,GAAY,OAEzF,GAAgB,GAAQ,cAAc,SAAoBA,EAAUyC,GAItE,GAAIzC,IAAayC,GAAYA,EAC3B,IACE3C,KAAK0L,MAAM6iB,QAAQC,eACnB,MAAO5iB,QAET,IACJhL,QAAS,CAEPwM,MAAO,WACApN,KAAK8B,UACR,eAAa9B,KAAK0L,MAAM6iB,UAG5B/H,KAAM,WACCxmB,KAAK8B,UACR,eAAY9B,KAAK0L,MAAM6iB,UAI3BE,YAAa,SAAqBhL,GAChC,IAAItjB,EAAQH,KAEZA,KAAKiuB,SAAWxK,EAEXzjB,KAAK2tB,iBACR3tB,KAAKQ,WAAU,WACbL,EAAMuL,MAAM6iB,QAAQG,MAAK,OAI/BC,WAAY,SAAoBlL,GAC9B,IAAIpX,EAASrM,KAEbA,KAAKQ,WAAU,WACb6L,EAAOoiB,YAAYhL,OAGvBmL,QAAS,SAAiBnL,GACpBzjB,KAAKiuB,WAAaxK,IACpBzjB,KAAKiuB,SAAWxK,IAGpBoL,UAAW,SAAmB3gB,GAC5B,IAAIkT,EAAYlT,EAAIkT,UAChB7b,EAAQ2I,EAAI3I,MACZuT,EAAS5K,EAAI4K,OACbqI,EAAcjT,EAAIiT,YAClB+B,EAAoBhV,EAAIgV,kBAC5BljB,KAAKuF,MAAQA,EACbvF,KAAKmuB,YAAcrV,EACnB9Y,KAAKurB,eAAiBrI,EACtBljB,KAAKiuB,SAAW9M,EAChBnhB,KAAKohB,UAAYA,EAEjBphB,KAAKK,MAAM,OAAoB6N,IAEjC4gB,cAAe,WAEb9uB,KAAKyuB,YAAYvR,EAAU,EAAcV,IAAcxc,KAAK4e,IAAK5e,KAAK6e,QAExEkQ,cAAe,WACb/uB,KAAKyuB,YAAYzuB,KAAKsuB,qBAExBU,cAAe,WACbhvB,KAAK0L,MAAM6iB,QAAQG,MAAK,IAG1BO,OAAQ,WACNjvB,KAAKkuB,WAAY,GAEnBgB,QAAS,WACP,IAAIpiB,EAAS9M,KAEbA,KAAKQ,WAAU,WACb,eAAasM,EAAOpB,MAAM0R,UAE1BtQ,EAAOzM,MAAM,YAGjB8uB,SAAU,WACRnvB,KAAKkuB,WAAY,EACjBluB,KAAKK,MAAM,SAGb+uB,gBAAiB,SAAyB11B,GACxC,IAAIgyB,EAAYhyB,EAAKgyB,UACjBziB,EAAWvP,EAAKuP,SACpB,OAAOjJ,KAAK4D,eAAe8nB,GAAaziB,EAAW,OAAoB,OAAe,CACpFnP,MAAO,CACL,cAAe,YAKvBN,OAAQ,SAAgBC,GACtB,IAAIw0B,EAAWjuB,KAAKiuB,SAChBnsB,EAAW9B,KAAK8B,SAChB0e,EAAWxgB,KAAKwgB,SAChB+M,EAAOvtB,KAAKutB,KACZ8B,EAASrvB,KAAKqvB,OACd50B,EAAeuF,KAAKvF,aACpBkO,EAAc,eAAkB3I,KAAK2I,aAAe3I,KAAK+f,oBAAsB/f,KAAK2I,YAEpF2mB,EAAU,GAEd,GAAItvB,KAAK+tB,YAAa,CACpB,IAAI5e,EAAQnP,KAAK0tB,iBACjB4B,EAAQ50B,KAAKjB,EAAE,OAAS,CACtBV,MAAO,CACL+I,SAAUA,GAAY0e,EACtBtT,KAAM,KACNvN,QAASK,KAAKguB,oBAEhBl0B,MAAO,CACL,aAAcqV,GAAS,MAEzBlO,GAAI,CACFC,MAAOlB,KAAK8uB,gBAEb3f,IAGL,GAAInP,KAAK4tB,YAAa,CACpB,IAAI2B,EAASvvB,KAAKytB,iBAClB6B,EAAQ50B,KAAKjB,EAAE,OAAS,CACtBV,MAAO,CACL+I,SAAUA,GAAY0e,EACtBtT,KAAM,KACNvN,QAASK,KAAK6tB,oBAEhB/zB,MAAO,CACL,aAAcy1B,GAAU,MAE1BtuB,GAAI,CACFC,MAAOlB,KAAK+uB,gBAEbQ,IAGL,GAAIvvB,KAAKqtB,YAAa,CACpB,IAAImC,EAAUxvB,KAAKwtB,iBACnB8B,EAAQ50B,KAAKjB,EAAE,OAAS,CACtBV,MAAO,CACL+I,SAAUA,EACVoL,KAAM,KACNvN,QAASK,KAAKstB,oBAEhBxzB,MAAO,CACL,aAAc01B,GAAW,MAE3BvuB,GAAI,CACFC,MAAOlB,KAAKgvB,gBAEbQ,IAGDF,EAAQp0B,OAAS,IACnBo0B,EAAU,CAAC71B,EAAE,MAAO,CAClBoB,YAAa,wCACbhB,MAAO,CACL,0BAA2By1B,EAAQp0B,OAAS,EAC5C,sBAAuBo0B,EAAQp0B,OAAS,IAEzCo0B,KAGL,IAAIG,EAAYh2B,EAAEwnB,GAAW,CAC3BpmB,YAAa,6BACb9B,MAAO,GAAc,GAAc,GAAI,eAAWm0B,GAAemC,IAAU,GAAI,CAC7EhQ,QAASrf,KAAKkuB,UACd1yB,MAAOyyB,EACPnN,aAAa,EACbE,MAAOhhB,KAAKotB,gBAEdnsB,GAAI,CACFigB,SAAUlhB,KAAK2uB,WACfhjB,MAAO3L,KAAK4uB,QACZ3L,QAASjjB,KAAK6uB,WAEhBx0B,YAAa,eAAKI,EAAc,CAAC,kBAAmB,gBAAiB,iBAAkB,iBAAkB,iBAAkB,gBAAiB,oBAC5I8B,IAAK,WACLlB,IAAK,YACJi0B,GACH,OAAO71B,EAAEgyB,GAAuB,CAC9B5wB,YAAa,oBACb9B,MAAO,GAAc,GAAc,GAAI,eAAWo0B,GAA0BkC,IAAU,GAAI,CACxF9D,eAAgB0C,EAAWjuB,KAAKurB,eAAiB,GACjDvyB,GAAIgH,KAAKuC,SACTgoB,KAAMvqB,KAAKquB,aACX7C,UAAW,CAAC,CACV,UAAW+B,EACX,aAAcA,GACbvtB,KAAKwrB,WACR7iB,YAAaA,EACb2a,IAAKtjB,KAAKuF,MACV/J,MAAOyyB,IAEThtB,GAAI,CACF3B,KAAMU,KAAKivB,OACXS,MAAO1vB,KAAKkvB,QACZ7P,OAAQrf,KAAKmvB,UAEf90B,YAAa,GAAgB,GAAI,OAA0BI,EAAa,SAA6BuF,KAAKovB,iBAC1G/zB,IAAK,WACJ,CAACo0B,Q,kCC5SR,kGAKW12B,EAAQ,eAAsB,CACvC42B,QAAS,eAAS,OAAkB,MACnC,QAGQxZ,EAAyB,aAAI9c,OAAO,CAC7CC,KAAM,OACNC,YAAY,EACZR,MAAOA,EACPS,OAAQ,SAAgBC,EAAGC,GACzB,IAAIX,EAAQW,EAAKX,MACbY,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SACpB,OAAOH,EAAEV,EAAM42B,QAAS,eAAUh2B,EAAM,CACtCkB,YAAa,cACXjB,O,kCCpBR,sCAAI6D,EAAJ,wTAEA,SAASC,EAAQC,EAAQC,GAAkB,IAAIC,EAAOrB,OAAOqB,KAAKF,GAAS,GAAInB,OAAOsB,sBAAuB,CAAE,IAAIC,EAAUvB,OAAOsB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOzB,OAAO0B,yBAAyBP,EAAQM,GAAKvB,eAAgBmB,EAAKnD,KAAKyD,MAAMN,EAAME,GAAY,OAAOF,EAE9U,SAASO,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIrD,UAAUC,OAAQoD,IAAK,CAAE,IAAIC,EAAyB,MAAhBtD,UAAUqD,GAAarD,UAAUqD,GAAK,GAAQA,EAAI,EAAKZ,EAAQlB,OAAO+B,IAAS,GAAMC,SAAQ,SAAUjC,GAAOF,EAAgBgC,EAAQ9B,EAAKgC,EAAOhC,OAAsBC,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBL,EAAQ7B,OAAOiC,0BAA0BF,IAAmBb,EAAQlB,OAAO+B,IAASC,SAAQ,SAAUjC,GAAOC,OAAOC,eAAe4B,EAAQ9B,EAAKC,OAAO0B,yBAAyBK,EAAQhC,OAAe,OAAO8B,EAE7gB,SAAShC,EAAgBC,EAAKC,EAAKf,GAAiK,OAApJe,KAAOD,EAAOE,OAAOC,eAAeH,EAAKC,EAAK,CAAEf,MAAOA,EAAOkB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBN,EAAIC,GAAOf,EAAgBc,EA4B3M,IAAIqC,EAAkB,eAAe,QAAS,CAC5CC,KAAM,SAEJE,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgB5F,MAC7BkG,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBS,MAInCwwB,EAAc,SAAqBC,GACrC,OAAQA,EAAI/tB,UAKVguB,EAA2B,aAAIz2B,OAAO,CACxCC,KAAM,QACNoI,OAAQ,CACNC,OAAQ,CACNC,QAEA,WACE,MAAO,MAIb7I,MAAO,CACLg3B,SAAU,eAAS,QACnB/2B,GAAI,eAAS,QACbunB,SAAU,eAAS,QAAmB,GACtCyP,SAAU,eAAS,QACnBC,QAAS,eAAS,QAElBJ,IAAK,iBACL3rB,SAAU,eAAS,SAErBtD,QAAS,CACPwM,MAAO,WACL,eAAapN,KAAK0L,MAAMwkB,OAE1BC,UAAW,SAAmB/wB,GAE5B,IAAIY,KAAK6vB,IAAI/tB,SAAb,CAIA,IAAIlD,EAAOQ,EAAMR,KACbmoB,EAAU3nB,EAAM2nB,QAChBqJ,EAAWhxB,EAAMgxB,SAER,UAATxxB,GAGgB,YAATA,GAAsBmoB,IAAY,QAF3C,eAAU3nB,GACVY,KAAKK,MAAM,OAAkBjB,IAOX,YAATR,GAAuBoB,KAAKugB,YAEqB,IAAtD,CAAC,OAAS,OAAW,QAAW8P,QAAQtJ,IAC1C,eAAU3nB,GAENgxB,GAAYrJ,IAAY,OAC1B/mB,KAAKK,MAAM,OAAkBjB,GAE7BY,KAAKK,MAAM,OAAiBjB,KAEmC,IAAxD,CAAC,OAAW,OAAY,QAAUixB,QAAQtJ,KACnD,eAAU3nB,GAENgxB,GAAYrJ,IAAY,OAC1B/mB,KAAKK,MAAM,OAAiBjB,GAE5BY,KAAKK,MAAM,OAAiBjB,QAMtC5F,OAAQ,SAAgBC,GACtB,IAAIT,EAAKgH,KAAKhH,GACVkL,EAAWlE,KAAKkE,SAChB+rB,EAAUjwB,KAAKiwB,QACfD,EAAWhwB,KAAKgwB,SAChBD,EAAW/vB,KAAK+vB,SAChBI,EAAYnwB,KAAKmwB,UACjBG,EAAYtwB,KAAK6vB,IACjBpgB,EAAQ6gB,EAAU7gB,MAClB5N,EAAcyuB,EAAUzuB,YACxBC,EAAWwuB,EAAUxuB,SACrByuB,EAAiBD,EAAUC,eAC3BC,EAAiBF,EAAUE,eAC3BC,EAAsBH,EAAUG,oBAChCC,EAAQj3B,EAAE,OAAO,CACnBoB,YAAa,WACbhB,MAAO,CAAC,CACNqI,OAAQL,IAAgBC,EACxBA,SAAUA,GACT0uB,EACH3uB,EAAc7B,KAAK2B,OAAOgvB,mBAAqB,MAC/C53B,MAAO,CACL+I,SAAUA,GAEZhI,MAAOsE,EAAcA,EAAc,GAAIqyB,GAAsB,GAAI,CAC/Dz3B,GAAIA,EACJoI,KAAM,MAEN8mB,SAAUhkB,EACV,gBAAiBrC,IAAgBC,EAAW,OAAS,QACrD,eAAgBmuB,EAChB,gBAAiBD,EACjB,gBAAiBD,IAEnB9uB,GAAI,CACFC,MAAOivB,EACP/F,QAAS+F,GAEX90B,IAAK,QACJ,CAAC2E,KAAK6vB,IAAI1uB,cAAc,UAAoBsO,IAC/C,OAAOhW,EAAE,KAAM,CACboB,YAAa,WACbhB,MAAO,CAAC02B,GACRz2B,MAAO,CACLsH,KAAM,iBAEP,CAACsvB,OAIJrI,EAAW,eAAK,OAAW,CAAC,OAAQ,WAAY,eACzCtvB,EAAQ,eAAsB,eAASqF,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUY,GAAaqpB,GAAW,GAAI,CAElJsI,mBAAoB,eAAS,QAG7BvuB,eAAgB,eAAS,QACzBD,KAAM,eAAS,QAAmB,GAClCyuB,aAAc,eAAS,QAEvBC,IAAK,eAAS,QAAmB,GAEjCnuB,KAAM,eAAS,QAAmB,GAClCouB,SAAU,eAAS,QACnBC,gBAAiB,eAAS,QAC1B1vB,OAAQ,eAAS,QAAmB,GACpCkf,SAAU,eAAS,QAAmB,GACtCyQ,WAAY,eAAS,QAAmB,GACxC/2B,IAAK,eAAS,OAAkB,UAC7B,SAGMke,EAAqB,aAAI9e,OAAO,CACzCC,KAAM,QACNuG,OAAQ,CAAC,OAASf,EAAY,QAC9BmyB,QAAS,WACP,MAAO,CACLtvB,OAAQ3B,OAGZjH,MAAOA,EACPY,KAAM,WACJ,MAAO,CAELu3B,WAAY,eAAUlxB,KAAKf,IAAmB,GAE9C5B,KAAM,GAEN8zB,eAAgB,KAGpBpvB,SAAU,CACRrC,KAAM,WAEJ,OAAQM,KAAKqB,QAEf+vB,cAAe,WACb,IAAIC,EAAU,GAMd,OAJIrxB,KAAKmC,MAAQnC,KAAK1C,UACpB+zB,EAAQ32B,KAAK,cAAe,QAAS,kBAAmB,aAGnD,GAAGoC,OAAOu0B,EAAS,CAACrxB,KAAK8wB,aAGpC7wB,OAAQxC,EAAS,GAAIpB,EAAgBoB,EAAQwB,GAAiB,SAAUiB,EAAUyC,GAChF,GAAIzC,IAAayC,EAAU,CACzBzC,EAAW,eAAUA,GAAW,GAChCyC,EAAW,eAAUA,EAAU,GAC/B,IAAI2uB,EAAOtxB,KAAK3C,KAAK6C,GAEjBoxB,IAASA,EAAKxvB,SAChB9B,KAAKqD,YAAYiuB,GAGbpxB,EAAWyC,EACb3C,KAAKuxB,cAELvxB,KAAKwxB,cAITn1B,EAAgBoB,EAAQ,cAAc,SAAoByC,GAC5D,IAAIsY,GAAS,EAEbxY,KAAK3C,KAAKmB,SAAQ,SAAU8yB,EAAMhzB,GAC5BA,IAAM4B,GAAaoxB,EAAKxvB,SAI1BwvB,EAAKzvB,aAAc,GAHnByvB,EAAKzvB,aAAc,EACnB2W,EAAQla,MAMZ0B,KAAKK,MAAMlB,EAAkBqZ,MAC3Bnc,EAAgBoB,EAAQ,QAAQ,SAAcyC,EAAUyC,GAC1D,IAAIxC,EAAQH,KAIP,eAAWE,EAAS8G,KAAI,SAAUsqB,GACrC,OAAOA,EAAK,WACV3uB,EAASqE,KAAI,SAAUsqB,GACzB,OAAOA,EAAK,aAGZtxB,KAAKQ,WAAU,WAGbL,EAAME,MAAM,OAAoBH,EAASuJ,QAAS9G,EAAS8G,eAG7DpN,EAAgBoB,EAAQ,kBAAkB,WAC5CuC,KAAKyxB,gBACHh0B,GACJgD,QAAS,WAEPT,KAAK0xB,WAAa,MAEpB3uB,QAAS,WACP/C,KAAK2xB,aAAY,IAEnBhxB,cAAe,WACbX,KAAK2xB,aAAY,GAEjB3xB,KAAK3C,KAAO,IAEduD,QAAS,CACPoC,YAAa,SAAqBsuB,GAC3B,eAActxB,KAAKmxB,eAAgBG,IACtCtxB,KAAKmxB,eAAez2B,KAAK42B,IAG7BluB,cAAe,SAAuBkuB,GACpCtxB,KAAKmxB,eAAiBnxB,KAAKmxB,eAAe1nB,QAAQzL,QAAO,SAAU4zB,GACjE,OAAOA,IAAON,MAIlBK,YAAa,WACX,IAAItlB,EAASrM,KAETiB,IAAKhG,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,KAAmBA,UAAU,GAIxE,GAHA+E,KAAK0xB,YAAc1xB,KAAK0xB,WAAWG,aACnC7xB,KAAK0xB,WAAa,KAEdzwB,EAAI,CAEN,IAAIkoB,EAAU,WACZ9c,EAAO7L,WAAU,WACf,gBAAU,WACR6L,EAAOolB,oBAMbzxB,KAAK0xB,WAAa,eAAW1xB,KAAK0L,MAAMwd,QAASC,EAAS,CACxD2I,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,gBAAiB,CAAC,UAIxBC,QAAS,WACP,IAAIC,EAAQnyB,KAAKmxB,eAAenzB,QAAO,SAAUszB,GAC/C,OAEc,IAFPA,EAAKh3B,UAAU0D,QAAO,SAAU4zB,GACrC,OAAOA,EAAG5vB,UACT9G,UAGDk3B,EAAQ,GAGZ,GAAI,QAAcD,EAAMj3B,OAAS,EAAG,CAIlC,IAAIm3B,EAAWF,EAAMnrB,KAAI,SAAUsqB,GACjC,MAAO,IAAIx0B,OAAOw0B,EAAK/uB,aACtB0I,KAAK,MACRmnB,EAAQ,eAAUC,EAAUryB,KAAK4K,KAAK5D,KAAI,SAAU4D,GAClD,OAAOA,EAAI5R,MACVgF,OAAO,QAKZ,OAAO,eAAWm0B,GAAO,SAAUpnB,EAAG2N,GACpC,OAAO0Z,EAAM/B,QAAQtlB,EAAExI,UAAY6vB,EAAM/B,QAAQ3X,EAAEnW,cAGvDkvB,WAAY,WACV,IAAIU,EAAQnyB,KAAKkyB,UAGbhuB,EAAWiuB,EAAM9B,QAAQ8B,EAAM1oB,QAAQ6oB,UAAUC,MAAK,SAAUjB,GAClE,OAAOA,EAAKzvB,cAAgByvB,EAAKxvB,aAGnC,GAAIoC,EAAW,EAAG,CAChB,IAAIgtB,EAAalxB,KAAKkxB,WAElBA,GAAciB,EAAMj3B,OAEtBgJ,EAAWiuB,EAAM9B,QAAQ8B,EAAM1oB,QAAQ6oB,UAAUC,KAAK3C,IAC7CuC,EAAMjB,KAAgBiB,EAAMjB,GAAYpvB,WAEjDoC,EAAWgtB,GAKXhtB,EAAW,IACbA,EAAWiuB,EAAM9B,QAAQ8B,EAAMI,KAAK3C,KAItCuC,EAAM3zB,SAAQ,SAAU8yB,EAAM9Y,GAC5B8Y,EAAKzvB,YAAc2W,IAAUtU,KAE/BlE,KAAK3C,KAAO80B,EACZnyB,KAAKkxB,WAAahtB,GAIpBsuB,gBAAiB,SAAyBlB,GACxC,OAAQtxB,KAAK0L,MAAM+mB,SAAW,IAAIF,MAAK,SAAUtI,GAC/C,OAAOA,EAAK4F,MAAQyB,MAKxBpuB,aAAc,SAAsBouB,GAClC,IAAI9E,EAAUxsB,KAAKwyB,gBAAgBlB,GAE/B9E,GAAWA,EAAQkG,cACrBlG,EAAQkG,gBAKZrvB,YAAa,SAAqBiuB,GAChC,IAAIJ,EAAalxB,KAAKkxB,WAClBiB,EAAQnyB,KAAK3C,KACbpB,GAAS,EAEb,GAAIq1B,EAAM,CACR,IAAI9Y,EAAQ2Z,EAAM9B,QAAQiB,GAE1B,GAAI9Y,IAAU0Y,GAAc1Y,GAAS,IAAM8Y,EAAKxvB,SAAU,CACxD,IAAI6wB,EAAW,IAAI,OAAQ,OAAyB,CAClDC,YAAY,EACZC,UAAW7yB,KACX8yB,YAAa9yB,KAAKuC,WAEpBvC,KAAKK,MAAMsyB,EAAS/zB,KAAM4Z,EAAO0Y,EAAYyB,GAExCA,EAASI,mBACZ/yB,KAAKkxB,WAAa1Y,EAClBvc,GAAS,IAYf,OAJKA,GAAU+D,KAAKf,KAAqBiyB,GACvClxB,KAAKK,MAAMlB,EAAkB+xB,GAGxBj1B,GAITqH,cAAe,SAAuBguB,GACpC,QAAIA,GAGKtxB,KAAKqD,YAAYrD,KAAK3C,KAAKW,QAAO,SAAU4zB,GACjD,OAAOA,IAAON,KACbiB,KAAK3C,KAQZoD,YAAa,SAAqB1B,GAChC,IAAIxkB,EAAS9M,KAGbA,KAAKQ,WAAU,WACb,eAAasM,EAAO0lB,gBAAgBlB,QAIxC2B,aAAc,SAAsBpD,EAAKzwB,GACnC,eAAQA,IAAUywB,GAAOA,EAAIxvB,QAAUwvB,EAAI/tB,UAC7C+tB,EAAIxvB,MAAM,OAAkBjB,IAIhC8zB,SAAU,SAAkB5B,EAAMlyB,GAChCY,KAAKqD,YAAYiuB,GACjBtxB,KAAKizB,aAAa3B,EAAMlyB,IAG1B0D,SAAU,SAAkBsK,GAC1B,IAAIkkB,EAAOtxB,KAAK3C,KAAKk1B,KAAK3C,GAEtB5vB,KAAKqD,YAAYiuB,IAASlkB,IAC5BpN,KAAKgzB,YAAY1B,GACjBtxB,KAAKizB,aAAa3B,EAAMlkB,KAI5BmkB,YAAa,SAAqBnkB,GAChC,IAAI+lB,EAAe,eAAQnzB,KAAKkxB,WAAY,GACxCI,EAAOtxB,KAAK3C,KAAKoM,MAAM,EAAG0pB,GAAcb,UAAUC,KAAK3C,GAEvD5vB,KAAKqD,YAAYiuB,IAASlkB,IAC5BpN,KAAKgzB,YAAY1B,GACjBtxB,KAAKizB,aAAa3B,EAAMlkB,KAI5BokB,QAAS,SAAiBpkB,GACxB,IAAI+lB,EAAe,eAAQnzB,KAAKkxB,YAAa,GACzCI,EAAOtxB,KAAK3C,KAAKoM,MAAM0pB,EAAe,GAAGZ,KAAK3C,GAE9C5vB,KAAKqD,YAAYiuB,IAASlkB,IAC5BpN,KAAKgzB,YAAY1B,GACjBtxB,KAAKizB,aAAa3B,EAAMlkB,KAI5BgmB,QAAS,SAAiBhmB,GACxB,IAAIkkB,EAAOtxB,KAAK3C,KAAKoM,QAAQ6oB,UAAUC,KAAK3C,GAExC5vB,KAAKqD,YAAYiuB,IAASlkB,IAC5BpN,KAAKgzB,YAAY1B,GACjBtxB,KAAKizB,aAAa3B,EAAMlkB,MAI9B5T,OAAQ,SAAgBC,GACtB,IAAIuT,EAAShN,KAETjD,EAAQiD,KAAKjD,MACboF,EAAOnC,KAAKmC,KACZ0uB,EAAM7wB,KAAK6wB,IACX5zB,EAAO+C,KAAK/C,KACZ6F,EAAW9C,KAAK8C,SAChB5F,EAAY8C,KAAK9C,UACjBk2B,EAAUpzB,KAAKozB,QACf5B,EAAUxxB,KAAKwxB,QACfjR,EAAWvgB,KAAKugB,SAChByQ,EAAahxB,KAAKgxB,WAClB7zB,EAAQ6C,KAAK7C,MACbo0B,EAAcvxB,KAAKuxB,YACnBn0B,EAAQ4C,KAAK5C,MACb+0B,EAAQnyB,KAAK3C,KACbC,EAAW0C,KAAK1C,SAEhB+1B,EAAalB,EAAMI,MAAK,SAAUjB,GACpC,OAAOA,EAAKzvB,cAAgByvB,EAAKxvB,YAG/BwxB,EAAenB,EAAMI,MAAK,SAAUjB,GACtC,OAAQA,EAAKxvB,YAGXyxB,EAAWpB,EAAMnrB,KAAI,SAAUsqB,EAAM9Y,GACvC,IAAIgb,EAEAjxB,EAAS+uB,EAAK/uB,OAEd2B,EAAW,KAYf,OAVKqc,IAEHrc,GAAY,GAERotB,IAAS+B,IAAeA,GAAc/B,IAASgC,KAEjDpvB,EAAW,OAIRzK,EAAEq2B,EAAa,CACpB/2B,MAAO,CACLg3B,SAAUxtB,EAASA,IAAW,KAC9BvJ,GAAIs4B,EAAKjvB,eAAiBE,EAASA,EAAO,mBAAqB,MAC/Dge,SAAUA,EACVyP,SAAUxX,EAAQ,EAClByX,QAASkC,EAAMj3B,OACf20B,IAAKyB,EACLptB,SAAUA,GAEZjD,IAAKuyB,EAAM,GAAIn3B,EAAgBm3B,EAAK,QAAkB,SAAUp0B,GAC9D4N,EAAOkmB,SAAS5B,EAAMlyB,MACpB/C,EAAgBm3B,EAAK,OAAkB1wB,GAAWzG,EAAgBm3B,EAAK,OAAiBjC,GAAcl1B,EAAgBm3B,EAAK,OAAiBhC,GAAUn1B,EAAgBm3B,EAAK,OAAiBJ,GAAUI,GAC1Mj3B,IAAK+0B,EAAK,SAAsB9Y,EAChCnd,IAAK,UAELo4B,UAAU,OAGVnK,EAAO7vB,EAAE,OAAM,CACjBI,MAAOmG,KAAKoxB,cACZt3B,MAAO,CACLsH,KAAM,UACNpI,GAAIgH,KAAKuC,OAAO,sBAElBxJ,MAAO,CACLkE,KAAMA,EACNC,UAAWA,EACXH,MAAOA,EACPM,MAAO2zB,IAAe7zB,EACtBA,OAAQ6zB,GAAc7zB,EACtBG,SAAUA,EACVF,MAAOA,EACPJ,WAAYmF,IAAS7E,GAEvBjC,IAAK,OACJ,CAAC2E,KAAKmB,cAAc,SAAyB1H,IAAK85B,EAAUvzB,KAAKmB,cAAc,SAAuB1H,MACzG6vB,EAAO7vB,EAAE,MAAO,CACdI,MAAO,CAAC,CACN,cAAesI,IAAS7E,IAAauzB,EACrC,cAAe1uB,IAAS7E,GAAYuzB,EACpC,WAAYvzB,GACX0C,KAAK+wB,iBACRx0B,IAAK,eACJ,CAAC+sB,IACJ,IAAIhvB,EAAY0F,KAAKmB,iBAAmB,GACpCuyB,EAASj6B,IAEY,IAArBa,EAAUY,SACZw4B,EAASj6B,EAAE,MAAO,CAChBI,MAAO,CAAC,WAAY,SAAU,CAC5B,YAAasI,IAEf5F,IAAK,gBACJyD,KAAKmB,cAAc,UAGxB,IAAIoC,EAAW9J,EAAE,MAAO,CACtBoB,YAAa,cACbhB,MAAO,CAAC,CACN85B,IAAKr2B,GACJ0C,KAAK4wB,cACR92B,MAAO,CACLd,GAAIgH,KAAKuC,OAAO,uBAElBhG,IAAK,aACLlB,IAAK,WACJ,CAACf,EAAWo5B,IAEf,OAAOj6B,EAAEuG,KAAK/F,IAAK,CACjBY,YAAa,OACbhB,MAAO,CACL+5B,IAAKt2B,EACL,aAAcA,GAAY6E,GAE5BrI,MAAO,CACLd,GAAIgH,KAAKuC,WAEV,CAACsuB,EAAMttB,EAAW9J,IAAK6vB,EAAMuH,EAAMp3B,IAAM8J","file":"js/chunk-6e6af6fc.58731251.js","sourcesContent":["import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","import { ref, nextTick } from \"@vue/composition-api\";\n\n// ===========================================================\n// ! This is coupled with \"veeValidate\" plugin\n// ===========================================================\n\nexport default function formValidation(\n resetFormData,\n clearFormData = () => {}\n) {\n // ------------------------------------------------\n // refFormObserver\n // ! This is for veeValidate Observer\n // * Used for veeValidate form observer\n // ------------------------------------------------\n const refFormObserver = ref(null);\n\n // ------------------------------------------------\n // resetObserver\n // ! This function is coupled with veeValidate\n // * It resets form observer\n // ------------------------------------------------\n const resetObserver = () => {\n refFormObserver.value?.reset();\n };\n\n // ------------------------------------------------\n // getValidationState\n // ! This function is coupled with veeValidate\n // * It returns true/false based on validation\n // ------------------------------------------------\n // eslint-disable-next-line object-curly-newline\n const getValidationState = ({\n dirty,\n validated,\n required: fieldRequired,\n changed,\n valid = null,\n }) => {\n const result = dirty || validated ? valid : null;\n return !fieldRequired && !changed ? null : result;\n };\n\n // ------------------------------------------------\n // resetForm\n // ! This function is coupled with veeValidate\n // * This uses resetFormData arg to reset form data\n // ------------------------------------------------\n const resetForm = () => {\n resetFormData();\n nextTick(() => {\n resetObserver();\n });\n };\n\n // ------------------------------------------------\n // clearForm\n // ! This function is coupled with veeValidate\n // * This uses clearFormData arg to reset form data\n // ------------------------------------------------\n const clearForm = () => {\n clearFormData();\n nextTick(() => {\n resetObserver();\n });\n };\n\n return {\n refFormObserver,\n resetObserver,\n getValidationState,\n resetForm,\n clearForm,\n };\n}\n","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('b-tabs',{model:{value:(_vm.tabIndex),callback:function ($$v) {_vm.tabIndex=$$v},expression:\"tabIndex\"}},[_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"UserIcon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Informações Pessoais e Acesso\")])]},proxy:true}])},[_c('profile-tab-info')],1),_c('b-tab',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('feather-icon',{staticClass:\"mr-0 mr-sm-50\",attrs:{\"icon\":\"Edit3Icon\",\"size\":\"16\"}}),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\"Alteração de Senha\")])]},proxy:true}])},[_c('profile-tab-change-password')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('div',{staticClass:\"mb-2\"},[_c('h3',[_vm._v(\"Informações Pessoais\")])]),_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('b-form',{staticClass:\"mt-2\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)}}},[_c('b-row',[_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"E-mail\",\"rules\":\"required|email\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"E-mail\",\"label-for\":\"email\"}},[_c('b-form-input',{attrs:{\"id\":\"email\",\"placeholder\":\"E-mail\",\"state\":_vm.formValidation.getValidationState(validationContext),\"disabled\":_vm.isSaving},model:{value:(_vm.userLocal.email),callback:function ($$v) {_vm.$set(_vm.userLocal, \"email\", $$v)},expression:\"userLocal.email\"}}),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"Nome\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Nome\",\"label-for\":\"nome\"}},[_c('b-form-input',{attrs:{\"id\":\"nome\",\"placeholder\":\"Name\",\"state\":_vm.formValidation.getValidationState(validationContext),\"disabled\":_vm.isSaving},model:{value:(_vm.userLocal.name),callback:function ($$v) {_vm.$set(_vm.userLocal, \"name\", $$v)},expression:\"userLocal.name\"}})],1)]}}],null,true)})],1),_c('b-col',{staticClass:\"mb-2\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"mt-2\"},[_c('h3',[_vm._v(\"Informações De Acesso\")])])]),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Login\",\"label-for\":\"login\"}},[_c('b-form-input',{attrs:{\"id\":\"login\",\"placeholder\":\"Login\",\"disabled\":\"\"},model:{value:(_vm.userLocal.login),callback:function ($$v) {_vm.$set(_vm.userLocal, \"login\", $$v)},expression:\"userLocal.login\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Perfil\",\"label-for\":\"profile\"}},[_c('v-select',{attrs:{\"clearable\":false,\"input-id\":\"profile\",\"options\":_vm.profileOptions,\"disabled\":\"\"},model:{value:(_vm.userLocal.profile),callback:function ($$v) {_vm.$set(_vm.userLocal, \"profile\", $$v)},expression:\"userLocal.profile\"}})],1)],1),(_vm.showEconomicGroup)?_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":\"Grupo Econômico\",\"label-for\":\"economicGroup\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"clearable\":false,\"input-id\":\"economicGroup\",\"options\":_vm.economicGroupOptions,\"reduce\":_vm.reduceOptionValue,\"disabled\":\"\"},model:{value:(_vm.userLocal.economicGroup),callback:function ($$v) {_vm.$set(_vm.userLocal, \"economicGroup\", $$v)},expression:\"userLocal.economicGroup\"}})],1)],1):_vm._e(),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('b-form-group',{attrs:{\"label\":_vm.groupTitle,\"label-for\":\"group\"}},[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"clearable\":false,\"input-id\":\"group\",\"options\":_vm.groupOptions,\"reduce\":_vm.reduceOptionValue,\"disabled\":\"\"},model:{value:(_vm.userLocal.economicGroup),callback:function ($$v) {_vm.$set(_vm.userLocal, \"economicGroup\", $$v)},expression:\"userLocal.economicGroup\"}})],1)],1),_c('b-col',{staticClass:\"mb-2\",attrs:{\"xs\":\"12\",\"cols\":\"12\",\"md\":\"12\",\"lg\":\"12\"}},[_c('b-form-group',{attrs:{\"label\":\"Concessionárias\",\"label-for\":\"position\"}},[[_c('v-select',{attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"multiple\":\"\",\"options\":_vm.dealershipsOptions,\"reduce\":_vm.setDealerships,\"disabled\":\"\"},model:{value:(_vm.userLocal.dealerships),callback:function ($$v) {_vm.$set(_vm.userLocal, \"dealerships\", $$v)},expression:\"userLocal.dealerships\"}})]],2)],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Receber Boletim Diário\"}},[_c('div',{staticClass:\"demo-inline-spacing mb-2\"},[_c('b-form-radio',{attrs:{\"id\":\"receive-daily-report-field-yes\",\"name\":\"receber-boletim-diario\",\"value\":true},model:{value:(_vm.userLocal.receiveDailyReport),callback:function ($$v) {_vm.$set(_vm.userLocal, \"receiveDailyReport\", $$v)},expression:\"userLocal.receiveDailyReport\"}},[_vm._v(\" Sim \")]),_c('b-form-radio',{attrs:{\"id\":\"receive-daily-report-field-no\",\"name\":\"receber-boletim-diario\",\"value\":false},model:{value:(_vm.userLocal.receiveDailyReport),callback:function ($$v) {_vm.$set(_vm.userLocal, \"receiveDailyReport\", $$v)},expression:\"userLocal.receiveDailyReport\"}},[_vm._v(\" Não \")])],1)])],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Status\"}},[_c('div',{staticClass:\"demo-inline-spacing mb-2\"},[_c('b-form-radio',{attrs:{\"name\":\"status\",\"value\":true,\"disabled\":\"\"},model:{value:(_vm.userLocal.status),callback:function ($$v) {_vm.$set(_vm.userLocal, \"status\", $$v)},expression:\"userLocal.status\"}},[_vm._v(\" Ativo \")]),_c('b-form-radio',{attrs:{\"name\":\"status\",\"value\":false,\"disabled\":\"\"},model:{value:(_vm.userLocal.status),callback:function ($$v) {_vm.$set(_vm.userLocal, \"status\", $$v)},expression:\"userLocal.status\"}},[_vm._v(\" Inativo \")])],1)])],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Inserido Por\",\"label-for\":\"inserido-por\"}},[_c('b-form-input',{attrs:{\"id\":\"inserido-por\",\"placeholder\":\"Inserido por\",\"readonly\":\"\"},model:{value:(_vm.userLocal.insertedBy),callback:function ($$v) {_vm.$set(_vm.userLocal, \"insertedBy\", $$v)},expression:\"userLocal.insertedBy\"}})],1)],1),_c('b-col',{attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('b-form-group',{attrs:{\"label\":\"Alterado Por\",\"label-for\":\"Alterado-por\"}},[_c('b-form-input',{attrs:{\"id\":\"alterado-por\",\"placeholder\":\"Alterado por\",\"readonly\":\"\"},model:{value:(_vm.userLocal.updatedBy),callback:function ($$v) {_vm.$set(_vm.userLocal, \"updatedBy\", $$v)},expression:\"userLocal.updatedBy\"}})],1)],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('av-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mt-2 mr-1\",attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"loading\":_vm.isSaving}},[_vm._v(\" Salvar \")])],1)],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import ToastificationContent from \"@core/components/toastification/ToastificationContent.vue\";\n\n// Services\nimport {\n useDealerships,\n useAdministrator,\n useGroup,\n useUser,\n} from \"@/services\";\n\n// Interfaces\nimport {\n IDealerships,\n IResponseListDealerships,\n} from \"@core/services/interfaces/business/dealerships/IDealershipsService\";\nimport {\n IUser,\n IResponseUpdateUser,\n} from \"@core/services/interfaces/user/IUserService\";\nimport {\n IResponseListGroup,\n TDataGroup,\n} from \"@core/services/interfaces/business/group/IGroupService\";\nimport { IOption } from \"@core/services/interfaces/IUtil\";\nimport { IResponseGetProfiles } from \"@core/services/interfaces/administrator/IAdministratorService\";\nimport { AxiosResponse } from \"axios\";\n\nexport default function useProfile(ctx: any) {\n /**\n * Preenchendo select com os grupos econômicos\n * @returns Promise\n */\n const fetchListGroups = async (): Promise<\n Array<{ value: number; label: string }>\n > => {\n const option = await useGroup\n .requestListGroup({\n draw: 1,\n length: 10000,\n })\n .then((response: IResponseListGroup) => {\n const data: Array<{ value: number; label: string }> =\n response.data.data.map((group: TDataGroup) => ({\n value: group.Id,\n label: group.Nome,\n }));\n\n return data;\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao buscar a lista de Grupos Empresariais!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n\n return [];\n });\n\n return option;\n };\n\n const fetchListProfile = async (): Promise => {\n const option = useAdministrator\n .requestGetProfiles()\n .then((response: AxiosResponse) => {\n const data: Array<{ value: string; label: string }> =\n response.data.data.map((profile) => ({\n value: profile.id,\n label: profile.nome,\n }));\n\n return data;\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao buscar a lista de Perfis!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n\n return [];\n });\n\n return option;\n };\n\n const fetchListDealerships = async (): Promise<\n Array<{ value: string; label: string }>\n > => {\n const amountPerRequest = 5000;\n let requests = [];\n let total = 0;\n let success = true;\n let businessData: IDealerships[] = [];\n\n await useDealerships\n .requestList({\n paginate: true,\n draw: 1,\n length: amountPerRequest,\n })\n .then((response: IResponseListDealerships) => {\n total = response.data.Data.recordsTotal;\n businessData = response.data.Data.data;\n })\n .catch(() => {\n success = false;\n });\n\n const pages = Math.ceil(total / amountPerRequest);\n for (let page = 2; page <= pages; page++) {\n requests.push(\n useDealerships.requestList({\n paginate: true,\n draw: page,\n length: amountPerRequest,\n })\n );\n }\n\n await Promise.all(requests)\n .then((response: IResponseListDealerships[]) => {\n businessData = response.reduce(\n (\n prevValue: IDealerships[],\n currentValue: IResponseListDealerships\n ) => {\n return prevValue.concat(currentValue.data.Data.data);\n },\n businessData\n );\n })\n .catch(() => {\n success = false;\n });\n\n const option = businessData.map((dealerships: IDealerships) => ({\n value: dealerships.Id,\n label: dealerships.NomeFantasia,\n }));\n\n return option;\n };\n\n const fetchGetLoggedUser = async (): Promise => {\n const option = await useUser\n .requestGetLoggedUser()\n .then((response: any) => {\n return response.data.Data;\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao buscar dados do usuário!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n\n return [];\n });\n\n return option;\n };\n\n /**\n * Dispara a ação de atualizar Usuário\n */\n const fetchUpdateUser = async (profile: any): Promise => {\n await ctx.$store\n .dispatch(\"app-user/fetchUpdateUser\", {\n id: profile.id,\n perfilId: profile.profile.value,\n email: profile.email,\n nome: profile.name,\n receberBoletimDiario: profile.receiveDailyReport,\n })\n .then((response: IResponseUpdateUser) => {\n if (response.status == 200 || response.status == 201) {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Usuário atualizado com sucesso!\",\n icon: \"CheckIcon\",\n variant: \"success\",\n },\n });\n\n ctx.$emit(\"refresh-data\");\n } else {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Ocorreu um erro inesperado!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n }\n })\n .catch(() => {\n ctx.$toast({\n component: ToastificationContent,\n props: {\n title: \"Erro ao atualizar usuário!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n });\n };\n\n return {\n fetchListProfile,\n fetchListGroups,\n fetchListDealerships,\n fetchGetLoggedUser,\n fetchUpdateUser,\n };\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BFormFile,\n BForm,\n BFormGroup,\n BFormInput,\n BFormInvalidFeedback,\n BRow,\n BCol,\n BAlert,\n BCard,\n BCardText,\n BMedia,\n BMediaAside,\n BMediaBody,\n BLink,\n BImg,\n} from \"bootstrap-vue\";\nimport { BFormRadio } from \"bootstrap-vue\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { BFormDatepicker } from \"bootstrap-vue\";\nimport Ripple from \"vue-ripple-directive\";\nimport formValidation from \"@core/comp-functions/forms/form-validation\";\nimport vSelect from \"vue-select\";\nimport useProfile from \"./useProfile\";\nimport { IUser } from \"@core/services/interfaces/user/IUserService\";\nimport { ValidationProvider, ValidationObserver } from \"vee-validate\";\nimport { AvButton } from \"@/components\";\n\n// Services\nimport { useGroupEconomic } from \"@/services\";\n\n// Interfaces\nimport { IResponseListGroupEconomic } from \"@core/services/interfaces/business/group-economic/IGroupEconomicService\";\n\n@Component({\n name: \"profileData\",\n components: {\n AvButton,\n BForm,\n BImg,\n BFormFile,\n BFormGroup,\n BFormInput,\n BRow,\n BCol,\n BAlert,\n BCard,\n BCardText,\n BMedia,\n BMediaAside,\n BMediaBody,\n BLink,\n vSelect,\n BFormRadio,\n BFormDatepicker,\n ValidationProvider,\n ValidationObserver,\n BFormInvalidFeedback,\n },\n directives: {\n Ripple,\n },\n})\nexport default class Profile extends Vue {\n groupTitle =\n this.$store.state[\"appConfig\"].params.GRUPO_EMPRESA_TITLE ||\n \"Grupo Empresa\";\n economicGroup: { value: number | null; label: string | null } = {\n value: null,\n label: null,\n };\n economicGroupOptions: Array<{ value: number; label: string }> = [];\n profileOptions: Array<{ value: number; label: string }> = [];\n groupOptions: Array<{ value: number; label: string }> = [];\n dealershipsOptions: Array<{ value: string; label: string }> = [];\n user = {} as IUser;\n saving = false;\n showEconomicGroup: boolean = useGroupEconomic.verifyEconomicGroupPermission();\n userLocal = {} as {\n id: string;\n name: string;\n login: string;\n email: string;\n cpfCnpj: string;\n dealerships: string[];\n economicGroup: any;\n receiveDailyReport: boolean;\n status: boolean;\n profile: { label: string; value: string };\n insertedBy: string;\n updatedBy: string;\n };\n\n useProfile = useProfile(this);\n formValidation = formValidation();\n\n // Computed\n get isSaving(): boolean {\n return this.saving;\n }\n\n // Lifecycle\n created() {\n if (this.showEconomicGroup) {\n useGroupEconomic\n .requestGet()\n .then((response: IResponseListGroupEconomic) => {\n this.economicGroupOptions = response.data.data.map(\n (groupEconomic) => ({\n value: groupEconomic.Id,\n label: groupEconomic.Nome,\n })\n );\n });\n }\n\n this.useProfile\n .fetchListProfile()\n .then((data: Array<{ value: number; label: string }>) => {\n this.profileOptions = data;\n });\n\n this.useProfile\n .fetchListGroups()\n .then((data: Array<{ value: number; label: string }>) => {\n this.groupOptions = data;\n });\n\n this.useProfile\n .fetchListDealerships()\n .then((data: Array<{ value: string; label: string }>) => {\n this.dealershipsOptions = data;\n });\n\n this.useProfile.fetchGetLoggedUser().then((data: IUser) => {\n this.user = data;\n const dateInc: string = data.Control_DatInc.split(\"T\")[0];\n const timeInc: string = data.Control_DatInc.split(\"T\")[1];\n const dateUp: string = data.Control_DatAlter.split(\"T\")[0];\n const timeUp: string = data.Control_DatAlter.split(\"T\")[1];\n\n this.userLocal = {\n id: data.Id,\n name: data.Nome,\n login: data.Login,\n email: data.Email,\n cpfCnpj: data.CpfCnpj,\n dealerships: data.ConcessionariasIds,\n economicGroup: null,\n receiveDailyReport: data.ReceberBoletimDiario,\n status: data.Ativo,\n profile: { label: data.PerfilNome, value: data.PerfilId },\n insertedBy: `${data.Control_UsuInc} - ${dateInc.split(\"-\")[2]}/${\n dateInc.split(\"-\")[1]\n }/${dateInc.split(\"-\")[0]} ${timeInc.split(\".\")[0]}`,\n updatedBy: `${data.Control_UsuAlter} - ${dateUp.split(\"-\")[2]}/${\n dateUp.split(\"-\")[1]\n }/${dateUp.split(\"-\")[0]} ${timeUp.split(\".\")[0]}`,\n };\n });\n }\n\n // Methods\n onSubmit(): void {\n this.saving = true;\n this.useProfile.fetchUpdateUser(this.userLocal).finally(() => {\n this.saving = false;\n });\n }\n\n reduceOptionValue = (option: { label: string; value: any }): any => {\n return option.value;\n };\n\n setDealerships(options: { label: string; value: number }) {\n return options.value;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProfileTabInfo.vue?vue&type=template&id=16f3f6b0\"\nimport script from \"./ProfileTabInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileTabInfo.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ProfileTabInfo.vue?vue&type=style&index=0&id=16f3f6b0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',[_c('validation-observer',{ref:\"refFormObserver\",scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar handleSubmit = ref.handleSubmit;\nreturn [_c('b-form',{staticClass:\"p-2\",on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.onSubmit)}}},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('validation-provider',{attrs:{\"name\":\"Senha Atual\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label\":\"Senha Atual\",\"label-for\":\"current-password\"}},[_c('b-input-group',{staticClass:\"input-group-merge\",class:{\n 'is-invalid':\n _vm.formValidation.getValidationState(validationContext) ==\n false,\n }},[_c('b-form-input',{attrs:{\"id\":\"current-password\",\"placeholder\":\"Senha Atual\",\"state\":_vm.formValidation.getValidationState(validationContext),\"type\":_vm.passwordFieldTypeOld,\"required\":\"\",\"trim\":\"\",\"disabled\":_vm.isSaving},model:{value:(_vm.passwordValueOld),callback:function ($$v) {_vm.passwordValueOld=$$v},expression:\"passwordValueOld\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIconOld},on:{\"click\":function($event){return _vm.togglePasswordOld()}}})],1)],1),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1)],1),_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"Nova Senha\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label-for\":\"password\",\"label\":\"Nova Senha\"}},[_c('b-input-group',{staticClass:\"input-group-merge\",class:{\n 'is-invalid':\n _vm.formValidation.getValidationState(validationContext) ==\n false,\n }},[_c('b-form-input',{attrs:{\"id\":\"password\",\"type\":_vm.passwordFieldTypeNew,\"placeholder\":\"Nova Senha\",\"state\":_vm.formValidation.getValidationState(validationContext),\"trim\":\"\",\"disabled\":_vm.isSaving},model:{value:(_vm.newPasswordValue),callback:function ($$v) {_vm.newPasswordValue=$$v},expression:\"newPasswordValue\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIconNew},on:{\"click\":function($event){return _vm.togglePasswordNew()}}})],1)],1),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1),_c('b-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"6\"}},[_c('validation-provider',{attrs:{\"name\":\"'Nova Senha'\",\"rules\":\"confirmed:Nova Senha\"},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('b-form-group',{attrs:{\"label-for\":\"confirmedPassword\",\"label\":\"Reescrever Nova Senha\"}},[_c('b-input-group',{staticClass:\"input-group-merge\",class:{\n 'is-invalid':\n _vm.formValidation.getValidationState(validationContext) ==\n false,\n }},[_c('b-form-input',{attrs:{\"id\":\"confirmedPassword\",\"type\":_vm.passwordFieldTypeRetype,\"placeholder\":\"Reescrever Nova Senha\",\"state\":_vm.formValidation.getValidationState(validationContext),\"disabled\":_vm.isSaving},model:{value:(_vm.retypePassword),callback:function ($$v) {_vm.retypePassword=$$v},expression:\"retypePassword\"}}),_c('b-input-group-append',{attrs:{\"is-text\":\"\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":_vm.passwordToggleIconRetype},on:{\"click\":function($event){return _vm.togglePasswordRetype()}}})],1)],1),_c('b-form-invalid-feedback',[_vm._v(\" \"+_vm._s(validationContext.errors[0])+\" \")])],1)]}}],null,true)})],1),_c('b-col',{attrs:{\"cols\":\"12\"}},[_c('av-button',{directives:[{name:\"ripple\",rawName:\"v-ripple.400\",value:('rgba(255, 255, 255, 0.15)'),expression:\"'rgba(255, 255, 255, 0.15)'\",modifiers:{\"400\":true}}],staticClass:\"mt-1 mr-1\",attrs:{\"variant\":\"primary\",\"type\":\"submit\",\"loading\":_vm.isSaving}},[_vm._v(\" Salvar \")])],1)],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BButton,\n BForm,\n BFormGroup,\n BFormInput,\n BRow,\n BCol,\n BCard,\n BInputGroup,\n BInputGroupAppend,\n BFormInvalidFeedback,\n} from \"bootstrap-vue\";\nimport { AvButton } from \"@/components\";\nimport Ripple from \"vue-ripple-directive\";\nimport formValidation from \"@core/comp-functions/forms/form-validation\";\nimport { Component, Vue } from \"vue-property-decorator\";\nimport { ValidationProvider, ValidationObserver } from \"vee-validate\";\nimport { IResponseChangePassword } from \"@core/services/interfaces/administrator/IAdministratorService\";\nimport ToastificationContent from \"@core/components/toastification/ToastificationContent.vue\";\n\n// Services\nimport { useAdministrator } from \"@/services\";\n\n@Component({\n name: \"ProfileSettingPassword\",\n components: {\n BButton,\n BForm,\n BFormGroup,\n BFormInput,\n BRow,\n BCol,\n BCard,\n BInputGroup,\n BFormInvalidFeedback,\n BInputGroupAppend,\n ValidationProvider,\n ValidationObserver,\n AvButton,\n },\n directives: {\n Ripple,\n },\n})\nexport default class ProfileSettingPassword extends Vue {\n // Data\n passwordValueOld: string = \"\";\n newPasswordValue: string = \"\";\n retypePassword: string = \"\";\n passwordFieldTypeOld: string = \"password\";\n passwordFieldTypeNew: string = \"password\";\n passwordFieldTypeRetype: string = \"password\";\n saving = false;\n\n formValidation = formValidation();\n\n // Computeds\n get isSaving(): boolean {\n return this.saving;\n }\n\n get passwordToggleIconOld(): string {\n return this.passwordFieldTypeOld === \"password\" ? \"EyeIcon\" : \"EyeOffIcon\";\n }\n\n get passwordToggleIconNew(): string {\n return this.passwordFieldTypeNew === \"password\" ? \"EyeIcon\" : \"EyeOffIcon\";\n }\n\n get passwordToggleIconRetype(): string {\n return this.passwordFieldTypeRetype === \"password\"\n ? \"EyeIcon\"\n : \"EyeOffIcon\";\n }\n\n get isNewPasswordSame(): boolean | null {\n if (this.newPasswordValue == \"\" && this.retypePassword == \"\") return null;\n\n return this.newPasswordValue === this.retypePassword;\n }\n\n // Methods\n togglePasswordOld(): void {\n this.passwordFieldTypeOld =\n this.passwordFieldTypeOld === \"password\" ? \"text\" : \"password\";\n }\n\n togglePasswordNew(): void {\n this.passwordFieldTypeNew =\n this.passwordFieldTypeNew === \"password\" ? \"text\" : \"password\";\n }\n\n togglePasswordRetype(): void {\n this.passwordFieldTypeRetype =\n this.passwordFieldTypeRetype === \"password\" ? \"text\" : \"password\";\n }\n\n onSubmit(): void {\n this.saving = true;\n useAdministrator\n .requestChangePassword({\n senha: this.passwordValueOld,\n novaSenha: this.newPasswordValue,\n })\n .then((response: IResponseChangePassword) => {\n if (response.data.Status == 200 || response.data.Status == 201) {\n this.$toast({\n component: ToastificationContent,\n props: {\n title: \"Senha atualizada com sucesso!\",\n icon: \"CheckIcon\",\n variant: \"success\",\n },\n });\n } else {\n this.$toast({\n component: ToastificationContent,\n props: {\n title: \"Ocorreu um erro inesperado!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n }\n })\n .catch(() => {\n this.$toast({\n component: ToastificationContent,\n props: {\n title:\n \"Erro ao atualizar a senha, verifique se a senha atual corresponde e tente novamente!\",\n icon: \"AlertTriangleIcon\",\n variant: \"danger\",\n },\n });\n })\n .finally(() => {\n this.saving = false;\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProfileTabChangePassword.vue?vue&type=template&id=29bb236e\"\nimport script from \"./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileTabChangePassword.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n BTab,\n BTabs,\n BCard,\n BAlert,\n BLink,\n BFormGroup,\n BForm,\n BRow,\n BCol,\n BFormInput,\n} from \"bootstrap-vue\";\nimport ProfileTabInfo from \"./ProfileTabInfo.vue\";\nimport ProfileTabChangePassword from \"./ProfileTabChangePassword.vue\";\nimport { Component, Vue } from \"vue-property-decorator\";\n\n@Component({\n name: \"ProfilePage\",\n components: {\n BTab,\n BTabs,\n BCard,\n BAlert,\n BLink,\n BFormGroup,\n BForm,\n BRow,\n BCol,\n BFormInput,\n ProfileTabInfo,\n ProfileTabChangePassword,\n },\n})\nexport default class ProfilePage extends Vue {\n tabIndex = 0;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileUser.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileUser.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProfileUser.vue?vue&type=template&id=760ba92c\"\nimport script from \"./ProfileUser.vue?vue&type=script&lang=ts\"\nexport * from \"./ProfileUser.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\n};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileTabInfo.vue?vue&type=style&index=0&id=16f3f6b0&prod&lang=scss\"","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { MODEL_EVENT_NAME, formRadioCheckMixin, props as formRadioCheckProps } from '../../mixins/form-radio-check';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formRadioCheckProps), formSizeProps), formStateProps)), NAME_FORM_RADIO); // --- Main component ---\n// @vue/component\n\nexport var BFormRadio = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_RADIO,\n mixins: [idMixin, formRadioCheckMixin, // Includes shared render function\n formControlMixin, formSizeMixin, formStateMixin],\n inject: {\n bvGroup: {\n from: 'bvRadioGroup',\n default: false\n }\n },\n props: props,\n watch: {\n computedLocalChecked: function computedLocalChecked(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }\n }\n});","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// Date utility functions\nimport { CALENDAR_GREGORY } from '../constants/date';\nimport { RX_DATE, RX_DATE_SPLIT } from '../constants/regex';\nimport { concat } from './array';\nimport { identity } from './identity';\nimport { isDate, isString } from './inspect';\nimport { toInteger } from './number'; // --- Date utility methods ---\n// Create or clone a date (`new Date(...)` shortcut)\n\nexport var createDate = function createDate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Date, args);\n}; // Parse a date sting, or Date object, into a Date object (with no time information)\n\nexport var parseYMD = function parseYMD(date) {\n if (isString(date) && RX_DATE.test(date.trim())) {\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\n return toInteger(v, 1);\n }),\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\n year = _date$split$map2[0],\n month = _date$split$map2[1],\n day = _date$split$map2[2];\n\n return createDate(year, month - 1, day);\n } else if (isDate(date)) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n return null;\n}; // Format a date object as `YYYY-MM-DD` format\n\nexport var formatYMD = function formatYMD(date) {\n date = parseYMD(date);\n\n if (!date) {\n return null;\n }\n\n var year = date.getFullYear();\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\n var day = \"0\".concat(date.getDate()).slice(-2);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}; // Given a locale (or locales), resolve the browser available locale\n\nexport var resolveLocale = function resolveLocale(locales)\n/* istanbul ignore next */\n{\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\n locales = concat(locales).filter(identity);\n var fmt = new Intl.DateTimeFormat(locales, {\n calendar: calendar\n });\n return fmt.resolvedOptions().locale;\n}; // Create a `Intl.DateTimeFormat` formatter function\n\nexport var createDateFormatter = function createDateFormatter(locale, options)\n/* istanbul ignore next */\n{\n var dtf = new Intl.DateTimeFormat(locale, options);\n return dtf.format;\n}; // Determine if two dates are the same date (ignoring time portion)\n\nexport var datesEqual = function datesEqual(date1, date2) {\n // Returns true of the date portion of two date objects are equal\n // We don't compare the time portion\n return formatYMD(date1) === formatYMD(date2);\n}; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\n\nexport var firstDateOfMonth = function firstDateOfMonth(date) {\n date = createDate(date);\n date.setDate(1);\n return date;\n};\nexport var lastDateOfMonth = function lastDateOfMonth(date) {\n date = createDate(date);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n return date;\n};\nexport var addYears = function addYears(date, numberOfYears) {\n date = createDate(date);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\n\n if (date.getMonth() !== month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAgo = function oneMonthAgo(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month - 1); // Handle when days in month are different\n\n if (date.getMonth() === month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAhead = function oneMonthAhead(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month + 1); // Handle when days in month are different\n\n if (date.getMonth() === (month + 2) % 12) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneYearAgo = function oneYearAgo(date) {\n return addYears(date, -1);\n};\nexport var oneYearAhead = function oneYearAhead(date) {\n return addYears(date, 1);\n};\nexport var oneDecadeAgo = function oneDecadeAgo(date) {\n return addYears(date, -10);\n};\nexport var oneDecadeAhead = function oneDecadeAhead(date) {\n return addYears(date, 10);\n}; // Helper function to constrain a date between two values\n// Always returns a `Date` object or `null` if no date passed\n\nexport var constrainDate = function constrainDate(date) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Ensure values are `Date` objects (or `null`)\n date = parseYMD(date);\n min = parseYMD(min) || date;\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\n\n return date ? date < min ? min : date > max ? max : date : null;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = Vue.extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h('header', {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelectedDate || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('header', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('footer', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\n }\n});","// v-b-hover directive\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { eventOnOff } from '../../utils/events';\nimport { isFunction } from '../../utils/inspect'; // --- Constants ---\n\nvar PROP = '__BV_hover_handler__';\nvar MOUSEENTER = 'mouseenter';\nvar MOUSELEAVE = 'mouseleave'; // --- Helper methods ---\n\nvar createListener = function createListener(handler) {\n var listener = function listener(event) {\n handler(event.type === MOUSEENTER, event);\n };\n\n listener.fn = handler;\n return listener;\n};\n\nvar updateListeners = function updateListeners(on, el, listener) {\n eventOnOff(on, el, MOUSEENTER, listener, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, el, MOUSELEAVE, listener, EVENT_OPTIONS_NO_CAPTURE);\n}; // --- Directive bind/unbind/update handler ---\n\n\nvar directive = function directive(el, _ref) {\n var _ref$value = _ref.value,\n handler = _ref$value === void 0 ? null : _ref$value;\n\n if (IS_BROWSER) {\n var listener = el[PROP];\n var hasListener = isFunction(listener);\n var handlerChanged = !(hasListener && listener.fn === handler);\n\n if (hasListener && handlerChanged) {\n updateListeners(false, el, listener);\n delete el[PROP];\n }\n\n if (isFunction(handler) && handlerChanged) {\n el[PROP] = createListener(handler);\n updateListeners(true, el, el[PROP]);\n }\n }\n}; // VBHover directive\n\n\nexport var VBHover = {\n bind: directive,\n componentUpdated: directive,\n unbind: function unbind(el) {\n directive(el, {\n value: null\n });\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Private component used by `b-form-datepicker` and `b-form-timepicker`\n//\nimport { Vue } from '../../vue';\nimport { NAME_FORM_BUTTON_LABEL_CONTROL } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { VBHover } from '../../directives/hover/hover';\nimport { BIconChevronDown } from '../../icons/icons'; // --- Props ---\n\nexport var props = sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formSizeProps), formStateProps), omit(dropdownProps, ['disabled'])), omit(formControlProps, ['autofocus'])), {}, {\n // When `true`, renders a `btn-group` wrapper and visually hides the label\n buttonOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Applicable in button mode only\n buttonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // This is the value shown in the label\n // Defaults back to `value`\n formattedValue: makeProp(PROP_TYPE_STRING),\n // Value placed in `.sr-only` span inside label when value is present\n labelSelected: makeProp(PROP_TYPE_STRING),\n lang: makeProp(PROP_TYPE_STRING),\n // Extra classes to apply to the `dropdown-menu` div\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // This is the value placed on the hidden input when no value selected\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state prop: `true`, `false` or `null`\n rtl: makeProp(PROP_TYPE_BOOLEAN, null),\n value: makeProp(PROP_TYPE_STRING, '')\n})); // --- Main component ---\n// @vue/component\n\nexport var BVFormBtnLabelControl = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_BUTTON_LABEL_CONTROL,\n directives: {\n 'b-hover': VBHover\n },\n mixins: [idMixin, formSizeMixin, formStateMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n isHovered: false,\n hasFocus: false\n };\n },\n computed: {\n idButton: function idButton() {\n return this.safeId();\n },\n idLabel: function idLabel() {\n return this.safeId('_value_');\n },\n idMenu: function idMenu() {\n return this.safeId('_dialog_');\n },\n idWrapper: function idWrapper() {\n return this.safeId('_outer_');\n },\n computedDir: function computedDir() {\n return this.rtl === true ? 'rtl' : this.rtl === false ? 'ltr' : null;\n }\n },\n methods: {\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.toggle);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.toggle);\n }\n },\n setFocus: function setFocus(event) {\n this.hasFocus = event.type === 'focus';\n },\n handleHover: function handleHover(hovered) {\n this.isHovered = hovered;\n }\n },\n render: function render(h) {\n var _class;\n\n var idButton = this.idButton,\n idLabel = this.idLabel,\n idMenu = this.idMenu,\n idWrapper = this.idWrapper,\n disabled = this.disabled,\n readonly = this.readonly,\n required = this.required,\n name = this.name,\n state = this.state,\n visible = this.visible,\n size = this.size,\n isHovered = this.isHovered,\n hasFocus = this.hasFocus,\n labelSelected = this.labelSelected,\n buttonVariant = this.buttonVariant,\n buttonOnly = this.buttonOnly;\n var value = toString(this.value) || '';\n var invalid = state === false || required && !value;\n var btnScope = {\n isHovered: isHovered,\n hasFocus: hasFocus,\n state: state,\n opened: visible\n };\n var $button = h('button', {\n staticClass: 'btn',\n class: (_class = {}, _defineProperty(_class, \"btn-\".concat(buttonVariant), buttonOnly), _defineProperty(_class, \"btn-\".concat(size), size), _defineProperty(_class, 'h-auto', !buttonOnly), _defineProperty(_class, 'dropdown-toggle', buttonOnly), _defineProperty(_class, 'dropdown-toggle-no-caret', buttonOnly), _class),\n attrs: {\n id: idButton,\n type: 'button',\n disabled: disabled,\n 'aria-haspopup': 'dialog',\n 'aria-expanded': visible ? 'true' : 'false',\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n mousedown: this.onMousedown,\n click: this.toggle,\n keydown: this.toggle,\n // Handle ENTER, SPACE and DOWN\n '!focus': this.setFocus,\n '!blur': this.setFocus\n },\n ref: 'toggle'\n }, [this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT, btnScope) :\n /* istanbul ignore next */\n h(BIconChevronDown, {\n props: {\n scale: 1.25\n }\n })]); // Hidden input\n\n var $hidden = h();\n\n if (name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: name || null,\n form: this.form || null,\n value: value\n }\n });\n } // Dropdown content\n\n\n var $menu = h('div', {\n staticClass: 'dropdown-menu',\n class: [this.menuClass, {\n show: visible,\n 'dropdown-menu-right': this.right\n }],\n attrs: {\n id: idMenu,\n role: 'dialog',\n tabindex: '-1',\n 'aria-modal': 'false',\n 'aria-labelledby': idLabel\n },\n on: {\n keydown: this.onKeydown // Handle ESC\n\n },\n ref: 'menu'\n }, [this.normalizeSlot(SLOT_NAME_DEFAULT, {\n opened: visible\n })]); // Value label\n\n var $label = h('label', {\n class: buttonOnly ? 'sr-only' // Hidden in button only mode\n : ['form-control', 'text-break', 'text-wrap', 'bg-transparent', // Mute the text if showing the placeholder\n {\n 'text-muted': !value\n }, this.stateClass, this.sizeFormClass],\n attrs: {\n id: idLabel,\n for: idButton,\n 'aria-invalid': invalid ? 'true' : null,\n 'aria-required': required ? 'true' : null\n },\n directives: [{\n name: 'b-hover',\n value: this.handleHover\n }],\n on: {\n // Disable bubbling of the click event to\n // prevent menu from closing and re-opening\n '!click':\n /* istanbul ignore next */\n function click(event) {\n stopEvent(event, {\n preventDefault: false\n });\n }\n }\n }, [value ? this.formattedValue || value : this.placeholder || '', // Add the selected label for screen readers when a value is provided\n value && labelSelected ? h('bdi', {\n staticClass: 'sr-only'\n }, labelSelected) : '']); // Return the custom form control wrapper\n\n return h('div', {\n staticClass: 'b-form-btn-label-control dropdown',\n class: [this.directionClass, this.boundaryClass, [{\n 'btn-group': buttonOnly,\n 'form-control': !buttonOnly,\n 'd-flex': !buttonOnly,\n 'h-auto': !buttonOnly,\n 'align-items-stretch': !buttonOnly,\n focus: hasFocus && !buttonOnly,\n show: visible,\n 'is-valid': state === true,\n 'is-invalid': state === false\n }, buttonOnly ? null : this.sizeFormClass]],\n attrs: {\n id: idWrapper,\n role: buttonOnly ? null : 'group',\n lang: this.lang || null,\n dir: this.computedDir,\n 'aria-disabled': disabled,\n 'aria-readonly': readonly && !disabled,\n 'aria-labelledby': idLabel,\n 'aria-invalid': state === false || required && !value ? 'true' : null,\n 'aria-required': required ? 'true' : null\n }\n }, [$button, $hidden, $menu, $label]);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { createDate, constrainDate, formatYMD, parseYMD } from '../../utils/date';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconCalendar, BIconCalendarFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BCalendar, props as BCalendarProps } from '../calendar/calendar';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar calendarProps = omit(BCalendarProps, ['block', 'hidden', 'id', 'noKeyNav', 'roleDescription', 'value', 'width']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), calendarProps), formBtnLabelControlProps), {}, {\n // Width of the calendar dropdown\n calendarWidth: makeProp(PROP_TYPE_STRING, '270px'),\n closeButton: makeProp(PROP_TYPE_BOOLEAN, false),\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Dark mode\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n labelTodayButton: makeProp(PROP_TYPE_STRING, 'Select today'),\n noCloseOnSelect: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING),\n todayButton: makeProp(PROP_TYPE_BOOLEAN, false),\n todayButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary')\n})), NAME_FORM_DATEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormDatepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `YYYY-MM-DD` value internally\n localYMD: formatYMD(this[MODEL_PROP_NAME]) || '',\n // If the popup is open\n isVisible: false,\n // Context data from BCalendar\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n activeYMD: ''\n };\n },\n computed: {\n calendarYM: function calendarYM() {\n // Returns the calendar year/month\n // Returns the `YYYY-MM` portion of the active calendar date\n return this.activeYMD.slice(0, -3);\n },\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n },\n computedResetValue: function computedResetValue() {\n return formatYMD(constrainDate(this.resetValue)) || '';\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localYMD = formatYMD(newValue) || '';\n }), _defineProperty(_watch, \"localYMD\", function localYMD(newValue) {\n // We only update the v-model when the datepicker is open\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newValue) || null : newValue || '');\n }\n }), _defineProperty(_watch, \"calendarYM\", function calendarYM(newValue, oldValue) {\n // Displayed calendar month has changed\n // So possibly the calendar height has changed...\n // We need to update popper computed position\n if (newValue !== oldValue && oldValue) {\n try {\n this.$refs.control.updatePopper();\n } catch (_unused) {}\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(ymd) {\n var _this = this;\n\n this.localYMD = ymd; // Close calendar popup, unless `noCloseOnSelect`\n\n if (!this.noCloseOnSelect) {\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n }\n },\n onSelected: function onSelected(ymd) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setAndClose(ymd);\n });\n },\n onInput: function onInput(ymd) {\n if (this.localYMD !== ymd) {\n this.localYMD = ymd;\n }\n },\n onContext: function onContext(ctx) {\n var activeYMD = ctx.activeYMD,\n isRTL = ctx.isRTL,\n locale = ctx.locale,\n selectedYMD = ctx.selectedYMD,\n selectedFormatted = ctx.selectedFormatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = selectedFormatted;\n this.localYMD = selectedYMD;\n this.activeYMD = activeYMD; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onTodayButton: function onTodayButton() {\n // Set to today (or min/max if today is out of range)\n this.setAndClose(formatYMD(constrainDate(createDate(), this.min, this.max)));\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.computedResetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n // Menu handlers\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this3 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this3.$refs.calendar);\n\n _this3.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconCalendarFill : BIconCalendar, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localYMD = this.localYMD,\n disabled = this.disabled,\n readonly = this.readonly,\n dark = this.dark,\n $props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoDateSelected : this.placeholder; // Optional footer buttons\n\n var $footer = [];\n\n if (this.todayButton) {\n var label = this.labelTodayButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.todayButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onTodayButton\n }\n }, label));\n }\n\n if (this.resetButton) {\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n }\n }, _label));\n }\n\n if (this.closeButton) {\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled,\n size: 'sm',\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n }\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $calendar = h(BCalendar, {\n staticClass: 'b-form-date-calendar w-100',\n props: _objectSpread(_objectSpread({}, pluckProps(calendarProps, $props)), {}, {\n hidden: !this.isVisible,\n value: localYMD,\n valueAsDate: false,\n width: this.calendarWidth\n }),\n on: {\n selected: this.onSelected,\n input: this.onInput,\n context: this.onContext\n },\n scopedSlots: pick($scopedSlots, ['nav-prev-decade', 'nav-prev-year', 'nav-prev-month', 'nav-this-month', 'nav-next-month', 'nav-next-year', 'nav-next-decade']),\n key: 'calendar',\n ref: 'calendar'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-datepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n formattedValue: localYMD ? this.formattedValue : '',\n id: this.safeId(),\n lang: this.computedLang,\n menuClass: [{\n 'bg-dark': dark,\n 'text-light': dark\n }, this.menuClass],\n placeholder: placeholder,\n rtl: this.isRTL,\n value: localYMD\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, $scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$calendar]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});"],"sourceRoot":""}