{"version":3,"sources":["webpack:///./src/@core/mixins/permission.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack:///./src/@core/mixins/table.js","webpack:///./src/views/components/table/TableEntries.vue?bdbd","webpack:///src/views/components/table/TableEntries.vue","webpack:///./src/views/components/table/TableEntries.vue?c4f3","webpack:///./src/views/components/table/TableEntries.vue?e232","webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card.js","webpack:///./src/views/forms/InputField.vue?b743","webpack:///src/views/forms/InputField.vue","webpack:///./src/views/forms/InputField.vue?501b","webpack:///./src/views/forms/InputField.vue?d085","webpack:///./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack:///./src/views/components/spinner/FullScreenSpinner.vue?e011","webpack:///src/views/components/spinner/FullScreenSpinner.vue","webpack:///./src/views/components/spinner/FullScreenSpinner.vue?53e6","webpack:///./src/views/components/spinner/FullScreenSpinner.vue","webpack:///./src/helpers/formatDate.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:///./src/views/pages/account-management/customers/individual-customer/Index.vue?bcba","webpack:///src/views/pages/account-management/customers/individual-customer/Index.vue","webpack:///./src/views/pages/account-management/customers/individual-customer/Index.vue?3e4f","webpack:///./src/views/pages/account-management/customers/individual-customer/Index.vue?c210","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:///./src/helpers/handleSpecialCharacter.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack:///./src/assets/images/gif/loader.gif","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack:///./src/views/forms/InputField.vue?8193","webpack:///./src/views/components/table/TableEntries.vue?3cd4","webpack:///./src/views/pages/account-management/customers/individual-customer/Index.vue?1bc9","webpack:///./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:///./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/esm/constants/popper.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack:///./src/views/components/button/Button.vue?5dc3","webpack:///src/views/components/button/Button.vue","webpack:///./src/views/components/button/Button.vue?2fad","webpack:///./src/views/components/button/Button.vue","webpack:///./src/views/forms/TextAreaField.vue?8312","webpack:///./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:///src/views/forms/TextAreaField.vue","webpack:///./src/views/forms/TextAreaField.vue?499b","webpack:///./src/views/forms/TextAreaField.vue","webpack:///./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack:///./src/views/components/table/TablePagination.vue?0506","webpack:///./src/views/components/pagination/Pagination.vue?4307","webpack:///src/views/components/pagination/Pagination.vue","webpack:///./src/views/components/pagination/Pagination.vue?4a4f","webpack:///./src/views/components/pagination/Pagination.vue","webpack:///src/views/components/table/TablePagination.vue","webpack:///./src/views/components/table/TablePagination.vue?75ec","webpack:///./src/views/components/table/TablePagination.vue","webpack:///./src/views/forms/SelectField.vue?e97f","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./src/views/components/table/TableEntries.vue?1fad","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/card.js","webpack:///./src/views/forms/SelectField.vue?1739","webpack:///./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack:///./src/views/forms/SelectField.vue?806e","webpack:///src/views/forms/SelectField.vue","webpack:///./src/views/forms/SelectField.vue?5a8d","webpack:///./src/views/forms/SelectField.vue?09cc","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/bootstrap-vue/esm/components/tabs/tabs.js"],"names":["permissionMixin","computed","mapGetters","userData","methods","getUserPermission","value","this","permissions","includes","formSelectionMixin","extend","selectionStart","cache","get","$refs","input","set","val","selectionEnd","selectionDirection","select","_this$$refs$input","apply","arguments","setSelectionRange","_this$$refs$input2","setRangeText","_this$$refs$input3","tableMixins","data","isBusy","showSpinner","sortDesc","searchQuery","statusFilter","perPage","pageSize","currentPage","perPageOptions","totalCount","statusOptions","approvalTotalCount","approvalPerPage","approvalPageSize","approvalCurrentPage","totalEntries","numberOfPages","Math","floor","from","to","min","approvalTotalEntries","approvalNumberOfPages","approvalFom","approvalTo","variantColor","status","getOverallIndex","index","render","_vm","_h","$createElement","_c","_self","_v","staticClass","attrs","$store","state","appConfig","isRTL","options","model","callback","$$v","expression","staticRenderFns","name","components","vSelect","props","type","Array","required","Object","String","Number","Boolean","default","hasValue","watch","$emit","created","component","uncurryThis","toLength","toString","$repeat","requireObjectCoercible","repeat","stringSlice","slice","ceil","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","intMaxLength","stringLength","length","fillStr","undefined","module","exports","start","end","global","toIntegerOrInfinity","RangeError","count","str","result","n","Infinity","id","inline","novalidate","validated","BForm","functional","h","_ref","children","class","formValidityMixin","validity","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","bind","footer","footerClass","footerHtml","BCardFooter","_ref2","footerBgVariant","footerBorderVariant","footerTextVariant","footerTag","concat","domProps","html","bottom","top","BCardImg","src","alt","width","height","baseClass","right","left","cardImgProps","imgSrc","card","align","noBody","BCard","_class","slots","scopedSlots","imgLeft","imgRight","imgStart","imgEnd","imgBottom","header","headerHtml","textVariant","bgVariant","borderVariant","$scopedSlots","$slots","slotScope","$imgFirst","$imgLast","$img","$header","hasHeaderSlot","$content","overlay","$footer","hasFooterSlot","tag","_s","label","errorName","rules","vid","_u","fn","ref","errors","placeholder","readonly","step","onpaste","formatter","disableCopyPaste","on","onChange","onInput","onBlur","nativeOn","$event","handleKeyPress","innerValue","text","_e","directives","rawName","icon","iconSize","onClick","BFormInput","BFormGroup","ValidationProvider","mixins","sweetAlert","Function","validator","showIcon","isAllowSpecialCharacters","isAllowOnlySpecialCharacters","isAllowCopyAndPaste","isAllowNegativeNumbers","validateInputLength","event","preventDefault","alertInfo","_watch","_makeModelMixin","defaultValue","warn","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","ELLIPSIS_THRESHOLD","DEFAULT_LIMIT","startNumber","_","number","classes","limit","page","keyCode","immediatePropagation","currentTarget","click","ariaLabel","disabled","ellipsisClass","ellipsisText","firstClass","firstNumber","firstText","hideEllipsis","hideGotoEndButtons","labelFirstPage","labelLastPage","labelNextPage","labelPage","labelPrevPage","lastClass","lastNumber","lastText","nextClass","nextText","pageClass","pills","prevClass","prevText","size","paginationMixin","localNumberOfPages","localLimit","btnSize","alignment","styleClass","computedCurrentPage","paginationParams","showFirstDots","showLastDots","numberOfLinks","math","lastPageNumber","pageList","_this$paginationParam","pages","idx","_i","_i2","_i3","newValue","oldValue","_this","$nextTick","handleKeyNav","shiftKey","isNav","propagation","focusFirst","focusPrev","focusLast","focusNext","getButtons","$el","btn","focusCurrent","_this2","find","el","_this3","_this4","reverse","_this5","buttons","indexOf","_this6","_this7","pageNumbers","map","p","_this$paginationParam2","fill","$buttons","isActivePage","pageNumber","noCurrentPage","makeEndBtn","linkTo","btnSlot","btnText","btnClass","pageTest","isDisabled","scope","$btnContent","normalizeSlot","$inner","linkProps","role","tabindex","ariaControls","keydown","makeEllipsis","isLast","makePageButton","active","tabIndex","btnContent","makePage","content","$firstPageBtn","offset","$lastPageBtn","$pagination","DEFAULT_PER_PAGE","DEFAULT_TOTAL_ROWS","totalRows","BPagination","pageSizeNumberOfPages","clickEvt","cancelable","vueTarget","defaultPrevented","contains","pageNum","show","staticStyle","proxy","BOverlay","toDateWithYear","moment","format","toDateWithYearFirst","toDateWithUnderscore","customDate","tocustomDate","toDateTimeFormat","toDateWithTime","selectedDate","toDateWithTimes","toDateWithCustomTime","toDateWithDateTime","toCustomDateTime","dateValue","toCustomDate","toDayMonthYear","toMonthYear","check","month","year","toDateWithMinute","toYearWithDate","splittedDate","split","commencementDate","Date","toDateWithMonth","checkDateFormat","splitDate","dateSpecial","dateParts","date","dateDifference","startDate","endDate","diff","dateTimeDifference","diffTime","abs","valueOf","days","hours","minutes","secs","hour","minute","sec","toMonthWithTime","toMonthWithYear","toMonthWithYearTime","getDate","numOfDays","setDate","getMinusOneDayDate","getDaysInMonth","frequency","today","getFullYear","getMonth","daysInMonth","getDaysInYear","formatSingleDates","day","inputDateStr","padStart","inputDate","setHours","convertDateString","dateString","dateObj","convertDate","operationYear","operationMonth","operationDay","ariaLive","forceShow","tooltip","BFormInvalidFeedback","goToAddCustomerInformation","showModal","resetFilter","customerList","tableHeaders","goToEditCustomerInformation","item","onViewCustomer","customerInformation","$set","meansOfIdentification","onViewInfo","address","nokAddress","employerAddress","_l","option","documentTypeOptions","onDocumentsUpload","url","fileExtension","pdfIcon","wordIcon","viewDocumentFile","fileName","modifiers","handleDownload","fetchCustomerInformation","resetFilters","hideModal","viewDocumentModalTitle","resetDocumentModal","viewDocumentData","BRow","BCol","BSpinner","BTable","BDropdown","BDropdownItem","BImg","Button","BModal","BTabs","BTab","BButton","InputField","SelectField","TextAreaField","FullScreenSpinner","TablePagination","TableEntries","BFormFile","Ripple","genderOptions","documentsFormData","file","documentIdentifier","categoryFormData","categoryName","level","specifyLevel","levelOptions","specifylevelOptions","customerID","title","lastName","firstName","otherNames","gender","maritalStatus","userID","maidenName","religion","phoneNumber","notificationPhoneNumber","email","notificationEmail","hometown","dateOfBirth","nationality","lga","bvn","nin","idNumber","meansOfIdentificationIssueDate","meansOfIdentificationExpiryDate","meansOfIdentificationPlaceOfIssue","pep","tin","nokName","nokGender","nokRelationship","nokPhoneNumber","nokEmail","occupation","employerName","officePhoneNumber","employeeID","oldCustomerID","customerType","sortColumn","direction","mounted","link","href","alertSuccess","$root","image","replace","$router","ariaInvalid","autocomplete","debounce","lazy","lazyFormatter","plaintext","trim","formTextMixin","localValue","vModelValue","modifyValue","computedClass","isRange","isColor","sizeFormClass","stateClass","computedDebounce","hasFormatter","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","$on","beforeDestroy","clearTimeout","formatValue","force","updateValue","doUpdate","$input","setTimeout","composing","formattedValue","focus","blur","TYPES","list","max","noWheel","localType","computedAttrs","form","safeId","computedAriaInvalid","computedListeners","bvListeners","change","setWheelStopper","deactivated","activated","onWheelFocus","onWheelBlur","document","stopWheel","removeSpecialChar","regex","test","removeNegativeNumber","removeCharAndSpace","persistPhoneNumber","persistAccountNumber","titleTag","BCardTitle","$","$padStart","WEBKIT_BUG","proto","forced","computeJustifyContent","cardHeader","justified","small","tabs","vertical","BNav","_objectSpread2","MODEL_PROP_NAME_ACTIVE","MODEL_EVENT_NAME_ACTIVE","inject","bvTabs","localActive","_isTab","tabClasses","activeTabClass","controlledBy","buttonId","computedNoFade","fade","computedLazy","activate","deactivate","firstTab","registerTab","updated","updateButton","hasNormalizedSlot","unregisterTab","activateTab","deactivateTab","mode","noFade","subTitle","subTitleTag","subTitleTextVariant","BCardSubTitle","bodyClass","BCardBody","bodyBgVariant","bodyBorderVariant","bodyTextVariant","$title","$subTitle","bodyTag","escapeChar","firstCharCode","charCodeAt","reduce","char","charCode","BFormRow","BFormValidFeedback","INPUTS","INPUT_SELECTOR","v","join","LEGEND_INTERACTIVE_ELEMENTS","breakpoint","description","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","prefix","propValue","identity","attr","newIds","oldIds","ids","array","onLegendClick","tagName","inputs","computedState","isFieldset","$label","labelContent","labelId","labelTag","for","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","BFormText","PLACEMENT_TOP_START","PLACEMENT_TOP_END","PLACEMENT_BOTTOM_START","PLACEMENT_BOTTOM_END","PLACEMENT_RIGHT_START","PLACEMENT_LEFT_START","clickOutMixin","listenForClickOut","clickOutElement","clickOutEventName","_clickOutHandler","beforeCreate","isClickOut","clickOutHandler","focusInMixin","listenForFocusIn","focusInElement","_focusInHandler","focusInHandler","ROOT_EVENT_NAME_SHOWN","ROOT_EVENT_NAME_HIDDEN","SELECTOR_FORM_CHILD","SELECTOR_ITEM","selector","els","boundary","dropleft","dropright","dropup","noFlip","popperOpts","dropdownMixin","provide","bvDropdown","bvNavbar","visible","visibleChangePrevented","inNavbar","toggler","toggle","directionClass","boundaryClass","eventName","bvEvent","menu","relatedTarget","componentId","emitEvent","$off","focusToggler","showMenu","hideMenu","$_popper","$_hideTimeout","whileOpenListen","destroyPopper","clearHideTimeout","emitOnRoot","createPopper","focusMenu","element","getPopperConfig","destroy","updatePopper","scheduleUpdate","_unused","placement","popperConfig","flip","enabled","boundariesElement","preventOverflow","isOpen","method","rootCloseListener","vm","hide","refocus","$once","_event","onMousedown","onKeydown","onEsc","onSplitClick","hideHandler","up","items","getItems","focusItem","userAgent","POSITION_COVER","bgColor","fixed","noCenter","noWrap","opacity","overlayTag","rounded","spinnerSmall","spinnerType","spinnerVariant","variant","wrapTag","zIndex","computedRounded","computedVariant","defaultOverlayFn","$overlay","$background","style","backgroundColor","backdropFilter","transform","appear","linkClass","inheritAttrs","bvAttrs","closeDropdown","plain","formCustomMixin","custom","formSizeMixin","block","className","loading","rows","maxlength","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototype","OBSERVER_PROP_NAME","VisibilityObserver","vnode","margin","once","observer","doneOnce","createObserver","stop","IntersectionObserver","handler","root","rootMargin","threshold","context","observe","entries","entry","isIntersecting","intersectionRatio","disconnect","mod","toLowerCase","_prevModifiers","unbind","VBVisible","componentUpdated","maxRows","noAutoShrink","noResize","wrap","BFormTextarea","listeners","heightInPx","computedStyle","styles","resize","computedRows","overflowY","computedMinRows","computedMaxRows","setHeight","visibleCallback","computeHeight","$isServer","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","minHeight","oldHeight","scrollHeight","contentRows","isAllowNumbersWithComma","isAllowAccountNumbersWithComma","headerClass","BCardHeader","headerBgVariant","headerBorderVariant","headerTextVariant","headerTag","$t","Pagination","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","every","getDataTransferItemEntry","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","Promise","all","kind","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","resolve","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","then","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","files","dragging","dropAllowed","hasFocus","computedAccept","extOrType","startMatch","endMatch","rx","RegExp","computedCapture","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","allowed","filesTraversed","names","reset","$_form","$form","isFileValid","some","a","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","add","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","onDrop","focusin","focusout","pointerEvents","dragenter","dragover","dragleave","drop","formStateMixin","menuClass","noCaret","splitButtonType","splitClass","splitHref","splitTo","splitVariant","toggleClass","toggleTag","toggleText","dropdownClasses","menuClasses","toggleClasses","commonProps","$buttonChildren","buttonContentDomProps","$split","btnProps","$toggle","mousedown","$menu","SELECTOR","autofocus","formControlMixin","handleAutofocus","clearable","setSelected","isBrowser","window","navigator","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","called","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getType","call","getStyleComputedProperty","property","nodeType","ownerDocument","defaultView","css","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","getBordersSize","axis","sideA","sideB","parseFloat","getSize","parseInt","getWindowSizes","classCallCheck","createClass","_extends","assign","hasOwnProperty","getClientRect","offsets","getBoundingClientRect","e","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","sort","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","findIndex","cur","match","runModifiers","ends","modifiersToRun","console","update","isDestroyed","arrowStyles","attributes","flipped","positionFixed","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","isNaN","isFinite","setStyles","unit","setAttributes","setAttribute","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","round","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","querySelector","len","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","counter","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","requestAnimationFrame","jquery","Utils","PopperUtils","notDisabled","tab","BVTabButton","controls","noKeyNav","posInSet","setSize","handleEvt","_this$tab","titleItemClass","titleLinkClass","titleLinkAttributes","$link","activeNavItemClass","navProps","contentClass","navClass","navWrapperClass","noNavStyle","currentTab","registeredTabs","localNavClass","$tab","previousTab","nextTab","updateTabs","$_observer","setObserver","childList","subtree","attributeFilter","getTabs","$tabs","$children","getButtonForTab","$btn","$button","$forceUpdate","tabEvent","focusButton","emitTabClick","clickTab","currentIndex","lastTab","$activeTab","$fallbackTab","_on","refInFor","$nav","$empty","col","row"],"mappings":"wOAEaA,EAAkB,CAC7BC,SAAU,kBACLC,eAAW,CACZC,SAAU,yBAGdC,QAAS,CACPC,kBADO,SACWC,GAChB,OAAOC,KAAKJ,SAASK,YAAYC,SAASH,O,oCCVhD,kDAEWI,EAAqB,aAAIC,OAAO,CACzCV,SAAU,CACRW,eAAgB,CAEdC,OAAO,EAGPC,IAAK,WACH,OAAOP,KAAKQ,MAAMC,MAAMJ,gBAI1BK,IAAK,SAAaC,GAChBX,KAAKQ,MAAMC,MAAMJ,eAAiBM,IAGtCC,aAAc,CAEZN,OAAO,EAGPC,IAAK,WACH,OAAOP,KAAKQ,MAAMC,MAAMG,cAI1BF,IAAK,SAAaC,GAChBX,KAAKQ,MAAMC,MAAMG,aAAeD,IAGpCE,mBAAoB,CAElBP,OAAO,EAGPC,IAAK,WACH,OAAOP,KAAKQ,MAAMC,MAAMI,oBAI1BH,IAAK,SAAaC,GAChBX,KAAKQ,MAAMC,MAAMI,mBAAqBF,KAI5Cd,QAAS,CAEPiB,OAAQ,WACN,IAAIC,GAGHA,EAAoBf,KAAKQ,MAAMC,OAAOK,OAAOE,MAAMD,EAAmBE,YAIzEC,kBAAmB,WACjB,IAAIC,GAGHA,EAAqBnB,KAAKQ,MAAMC,OAAOS,kBAAkBF,MAAMG,EAAoBF,YAItFG,aAAc,WACZ,IAAIC,GAGHA,EAAqBrB,KAAKQ,MAAMC,OAAOW,aAAaJ,MAAMK,EAAoBJ,gB,oCCrErF,kCAAO,IAAMK,EAAc,CACzBC,KADyB,WAEvB,MAAO,CACLC,QAAQ,EACRC,aAAa,EACbC,UAAU,EACVC,YAAa,GACbC,aAAc,GACdC,QAAS,GACTC,SAAU,EACVC,YAAa,EACbC,eAAgB,CAAC,GAAI,GAAI,GAAI,KAC7BC,WAAY,EACZC,cAAe,CACb,SACA,YAEFC,mBAAoB,EACpBC,gBAAiB,GACjBC,iBAAkB,EAClBC,oBAAqB,IAGzB5C,SAAU,CACR6C,aADQ,WAEN,OAAOvC,KAAKiC,YAEdO,cAJQ,WAKN,OAAOC,KAAKC,OAAO1C,KAAKuC,aAAevC,KAAK6B,QAAU,GAAK7B,KAAK6B,UAElEc,KAPQ,WAQN,OAAwB,IAApB3C,KAAKiC,WACA,EAEDjC,KAAK+B,YAAc/B,KAAK6B,SAAY7B,KAAK6B,QAAU,IAE7De,GAbQ,WAcN,OAAOH,KAAKI,IAAI7C,KAAK2C,KAAO3C,KAAK6B,QAAU,EAAG7B,KAAKuC,eAErDO,qBAhBQ,WAiBN,OAAO9C,KAAKmC,oBAEdY,sBAnBQ,WAoBN,OAAON,KAAKC,OAAO1C,KAAKmC,mBAAqBnC,KAAKoC,gBAAkB,GAAKpC,KAAKoC,kBAEhFY,YAtBQ,WAuBN,OAAgC,IAA5BhD,KAAKmC,mBACA,EAEDnC,KAAKsC,oBAAsBtC,KAAKoC,iBAAoBpC,KAAKoC,gBAAkB,IAErFa,WA5BQ,WA6BN,OAAOR,KAAKI,IAAI7C,KAAKgD,YAAchD,KAAKoC,gBAAkB,EAAGpC,KAAKmC,sBAGtEtC,QAAS,CACPqD,aADO,SACMC,GACX,MAAkB,WAAXA,EAAsB,gBAAkB,mBAEjDC,gBAJO,SAISC,GACd,OAAQrD,KAAK+B,YAAc/B,KAAK6B,QAAW7B,KAAK6B,QAAUwB,EAAQ,M,oCC5DxE,IAAIC,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACH,EAAIK,GAAG,UAAUF,EAAG,WAAW,CAACG,YAAY,8CAA8CC,MAAM,CAAC,IAAMP,EAAIQ,OAAOC,MAAMC,UAAUC,MAAQ,MAAQ,MAAM,QAAUX,EAAIY,QAAQ,MAAQZ,EAAIxD,MAAM,WAAY,GAAOqE,MAAM,CAACrE,MAAOwD,EAAW,QAAEc,SAAS,SAAUC,GAAMf,EAAI1B,QAAQyC,GAAKC,WAAW,cAAc,IACnaC,EAAkB,G,iCCgBtB,GACEC,KAAM,eACNC,WAAY,CACVC,QAAJ,KAEEC,MAAO,CACLT,QAAS,CACPU,KAAMC,MACNC,UAAU,GAEZhF,MAAO,CACL8E,KAAM,CAACG,OAAQC,OAAQC,OAAQC,SAC/BJ,UAAU,EACVK,QAAS,OAGb7D,KAhBF,WAiBI,MAAO,CACLM,QAAS,KAGbnC,SAAU,CACR2F,SADJ,WAEM,QAASrF,KAAK6B,UAGlByD,MAAO,CACLzD,QADJ,SACA,GACM7B,KAAKuF,MAAM,QAASxF,IAEtBA,MAJJ,SAIA,GACUY,IAAQX,KAAK6B,UACf7B,KAAK6B,QAAUlB,KAIrB6E,QApCF,WAqCQxF,KAAKD,QACPC,KAAK6B,QAAU7B,KAAKD,SCvD0V,I,kCCShX0F,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,WACA,MAIa,OAAAiB,E,gCCnBf,IAAIC,EAAc,EAAQ,QACtBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAU,EAAQ,QAClBC,EAAyB,EAAQ,QAEjCC,EAASL,EAAYG,GACrBG,EAAcN,EAAY,GAAGO,OAC7BC,EAAOzD,KAAKyD,KAGZC,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAWC,GACjC,IAIIC,EAASC,EAJTC,EAAId,EAASE,EAAuBO,IACpCM,EAAehB,EAASW,GACxBM,EAAeF,EAAEG,OACjBC,OAAyBC,IAAfR,EAA2B,IAAMX,EAASW,GAExD,OAAII,GAAgBC,GAA2B,IAAXE,EAAsBJ,GAC1DF,EAAUG,EAAeC,EACzBH,EAAeV,EAAOe,EAASZ,EAAKM,EAAUM,EAAQD,SAClDJ,EAAaI,OAASL,IAASC,EAAeT,EAAYS,EAAc,EAAGD,IACxEJ,EAASM,EAAID,EAAeA,EAAeC,KAItDM,EAAOC,QAAU,CAGfC,MAAOf,GAAa,GAGpBgB,IAAKhB,GAAa,K,2DChCpB,IAAIiB,EAAS,EAAQ,QACjBC,EAAsB,EAAQ,QAC9BzB,EAAW,EAAQ,QACnBE,EAAyB,EAAQ,QAEjCwB,EAAaF,EAAOE,WAIxBN,EAAOC,QAAU,SAAgBM,GAC/B,IAAIC,EAAM5B,EAASE,EAAuB9F,OACtCyH,EAAS,GACTC,EAAIL,EAAoBE,GAC5B,GAAIG,EAAI,GAAKA,GAAKC,IAAU,MAAML,EAAW,+BAC7C,KAAMI,EAAI,GAAIA,KAAO,KAAOF,GAAOA,GAAc,EAAJE,IAAOD,GAAUD,GAC9D,OAAOC,I,oCChBT,kGAKW7C,EAAQ,eAAsB,CACvCgD,GAAI,eAAS,QACbC,OAAQ,eAAS,QAAmB,GACpCC,WAAY,eAAS,QAAmB,GACxCC,UAAW,eAAS,QAAmB,IACtC,QAGQC,EAAqB,aAAI5H,OAAO,CACzCqE,KAAM,OACNwD,YAAY,EACZrD,MAAOA,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SACpB,OAAOF,EAAE,OAAQ,eAAU3G,EAAM,CAC/B8G,MAAO,CACL,cAAezD,EAAMiD,OACrB,gBAAiBjD,EAAMmD,WAEzBjE,MAAO,CACL8D,GAAIhD,EAAMgD,GACVE,WAAYlD,EAAMkD,cAElBM,O,6DC9BR,kDAEWE,EAAoB,aAAIlI,OAAO,CACxCV,SAAU,CACR6I,SAAU,CAERjI,OAAO,EAGPC,IAAK,WACH,OAAOP,KAAKQ,MAAMC,MAAM8H,WAG5BC,kBAAmB,CAEjBlI,OAAO,EAGPC,IAAK,WACH,OAAOP,KAAKQ,MAAMC,MAAM+H,oBAG5BC,aAAc,CAEZnI,OAAO,EAGPC,IAAK,WACH,OAAOP,KAAKQ,MAAMC,MAAMgI,gBAI9B5I,QAAS,CAEP6I,kBAAmB,WACjB,IAAI3H,EAGJ,OAAQA,EAAoBf,KAAKQ,MAAMC,OAAOiI,kBAAkB1H,MAAMD,EAAmBE,YAI3F0H,cAAe,WACb,IAAIxH,EAGJ,OAAQA,EAAqBnB,KAAKQ,MAAMC,OAAOkI,cAAc3H,MAAMG,EAAoBF,YAIzF2H,eAAgB,WACd,IAAIvH,EAGJ,OAAQA,EAAqBrB,KAAKQ,MAAMC,OAAOmI,eAAe5H,MAAMK,EAAoBJ,gB,0NCtD9F,SAAS4H,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAUpM,IAAI,EAAQ,eAAsB,eAASV,EAAcA,EAAc,GAAI,eAAU,OAAY,OAAea,KAAK,KAAM,YAAa,GAAI,CACjJC,OAAQ,eAAS,QACjBC,YAAa,eAAS,QACtBC,WAAY,eAAS,WAClB,QAGMC,EAA2B,aAAIrK,OAAO,CAC/CqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIuC,EAEA9F,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SAChBuC,EAAkB/F,EAAM+F,gBACxBC,EAAsBhG,EAAMgG,oBAC5BC,EAAoBjG,EAAMiG,kBAC9B,OAAO3C,EAAEtD,EAAMkG,UAAW,eAAUvJ,EAAM,CACxCsC,YAAa,cACbwE,MAAO,CAACzD,EAAM2F,aAAcG,EAAQ,GAAIZ,EAAgBY,EAAO,MAAMK,OAAOJ,GAAkBA,GAAkBb,EAAgBY,EAAO,UAAUK,OAAOH,GAAsBA,GAAsBd,EAAgBY,EAAO,QAAQK,OAAOF,GAAoBA,GAAoBH,IAClRM,SAAU5C,EAAW,GAAK,OAAA6C,EAAA,MAAWrG,EAAM4F,WAAY5F,EAAM0F,UAC3DlC,M,YCtCR,SAAS,EAAQU,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAAS,EAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAK,EAAQ1E,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAO,EAAgBJ,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmB,EAAQ3E,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAAS,EAAgBS,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EASpM,IAAI,EAAQ,eAAsB,eAAS,EAAc,EAAc,GAAI,eAAK,OAAW,CAAC,MAAO,MAAO,QAAS,SAAU,OAAQ,WAAY,GAAI,CAC1JgB,OAAQ,eAAS,QAAmB,GACpC/D,IAAK,eAAS,QAAmB,GACjCD,MAAO,eAAS,QAAmB,GACnCiE,IAAK,eAAS,QAAmB,MAC9B,QAGMC,EAAwB,aAAIhL,OAAO,CAC5CqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ8J,EAAMzG,EAAMyG,IACZC,EAAM1G,EAAM0G,IACZC,EAAQ3G,EAAM2G,MACdC,EAAS5G,EAAM4G,OACfC,EAAY,WAYhB,OAVI7G,EAAMuG,IACRM,GAAa,OACJ7G,EAAM8G,OAAS9G,EAAMuC,IAC9BsE,GAAa,SACJ7G,EAAMsG,OACfO,GAAa,WACJ7G,EAAM+G,MAAQ/G,EAAMsC,SAC7BuE,GAAa,SAGRvD,EAAE,MAAO,eAAU3G,EAAM,CAC9B8G,MAAOoD,EACP3H,MAAO,CACLuH,IAAKA,EACLC,IAAKA,EACLC,MAAOA,EACPC,OAAQA,SClDhB,SAAS,EAAQ1C,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAAS,EAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAK,EAAQ1E,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAO,EAAgBJ,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmB,EAAQ3E,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAAS,EAAgBS,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAgB3M,IAAI0B,EAAe,eAAU,EAAe,OAAevB,KAAK,KAAM,QACtEuB,EAAaC,OAAO9G,UAAW,EACxB,IAAI,EAAQ,eAAsB,eAAS,EAAc,EAAc,EAAc,EAAc,EAAc,EAAc,GAAI,QAAiB,QAAmB,GAAmB6G,GAAeE,EAAA,MAAY,GAAI,CAC9NC,MAAO,eAAS,QAChBC,OAAQ,eAAS,QAAmB,MACjC,QAGMC,EAAqB,aAAI7L,OAAO,CACzCqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAI+D,EAEAtH,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ4K,EAAQhE,EAAKgE,MACbC,EAAcjE,EAAKiE,YACnBP,EAASjH,EAAMiH,OACfQ,EAAUzH,EAAMyH,QAChBC,EAAW1H,EAAM0H,SACjBC,EAAW3H,EAAM2H,SACjBC,EAAS5H,EAAM4H,OACfC,EAAY7H,EAAM6H,UAClBC,EAAS9H,EAAM8H,OACfC,EAAa/H,EAAM+H,WACnBrC,EAAS1F,EAAM0F,OACfE,EAAa5F,EAAM4F,WACnBuB,EAAQnH,EAAMmH,MACda,EAAchI,EAAMgI,YACpBC,EAAYjI,EAAMiI,UAClBC,EAAgBlI,EAAMkI,cACtBC,EAAeX,GAAe,GAC9BY,EAASb,IACTc,EAAY,GACZC,EAAYhF,IACZiF,EAAWjF,IAEf,GAAI2D,EAAQ,CACV,IAAIuB,EAAOlF,EAAEkD,EAAU,CACrBxG,MAAO,eAAWgH,EAAchH,EAAO,OAAiByF,KAAK,KAAM,UAGjEoC,EACFU,EAAWC,EAEXF,EAAYE,EAIhB,IAAIC,EAAUnF,IACVoF,EAAgB,eAAkB,OAAkBP,EAAcC,IAElEM,GAAiBZ,GAAUC,KAC7BU,EAAUnF,EAAE,OAAa,CACvBtD,MAAO,eAAW,OAAkBA,GACpCoG,SAAUsC,EAAgB,GAAK,OAAArC,EAAA,MAAW0B,EAAYD,IACrD,eAAc,OAAkBO,EAAWF,EAAcC,KAG9D,IAAIO,EAAW,eAAc,OAAmBN,EAAWF,EAAcC,GAEpEpI,EAAMoH,SACTuB,EAAWrF,EAAE,OAAW,CACtBtD,MAAO,eAAW,OAAgBA,IACjC2I,GAGC3I,EAAM4I,SAAW3B,IACnB0B,EAAWrF,EAAE,MAAO,CAClBrE,YAAa,qBACZ,CAACqJ,EAAWK,EAAUJ,IAEzBD,EAAYhF,IACZiF,EAAWjF,MAIf,IAAIuF,EAAUvF,IACVwF,EAAgB,eAAkB,OAAkBX,EAAcC,GAStE,OAPIU,GAAiBpD,GAAUE,KAC7BiD,EAAUvF,EAAEuC,EAAa,CACvB7F,MAAO,eAAW,EAAkBA,GACpCoG,SAAUsC,EAAgB,GAAK,OAAArC,EAAA,MAAWT,EAAYF,IACrD,eAAc,OAAkB2C,EAAWF,EAAcC,KAGvD9E,EAAEtD,EAAM+I,IAAK,eAAUpM,EAAM,CAClCsC,YAAa,OACbwE,OAAQ6D,EAAS,CACf,WAAYG,GAAWE,EACvB,oBAAqBD,GAAYE,MAAaH,GAAWE,IACxD,EAAgBL,EAAQ,QAAQnB,OAAOgB,GAAQA,GAAQ,EAAgBG,EAAQ,MAAMnB,OAAO8B,GAAYA,GAAY,EAAgBX,EAAQ,UAAUnB,OAAO+B,GAAgBA,GAAgB,EAAgBZ,EAAQ,QAAQnB,OAAO6B,GAAcA,GAAcV,KACjQ,CAACgB,EAAWG,EAASE,EAAUE,EAASN,Q,kCCnHhD,IAAI7J,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIqE,KAAK,CAACrE,EAAIK,GAAGL,EAAIqK,GAAGrK,EAAIsK,OAAO,OAAOnK,EAAG,sBAAsB,CAACI,MAAM,CAAC,KAAOP,EAAIuK,UAAU,MAAQvK,EAAIwK,MAAM,IAAMxK,EAAIyK,KAAK5B,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,UAAUqE,GAAG,SAASC,GACtU,IAAIC,EAASD,EAAIC,OACjB,MAAO,CAAC1K,EAAG,MAAM,CAACG,YAAY,6BAA6B,CAACH,EAAG,eAAe,CAACI,MAAM,CAAC,GAAKP,EAAIqE,GAAG,IAAMrE,EAAIqE,GAAG,KAAOrE,EAAIsB,KAAK,YAActB,EAAI8K,YAAY,SAAW9K,EAAI+K,SAAS,MAAQ/K,EAAIxD,MAAM,QAAQqO,EAAOvH,OAAS,IAAY,KAAK,KAAOtD,EAAIgL,KAAK,QAAUhL,EAAIiL,QAAQ,UAAYjL,EAAIkL,UAAU,aAAe,MAAM,eAAelL,EAAImL,kBAAkBC,GAAG,CAAC,OAASpL,EAAIqL,SAAS,MAAQrL,EAAIsL,QAAQ,KAAOtL,EAAIuL,QAAQC,SAAS,CAAC,SAAW,SAASC,GAAQ,OAAOzL,EAAI0L,eAAejO,MAAM,KAAMC,YAAY,QAAU,SAAS+N,GAAQ,OAAOzL,EAAImL,iBAAiB1N,MAAM,KAAMC,aAAamD,MAAM,CAACrE,MAAOwD,EAAc,WAAEc,SAAS,SAAUC,GAAMf,EAAI2L,WAAW5K,GAAKC,WAAW,gBAAiBhB,EAAQ,KAAEG,EAAG,IAAI,CAACG,YAAY,QAAQ,CAACN,EAAIK,GAAG,eAAeL,EAAIqK,GAAGrK,EAAI4L,MAAM,gBAAgB5L,EAAI6L,KAAK1L,EAAG,eAAe,CAAC2L,WAAW,CAAC,CAAC5K,KAAK,OAAO6K,QAAQ,SAASvP,MAAOwD,EAAY,SAAEgB,WAAW,aAAaV,YAAY,sBAAsBC,MAAM,CAAC,KAAOP,EAAIgM,KAAK,KAAOhM,EAAIiM,UAAUb,GAAG,CAAC,MAAQpL,EAAIkM,YAAY,GAAG/L,EAAG,QAAQ,CAACG,YAAY,0BAA0B,CAACN,EAAIK,GAAGL,EAAIqK,GAAGQ,EAAO,eAAe,IAAI,IAC/kC5J,EAAkB,G,kFC2DtB,GACA,OACA,QACA,WACA,SACA,MACA,SACA,SAEA,GACEC,KAAM,aACNC,WAAY,CACVgL,WAAJ,OACIC,WAAJ,OACIC,mBAAJ,QAEEC,OAAQ,CAACC,EAAX,MACElL,MAAO,CACLiJ,MAAO,CACLhJ,KAAMI,OACNF,UAAU,GAEZ+I,UAAW,CACTjJ,KAAMI,OACNG,QAAS,WAEXoJ,QAAS,CACP3J,KAAMI,OACNG,QAAS,KACTL,UAAU,GAEZgJ,MAAO,CACLlJ,KAAM,CAACG,OAAQC,QACfG,QAAS,IAEXwC,GAAI,CACF/C,KAAMI,OACNF,UAAU,GAEZsJ,YAAa,CACXxJ,KAAMI,OACNF,UAAU,EACVK,QAAS,MAEX+J,KAAM,CACJtK,KAAMI,OACNF,UAAU,EACVK,QAAS,MAEXkJ,SAAU,CACRzJ,KAAMM,QACNJ,UAAU,GAEZhF,MAAO,CACL8E,KAAM,KACNO,QAAS,IAEXmJ,KAAM,CACJ1J,KAAMK,OACNH,UAAU,EACVK,QAAS,MAEXyJ,QAAS,CACPhK,KAAMkL,SACN3K,QAAS,aACTL,UAAU,GAEZ6J,SAAU,CACR/J,KAAMkL,SACN3K,QAAS,aACTL,UAAU,GAEZ+J,OAAQ,CACNjK,KAAM,CAACkL,SAAU7K,OAAQD,QACzBG,QAAS,aACTL,UAAU,GAEZ0K,QAAS,CACP5K,KAAMkL,SACN3K,QAAS,aACTL,UAAU,GAEZF,KAAM,CACJA,KAAMI,OACNF,UAAU,EACVK,QAAS,OACT4K,UAAW,SAAjB,0BAEIT,KAAM,CACJ1K,KAAMI,OACNG,QAAS,kBACTL,UAAU,GAEZyK,SAAU,CACR3K,KAAMI,OACNG,QAAS,KACTL,UAAU,GAEZkL,SAAU,CACRpL,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZiJ,IAAK,CACHnJ,KAAMI,OACNG,QAAS,IAEXqJ,UAAW,CACT5J,KAAMkL,SACN3K,QAAS,KACTL,UAAU,GAEZmL,yBAA0B,CACxBrL,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZoL,6BAA8B,CAC5BtL,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZqL,oBAAqB,CACnBvL,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZsL,uBAAwB,CACtBxL,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZuB,UAAW,CACTzB,KAAMK,OACNH,UAAU,EACVK,QAAS,OAGb7D,KAjIF,WAkII,MAAO,CACL2N,WAAY,KAGhBxP,SAAU,CACR2F,SADJ,WAEM,QAASrF,KAAKkP,aAGlB5J,MAAO,CACL4J,WADJ,SACA,GACMlP,KAAKuF,MAAM,QAASxF,IAEtBA,MAJJ,SAIA,GACUY,IAAQX,KAAKkP,aACflP,KAAKkP,WAAavO,KAIxB6E,QArJF,WAsJQxF,KAAKD,QACPC,KAAKkP,WAAalP,KAAKD,QAG3BF,QAAS,CACPyQ,oBADJ,SACA,KACM,QAAIC,EAAM9G,OAAO1J,OAASwQ,EAAM9G,OAAO1J,MAAM8G,OAASP,KAEpDiK,EAAMC,kBACC,IAKXvB,eAVJ,SAUA,GACWjP,KAAKkQ,0BACR,OAAR,OAAQ,CAAR,GAEWlQ,KAAKmQ,8BACR,OAAR,OAAQ,CAAR,GAEwB,WAAdnQ,KAAK6E,MAAsB7E,KAAKqQ,wBAClC,OAAR,OAAQ,CAAR,GAEUrQ,KAAKsG,WACPtG,KAAKsQ,oBAAoBC,EAAOvQ,KAAKsG,YAIzCoI,iBAzBJ,SAyBA,GACM,IAAK1O,KAAKkQ,2BAA6BlQ,KAAKoQ,oBAAqB,CAC/D,IAAR,wBACQ,GAAR,KAAY,GAAZ,iBAEU,OADApQ,KAAKyQ,UAAU,CAAzB,qCACiB,MC/PkV,I,wBCQ/VhL,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,WACA,MAIa,OAAAiB,E,mFCnBXiL,E,gPAEJ,SAAS7H,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAuB3M,IAAIyG,EAAkB,eAAe,QAAS,CAC5C9L,KAAM,OACN+L,aAAc,KAGdZ,UAAW,SAAmBjQ,GAC5B,SAAK,eAAOA,IAAU,eAAUA,EAAO,GAAK,KAC1C,OAAA8Q,EAAA,MAAK,oDAAqD,UACnD,MAMTC,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgB/L,MAC7BqM,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBJ,MAInCa,EAAqB,EAErBC,EAAgB,EAGhB,EAAgB,SAAuBC,EAAa9O,GACtD,OAAO,eAAYA,GAAe,SAAU+O,EAAG7H,GAC7C,MAAO,CACL8H,OAAQF,EAAc5H,EACtB+H,QAAS,UAMX,EAAgB,SAAuB1R,GACzC,IAAI2R,EAAQ,eAAU3R,IAAU,EAChC,OAAO2R,EAAQ,EAAIL,EAAgBK,GAIjC,EAAsB,SAA6B/Q,EAAK6B,GAC1D,IAAImP,EAAO,eAAUhR,IAAQ,EAC7B,OAAOgR,EAAOnP,EAAgBA,EAAgBmP,EAAO,EAAI,EAAIA,GAK3D,EAAa,SAAoBpB,GACnC,GAAIA,EAAMqB,UAAY,OAOpB,OALA,eAAUrB,EAAO,CACfsB,sBAAsB,IAGxBtB,EAAMuB,cAAcC,SACb,GAKA,EAAQ,eAAsB,eAASvI,EAAcA,EAAc,GAAIwH,GAAa,GAAI,CACjGjF,MAAO,eAAS,OAAkB,QAClCiG,UAAW,eAAS,OAAkB,cACtCC,SAAU,eAAS,QAAmB,GACtCC,cAAe,eAAS,QACxBC,aAAc,eAAS,OAAkB,KAEzCC,WAAY,eAAS,QACrBC,YAAa,eAAS,QAAmB,GACzCC,UAAW,eAAS,OAAkB,KAEtCC,aAAc,eAAS,QAAmB,GAC1CC,mBAAoB,eAAS,QAAmB,GAChDC,eAAgB,eAAS,OAAkB,oBAC3CC,cAAe,eAAS,OAAkB,mBAC1CC,cAAe,eAAS,OAAkB,mBAC1CC,UAAW,eAAS,OAA2B,cAC/CC,cAAe,eAAS,OAAkB,uBAC1CC,UAAW,eAAS,QACpBC,WAAY,eAAS,QAAmB,GACxCC,SAAU,eAAS,OAAkB,KAErCtB,MAAO,eAAS,OAAyBL,GAEzC,SAAUtR,GACR,QAAI,eAAUA,EAAO,GAAK,KACxB,OAAA8Q,EAAA,MAAK,iDAAkD,UAChD,MAKXoC,UAAW,eAAS,QACpBC,SAAU,eAAS,OAAkB,KAErCC,UAAW,eAAS,QACpBC,MAAO,eAAS,QAAmB,GACnCC,UAAW,eAAS,QACpBC,SAAU,eAAS,OAAkB,KAErCC,KAAM,eAAS,WACZ,cAGMC,EAAkB,aAAIpT,OAAO,CACtCyP,OAAQ,CAACiB,EAAY,QACrBlM,MAAO,EACPrD,KAAM,WAEJ,IAAIQ,EAAc,eAAU/B,KAAKiR,GAAkB,GAEnD,OADAlP,EAAcA,EAAc,EAAIA,GAAe,EACxC,CACLA,YAAaA,EACb0R,mBAAoB,EACpBC,WAAYrC,IAGhB3R,SAAU,CACRiU,QAAS,WACP,IAAIJ,EAAOvT,KAAKuT,KAChB,OAAOA,EAAO,cAAcxI,OAAOwI,GAAQ,IAE7CK,UAAW,WACT,IAAI7H,EAAQ/L,KAAK+L,MAEjB,MAAc,WAAVA,EACK,yBACY,QAAVA,GAA6B,UAAVA,EACrB,sBACY,SAAVA,EAGF,cAGF,IAET8H,WAAY,WACV,OAAO7T,KAAKoT,MAAQ,qBAAuB,IAE7CU,oBAAqB,WACnB,OAAO,EAAoB9T,KAAK+B,YAAa/B,KAAKyT,qBAEpDM,iBAAkB,WAEhB,IAAIrC,EAAQ1R,KAAK0T,WACblR,EAAgBxC,KAAKyT,mBACrB1R,EAAc/B,KAAK8T,oBACnBvB,EAAevS,KAAKuS,aACpBF,EAAcrS,KAAKqS,YACnBU,EAAa/S,KAAK+S,WAClBiB,GAAgB,EAChBC,GAAe,EACfC,EAAgBxC,EAChBJ,EAAc,EAEd9O,GAAiBkP,EAEnBwC,EAAgB1R,EACPT,EAAc2P,EAAQ,GAAKA,EAAQN,GACvCmB,IAAgBQ,IACnBkB,GAAe,EACfC,EAAgBxC,GAASW,EAAc,EAAI,IAG7C6B,EAAgB,OAAAC,EAAA,MAAQD,EAAexC,IAC9BlP,EAAgBT,EAAc,EAAI2P,GAASA,EAAQN,GACvDmB,IAAgBF,IACnB2B,GAAgB,EAChBE,EAAgBxC,GAASqB,EAAa,EAAI,IAG5CzB,EAAc9O,EAAgB0R,EAAgB,IAG1CxC,EAAQN,IACV8C,EAAgBxC,GAASa,EAAe,EAAI,GAC5CyB,IAAoBzB,IAAgBF,GACpC4B,IAAmB1B,IAAgBQ,IAGrCzB,EAAcvP,EAAc,OAAAoS,EAAA,MAAUD,EAAgB,IAMpD5C,EAAc,GAChBA,EAAc,EACd0C,GAAgB,GACP1C,EAAc9O,EAAgB0R,IACvC5C,EAAc9O,EAAgB0R,EAAgB,EAC9CD,GAAe,GAGbD,GAAiB3B,GAAef,EAAc,IAChD4C,GAAgC,EAChC5C,EAAc,EACd0C,GAAgB,GAGlB,IAAII,EAAiB9C,EAAc4C,EAAgB,EAkBnD,OAhBID,GAAgBlB,GAAcqB,EAAiB5R,EAAgB,IACjE0R,GAAiCE,IAAmB5R,EAAgB,EAAI,EAAI,EAC5EyR,GAAe,GAIbvC,GAASN,IACPiB,GAA+B,IAAhBf,EACjB4C,EAAgB,OAAAC,EAAA,MAAQD,EAAgB,EAAG1R,EAAekP,EAAQ,GACzDqB,GAAcvQ,IAAkB8O,EAAc4C,EAAgB,IACvE5C,EAAc,OAAA6C,EAAA,MAAQ7C,EAAc,EAAG,GACvC4C,EAAgB,OAAAC,EAAA,MAAQ3R,EAAgB8O,EAAc,EAAG9O,EAAekP,EAAQ,KAIpFwC,EAAgB,OAAAC,EAAA,MAAQD,EAAe1R,EAAgB8O,EAAc,GAC9D,CACL0C,cAAeA,EACfC,aAAcA,EACdC,cAAeA,EACf5C,YAAaA,IAGjB+C,SAAU,WAER,IAAIC,EAAwBtU,KAAK+T,iBAC7BG,EAAgBI,EAAsBJ,cACtC5C,EAAcgD,EAAsBhD,YACpCvP,EAAc/B,KAAK8T,oBAEnBS,EAAQ,EAAcjD,EAAa4C,GAKvC,GAAIK,EAAM1N,OAAS,EAAG,CACpB,IAAI2N,EAAMzS,EAAcuP,EAEpBG,EAAU,oBAEd,GAAY,IAAR+C,EAEF,IAAK,IAAI9K,EAAI,EAAGA,EAAI6K,EAAM1N,OAAQ6C,IAChC6K,EAAM7K,GAAG+H,QAAUA,OAEhB,GAAI+C,IAAQD,EAAM1N,OAAS,EAEhC,IAAK,IAAI4N,EAAK,EAAGA,EAAKF,EAAM1N,OAAS,EAAG4N,IACtCF,EAAME,GAAIhD,QAAUA,MAEjB,CAEL,IAAK,IAAIiD,EAAM,EAAGA,EAAMF,EAAM,EAAGE,IAE/BH,EAAMG,GAAKjD,QAAUA,EAGvB,IAAK,IAAIkD,EAAMJ,EAAM1N,OAAS,EAAG8N,EAAMH,EAAM,EAAGG,IAE9CJ,EAAMI,GAAKlD,QAAUA,GAK3B,OAAO8C,IAGXjP,OAAQoL,EAAS,GAAI5G,EAAgB4G,EAAQO,GAAiB,SAAU2D,EAAUC,GAC5ED,IAAaC,IACf7U,KAAK+B,YAAc,EAAoB6S,EAAU5U,KAAKyT,wBAEtD3J,EAAgB4G,EAAQ,eAAe,SAAqBkE,EAAUC,GACpED,IAAaC,GAEf7U,KAAKuF,MAAM4L,EAAkByD,EAAW,EAAIA,EAAW,SAEvD9K,EAAgB4G,EAAQ,SAAS,SAAekE,EAAUC,GACxDD,IAAaC,IACf7U,KAAK0T,WAAa,EAAckB,OAEhClE,GACJlL,QAAS,WACP,IAAIsP,EAAQ9U,KAGZA,KAAK0T,WAAa,EAAc1T,KAAK0R,OACrC1R,KAAK+U,WAAU,WAEbD,EAAM/S,YAAc+S,EAAM/S,YAAc+S,EAAMrB,mBAAqBqB,EAAMrB,mBAAqBqB,EAAM/S,gBAGxGlC,QAAS,CACPmV,aAAc,SAAsBzE,GAClC,IAAIqB,EAAUrB,EAAMqB,QAChBqD,EAAW1E,EAAM0E,SAGjBjV,KAAKkV,QAKLtD,IAAY,QAAaA,IAAY,QACvC,eAAUrB,EAAO,CACf4E,aAAa,IAEfF,EAAWjV,KAAKoV,aAAepV,KAAKqV,aAC3BzD,IAAY,QAAcA,IAAY,SAC/C,eAAUrB,EAAO,CACf4E,aAAa,IAEfF,EAAWjV,KAAKsV,YAActV,KAAKuV,eAGvCC,WAAY,WAEV,OAAO,eAAU,gCAAiCxV,KAAKyV,KAAKtM,QAAO,SAAUuM,GAC3E,OAAO,eAAUA,OAGrBC,aAAc,WACZ,IAAIC,EAAS5V,KAGbA,KAAK+U,WAAU,WACb,IAAIW,EAAME,EAAOJ,aAAaK,MAAK,SAAUC,GAC3C,OAAO,eAAU,eAAQA,EAAI,iBAAkB,KAAOF,EAAO9B,uBAG1D,eAAa4B,IAEhBE,EAAOR,iBAIbA,WAAY,WACV,IAAIW,EAAS/V,KAGbA,KAAK+U,WAAU,WACb,IAAIW,EAAMK,EAAOP,aAAaK,MAAK,SAAUC,GAC3C,OAAQ,eAAWA,MAGrB,eAAaJ,OAGjBJ,UAAW,WACT,IAAIU,EAAShW,KAGbA,KAAK+U,WAAU,WACb,IAAIW,EAAMM,EAAOR,aAAaS,UAAUJ,MAAK,SAAUC,GACrD,OAAQ,eAAWA,MAGrB,eAAaJ,OAGjBL,UAAW,WACT,IAAIa,EAASlW,KAGbA,KAAK+U,WAAU,WACb,IAAIoB,EAAUD,EAAOV,aAEjBnS,EAAQ8S,EAAQC,QAAQ,kBAExB/S,EAAQ,IAAM,eAAW8S,EAAQ9S,EAAQ,KAC3C,eAAa8S,EAAQ9S,EAAQ,QAInCkS,UAAW,WACT,IAAIc,EAASrW,KAGbA,KAAK+U,WAAU,WACb,IAAIoB,EAAUE,EAAOb,aAEjBnS,EAAQ8S,EAAQC,QAAQ,kBAExB/S,EAAQ8S,EAAQtP,OAAS,IAAM,eAAWsP,EAAQ9S,EAAQ,KAC5D,eAAa8S,EAAQ9S,EAAQ,SAKrCC,OAAQ,SAAgB4E,GACtB,IAAIoO,EAAStW,KAETiS,EAAWjS,KAAKiS,SAChBW,EAAY5S,KAAK4S,UACjBZ,EAAYhS,KAAKgS,UACjBkD,EAAQlV,KAAKkV,MACb1S,EAAgBxC,KAAKyT,mBACrB1R,EAAc/B,KAAK8T,oBACnByC,EAAcvW,KAAKqU,SAASmC,KAAI,SAAUC,GAC5C,OAAOA,EAAEjF,UAEPkF,EAAyB1W,KAAK+T,iBAC9BC,EAAgB0C,EAAuB1C,cACvCC,EAAeyC,EAAuBzC,aACtC0C,EAAsB,SAAf3W,KAAK+L,MACZ6K,EAAW,GAEXC,EAAe,SAAsBC,GACvC,OAAOA,IAAe/U,GAGpBgV,EAAgB/W,KAAK+B,YAAc,EAEnCiV,EAAa,SAAoBC,EAAQjF,EAAWkF,EAASC,EAASC,EAAUC,EAAUxN,GAC5F,IAAIyN,EAAarF,GAAY4E,EAAaQ,IAAaN,GAAiBE,EAAS,GAAKA,EAASzU,EAC3FsU,EAAaG,EAAS,EAAI,EAAIA,EAASzU,EAAgBA,EAAgByU,EACvEM,EAAQ,CACVtF,SAAUqF,EACV3F,KAAMmF,EACNzT,MAAOyT,EAAa,GAElBU,EAAclB,EAAOmB,cAAcP,EAASK,IAAU,eAASJ,IAAYjP,IAC3EwP,EAASxP,EAAEoP,EAAa,OAASpC,EAAQ,OAAQ,SAAU,CAC7DrR,YAAa,YACbwE,MAAO,CACL,eAAgB6M,IAAUoC,GAAcX,GAE1C/R,MAAO0S,IAAepC,EAAQ,GAAKoB,EAAOqB,UAAUV,GACpDnT,MAAO,CACL8T,KAAM1C,EAAQ,KAAO,WACrBrQ,KAAMqQ,GAASoC,EAAa,KAAO,SACnCO,SAAUP,GAAcpC,EAAQ,KAAO,KACvC,aAAclD,EACd,gBAAiBsE,EAAOwB,cAAgB,KACxC,gBAAiBR,EAAa,OAAS,MAEzC3I,GAAI2I,EAAa,GAAK,CACpB,SAAU,SAAe/G,GACvB+F,EAAO7G,QAAQc,EAAO0G,IAExBc,QAAS,IAEV,CAACP,IACJ,OAAOtP,EAAE,KAAM,CACb2B,IAAKA,EACLhG,YAAa,YACbwE,MAAO,CAAC,CACN4J,SAAUqF,EACV,YAAaX,EACb,SAAUA,IAASzB,IAAUoC,GAC5BF,GACHtT,MAAO,CACL8T,KAAM1C,EAAQ,KAAO,eACrB,cAAeoC,EAAa,OAAS,OAEtC,CAACI,KAIFM,EAAe,SAAsBC,GACvC,OAAO/P,EAAE,KAAM,CACbrE,YAAa,YACbwE,MAAO,CAAC,WAAY,oBAAqBsO,EAAO,YAAc,GAAIL,EAAOpE,eACzEpO,MAAO,CACL8T,KAAM,aAER/N,IAAK,YAAYkB,OAAOkN,EAAS,OAAS,UACzC,CAAC/P,EAAE,OAAQ,CACZrE,YAAa,aACZ,CAACyS,EAAOmB,cAAc,SAA4B,eAASnB,EAAOnE,eAAiBjK,SAIpFgQ,EAAiB,SAAwBvG,EAAM6C,GACjD,IAAIsC,EAAanF,EAAKH,OAClB2G,EAAStB,EAAaC,KAAgBC,EAEtCqB,EAAWnG,EAAW,KAAOkG,GAAUpB,GAAyB,IAARvC,EAAY,IAAM,KAC1E1Q,EAAQ,CACV8T,KAAM1C,EAAQ,KAAO,gBACrBrQ,KAAMqQ,GAASjD,EAAW,KAAO,SACjC,gBAAiBA,EAAW,OAAS,KACrC,gBAAiBqE,EAAOwB,cAAgB,KACxC,aAAc,eAAgBlF,GAE9BA,EAAUkE,GAAc,GAAG/L,OAAO,eAAW6H,GAAaA,IAAcA,EAAW,KAAK7H,OAAO+L,GAC/F,eAAgB5B,EAAQ,KAAOiD,EAAS,OAAS,QACjD,eAAgBjD,GAASiD,EAAS,OAAS,KAC3C,gBAAiBjD,EAAQ,KAAO4B,EAChC,eAAgB5B,EAAQ,KAAO1S,EAE/BqV,SAAU3C,EAAQ,KAAOkD,GAEvBC,EAAa,eAAS/B,EAAOgC,SAASxB,IACtCS,EAAQ,CACV5F,KAAMmF,EACNzT,MAAOyT,EAAa,EACpByB,QAASF,EACTF,OAAQA,EACRlG,SAAUA,GAERyF,EAASxP,EAAE+J,EAAW,OAASiD,EAAQ,OAAQ,SAAU,CAC3DtQ,MAAOqN,IAAaiD,EAAQ,GAAKoB,EAAOqB,UAAUb,GAClDjT,YAAa,YACbwE,MAAO,CACL,eAAgB6M,IAAUjD,GAAY0E,GAExC7S,MAAOA,EACP6K,GAAIsD,EAAW,GAAK,CAClB,SAAU,SAAe1B,GACvB+F,EAAO7G,QAAQc,EAAOuG,IAExBiB,QAAS,IAEV,CAACzB,EAAOmB,cAAc,OAAgBF,IAAUc,IACnD,OAAOnQ,EAAE,KAAM,CACbrE,YAAa,YACbwE,MAAO,CAAC,CACN4J,SAAUA,EACVkG,OAAQA,EACR,YAAaxB,EACb,SAAUA,IAASzB,IAAUjD,GAC5BN,EAAKF,QAAS6E,EAAOnD,WACxBrP,MAAO,CACL8T,KAAM1C,EAAQ,KAAO,gBAEvBrL,IAAK,QAAQkB,OAAO+L,IACnB,CAACY,KAKFc,EAAgBtQ,IAEflI,KAAKqS,aAAgBrS,KAAKwS,qBAC7BgG,EAAgBxB,EAAW,EAAGhX,KAAKyS,eAAgB,OAAsBzS,KAAKsS,UAAWtS,KAAKoS,WAAY,EAAG,0BAG/GwE,EAASrN,KAAKiP,GAEd5B,EAASrN,KAAKyN,EAAWjV,EAAc,EAAG/B,KAAK6S,cAAe,OAAqB7S,KAAKsT,SAAUtT,KAAKqT,UAAW,EAAG,yBAErHuD,EAASrN,KAAKvJ,KAAKqS,aAAkC,IAAnBkE,EAAY,GAAW2B,EAAe,CACtE1G,OAAQ,GACP,GAAKtJ,KAER0O,EAASrN,KAAKyK,EAAgBgE,GAAa,GAAS9P,KAEpDlI,KAAKqU,SAASzK,SAAQ,SAAU+H,EAAM6C,GACpC,IAAIiE,EAASzE,GAAiBsC,EAAOjE,aAAkC,IAAnBkE,EAAY,GAAW,EAAI,EAC/EK,EAASrN,KAAK2O,EAAevG,EAAM6C,EAAMiE,OAG3C7B,EAASrN,KAAK0K,EAAe+D,GAAa,GAAQ9P,KAElD0O,EAASrN,KAAKvJ,KAAK+S,YAAcwD,EAAYA,EAAY1P,OAAS,KAAOrE,EAAgB0V,EAAe,CACtG1G,OAAQhP,IACN,GAAK0F,KAET0O,EAASrN,KAAKyN,EAAWjV,EAAc,EAAG/B,KAAK2S,cAAe,OAAqB3S,KAAKkT,SAAUlT,KAAKiT,UAAWzQ,EAAe,yBAGjI,IAAIkW,EAAexQ,IAEdlI,KAAK+S,YAAe/S,KAAKwS,qBAC5BkG,EAAe1B,EAAWxU,EAAexC,KAAK0S,cAAe,OAAqB1S,KAAKgT,SAAUhT,KAAK8S,UAAWtQ,EAAe,yBAGlIoU,EAASrN,KAAKmP,GAEd,IAAIC,EAAczQ,EAAE,KAAM,CACxBrE,YAAa,aACbwE,MAAO,CAAC,eAAgBrI,KAAK2T,QAAS3T,KAAK4T,UAAW5T,KAAK6T,YAC3D/P,MAAO,CACL8T,KAAM1C,EAAQ,KAAO,UACrB,gBAAiBjD,EAAW,OAAS,QACrC,aAAciD,EAAQ,KAAOlD,GAAa,MAG5CrD,GAAIuG,EAAQ,GAAK,CACf6C,QAAS/X,KAAKgV,cAEhB7G,IAAK,MACJyI,GAEH,OAAI1B,EACKhN,EAAE,MAAO,CACdpE,MAAO,CACL,gBAAiBmO,EAAW,OAAS,KACrC,cAAeA,EAAW,OAAS,QACnC,aAAciD,GAAQlD,GAAoB,OAE3C,CAAC2G,IAGCA,KCpnBX,SAAS,EAAQ7P,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAAS,EAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAK,EAAQ1E,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAO,EAAgBJ,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmB,EAAQ3E,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAAS,EAAgBS,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAe3M,IAAI0O,EAAmB,GACnBC,EAAqB,EAGrB,EAAkB,SAAyB9Y,GAC7C,OAAO,OAAAoU,EAAA,MAAQ,eAAUpU,IAAU6Y,EAAkB,IAInD,EAAoB,SAA2B7Y,GACjD,OAAO,OAAAoU,EAAA,MAAQ,eAAUpU,IAAU8Y,EAAoB,IAI9C,EAAQ,eAAsB,eAAS,EAAc,EAAc,GAAI,GAAkB,GAAI,CACtGf,aAAc,eAAS,QACvBjW,QAAS,eAAS,OAAyB+W,GAC3CE,UAAW,eAAS,OAAyBD,MAC1C,SAGME,EAA2B,aAAI3Y,OAAO,CAC/CqE,KAAM,QAENoL,OAAQ,CAAC2D,GACT5O,MAAO,EACPlF,SAAU,CACR8C,cAAe,WACb,IAAIiF,EAAS,OAAA0M,EAAA,MAAS,EAAkBnU,KAAK8Y,WAAa,EAAgB9Y,KAAK6B,UAC/E,OAAO4F,EAAS,EAAI,EAAIA,GAG1BuR,sBAAuB,WACrB,MAAO,CACLnX,QAAS,EAAgB7B,KAAK6B,SAC9BiX,UAAW,EAAkB9Y,KAAK8Y,WAClCtW,cAAexC,KAAKwC,iBAI1B8C,MAAO,CACL0T,sBAAuB,SAA+BpE,EAAUC,GACzD,eAAkBA,KACjBD,EAAS/S,UAAYgT,EAAShT,SAAW+S,EAASkE,YAAcjE,EAASiE,WAGlElE,EAASpS,gBAAkBqS,EAASrS,eAAiBxC,KAAK+B,YAAc6S,EAASpS,iBAD1FxC,KAAK+B,YAAc,GAQvB/B,KAAKyT,mBAAqBmB,EAASpS,gBAGvCgD,QAAS,WACP,IAAIsP,EAAQ9U,KAGZA,KAAKyT,mBAAqBzT,KAAKwC,cAE/B,IAAIT,EAAc,eAAU/B,KAAKiR,GAAkB,GAE/ClP,EAAc,EAChB/B,KAAK+B,YAAcA,EAEnB/B,KAAK+U,WAAU,WAGbD,EAAM/S,YAAc,MAI1BlC,QAAS,CAEP4P,QAAS,SAAiBc,EAAOuG,GAC/B,IAAIlB,EAAS5V,KAGb,GAAI8W,IAAe9W,KAAK+B,YAAxB,CAIA,IAAI0H,EAAS8G,EAAM9G,OAEfwP,EAAW,IAAI,OAAQ,OAAuB,CAChDC,YAAY,EACZC,UAAWnZ,KACXyJ,OAAQA,IAEVzJ,KAAKuF,MAAM0T,EAASpU,KAAMoU,EAAUnC,GAEhCmC,EAASG,mBAKbpZ,KAAK+B,YAAc+U,EAEnB9W,KAAKuF,MAAM,OAAmBvF,KAAK+B,aAEnC/B,KAAK+U,WAAU,WACT,eAAUtL,IAAWmM,EAAOH,IAAI4D,SAAS5P,GAC3C,eAAaA,GAEbmM,EAAOD,qBAIb2C,SAAU,SAAkBgB,GAC1B,OAAOA,GAIT3B,UAAW,WAET,MAAO,Q,oCCxIb,IAAIrU,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,GAAK,qBAAqB,KAAOP,EAAIgW,KAAK,QAAU,cAAc,QAAU,OAAO,KAAO,MAAM,QAAU,KAAK,UAAU,IAAInN,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,UAAUqE,GAAG,WAAW,MAAO,CAACxK,EAAG,MAAM,CAACG,YAAY,cAAc2V,YAAY,CAAC,OAAS,QAAQ,MAAQ,SAAS,CAAC9V,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,EAAQ,QAAyC,IAAM,gBAAgB,MAAQ,OAAO,OAAS,cAAc2V,OAAM,QAAW,IAC5hBjV,EAAkB,G,YC8BtB,GACEC,KAAM,oBACNC,WAAY,CACVgV,SAAJ,QAEE9U,MAAO,CACL2U,KAAM,CACJ1U,KAAMM,QACNJ,UAAU,KCvCyW,I,YCOrXU,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,KACA,MAIa,OAAAiB,E,spCChBFkU,EAAiB,SAAA5Z,GAAK,OACjC6Z,IAAO7Z,GAAO8Z,OAAO,eAEVC,EAAsB,SAAA/Z,GAAK,OACtC6Z,IAAO7Z,GAAO8Z,OAAO,eAEVE,EAAuB,SAAAha,GAAK,OACvC6Z,IAAO7Z,GAAO8Z,OAAO,eAEVG,EAAa,SAAAja,GAAK,OAC7B6Z,IAAO7Z,GAAO8Z,OAAO,gBAEVI,EAAe,SAAAla,GAAK,OAC/B6Z,IAAO7Z,GAAO8Z,OAAO,gBASVK,EAAmB,SAAAna,GAAK,OACnC6Z,IAAO7Z,GAAO8Z,OAAO,2BAGVM,EAAiB,SAAAC,GAAY,OACxCR,IAAOQ,GAAcP,OAAO,yBAEjBQ,EAAkB,SAAAD,GAAY,OACzCR,IAAOQ,GAAcP,OAAO,oBAEjBS,EAAuB,SAAAF,GAAY,OAC9CR,IAAOQ,GAAcP,OAAO,uBAKjBU,EAAqB,SAAAH,GAAY,OAC5CR,IAAOQ,GAAcP,OAAO,uBAGjBW,EAAmB,SAAAC,GAAS,OACvCb,IAAOa,GAAWZ,OAAO,wBAEda,EAAe,SAAAD,GAAS,OACnCb,IAAOa,GAAWZ,OAAO,gBAEdc,EAAiB,SAAAF,GAAS,OACrCb,IAAOa,GAAWZ,OAAO,iBAEde,EAAc,SAAAH,GACzB,IAAMI,EAAQjB,IAAOa,EAAW,cAC1BK,EAAQD,EAAMhB,OAAO,OACrBkB,EAAOF,EAAMhB,OAAO,QAC1B,OAAOiB,EAAQC,GAEJC,EAAmB,SAAAZ,GAAY,OAC1CR,IAAOQ,GAAcP,OAAO,sBAGjBoB,EAAiB,SAAAb,GAC5B,GAAqB,OAAjBA,EAAuB,CACzB,IAAMc,EAAed,EAAae,MAAM,KAClCC,EAAmB,IAAIC,MAAMH,EAAa,GAAIA,EAAa,GAAK,GAAIA,EAAa,IACvF,OAAOtB,IAAOwB,GAAkBvB,OAAO,cAEzC,MAAO,IAGIyB,EAAkB,SAAAlB,GAC7B,GAAqB,OAAjBA,EAAuB,CACzB,IAAMc,EAAed,EAAae,MAAM,KACxC,gBAAUD,EAAa,GAAvB,YAA6BA,EAAa,GAA1C,YAAgDA,EAAa,IAE/D,MAAO,IAEIK,EAAkB,SAAAd,GAE7B,GAA2B,gBAAvB,IAAIY,KAAKZ,GAA8B,CACzC,IAAMe,EAAYf,EAAUU,MAAM,KAAK,GACjCD,EAAeM,EAAUL,MAAM,KACrC,gBAAUD,EAAa,GAAvB,YAA6BA,EAAa,GAA1C,YAAgDA,EAAa,IAE/D,OAAOT,GAEIgB,EAAc,SAAAhB,GACzB,IAAMiB,EAAYjB,EAAUU,MAAM,KAC5BQ,EAAOD,EAAU,GAAGP,MAAM,KAChC,gBAAUQ,EAAK,GAAf,YAAqBA,EAAK,GAA1B,YAAgCA,EAAK,KAG1BC,EAAiB,SAACC,EAAWC,GACxC,IAAM5U,EAAQ0S,IAAOiC,GACf1U,EAAMyS,IAAOkC,GACnB,OAAO3U,EAAI4U,KAAK7U,EAAO,SAGZ8U,EAAqB,SAACH,EAAWC,GAC5C,IAAMG,EAAWxZ,KAAKyZ,IAAI,IAAIb,KAAKS,GAASK,UAAY,IAAId,KAAKQ,GAAWM,WACtEC,EAAOH,EAAW,MAClBI,EAASD,EAAO,EAAK,GACrBE,EAAWD,EAAQ,EAAK,GACxBE,EAASD,EAAU,EAAK,GAAM,EAAI,EAAMA,EAAU,EAAK,GAC7D,EAA4B,CAAC7Z,KAAKC,MAAM2Z,GAAQ5Z,KAAKC,MAAM4Z,GAAU7Z,KAAKC,MAAM6Z,IAAzEC,EAAP,KAAaC,EAAb,KAAqBC,EAArB,KACA,gBAAUF,EAAV,eAAqBC,EAArB,eAAkCC,EAAlC,MAGWC,EAAkB,SAAAvC,GAAY,OACzCR,IAAOQ,GAAcP,OAAO,2BAEjB+C,EAAkB,SAAAxC,GAAY,OACzCR,IAAOQ,GAAcP,OAAO,iBAGjBgD,EAAsB,SAAAzC,GACjC,GAAqB,OAAjBA,EAAuB,CACzB,IAAMc,EAAed,EAAae,MAAM,KAClCC,EAAmB,IAAIC,MAAMH,EAAa,GAAIA,EAAa,GAAK,GAAIA,EAAa,IACvF,OAAOtB,IAAOwB,GAAkBvB,OAAO,wBAEzC,MAAO,IAGIiD,EAAU,SAACnB,GAAwB,IAAlBoB,EAAkB,uDAAN,EAClCjB,EAAU,IAAIT,KAAKM,GAEzB,OADAG,EAAQkB,QAAQlB,EAAQgB,UAAY5X,OAAO6X,IACpCnD,IAAOkC,GAASjC,OAAO,eAEnBoD,EAAqB,SAACtB,GAAwB,IAAlBoB,EAAkB,uDAAN,EAC7CjB,EAAU,IAAIT,KAAKM,GAEzB,OADAG,EAAQkB,QAAQlB,EAAQgB,UAAY5X,OAAO6X,IACpCnD,IAAOkC,GAASjC,OAAO,eAEnBqD,EAAiB,SAAAC,GAC5B,GAAkB,UAAdA,EAAuB,CACzB,IAAMC,EAAQ,IAAI/B,KACZN,EAAOqC,EAAMC,cACbvC,EAAQsC,EAAME,WAAa,EAC3BC,EAAc,CAAC,GAAKxC,EAAO,IAAM,GAAMA,EAAO,MAAQ,GAAKA,EAAO,MAAQ,EAAW,GAAL,GAAS,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACnI,OAAOwC,EAAYzC,EAAQ,GAE7B,MAAO,IAEI0C,EAAgB,SAAAL,GAC3B,GAAkB,SAAdA,EAAsB,CACxB,IAAMC,EAAQ,IAAI/B,KACZN,EAAOqC,EAAMC,cACnB,OAAQtC,EAAO,IAAM,GAAMA,EAAO,MAAQ,GAAKA,EAAO,MAAQ,EAAY,IAAN,IAEtE,MAAO,IAGI0C,EAAoB,SAACC,EAAK5C,EAAOC,GAC5C,IAAM4C,EAAe,GAAH,OAAM5C,EAAN,YAAc9V,OAAO6V,GAAO8C,SAAS,EAAG,KAAxC,YAAgD3Y,OAAOyY,GAAKE,SAAS,EAAG,MACpFC,EAAY,IAAIxC,KAAKsC,GACrBP,EAAQ,IAAI/B,KAElB,OADA+B,EAAMU,SAAS,EAAG,EAAG,EAAG,GACpBD,EAAYT,EACP,2DAEFO,GAGII,EAAoB,SAAAC,GAC/B,IAAMC,EAAU,IAAI5C,KAAK2C,GACnBjD,EAAOkD,EAAQZ,cACfvC,EAAQmD,EAAQX,WAAa,EAC7BI,EAAMO,EAAQnB,UAEpB,MAAO,CAAE/B,OAAMD,QAAO4C,QAEXQ,EAAc,SAAAF,GACzB,IAAMC,EAAU,IAAI5C,KAAK2C,GACnBG,EAAgBF,EAAQZ,cACxBe,EAAiBH,EAAQX,WAAa,EACtCe,EAAeJ,EAAQnB,UAE7B,MAAO,CAAEqB,gBAAeC,iBAAgBC,kB,kCCpL1C,kGAKWzZ,EAAQ,eAAsB,CACvC0Z,SAAU,eAAS,QACnBC,UAAW,eAAS,QAAmB,GACvC3W,GAAI,eAAS,QACbgQ,KAAM,eAAS,QAEf5T,MAAO,eAAS,OAAmB,MACnC2J,IAAK,eAAS,OAAkB,OAChC6Q,QAAS,eAAS,QAAmB,IACpC,QAGQC,EAAoC,aAAIre,OAAO,CACxDqE,KAAM,OACNwD,YAAY,EACZrD,MAAOA,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SAChBoW,EAAU5Z,EAAM4Z,QAChBF,EAAW1Z,EAAM0Z,SACjB/E,GAA2B,IAApB3U,EAAM2Z,YAAsC,IAAhB3Z,EAAMZ,MAC7C,OAAOkE,EAAEtD,EAAM+I,IAAK,eAAUpM,EAAM,CAClC8G,MAAO,CACL,UAAWkR,EACX,oBAAqBiF,EACrB,kBAAmBA,GAErB1a,MAAO,CACL8D,GAAIhD,EAAMgD,IAAM,KAChBgQ,KAAMhT,EAAMgT,MAAQ,KACpB,YAAa0G,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnClW,O,2CCxCR,IAAI9E,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,KAAK,CAACJ,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACG,YAAY,+DAA+DC,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,QAAUP,EAAIvB,gBAAgBoC,MAAM,CAACrE,MAAOwD,EAAW,QAAEc,SAAS,SAAUC,GAAMf,EAAI1B,QAAQyC,GAAKC,WAAW,aAAchB,EAAIzD,kBAAkB,8BAA+B4D,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,MAAM,KAAO,MAAM6K,GAAG,CAAC,MAAQpL,EAAImb,8BAA8Bnb,EAAI6L,MAAM,GAAG1L,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,MAAM,CAACG,YAAY,oDAAoD,CAACH,EAAG,SAAS,CAACG,YAAY,OAAOC,MAAM,CAAC,MAAQ,SAAS,KAAO,KAAK,KAAO,aAAa,YAAY,IAAI6K,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAOzL,EAAIob,UAAU,oBAAoBjb,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,eAAe,KAAO,KAAK,KAAO,eAAe,YAAY,IAAI6K,GAAG,CAAC,MAAQpL,EAAIqb,gBAAgB,MAAM,IAAI,GAAGlb,EAAG,UAAU,CAACyK,IAAI,kBAAkBtK,YAAY,oBAAoBC,MAAM,CAAC,MAAQP,EAAIsb,aAAa,WAAa,GAAG,KAAOtb,EAAI/B,OAAO,WAAW+B,EAAIzB,SAAS,eAAeyB,EAAIxB,YAAY,OAASwB,EAAIub,aAAa,cAAc,KAAK,aAAa,GAAG,aAAa,wBAAwB1S,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,aAAaqE,GAAG,WAAW,MAAO,CAACxK,EAAG,MAAM,CAACG,YAAY,gCAAgC,CAACH,EAAG,YAAY,CAACG,YAAY,eAAeC,MAAM,CAAC,QAAU,cAAc,KAAK2V,OAAM,GAAM,CAAC5P,IAAI,WAAWqE,GAAG,SAAS3M,GAAM,MAAO,CAACgC,EAAIK,GAAG,WAAWL,EAAIqK,GAAGrK,EAAIH,gBAAgB7B,EAAK8B,QAAQ,aAAa,CAACwG,IAAI,oBAAoBqE,GAAG,SAAS3M,GAAM,MAAO,CAACgC,EAAIK,GAAG,WAAWL,EAAIqK,GAAGrK,EAAIoW,eAAepY,EAAKxB,QAAQ,aAAa,CAAC8J,IAAI,gBAAgBqE,GAAG,SAAS3M,GAAM,MAAO,CAACmC,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,aAAa,CAACI,MAAM,CAAC,QAAU,OAAO,eAAe,MAAM,WAAW,GAAG,MAAQP,EAAIQ,OAAOC,MAAMC,UAAUC,OAAOkI,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,iBAAiBqE,GAAG,WAAW,MAAO,CAACxK,EAAG,eAAe,CAACG,YAAY,yBAAyBC,MAAM,CAAC,KAAO,mBAAmB,KAAO,UAAU2V,OAAM,IAAO,MAAK,IAAO,CAAElW,EAAIzD,kBAAkB,8BAA+B4D,EAAG,kBAAkB,CAACiL,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAOzL,EAAIwb,4BAA4Bxd,EAAKyd,KAAMhQ,EAAOvF,OAAQ,WAAW,CAAC/F,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,cAAcJ,EAAG,OAAO,CAACG,YAAY,sBAAsB,CAACN,EAAIK,GAAG,aAAa,GAAGL,EAAI6L,KAAK1L,EAAG,kBAAkB,CAACiL,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAOzL,EAAI0b,eAAe1d,EAAKyd,KAAMhQ,EAAOvF,WAAW,CAAC/F,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,aAAaJ,EAAG,OAAO,CAACG,YAAY,sBAAsB,CAACN,EAAIK,GAAG,WAAW,IAAI,IAAI,UAAUF,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAOP,EAAIZ,KAAK,GAAKY,EAAIX,GAAG,aAAaW,EAAIhB,aAAa,WAAWgB,EAAI1B,SAASuC,MAAM,CAACrE,MAAOwD,EAAe,YAAEc,SAAS,SAAUC,GAAMf,EAAIxB,YAAYuC,GAAKC,WAAW,iBAAiBb,EAAG,UAAU,CAACyK,IAAI,WAAWrK,MAAM,CAAC,GAAK,WAAW,WAAW,SAAS,UAAU,GAAG,eAAe,SAAS,aAAa,oBAAoB,SAAW,GAAG,KAAO,KAAK,MAAQ,yBAAyB,CAACJ,EAAG,SAAS,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,uBAAuB,OAAS,KAAK,CAACJ,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAuB,IAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,MAAO5a,IAAMC,WAAW,8BAA8B,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAuB,IAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,MAAO5a,IAAMC,WAAW,8BAA8B,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,QAAQ,MAAQ,QAAQ,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAyB,MAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,QAAS5a,IAAMC,WAAW,gCAAgC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,YAAY,MAAQ,YAAY,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA4B,SAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,WAAY5a,IAAMC,WAAW,mCAAmC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,aAAa,MAAQ,aAAa,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA6B,UAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,YAAa5a,IAAMC,WAAW,oCAAoC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,cAAc,MAAQ,cAAc,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA8B,WAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,aAAc5a,IAAMC,WAAW,qCAAqC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,cAAc,MAAQ,cAAc,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA8B,WAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,aAAc5a,IAAMC,WAAW,qCAAqC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,UAAU,MAAQ,SAAS,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA0B,OAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,SAAU5a,IAAMC,WAAW,iCAAiC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,iBAAiB,MAAQ,iBAAiB,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAiC,cAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,gBAAiB5a,IAAMC,WAAW,wCAAwC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,UAAU,MAAQ,UAAU,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA0B,OAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,SAAU5a,IAAMC,WAAW,iCAAiC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,eAAe,KAAO,SAAS,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA+B,YAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,cAAe5a,IAAMC,WAAW,sCAAsC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,gBAAgB,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,4BAA4B,KAAO,OAAO,KAAO,IAAI,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA2C,wBAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,0BAA2B5a,IAAMC,WAAW,kDAAkD,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,QAAQ,MAAQ,QAAQ,KAAO,QAAQ,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAyB,MAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,QAAS5a,IAAMC,WAAW,gCAAgC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,gBAAgB,CAACI,MAAM,CAAC,GAAK,QAAQ,MAAQ,qBAAqB,KAAO,IAAI,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAqC,kBAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,oBAAqB5a,IAAMC,WAAW,4CAA4C,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,gBAAgB,MAAQ,gBAAgB,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA+B,YAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,cAAe5a,IAAMC,WAAW,sCAAsC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,QAAQ,MAAQ,QAAQ,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAyB,MAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,QAAS5a,IAAMC,WAAW,gCAAgC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAuB,IAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,MAAO5a,IAAMC,WAAW,8BAA8B,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,YAAY,MAAQ,YAAY,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA4B,SAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,WAAY5a,IAAMC,WAAW,mCAAmC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,WAAW,MAAQ,WAAW,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA4B,SAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,WAAY5a,IAAMC,WAAW,mCAAmC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,cAAc,MAAQ,cAAc,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA+B,YAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,cAAe5a,IAAMC,WAAW,sCAAsC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,cAAc,MAAQP,EAAI2b,oBAAoBE,sBAAsB,MAAQ,0BAA0B,KAAO,OAAO,SAAW,IAAIhb,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAyC,sBAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,wBAAyB5a,IAAMC,WAAW,gDAAgD,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,YAAY,MAAQ,iCAAiC,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA4B,SAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,WAAY5a,IAAMC,WAAW,mCAAmC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,aAAa,MAAQ,qCAAqC,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAkD,+BAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,iCAAkC5a,IAAMC,WAAW,yDAAyD,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,cAAc,MAAQ,sCAAsC,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAmD,gCAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,kCAAmC5a,IAAMC,WAAW,0DAA0D,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,oBAAoB,MAAQ,oBAAoB,YAAc,0BAA0B,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAqD,kCAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,oCAAqC5a,IAAMC,WAAW,4DAA4D,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,KAAO,OAAO,IAAM,MAAM,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAuB,IAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,MAAO5a,IAAMC,WAAW,8BAA8B,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAuB,IAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,MAAO5a,IAAMC,WAAW,8BAA8B,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,mBAAmB,MAAQ,kBAAkB,KAAO,OAAO,YAAY,GAAG,WAAWP,EAAI8b,WAAW,SAAW,IAAIjb,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAiC,cAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,gBAAiB5a,IAAMC,WAAW,wCAAwC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,kBAAkB,YAAc,wBAAwB,KAAO,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA8B,WAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,aAAc5a,IAAMC,WAAW,qCAAqC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,OAAO,CAACJ,EAAG,gBAAgB,CAACI,MAAM,CAAC,GAAK,UAAU,MAAQP,EAAI2b,oBAAoBI,QAAQ,MAAQ,UAAU,IAAM,UAAU,KAAO,IAAI,SAAW,IAAIlb,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA2B,QAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,UAAW5a,IAAMC,WAAW,kCAAkC,IAAI,IAAI,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,gBAAgB,CAACJ,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,OAAO,MAAQ,OAAO,KAAO,OAAO,IAAM,OAAO,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA2B,QAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,UAAW5a,IAAMC,WAAW,kCAAkC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,QAAQ,MAAQ,QAAQ,KAAO,QAAQ,IAAM,QAAQ,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA4B,SAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,WAAY5a,IAAMC,WAAW,mCAAmC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,eAAe,KAAO,SAAS,IAAM,eAAe,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAkC,eAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,iBAAkB5a,IAAMC,WAAW,yCAAyC,IAAI,GAAGb,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,eAAe,KAAO,OAAO,IAAM,eAAe,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAmC,gBAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,kBAAmB5a,IAAMC,WAAW,0CAA0C,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,SAAS,MAAQ,SAAS,KAAO,OAAO,IAAM,SAAS,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA6B,UAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,YAAa5a,IAAMC,WAAW,oCAAoC,IAAI,GAAGb,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,OAAO,CAACJ,EAAG,gBAAgB,CAACI,MAAM,CAAC,GAAK,sBAAsB,MAAQP,EAAI2b,oBAAoBK,WAAW,MAAQ,UAAU,IAAM,sBAAsB,KAAO,IAAI,SAAW,IAAInb,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA+B,WAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,aAAc5a,IAAMC,WAAW,sCAAsC,IAAI,IAAI,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,qBAAqB,CAACJ,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,aAAa,MAAQ,OAAO,KAAO,OAAO,IAAM,aAAa,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAA8B,WAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,aAAc5a,IAAMC,WAAW,qCAAqC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,gBAAgB,MAAQ,kBAAkB,KAAO,OAAO,IAAM,gBAAgB,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAgC,aAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,eAAgB5a,IAAMC,WAAW,uCAAuC,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,eAAe,KAAO,SAAS,IAAM,eAAe,SAAW,IAAIM,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAqC,kBAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,oBAAqB5a,IAAMC,WAAW,4CAA4C,IAAI,GAAGb,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,OAAO,CAACJ,EAAG,gBAAgB,CAACI,MAAM,CAAC,GAAK,mBAAmB,MAAQP,EAAI2b,oBAAoBM,gBAAgB,MAAQ,qBAAqB,IAAM,mBAAmB,KAAO,IAAI,SAAW,IAAIpb,MAAM,CAACrE,MAAOwD,EAAI2b,oBAAmC,gBAAE7a,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI2b,oBAAqB,kBAAmB5a,IAAMC,WAAW,0CAA0C,IAAI,IAAI,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,oBAAoB,CAACJ,EAAG,SAASH,EAAIkc,GAAIlc,EAAqB,mBAAE,SAASyb,EAAK3b,GAAO,OAAOK,EAAG,QAAQ,CAACmG,IAAIxG,EAAMQ,YAAY,oBAAoBC,MAAM,CAAC,GAAKT,IAAQ,CAACK,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,cAAc,CAACI,MAAM,CAAC,GAAK,gBAAgB,OAAS,SAAU4b,GAAU,OAAOA,EAAO3f,OAAS,MAAQ,gBAAgB,YAAc,SAAS,QAAUwD,EAAIoc,oBAAoB,KAAO,QAAQ,SAAW,IAAIvb,MAAM,CAACrE,MAAOif,EAAS,KAAE3a,SAAS,SAAUC,GAAMf,EAAI4b,KAAKH,EAAM,OAAQ1a,IAAMC,WAAW,gBAAgB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,QAAQ,CAACH,EAAIK,GAAG,sBAAsBF,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,eAAe,CAACA,EAAG,cAAc,CAACI,MAAM,CAAC,YAAc,mCAAmC,mBAAmB,oBAAoB,OAAS,qJAAqJ,MAAQ,GAAG,SAAW,IAAI6K,GAAG,CAAC,OAAS,SAASK,GAAQ,OAAOzL,EAAIqc,kBAAkBvc,EAAO2L,OAAcgQ,EAAKa,IAAkTnc,EAAG,MAAM,CAAyB,QAAvBsb,EAAKc,eAAiD,SAAvBd,EAAKc,eAAkD,QAAvBd,EAAKc,eAAiD,QAAvBd,EAAKc,cAAyBpc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMkb,EAAKa,IAAI,MAAQ,GAAG,QAAU,GAAG,MAAQ,QAAQ,OAAS,YAAY,GAA2B,QAAvBb,EAAKc,cAAyBpc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIwc,QAAQ,MAAQ,GAAG,QAAU,GAAG,MAAQ,QAAQ,OAAS,YAAY,GAA2B,QAAvBf,EAAKc,cAAyBpc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIyc,SAAS,MAAQ,GAAG,QAAU,GAAG,MAAQ,QAAQ,OAAS,YAAY,GAAGtc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,OAAO,GAAIkb,EAAQ,IAAEtb,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,eAAe,CAACG,YAAY,eAAeC,MAAM,CAAC,KAAO,UAAU,KAAO,MAAM6K,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAOzL,EAAI0c,iBAAiBjB,EAAKa,IAAKb,EAAKkB,SAAUlB,EAAKc,oBAAoB,GAAGvc,EAAI6L,OAAjmC1L,EAAG,MAAM,CAACG,YAAY,sBAAsB,CAACH,EAAG,KAAK,CAACH,EAAIK,GAAG,0BAA0BF,EAAG,IAAI,CAACH,EAAIK,GAAG,2DAA2DF,EAAG,IAAI,CAACG,YAAY,UAAU,CAACN,EAAIK,GAAG,uGAAk6B,IAAI,KAAMob,EAAQ,IAAEtb,EAAG,QAAQ,CAACG,YAAY,OAAOC,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,WAAW,CAAC2L,WAAW,CAAC,CAAC5K,KAAK,SAAS6K,QAAQ,eAAevP,MAAM,4BAA8BwE,WAAW,8BAA8B4b,UAAU,CAAC,KAAM,KAAQtc,YAAY,OAAOC,MAAM,CAAC,QAAU,WAAW6K,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAOzL,EAAI6c,eAAepB,EAAKa,QAAQ,CAACnc,EAAG,eAAe,CAACG,YAAY,QAAQC,MAAM,CAAC,KAAO,kBAAkBJ,EAAG,OAAO,CAACH,EAAIK,GAAG,eAAe,IAAI,GAAGL,EAAI6L,MAAM,MAAK,IAAI,IAAI,IAAI,GAAG1L,EAAG,UAAU,CAACyK,IAAI,WAAWrK,MAAM,CAAC,GAAK,eAAe,WAAW,QAAQ,eAAe,SAAS,iBAAiB,oBAAoB,uBAAuB,GAAG,SAAW,GAAG,KAAO,KAAK,MAAQ,UAAU,eAAe,IAAI6K,GAAG,CAAC,GAAKpL,EAAI8c,yBAAyB,OAAS9c,EAAI+c,eAAe,CAAC5c,EAAG,QAAQ,CAACG,YAAY,gBAAgB,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,cAAc,MAAQ,cAAc,YAAc,oBAAoB,KAAO,QAAQM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAiB,WAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,aAAc7E,IAAMC,WAAW,wBAAwB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,eAAe,YAAc,qBAAqB,KAAO,OAAO,IAAM,gBAAgBM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAoB,cAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,gBAAiB7E,IAAMC,WAAW,2BAA2B,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,OAAO,MAAQ,gBAAgB,YAAc,aAAa,KAAO,QAAQM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAW,KAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,OAAQ7E,IAAMC,WAAW,kBAAkB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,eAAe,MAAQ,eAAe,YAAc,qBAAqB,KAAO,UAAUM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAkB,YAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,cAAe7E,IAAMC,WAAW,yBAAyB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,QAAQ,MAAQ,QAAQ,YAAc,cAAc,KAAO,SAASM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAY,MAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,QAAS7E,IAAMC,WAAW,mBAAmB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,YAAc,YAAY,KAAO,OAAO,IAAM,OAAOM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAU,IAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,MAAO7E,IAAMC,WAAW,iBAAiB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,MAAM,MAAQ,MAAM,YAAc,YAAY,KAAO,OAAO,IAAM,OAAOM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAU,IAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,MAAO7E,IAAMC,WAAW,iBAAiB,GAAGb,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,GAAK,kBAAkB,MAAQ,kBAAkB,YAAc,wBAAwB,KAAO,OAAO,IAAM,mBAAmBM,MAAM,CAACrE,MAAOwD,EAAI4F,OAAiB,WAAE9E,SAAS,SAAUC,GAAMf,EAAI4b,KAAK5b,EAAI4F,OAAQ,aAAc7E,IAAMC,WAAW,wBAAwB,IAAI,IAAI,GAAGb,EAAG,UAAU,CAACyK,IAAI,YAAYrK,MAAM,CAAC,GAAK,aAAa,SAAW,GAAG,KAAO,KAAK,UAAU,GAAG,WAAW,QAAQ6K,GAAG,CAAC,GAAK,SAASK,GAAQ,OAAOzL,EAAIgd,UAAU,iBAAiB,CAAC7c,EAAG,MAAM,CAACG,YAAY,OAAO,CAACH,EAAG,IAAI,CAACH,EAAIK,GAAG,sCAAsCF,EAAG,UAAU,CAACyK,IAAI,cAAcrK,MAAM,CAAC,GAAK,oBAAoB,uBAAuB,GAAG,WAAW,gBAAgB,eAAe,SAAS,iBAAiB,oBAAoB,SAAW,GAAG,KAAO,KAAK,MAAQP,EAAIid,wBAAwB7R,GAAG,CAAC,OAASpL,EAAIkd,mBAAmB,OAASld,EAAIkd,mBAAmB,GAAK,SAASzR,GAAQ,OAAOzL,EAAI6c,eAAe7c,EAAImd,qBAAqB,CAAChd,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAAwB,QAAtBP,EAAIuc,eAAgD,SAAtBvc,EAAIuc,eAAiD,QAAtBvc,EAAIuc,eAAiD,QAAtBvc,EAAIuc,cAAyBpc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAImd,iBAAiB,MAAQ,GAAG,MAAQ,GAAG,QAAU,OAAO,GAA0B,QAAtBnd,EAAIuc,cAAyBpc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIwc,QAAQ,MAAQ,GAAG,MAAQ,QAAQ,OAAS,QAAQ,QAAU,OAAO,GAA0B,QAAtBxc,EAAIuc,cAAyBpc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIyc,SAAS,MAAQ,GAAG,MAAQ,QAAQ,OAAS,QAAQ,QAAU,OAAO,GAAGtc,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAM,OAAO,MAAM,IAAI,KAAKJ,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAOP,EAAI9B,gBAAgB,IACngtB+C,EAAkB,G,keCs+BtB,GACEE,WAAY,CACVuH,MAAJ,OACI0U,KAAJ,OACIC,KAAJ,OACIC,SAAJ,OACIC,OAAJ,OACIC,UAAJ,OACIC,cAAJ,OACIC,KAAJ,OACIC,OAAJ,OACIC,OAAJ,OACIC,MAAJ,OACIC,KAAJ,OACIC,QAAJ,OACIC,WAAJ,OACIC,YAAJ,OACIC,cAAJ,OACIC,kBAAJ,OACIC,gBAAJ,OACIC,aAAJ,OACIjS,WAAJ,OACIkS,UAAJ,OACI7Z,MAAJ,QAEEqH,WAAY,CACVyS,OAAJ,QAEEjS,OAAQ,CAAC,EAAX,2BACEtO,KA7BF,WA8BI,MAAO,CACLoY,eAAN,OACMnY,QAAQ,EACRC,aAAa,EACbsD,SAAN,OACMgd,cAAe,EAArB,KACMhC,QAAN,QACMC,SAAN,QACMgC,kBAAmB,CAAC,CAClBnd,KAAM,GACNgb,IAAK,GACLoC,KAAM,KAERvB,iBAAkB,GAClBF,uBAAwB,GACxBV,cAAe,GACfH,oBAAqB,CAC3B,CAAQ,MAAR,EAAQ,MAAR,sBACA,CAAQ,MAAR,EAAQ,MAAR,oBACA,CAAQ,MAAR,EAAQ,MAAR,oBACA,CAAQ,MAAR,EAAQ,MAAR,0BACA,CAAQ,MAAR,EAAQ,MAAR,eACA,CAAQ,MAAR,EAAQ,MAAR,4BACA,CAAQ,MAAR,EAAQ,MAAR,0BACA,CAAQ,MAAR,EAAQ,MAAR,uBACA,CAAQ,MAAR,EAAQ,MAAR,oBACA,CAAQ,MAAR,GAAQ,MAAR,sBACA,CAAQ,MAAR,GAAQ,MAAR,yBACA,CAAQ,MAAR,GAAQ,MAAR,sBACA,CAAQ,MAAR,GAAQ,MAAR,WAEMuC,mBAAoB,GACpBpD,aAAc,CACpB,CAAQ,IAAR,KAAQ,MAAR,OACA,CAAQ,IAAR,WAAQ,UAAR,GACA,CAAQ,IAAR,aAAQ,UAAR,GACA,CAAQ,IAAR,cAAQ,UAAR,GACA,CAAQ,IAAR,aAAQ,UAAR,EAAQ,MAAR,mBACA,CAAQ,IAAR,QAAQ,UAAR,GACA,CAAQ,IAAR,QAAQ,UAAR,GACA,CAAQ,IAAR,gBAAQ,UAAR,EAAQ,MAAR,gBACA,CAAQ,IAAR,cAAQ,UAAR,EAAQ,MAAR,gBACA,CAAQ,IAAR,YAEMqD,iBAAkB,CAChBC,aAAc,GACdC,MAAO,SACPC,aAAc,UAEhBC,aAAc,CACpB,CAAQ,MAAR,QAAQ,MAAR,GACA,CAAQ,MAAR,YAAQ,MAAR,GACA,CAAQ,MAAR,UAAQ,MAAR,GACA,CAAQ,MAAR,SAAQ,MAAR,GACA,CAAQ,MAAR,UAAQ,MAAR,IAEMC,oBAAqB,CAC3B,CAAQ,MAAR,UAAQ,MAAR,GACA,CAAQ,MAAR,UAAQ,MAAR,IAEM3D,aAAc,GACdK,oBAAqB,CACnBuD,WAAY,GACZC,MAAO,GACPC,SAAU,GACVC,UAAW,GACXC,WAAY,GACZvD,QAAS,GACTwD,OAAQ,GACRC,cAAe,GACfC,OAAQ,GACRC,WAAY,GACZC,SAAU,GACVC,YAAa,GACbC,wBAAyB,GACzBC,MAAO,GACPC,kBAAmB,GACnBC,SAAU,GACVC,YAAa,GACbC,YAAa,GACbzf,MAAO,GACP0f,IAAK,GACLC,IAAK,GACLC,IAAK,GACLxE,sBAAuB,GACvByE,SAAU,GACVC,+BAAgC,KAChCC,gCAAiC,KACjCC,kCAAmC,GACnCC,IAAK,GACLC,IAAK,GACLC,QAAS,GACT5E,WAAY,GACZ6E,UAAW,GACXC,gBAAiB,GACjBC,eAAgB,GAChBC,SAAU,GACVC,WAAY,GACZC,aAAc,GACdjF,gBAAiB,GACjBkF,kBAAmB,GACnBC,WAAY,IAEdxb,OAAQ,CACNsZ,WAAY,GACZmC,cAAe,GACfD,WAAY,GACZE,aAAc,GACdlC,SAAU,GACVG,OAAQ,GACRK,YAAa,GACbE,MAAO,GACPyB,WAAY,GACZC,UAAW,GACXpB,IAAK,GACLC,IAAK,MAIXte,MAAO,CACLvD,YADJ,SACA,GACM/B,KAAK+B,YAAc6S,EACnB5U,KAAKqgB,4BAEPxe,QALJ,SAKA,GACM7B,KAAK6B,QAAU+S,EACf5U,KAAKqgB,6BAGT2E,QA/JF,WAgKIhlB,KAAKqgB,4BAEPxgB,QAAS,OAAX,OAAW,CAAX,kBACA,gBACI,sBAAJ,0BACI,0BAAJ,yBAHA,IAKIugB,eALJ,SAKA,GACM,IAAN,8BACM6E,EAAKC,KAAO3jB,EACZ0jB,EAAKlT,QACL/R,KAAKmlB,aAAa,CAAxB,uDAEI9F,WAXJ,WAYMrf,KAAKolB,MAAM7f,MAAM,kBAAmB,eAEtC0a,iBAdJ,SAcA,OACMjgB,KAAK8f,cAAgBA,EACrB9f,KAAK0gB,iBAAmB2E,EACxBrlB,KAAKwgB,uBAAyBkC,EAAM4C,QAAQ,uBAAwB,OACpEtlB,KAAKolB,MAAM7f,MAAM,kBAAmB,sBAEtCkb,mBApBJ,WAqBMzgB,KAAK0gB,iBAAmB,GACxB1gB,KAAKwgB,uBAAyB,IAEhC,eAxBJ,SAwBA,8KACA,OADA,SAGA,iBAHA,SAIA,+EAJA,OAIA,EAJA,OAKA,oBACA,kBACA,uDACA,QADA,IAEA,6DACA,sHACA,2HAEA,+CACA,8EACA,UACA,cACA,QACA,gBACA,kCACA,EACA,OACA,UAEA,4CACA,kBAzBA,qDA4BA,0BA5BA,yBA8BA,iBA9BA,gFAiCI,yBAzDJ,WAyDA,yKACA,YACA,4BAFA,SAIA,mCAJA,SAKA,yBACA,gBACA,mBACA,gBACA,6CATA,OAKA,EALA,OAWA,oBACA,iBACA,yFACA,GADA,IAEA,mMACA,QADA,IACA,OADA,EACA,oBADA,QACA,SAGA,6BAEA,kBACA,4BAtBA,qDAyBA,0BAzBA,yBA2BA,YA3BA,gFA8BIF,aAvFJ,WAwFMtgB,KAAKmJ,OAAS,OAApB,OAAoB,CAApB,UAEIyV,YA1FJ,WA2FM5e,KAAKmJ,OAAS,OAApB,OAAoB,CAApB,SACMnJ,KAAKqgB,4BAEP3B,2BA9FJ,WA8FA,WACM1e,KAAKulB,QACX,MACQ,KAAR,sBACQ,OAAR,CACU,KAAV,SAGA,mBACQ,EAAR,YAAU,KAAV,QAGIxG,4BA1GJ,SA0GA,kBACM/e,KAAKulB,QACX,MACQ,KAAR,sBACQ,OAAR,CACU,KAAV,EACU,GAAV,QAGA,mBACQ,EAAR,YAAU,KAAV,WC7vC2Y,I,wBCQvY9f,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,WACA,MAIa,aAAAiB,E,6CCnBf,qNAASoD,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAc3M,IAAIyG,EAAkB,eAAe,QAAS,CAC5C9L,KAAM,OACN+L,aAAc,GACdL,MAAO,SAELO,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgB/L,MAC7BqM,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBJ,MAI5B3L,EAAQ,eAAsB,eAAS4E,EAAcA,EAAc,GAAIwH,GAAa,GAAI,CACjGwU,YAAa,eAAS,QAA0B,GAChDC,aAAc,eAAS,QAEvBC,SAAU,eAAS,OAAyB,GAC5CjX,UAAW,eAAS,QAEpBkX,KAAM,eAAS,QAAmB,GAClCC,cAAe,eAAS,QAAmB,GAC3CpU,OAAQ,eAAS,QAAmB,GACpCnD,YAAa,eAAS,QACtBwX,UAAW,eAAS,QAAmB,GACvCvX,SAAU,eAAS,QAAmB,GACtCwX,KAAM,eAAS,QAAmB,MAC/B,oBAGMC,EAAgB,aAAI3lB,OAAO,CACpCyP,OAAQ,CAACiB,GACTlM,MAAOA,EACPrD,KAAM,WACJ,IAAIxB,EAAQC,KAAKiR,GACjB,MAAO,CACL+U,WAAY,eAASjmB,GACrBkmB,YAAajmB,KAAKkmB,YAAYnmB,KAGlCL,SAAU,CACRymB,cAAe,WACb,IAAIN,EAAY7lB,KAAK6lB,UACjBhhB,EAAO7E,KAAK6E,KACZuhB,EAAmB,UAATvhB,EACVwhB,EAAmB,UAATxhB,EACd,MAAO,CAAC,CAEN,eAAgBuhB,EAEhB,yBAA0BP,IAAcO,IAAYC,EAGpD,eAAgBA,IAAYR,IAAcO,GACzCpmB,KAAKsmB,cAAetmB,KAAKumB,aAE9BC,iBAAkB,WAEhB,OAAO,eAAQ,eAAUxmB,KAAK0lB,SAAU,GAAI,IAE9Ce,aAAc,WACZ,OAAO,eAAgBzmB,KAAKyO,aAGhCnJ,MAAOwE,EAAgB,GAAImH,GAAiB,SAAU2D,GACpD,IAAI8R,EAAiB,eAAS9R,GAC1B+R,EAAgB3mB,KAAKkmB,YAAYtR,GAEjC8R,IAAmB1mB,KAAKgmB,YAAcW,IAAkB3mB,KAAKimB,cAE/DjmB,KAAK4mB,gBAEL5mB,KAAKgmB,WAAaU,EAClB1mB,KAAKimB,YAAcU,MAGvBnhB,QAAS,WAEPxF,KAAK6mB,qBAAuB,MAE9B7B,QAAS,WAEPhlB,KAAK8mB,IAAI,OAAgC9mB,KAAK4mB,gBAEhDG,cAAe,WACb/mB,KAAK4mB,iBAEP/mB,QAAS,CACP+mB,cAAe,WACbI,aAAahnB,KAAK6mB,sBAClB7mB,KAAK6mB,qBAAuB,MAE9BI,YAAa,SAAqBlnB,EAAOwQ,GACvC,IAAI2W,EAAQjmB,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAO3E,OANAlB,EAAQ,eAASA,IAEbC,KAAKymB,cAAkBzmB,KAAK4lB,gBAAiBsB,IAC/CnnB,EAAQC,KAAKyO,UAAU1O,EAAOwQ,IAGzBxQ,GAETmmB,YAAa,SAAqBnmB,GAYhC,OAXAA,EAAQ,eAASA,GAEbC,KAAK8lB,OACP/lB,EAAQA,EAAM+lB,QAIZ9lB,KAAKwR,SACPzR,EAAQ,eAAQA,EAAOA,IAGlBA,GAETonB,YAAa,SAAqBpnB,GAChC,IAAI+U,EAAQ9U,KAERknB,EAAQjmB,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GACvE0kB,EAAO3lB,KAAK2lB,KAEhB,IAAIA,GAASuB,EAAb,CAMAlnB,KAAK4mB,gBAGL,IAAIQ,EAAW,WAGb,GAFArnB,EAAQ+U,EAAMoR,YAAYnmB,GAEtBA,IAAU+U,EAAMmR,YAClBnR,EAAMmR,YAAclmB,EAEpB+U,EAAMvP,MAAM4L,EAAkBpR,QACzB,GAAI+U,EAAM2R,aAAc,CAS7B,IAAIY,EAASvS,EAAMtU,MAAMC,MAGrB4mB,GAAUtnB,IAAUsnB,EAAOtnB,QAC7BsnB,EAAOtnB,MAAQA,KAOjB2lB,EAAW1lB,KAAKwmB,iBAEhBd,EAAW,IAAMC,IAASuB,EAC5BlnB,KAAK6mB,qBAAuBS,WAAWF,EAAU1B,GAGjD0B,MAGJvY,QAAS,SAAiB0B,GAMxB,IAAIA,EAAM9G,OAAO8d,UAAjB,CAIA,IAAIxnB,EAAQwQ,EAAM9G,OAAO1J,MACrBynB,EAAiBxnB,KAAKinB,YAAYlnB,EAAOwQ,IAKtB,IAAnBiX,GAA4BjX,EAAM6I,iBACpC,eAAU7I,EAAO,CACf4E,aAAa,KAKjBnV,KAAKgmB,WAAawB,EAClBxnB,KAAKmnB,YAAYK,GACjBxnB,KAAKuF,MAAM,OAAkBiiB,MAE/B5Y,SAAU,SAAkB2B,GAC1B,IAAIxQ,EAAQwQ,EAAM9G,OAAO1J,MACrBynB,EAAiBxnB,KAAKinB,YAAYlnB,EAAOwQ,IAKtB,IAAnBiX,GAA4BjX,EAAM6I,iBACpC,eAAU7I,EAAO,CACf4E,aAAa,KAKjBnV,KAAKgmB,WAAawB,EAClBxnB,KAAKmnB,YAAYK,GAAgB,GACjCxnB,KAAKuF,MAAM,OAAmBiiB,KAEhC1Y,OAAQ,SAAgByB,GAGtB,IAAIxQ,EAAQwQ,EAAM9G,OAAO1J,MACrBynB,EAAiBxnB,KAAKinB,YAAYlnB,EAAOwQ,GAAO,IAE7B,IAAnBiX,IAGFxnB,KAAKgmB,WAAa,eAAShmB,KAAKkmB,YAAYsB,IAG5CxnB,KAAKmnB,YAAYK,GAAgB,IAInCxnB,KAAKuF,MAAM,OAAiBgL,IAE9BkX,MAAO,WAEAznB,KAAKiS,UACR,eAAajS,KAAKyV,MAGtBiS,KAAM,WAEC1nB,KAAKiS,UACR,eAAYjS,KAAKyV,U,kCChQzB,+OAAS5M,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAoB3M,IAAIyd,EAAQ,CAAC,OAAQ,WAAY,QAAS,SAAU,MAAO,MAAO,SAAU,QAAS,QAAS,OAAQ,OAAQ,WAAY,iBAAkB,QAAS,QAE1I/iB,EAAQ,eAAsB,eAAS4E,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAmB,QAAgB,QAAiB,QAAgB,GAAI,CAC1Noe,KAAM,eAAS,QACfC,IAAK,eAAS,QACdhlB,IAAK,eAAS,QAEdilB,QAAS,eAAS,QAAmB,GACrCvZ,KAAM,eAAS,QACf1J,KAAM,eAAS,OAAkB,QAAQ,SAAUA,GACjD,OAAO,eAAc8iB,EAAO9iB,SAE3B,QAGM6K,EAA0B,aAAItP,OAAO,CAC9CqE,KAAM,OAENoL,OAAQ,CAAC,OAAgB,OAAS,OAAkB,OAAe,OAAgB,OAAe,OAAoB,QACtHjL,MAAOA,EACPlF,SAAU,CACRqoB,UAAW,WAET,IAAIljB,EAAO7E,KAAK6E,KAChB,OAAO,eAAc8iB,EAAO9iB,GAAQA,EAAO,QAE7CmjB,cAAe,WACb,IAAInjB,EAAO7E,KAAK+nB,UACZtjB,EAAOzE,KAAKyE,KACZwjB,EAAOjoB,KAAKioB,KACZhW,EAAWjS,KAAKiS,SAChB5D,EAAcrO,KAAKqO,YACnBtJ,EAAW/E,KAAK+E,SAChBlC,EAAM7C,KAAK6C,IACXglB,EAAM7nB,KAAK6nB,IACXtZ,EAAOvO,KAAKuO,KAChB,MAAO,CACL3G,GAAI5H,KAAKkoB,SACTzjB,KAAMA,EACNwjB,KAAMA,EACNpjB,KAAMA,EACNoN,SAAUA,EACV5D,YAAaA,EACbtJ,SAAUA,EACV0gB,aAAczlB,KAAKylB,cAAgB,KACnCnX,SAAUtO,KAAKsO,UAAYtO,KAAK6lB,UAChChjB,IAAKA,EACLglB,IAAKA,EACLtZ,KAAMA,EACNqZ,KAAe,aAAT/iB,EAAsB7E,KAAK4nB,KAAO,KACxC,gBAAiB7iB,EAAW,OAAS,KACrC,eAAgB/E,KAAKmoB,sBAGzBC,kBAAmB,WACjB,OAAO5e,EAAcA,EAAc,GAAIxJ,KAAKqoB,aAAc,GAAI,CAC5D5nB,MAAOT,KAAK6O,QACZyZ,OAAQtoB,KAAK4O,SACb8Y,KAAM1nB,KAAK8O,WAIjBxJ,MAAO,CACLwiB,QAAS,SAAiBlT,GACxB5U,KAAKuoB,gBAAgB3T,KAGzBoQ,QAAS,WACPhlB,KAAKuoB,gBAAgBvoB,KAAK8nB,UAI5BU,YAAa,WAIXxoB,KAAKuoB,iBAAgB,IAIvBE,UAAW,WAITzoB,KAAKuoB,gBAAgBvoB,KAAK8nB,UAE5Bf,cAAe,WAEb/mB,KAAKuoB,iBAAgB,IAEvB1oB,QAAS,CACP0oB,gBAAiB,SAAyB5Z,GACxC,IAAIlO,EAAQT,KAAKyV,IAEjB,eAAW9G,EAAIlO,EAAO,QAAST,KAAK0oB,cACpC,eAAW/Z,EAAIlO,EAAO,OAAQT,KAAK2oB,aAE9Bha,GACH,eAASia,SAAU,QAAS5oB,KAAK6oB,YAGrCH,aAAc,WACZ,eAAQE,SAAU,QAAS5oB,KAAK6oB,YAElCF,YAAa,WACX,eAASC,SAAU,QAAS5oB,KAAK6oB,YAEnCA,UAAW,SAAmBtY,GAC5B,eAAUA,EAAO,CACf4E,aAAa,IAEf,eAAYnV,KAAKyV,OAGrBnS,OAAQ,SAAgB4E,GACtB,OAAOA,EAAE,QAAS,CAChBG,MAAOrI,KAAKmmB,cACZriB,MAAO9D,KAAKgoB,cACZhd,SAAU,CACRjL,MAAOC,KAAKgmB,YAEdrX,GAAI3O,KAAKooB,kBACTja,IAAK,c,sOClJE2a,EAAoB,SAAAvY,GAC/B,IAAMwY,EAAQ,mBACTA,EAAMC,KAAKzY,EAAM1G,MACpB0G,EAAMC,kBAGGyY,EAAuB,SAAA1Y,GAClC,IAAMwY,EAAQ,cACTA,EAAMC,KAAKzY,EAAM1G,MACpB0G,EAAMC,kBAGG0Y,EAAqB,SAAA3Y,GAChC,IAAMwY,EAAQ,gBACTA,EAAMC,KAAKzY,EAAM1G,MACpB0G,EAAMC,kBAGG2Y,EAAqB,SAAA5Y,GAChC,IAAMwY,EAAQ,YACTA,EAAMC,KAAKzY,EAAM1G,MACpB0G,EAAMC,kBAGG4Y,EAAuB,SAAA7Y,GAClC,IAAMwY,EAAQ,WACTA,EAAMC,KAAKzY,EAAM1G,MACpB0G,EAAMC,mB,kCC3BV,gJAMW5L,EAAQ,eAAsB,CACvC8d,MAAO,eAAS,QAChB2G,SAAU,eAAS,OAAkB,OACpC,QAGQC,EAA0B,aAAIlpB,OAAO,CAC9CqE,KAAM,OACNwD,YAAY,EACZrD,MAAOA,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SACpB,OAAOF,EAAEtD,EAAMykB,SAAU,eAAU9nB,EAAM,CACvCsC,YAAa,eACXuE,GAAY,eAASxD,EAAM8d,Y,oCCrBnC,IAAI6G,EAAI,EAAQ,QACZC,EAAY,EAAQ,QAA2BtiB,MAC/CuiB,EAAa,EAAQ,QAIzBF,EAAE,CAAE9f,OAAQ,SAAUigB,OAAO,EAAMC,OAAQF,GAAc,CACvD7L,SAAU,SAAkBtX,GAC1B,OAAOkjB,EAAUxpB,KAAMsG,EAAWrF,UAAU4F,OAAS,EAAI5F,UAAU,QAAK8F,O,6DCT5E,6IAAS+C,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAO3M,IAAI0f,EAAwB,SAA+B7pB,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBgL,OAAOhL,IAIxB6E,EAAQ,eAAsB,CACvCmH,MAAO,eAAS,QAEhB8d,WAAY,eAAS,QAAmB,GACxClT,KAAM,eAAS,QAAmB,GAClCmT,UAAW,eAAS,QAAmB,GACvC1W,MAAO,eAAS,QAAmB,GACnC2W,MAAO,eAAS,QAAmB,GACnCC,KAAM,eAAS,QAAmB,GAClCrc,IAAK,eAAS,OAAkB,MAChCsc,SAAU,eAAS,QAAmB,IACrC,QAGQC,EAAoB,aAAI9pB,OAAO,CACxCqE,KAAM,OACNwD,YAAY,EACZrD,MAAOA,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAI+D,EAEAtH,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SAChB4hB,EAAOplB,EAAMolB,KACb5W,EAAQxO,EAAMwO,MACd6W,EAAWrlB,EAAMqlB,SACjBle,EAAQnH,EAAMmH,MACd8d,EAAajlB,EAAMilB,WACvB,OAAO3hB,EAAEtD,EAAM+I,IAAK,eAAUpM,EAAM,CAClCsC,YAAa,MACbwE,OAAQ6D,EAAS,CACf,WAAY8d,EACZ,YAAa5W,IAAU4W,EACvB,oBAAqBC,GAAYJ,GAAcG,EAC/C,qBAAsBC,GAAYJ,GAAczW,IAAU4W,EAC1D,cAAeC,EACf,YAAaA,GAAYrlB,EAAM+R,KAC/B,iBAAkBsT,GAAYrlB,EAAMklB,WACnChgB,EAAgBoC,EAAQ0d,EAAsB7d,IAASke,GAAYle,GAAQjC,EAAgBoC,EAAQ,QAAStH,EAAMmlB,OAAQ7d,KAC3H9D,O,uBCrDRpB,EAAOC,QAAU,IAA0B,2B,kCCA3C,sCAAIkjB,EAAgBzZ,EAApB,wHAEA,SAAS7H,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAa3M,IAAIkgB,EAAyB,SACzBC,EAA0B,QAA0BD,EAE7CxlB,EAAQ,eAAsB,eAAS4E,EAAcA,EAAc,GAAI,QAAU,IAAK2gB,EAAiB,GAAIrgB,EAAgBqgB,EAAgBC,EAAwB,eAAS,QAAmB,IAAStgB,EAAgBqgB,EAAgB,WAAY,eAAS,SAAoBrgB,EAAgBqgB,EAAgB,WAAY,eAAS,QAAmB,IAASrgB,EAAgBqgB,EAAgB,OAAQ,eAAS,QAAmB,IAASrgB,EAAgBqgB,EAAgB,SAAU,eAAS,QAAmB,IAASrgB,EAAgBqgB,EAAgB,MAAO,eAAS,OAAkB,QAASrgB,EAAgBqgB,EAAgB,QAAS,eAAS,SAAoBrgB,EAAgBqgB,EAAgB,iBAAkB,eAAS,SAAiCrgB,EAAgBqgB,EAAgB,sBAAuB,eAAS,SAAoBrgB,EAAgBqgB,EAAgB,iBAAkB,eAAS,SAAiCA,KAAmB,SAG96B9I,EAAoB,aAAIjhB,OAAO,CACxCqE,KAAM,QACNoL,OAAQ,CAAC,OAAS,QAClBya,OAAQ,CACNC,OAAQ,CACNnlB,QAAS,WACP,MAAO,MAIbR,MAAOA,EACPrD,KAAM,WACJ,MAAO,CACLipB,YAAaxqB,KAAKoqB,KAA4BpqB,KAAKiS,WAGvDvS,SAAU,CAER+qB,OAAQ,WACN,OAAO,GAETC,WAAY,WACV,IAAIvS,EAASnY,KAAKwqB,YACdvY,EAAWjS,KAAKiS,SACpB,MAAO,CAAC,CACNkG,OAAQA,EACRlG,SAAUA,EACV,YAAajS,KAAKuqB,OAAOze,OAAS9L,KAAKgM,QAEzCmM,EAASnY,KAAKuqB,OAAOI,eAAiB,OAExCC,aAAc,WACZ,OAAO5qB,KAAK6qB,UAAY7qB,KAAKkoB,OAAO,sBAEtC4C,eAAgB,WACd,OAAS9qB,KAAKuqB,OAAOQ,MAEvBC,aAAc,WACZ,OAAOhrB,KAAKuqB,OAAO5E,MAAQ3lB,KAAK2lB,OAGpCrgB,OAAQoL,EAAS,GAAI5G,EAAgB4G,EAAQ0Z,GAAwB,SAAUxV,EAAUC,GACnFD,IAAaC,IACXD,EAEF5U,KAAKirB,WAGAjrB,KAAKkrB,cAGRlrB,KAAKuF,MAAM8kB,EAAyBrqB,KAAKwqB,iBAI7C1gB,EAAgB4G,EAAQ,YAAY,SAAkBkE,EAAUC,GAClE,GAAID,IAAaC,EAAU,CACzB,IAAIsW,EAAWnrB,KAAKuqB,OAAOY,SAEvBvW,GAAY5U,KAAKwqB,aAAeW,IAClCnrB,KAAKwqB,aAAc,EACnBW,SAGFrhB,EAAgB4G,EAAQ,eAAe,SAAqBkE,GAE9D5U,KAAKuF,MAAM8kB,EAAyBzV,MAClClE,GACJsU,QAAS,WAEPhlB,KAAKorB,eAEPC,QAAS,WAGP,IAAIC,EAAetrB,KAAKuqB,OAAOe,aAE3BA,GAAgBtrB,KAAKurB,kBAAkB,SACzCD,EAAatrB,OAGjB+mB,cAAe,WAEb/mB,KAAKwrB,iBAEP3rB,QAAS,CAEPurB,YAAa,WAEX,IAAIA,EAAcprB,KAAKuqB,OAAOa,YAE1BA,GACFA,EAAYprB,OAGhBwrB,cAAe,WAEb,IAAIA,EAAgBxrB,KAAKuqB,OAAOiB,cAE5BA,GACFA,EAAcxrB,OAIlBirB,SAAU,WAER,IAAIQ,EAAczrB,KAAKuqB,OAAOkB,YAC9B,SAAOA,GAAgBzrB,KAAKiS,WAAWwZ,EAAYzrB,OAErDkrB,WAAY,WAEV,IAAIQ,EAAgB1rB,KAAKuqB,OAAOmB,cAChC,SAAOA,IAAiB1rB,KAAKwqB,cAAckB,EAAc1rB,QAG7DsD,OAAQ,SAAgB4E,GACtB,IAAIsiB,EAAcxqB,KAAKwqB,YACnBjd,EAAWrF,EAAElI,KAAK2N,IAAK,CACzB9J,YAAa,WACbwE,MAAOrI,KAAK0qB,WACZrb,WAAY,CAAC,CACX5K,KAAM,OACN1E,MAAOyqB,IAET1mB,MAAO,CACL8T,KAAM,WACNhQ,GAAI5H,KAAKkoB,SACT,cAAesC,EAAc,QAAU,OACvC,kBAAmBxqB,KAAK4qB,cAAgB,MAE1Czc,IAAK,SAEP,CAACqc,IAAgBxqB,KAAKgrB,aAAehrB,KAAKyX,gBAAkBvP,MAC5D,OAAOA,EAAE,OAAc,CACrBtD,MAAO,CACL+mB,KAAM,SACNC,OAAQ5rB,KAAK8qB,iBAEd,CAACvd,Q,sNC7JG,EAAQ,eAAsB,CACvCse,SAAU,eAAS,QACnBC,YAAa,eAAS,OAAkB,MACxCC,oBAAqB,eAAS,OAAkB,UAC/C,QAGQC,EAA6B,aAAI5rB,OAAO,CACjDqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SACpB,OAAOF,EAAEtD,EAAMknB,YAAa,eAAUvqB,EAAM,CAC1CsC,YAAa,gBACbwE,MAAO,CAACzD,EAAMmnB,oBAAsB,QAAQhhB,OAAOnG,EAAMmnB,qBAAuB,QAC9E3jB,GAAY,eAASxD,EAAMinB,cCxBnC,SAAShjB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAWpM,IAAI,EAAQ,eAAsB,eAASV,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAa,GAAgB,eAAUsC,EAAA,KAAW,OAAezB,KAAK,KAAM,UAAW,GAAI,CACvM4hB,UAAW,eAAS,QACpBze,QAAS,eAAS,QAAmB,MAClC,QAGM0e,EAAyB,aAAI9rB,OAAO,CAC7CqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIuC,EAEA9F,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SAChB+jB,EAAgBvnB,EAAMunB,cACtBC,EAAoBxnB,EAAMwnB,kBAC1BC,EAAkBznB,EAAMynB,gBACxBC,EAASpkB,IAETtD,EAAM8d,QACR4J,EAASpkB,EAAE,OAAY,CACrBtD,MAAO,eAAW,OAAYA,MAIlC,IAAI2nB,EAAYrkB,IAShB,OAPItD,EAAMinB,WACRU,EAAYrkB,EAAE8jB,EAAe,CAC3BpnB,MAAO,eAAW,EAAeA,GACjCyD,MAAO,CAAC,WAILH,EAAEtD,EAAM4nB,QAAS,eAAUjrB,EAAM,CACtCsC,YAAa,YACbwE,MAAO,EAAEqC,EAAQ,CACf,mBAAoB9F,EAAM4I,SACzB1D,EAAgBY,EAAO,MAAMK,OAAOohB,GAAgBA,GAAgBriB,EAAgBY,EAAO,UAAUK,OAAOqhB,GAAoBA,GAAoBtiB,EAAgBY,EAAO,QAAQK,OAAOshB,GAAkBA,GAAkB3hB,GAAQ9F,EAAMqnB,aAC7O,CAACK,EAAQC,EAAWnkB,Q,kCCxD5B,W,kCCAA,W,kCCAA,W,wKCEIqkB,EAAa,SAAoB1sB,GACnC,MAAO,KAAOA,GAKL,EAAY,SAAmBA,GACxCA,EAAQ,eAASA,GACjB,IAAI8G,EAAS9G,EAAM8G,OACf6lB,EAAgB3sB,EAAM4sB,WAAW,GACrC,OAAO5sB,EAAMob,MAAM,IAAIyR,QAAO,SAAUnlB,EAAQolB,EAAMxpB,GACpD,IAAIypB,EAAW/sB,EAAM4sB,WAAWtpB,GAEhC,OAAiB,IAAbypB,EACKrlB,EAAS,IAKL,MAAbqlB,GACAA,GAAY,GAAUA,GAAY,IACxB,IAAVzpB,GAAeypB,GAAY,IAAUA,GAAY,IAEvC,IAAVzpB,GAAeypB,GAAY,IAAUA,GAAY,IAA4B,KAAlBJ,EAElDjlB,EAASglB,EAAW,GAAG1hB,OAAO+hB,EAASlnB,SAAS,IAAK,MAKpD,IAAVvC,GACa,KAAbypB,GACW,IAAXjmB,EAESY,EAASglB,EAAWI,GAK7BC,GAAY,KACC,KAAbA,GACa,KAAbA,GACAA,GAAY,IAAUA,GAAY,IAClCA,GAAY,IAAUA,GAAY,IAClCA,GAAY,IAAUA,GAAY,IAEzBrlB,EAASolB,EAKXplB,EAASglB,EAAWI,KAC1B,K,gJCjDM,EAAQ,eAAsB,CACvClf,IAAK,eAAS,OAAkB,QAC/B,QAGQof,EAAwB,aAAI3sB,OAAO,CAC5CqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SACpB,OAAOF,EAAEtD,EAAM+I,IAAK,eAAUpM,EAAM,CAClCsC,YAAa,aACXuE,M,wBCfG,EAAQ,eAAsB,CACvCkW,SAAU,eAAS,QACnBC,UAAW,eAAS,QAAmB,GACvC3W,GAAI,eAAS,QACbgQ,KAAM,eAAS,QAEf5T,MAAO,eAAS,OAAmB,MACnC2J,IAAK,eAAS,OAAkB,OAChC6Q,QAAS,eAAS,QAAmB,IACpC,QAGQwO,EAAkC,aAAI5sB,OAAO,CACtDqE,KAAM,OACNwD,YAAY,EACZrD,MAAO,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SAChBoW,EAAU5Z,EAAM4Z,QAChBF,EAAW1Z,EAAM0Z,SACjB/E,GAA2B,IAApB3U,EAAM2Z,YAAsC,IAAhB3Z,EAAMZ,MAC7C,OAAOkE,EAAEtD,EAAM+I,IAAK,eAAUpM,EAAM,CAClC8G,MAAO,CACL,UAAWkR,EACX,kBAAmBiF,EACnB,gBAAiBA,GAEnB1a,MAAO,CACL8D,GAAIhD,EAAMgD,IAAM,KAChBgQ,KAAMhT,EAAMgT,MAAQ,KACpB,YAAa0G,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnClW,MCxCR,SAASS,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAyB3M,IAAI+iB,EAAS,CAAC,QAAS,SAAU,YAE7BC,EAAiBD,EAAOzW,KAAI,SAAU2W,GACxC,MAAO,GAAGpiB,OAAOoiB,EAAG,uBACnBC,OAECC,EAA8B,GAAGtiB,OAAOkiB,EAAQ,CAAC,IAAK,SAAU,UAGzD,EAAgB,WACzB,OAAO,eAAsB,eAASzjB,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAiB,iBAAyBojB,QAAO,SAAUhoB,EAAO0oB,GAO5K,OALA1oB,EAAM,eAAe0oB,EAAY,gBAAkB,eAAS,QAE5D1oB,EAAM,eAAe0oB,EAAY,eAAiB,eAAS,QAE3D1oB,EAAM,eAAe0oB,EAAY,cAAgB,eAAS,QACnD1oB,IACN,eAAO,QAAS,GAAI,CACrB2oB,YAAa,eAAS,QACtBtb,SAAU,eAAS,QAAmB,GACtCub,iBAAkB,eAAS,OAAkB,aAC7CC,gBAAiB,eAAS,QAC1B5f,MAAO,eAAS,QAChB6f,WAAY,eAAS,QACrBC,SAAU,eAAS,QACnBC,UAAW,eAAS,QACpBC,YAAa,eAAS,QAAmB,GACzCrP,QAAS,eAAS,QAAmB,GACrCsP,cAAe,eAAS,QACxB/lB,UAAW,eAAS,QAAmB,MACpC,SAMI4H,EAAa,CACtBlL,KAAM,OACNoL,OAAQ,CAAC,OAAS,OAAgB,QAElC,YAME,cAFO7P,KAAK4E,MAEL5E,KAAK4E,MAAQ,KAGtBrD,KAAM,WACJ,MAAO,CACLwsB,gBAAiB,OAGrBruB,SAAU,CACRsuB,gBAAiB,WACf,OAAOhuB,KAAKiuB,YAAYjuB,KAAKkuB,OAAQ,YAEvCC,kBAAmB,WACjB,OAAOnuB,KAAKouB,gBAAgBpuB,KAAKkuB,OAAQ,UAE3CG,cAAe,WACb,OAAOruB,KAAKiuB,YAAYjuB,KAAKkuB,OAAQ,UAEvCI,aAAc,WAGZ,OAAO,eAAKtuB,KAAKguB,iBAAiBnnB,OAAS,GAAK,eAAK7G,KAAKquB,eAAexnB,OAAS,IAGtFvB,MAAO,CACLyoB,gBAAiB,SAAyBnZ,EAAUC,GAC9CD,IAAaC,GACf7U,KAAKuuB,sBAAsB3Z,EAAUC,KAI3CmQ,QAAS,WACP,IAAIlQ,EAAQ9U,KAEZA,KAAK+U,WAAU,WAGbD,EAAMyZ,sBAAsBzZ,EAAMiZ,qBAGtCluB,QAAS,CACPuuB,gBAAiB,SAAyBxpB,EAAO4pB,GAC/C,OAAO,iBAAyB5B,QAAO,SAAUnlB,EAAQ6lB,GACvD,IAAImB,EAAY7pB,EAAM,eAAe0oB,EAAY,GAAGviB,OAAOyjB,EAAQ,YAAc,KAMjF,OAJIC,GACFhnB,EAAO8B,KAAK,CAAC,OAAQ+jB,EAAYmB,GAAWtlB,OAAOulB,EAAA,MAAUtB,KAAK,MAG7D3lB,IACN,KAELwmB,YAAa,SAAqBrpB,EAAO4pB,GACvC,OAAO,iBAAyB5B,QAAO,SAAUnlB,EAAQ6lB,GACvD,IAAImB,EAAY7pB,EAAM,eAAe0oB,EAAY,GAAGviB,OAAOyjB,EAAQ,UAmBnE,OAhBAC,EAA0B,KAAdA,IAA0BA,IAAa,GAE9C,eAAUA,IAA4B,SAAdA,IAE3BA,EAAY,eAAUA,EAAW,GAEjCA,EAAYA,EAAY,GAAIA,GAM1BA,IACFhnB,EAAO6lB,IAAe,eAAUmB,GAAa,MAAQ,SAAWA,GAG3DhnB,IACN,KAKL8mB,sBAAuB,SAA+B3Z,EAAUC,GAC9D,IAAI8Y,EAAW3tB,KAAK2tB,SAEpB,GAAI,QAAcA,EAAU,CAE1B,IAAItG,EAAS,eAAO,IAAItc,OAAO,EAAU4iB,IAAY3tB,KAAKQ,MAAM+X,SAEhE,GAAI8O,EAAQ,CACV,IAAIsH,EAAO,mBACPC,GAAUha,GAAY,IAAIuG,MAAM,QAChC0T,GAAUha,GAAY,IAAIsG,MAAM,QAGhC2T,GAAO,eAAQzH,EAAQsH,IAAS,IAAIxT,MAAM,QAAgBhS,QAAO,SAAUvB,GAC7E,OAAQ,OAAAmnB,EAAA,MAAcF,EAAQjnB,MAC7BmD,OAAO6jB,GAAQzlB,QAAO,SAAUvB,EAAIvE,EAAOyrB,GAC5C,OAAOA,EAAI1Y,QAAQxO,KAAQvE,KAC1B8F,OAAOulB,EAAA,MAAUtB,KAAK,KAAKtH,OAE1BgJ,EACF,eAAQzH,EAAQsH,EAAMG,GAEtB,eAAWzH,EAAQsH,MAK3BK,cAAe,SAAuBze,GAIpC,IAAIvQ,KAAK2tB,SAAT,CAIA,IAAIlkB,EAAS8G,EAAM9G,OACfwlB,EAAUxlB,EAASA,EAAOwlB,QAAU,GAKxC,IAAsD,IAAlD5B,EAA4BjX,QAAQ6Y,GAAxC,CAKA,IAAIC,EAAS,eAAUhC,EAAgBltB,KAAKQ,MAAM+X,SAASpP,OAAO,QAE5C,IAAlB+lB,EAAOroB,QACT,eAAaqoB,EAAO,QAI1B5rB,OAAQ,SAAgB4E,GACtB,IAAIlE,EAAQhE,KAAKmvB,cACb3B,EAAmBxtB,KAAKwtB,iBACxBc,EAAetuB,KAAKsuB,aACpBX,EAAW3tB,KAAK2tB,SAChBlW,EAAgBzX,KAAKyX,cACrByQ,EAASloB,KAAKkoB,OACd1J,EAAUxe,KAAKwe,QACf5W,EAAKsgB,IACLkH,GAAczB,EACd0B,EAASnnB,IACTonB,EAAe7X,EAAc,SAAoBzX,KAAK6N,MACtD0hB,EAAUD,EAAepH,EAAO,cAAgB,KAEpD,GAAIoH,GAAgBhB,EAAc,CAChC,IAAIV,EAAY5tB,KAAK4tB,UACjBS,EAAgBruB,KAAKquB,cACrBmB,EAAWJ,EAAa,SAAW,QAEnCpvB,KAAK6tB,aACHyB,IACFD,EAASnnB,EAAEsnB,EAAU,CACnBnnB,MAAO,UACPvE,MAAO,CACL8D,GAAI2nB,EACJE,IAAK9B,GAAY,OAElB,CAAC2B,KAGND,EAASnnB,EAAEomB,EAAe,OAAO,MAAO,CACtC1pB,MAAO0pB,EAAeD,EAAgB,IACrC,CAACgB,KAEJA,EAASnnB,EAAEomB,EAAe,OAAOkB,EAAU,CACzC7gB,GAAIygB,EAAa,CACfrd,MAAO/R,KAAKgvB,eACV,GACJpqB,MAAO0pB,EAAe9kB,EAAcA,EAAc,GAAI6kB,GAAgB,GAAI,CACxE1gB,IAAK6hB,IACF,GACL1rB,MAAO,CACL8D,GAAI2nB,EACJE,IAAK9B,GAAY,KAGjB9V,SAAUuX,EAAa,KAAO,MAEhC/mB,MAAO,CACP+mB,EAAa,mBAAqB,GAIlCd,GAAgBc,EAAa,iBAAmB,IAC/Cd,GAAgBc,EAAa,OAAS,GAEtCd,GAAiBc,EAAyB,GAAZ,UAAgBxB,EAAY,kBAAkB7iB,OAAO6iB,GAAa,GAAI5tB,KAAKmuB,kBAAmBnuB,KAAK0tB,aACjI,CAAC4B,IAIR,IAAII,EAAmBxnB,IACnBynB,EAAyBlY,EAAc,SAA+BzX,KAAKytB,gBAC3EmC,EAAoBD,EAAyBzH,EAAO,yBAA2B,KAE/EyH,IACFD,EAAmBxnB,EAAE,OAAsB,CACzCtD,MAAO,CACL0Z,SAAUkP,EACV5lB,GAAIgoB,EACJhY,KAAM4V,EAAmB,QAAU,KAEnCxpB,MAAOA,EACPwa,QAASA,GAEX1a,MAAO,CACL+T,SAAU8X,EAAyB,KAAO,OAE3C,CAACA,KAGN,IAAIE,EAAiB3nB,IACjB4nB,EAAuBrY,EAAc,UAA6BzX,KAAK8tB,cACvEiC,EAAkBD,EAAuB5H,EAAO,uBAAyB,KAEzE4H,IACFD,EAAiB3nB,EAAE8kB,EAAoB,CACrCpoB,MAAO,CACL0Z,SAAUkP,EACV5lB,GAAImoB,EACJnY,KAAM4V,EAAmB,QAAU,KAEnCxpB,MAAOA,EACPwa,QAASA,GAEX1a,MAAO,CACL+T,SAAUiY,EAAuB,KAAO,OAEzC,CAACA,KAGN,IAAIE,EAAe9nB,IACf+nB,EAAqBxY,EAAc,SAA0BzX,KAAKutB,YAClE2C,EAAgBD,EAAqB/H,EAAO,oBAAsB,KAElE+H,IACFD,EAAe9nB,EAAE,OAAW,CAC1BpE,MAAO,CACL8D,GAAIsoB,EACJrY,SAAU,OAEX,CAACoY,KAON,IAAIlC,EAAkB/tB,KAAK+tB,gBAAkB,CAACmC,GAAyB,IAAVlsB,EAAkB4rB,EAAoB,MAAgB,IAAV5rB,EAAiB+rB,EAAkB,MAAM5mB,OAAOulB,EAAA,MAAUtB,KAAK,MAAQ,KAC5K7f,EAAWrF,EAAEomB,EAAe,OAAO,MAAO,CAC5C1pB,MAAO0pB,EAAetuB,KAAKguB,gBAAkB,GAC7C7f,IAAK,WACJ,CAACsJ,EAAc,OAAmB,CACnCsW,gBAAiBA,EACjBmC,cAAeA,EACftoB,GAAIA,EACJ2nB,QAASA,KACLrnB,IAAKwnB,EAAkBG,EAAgBG,IAK7C,OAAO9nB,EAAEknB,EAAa,WAAad,EAAevB,EAAW,MAAO,CAClElpB,YAAa,aACbwE,MAAO,CAAC,CACN,gBAAiBrI,KAAK+H,WACrB/H,KAAKumB,YACRziB,MAAO,CACL8D,GAAIA,EACJqK,SAAUmd,EAAapvB,KAAKiS,SAAW,KACvC2F,KAAMwX,EAAa,KAAO,QAC1B,eAAgBpvB,KAAKmoB,oBAGrB,kBAAmBiH,GAAcd,EAAeiB,EAAU,OAE3DjB,GAAgBc,EAAa,CAAClnB,EAAE6kB,EAAU,CAACsC,EAAQ9hB,KAAc,CAAC8hB,EAAQ9hB,O,oCClWjF,2GAASzD,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAOpM,IAAItF,EAAQ,eAAsB,CACvCgD,GAAI,eAAS,QACbC,OAAQ,eAAS,QAAmB,GACpC8F,IAAK,eAAS,OAAkB,SAChCf,YAAa,eAAS,OAAkB,UACvC,QAGQujB,EAAyB,aAAI/vB,OAAO,CAC7CqE,KAAM,OACNwD,YAAY,EACZrD,MAAOA,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIvD,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SACpB,OAAOF,EAAEtD,EAAM+I,IAAK,eAAUpM,EAAM,CAClC8G,MAAOyB,EAAgB,CACrB,aAAclF,EAAMiD,QACnB,QAAQkD,OAAOnG,EAAMgI,aAAchI,EAAMgI,aAC5C9I,MAAO,CACL8D,GAAIhD,EAAMgD,MAEVQ,O,wKC9BGgoB,EAAsB,YACtBC,EAAoB,UACpBC,EAAyB,eACzBC,EAAuB,aACvBC,EAAwB,cAExBC,EAAuB,a,4GCDvBC,EAAgB,aAAItwB,OAAO,CACpCmB,KAAM,WACJ,MAAO,CACLovB,mBAAmB,IAGvBrrB,MAAO,CACLqrB,kBAAmB,SAA2B/b,EAAUC,GAClDD,IAAaC,IACf,eAAS7U,KAAK4wB,gBAAiB5wB,KAAK6wB,kBAAmB7wB,KAAK8wB,iBAAkB,QAE1Elc,GACF,eAAQ5U,KAAK4wB,gBAAiB5wB,KAAK6wB,kBAAmB7wB,KAAK8wB,iBAAkB,WAKrFC,aAAc,WAEZ/wB,KAAK4wB,gBAAkB,KACvB5wB,KAAK6wB,kBAAoB,MAE3B7L,QAAS,WACFhlB,KAAK4wB,kBACR5wB,KAAK4wB,gBAAkBhI,UAGpB5oB,KAAK6wB,oBACR7wB,KAAK6wB,kBAAoB,SAGvB7wB,KAAK2wB,mBACP,eAAQ3wB,KAAK4wB,gBAAiB5wB,KAAK6wB,kBAAmB7wB,KAAK8wB,iBAAkB,SAGjF/J,cAAe,WACb,eAAS/mB,KAAK4wB,gBAAiB5wB,KAAK6wB,kBAAmB7wB,KAAK8wB,iBAAkB,SAEhFjxB,QAAS,CACPmxB,WAAY,SAAoBzgB,GAC9B,OAAQ,eAASvQ,KAAKyV,IAAKlF,EAAM9G,SAEnCqnB,iBAAkB,SAA0BvgB,GACtCvQ,KAAKixB,iBAAmBjxB,KAAKgxB,WAAWzgB,IAC1CvQ,KAAKixB,gBAAgB1gB,OC7ClB2gB,EAAe,aAAI9wB,OAAO,CACnCmB,KAAM,WACJ,MAAO,CACL4vB,kBAAkB,IAGtB7rB,MAAO,CACL6rB,iBAAkB,SAA0Bvc,EAAUC,GAChDD,IAAaC,IACf,eAAS7U,KAAKoxB,eAAgB,UAAWpxB,KAAKqxB,gBAAiB,QAE3Dzc,GACF,eAAQ5U,KAAKoxB,eAAgB,UAAWpxB,KAAKqxB,gBAAiB,WAKtEN,aAAc,WAEZ/wB,KAAKoxB,eAAiB,MAExBpM,QAAS,WACFhlB,KAAKoxB,iBACRpxB,KAAKoxB,eAAiBxI,UAGpB5oB,KAAKmxB,kBACP,eAAQnxB,KAAKoxB,eAAgB,UAAWpxB,KAAKqxB,gBAAiB,SAGlEtK,cAAe,WACb,eAAS/mB,KAAKoxB,eAAgB,UAAWpxB,KAAKqxB,gBAAiB,SAEjExxB,QAAS,CACPwxB,gBAAiB,SAAyB9gB,GACpCvQ,KAAKsxB,gBACPtxB,KAAKsxB,eAAe/gB,O,wBCxC5B,SAAS1H,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAsB3M,IAAIqnB,EAAwB,eAAiB,OAAe,QACxDC,EAAyB,eAAiB,OAAe,QAEzDC,EAAsB,iBACtBC,EAAgB,CAAC,iBAAkB,oBAAoBlb,KAAI,SAAUmb,GACvE,MAAO,GAAG5mB,OAAO4mB,EAAU,sCAC1BvE,KAAK,MAGJ,EAAiB,SAAwBwE,GAC3C,OAAQA,GAAO,IAAIzoB,OAAO,SAIjB,EAAQ,eAAsB,eAASK,EAAcA,EAAc,GAAI5B,EAAA,MAAU,GAAI,CAG9FiqB,SAAU,eAAS,CAAC,OAAa,QAAmB,gBACpD5f,SAAU,eAAS,QAAmB,GAEtC6f,SAAU,eAAS,QAAmB,GAEtCC,UAAW,eAAS,QAAmB,GAEvCC,OAAQ,eAAS,QAAmB,GAEpCC,OAAQ,eAAS,QAAmB,GAGpCxZ,OAAQ,eAAS,OAAyB,GAC1CyZ,WAAY,eAAS,OAAkB,IAEvCxmB,MAAO,eAAS,QAAmB,MAChC,QAGMymB,EAAgB,aAAI/xB,OAAO,CACpCyP,OAAQ,CAACjI,EAAA,KAAS,OAAmB8oB,EAAeQ,GACpDkB,QAAS,WACP,MAAO,CACLC,WAAYryB,OAGhBsqB,OAAQ,CACNgI,SAAU,CACRltB,QAAS,OAGbR,MAAO,EACPrD,KAAM,WACJ,MAAO,CACLgxB,SAAS,EACTC,wBAAwB,IAG5B9yB,SAAU,CACR+yB,SAAU,WACR,OAAQ,eAAOzyB,KAAKsyB,WAEtBI,QAAS,WACP,IAAIC,EAAS3yB,KAAKQ,MAAMmyB,OACxB,OAAOA,EAASA,EAAOld,KAAOkd,EAAS,MAEzCC,eAAgB,WACd,OAAI5yB,KAAKgyB,OACA,SACEhyB,KAAK+xB,UACP,YACE/xB,KAAK8xB,SACP,WAGF,IAETe,cAAe,WAIb,MAAyB,iBAAlB7yB,KAAK6xB,UAAgC7xB,KAAKyyB,SAA+B,GAApB,oBAGhEntB,MAAO,CACLitB,QAAS,SAAiB3d,EAAUC,GAClC,GAAI7U,KAAKwyB,uBACPxyB,KAAKwyB,wBAAyB,OAIhC,GAAI5d,IAAaC,EAAU,CACzB,IAAIie,EAAYle,EAAW,OAAkB,OACzCme,EAAU,IAAI,OAAQD,EAAW,CACnC5Z,YAAY,EACZC,UAAWnZ,KACXyJ,OAAQzJ,KAAKQ,MAAMwyB,KACnBC,cAAe,KACfC,YAAalzB,KAAKkoB,OAASloB,KAAKkoB,SAAWloB,KAAK4H,IAAM,OAIxD,GAFA5H,KAAKmzB,UAAUJ,GAEXA,EAAQ3Z,iBAMV,OAJApZ,KAAKwyB,wBAAyB,EAC9BxyB,KAAKuyB,QAAU1d,OAEf7U,KAAKozB,KAAK,OAAmBpzB,KAAKqzB,cAIhCze,EACF5U,KAAKszB,WAELtzB,KAAKuzB,aAIXthB,SAAU,SAAkB2C,EAAUC,GAChCD,IAAaC,GAAYD,GAAY5U,KAAKuyB,UAE5CvyB,KAAKuyB,SAAU,KAIrB/sB,QAAS,WAEPxF,KAAKwzB,SAAW,KAChBxzB,KAAKyzB,cAAgB,MAIvBjL,YAAa,WAEXxoB,KAAKuyB,SAAU,EACfvyB,KAAK0zB,iBAAgB,GACrB1zB,KAAK2zB,iBAEP5M,cAAe,WACb/mB,KAAKuyB,SAAU,EACfvyB,KAAK0zB,iBAAgB,GACrB1zB,KAAK2zB,gBACL3zB,KAAK4zB,oBAEP/zB,QAAS,CAEPszB,UAAW,SAAmBJ,GAC5B,IAAIluB,EAAOkuB,EAAQluB,KACnB7E,KAAK6zB,WAAW,eAAiB,OAAehvB,GAAOkuB,GACvD/yB,KAAKuF,MAAMV,EAAMkuB,IAEnBO,SAAU,WACR,IAAIxe,EAAQ9U,KAEZ,IAAIA,KAAKiS,SAAT,CAMA,IAAKjS,KAAKyyB,SACR,GAAsB,qBAAX,OAET,OAAA5hB,EAAA,MAAK,uDAAwD,YACxD,CAEL,IAAIiF,EAAK9V,KAAKgyB,QAAUhyB,KAAK0L,OAAS1L,KAAKmb,MAAQnb,KAAKyV,IAAMzV,KAAKQ,MAAMmyB,OAEzE7c,EAAKA,EAAGL,KAAOK,EAEf9V,KAAK8zB,aAAahe,GAKtB9V,KAAK6zB,WAAWtC,EAAuBvxB,MAEvCA,KAAK0zB,iBAAgB,GAErB1zB,KAAK+U,WAAU,WAEbD,EAAMif,YAGNjf,EAAMvP,MAAM,aAGhBguB,SAAU,WACRvzB,KAAK0zB,iBAAgB,GACrB1zB,KAAK6zB,WAAWrC,EAAwBxxB,MACxCA,KAAKuF,MAAM,QACXvF,KAAK2zB,iBAEPG,aAAc,SAAsBE,GAClCh0B,KAAK2zB,gBACL3zB,KAAKwzB,SAAW,IAAI,OAAOQ,EAASh0B,KAAKQ,MAAMwyB,KAAMhzB,KAAKi0B,oBAG5DN,cAAe,WACb3zB,KAAKwzB,UAAYxzB,KAAKwzB,SAASU,UAC/Bl0B,KAAKwzB,SAAW,MAIlBW,aAAc,WACZ,IACEn0B,KAAKwzB,SAASY,iBACd,MAAOC,MAEXT,iBAAkB,WAChB5M,aAAahnB,KAAKyzB,eAClBzzB,KAAKyzB,cAAgB,MAEvBQ,gBAAiB,WACf,IAAIK,EAAYhE,EAEZtwB,KAAKgyB,OACPsC,EAAYt0B,KAAK0L,MAAQ2kB,EAAoBD,EACpCpwB,KAAK+xB,UACduC,EAAY9D,EACHxwB,KAAK8xB,SACdwC,EAAY7D,EACHzwB,KAAK0L,QACd4oB,EAAY/D,GAGd,IAAIgE,EAAe,CACjBD,UAAWA,EACXnU,UAAW,CACT1H,OAAQ,CACNA,OAAQzY,KAAKyY,QAAU,GAEzB+b,KAAM,CACJC,SAAUz0B,KAAKiyB,UAIjByC,EAAoB10B,KAAK6xB,SAQ7B,OANI6C,IACFH,EAAapU,UAAUwU,gBAAkB,CACvCD,kBAAmBA,IAIhB,eAAUH,EAAcv0B,KAAKkyB,YAAc,KAGpDwB,gBAAiB,SAAyBkB,GAExC50B,KAAK2wB,kBAAoBiE,EAEzB50B,KAAKmxB,iBAAmByD,EAExB,IAAIC,EAASD,EAAS,MAAQ,OAC9B50B,KAAKolB,MAAMyP,GAAQtD,EAAuBvxB,KAAK80B,oBAEjDA,kBAAmB,SAA2BC,GACxCA,IAAO/0B,OACTA,KAAKuyB,SAAU,IAInBhZ,KAAM,WACJ,IAAI3D,EAAS5V,KAETA,KAAKiS,UAMT,gBAAU,WACR2D,EAAO2c,SAAU,MAIrByC,KAAM,WACJ,IAAIC,EAAUh0B,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAGzEjB,KAAKiS,WAITjS,KAAKuyB,SAAU,EAEX0C,GAEFj1B,KAAKk1B,MAAM,OAAmBl1B,KAAKqzB,gBAIvCV,OAAQ,SAAgBpiB,GACtBA,EAAQA,GAAS,GAEjB,IAAI4kB,EAAS5kB,EACT1L,EAAOswB,EAAOtwB,KACd+M,EAAUujB,EAAOvjB,SAER,UAAT/M,GAA+B,YAATA,IAAgF,IAA1D,CAAC,OAAY,OAAY,QAAWuR,QAAQxE,MAOxF5R,KAAKiS,SACPjS,KAAKuyB,SAAU,GAIjBvyB,KAAKuF,MAAM,OAAmBgL,GAC9B,eAAUA,GAENvQ,KAAKuyB,QACPvyB,KAAKg1B,MAAK,GAEVh1B,KAAKuZ,UAMT6b,YAAa,SAAqB7kB,GAShC,eAAUA,EAAO,CACf4E,aAAa,KAIjBkgB,UAAW,SAAmB9kB,GAC5B,IAAIqB,EAAUrB,EAAMqB,QAEhBA,IAAY,OAEd5R,KAAKs1B,MAAM/kB,GACFqB,IAAY,OAErB5R,KAAKuV,UAAUhF,GAAO,GACbqB,IAAY,QAErB5R,KAAKuV,UAAUhF,GAAO,IAI1B+kB,MAAO,SAAe/kB,GAChBvQ,KAAKuyB,UACPvyB,KAAKuyB,SAAU,EACf,eAAUhiB,GAEVvQ,KAAKk1B,MAAM,OAAmBl1B,KAAKqzB,gBAIvCkC,aAAc,SAAsBhlB,GAE9BvQ,KAAKiS,SACPjS,KAAKuyB,SAAU,EAIjBvyB,KAAKuF,MAAM,OAAkBgL,IAG/BilB,YAAa,SAAqBjlB,GAChC,IAAIwF,EAAS/V,KAETyJ,EAAS8G,EAAM9G,QAEfzJ,KAAKuyB,SAAY,eAASvyB,KAAKQ,MAAMwyB,KAAMvpB,IAAY,eAASzJ,KAAK0yB,QAASjpB,KAChFzJ,KAAK4zB,mBACL5zB,KAAKyzB,cAAgBnM,YAAW,WAC9B,OAAOvR,EAAOif,SACbh1B,KAAKyyB,SAAW,IAAM,KAI7BxB,gBAAiB,SAAyB1gB,GACxCvQ,KAAKw1B,YAAYjlB,IAGnB+gB,eAAgB,SAAwB/gB,GACtCvQ,KAAKw1B,YAAYjlB,IAGnBgF,UAAW,SAAmBhF,EAAOklB,GACnC,IAAIzf,EAAShW,KAGTyJ,EAAS8G,EAAM9G,QAEdzJ,KAAKuyB,SAAWhiB,GAAS,eAAQkhB,EAAqBhoB,KAK3D,eAAU8G,GACVvQ,KAAK+U,WAAU,WACb,IAAI2gB,EAAQ1f,EAAO2f,WAEnB,KAAID,EAAM7uB,OAAS,GAAnB,CAKA,IAAIxD,EAAQqyB,EAAMtf,QAAQ3M,GAEtBgsB,GAAMpyB,EAAQ,EAChBA,KACUoyB,GAAMpyB,EAAQqyB,EAAM7uB,OAAS,GACvCxD,IAGEA,EAAQ,IAEVA,EAAQ,GAGV2S,EAAO4f,UAAUvyB,EAAOqyB,SAG5BE,UAAW,SAAmBvyB,EAAOqyB,GACnC,IAAI5f,EAAK4f,EAAM7f,MAAK,SAAUC,EAAIpM,GAChC,OAAOA,IAAMrG,KAEf,eAAayS,IAEf6f,SAAU,WAER,OAAO,EAAe,eAAUjE,EAAe1xB,KAAKQ,MAAMwyB,QAE5De,UAAW,WACT,eAAa/zB,KAAKQ,MAAMwyB,OAE1BK,aAAc,WACZ,IAAInd,EAASlW,KAEbA,KAAK+U,WAAU,WACb,eAAamB,EAAOwc,iB,uBCpd5B,IAAImD,EAAY,EAAQ,QAExB7uB,EAAOC,QAAU,mEAAmE+hB,KAAK6M,I,oCCHzF,uKAAShtB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAa3M,IAAI4rB,EAAiB,CACnB3qB,IAAK,EACLQ,KAAM,EACNT,OAAQ,EACRQ,MAAO,GAGE9G,EAAQ,eAAsB,CAGvCmxB,QAAS,eAAS,QAClBrO,KAAM,eAAS,OAAkB,OACjCsO,MAAO,eAAS,QAAmB,GACnCC,SAAU,eAAS,QAAmB,GACtCrK,OAAQ,eAAS,QAAmB,GAGpCsK,OAAQ,eAAS,QAAmB,GACpCC,QAAS,eAAS,OAAyB,KAAM,SAAUp2B,GACzD,IAAIyR,EAAS,eAAQzR,EAAO,GAC5B,OAAOyR,GAAU,GAAKA,GAAU,KAElC4kB,WAAY,eAAS,OAAkB,OACvCC,QAAS,eAAS,QAA0B,GAC5C9c,KAAM,eAAS,QAAmB,GAClC+c,aAAc,eAAS,QAAmB,GAC1CC,YAAa,eAAS,OAAkB,UACxCC,eAAgB,eAAS,QACzBC,QAAS,eAAS,OAAkB,SACpCC,QAAS,eAAS,OAAkB,OACpCC,OAAQ,eAAS,OAAyB,KACzC,SAGQjd,EAAwB,aAAItZ,OAAO,CAC5CqE,KAAM,QACNoL,OAAQ,CAAC,QACTjL,MAAOA,EACPlF,SAAU,CACRk3B,gBAAiB,WACf,IAAIP,EAAUr2B,KAAKq2B,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,EAAiB,UAAaA,EAAe,WAAWtrB,OAAOsrB,GAAvB,IAErEQ,gBAAiB,WACf,IAAIJ,EAAUz2B,KAAKy2B,QACnB,OAAOA,IAAYz2B,KAAK+1B,QAAU,MAAMhrB,OAAO0rB,GAAW,IAE5DxpB,UAAW,WACT,MAAO,CACLspB,YAAav2B,KAAKu2B,aAAe,KACjCC,eAAgBx2B,KAAKw2B,gBAAkB,KACvCF,aAAct2B,KAAKs2B,gBAIzBz2B,QAAS,CACPi3B,iBAAkB,SAA0B3uB,GAC1C,IAAIouB,EAAcpuB,EAAKouB,YACnBC,EAAiBruB,EAAKquB,eACtBF,EAAenuB,EAAKmuB,aACxB,OAAOt2B,KAAKyD,eAAe,OAAU,CACnCmB,MAAO,CACLC,KAAM0xB,EACNE,QAASD,EACTzM,MAAOuM,OAKfhzB,OAAQ,SAAgB4E,GACtB,IAAI4M,EAAQ9U,KAERuZ,EAAOvZ,KAAKuZ,KACZyc,EAAQh2B,KAAKg2B,MACbpK,EAAS5rB,KAAK4rB,OACdsK,EAASl2B,KAAKk2B,OACdjpB,EAAYjN,KAAKiN,UACjB8pB,EAAW7uB,IAEf,GAAIqR,EAAM,CACR,IAAIyd,EAAc9uB,EAAE,MAAO,CACzBrE,YAAa,oBACbwE,MAAO,CAACrI,KAAK62B,gBAAiB72B,KAAK42B,iBACnCK,MAAOztB,EAAcA,EAAc,GAAIssB,GAAiB,GAAI,CAC1DK,QAASn2B,KAAKm2B,QACde,gBAAiBl3B,KAAK+1B,SAAW,KACjCoB,eAAgBn3B,KAAK0nB,KAAO,QAAQ3c,OAAO/K,KAAK0nB,KAAM,KAAO,SAG7Dna,EAAWrF,EAAE,MAAO,CACtBrE,YAAa,oBACbozB,MAAOj3B,KAAKi2B,SAEZzsB,EAAc,GAAIssB,GAAkB,CAClC3qB,IAAK,MACLQ,KAAM,MACNyrB,UAAW,sCAEZ,CAACp3B,KAAKyX,cAAc,OAAmBxK,IAAcjN,KAAK82B,iBAAiB7pB,KAC9E8pB,EAAW7uB,EAAElI,KAAKo2B,WAAY,CAC5BvyB,YAAa,YACbwE,MAAO,CACL,qBAAsB6tB,GAAUA,IAAWF,EAC3C,iBAAkBE,GAAUF,GAE9BiB,MAAOztB,EAAcA,EAAc,GAAIssB,GAAiB,GAAI,CAC1Da,OAAQ32B,KAAK22B,QAAU,KAEzBhoB,GAAI,CACFoD,MAAO,SAAexB,GACpB,OAAOuE,EAAMvP,MAAM,OAAkBgL,KAGzC1G,IAAK,WACJ,CAACmtB,EAAazpB,IAmBnB,OAfAwpB,EAAW7uB,EAAE,OAAc,CACzBtD,MAAO,CACLgnB,OAAQA,EACRyL,QAAQ,GAEV1oB,GAAI,CACF,cAAe,WACb,OAAOmG,EAAMvP,MAAM,SAErB,cAAe,WACb,OAAOuP,EAAMvP,MAAM,WAGtB,CAACwxB,IAEAb,EACKa,EAGF7uB,EAAElI,KAAK02B,QAAS,CACrB7yB,YAAa,mCACbC,MAAO,CACL,YAAayV,EAAO,OAAS,OAE9B2c,EAAS,CAACa,GAAY,CAAC/2B,KAAKyX,gBAAiBsf,Q,oCC/JpD,uKAASluB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAapM,IAAItF,EAAQ,eAAsB,eAAS4E,EAAcA,EAAc,GAAI,eAAK,OAAY,CAAC,QAAS,eAAgB,GAAI,CAC/H8tB,UAAW,eAAS,QACpBb,QAAS,eAAS,WACf,QAGMzV,EAA6B,aAAI5gB,OAAO,CACjDqE,KAAM,OACNoL,OAAQ,CAAC,OAAY,QACrBya,OAAQ,CACN+H,WAAY,CACVjtB,QAAS,OAGbmyB,cAAc,EACd3yB,MAAOA,EACPlF,SAAU,CACRsoB,cAAe,WACb,OAAOxe,EAAcA,EAAc,GAAIxJ,KAAKw3B,SAAU,GAAI,CACxD5f,KAAM,eAIZ/X,QAAS,CACP43B,cAAe,WACb,IAAI3iB,EAAQ9U,KAGZ,gBAAU,WACJ8U,EAAMud,YACRvd,EAAMud,WAAW2C,MAAK,OAI5BvlB,QAAS,SAAiBc,GACxBvQ,KAAKuF,MAAM,OAAkBgL,GAC7BvQ,KAAKy3B,kBAGTn0B,OAAQ,SAAgB4E,GACtB,IAAIovB,EAAYt3B,KAAKs3B,UACjBb,EAAUz2B,KAAKy2B,QACfte,EAASnY,KAAKmY,OACdlG,EAAWjS,KAAKiS,SAChBxC,EAAUzP,KAAKyP,QACf+nB,EAAUx3B,KAAKw3B,QACnB,OAAOtvB,EAAE,KAAM,CACbG,MAAOmvB,EAAQnvB,MACf4uB,MAAOO,EAAQP,MACfnzB,MAAO,CACL8T,KAAM,iBAEP,CAAC1P,EAAE,OAAO,CACXrE,YAAa,gBACbwE,MAAO,CAACivB,EAAWxtB,EAAgB,GAAI,QAAQiB,OAAO0rB,GAAUA,KAAate,GAAUlG,KACvFrN,MAAO5E,KAAKkuB,OACZpqB,MAAO9D,KAAKgoB,cACZrZ,GAAI,CACFoD,MAAOtC,GAETtB,IAAK,QACJnO,KAAKyX,uB,kCC9EZ,4GAIW7S,EAAQ,eAAsB,CACvC8yB,MAAO,eAAS,QAAmB,IAClC,gBAGQC,EAAkB,aAAIv3B,OAAO,CACtCwE,MAAOA,EACPlF,SAAU,CACRk4B,OAAQ,WACN,OAAQ53B,KAAK03B,W,kCCbnB,4GAIW9yB,EAAQ,eAAsB,CACvC2O,KAAM,eAAS,SACd,gBAGQskB,EAAgB,aAAIz3B,OAAO,CACpCwE,MAAOA,EACPlF,SAAU,CACR4mB,cAAe,WACb,MAAO,CAACtmB,KAAKuT,KAAO,gBAAgBxI,OAAO/K,KAAKuT,MAAQ,W,kCCb9D,IAAIjQ,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAAC2L,WAAW,CAAC,CAAC5K,KAAK,SAAS6K,QAAQ,eAAevP,MAAM,4BAA8BwE,WAAW,8BAA8B4b,UAAU,CAAC,KAAM,KAAQrc,MAAM,CAAC,QAAUP,EAAIkzB,QAAQ,SAAWlzB,EAAI0O,SAAS,KAAO1O,EAAIgQ,KAAK,MAAQhQ,EAAIu0B,OAAOnpB,GAAG,CAAC,MAAQpL,EAAIkM,UAAU,CAAC/L,EAAG,eAAe,CAACG,YAAY,QAAQC,MAAM,CAAC,KAAOP,EAAIgM,KAAK,YAAYhM,EAAI0M,YAAa1M,EAAW,QAAEG,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQ,MAAMP,EAAI6L,KAAK1L,EAAG,OAAO,CAACG,YAAY,gBAAgB,CAACN,EAAIK,GAAG,IAAIL,EAAIqK,GAAGrK,EAAIsK,WAAW,IAAI,IACnmBrJ,EAAkB,G,oCC2BtB,GACEC,KAAM,SACNC,WAAY,CACV4c,QAAJ,OACIT,SAAJ,QAEExR,WAAY,CACVyS,OAAJ,QAEEld,MAAO,CACL2O,KAAM,CACJ1O,KAAMI,OACNF,UAAU,EACVK,QAAS,MAEX2yB,UAAW,CACTlzB,KAAMI,OACNF,UAAU,EACVK,QAAS,aAEXyI,MAAO,CACLhJ,KAAMI,OACNF,UAAU,GAEZ0xB,QAAS,CACP5xB,KAAMI,OACNF,UAAU,EACVK,QAAS,WAEXmK,KAAM,CACJ1K,KAAMI,OACNF,UAAU,EACVK,QAAS,IAEX6M,SAAU,CACRpN,KAAMM,QACNJ,UAAU,EACVK,SAAS,GAEX0yB,MAAO,CACLjzB,KAAMM,QACNJ,UAAU,EACVK,SAAS,GAEX6K,SAAU,CACRpL,KAAMM,QACNJ,UAAU,EACVK,SAAS,GAEX4yB,QAAS,CACPnzB,KAAMM,QACNJ,UAAU,EACVK,SAAS,IAGbvF,QAAS,CACP4P,QADJ,WAEMzP,KAAKuF,MAAM,YCrF6V,I,YCO1WE,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,KACA,MAIa,OAAAiB,E,kEClBf,IAAInC,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIqE,KAAK,CAACrE,EAAIK,GAAGL,EAAIqK,GAAGrK,EAAIsK,UAAUnK,EAAG,sBAAsB,CAACI,MAAM,CAAC,KAAOP,EAAIuK,UAAU,MAAQvK,EAAIwK,OAAO3B,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,UAAUqE,GAAG,SAASC,GACpT,IAAIC,EAASD,EAAIC,OACjB,MAAO,CAAC1K,EAAG,MAAM,CAACG,YAAY,6BAA6B,CAACH,EAAG,kBAAkB,CAACI,MAAM,CAAC,GAAKP,EAAIqE,GAAG,MAAQrE,EAAIxD,MAAM,YAAcwD,EAAI8K,YAAY,QAAQD,EAAOvH,OAAS,IAAU,KAAK,KAAOtD,EAAI00B,KAAK,UAAY10B,EAAI20B,UAAU,SAAW30B,EAAI+K,UAAUK,GAAG,CAAC,MAAQpL,EAAIsL,SAASE,SAAS,CAAC,SAAW,SAASC,GAAQ,OAAOzL,EAAI0L,eAAejO,MAAM,KAAMC,aAAamD,MAAM,CAACrE,MAAOwD,EAAc,WAAEc,SAAS,SAAUC,GAAMf,EAAI2L,WAAW5K,GAAKC,WAAW,gBAAgBb,EAAG,eAAe,CAAC2L,WAAW,CAAC,CAAC5K,KAAK,OAAO6K,QAAQ,SAASvP,MAAOwD,EAAY,SAAEgB,WAAW,aAAaV,YAAY,sBAAsBC,MAAM,CAAC,KAAOP,EAAIgM,KAAK,KAAOhM,EAAIiM,UAAUb,GAAG,CAAC,MAAQpL,EAAIkM,YAAY,GAAG/L,EAAG,QAAQ,CAACG,YAAY,eAAe,CAACN,EAAIK,GAAGL,EAAIqK,GAAGQ,EAAO,eAAe,IAAI,IAC1vB5J,EAAkB,G,wQCHtB,SAAS2zB,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAASC,EAAkB9uB,EAAQ7E,GAAS,IAAK,IAAI8E,EAAI,EAAGA,EAAI9E,EAAMiC,OAAQ6C,IAAK,CAAE,IAAI8uB,EAAa5zB,EAAM8E,GAAI8uB,EAAWlvB,WAAakvB,EAAWlvB,aAAc,EAAOkvB,EAAWruB,cAAe,EAAU,UAAWquB,IAAYA,EAAWpuB,UAAW,GAAMpF,OAAOiF,eAAeR,EAAQ+uB,EAAW3uB,IAAK2uB,IAE7S,SAASC,EAAaJ,EAAaK,EAAYC,GAAmJ,OAAhID,GAAYH,EAAkBF,EAAYO,UAAWF,GAAiBC,GAAaJ,EAAkBF,EAAaM,GAAqBN,EAuCzM,IAAIQ,EAAqB,4BAErB,EAAkC,WACpC,SAASC,EAAmBhjB,EAAI3R,EAAS40B,GACvCZ,EAAgBn4B,KAAM84B,GAEtB94B,KAAK8V,GAAKA,EACV9V,KAAKqE,SAAWF,EAAQE,SACxBrE,KAAKg5B,OAAS70B,EAAQ60B,QAAU,EAChCh5B,KAAKi5B,KAAO90B,EAAQ80B,OAAQ,EAC5Bj5B,KAAKk5B,SAAW,KAChBl5B,KAAKuyB,aAAUxrB,EACf/G,KAAKm5B,UAAW,EAEhBn5B,KAAKo5B,eAAeL,GAgFtB,OA7EAN,EAAaK,EAAoB,CAAC,CAChCjvB,IAAK,iBACL9J,MAAO,SAAwBg5B,GAC7B,IAAIjkB,EAAQ9U,KASZ,GANIA,KAAKk5B,UAEPl5B,KAAKq5B,QAIHr5B,KAAKm5B,UAAa,eAAWn5B,KAAKqE,UAAtC,CAMA,IAGErE,KAAKk5B,SAAW,IAAII,qBAAqBt5B,KAAKu5B,QAAQlvB,KAAKrK,MAAO,CAEhEw5B,KAAM,KAENC,WAAYz5B,KAAKg5B,OAEjBU,UAAW,IAEb,MAAOrF,GAKP,OAHAr0B,KAAKm5B,UAAW,EAChBn5B,KAAKk5B,cAAWnyB,OAChB/G,KAAKqE,SAAS,MAOhB00B,EAAMY,QAAQ5kB,WAAU,WACtB,gBAAU,WAGJD,EAAMokB,UACRpkB,EAAMokB,SAASU,QAAQ9kB,EAAMgB,aAOpC,CACDjM,IAAK,UACL9J,MAAO,SAAiB85B,GACtB,IAAIC,EAAQD,EAAUA,EAAQ,GAAK,GAC/BE,EAAiB50B,QAAQ20B,EAAMC,gBAAkBD,EAAME,kBAAoB,GAE3ED,IAAmB/5B,KAAKuyB,UAC1BvyB,KAAKuyB,QAAUwH,EACf/5B,KAAKqE,SAAS01B,GAEV/5B,KAAKi5B,MAAQj5B,KAAKuyB,UACpBvyB,KAAKm5B,UAAW,EAChBn5B,KAAKq5B,WAIV,CACDxvB,IAAK,OACL9J,MAAO,WAELC,KAAKk5B,UAAYl5B,KAAKk5B,SAASe,aAC/Bj6B,KAAKk5B,SAAW,SAIbJ,EA5F6B,GA+FlC5E,EAAU,SAAiBpe,GAC7B,IAAIojB,EAAWpjB,EAAG+iB,GAEdK,GAAYA,EAASG,MACvBH,EAASG,cAGJvjB,EAAG+iB,IAGR,EAAO,SAAc/iB,EAAI3N,EAAM4wB,GACjC,IAAIh5B,EAAQoI,EAAKpI,MACbogB,EAAYhY,EAAKgY,UAEjBhc,EAAU,CACZ60B,OAAQ,MACRC,MAAM,EACN50B,SAAUtE,GAGZ,eAAKogB,GAAWvW,SAAQ,SAAUswB,GAE5B,OAAUlR,KAAKkR,GACjB/1B,EAAQ60B,OAAS,GAAGjuB,OAAOmvB,EAAK,MACD,SAAtBA,EAAIC,gBACbh2B,EAAQ80B,MAAO,MAInB/E,EAAQpe,GAERA,EAAG+iB,GAAsB,IAAI,EAAmB/iB,EAAI3R,EAAS40B,GAE7DjjB,EAAG+iB,GAAoBuB,eAAiB,eAAMja,IAI5C,EAAmB,SAA0BrK,EAAIpL,EAAOquB,GAC1D,IAAIh5B,EAAQ2K,EAAM3K,MACd8U,EAAWnK,EAAMmK,SACjBsL,EAAYzV,EAAMyV,UAKtBA,EAAY,eAAMA,IAGdrK,GAAO/V,IAAU8U,GAAaiB,EAAG+iB,IAAwB,eAAW1Y,EAAWrK,EAAG+iB,GAAoBuB,iBAExG,EAAKtkB,EAAI,CACP/V,MAAOA,EACPogB,UAAWA,GACV4Y,IAKHsB,EAAS,SAAgBvkB,GAE3Boe,EAAQpe,IAICwkB,EAAY,CACrBjwB,KAAM,EACNkwB,iBAAkB,EAClBF,OAAQA,GC/MV,SAASxxB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAsBpM,IAAI,EAAQ,eAAsB,eAASV,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI5B,EAAA,MAAU,QAAmB,QAAgB,QAAiB,QAAgB,GAAI,CAC1N4yB,QAAS,eAAS,QAElBC,aAAc,eAAS,QAAmB,GAE1CC,SAAU,eAAS,QAAmB,GACtCzC,KAAM,eAAS,OAAyB,GAGxC0C,KAAM,eAAS,OAAkB,WAC9B,QAGMC,EAA6B,aAAIx6B,OAAO,CACjDqE,KAAM,OACN4K,WAAY,CACV,YAAairB,GAGfzqB,OAAQ,CAACgrB,EAAA,KAAgBjzB,EAAA,KAAS,OAAmB,OAAkB,OAAe,OAAgB,OAAe,OAAoB,QACzIhD,MAAO,EACPrD,KAAM,WACJ,MAAO,CACLu5B,WAAY,OAGhBp7B,SAAU,CACRq7B,cAAe,WACb,IAAIC,EAAS,CAGXC,QAASj7B,KAAKk7B,cAAgBl7B,KAAK06B,SAAW,OAAS,MAYzD,OATK16B,KAAKk7B,eAGRF,EAAOxvB,OAASxL,KAAK86B,WAGrBE,EAAOG,UAAY,UAGdH,GAETI,gBAAiB,WAIf,OAAO,OAAAjnB,EAAA,MAAQ,eAAUnU,KAAKi4B,KAAM,GAAI,IAE1CoD,gBAAiB,WACf,OAAO,OAAAlnB,EAAA,MAAQnU,KAAKo7B,gBAAiB,eAAUp7B,KAAKw6B,QAAS,KAE/DU,aAAc,WAGZ,OAAOl7B,KAAKo7B,kBAAoBp7B,KAAKq7B,gBAAkBr7B,KAAKo7B,gBAAkB,MAEhFpT,cAAe,WACb,IAAI/V,EAAWjS,KAAKiS,SAChBlN,EAAW/E,KAAK+E,SACpB,MAAO,CACL6C,GAAI5H,KAAKkoB,SACTzjB,KAAMzE,KAAKyE,MAAQ,KACnBwjB,KAAMjoB,KAAKioB,MAAQ,KACnBhW,SAAUA,EACV5D,YAAarO,KAAKqO,aAAe,KACjCtJ,SAAUA,EACV0gB,aAAczlB,KAAKylB,cAAgB,KACnCnX,SAAUtO,KAAKsO,UAAYtO,KAAK6lB,UAChCoS,KAAMj4B,KAAKk7B,aACXP,KAAM36B,KAAK26B,MAAQ,KACnB,gBAAiB36B,KAAK+E,SAAW,OAAS,KAC1C,eAAgB/E,KAAKmoB,sBAGzBC,kBAAmB,WACjB,OAAO5e,EAAcA,EAAc,GAAIxJ,KAAKqoB,aAAc,GAAI,CAC5D5nB,MAAOT,KAAK6O,QACZyZ,OAAQtoB,KAAK4O,SACb8Y,KAAM1nB,KAAK8O,WAIjBxJ,MAAO,CACL0gB,WAAY,WACVhmB,KAAKs7B,cAGTtW,QAAS,WACPhlB,KAAKs7B,aAEPz7B,QAAS,CAIP07B,gBAAiB,SAAyBhJ,GACpCA,GAGFvyB,KAAK+U,UAAU/U,KAAKs7B,YAGxBA,UAAW,WACT,IAAIxmB,EAAQ9U,KAEZA,KAAK+U,WAAU,WACb,gBAAU,WACRD,EAAMgmB,WAAahmB,EAAM0mB,uBAM/BA,cAAe,WACb,GAAIx7B,KAAKy7B,YAAc,eAAOz7B,KAAKk7B,cACjC,OAAO,KAGT,IAAIplB,EAAK9V,KAAKyV,IAGd,IAAK,eAAUK,GACb,OAAO,KAIT,IAAIilB,EAAgB,eAAMjlB,GAEtB4lB,EAAa,eAAQX,EAAcW,WAAY,GAE/CC,EAAS,eAAQZ,EAAca,eAAgB,GAAK,eAAQb,EAAcc,kBAAmB,GAC7FC,EAAU,eAAQf,EAAcgB,WAAY,GAAK,eAAQhB,EAAciB,cAAe,GAEtFvjB,EAASkjB,EAASG,EAElBG,EAAYP,EAAa17B,KAAKo7B,gBAAkB3iB,EAEhDyjB,EAAY,eAASpmB,EAAI,WAAailB,EAAcvvB,OAExD,eAASsK,EAAI,SAAU,QACvB,IAAIqmB,EAAermB,EAAGqmB,aAGtB,eAASrmB,EAAI,SAAUomB,GAEvB,IAAIE,EAAc,OAAAjoB,EAAA,OAASgoB,EAAeL,GAAWJ,EAAY,GAE7DzD,EAAO,OAAA9jB,EAAA,MAAQ,OAAAA,EAAA,MAAQioB,EAAap8B,KAAKo7B,iBAAkBp7B,KAAKq7B,iBAEhE7vB,EAAS,OAAA2I,EAAA,MAAQ,OAAAA,EAAA,MAAS8jB,EAAOyD,EAAajjB,GAASwjB,GAG3D,OAAIj8B,KAAKy6B,cAAgB,eAAQyB,EAAW,GAAK1wB,EACxC0wB,EAIF,GAAGnxB,OAAOS,EAAQ,QAG7BlI,OAAQ,SAAgB4E,GACtB,OAAOA,EAAE,WAAY,CACnBG,MAAOrI,KAAKmmB,cACZ8Q,MAAOj3B,KAAK+6B,cACZ1rB,WAAY,CAAC,CACX5K,KAAM,YACN1E,MAAOC,KAAKu7B,gBAEZpb,UAAW,CACT,KAAO,KAGXrc,MAAO9D,KAAKgoB,cACZhd,SAAU,CACRjL,MAAOC,KAAKgmB,YAEdrX,GAAI3O,KAAKooB,kBACTja,IAAK,a,wBClKX,GACE1J,KAAM,gBACNC,WAAY,CACViL,WAAJ,OACIirB,cAAJ,EACIhrB,mBAAJ,QAEEhL,MAAO,CACLiJ,MAAO,CACLhJ,KAAMI,OACNF,UAAU,GAEZ+I,UAAW,CACTjJ,KAAMI,OACNG,QAAS,WAEXrF,MAAO,CACL8E,KAAM,KACNO,QAAS,IAEX2I,MAAO,CACLlJ,KAAM,CAACG,OAAQC,QACfG,QAAS,IAEX6yB,KAAM,CACJpzB,KAAMI,OACNF,UAAU,EACVK,QAAS,KAEXwC,GAAI,CACF/C,KAAMI,OACNF,UAAU,GAEZuJ,SAAU,CACRzJ,KAAMM,QACNJ,UAAU,GAEZwK,KAAM,CACJ1K,KAAMI,OACNG,QAAS,kBACTL,UAAU,GAEZyK,SAAU,CACR3K,KAAMI,OACNG,QAAS,KACTL,UAAU,GAEZkL,SAAU,CACRpL,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZ0K,QAAS,CACP5K,KAAMkL,SACN3K,QAAS,aACTL,UAAU,GAEZsJ,YAAa,CACXxJ,KAAMI,OACNF,UAAU,EACVK,QAAS,MAEX8yB,UAAW,CACTrzB,KAAMI,OACNF,UAAU,EACVK,QAAS,IAEXyJ,QAAS,CACPhK,KAAM,CAACkL,SAAU7K,OAAQD,QACzBG,QAAS,aACTL,UAAU,GAEZs3B,wBAAyB,CACvBx3B,KAAMM,QACNC,SAAS,EACTL,UAAU,GAEZu3B,+BAAgC,CAC9Bz3B,KAAMM,QACNC,SAAS,EACTL,UAAU,IAGdxD,KAnFF,WAoFI,MAAO,CACL2N,WAAY,KAGhBxP,SAAU,CACR2F,SADJ,WAEM,QAASrF,KAAKkP,aAGlB5J,MAAO,CACL4J,WADJ,SACA,GACMlP,KAAKuF,MAAM,QAASxF,IAEtBA,MAJJ,SAIA,GACUY,IAAQX,KAAKkP,aACflP,KAAKkP,WAAavO,KAIxB6E,QAvGF,WAwGQxF,KAAKD,QACPC,KAAKkP,WAAalP,KAAKD,QAG3BF,QAAS,CACPoP,eADJ,SACA,GACWjP,KAAKq8B,yBACR,OAAR,OAAQ,CAAR,GAEWr8B,KAAKs8B,gCACR,OAAR,OAAQ,CAAR,MC7JsW,I,YCOlW72B,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,KACA,MAIa,OAAAiB,E,2CClBf,iLAASoD,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAUpM,IAAItF,EAAQ,eAAsB,eAAS4E,EAAcA,EAAc,GAAI,eAAU,OAAY,OAAea,KAAK,KAAM,YAAa,GAAI,CACjJqC,OAAQ,eAAS,QACjB6vB,YAAa,eAAS,QACtB5vB,WAAY,eAAS,WAClB,QAGM6vB,EAA2B,aAAIp8B,OAAO,CAC/CqE,KAAM,OACNwD,YAAY,EACZrD,MAAOA,EACPtB,OAAQ,SAAgB4E,EAAGC,GACzB,IAAIuC,EAEA9F,EAAQuD,EAAKvD,MACbrD,EAAO4G,EAAK5G,KACZ6G,EAAWD,EAAKC,SAChBq0B,EAAkB73B,EAAM63B,gBACxBC,EAAsB93B,EAAM83B,oBAC5BC,EAAoB/3B,EAAM+3B,kBAC9B,OAAOz0B,EAAEtD,EAAMg4B,UAAW,eAAUr7B,EAAM,CACxCsC,YAAa,cACbwE,MAAO,CAACzD,EAAM23B,aAAc7xB,EAAQ,GAAIZ,EAAgBY,EAAO,MAAMK,OAAO0xB,GAAkBA,GAAkB3yB,EAAgBY,EAAO,UAAUK,OAAO2xB,GAAsBA,GAAsB5yB,EAAgBY,EAAO,QAAQK,OAAO4xB,GAAoBA,GAAoBjyB,IAClRM,SAAU5C,EAAW,GAAK,eAAWxD,EAAM+H,WAAY/H,EAAM8H,UAC3DtE,O,kCCtCR,IAAI9E,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,aAAa,CAACH,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACG,YAAY,4EAA4EC,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,OAAO,CAACG,YAAY,cAAc,CAACN,EAAIK,GAAGL,EAAIqK,GAAGrK,EAAIs5B,GAAG,YAAY,IAAIt5B,EAAIqK,GAAGrK,EAAIZ,MAAM,IAAIY,EAAIqK,GAAGrK,EAAIs5B,GAAG,OAAO,IAAIt5B,EAAIqK,GAAGrK,EAAIX,IAAI,IAAIW,EAAIqK,GAAGrK,EAAIs5B,GAAG,OAAO,IAAIt5B,EAAIqK,GAAGrK,EAAIuV,WAAW,IAAIvV,EAAIqK,GAAGrK,EAAIs5B,GAAG,YAAY,SAASn5B,EAAG,QAAQ,CAACG,YAAY,0EAA0EC,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,aAAaP,EAAIuV,UAAU,WAAWvV,EAAI1B,SAASuC,MAAM,CAACrE,MAAOwD,EAAe,YAAEc,SAAS,SAAUC,GAAMf,EAAIxB,YAAYuC,GAAKC,WAAW,kBAAkB,IAAI,IAAI,IAC/yBC,EAAkB,G,qCCDlB,EAAS,WAAa,IAAIjB,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,YAAY,oBAAoBC,MAAM,CAAC,aAAaP,EAAIuV,UAAU,WAAWvV,EAAI1B,QAAQ,eAAe,GAAG,cAAc,GAAG,aAAa,YAAY,aAAa,aAAauK,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,YAAYqE,GAAG,WAAW,MAAO,CAACxK,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,kBAAkB,KAAO,UAAU2V,OAAM,GAAM,CAAC5P,IAAI,YAAYqE,GAAG,WAAW,MAAO,CAACxK,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,mBAAmB,KAAO,UAAU2V,OAAM,KAAQrV,MAAM,CAACrE,MAAOwD,EAAe,YAAEc,SAAS,SAAUC,GAAMf,EAAIxB,YAAYuC,GAAKC,WAAW,kBAAkB,IACvpB,EAAkB,G,YC+BtB,GACEE,KAAM,aACNC,WAAY,CACVqU,YAAJ,QAEEnU,MAAO,CACL/C,QAAS,CACPgD,KAAMK,OACNH,UAAU,GAEZ+T,UAAW,CACTjU,KAAMK,OACNH,UAAU,IAGdxD,KAfF,WAgBI,MAAO,CACLQ,YAAa,IAGjBrC,SAAU,CACR2F,SADJ,WAEM,QAASrF,KAAK+B,cAGlBuD,MAAO,CACLvD,YADJ,SACA,GACM/B,KAAKuF,MAAM,QAASxF,KAGxByF,QA9BF,WA+BQxF,KAAKD,QACPC,KAAK+B,YAAc/B,KAAKD,SChEoV,I,YCO9W0F,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QCgBf,GACEhB,KAAM,kBACNC,WAAY,CACVic,KAAJ,OACIC,KAAJ,OACIkc,WAAJ,GAEEl4B,MAAO,CACLjC,KAAM,CACJkC,KAAMK,OACNH,UAAU,GAEZnC,GAAI,CACFiC,KAAMK,OACNH,UAAU,GAEZlD,QAAS,CACPgD,KAAMK,OACNH,UAAU,GAEZ+T,UAAW,CACTjU,KAAMK,OACNH,UAAU,IAGdxD,KAzBF,WA0BI,MAAO,CACLQ,YAAa,IAGjBrC,SAAU,CACR2F,SADJ,WAEM,QAASrF,KAAK+B,cAGlBuD,MAAO,CACLvD,YADJ,SACA,GACM/B,KAAKuF,MAAM,QAASxF,KAGxByF,QAxCF,WAyCQxF,KAAKD,QACPC,KAAK+B,YAAc/B,KAAKD,SC5EyV,ICOnX,EAAY,eACd,EACAuD,EACAkB,GACA,EACA,KACA,KACA,MAIa,S,2CClBf,W,kCCAA,sCAAIkM,EAAJ,oUAEA,SAAS7H,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EA8B3M,IAAIyG,EAAkB,eAAe,QAAS,CAC5C9L,KAAM,CAAC,OAAiB,QACxB+L,aAAc,KACdZ,UAAW,SAAmBjQ,GAE5B,MAAc,KAAVA,GACF,eAAKg9B,EAA4B,SAC1B,GAGF,eAAkBh9B,IAAUi9B,EAAaj9B,MAGhD+Q,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgB/L,MAC7BqM,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBJ,MAEnCwsB,EAA6B,+FAE7BC,EAAe,SAASA,EAAaj9B,GACvC,OAAO,eAAOA,IAAU,eAAQA,IAAUA,EAAMk9B,OAAM,SAAU9P,GAC9D,OAAO6P,EAAa7P,OAOpB+P,EAA2B,SAAkCle,GAC/D,OAAO,eAAWA,EAAKme,YAAcne,EAAKme,aAAe,eAAWne,EAAKoe,kBAAoBpe,EAAKoe,mBAAqB,MAMrHC,EAAoB,SAA2BC,GACjD,IAAIC,IAAsBt8B,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,KAAmBA,UAAU,GACzF,OAAOu8B,QAAQC,IAAI,eAAUH,GAAsBn0B,QAAO,SAAU6V,GAClE,MAAqB,SAAdA,EAAK0e,QACXlnB,KAAI,SAAUwI,GACf,IAAI8a,EAAQoD,EAAyBle,GAErC,GAAI8a,EAAO,CACT,GAAIA,EAAM6D,aAAeJ,EACvB,OAAOK,EAA6B9D,EAAM+D,eAAgB,GAAG9yB,OAAO+uB,EAAMr1B,KAAM,MAC3E,GAAIq1B,EAAMgE,OACf,OAAO,IAAIN,SAAQ,SAAUO,GAC3BjE,EAAM7X,MAAK,SAAUA,GACnBA,EAAK+b,MAAQ,GACbD,EAAQ9b,SAMhB,OAAO,QACN9Y,OAAO,UAMRy0B,EAA+B,SAASA,EAA6BK,GACvE,IAAIC,EAAOj9B,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAO,IAAIu8B,SAAQ,SAAUO,GAC3B,IAAII,EAAgB,GAEhBC,EAAuB,SAASA,IAClCH,EAAgBI,aAAY,SAAUxE,GACb,IAAnBA,EAAQhzB,OACVk3B,EAAQP,QAAQC,IAAIU,GAAeG,MAAK,SAAUzE,GAChD,OAAO,eAAQA,QAGjBsE,EAAc50B,KAAKi0B,QAAQC,IAAI5D,EAAQrjB,KAAI,SAAUsjB,GACnD,GAAIA,EAAO,CACT,GAAIA,EAAM6D,YACR,OAAOC,EAA6B9D,EAAM+D,eAAgB,GAAG9yB,OAAOmzB,GAAMnzB,OAAO+uB,EAAMr1B,KAAM,MACxF,GAAIq1B,EAAMgE,OACf,OAAO,IAAIN,SAAQ,SAAUO,GAC3BjE,EAAM7X,MAAK,SAAUA,GACnBA,EAAK+b,MAAQ,GAAGjzB,OAAOmzB,GAAMnzB,OAAOkX,EAAKxd,MACzCs5B,EAAQ9b,SAMhB,OAAO,QACN9Y,OAAO,UACVi1B,SAKNA,QAKAx5B,EAAQ,eAAsB,eAAS4E,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUwH,GAAa,QAAmB,QAAkB,QAAiB,QAAgB,GAAI,CAChPutB,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,GACxC3wB,YAAa,eAAS,OAAkB,qBACrC,QAGMwT,EAAyB,aAAIzhB,OAAO,CAC7CqE,KAAM,OACNoL,OAAQ,CAAC,OAAY,OAASiB,EAAY,OAAoB,OAAkB,OAAgB,OAAiB,QACjHymB,cAAc,EACd3yB,MAAOA,EACPrD,KAAM,WACJ,MAAO,CACL09B,MAAO,GACPC,UAAU,EAIVC,aAAcn/B,KAAK8+B,OACnBM,UAAU,IAGd1/B,SAAU,CAER2/B,eAAgB,WACd,IAAId,EAASv+B,KAAKu+B,OAGlB,OAFAA,GAAUA,GAAU,IAAIzY,OAAO3K,MAAM,UAAUhS,OAAO,QAEhC,IAAlBo1B,EAAO13B,OACF,KAGF03B,EAAO/nB,KAAI,SAAU8oB,GAC1B,IAAIpuB,EAAO,OACPquB,EAAa,IACbC,EAAW,IAEX,OAAaxW,KAAKsW,GAEpBC,EAAa,IAGbruB,EAAO,OAEH,OAAQ8X,KAAKsW,KACfE,EAAW,MAEXF,EAAYA,EAAUr5B,MAAM,GAAI,KAKpCq5B,EAAY,eAAaA,GACzB,IAAIG,EAAK,IAAIC,OAAO,GAAG30B,OAAOw0B,GAAYx0B,OAAOu0B,GAAWv0B,OAAOy0B,IACnE,MAAO,CACLC,GAAIA,EACJvuB,KAAMA,OAIZyuB,gBAAiB,WACf,IAAIlB,EAAUz+B,KAAKy+B,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,IAAwBA,GAAW,OAEhEzW,cAAe,WACb,IAAIvjB,EAAOzE,KAAKyE,KACZwN,EAAWjS,KAAKiS,SAChBlN,EAAW/E,KAAK+E,SAChBkjB,EAAOjoB,KAAKioB,KACZ0X,EAAkB3/B,KAAK2/B,gBACvBpB,EAASv+B,KAAKu+B,OACdM,EAAW7+B,KAAK6+B,SAChBH,EAAY1+B,KAAK0+B,UACrB,OAAOl1B,EAAcA,EAAc,GAAIxJ,KAAKw3B,SAAU,GAAI,CACxD3yB,KAAM,OACN+C,GAAI5H,KAAKkoB,SACTzjB,KAAMA,EACNwN,SAAUA,EACVlN,SAAUA,EACVkjB,KAAMA,GAAQ,KACdwW,QAASkB,EACTpB,OAAQA,GAAU,KAClBM,SAAUA,EACVH,UAAWA,EACXkB,gBAAiBlB,EACjB,gBAAiB35B,EAAW,OAAS,QAGzC86B,0BAA2B,WACzB,IAAIjB,EAAoB5+B,KAAK4+B,kBAC7B,OAAO,eAAgBA,GAAqBA,EAAoB5+B,KAAK8/B,0BAEvEC,YAAa,WACX,OAAO,eAAU//B,KAAKi/B,QAExBe,eAAgB,WACd,OAAO,eAAYhgC,KAAKi/B,QAE1BgB,UAAW,WACT,OAAOjgC,KAAKggC,eAAexpB,KAAI,SAAUyL,GACvC,OAAOA,EAAKxd,SAGhB6qB,aAAc,WAIZ,GAAItvB,KAAKk/B,WAAal/B,KAAK8+B,OACzB,OACE9+B,KAAKyX,cAAc,OAA4B,CAC7CyoB,QAASlgC,KAAKm/B,gBACTn/B,KAAKm/B,YAAcn/B,KAAK2+B,gBAAkB3+B,KAAKyD,eAAe,OAAQ,CAC3EI,YAAa,eACZ7D,KAAK++B,oBAKZ,GAA0B,IAAtB/+B,KAAKi/B,MAAMp4B,OACb,OAAO7G,KAAKyX,cAAc,SAA0BzX,KAAKqO,YAG3D,IAAI2xB,EAAiBhgC,KAAKggC,eACtBD,EAAc//B,KAAK+/B,YACnBE,EAAYjgC,KAAKigC,UACjBJ,EAA4B7/B,KAAK6/B,0BAErC,OAAI7/B,KAAKurB,kBAAkB,QAClBvrB,KAAKyX,cAAc,OAAqB,CAC7CwnB,MAAOe,EACPG,eAAgBJ,EAChBK,MAAOH,IAIJJ,EAA0BG,EAAgBD,EAAaE,KAGlE36B,OAAQoL,EAAS,GAAI5G,EAAgB4G,EAAQO,GAAiB,SAAU2D,KACjEA,GAAY,eAAQA,IAAiC,IAApBA,EAAS/N,SAC7C7G,KAAKqgC,WAELv2B,EAAgB4G,EAAQ,SAAS,SAAekE,EAAUC,GAC5D,IAAK,eAAWD,EAAUC,GAAW,CACnC,IAAIgqB,EAAW7+B,KAAK6+B,SAChBG,EAAah/B,KAAKg/B,WAClBC,GAASJ,GAAYG,EAAa,eAAYpqB,GAAYA,EAC9D5U,KAAKuF,MAAM4L,EAAkB0tB,EAAWI,EAAQA,EAAM,IAAM,UAE5DvuB,GACJlL,QAAS,WAEPxF,KAAKsgC,OAAS,MAEhBtb,QAAS,WAEP,IAAIub,EAAQ,eAAQ,OAAQvgC,KAAKyV,KAE7B8qB,IACF,eAAQA,EAAO,QAASvgC,KAAKqgC,MAAO,QACpCrgC,KAAKsgC,OAASC,IAGlBxZ,cAAe,WACb,IAAIwZ,EAAQvgC,KAAKsgC,OAEbC,GACF,eAASA,EAAO,QAASvgC,KAAKqgC,MAAO,SAGzCxgC,QAAS,CACP2gC,YAAa,SAAqBve,GAChC,IAAKA,EACH,OAAO,EAGT,IAAIsc,EAASv+B,KAAKq/B,eAClB,OAAOd,GAASA,EAAOkC,MAAK,SAAUC,GACpC,OAAOA,EAAEjB,GAAGzW,KAAK/G,EAAKye,EAAExvB,WAG5ByvB,kBAAmB,SAA2B1B,GAC5C,IAAInqB,EAAQ9U,KAEZ,OAAO,eAAQi/B,GAASA,EAAMhC,OAAM,SAAUhb,GAC5C,OAAOnN,EAAM0rB,YAAYve,MACtBjiB,KAAKwgC,YAAYvB,IAExBa,yBAA0B,SAAkCE,EAAgBD,EAAaE,GACvF,OAAOA,EAAU7S,KAAK,OAExBwT,SAAU,SAAkB3B,GAE1Bj/B,KAAKm/B,aAAen/B,KAAK8+B,OACzB9+B,KAAKk/B,UAAW,EAEhBl/B,KAAKi/B,MAAQj/B,KAAK6+B,SAAW7+B,KAAK0+B,UAAYO,EAAQ,eAAYA,GAAS,eAAYA,GAAOh5B,MAAM,EAAG,IAIzG46B,cAAe,SAAuB5B,GAIpC,IAEE,IAAI6B,EAAe,IAAIC,eAAe,IAAIC,eAAiB,IAAIC,aAE/D,eAAY,eAAUhC,IAAQr1B,SAAQ,SAAUqY,UAEvCA,EAAK+b,MACZ8C,EAAapL,MAAMwL,IAAIjf,MAEzBjiB,KAAKQ,MAAMC,MAAMw+B,MAAQ6B,EAAa7B,MACtC,MAAO5K,MAEXgM,MAAO,WAKL,IACE,IAAIhZ,EAASrnB,KAAKQ,MAAMC,MACxB4mB,EAAOtnB,MAAQ,GACfsnB,EAAOxiB,KAAO,GACdwiB,EAAOxiB,KAAO,OACd,MAAOs8B,IAETnhC,KAAKi/B,MAAQ,IAEfmC,YAAa,SAAqBnC,GAChC,IAAIoC,EAASpgC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAE5E,GAAIogC,EAAQ,CAEV,IAAIC,EAAgBrC,EAAM91B,OAAOnJ,KAAK2gC,mBAElCW,EAAcz6B,OAAS,IACzB7G,KAAK4gC,SAASU,GAGdthC,KAAK6gC,cAAcS,SAIrBthC,KAAK4gC,SAAS3B,IAGlBsC,aAAc,SAAsBhxB,GAI9BvQ,KAAK03B,OAAwB,aAAfnnB,EAAM1L,KACtB7E,KAAKo/B,UAAW,EAGhBp/B,KAAKo/B,UAAW,GAGpBxwB,SAAU,SAAkB2B,GAC1B,IAAIqF,EAAS5V,KAET6E,EAAO0L,EAAM1L,KACb4E,EAAS8G,EAAM9G,OACf+3B,EAAsBjxB,EAAMuwB,aAC5BA,OAAuC,IAAxBU,EAAiC,GAAKA,EACrDH,EAAkB,SAATx8B,EAEb7E,KAAKuF,MAAM,OAAmBgL,GAC9B,IAAImlB,EAAQ,eAAUoL,EAAapL,OAAS,IAE5C,GAAI,QAAuBA,EAAM7uB,OAAS,IAAM,eAAOq2B,EAAyBxH,EAAM,KAKpF2H,EAAkB3H,EAAO11B,KAAK0+B,WAAWJ,MAAK,SAAUW,GACtD,OAAOrpB,EAAOwrB,YAAYnC,EAAOoC,UAE9B,CAGL,IAAIpC,EAAQ,eAAUx1B,EAAOw1B,OAAS6B,EAAa7B,OAAS,IAAIzoB,KAAI,SAAUyL,GAG5E,OADAA,EAAK+b,MAAQ/b,EAAKwf,oBAAsB,GACjCxf,KAETjiB,KAAKohC,YAAYnC,EAAOoC,KAG5BK,YAAa,SAAqBnxB,GAChC,eAAUA,GACVvQ,KAAKk/B,UAAW,EAChB,IAAIyC,EAAuBpxB,EAAMuwB,aAC7BA,OAAwC,IAAzBa,EAAkC,GAAKA,EAE1D,GAAI3hC,KAAK8+B,QAAU9+B,KAAKiS,WAAajS,KAAKm/B,YAMxC,OAFA2B,EAAac,WAAa,YAC1B5hC,KAAKm/B,aAAc,GAMrB2B,EAAac,WAAa,QAI5BC,WAAY,SAAoBtxB,GAC9B,eAAUA,GACVvQ,KAAKk/B,UAAW,EAChB,IAAI4C,EAAuBvxB,EAAMuwB,aAC7BA,OAAwC,IAAzBgB,EAAkC,GAAKA,EAE1D,GAAI9hC,KAAK8+B,QAAU9+B,KAAKiS,WAAajS,KAAKm/B,YAMxC,OAFA2B,EAAac,WAAa,YAC1B5hC,KAAKm/B,aAAc,GAMrB2B,EAAac,WAAa,QAE5BG,YAAa,SAAqBxxB,GAChC,IAAIwF,EAAS/V,KAEb,eAAUuQ,GACVvQ,KAAK+U,WAAU,WACbgB,EAAOmpB,UAAW,EAElBnpB,EAAOopB,aAAeppB,EAAO+oB,WAIjCkD,OAAQ,SAAgBzxB,GACtB,IAAIyF,EAAShW,KAEb,eAAUuQ,GACVvQ,KAAKk/B,UAAW,EAEZl/B,KAAK8+B,QAAU9+B,KAAKiS,WAAajS,KAAKm/B,YACxCn/B,KAAK+U,WAAU,WAEbiB,EAAOmpB,aAAenpB,EAAO8oB,UAKjC9+B,KAAK4O,SAAS2B,KAGlBjN,OAAQ,SAAgB4E,GACtB,IAAI0vB,EAAS53B,KAAK43B,OACdF,EAAQ13B,KAAK03B,MACbnkB,EAAOvT,KAAKuT,KACZ2rB,EAAWl/B,KAAKk/B,SAChB3Y,EAAavmB,KAAKumB,WAClBiR,EAAUx3B,KAAKw3B,QAEfnQ,EAASnf,EAAE,QAAS,CACtBG,MAAO,CAAC,CACN,oBAAqBqvB,EACrB,oBAAqBE,EACrBnQ,MAAOmQ,GAAU53B,KAAKo/B,UACrB7Y,GAIH0Q,MAAOW,EAAS,CACdjB,QAAS,GACP,GACJ7yB,MAAO9D,KAAKgoB,cACZrZ,GAAI,CACF2Z,OAAQtoB,KAAK4O,SACbqzB,QAASjiC,KAAKuhC,aACdW,SAAUliC,KAAKuhC,aACflB,MAAOrgC,KAAKqgC,OAEdlyB,IAAK,UAGP,GAAIupB,EACF,OAAOrQ,EAIT,IAAIgI,EAASnnB,EAAE,QAAS,CACtBrE,YAAa,oBACbwE,MAAO,CACL62B,SAAUA,GAEZp7B,MAAO,CACL2rB,IAAKzvB,KAAKkoB,SAEV,cAAeloB,KAAKw+B,YAAc,OAEnC,CAACt2B,EAAE,OAAQ,CACZrE,YAAa,yBAGbozB,MAAO,CACLkL,cAAe,SAEhB,CAACniC,KAAKsvB,iBAET,OAAOpnB,EAAE,MAAO,CACdrE,YAAa,0BACbwE,MAAO,CAACyB,EAAgB,GAAI,oBAAoBiB,OAAOwI,GAAOA,GAAOgT,EAAYiR,EAAQnvB,OACzF4uB,MAAOO,EAAQP,MACfnzB,MAAO,CACL8D,GAAI5H,KAAKkoB,OAAO,oBAElBvZ,GAAI,CACFyzB,UAAWpiC,KAAK0hC,YAChBW,SAAUriC,KAAK6hC,WACfS,UAAWtiC,KAAK+hC,YAChBQ,KAAMviC,KAAKgiC,SAEZ,CAAC3a,EAAQgI,Q,yDCpkBhB,W,kCCAA,wHAaWzqB,EAAQ,eAAsB,CAEvCZ,MAAO,eAAS,OAAmB,OAClC,aAGQw+B,EAAiB,aAAIpiC,OAAO,CACrCwE,MAAOA,EACPlF,SAAU,CACRyvB,cAAe,WAEb,OAAO,eAAUnvB,KAAKgE,OAAShE,KAAKgE,MAAQ,MAE9CuiB,WAAY,WACV,IAAIviB,EAAQhE,KAAKmvB,cACjB,OAAiB,IAAVnrB,EAAiB,YAAuB,IAAVA,EAAkB,aAAe,MAExEmkB,oBAAqB,WACnB,IAAI3C,EAAcxlB,KAAKwlB,YAEvB,OAAoB,IAAhBA,GAAwC,SAAhBA,GAA0C,KAAhBA,IAIxB,IAAvBxlB,KAAKmvB,cAHH,OAGsC3J,O,kCCrCrD,sFAKW5gB,EAAQ,eAAsB,CACvCiI,UAAW,eAAS,QACpBC,cAAe,eAAS,QACxBa,IAAK,eAAS,OAAkB,OAChCf,YAAa,eAAS,SACrB,QAGoB,aAAIxM,OAAO,CAChCwE,MAAOA,K,kCCdT,W,kCCAA,6OAASiE,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EAgBpM,IAAItF,EAAQ,eAAsB,eAAS4E,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAgB,GAAI,CAC5HsuB,MAAO,eAAS,QAAmB,GACnC7sB,KAAM,eAAS,QAEf0a,KAAM,eAAS,QAAmB,GAClC8c,UAAW,eAAS,QACpBC,QAAS,eAAS,QAAmB,GACrC9qB,KAAM,eAAS,OAAkB,QACjCrE,KAAM,eAAS,QACf4H,MAAO,eAAS,QAAmB,GACnCwnB,gBAAiB,eAAS,OAAkB,UAAU,SAAU5iC,GAC9D,OAAO,eAAc,CAAC,SAAU,SAAU,SAAUA,MAEtD6iC,WAAY,eAAS,QACrBC,UAAW,eAAS,QACpBC,QAAS,eAAS,QAClBC,aAAc,eAAS,QACvB5zB,KAAM,eAAS,QACf6zB,YAAa,eAAS,QACtBC,UAAW,eAAS,OAAkB,UAEtCC,WAAY,eAAS,OAAkB,mBACvCzM,QAAS,eAAS,OAAkB,gBACjC,QAGM1V,EAAyB,aAAI3gB,OAAO,CAC7CqE,KAAM,OACNoL,OAAQ,CAAC,OAAS,OAAe,QACjCjL,MAAOA,EACPlF,SAAU,CACRyjC,gBAAiB,WACf,IAAIrL,EAAQ93B,KAAK83B,MACb3c,EAAQnb,KAAKmb,MACjB,MAAO,CAACnb,KAAK4yB,eAAgB5yB,KAAK6yB,cAAe,CAC/CtZ,KAAMvZ,KAAKuyB,QAIX,YAAapX,IAAU2c,EAGvB,SAAUA,GAAS3c,KAGvBioB,YAAa,WACX,MAAO,CAACpjC,KAAKyiC,UAAW,CACtB,sBAAuBziC,KAAK0L,MAC5B6N,KAAMvZ,KAAKuyB,WAGf8Q,cAAe,WACb,IAAIloB,EAAQnb,KAAKmb,MACjB,MAAO,CAACnb,KAAKgjC,YAAa,CACxB,wBAAyB7nB,EACzB,2BAA4Bnb,KAAK0iC,UAAYvnB,MAInD7X,OAAQ,SAAgB4E,GACtB,IAAIqqB,EAAUvyB,KAAKuyB,QACfkE,EAAUz2B,KAAKy2B,QACfljB,EAAOvT,KAAKuT,KACZukB,EAAQ93B,KAAK83B,MACb7lB,EAAWjS,KAAKiS,SAChBkJ,EAAQnb,KAAKmb,MACbvD,EAAO5X,KAAK4X,KACZod,EAAOh1B,KAAKg1B,KACZrC,EAAS3yB,KAAK2yB,OACd2Q,EAAc,CAChB7M,QAASA,EACTljB,KAAMA,EACNukB,MAAOA,EACP7lB,SAAUA,GAERsxB,EAAkBvjC,KAAKyX,cAAc,QACrC+rB,EAAwBxjC,KAAKurB,kBAAkB,QAA4B,GAAK,eAAWvrB,KAAKiL,KAAMjL,KAAKmP,MAC3Gs0B,EAASv7B,IAEb,GAAIiT,EAAO,CACT,IAAI2nB,EAAU9iC,KAAK8iC,QACfD,EAAY7iC,KAAK6iC,UACjBF,EAAkB3iC,KAAK2iC,gBAEvBe,EAAWl6B,EAAcA,EAAc,GAAI85B,GAAc,GAAI,CAC/D7M,QAASz2B,KAAK+iC,cAAgBtM,IAK5BqM,EACFY,EAAS9gC,GAAKkgC,EACLD,EACTa,EAASxe,KAAO2d,EACPF,IACTe,EAAS7+B,KAAO89B,GAGlBc,EAASv7B,EAAE,OAAS,CAClBG,MAAOrI,KAAK4iC,WACZ9+B,MAAO,CACL8D,GAAI5H,KAAKkoB,OAAO,gBAElBtjB,MAAO8+B,EACP14B,SAAUw4B,EACV70B,GAAI,CACFoD,MAAO/R,KAAKu1B,cAEdpnB,IAAK,UACJo1B,GAEHA,EAAkB,CAACr7B,EAAE,OAAQ,CAC3BG,MAAO,CAAC,YACP,CAACrI,KAAKkjC,cACTM,EAAwB,GAG1B,IAAIG,EAAUz7B,EAAE,OAAS,CACvBrE,YAAa,kBACbwE,MAAOrI,KAAKqjC,cACZv/B,MAAO,CACL8D,GAAI5H,KAAKkoB,OAAO,eAChB,gBAAiB,OACjB,gBAAiB,eAASqK,IAE5B3tB,MAAO4E,EAAcA,EAAc,GAAI85B,GAAc,GAAI,CACvD31B,IAAK3N,KAAKijC,UACVnL,MAAOA,IAAU3c,IAEnBnQ,SAAUw4B,EACV70B,GAAI,CACFi1B,UAAW5jC,KAAKo1B,YAChBrjB,MAAO4gB,EACP5a,QAAS4a,GAGXxkB,IAAK,UACJo1B,GACCM,EAAQ37B,EAAE,KAAM,CAClBrE,YAAa,gBACbwE,MAAOrI,KAAKojC,YACZt/B,MAAO,CACL8T,KAAMA,EACNC,SAAU,KACV,kBAAmB7X,KAAKkoB,OAAO/M,EAAQ,cAAgB,gBAEzDxM,GAAI,CACFoJ,QAAS/X,KAAKq1B,WAGhBlnB,IAAK,QACJ,EAAEnO,KAAK2lB,MAAQ4M,EAAUvyB,KAAKyX,cAAc,OAAmB,CAChEud,KAAMA,IACH9sB,MACL,OAAOA,EAAE,MAAO,CACdrE,YAAa,sBACbwE,MAAOrI,KAAKmjC,gBACZr/B,MAAO,CACL8D,GAAI5H,KAAKkoB,WAEV,CAACub,EAAQE,EAASE,Q,kCCpLzB,wHAKIC,EAAW,0BAEJl/B,EAAQ,eAAsB,CACvCm/B,UAAW,eAAS,QAAmB,GACvC9xB,SAAU,eAAS,QAAmB,GACtCgW,KAAM,eAAS,QACfrgB,GAAI,eAAS,QACbnD,KAAM,eAAS,QACfM,SAAU,eAAS,QAAmB,IACrC,gBAGQi/B,EAAmB,aAAI5jC,OAAO,CACvCwE,MAAOA,EACPogB,QAAS,WACPhlB,KAAKikC,mBAIPxb,UAAW,WACTzoB,KAAKikC,mBAEPpkC,QAAS,CACPokC,gBAAiB,WACf,IAAInvB,EAAQ9U,KAEZA,KAAK+U,WAAU,WACb,gBAAU,WACR,IAAIe,EAAKhB,EAAMW,IAEXX,EAAMivB,WAAa,eAAUjuB,KAC1B,eAAQA,EAAIguB,KACfhuB,EAAK,eAAOguB,EAAUhuB,IAGxB,eAAaA,e,kCCxCzB,IAAIxS,EAAS,WAAa,IAAIC,EAAIvD,KAASwD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,sBAAsB,CAACI,MAAM,CAAC,KAAOP,EAAIuK,UAAU,MAAQvK,EAAIwK,OAAO3B,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,UAAUqE,GAAG,SAASC,GAClO,IAAIC,EAASD,EAAIC,OACjB,MAAO,CAAC1K,EAAG,eAAe,CAACI,MAAM,CAAC,QAAQsK,EAAOvH,OAAS,IAAU,OAAO,CAACnD,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMP,EAAIqE,KAAK,CAACrE,EAAIK,GAAGL,EAAIqK,GAAGrK,EAAIsK,UAAUnK,EAAG,WAAW,CAACI,MAAM,CAAC,GAAKP,EAAIqE,GAAG,IAAMrE,EAAIQ,OAAOC,MAAMC,UAAUC,MAAQ,MAAQ,MAAM,QAAUX,EAAIY,QAAQ,YAAcZ,EAAI8K,YAAY,MAAQ9K,EAAIyb,KAAK,UAAYzb,EAAI2gC,UAAU,MAAQ3gC,EAAIxD,MAAM,SAAWwD,EAAI+K,SAAS,OAAS/K,EAAIqpB,OAAO,SAAWrpB,EAAIs7B,UAAUlwB,GAAG,CAAC,MAAQpL,EAAI4gC,aAAa/3B,YAAY7I,EAAI0K,GAAG,CAAC,CAACpE,IAAI,UAAUqE,GAAG,SAASC,GAAK,MAAO,CAAE5K,EAAW,QAAEG,EAAG,YAAY,CAACI,MAAM,CAAC,QAAU,UAAU,MAAQ,MAAMP,EAAI6L,SAAS,MAAK,GAAMhL,MAAM,CAACrE,MAAOwD,EAAc,WAAEc,SAAS,SAAUC,GAAMf,EAAI2L,WAAW5K,GAAKC,WAAW,gBAAgBb,EAAG,0BAA0B,CAACI,MAAM,CAAC,QAAQsK,EAAOvH,OAAS,IAAU,OAAO,CAACtD,EAAIK,GAAG,aAAaL,EAAIqK,GAAGQ,EAAO,IAAI,eAAe,WAAW,IACn0B5J,EAAkB,G,iFC8CtB,GACEC,KAAM,cACNC,WAAY,CACViL,WAAJ,OACIkR,SAAJ,OACIpC,qBAAJ,OACI9Z,QAAJ,IACIiL,mBAAJ,QAEEhL,MAAO,CACLiJ,MAAO,CACLhJ,KAAMI,OACNF,UAAU,GAEZuJ,SAAU,CACRzJ,KAAMM,QACNJ,UAAU,GAEZ85B,SAAU,CACRh6B,KAAMM,QACNJ,UAAU,GAEZ+I,UAAW,CACTjJ,KAAMI,OACNG,QAAS,WAEX2I,MAAO,CACLlJ,KAAM,CAACG,OAAQC,QACfG,QAAS,IAEXwC,GAAI,CACF/C,KAAMI,OACNF,UAAU,GAEZZ,QAAS,CACPU,KAAMC,MACNC,UAAU,GAEZm/B,UAAW,CACTr/B,KAAMM,QACNJ,UAAU,GAEZizB,QAAS,CACPnzB,KAAMM,QACNJ,UAAU,GAEZ6nB,OAAQ,CACN/nB,KAAMkL,SACN3K,QAAS,MAEX4Z,KAAM,CACJna,KAAMI,OACNF,UAAU,GAEZsJ,YAAa,CACXxJ,KAAMI,OACNF,UAAU,EACVK,QAAS,IAEXrF,MAAO,CACL8E,KAAM,CAACG,OAAQC,OAAQC,OAAQC,QAASL,OACxCC,UAAU,EACVK,QAAS,MAEX++B,YAAa,CACXt/B,KAAMkL,SACNhL,UAAU,EACVK,QAAS,OAGb7D,KAtEF,WAuEI,MAAO,CACL2N,WAAY,KAGhBxP,SAAU,CACR2F,SADJ,WAEM,QAASrF,KAAKkP,aAGlB5J,MAAO,CACL4J,WADJ,SACA,GACMlP,KAAKuF,MAAM,QAASxF,IAEtBA,MAJJ,SAIA,GACUY,IAAQX,KAAKkP,aACflP,KAAKkP,WAAavO,KAIxB6E,QA1FF,WA2FQxF,KAAKD,QACPC,KAAKkP,WAAalP,KAAKD,SC7IuU,I,kCCShW0F,EAAY,eACd,EACAnC,EACAkB,GACA,EACA,KACA,WACA,MAIa,OAAAiB,E,4CCpBf;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAI2+B,EAA8B,qBAAXC,QAA8C,qBAAbzb,UAAiD,qBAAd0b,UAEvFC,EAAkB,WAEpB,IADA,IAAIC,EAAwB,CAAC,OAAQ,UAAW,WACvC96B,EAAI,EAAGA,EAAI86B,EAAsB39B,OAAQ6C,GAAK,EACrD,GAAI06B,GAAaE,UAAUzO,UAAUzf,QAAQouB,EAAsB96B,KAAO,EACxE,OAAO,EAGX,OAAO,EAPa,GAUtB,SAAS+6B,EAAkBv2B,GACzB,IAAIw2B,GAAS,EACb,OAAO,WACDA,IAGJA,GAAS,EACTL,OAAO7G,QAAQO,UAAUO,MAAK,WAC5BoG,GAAS,EACTx2B,SAKN,SAASy2B,EAAaz2B,GACpB,IAAI02B,GAAY,EAChB,OAAO,WACAA,IACHA,GAAY,EACZtd,YAAW,WACTsd,GAAY,EACZ12B,MACCq2B,KAKT,IAAIM,EAAqBT,GAAaC,OAAO7G,QAWzC9X,EAAWmf,EAAqBJ,EAAoBE,EASxD,SAASG,EAAWC,GAClB,IAAIC,EAAU,GACd,OAAOD,GAA8D,sBAA3CC,EAAQp/B,SAASq/B,KAAKF,GAUlD,SAASG,EAAyBlR,EAASmR,GACzC,GAAyB,IAArBnR,EAAQoR,SACV,MAAO,GAGT,IAAIf,EAASrQ,EAAQqR,cAAcC,YAC/BC,EAAMlB,EAAOmB,iBAAiBxR,EAAS,MAC3C,OAAOmR,EAAWI,EAAIJ,GAAYI,EAUpC,SAASE,EAAczR,GACrB,MAAyB,SAArBA,EAAQ0R,SACH1R,EAEFA,EAAQ2R,YAAc3R,EAAQ4R,KAUvC,SAASC,EAAgB7R,GAEvB,IAAKA,EACH,OAAOpL,SAASkd,KAGlB,OAAQ9R,EAAQ0R,UACd,IAAK,OACL,IAAK,OACH,OAAO1R,EAAQqR,cAAcS,KAC/B,IAAK,YACH,OAAO9R,EAAQ8R,KAKnB,IAAIC,EAAwBb,EAAyBlR,GACjDgS,EAAWD,EAAsBC,SACjCC,EAAYF,EAAsBE,UAClC9K,EAAY4K,EAAsB5K,UAEtC,MAAI,wBAAwBnS,KAAKgd,EAAW7K,EAAY8K,GAC/CjS,EAGF6R,EAAgBJ,EAAczR,IAUvC,SAASkS,EAAiBC,GACxB,OAAOA,GAAaA,EAAUC,cAAgBD,EAAUC,cAAgBD,EAG1E,IAAIE,EAASjC,MAAgBC,OAAOiC,uBAAwB1d,SAAS2d,cACjEC,EAASpC,GAAa,UAAUpb,KAAKsb,UAAUzO,WASnD,SAAS4Q,EAAKC,GACZ,OAAgB,KAAZA,EACKL,EAEO,KAAZK,EACKF,EAEFH,GAAUG,EAUnB,SAASG,EAAgB3S,GACvB,IAAKA,EACH,OAAOpL,SAASge,gBAGlB,IAAIC,EAAiBJ,EAAK,IAAM7d,SAASkd,KAAO,KAG5CgB,EAAe9S,EAAQ8S,cAAgB,KAE3C,MAAOA,IAAiBD,GAAkB7S,EAAQ+S,mBAChDD,GAAgB9S,EAAUA,EAAQ+S,oBAAoBD,aAGxD,IAAIpB,EAAWoB,GAAgBA,EAAapB,SAE5C,OAAKA,GAAyB,SAAbA,GAAoC,SAAbA,GAMsB,IAA1D,CAAC,KAAM,KAAM,SAAStvB,QAAQ0wB,EAAapB,WAA2E,WAAvDR,EAAyB4B,EAAc,YACjGH,EAAgBG,GAGlBA,EATE9S,EAAUA,EAAQqR,cAAcuB,gBAAkBhe,SAASge,gBAYtE,SAASI,EAAkBhT,GACzB,IAAI0R,EAAW1R,EAAQ0R,SAEvB,MAAiB,SAAbA,IAGgB,SAAbA,GAAuBiB,EAAgB3S,EAAQiT,qBAAuBjT,GAU/E,SAASkT,EAAQC,GACf,OAAwB,OAApBA,EAAKxB,WACAuB,EAAQC,EAAKxB,YAGfwB,EAWT,SAASC,EAAuBC,EAAUC,GAExC,IAAKD,IAAaA,EAASjC,WAAakC,IAAaA,EAASlC,SAC5D,OAAOxc,SAASge,gBAIlB,IAAIW,EAAQF,EAASG,wBAAwBF,GAAYG,KAAKC,4BAC1DxgC,EAAQqgC,EAAQF,EAAWC,EAC3BngC,EAAMogC,EAAQD,EAAWD,EAGzBM,EAAQ/e,SAASgf,cACrBD,EAAME,SAAS3gC,EAAO,GACtBygC,EAAMG,OAAO3gC,EAAK,GAClB,IAAI4gC,EAA0BJ,EAAMI,wBAIpC,GAAIV,IAAaU,GAA2BT,IAAaS,GAA2B7gC,EAAMmS,SAASlS,GACjG,OAAI6/B,EAAkBe,GACbA,EAGFpB,EAAgBoB,GAIzB,IAAIC,EAAed,EAAQG,GAC3B,OAAIW,EAAapC,KACRwB,EAAuBY,EAAapC,KAAM0B,GAE1CF,EAAuBC,EAAUH,EAAQI,GAAU1B,MAY9D,SAASqC,EAAUjU,GACjB,IAAIkU,EAAOjnC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,MAE3EknC,EAAqB,QAATD,EAAiB,YAAc,aAC3CxC,EAAW1R,EAAQ0R,SAEvB,GAAiB,SAAbA,GAAoC,SAAbA,EAAqB,CAC9C,IAAIz6B,EAAO+oB,EAAQqR,cAAcuB,gBAC7BwB,EAAmBpU,EAAQqR,cAAc+C,kBAAoBn9B,EACjE,OAAOm9B,EAAiBD,GAG1B,OAAOnU,EAAQmU,GAYjB,SAASE,EAAcC,EAAMtU,GAC3B,IAAIuU,EAAWtnC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAE1EunC,EAAYP,EAAUjU,EAAS,OAC/ByU,EAAaR,EAAUjU,EAAS,QAChC0U,EAAWH,GAAY,EAAI,EAK/B,OAJAD,EAAKn9B,KAAOq9B,EAAYE,EACxBJ,EAAKp9B,QAAUs9B,EAAYE,EAC3BJ,EAAK38B,MAAQ88B,EAAaC,EAC1BJ,EAAK58B,OAAS+8B,EAAaC,EACpBJ,EAaT,SAASK,EAAe3N,EAAQ4N,GAC9B,IAAIC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,SAEzC,OAAOE,WAAW/N,EAAO,SAAW6N,EAAQ,UAAYE,WAAW/N,EAAO,SAAW8N,EAAQ,UAG/F,SAASE,EAAQJ,EAAM9C,EAAM76B,EAAM8vB,GACjC,OAAOt4B,KAAKolB,IAAIie,EAAK,SAAW8C,GAAO9C,EAAK,SAAW8C,GAAO39B,EAAK,SAAW29B,GAAO39B,EAAK,SAAW29B,GAAO39B,EAAK,SAAW29B,GAAOnC,EAAK,IAAMwC,SAASh+B,EAAK,SAAW29B,IAASK,SAASlO,EAAc,UAAqB,WAAT6N,EAAoB,MAAQ,UAAYK,SAASlO,EAAc,UAAqB,WAAT6N,EAAoB,SAAW,WAAa,GAG5U,SAASM,EAAetgB,GACtB,IAAIkd,EAAOld,EAASkd,KAChB76B,EAAO2d,EAASge,gBAChB7L,EAAgB0L,EAAK,KAAOjB,iBAAiBv6B,GAEjD,MAAO,CACLO,OAAQw9B,EAAQ,SAAUlD,EAAM76B,EAAM8vB,GACtCxvB,MAAOy9B,EAAQ,QAASlD,EAAM76B,EAAM8vB,IAIxC,IAAIoO,EAAiB,SAAU/Q,EAAUC,GACvC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,sCAIpB8Q,EAAc,WAChB,SAASp/B,EAAiBP,EAAQ7E,GAChC,IAAK,IAAI8E,EAAI,EAAGA,EAAI9E,EAAMiC,OAAQ6C,IAAK,CACrC,IAAI8uB,EAAa5zB,EAAM8E,GACvB8uB,EAAWlvB,WAAakvB,EAAWlvB,aAAc,EACjDkvB,EAAWruB,cAAe,EACtB,UAAWquB,IAAYA,EAAWpuB,UAAW,GACjDpF,OAAOiF,eAAeR,EAAQ+uB,EAAW3uB,IAAK2uB,IAIlD,OAAO,SAAUH,EAAaK,EAAYC,GAGxC,OAFID,GAAY1uB,EAAiBquB,EAAYO,UAAWF,GACpDC,GAAa3uB,EAAiBquB,EAAaM,GACxCN,GAdO,GAsBdpuB,EAAiB,SAAUC,EAAKL,EAAK9J,GAYvC,OAXI8J,KAAOK,EACTlF,OAAOiF,eAAeC,EAAKL,EAAK,CAC9B9J,MAAOA,EACPuJ,YAAY,EACZa,cAAc,EACdC,UAAU,IAGZF,EAAIL,GAAO9J,EAGNmK,GAGLm/B,EAAWrkC,OAAOskC,QAAU,SAAU7/B,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CACzC,IAAIC,EAAS1I,UAAUyI,GAEvB,IAAK,IAAIG,KAAOF,EACV3E,OAAO4zB,UAAU2Q,eAAetE,KAAKt7B,EAAQE,KAC/CJ,EAAOI,GAAOF,EAAOE,IAK3B,OAAOJ,GAUT,SAAS+/B,EAAcC,GACrB,OAAOJ,EAAS,GAAII,EAAS,CAC3B/9B,MAAO+9B,EAAQ99B,KAAO89B,EAAQl+B,MAC9BL,OAAQu+B,EAAQt+B,IAAMs+B,EAAQj+B,SAWlC,SAASk+B,EAAsB1V,GAC7B,IAAIsU,EAAO,GAKX,IACE,GAAI7B,EAAK,IAAK,CACZ6B,EAAOtU,EAAQ0V,wBACf,IAAIlB,EAAYP,EAAUjU,EAAS,OAC/ByU,EAAaR,EAAUjU,EAAS,QACpCsU,EAAKn9B,KAAOq9B,EACZF,EAAK38B,MAAQ88B,EACbH,EAAKp9B,QAAUs9B,EACfF,EAAK58B,OAAS+8B,OAEdH,EAAOtU,EAAQ0V,wBAEjB,MAAOC,IAET,IAAIliC,EAAS,CACXkE,KAAM28B,EAAK38B,KACXR,IAAKm9B,EAAKn9B,IACVI,MAAO+8B,EAAK58B,MAAQ48B,EAAK38B,KACzBH,OAAQ88B,EAAKp9B,OAASo9B,EAAKn9B,KAIzBy+B,EAA6B,SAArB5V,EAAQ0R,SAAsBwD,EAAelV,EAAQqR,eAAiB,GAC9E95B,EAAQq+B,EAAMr+B,OAASyoB,EAAQ6V,aAAepiC,EAAO8D,MACrDC,EAASo+B,EAAMp+B,QAAUwoB,EAAQ8V,cAAgBriC,EAAO+D,OAExDu+B,EAAiB/V,EAAQgW,YAAcz+B,EACvC0+B,EAAgBjW,EAAQkW,aAAe1+B,EAI3C,GAAIu+B,GAAkBE,EAAe,CACnC,IAAIjP,EAASkK,EAAyBlR,GACtC+V,GAAkBpB,EAAe3N,EAAQ,KACzCiP,GAAiBtB,EAAe3N,EAAQ,KAExCvzB,EAAO8D,OAASw+B,EAChBtiC,EAAO+D,QAAUy+B,EAGnB,OAAOT,EAAc/hC,GAGvB,SAAS0iC,EAAqC/hC,EAAUgiC,GACtD,IAAIC,EAAgBppC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAE/EulC,EAASC,EAAK,IACd6D,EAA6B,SAApBF,EAAO1E,SAChB6E,EAAeb,EAAsBthC,GACrCoiC,EAAad,EAAsBU,GACnCK,EAAe5E,EAAgBz9B,GAE/B4yB,EAASkK,EAAyBkF,GAClCxO,EAAiBmN,WAAW/N,EAAOY,gBACnC8O,EAAkB3B,WAAW/N,EAAO0P,iBAGpCL,GAAiBC,IACnBE,EAAWr/B,IAAM1I,KAAKolB,IAAI2iB,EAAWr/B,IAAK,GAC1Cq/B,EAAW7+B,KAAOlJ,KAAKolB,IAAI2iB,EAAW7+B,KAAM,IAE9C,IAAI89B,EAAUD,EAAc,CAC1Br+B,IAAKo/B,EAAap/B,IAAMq/B,EAAWr/B,IAAMywB,EACzCjwB,KAAM4+B,EAAa5+B,KAAO6+B,EAAW7+B,KAAO++B,EAC5Cn/B,MAAOg/B,EAAah/B,MACpBC,OAAQ++B,EAAa/+B,SASvB,GAPAi+B,EAAQkB,UAAY,EACpBlB,EAAQmB,WAAa,GAMhBpE,GAAU8D,EAAQ,CACrB,IAAIK,EAAY5B,WAAW/N,EAAO2P,WAC9BC,EAAa7B,WAAW/N,EAAO4P,YAEnCnB,EAAQt+B,KAAOywB,EAAiB+O,EAChClB,EAAQv+B,QAAU0wB,EAAiB+O,EACnClB,EAAQ99B,MAAQ++B,EAAkBE,EAClCnB,EAAQ/9B,OAASg/B,EAAkBE,EAGnCnB,EAAQkB,UAAYA,EACpBlB,EAAQmB,WAAaA,EAOvB,OAJIpE,IAAW6D,EAAgBD,EAAO/wB,SAASoxB,GAAgBL,IAAWK,GAA0C,SAA1BA,EAAa/E,YACrG+D,EAAUpB,EAAcoB,EAASW,IAG5BX,EAGT,SAASoB,EAA8C7W,GACrD,IAAI8W,EAAgB7pC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAE/EgK,EAAO+oB,EAAQqR,cAAcuB,gBAC7BmE,EAAiBZ,EAAqCnW,EAAS/oB,GAC/DM,EAAQ9I,KAAKolB,IAAI5c,EAAK4+B,YAAaxF,OAAO2G,YAAc,GACxDx/B,EAAS/I,KAAKolB,IAAI5c,EAAK6+B,aAAczF,OAAO4G,aAAe,GAE3DzC,EAAasC,EAAkC,EAAlB7C,EAAUh9B,GACvCw9B,EAAcqC,EAA0C,EAA1B7C,EAAUh9B,EAAM,QAE9CwN,EAAS,CACXtN,IAAKq9B,EAAYuC,EAAe5/B,IAAM4/B,EAAeJ,UACrDh/B,KAAM88B,EAAasC,EAAep/B,KAAOo/B,EAAeH,WACxDr/B,MAAOA,EACPC,OAAQA,GAGV,OAAOg+B,EAAc/wB,GAWvB,SAASyyB,EAAQlX,GACf,IAAI0R,EAAW1R,EAAQ0R,SACvB,GAAiB,SAAbA,GAAoC,SAAbA,EACzB,OAAO,EAET,GAAsD,UAAlDR,EAAyBlR,EAAS,YACpC,OAAO,EAET,IAAI2R,EAAaF,EAAczR,GAC/B,QAAK2R,GAGEuF,EAAQvF,GAWjB,SAASwF,EAA6BnX,GAEpC,IAAKA,IAAYA,EAAQoX,eAAiB3E,IACxC,OAAO7d,SAASge,gBAElB,IAAI9wB,EAAKke,EAAQoX,cACjB,MAAOt1B,GAAoD,SAA9CovB,EAAyBpvB,EAAI,aACxCA,EAAKA,EAAGs1B,cAEV,OAAOt1B,GAAM8S,SAASge,gBAcxB,SAASyE,EAAcC,EAAQnF,EAAWrK,EAASpH,GACjD,IAAI2V,EAAgBppC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAI/EsqC,EAAa,CAAEpgC,IAAK,EAAGQ,KAAM,GAC7Bm7B,EAAeuD,EAAgBc,EAA6BG,GAAUlE,EAAuBkE,EAAQpF,EAAiBC,IAG1H,GAA0B,aAAtBzR,EACF6W,EAAaV,EAA8C/D,EAAcuD,OACpE,CAEL,IAAImB,OAAiB,EACK,iBAAtB9W,GACF8W,EAAiB3F,EAAgBJ,EAAcU,IACf,SAA5BqF,EAAe9F,WACjB8F,EAAiBF,EAAOjG,cAAcuB,kBAGxC4E,EAD+B,WAAtB9W,EACQ4W,EAAOjG,cAAcuB,gBAErBlS,EAGnB,IAAI+U,EAAUU,EAAqCqB,EAAgB1E,EAAcuD,GAGjF,GAAgC,SAA5BmB,EAAe9F,UAAwBwF,EAAQpE,GAWjDyE,EAAa9B,MAXmD,CAChE,IAAIgC,EAAkBvC,EAAeoC,EAAOjG,eACxC75B,EAASigC,EAAgBjgC,OACzBD,EAAQkgC,EAAgBlgC,MAE5BggC,EAAWpgC,KAAOs+B,EAAQt+B,IAAMs+B,EAAQkB,UACxCY,EAAWrgC,OAASM,EAASi+B,EAAQt+B,IACrCogC,EAAW5/B,MAAQ89B,EAAQ99B,KAAO89B,EAAQmB,WAC1CW,EAAW7/B,MAAQH,EAAQk+B,EAAQ99B,MAQvCmwB,EAAUA,GAAW,EACrB,IAAI4P,EAAqC,kBAAZ5P,EAM7B,OALAyP,EAAW5/B,MAAQ+/B,EAAkB5P,EAAUA,EAAQnwB,MAAQ,EAC/D4/B,EAAWpgC,KAAOugC,EAAkB5P,EAAUA,EAAQ3wB,KAAO,EAC7DogC,EAAW7/B,OAASggC,EAAkB5P,EAAUA,EAAQpwB,OAAS,EACjE6/B,EAAWrgC,QAAUwgC,EAAkB5P,EAAUA,EAAQ5wB,QAAU,EAE5DqgC,EAGT,SAASI,EAAQxjC,GACf,IAAIoD,EAAQpD,EAAKoD,MACbC,EAASrD,EAAKqD,OAElB,OAAOD,EAAQC,EAYjB,SAASogC,EAAqBtX,EAAWuX,EAASP,EAAQnF,EAAWzR,GACnE,IAAIoH,EAAU76B,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,EAElF,IAAmC,IAA/BqzB,EAAUle,QAAQ,QACpB,OAAOke,EAGT,IAAIiX,EAAaF,EAAcC,EAAQnF,EAAWrK,EAASpH,GAEvDoX,EAAQ,CACV3gC,IAAK,CACHI,MAAOggC,EAAWhgC,MAClBC,OAAQqgC,EAAQ1gC,IAAMogC,EAAWpgC,KAEnCO,MAAO,CACLH,MAAOggC,EAAW7/B,MAAQmgC,EAAQngC,MAClCF,OAAQ+/B,EAAW//B,QAErBN,OAAQ,CACNK,MAAOggC,EAAWhgC,MAClBC,OAAQ+/B,EAAWrgC,OAAS2gC,EAAQ3gC,QAEtCS,KAAM,CACJJ,MAAOsgC,EAAQlgC,KAAO4/B,EAAW5/B,KACjCH,OAAQ+/B,EAAW//B,SAInBugC,EAAc/mC,OAAOgE,KAAK8iC,GAAOt1B,KAAI,SAAU3M,GACjD,OAAOw/B,EAAS,CACdx/B,IAAKA,GACJiiC,EAAMjiC,GAAM,CACbmiC,KAAML,EAAQG,EAAMjiC,SAErBoiC,MAAK,SAAUvL,EAAGwL,GACnB,OAAOA,EAAEF,KAAOtL,EAAEsL,QAGhBG,EAAgBJ,EAAY5iC,QAAO,SAAUuB,GAC/C,IAAIa,EAAQb,EAAMa,MACdC,EAASd,EAAMc,OACnB,OAAOD,GAAS+/B,EAAOzB,aAAer+B,GAAU8/B,EAAOxB,gBAGrDsC,EAAoBD,EAActlC,OAAS,EAAIslC,EAAc,GAAGtiC,IAAMkiC,EAAY,GAAGliC,IAErFwiC,EAAY/X,EAAUnZ,MAAM,KAAK,GAErC,OAAOixB,GAAqBC,EAAY,IAAMA,EAAY,IAa5D,SAASC,EAAoBtoC,EAAOsnC,EAAQnF,GAC1C,IAAIkE,EAAgBppC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,KAEpFsrC,EAAqBlC,EAAgBc,EAA6BG,GAAUlE,EAAuBkE,EAAQpF,EAAiBC,IAChI,OAAOgE,EAAqChE,EAAWoG,EAAoBlC,GAU7E,SAASmC,EAAcxY,GACrB,IAAIqQ,EAASrQ,EAAQqR,cAAcC,YAC/BtK,EAASqJ,EAAOmB,iBAAiBxR,GACjCyY,EAAI1D,WAAW/N,EAAO2P,WAAa,GAAK5B,WAAW/N,EAAO0R,cAAgB,GAC1EC,EAAI5D,WAAW/N,EAAO4P,YAAc,GAAK7B,WAAW/N,EAAO4R,aAAe,GAC1EnlC,EAAS,CACX8D,MAAOyoB,EAAQgW,YAAc2C,EAC7BnhC,OAAQwoB,EAAQkW,aAAeuC,GAEjC,OAAOhlC,EAUT,SAASolC,EAAqBvY,GAC5B,IAAIwY,EAAO,CAAEnhC,KAAM,QAASD,MAAO,OAAQR,OAAQ,MAAOC,IAAK,UAC/D,OAAOmpB,EAAUhP,QAAQ,0BAA0B,SAAUynB,GAC3D,OAAOD,EAAKC,MAchB,SAASC,EAAiB1B,EAAQ2B,EAAkB3Y,GAClDA,EAAYA,EAAUnZ,MAAM,KAAK,GAGjC,IAAI+xB,EAAaV,EAAclB,GAG3B6B,EAAgB,CAClB5hC,MAAO2hC,EAAW3hC,MAClBC,OAAQ0hC,EAAW1hC,QAIjB4hC,GAAoD,IAA1C,CAAC,QAAS,QAAQh3B,QAAQke,GACpC+Y,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,SAStC,OAPAD,EAAcE,GAAYJ,EAAiBI,GAAYJ,EAAiBM,GAAe,EAAIL,EAAWK,GAAe,EAEnHJ,EAAcG,GADZhZ,IAAcgZ,EACeL,EAAiBK,GAAiBJ,EAAWM,GAE7CP,EAAiBJ,EAAqBS,IAGhEH,EAYT,SAASt3B,EAAK43B,EAAK5yB,GAEjB,OAAI/V,MAAM8zB,UAAU/iB,KACX43B,EAAI53B,KAAKgF,GAIX4yB,EAAItkC,OAAO0R,GAAO,GAY3B,SAAS6yB,EAAUD,EAAKv8B,EAAMnR,GAE5B,GAAI+E,MAAM8zB,UAAU8U,UAClB,OAAOD,EAAIC,WAAU,SAAUC,GAC7B,OAAOA,EAAIz8B,KAAUnR,KAKzB,IAAI6tC,EAAQ/3B,EAAK43B,GAAK,SAAUvjC,GAC9B,OAAOA,EAAIgH,KAAUnR,KAEvB,OAAO0tC,EAAIr3B,QAAQw3B,GAarB,SAASC,EAAa1tB,EAAW5e,EAAMusC,GACrC,IAAIC,OAA0BhnC,IAAT+mC,EAAqB3tB,EAAYA,EAAUla,MAAM,EAAGynC,EAAUvtB,EAAW,OAAQ2tB,IAmBtG,OAjBAC,EAAenkC,SAAQ,SAAU8+B,GAC3BA,EAAS,aAEXsF,QAAQn9B,KAAK,yDAEf,IAAI3C,EAAKw6B,EAAS,aAAeA,EAASx6B,GACtCw6B,EAASjU,SAAWqQ,EAAW52B,KAIjC3M,EAAKkoC,QAAQ6B,OAAS9B,EAAcjoC,EAAKkoC,QAAQ6B,QACjD/pC,EAAKkoC,QAAQtD,UAAYqD,EAAcjoC,EAAKkoC,QAAQtD,WAEpD5kC,EAAO2M,EAAG3M,EAAMmnC,OAIbnnC,EAUT,SAAS0sC,IAEP,IAAIjuC,KAAKgE,MAAMkqC,YAAf,CAIA,IAAI3sC,EAAO,CACT62B,SAAUp4B,KACVg7B,OAAQ,GACRmT,YAAa,GACbC,WAAY,GACZC,SAAS,EACT5E,QAAS,IAIXloC,EAAKkoC,QAAQtD,UAAYmG,EAAoBtsC,KAAKgE,MAAOhE,KAAKsrC,OAAQtrC,KAAKmmC,UAAWnmC,KAAKmE,QAAQmqC,eAKnG/sC,EAAK+yB,UAAYsX,EAAqB5rC,KAAKmE,QAAQmwB,UAAW/yB,EAAKkoC,QAAQtD,UAAWnmC,KAAKsrC,OAAQtrC,KAAKmmC,UAAWnmC,KAAKmE,QAAQgc,UAAUqU,KAAKE,kBAAmB10B,KAAKmE,QAAQgc,UAAUqU,KAAKsH,SAG9Lv6B,EAAKgtC,kBAAoBhtC,EAAK+yB,UAE9B/yB,EAAK+sC,cAAgBtuC,KAAKmE,QAAQmqC,cAGlC/sC,EAAKkoC,QAAQ6B,OAAS0B,EAAiBhtC,KAAKsrC,OAAQ/pC,EAAKkoC,QAAQtD,UAAW5kC,EAAK+yB,WAEjF/yB,EAAKkoC,QAAQ6B,OAAOkD,SAAWxuC,KAAKmE,QAAQmqC,cAAgB,QAAU,WAGtE/sC,EAAOssC,EAAa7tC,KAAKmgB,UAAW5e,GAI/BvB,KAAKgE,MAAMyqC,UAIdzuC,KAAKmE,QAAQuqC,SAASntC,IAHtBvB,KAAKgE,MAAMyqC,WAAY,EACvBzuC,KAAKmE,QAAQwqC,SAASptC,KAY1B,SAASqtC,EAAkBzuB,EAAW0uB,GACpC,OAAO1uB,EAAUsgB,MAAK,SAAUt4B,GAC9B,IAAI1D,EAAO0D,EAAK1D,KACZgwB,EAAUtsB,EAAKssB,QACnB,OAAOA,GAAWhwB,IAASoqC,KAW/B,SAASC,EAAyB3J,GAIhC,IAHA,IAAI4J,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAY7J,EAAS8J,OAAO,GAAGC,cAAgB/J,EAASl/B,MAAM,GAEzDyD,EAAI,EAAGA,EAAIqlC,EAASloC,OAAQ6C,IAAK,CACxC,IAAI8kB,EAASugB,EAASrlC,GAClBylC,EAAU3gB,EAAS,GAAKA,EAASwgB,EAAY7J,EACjD,GAA4C,qBAAjCvc,SAASkd,KAAK7O,MAAMkY,GAC7B,OAAOA,EAGX,OAAO,KAQT,SAASjb,IAsBP,OArBAl0B,KAAKgE,MAAMkqC,aAAc,EAGrBU,EAAkB5uC,KAAKmgB,UAAW,gBACpCngB,KAAKsrC,OAAO8D,gBAAgB,eAC5BpvC,KAAKsrC,OAAOrU,MAAMuX,SAAW,GAC7BxuC,KAAKsrC,OAAOrU,MAAM9rB,IAAM,GACxBnL,KAAKsrC,OAAOrU,MAAMtrB,KAAO,GACzB3L,KAAKsrC,OAAOrU,MAAMvrB,MAAQ,GAC1B1L,KAAKsrC,OAAOrU,MAAM/rB,OAAS,GAC3BlL,KAAKsrC,OAAOrU,MAAMoY,WAAa,GAC/BrvC,KAAKsrC,OAAOrU,MAAM6X,EAAyB,cAAgB,IAG7D9uC,KAAKsvC,wBAIDtvC,KAAKmE,QAAQorC,iBACfvvC,KAAKsrC,OAAO3F,WAAW6J,YAAYxvC,KAAKsrC,QAEnCtrC,KAQT,SAASyvC,EAAUzb,GACjB,IAAIqR,EAAgBrR,EAAQqR,cAC5B,OAAOA,EAAgBA,EAAcC,YAAcjB,OAGrD,SAASqL,EAAsBjF,EAAcl6B,EAAOlM,EAAUsrC,GAC5D,IAAIC,EAAmC,SAA1BnF,EAAa/E,SACtBj8B,EAASmmC,EAASnF,EAAapF,cAAcC,YAAcmF,EAC/DhhC,EAAOomC,iBAAiBt/B,EAAOlM,EAAU,CAAEyrC,SAAS,IAE/CF,GACHF,EAAsB7J,EAAgBp8B,EAAOk8B,YAAap1B,EAAOlM,EAAUsrC,GAE7EA,EAAcpmC,KAAKE,GASrB,SAASsmC,EAAoB5J,EAAWhiC,EAASH,EAAOgsC,GAEtDhsC,EAAMgsC,YAAcA,EACpBP,EAAUtJ,GAAW0J,iBAAiB,SAAU7rC,EAAMgsC,YAAa,CAAEF,SAAS,IAG9E,IAAIG,EAAgBpK,EAAgBM,GAKpC,OAJAuJ,EAAsBO,EAAe,SAAUjsC,EAAMgsC,YAAahsC,EAAM2rC,eACxE3rC,EAAMisC,cAAgBA,EACtBjsC,EAAMksC,eAAgB,EAEflsC,EAST,SAASmsC,IACFnwC,KAAKgE,MAAMksC,gBACdlwC,KAAKgE,MAAQ+rC,EAAoB/vC,KAAKmmC,UAAWnmC,KAAKmE,QAASnE,KAAKgE,MAAOhE,KAAKo0B,iBAUpF,SAASgc,EAAqBjK,EAAWniC,GAcvC,OAZAyrC,EAAUtJ,GAAWkK,oBAAoB,SAAUrsC,EAAMgsC,aAGzDhsC,EAAM2rC,cAAc/lC,SAAQ,SAAUH,GACpCA,EAAO4mC,oBAAoB,SAAUrsC,EAAMgsC,gBAI7ChsC,EAAMgsC,YAAc,KACpBhsC,EAAM2rC,cAAgB,GACtB3rC,EAAMisC,cAAgB,KACtBjsC,EAAMksC,eAAgB,EACflsC,EAUT,SAASsrC,KACHtvC,KAAKgE,MAAMksC,gBACbI,qBAAqBtwC,KAAKo0B,gBAC1Bp0B,KAAKgE,MAAQosC,EAAqBpwC,KAAKmmC,UAAWnmC,KAAKgE,QAW3D,SAASusC,GAAU7oC,GACjB,MAAa,KAANA,IAAa8oC,MAAMzH,WAAWrhC,KAAO+oC,SAAS/oC,GAWvD,SAASgpC,GAAU1c,EAASgH,GAC1Bh2B,OAAOgE,KAAKgyB,GAAQpxB,SAAQ,SAAUsH,GACpC,IAAIy/B,EAAO,IAEkE,IAAzE,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQv6B,QAAQlF,IAAgBq/B,GAAUvV,EAAO9pB,MACjGy/B,EAAO,MAET3c,EAAQiD,MAAM/lB,GAAQ8pB,EAAO9pB,GAAQy/B,KAYzC,SAASC,GAAc5c,EAASoa,GAC9BppC,OAAOgE,KAAKolC,GAAYxkC,SAAQ,SAAUsH,GACxC,IAAInR,EAAQquC,EAAWl9B,IACT,IAAVnR,EACFi0B,EAAQ6c,aAAa3/B,EAAMk9B,EAAWl9B,IAEtC8iB,EAAQob,gBAAgBl+B,MAc9B,SAAS4/B,GAAWvvC,GAgBlB,OAXAmvC,GAAUnvC,EAAK62B,SAASkT,OAAQ/pC,EAAKy5B,QAIrC4V,GAAcrvC,EAAK62B,SAASkT,OAAQ/pC,EAAK6sC,YAGrC7sC,EAAKwvC,cAAgB/rC,OAAOgE,KAAKzH,EAAK4sC,aAAatnC,QACrD6pC,GAAUnvC,EAAKwvC,aAAcxvC,EAAK4sC,aAG7B5sC,EAaT,SAASyvC,GAAiB7K,EAAWmF,EAAQnnC,EAAS8sC,EAAiBjtC,GAErE,IAAIipC,EAAmBX,EAAoBtoC,EAAOsnC,EAAQnF,EAAWhiC,EAAQmqC,eAKzEha,EAAYsX,EAAqBznC,EAAQmwB,UAAW2Y,EAAkB3B,EAAQnF,EAAWhiC,EAAQgc,UAAUqU,KAAKE,kBAAmBvwB,EAAQgc,UAAUqU,KAAKsH,SAQ9J,OANAwP,EAAOuF,aAAa,cAAevc,GAInCoc,GAAUpF,EAAQ,CAAEkD,SAAUrqC,EAAQmqC,cAAgB,QAAU,aAEzDnqC,EAsBT,SAAS+sC,GAAkB3vC,EAAM4vC,GAC/B,IAAIC,EAAgB7vC,EAAKkoC,QACrB6B,EAAS8F,EAAc9F,OACvBnF,EAAYiL,EAAcjL,UAC1BkL,EAAQ5uC,KAAK4uC,MACb3uC,EAAQD,KAAKC,MAEb4uC,EAAU,SAAiBnkB,GAC7B,OAAOA,GAGLokB,EAAiBF,EAAMlL,EAAU56B,OACjCimC,EAAcH,EAAM/F,EAAO//B,OAE3BkmC,GAA4D,IAA/C,CAAC,OAAQ,SAASr7B,QAAQ7U,EAAK+yB,WAC5Cod,GAA+C,IAAjCnwC,EAAK+yB,UAAUle,QAAQ,KACrCu7B,EAAkBJ,EAAiB,IAAMC,EAAc,EACvDI,EAAeL,EAAiB,IAAM,GAAKC,EAAc,IAAM,EAE/DK,EAAuBV,EAAwBM,GAAcC,GAAeC,EAAkBN,EAAQ3uC,EAAjE4uC,EACrCQ,EAAqBX,EAAwBE,EAAVC,EAEvC,MAAO,CACL3lC,KAAMkmC,EAAoBD,IAAiBF,GAAeP,EAAc7F,EAAO3/B,KAAO,EAAI2/B,EAAO3/B,MACjGR,IAAK2mC,EAAkBxG,EAAOngC,KAC9BD,OAAQ4mC,EAAkBxG,EAAOpgC,QACjCQ,MAAOmmC,EAAoBvG,EAAO5/B,QAItC,IAAIqmC,GAAY3N,GAAa,WAAWpb,KAAKsb,UAAUzO,WASvD,SAASmc,GAAazwC,EAAM4C,GAC1B,IAAIsoC,EAAItoC,EAAQsoC,EACZE,EAAIxoC,EAAQwoC,EACZrB,EAAS/pC,EAAKkoC,QAAQ6B,OAItB2G,EAA8Bp8B,EAAKtU,EAAK62B,SAASjY,WAAW,SAAUuoB,GACxE,MAAyB,eAAlBA,EAASjkC,QACfytC,qBACiCnrC,IAAhCkrC,GACFjE,QAAQn9B,KAAK,iIAEf,IAAIqhC,OAAkDnrC,IAAhCkrC,EAA4CA,EAA8B9tC,EAAQ+tC,gBAEpGpL,EAAeH,EAAgBplC,EAAK62B,SAASkT,QAC7C6G,EAAmBzI,EAAsB5C,GAGzC9L,EAAS,CACXwT,SAAUlD,EAAOkD,UAGf/E,EAAUyH,GAAkB3vC,EAAM8iC,OAAO+N,iBAAmB,IAAML,IAElElJ,EAAc,WAAN4D,EAAiB,MAAQ,SACjC3D,EAAc,UAAN6D,EAAgB,OAAS,QAKjC0F,EAAmBvD,EAAyB,aAW5CnjC,OAAO,EACPR,OAAM,EAqBV,GAhBIA,EAJU,WAAV09B,EAG4B,SAA1B/B,EAAapB,UACRoB,EAAagD,aAAeL,EAAQv+B,QAEpCinC,EAAiB3mC,OAASi+B,EAAQv+B,OAGrCu+B,EAAQt+B,IAIZQ,EAFU,UAAVm9B,EAC4B,SAA1BhC,EAAapB,UACPoB,EAAa+C,YAAcJ,EAAQ/9B,OAEnCymC,EAAiB5mC,MAAQk+B,EAAQ/9B,MAGpC+9B,EAAQ99B,KAEbumC,GAAmBG,EACrBrX,EAAOqX,GAAoB,eAAiB1mC,EAAO,OAASR,EAAM,SAClE6vB,EAAO6N,GAAS,EAChB7N,EAAO8N,GAAS,EAChB9N,EAAOqU,WAAa,gBACf,CAEL,IAAIiD,EAAsB,WAAVzJ,GAAsB,EAAI,EACtC0J,EAAuB,UAAVzJ,GAAqB,EAAI,EAC1C9N,EAAO6N,GAAS19B,EAAMmnC,EACtBtX,EAAO8N,GAASn9B,EAAO4mC,EACvBvX,EAAOqU,WAAaxG,EAAQ,KAAOC,EAIrC,IAAIsF,EAAa,CACf,cAAe7sC,EAAK+yB,WAQtB,OAJA/yB,EAAK6sC,WAAa/E,EAAS,GAAI+E,EAAY7sC,EAAK6sC,YAChD7sC,EAAKy5B,OAASqO,EAAS,GAAIrO,EAAQz5B,EAAKy5B,QACxCz5B,EAAK4sC,YAAc9E,EAAS,GAAI9nC,EAAKkoC,QAAQ+I,MAAOjxC,EAAK4sC,aAElD5sC,EAaT,SAASkxC,GAAmBtyB,EAAWuyB,EAAgBC,GACrD,IAAIC,EAAa/8B,EAAKsK,GAAW,SAAUhY,GACzC,IAAI1D,EAAO0D,EAAK1D,KAChB,OAAOA,IAASiuC,KAGdG,IAAeD,GAAczyB,EAAUsgB,MAAK,SAAUiI,GACxD,OAAOA,EAASjkC,OAASkuC,GAAiBjK,EAASjU,SAAWiU,EAASnB,MAAQqL,EAAWrL,SAG5F,IAAKsL,EAAY,CACf,IAAIC,EAAc,IAAMJ,EAAiB,IACrCK,EAAY,IAAMJ,EAAgB,IACtC3E,QAAQn9B,KAAKkiC,EAAY,4BAA8BD,EAAc,4DAA8DA,EAAc,KAEnJ,OAAOD,EAUT,SAASL,GAAMjxC,EAAM4C,GACnB,IAAI6uC,EAGJ,IAAKP,GAAmBlxC,EAAK62B,SAASjY,UAAW,QAAS,gBACxD,OAAO5e,EAGT,IAAIwvC,EAAe5sC,EAAQ6vB,QAG3B,GAA4B,kBAAjB+c,GAIT,GAHAA,EAAexvC,EAAK62B,SAASkT,OAAO2H,cAAclC,IAG7CA,EACH,OAAOxvC,OAKT,IAAKA,EAAK62B,SAASkT,OAAOjyB,SAAS03B,GAEjC,OADA/C,QAAQn9B,KAAK,iEACNtP,EAIX,IAAI+yB,EAAY/yB,EAAK+yB,UAAUnZ,MAAM,KAAK,GACtCi2B,EAAgB7vC,EAAKkoC,QACrB6B,EAAS8F,EAAc9F,OACvBnF,EAAYiL,EAAcjL,UAE1BsL,GAAuD,IAA1C,CAAC,OAAQ,SAASr7B,QAAQke,GAEvC4e,EAAMzB,EAAa,SAAW,QAC9B0B,EAAkB1B,EAAa,MAAQ,OACvCvJ,EAAOiL,EAAgBhZ,cACvBiZ,EAAU3B,EAAa,OAAS,MAChC4B,EAAS5B,EAAa,SAAW,QACjC6B,EAAmB9G,EAAcuE,GAAcmC,GAQ/C/M,EAAUkN,GAAUC,EAAmBhI,EAAOpD,KAChD3mC,EAAKkoC,QAAQ6B,OAAOpD,IAASoD,EAAOpD,IAAS/B,EAAUkN,GAAUC,IAG/DnN,EAAU+B,GAAQoL,EAAmBhI,EAAO+H,KAC9C9xC,EAAKkoC,QAAQ6B,OAAOpD,IAAS/B,EAAU+B,GAAQoL,EAAmBhI,EAAO+H,IAE3E9xC,EAAKkoC,QAAQ6B,OAAS9B,EAAcjoC,EAAKkoC,QAAQ6B,QAGjD,IAAIiI,EAASpN,EAAU+B,GAAQ/B,EAAU+M,GAAO,EAAII,EAAmB,EAInE/N,EAAML,EAAyB3jC,EAAK62B,SAASkT,QAC7CkI,EAAmBzK,WAAWxD,EAAI,SAAW4N,IAC7CM,EAAmB1K,WAAWxD,EAAI,SAAW4N,EAAkB,UAC/DO,EAAYH,EAAShyC,EAAKkoC,QAAQ6B,OAAOpD,GAAQsL,EAAmBC,EAQxE,OALAC,EAAYjxC,KAAKolB,IAAIplB,KAAKI,IAAIyoC,EAAO4H,GAAOI,EAAkBI,GAAY,GAE1EnyC,EAAKwvC,aAAeA,EACpBxvC,EAAKkoC,QAAQ+I,OAASQ,EAAsB,GAAI/oC,EAAe+oC,EAAqB9K,EAAMzlC,KAAK4uC,MAAMqC,IAAazpC,EAAe+oC,EAAqBI,EAAS,IAAKJ,GAE7JzxC,EAUT,SAASoyC,GAAqBtH,GAC5B,MAAkB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,EAkCT,IAAIuH,GAAa,CAAC,aAAc,OAAQ,WAAY,YAAa,MAAO,UAAW,cAAe,QAAS,YAAa,aAAc,SAAU,eAAgB,WAAY,OAAQ,cAGhLC,GAAkBD,GAAW3tC,MAAM,GAYvC,SAAS6tC,GAAUxf,GACjB,IAAIyf,EAAU9yC,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,IAAmBA,UAAU,GAEzEoC,EAAQwwC,GAAgBz9B,QAAQke,GAChCmZ,EAAMoG,GAAgB5tC,MAAM5C,EAAQ,GAAG0H,OAAO8oC,GAAgB5tC,MAAM,EAAG5C,IAC3E,OAAO0wC,EAAUtG,EAAIx3B,UAAYw3B,EAGnC,IAAIuG,GAAY,CACdC,KAAM,OACNC,UAAW,YACXC,iBAAkB,oBAUpB,SAAS3f,GAAKjzB,EAAM4C,GAElB,GAAIyqC,EAAkBrtC,EAAK62B,SAASjY,UAAW,SAC7C,OAAO5e,EAGT,GAAIA,EAAK8sC,SAAW9sC,EAAK+yB,YAAc/yB,EAAKgtC,kBAE1C,OAAOhtC,EAGT,IAAIgqC,EAAaF,EAAc9pC,EAAK62B,SAASkT,OAAQ/pC,EAAK62B,SAAS+N,UAAWhiC,EAAQ23B,QAAS33B,EAAQuwB,kBAAmBnzB,EAAK+sC,eAE3Hha,EAAY/yB,EAAK+yB,UAAUnZ,MAAM,KAAK,GACtCi5B,EAAoBvH,EAAqBvY,GACzC+X,EAAY9qC,EAAK+yB,UAAUnZ,MAAM,KAAK,IAAM,GAE5Ck5B,EAAY,GAEhB,OAAQlwC,EAAQmwC,UACd,KAAKN,GAAUC,KACbI,EAAY,CAAC/f,EAAW8f,GACxB,MACF,KAAKJ,GAAUE,UACbG,EAAYP,GAAUxf,GACtB,MACF,KAAK0f,GAAUG,iBACbE,EAAYP,GAAUxf,GAAW,GACjC,MACF,QACE+f,EAAYlwC,EAAQmwC,SAyDxB,OAtDAD,EAAUzqC,SAAQ,SAAU2E,EAAMlL,GAChC,GAAIixB,IAAc/lB,GAAQ8lC,EAAUxtC,SAAWxD,EAAQ,EACrD,OAAO9B,EAGT+yB,EAAY/yB,EAAK+yB,UAAUnZ,MAAM,KAAK,GACtCi5B,EAAoBvH,EAAqBvY,GAEzC,IAAI6Y,EAAgB5rC,EAAKkoC,QAAQ6B,OAC7BiJ,EAAahzC,EAAKkoC,QAAQtD,UAG1BzjC,EAAQD,KAAKC,MACb8xC,EAA4B,SAAdlgB,GAAwB5xB,EAAMyqC,EAAczhC,OAAShJ,EAAM6xC,EAAW5oC,OAAuB,UAAd2oB,GAAyB5xB,EAAMyqC,EAAcxhC,MAAQjJ,EAAM6xC,EAAW7oC,QAAwB,QAAd4oB,GAAuB5xB,EAAMyqC,EAAcjiC,QAAUxI,EAAM6xC,EAAWppC,MAAsB,WAAdmpB,GAA0B5xB,EAAMyqC,EAAchiC,KAAOzI,EAAM6xC,EAAWrpC,QAEjUupC,EAAgB/xC,EAAMyqC,EAAcxhC,MAAQjJ,EAAM6oC,EAAW5/B,MAC7D+oC,EAAiBhyC,EAAMyqC,EAAczhC,OAAShJ,EAAM6oC,EAAW7/B,OAC/DipC,EAAejyC,EAAMyqC,EAAchiC,KAAOzI,EAAM6oC,EAAWpgC,KAC3DypC,EAAkBlyC,EAAMyqC,EAAcjiC,QAAUxI,EAAM6oC,EAAWrgC,QAEjE2pC,EAAoC,SAAdvgB,GAAwBmgB,GAA+B,UAAdngB,GAAyBogB,GAAgC,QAAdpgB,GAAuBqgB,GAA8B,WAAdrgB,GAA0BsgB,EAG3KnD,GAAuD,IAA1C,CAAC,MAAO,UAAUr7B,QAAQke,GAGvCwgB,IAA0B3wC,EAAQ4wC,iBAAmBtD,GAA4B,UAAdpF,GAAyBoI,GAAiBhD,GAA4B,QAAdpF,GAAuBqI,IAAmBjD,GAA4B,UAAdpF,GAAyBsI,IAAiBlD,GAA4B,QAAdpF,GAAuBuI,GAGlQI,IAA8B7wC,EAAQ8wC,0BAA4BxD,GAA4B,UAAdpF,GAAyBqI,GAAkBjD,GAA4B,QAAdpF,GAAuBoI,IAAkBhD,GAA4B,UAAdpF,GAAyBuI,IAAoBnD,GAA4B,QAAdpF,GAAuBsI,GAElRO,EAAmBJ,GAAyBE,GAE5CR,GAAeK,GAAuBK,KAExC3zC,EAAK8sC,SAAU,GAEXmG,GAAeK,KACjBvgB,EAAY+f,EAAUhxC,EAAQ,IAG5B6xC,IACF7I,EAAYsH,GAAqBtH,IAGnC9qC,EAAK+yB,UAAYA,GAAa+X,EAAY,IAAMA,EAAY,IAI5D9qC,EAAKkoC,QAAQ6B,OAASjC,EAAS,GAAI9nC,EAAKkoC,QAAQ6B,OAAQ0B,EAAiBzrC,EAAK62B,SAASkT,OAAQ/pC,EAAKkoC,QAAQtD,UAAW5kC,EAAK+yB,YAE5H/yB,EAAOssC,EAAatsC,EAAK62B,SAASjY,UAAW5e,EAAM,YAGhDA,EAUT,SAAS4zC,GAAa5zC,GACpB,IAAI6vC,EAAgB7vC,EAAKkoC,QACrB6B,EAAS8F,EAAc9F,OACvBnF,EAAYiL,EAAcjL,UAE1B7R,EAAY/yB,EAAK+yB,UAAUnZ,MAAM,KAAK,GACtCzY,EAAQD,KAAKC,MACb+uC,GAAuD,IAA1C,CAAC,MAAO,UAAUr7B,QAAQke,GACvC4T,EAAOuJ,EAAa,QAAU,SAC9B4B,EAAS5B,EAAa,OAAS,MAC/BlE,EAAckE,EAAa,QAAU,SASzC,OAPInG,EAAOpD,GAAQxlC,EAAMyjC,EAAUkN,MACjC9xC,EAAKkoC,QAAQ6B,OAAO+H,GAAU3wC,EAAMyjC,EAAUkN,IAAW/H,EAAOiC,IAE9DjC,EAAO+H,GAAU3wC,EAAMyjC,EAAU+B,MACnC3mC,EAAKkoC,QAAQ6B,OAAO+H,GAAU3wC,EAAMyjC,EAAU+B,KAGzC3mC,EAeT,SAAS6zC,GAAQ5tC,EAAK+lC,EAAaJ,EAAeF,GAEhD,IAAI9xB,EAAQ3T,EAAIomC,MAAM,6BAClB7tC,GAASob,EAAM,GACfw1B,EAAOx1B,EAAM,GAGjB,IAAKpb,EACH,OAAOyH,EAGT,GAA0B,IAAtBmpC,EAAKv6B,QAAQ,KAAY,CAC3B,IAAI4d,OAAU,EACd,OAAQ2c,GACN,IAAK,KACH3c,EAAUmZ,EACV,MACF,IAAK,IACL,IAAK,KACL,QACEnZ,EAAUiZ,EAGd,IAAI3E,EAAOkB,EAAcxV,GACzB,OAAOsU,EAAKiF,GAAe,IAAMxtC,EAC5B,GAAa,OAAT4wC,GAA0B,OAATA,EAAe,CAEzC,IAAIp9B,OAAO,EAMX,OAJEA,EADW,OAATo9B,EACKluC,KAAKolB,IAAIe,SAASge,gBAAgBkD,aAAczF,OAAO4G,aAAe,GAEtExoC,KAAKolB,IAAIe,SAASge,gBAAgBiD,YAAaxF,OAAO2G,YAAc,GAEtEz3B,EAAO,IAAMxT,EAIpB,OAAOA,EAeX,SAASs1C,GAAY58B,EAAQ00B,EAAeF,EAAkBqI,GAC5D,IAAI7L,EAAU,CAAC,EAAG,GAKd8L,GAA0D,IAA9C,CAAC,QAAS,QAAQn/B,QAAQk/B,GAItCE,EAAY/8B,EAAO0C,MAAM,WAAW3E,KAAI,SAAUi/B,GACpD,OAAOA,EAAK3vB,UAKV4vB,EAAUF,EAAUp/B,QAAQP,EAAK2/B,GAAW,SAAUC,GACxD,OAAgC,IAAzBA,EAAKE,OAAO,YAGjBH,EAAUE,KAAiD,IAArCF,EAAUE,GAASt/B,QAAQ,MACnD43B,QAAQn9B,KAAK,gFAKf,IAAI+kC,EAAa,cACbC,GAAmB,IAAbH,EAAiB,CAACF,EAAUvvC,MAAM,EAAGyvC,GAAS3qC,OAAO,CAACyqC,EAAUE,GAASv6B,MAAMy6B,GAAY,KAAM,CAACJ,EAAUE,GAASv6B,MAAMy6B,GAAY,IAAI7qC,OAAOyqC,EAAUvvC,MAAMyvC,EAAU,KAAO,CAACF,GAqC9L,OAlCAK,EAAMA,EAAIr/B,KAAI,SAAUs/B,EAAIzyC,GAE1B,IAAIkqC,GAAyB,IAAVlqC,GAAekyC,EAAYA,GAAa,SAAW,QAClEQ,GAAoB,EACxB,OAAOD,EAGNlpB,QAAO,SAAU8T,EAAGwL,GACnB,MAAwB,KAApBxL,EAAEA,EAAE75B,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKuP,QAAQ81B,IAC/CxL,EAAEA,EAAE75B,OAAS,GAAKqlC,EAClB6J,GAAoB,EACbrV,GACEqV,GACTrV,EAAEA,EAAE75B,OAAS,IAAMqlC,EACnB6J,GAAoB,EACbrV,GAEAA,EAAE31B,OAAOmhC,KAEjB,IAEF11B,KAAI,SAAUhP,GACb,OAAO4tC,GAAQ5tC,EAAK+lC,EAAaJ,EAAeF,SAKpD4I,EAAIjsC,SAAQ,SAAUksC,EAAIzyC,GACxByyC,EAAGlsC,SAAQ,SAAU6rC,EAAMO,GACrBzF,GAAUkF,KACZhM,EAAQpmC,IAAUoyC,GAA2B,MAAnBK,EAAGE,EAAS,IAAc,EAAI,UAIvDvM,EAYT,SAAShxB,GAAOlX,EAAM4G,GACpB,IAAIsQ,EAAStQ,EAAKsQ,OACd6b,EAAY/yB,EAAK+yB,UACjB8c,EAAgB7vC,EAAKkoC,QACrB6B,EAAS8F,EAAc9F,OACvBnF,EAAYiL,EAAcjL,UAE1BmP,EAAgBhhB,EAAUnZ,MAAM,KAAK,GAErCsuB,OAAU,EAsBd,OApBEA,EADE8G,IAAW93B,GACH,EAAEA,EAAQ,GAEV48B,GAAY58B,EAAQ6yB,EAAQnF,EAAWmP,GAG7B,SAAlBA,GACFhK,EAAOngC,KAAOs+B,EAAQ,GACtB6B,EAAO3/B,MAAQ89B,EAAQ,IACI,UAAlB6L,GACThK,EAAOngC,KAAOs+B,EAAQ,GACtB6B,EAAO3/B,MAAQ89B,EAAQ,IACI,QAAlB6L,GACThK,EAAO3/B,MAAQ89B,EAAQ,GACvB6B,EAAOngC,KAAOs+B,EAAQ,IACK,WAAlB6L,IACThK,EAAO3/B,MAAQ89B,EAAQ,GACvB6B,EAAOngC,KAAOs+B,EAAQ,IAGxBloC,EAAK+pC,OAASA,EACP/pC,EAUT,SAASozB,GAAgBpzB,EAAM4C,GAC7B,IAAIuwB,EAAoBvwB,EAAQuwB,mBAAqBiS,EAAgBplC,EAAK62B,SAASkT,QAK/E/pC,EAAK62B,SAAS+N,YAAczR,IAC9BA,EAAoBiS,EAAgBjS,IAMtC,IAAIuhB,EAAgBnH,EAAyB,aACzCoH,EAAe30C,EAAK62B,SAASkT,OAAOrU,MACpC9rB,EAAM+qC,EAAa/qC,IACnBQ,EAAOuqC,EAAavqC,KACpByrB,EAAY8e,EAAaD,GAE7BC,EAAa/qC,IAAM,GACnB+qC,EAAavqC,KAAO,GACpBuqC,EAAaD,GAAiB,GAE9B,IAAI1K,EAAaF,EAAc9pC,EAAK62B,SAASkT,OAAQ/pC,EAAK62B,SAAS+N,UAAWhiC,EAAQ23B,QAASpH,EAAmBnzB,EAAK+sC,eAIvH4H,EAAa/qC,IAAMA,EACnB+qC,EAAavqC,KAAOA,EACpBuqC,EAAaD,GAAiB7e,EAE9BjzB,EAAQonC,WAAaA,EAErB,IAAIhE,EAAQpjC,EAAQgyC,SAChB7K,EAAS/pC,EAAKkoC,QAAQ6B,OAEtBzwB,EAAQ,CACVu7B,QAAS,SAAiB9hB,GACxB,IAAIv0B,EAAQurC,EAAOhX,GAInB,OAHIgX,EAAOhX,GAAaiX,EAAWjX,KAAenwB,EAAQkyC,sBACxDt2C,EAAQ0C,KAAKolB,IAAIyjB,EAAOhX,GAAYiX,EAAWjX,KAE1CrqB,EAAe,GAAIqqB,EAAWv0B,IAEvCu2C,UAAW,SAAmBhiB,GAC5B,IAAI+Y,EAAyB,UAAd/Y,EAAwB,OAAS,MAC5Cv0B,EAAQurC,EAAO+B,GAInB,OAHI/B,EAAOhX,GAAaiX,EAAWjX,KAAenwB,EAAQkyC,sBACxDt2C,EAAQ0C,KAAKI,IAAIyoC,EAAO+B,GAAW9B,EAAWjX,IAA4B,UAAdA,EAAwBgX,EAAO//B,MAAQ+/B,EAAO9/B,UAErGvB,EAAe,GAAIojC,EAAUttC,KAWxC,OAPAwnC,EAAM39B,SAAQ,SAAU0qB,GACtB,IAAI4T,GAA+C,IAAxC,CAAC,OAAQ,OAAO9xB,QAAQke,GAAoB,UAAY,YACnEgX,EAASjC,EAAS,GAAIiC,EAAQzwB,EAAMqtB,GAAM5T,OAG5C/yB,EAAKkoC,QAAQ6B,OAASA,EAEf/pC,EAUT,SAASg1C,GAAMh1C,GACb,IAAI+yB,EAAY/yB,EAAK+yB,UACjBghB,EAAgBhhB,EAAUnZ,MAAM,KAAK,GACrCq7B,EAAiBliB,EAAUnZ,MAAM,KAAK,GAG1C,GAAIq7B,EAAgB,CAClB,IAAIpF,EAAgB7vC,EAAKkoC,QACrBtD,EAAYiL,EAAcjL,UAC1BmF,EAAS8F,EAAc9F,OAEvBmG,GAA2D,IAA9C,CAAC,SAAU,OAAOr7B,QAAQk/B,GACvCpN,EAAOuJ,EAAa,OAAS,MAC7BlE,EAAckE,EAAa,QAAU,SAErCgF,EAAe,CACjBvvC,MAAO+C,EAAe,GAAIi+B,EAAM/B,EAAU+B,IAC1C/gC,IAAK8C,EAAe,GAAIi+B,EAAM/B,EAAU+B,GAAQ/B,EAAUoH,GAAejC,EAAOiC,KAGlFhsC,EAAKkoC,QAAQ6B,OAASjC,EAAS,GAAIiC,EAAQmL,EAAaD,IAG1D,OAAOj1C,EAUT,SAASyzB,GAAKzzB,GACZ,IAAKkxC,GAAmBlxC,EAAK62B,SAASjY,UAAW,OAAQ,mBACvD,OAAO5e,EAGT,IAAIsqC,EAAUtqC,EAAKkoC,QAAQtD,UACvBuQ,EAAQ7gC,EAAKtU,EAAK62B,SAASjY,WAAW,SAAUuoB,GAClD,MAAyB,oBAAlBA,EAASjkC,QACf8mC,WAEH,GAAIM,EAAQ3gC,OAASwrC,EAAMvrC,KAAO0gC,EAAQlgC,KAAO+qC,EAAMhrC,OAASmgC,EAAQ1gC,IAAMurC,EAAMxrC,QAAU2gC,EAAQngC,MAAQgrC,EAAM/qC,KAAM,CAExH,IAAkB,IAAdpK,EAAKyzB,KACP,OAAOzzB,EAGTA,EAAKyzB,MAAO,EACZzzB,EAAK6sC,WAAW,uBAAyB,OACpC,CAEL,IAAkB,IAAd7sC,EAAKyzB,KACP,OAAOzzB,EAGTA,EAAKyzB,MAAO,EACZzzB,EAAK6sC,WAAW,wBAAyB,EAG3C,OAAO7sC,EAUT,SAASo1C,GAAMp1C,GACb,IAAI+yB,EAAY/yB,EAAK+yB,UACjBghB,EAAgBhhB,EAAUnZ,MAAM,KAAK,GACrCi2B,EAAgB7vC,EAAKkoC,QACrB6B,EAAS8F,EAAc9F,OACvBnF,EAAYiL,EAAcjL,UAE1BiH,GAAwD,IAA9C,CAAC,OAAQ,SAASh3B,QAAQk/B,GAEpCsB,GAA6D,IAA5C,CAAC,MAAO,QAAQxgC,QAAQk/B,GAO7C,OALAhK,EAAO8B,EAAU,OAAS,OAASjH,EAAUmP,IAAkBsB,EAAiBtL,EAAO8B,EAAU,QAAU,UAAY,GAEvH7rC,EAAK+yB,UAAYuY,EAAqBvY,GACtC/yB,EAAKkoC,QAAQ6B,OAAS9B,EAAc8B,GAE7B/pC,EAwBT,IAAI4e,GAAY,CASdo2B,MAAO,CAELhP,MAAO,IAEP9S,SAAS,EAETvmB,GAAIqoC,IAyCN99B,OAAQ,CAEN8uB,MAAO,IAEP9S,SAAS,EAETvmB,GAAIuK,GAIJA,OAAQ,GAoBVkc,gBAAiB,CAEf4S,MAAO,IAEP9S,SAAS,EAETvmB,GAAIymB,GAMJwhB,SAAU,CAAC,OAAQ,QAAS,MAAO,UAOnCra,QAAS,EAMTpH,kBAAmB,gBAYrBygB,aAAc,CAEZ5N,MAAO,IAEP9S,SAAS,EAETvmB,GAAIinC,IAaN3C,MAAO,CAELjL,MAAO,IAEP9S,SAAS,EAETvmB,GAAIskC,GAEJxe,QAAS,aAcXQ,KAAM,CAEJ+S,MAAO,IAEP9S,SAAS,EAETvmB,GAAIsmB,GAOJ8f,SAAU,OAKVxY,QAAS,EAOTpH,kBAAmB,WAQnBqgB,gBAAgB,EAQhBE,yBAAyB,GAU3B0B,MAAO,CAELpP,MAAO,IAEP9S,SAAS,EAETvmB,GAAIyoC,IAaN3hB,KAAM,CAEJuS,MAAO,IAEP9S,SAAS,EAETvmB,GAAI8mB,IAkBNgd,aAAc,CAEZzK,MAAO,IAEP9S,SAAS,EAETvmB,GAAI8jC,GAMJE,iBAAiB,EAMjBzF,EAAG,SAMHE,EAAG,SAkBLmE,WAAY,CAEVvJ,MAAO,IAEP9S,SAAS,EAETvmB,GAAI4iC,GAEJ+F,OAAQ7F,GAORkB,qBAAiBnrC,IAuCjB+vC,GAAW,CAKbxiB,UAAW,SAMXga,eAAe,EAMf4B,eAAe,EAOfX,iBAAiB,EAQjBZ,SAAU,aAUVD,SAAU,aAOVvuB,UAAWA,IAeT42B,GAAS,WASX,SAASA,EAAO5Q,EAAWmF,GACzB,IAAIx2B,EAAQ9U,KAERmE,EAAUlD,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,GAClFkoC,EAAenpC,KAAM+2C,GAErB/2C,KAAKo0B,eAAiB,WACpB,OAAO4iB,sBAAsBliC,EAAMm5B,SAIrCjuC,KAAKiuC,OAASvoB,EAAS1lB,KAAKiuC,OAAO5jC,KAAKrK,OAGxCA,KAAKmE,QAAUklC,EAAS,GAAI0N,EAAOD,SAAU3yC,GAG7CnE,KAAKgE,MAAQ,CACXkqC,aAAa,EACbO,WAAW,EACXkB,cAAe,IAIjB3vC,KAAKmmC,UAAYA,GAAaA,EAAU8Q,OAAS9Q,EAAU,GAAKA,EAChEnmC,KAAKsrC,OAASA,GAAUA,EAAO2L,OAAS3L,EAAO,GAAKA,EAGpDtrC,KAAKmE,QAAQgc,UAAY,GACzBnb,OAAOgE,KAAKqgC,EAAS,GAAI0N,EAAOD,SAAS32B,UAAWhc,EAAQgc,YAAYvW,SAAQ,SAAUnF,GACxFqQ,EAAM3Q,QAAQgc,UAAU1b,GAAQ4kC,EAAS,GAAI0N,EAAOD,SAAS32B,UAAU1b,IAAS,GAAIN,EAAQgc,UAAYhc,EAAQgc,UAAU1b,GAAQ,OAIpIzE,KAAKmgB,UAAYnb,OAAOgE,KAAKhJ,KAAKmE,QAAQgc,WAAW3J,KAAI,SAAU/R,GACjE,OAAO4kC,EAAS,CACd5kC,KAAMA,GACLqQ,EAAM3Q,QAAQgc,UAAU1b,OAG5BwnC,MAAK,SAAUvL,EAAGwL,GACjB,OAAOxL,EAAE6G,MAAQ2E,EAAE3E,SAOrBvnC,KAAKmgB,UAAUvW,SAAQ,SAAUqnC,GAC3BA,EAAgBxc,SAAWqQ,EAAWmM,EAAgB4F,SACxD5F,EAAgB4F,OAAO/hC,EAAMqxB,UAAWrxB,EAAMw2B,OAAQx2B,EAAM3Q,QAAS8sC,EAAiBn8B,EAAM9Q,UAKhGhE,KAAKiuC,SAEL,IAAIiC,EAAgBlwC,KAAKmE,QAAQ+rC,cAC7BA,GAEFlwC,KAAKmwC,uBAGPnwC,KAAKgE,MAAMksC,cAAgBA,EAqD7B,OA9CA9G,EAAY2N,EAAQ,CAAC,CACnBltC,IAAK,SACL9J,MAAO,WACL,OAAOkuC,EAAOhJ,KAAKjlC,QAEpB,CACD6J,IAAK,UACL9J,MAAO,WACL,OAAOm0B,EAAQ+Q,KAAKjlC,QAErB,CACD6J,IAAK,uBACL9J,MAAO,WACL,OAAOowC,EAAqBlL,KAAKjlC,QAElC,CACD6J,IAAK,wBACL9J,MAAO,WACL,OAAOuvC,GAAsBrK,KAAKjlC,UA4B/B+2C,EA7HI,GAqJbA,GAAOG,OAA2B,qBAAX7S,OAAyBA,OAASj9B,GAAQ+vC,YACjEJ,GAAOnD,WAAaA,GACpBmD,GAAOD,SAAWA,GAEH,Y,wDCtjFf,sCAAIpmC,EAAJ,wTAEA,SAAS7H,EAAQC,EAAQC,GAAkB,IAAIC,EAAOhE,OAAOgE,KAAKF,GAAS,GAAI9D,OAAOiE,sBAAuB,CAAE,IAAIC,EAAUlE,OAAOiE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOpE,OAAOqE,yBAAyBP,EAAQM,GAAKE,eAAgBN,EAAKO,KAAKvI,MAAMgI,EAAME,GAAY,OAAOF,EAE9U,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIzI,UAAU4F,OAAQ6C,IAAK,CAAE,IAAIC,EAAyB,MAAhB1I,UAAUyI,GAAazI,UAAUyI,GAAK,GAAQA,EAAI,EAAKb,EAAQ7D,OAAO2E,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBL,EAAQI,EAAKF,EAAOE,OAAsB7E,OAAO+E,0BAA6B/E,OAAOgF,iBAAiBP,EAAQzE,OAAO+E,0BAA0BJ,IAAmBd,EAAQ7D,OAAO2E,IAASC,SAAQ,SAAUC,GAAO7E,OAAOiF,eAAeR,EAAQI,EAAK7E,OAAOqE,yBAAyBM,EAAQE,OAAe,OAAOJ,EAE7gB,SAASK,EAAgBI,EAAKL,EAAK9J,GAAiK,OAApJ8J,KAAOK,EAAOlF,OAAOiF,eAAeC,EAAKL,EAAK,CAAE9J,MAAOA,EAAOuJ,YAAY,EAAMa,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO9J,EAAgBmK,EA4B3M,IAAIyG,EAAkB,eAAe,QAAS,CAC5C9L,KAAM,SAEJiM,EAAaH,EAAgBI,MAC7BC,EAAaL,EAAgB/L,MAC7BqM,EAAkBN,EAAgBO,KAClCC,EAAmBR,EAAgBJ,MAInC6mC,EAAc,SAAqBC,GACrC,OAAQA,EAAIplC,UAKVqlC,EAA2B,aAAIl3C,OAAO,CACxCqE,KAAM,QACN6lB,OAAQ,CACNC,OAAQ,CACNnlB,QAEA,WACE,MAAO,MAIbR,MAAO,CACL2yC,SAAU,eAAS,QACnB3vC,GAAI,eAAS,QACb4vC,SAAU,eAAS,QAAmB,GACtCC,SAAU,eAAS,QACnBC,QAAS,eAAS,QAElBL,IAAK,iBACLj/B,SAAU,eAAS,SAErBvY,QAAS,CACP4nB,MAAO,WACL,eAAaznB,KAAKQ,MAAMykB,OAE1B0yB,UAAW,SAAmBpnC,GAE5B,IAAIvQ,KAAKq3C,IAAIplC,SAAb,CAIA,IAAIpN,EAAO0L,EAAM1L,KACb+M,EAAUrB,EAAMqB,QAChBqD,EAAW1E,EAAM0E,SAER,UAATpQ,GAGgB,YAATA,GAAsB+M,IAAY,QAF3C,eAAUrB,GACVvQ,KAAKuF,MAAM,OAAkBgL,IAOX,YAAT1L,GAAuB7E,KAAKw3C,YAEqB,IAAtD,CAAC,OAAS,OAAW,QAAWphC,QAAQxE,IAC1C,eAAUrB,GAEN0E,GAAYrD,IAAY,OAC1B5R,KAAKuF,MAAM,OAAkBgL,GAE7BvQ,KAAKuF,MAAM,OAAiBgL,KAEmC,IAAxD,CAAC,OAAW,OAAY,QAAU6F,QAAQxE,KACnD,eAAUrB,GAEN0E,GAAYrD,IAAY,OAC1B5R,KAAKuF,MAAM,OAAiBgL,GAE5BvQ,KAAKuF,MAAM,OAAiBgL,QAMtCjN,OAAQ,SAAgB4E,GACtB,IAAIN,EAAK5H,KAAK4H,GACVwQ,EAAWpY,KAAKoY,SAChBs/B,EAAU13C,KAAK03C,QACfD,EAAWz3C,KAAKy3C,SAChBF,EAAWv3C,KAAKu3C,SAChBI,EAAY33C,KAAK23C,UACjBC,EAAY53C,KAAKq3C,IACjB30B,EAAQk1B,EAAUl1B,MAClB8H,EAAcotB,EAAUptB,YACxBvY,EAAW2lC,EAAU3lC,SACrB4lC,EAAiBD,EAAUC,eAC3BC,EAAiBF,EAAUE,eAC3BC,EAAsBH,EAAUG,oBAChCC,EAAQ9vC,EAAE,OAAO,CACnBrE,YAAa,WACbwE,MAAO,CAAC,CACN8P,OAAQqS,IAAgBvY,EACxBA,SAAUA,GACT6lC,EACHttB,EAAcxqB,KAAKuqB,OAAO0tB,mBAAqB,MAC/CrzC,MAAO,CACLqN,SAAUA,GAEZnO,MAAO0F,EAAcA,EAAc,GAAIuuC,GAAsB,GAAI,CAC/DnwC,GAAIA,EACJgQ,KAAM,MAENC,SAAUO,EACV,gBAAiBoS,IAAgBvY,EAAW,OAAS,QACrD,eAAgBylC,EAChB,gBAAiBD,EACjB,gBAAiBF,IAEnB5oC,GAAI,CACFoD,MAAO4lC,EACP5/B,QAAS4/B,GAEXxpC,IAAK,QACJ,CAACnO,KAAKq3C,IAAI5/B,cAAc,SAAoBiL,IAC/C,OAAOxa,EAAE,KAAM,CACbrE,YAAa,WACbwE,MAAO,CAACwvC,GACR/zC,MAAO,CACL8T,KAAM,iBAEP,CAACogC,OAIJE,EAAW,eAAK,OAAW,CAAC,OAAQ,WAAY,eACzCtzC,EAAQ,eAAsB,eAAS4E,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUwH,GAAaknC,GAAW,GAAI,CAElJD,mBAAoB,eAAS,QAG7BttB,eAAgB,eAAS,QACzB7e,KAAM,eAAS,QAAmB,GAClCqsC,aAAc,eAAS,QAEvBhxC,IAAK,eAAS,QAAmB,GAEjCwe,KAAM,eAAS,QAAmB,GAClCyyB,SAAU,eAAS,QACnBC,gBAAiB,eAAS,QAC1BzsB,OAAQ,eAAS,QAAmB,GACpC4rB,SAAU,eAAS,QAAmB,GACtCc,WAAY,eAAS,QAAmB,GACxC3qC,IAAK,eAAS,OAAkB,UAC7B,SAGMyT,EAAqB,aAAIhhB,OAAO,CACzCqE,KAAM,QACNoL,OAAQ,CAAC,OAASiB,EAAY,QAC9BshB,QAAS,WACP,MAAO,CACL7H,OAAQvqB,OAGZ4E,MAAOA,EACPrD,KAAM,WACJ,MAAO,CAELg3C,WAAY,eAAUv4C,KAAKiR,IAAmB,GAE9C+Y,KAAM,GAENwuB,eAAgB,KAGpB94C,SAAU,CACRqrB,KAAM,WAEJ,OAAQ/qB,KAAK4rB,QAEf6sB,cAAe,WACb,IAAIhnC,EAAU,GAMd,OAJIzR,KAAK8L,MAAQ9L,KAAKiqB,UACpBxY,EAAQlI,KAAK,cAAe,QAAS,kBAAmB,aAGnD,GAAGwB,OAAO0G,EAAS,CAACzR,KAAKo4C,aAGpC9yC,OAAQoL,EAAS,GAAI5G,EAAgB4G,EAAQO,GAAiB,SAAU2D,EAAUC,GAChF,GAAID,IAAaC,EAAU,CACzBD,EAAW,eAAUA,GAAW,GAChCC,EAAW,eAAUA,EAAU,GAC/B,IAAI6jC,EAAO14C,KAAKgqB,KAAKpV,GAEjB8jC,IAASA,EAAKzmC,SAChBjS,KAAKyrB,YAAYitB,GAGb9jC,EAAWC,EACb7U,KAAK24C,cAEL34C,KAAK44C,cAIT9uC,EAAgB4G,EAAQ,cAAc,SAAoBkE,GAC5D,IAAIvR,GAAS,EAEbrD,KAAKgqB,KAAKpgB,SAAQ,SAAU8uC,EAAMhvC,GAC5BA,IAAMkL,GAAa8jC,EAAKzmC,SAI1BymC,EAAKluB,aAAc,GAHnBkuB,EAAKluB,aAAc,EACnBnnB,EAAQqG,MAMZ1J,KAAKuF,MAAM4L,EAAkB9N,MAC3ByG,EAAgB4G,EAAQ,QAAQ,SAAckE,EAAUC,GAC1D,IAAIC,EAAQ9U,KAIP,eAAW4U,EAAS4B,KAAI,SAAUkiC,GACrC,OAAOA,EAAK,WACV7jC,EAAS2B,KAAI,SAAUkiC,GACzB,OAAOA,EAAK,aAGZ14C,KAAK+U,WAAU,WAGbD,EAAMvP,MAAM,OAAoBqP,EAAS3O,QAAS4O,EAAS5O,eAG7D6D,EAAgB4G,EAAQ,kBAAkB,WAC5C1Q,KAAK64C,gBACHnoC,GACJlL,QAAS,WAEPxF,KAAK84C,WAAa,MAEpB9zB,QAAS,WACPhlB,KAAK+4C,aAAY,IAEnBhyB,cAAe,WACb/mB,KAAK+4C,aAAY,GAEjB/4C,KAAKgqB,KAAO,IAEdnqB,QAAS,CACPurB,YAAa,SAAqBstB,GAC3B,eAAc14C,KAAKw4C,eAAgBE,IACtC14C,KAAKw4C,eAAejvC,KAAKmvC,IAG7BltB,cAAe,SAAuBktB,GACpC14C,KAAKw4C,eAAiBx4C,KAAKw4C,eAAevyC,QAAQkD,QAAO,SAAU0zB,GACjE,OAAOA,IAAO6b,MAIlBK,YAAa,WACX,IAAInjC,EAAS5V,KAET2O,IAAK1N,UAAU4F,OAAS,QAAsBE,IAAjB9F,UAAU,KAAmBA,UAAU,GAIxE,GAHAjB,KAAK84C,YAAc94C,KAAK84C,WAAW7e,aACnCj6B,KAAK84C,WAAa,KAEdnqC,EAAI,CAEN,IAAI4qB,EAAU,WACZ3jB,EAAOb,WAAU,WACf,gBAAU,WACRa,EAAOijC,oBAMb74C,KAAK84C,WAAa,eAAW94C,KAAKQ,MAAM+X,QAASghB,EAAS,CACxDyf,WAAW,EACXC,SAAS,EACT7K,YAAY,EACZ8K,gBAAiB,CAAC,UAIxBC,QAAS,WACP,IAAIC,EAAQp5C,KAAKw4C,eAAervC,QAAO,SAAUuvC,GAC/C,OAEc,IAFPA,EAAKW,UAAUlwC,QAAO,SAAU0zB,GACrC,OAAOA,EAAGpS,UACT5jB,UAGD0gC,EAAQ,GAGZ,GAAI,QAAc6R,EAAMvyC,OAAS,EAAG,CAIlC,IAAI8qB,EAAWynB,EAAM5iC,KAAI,SAAUkiC,GACjC,MAAO,IAAI3tC,OAAO2tC,EAAKxwB,aACtBkF,KAAK,MACRma,EAAQ,eAAU5V,EAAU3xB,KAAKyV,KAAKe,KAAI,SAAUf,GAClD,OAAOA,EAAI7N,MACVuB,OAAO,QAKZ,OAAO,eAAWiwC,GAAO,SAAU1Y,EAAGwL,GACpC,OAAO3E,EAAMnxB,QAAQsqB,EAAExY,UAAYqf,EAAMnxB,QAAQ81B,EAAEhkB,cAGvD2wB,WAAY,WACV,IAAIO,EAAQp5C,KAAKm5C,UAGb/gC,EAAWghC,EAAMhjC,QAAQgjC,EAAMnzC,QAAQgQ,UAAUJ,MAAK,SAAU6iC,GAClE,OAAOA,EAAKluB,cAAgBkuB,EAAKzmC,aAGnC,GAAImG,EAAW,EAAG,CAChB,IAAImgC,EAAav4C,KAAKu4C,WAElBA,GAAca,EAAMvyC,OAEtBuR,EAAWghC,EAAMhjC,QAAQgjC,EAAMnzC,QAAQgQ,UAAUJ,KAAKuhC,IAC7CgC,EAAMb,KAAgBa,EAAMb,GAAYtmC,WAEjDmG,EAAWmgC,GAKXngC,EAAW,IACbA,EAAWghC,EAAMhjC,QAAQgjC,EAAMvjC,KAAKuhC,KAItCgC,EAAMxvC,SAAQ,SAAU8uC,EAAMr1C,GAC5Bq1C,EAAKluB,YAAcnnB,IAAU+U,KAE/BpY,KAAKgqB,KAAOovB,EACZp5C,KAAKu4C,WAAangC,GAIpBkhC,gBAAiB,SAAyBZ,GACxC,OAAQ14C,KAAKQ,MAAM2V,SAAW,IAAIN,MAAK,SAAU0jC,GAC/C,OAAOA,EAAKlC,MAAQqB,MAKxBptB,aAAc,SAAsBotB,GAClC,IAAIc,EAAUx5C,KAAKs5C,gBAAgBZ,GAE/Bc,GAAWA,EAAQC,cACrBD,EAAQC,gBAKZhuB,YAAa,SAAqBitB,GAChC,IAAIH,EAAav4C,KAAKu4C,WAClBa,EAAQp5C,KAAKgqB,KACbviB,GAAS,EAEb,GAAIixC,EAAM,CACR,IAAIr1C,EAAQ+1C,EAAMhjC,QAAQsiC,GAE1B,GAAIr1C,IAAUk1C,GAAcl1C,GAAS,IAAMq1C,EAAKzmC,SAAU,CACxD,IAAIynC,EAAW,IAAI,OAAQ,OAAyB,CAClDxgC,YAAY,EACZC,UAAWnZ,KACXkzB,YAAalzB,KAAKkoB,WAEpBloB,KAAKuF,MAAMm0C,EAAS70C,KAAMxB,EAAOk1C,EAAYmB,GAExCA,EAAStgC,mBACZpZ,KAAKu4C,WAAal1C,EAClBoE,GAAS,IAYf,OAJKA,GAAUzH,KAAKiR,KAAqBsnC,GACvCv4C,KAAKuF,MAAM4L,EAAkBonC,GAGxB9wC,GAITikB,cAAe,SAAuBgtB,GACpC,QAAIA,GAGK14C,KAAKyrB,YAAYzrB,KAAKgqB,KAAK7gB,QAAO,SAAU0zB,GACjD,OAAOA,IAAO6b,KACb7iC,KAAKuhC,KAQZuC,YAAa,SAAqBjB,GAChC,IAAI3iC,EAAS/V,KAGbA,KAAK+U,WAAU,WACb,eAAagB,EAAOujC,gBAAgBZ,QAIxCkB,aAAc,SAAsBvC,EAAK9mC,GACnC,eAAQA,IAAU8mC,GAAOA,EAAI9xC,QAAU8xC,EAAIplC,UAC7ColC,EAAI9xC,MAAM,OAAkBgL,IAIhCspC,SAAU,SAAkBnB,EAAMnoC,GAChCvQ,KAAKyrB,YAAYitB,GACjB14C,KAAK45C,aAAalB,EAAMnoC,IAG1B4a,SAAU,SAAkB1D,GAC1B,IAAIixB,EAAO14C,KAAKgqB,KAAKnU,KAAKuhC,GAEtBp3C,KAAKyrB,YAAYitB,IAASjxB,IAC5BznB,KAAK25C,YAAYjB,GACjB14C,KAAK45C,aAAalB,EAAMjxB,KAI5BkxB,YAAa,SAAqBlxB,GAChC,IAAIqyB,EAAe,eAAQ95C,KAAKu4C,WAAY,GACxCG,EAAO14C,KAAKgqB,KAAK/jB,MAAM,EAAG6zC,GAAc7jC,UAAUJ,KAAKuhC,GAEvDp3C,KAAKyrB,YAAYitB,IAASjxB,IAC5BznB,KAAK25C,YAAYjB,GACjB14C,KAAK45C,aAAalB,EAAMjxB,KAI5BmxB,QAAS,SAAiBnxB,GACxB,IAAIqyB,EAAe,eAAQ95C,KAAKu4C,YAAa,GACzCG,EAAO14C,KAAKgqB,KAAK/jB,MAAM6zC,EAAe,GAAGjkC,KAAKuhC,GAE9Cp3C,KAAKyrB,YAAYitB,IAASjxB,IAC5BznB,KAAK25C,YAAYjB,GACjB14C,KAAK45C,aAAalB,EAAMjxB,KAI5BsyB,QAAS,SAAiBtyB,GACxB,IAAIixB,EAAO14C,KAAKgqB,KAAK/jB,QAAQgQ,UAAUJ,KAAKuhC,GAExCp3C,KAAKyrB,YAAYitB,IAASjxB,IAC5BznB,KAAK25C,YAAYjB,GACjB14C,KAAK45C,aAAalB,EAAMjxB,MAI9BnkB,OAAQ,SAAgB4E,GACtB,IAAI8N,EAAShW,KAET+L,EAAQ/L,KAAK+L,MACbD,EAAO9L,KAAK8L,KACZ3E,EAAMnH,KAAKmH,IACXwP,EAAO3W,KAAK2W,KACZwU,EAAWnrB,KAAKmrB,SAChBrB,EAAY9pB,KAAK8pB,UACjBiwB,EAAU/5C,KAAK+5C,QACfnB,EAAU54C,KAAK44C,QACfpB,EAAWx3C,KAAKw3C,SAChBc,EAAat4C,KAAKs4C,WAClBllC,EAAQpT,KAAKoT,MACbulC,EAAc34C,KAAK24C,YACnB5uB,EAAQ/pB,KAAK+pB,MACbqvB,EAAQp5C,KAAKgqB,KACbC,EAAWjqB,KAAKiqB,SAEhB+vB,EAAaZ,EAAMvjC,MAAK,SAAU6iC,GACpC,OAAOA,EAAKluB,cAAgBkuB,EAAKzmC,YAG/BgoC,EAAeb,EAAMvjC,MAAK,SAAU6iC,GACtC,OAAQA,EAAKzmC,YAGX2E,EAAWwiC,EAAM5iC,KAAI,SAAUkiC,EAAMr1C,GACvC,IAAI62C,EAEAhyB,EAASwwB,EAAKxwB,OAEd9P,EAAW,KAYf,OAVKo/B,IAEHp/B,GAAY,GAERsgC,IAASsB,IAAeA,GAActB,IAASuB,KAEjD7hC,EAAW,OAIRlQ,EAAEovC,EAAa,CACpB1yC,MAAO,CACL2yC,SAAUrvB,EAASA,IAAW,KAC9BtgB,GAAI8wC,EAAK9tB,eAAiB1C,EAASA,EAAO,mBAAqB,MAC/DsvB,SAAUA,EACVC,SAAUp0C,EAAQ,EAClBq0C,QAAS0B,EAAMvyC,OACfwwC,IAAKqB,EACLtgC,SAAUA,GAEZzJ,IAAKurC,EAAM,GAAIpwC,EAAgBowC,EAAK,QAAkB,SAAU3pC,GAC9DyF,EAAO6jC,SAASnB,EAAMnoC,MACpBzG,EAAgBowC,EAAK,OAAkB/uB,GAAWrhB,EAAgBowC,EAAK,OAAiBvB,GAAc7uC,EAAgBowC,EAAK,OAAiBtB,GAAU9uC,EAAgBowC,EAAK,OAAiBH,GAAUG,GAC1MrwC,IAAK6uC,EAAK,SAAsBr1C,EAChC8K,IAAK,UAELgsC,UAAU,OAGVC,EAAOlyC,EAAE,OAAM,CACjBG,MAAOrI,KAAKy4C,cACZ30C,MAAO,CACL8T,KAAM,UACNhQ,GAAI5H,KAAKkoB,OAAO,sBAElBtjB,MAAO,CACL+R,KAAMA,EACNmT,UAAWA,EACX/d,MAAOA,EACPie,MAAOsuB,IAAellC,EACtBA,OAAQklC,GAAcllC,EACtB6W,SAAUA,EACVF,MAAOA,EACPF,WAAY/d,IAASme,GAEvB9b,IAAK,OACJ,CAACnO,KAAKyX,cAAc,SAAyBvP,IAAK0O,EAAU5W,KAAKyX,cAAc,SAAuBvP,MACzGkyC,EAAOlyC,EAAE,MAAO,CACdG,MAAO,CAAC,CACN,cAAeyD,IAASme,IAAa9iB,EACrC,cAAe2E,IAASme,GAAY9iB,EACpC,WAAY8iB,GACXjqB,KAAKq4C,iBACRxuC,IAAK,eACJ,CAACuwC,IACJ,IAAIf,EAAYr5C,KAAKyX,iBAAmB,GACpC4iC,EAASnyC,IAEY,IAArBmxC,EAAUxyC,SACZwzC,EAASnyC,EAAE,MAAO,CAChBG,MAAO,CAAC,WAAY,SAAU,CAC5B,YAAayD,IAEfjC,IAAK,gBACJ7J,KAAKyX,cAAc,UAGxB,IAAIlK,EAAWrF,EAAE,MAAO,CACtBrE,YAAa,cACbwE,MAAO,CAAC,CACNiyC,IAAKrwB,GACJjqB,KAAKm4C,cACRr0C,MAAO,CACL8D,GAAI5H,KAAKkoB,OAAO,uBAElBre,IAAK,aACLsE,IAAK,WACJ,CAACkrC,EAAWgB,IAEf,OAAOnyC,EAAElI,KAAK2N,IAAK,CACjB9J,YAAa,OACbwE,MAAO,CACLkyC,IAAKtwB,EACL,aAAcA,GAAYne,GAE5BhI,MAAO,CACL8D,GAAI5H,KAAKkoB,WAEV,CAAC/gB,EAAMoG,EAAWrF,IAAKkyC,EAAMjzC,EAAMe,IAAMqF,Q","file":"js/chunk-768db9cf.7a013e84.js","sourcesContent":["import { mapGetters } from 'vuex'\n\nexport const permissionMixin = {\n computed: {\n ...mapGetters({\n userData: 'auth/getCurrentUser',\n }),\n },\n methods: {\n getUserPermission(value) {\n return this.userData.permissions.includes(value)\n },\n },\n}\n\nexport const _ = null\n","import { Vue } from '../vue'; // @vue/component\n\nexport var formSelectionMixin = Vue.extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionStart;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionEnd;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.selectionDirection;\n },\n\n /* istanbul ignore next */\n set: function set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select: function select() {\n var _this$$refs$input;\n\n // For external handler that may want a select() method\n (_this$$refs$input = this.$refs.input).select.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n setSelectionRange: function setSelectionRange() {\n var _this$$refs$input2;\n\n // For external handler that may want a setSelectionRange(a,b,c) method\n (_this$$refs$input2 = this.$refs.input).setSelectionRange.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n setRangeText: function setRangeText() {\n var _this$$refs$input3;\n\n // For external handler that may want a setRangeText(a,b,c) method\n (_this$$refs$input3 = this.$refs.input).setRangeText.apply(_this$$refs$input3, arguments);\n }\n }\n});","export const tableMixins = {\n data() {\n return {\n isBusy: false,\n showSpinner: false,\n sortDesc: false,\n searchQuery: '',\n statusFilter: '',\n perPage: 10,\n pageSize: 0,\n currentPage: 1,\n perPageOptions: [10, 25, 50, 100],\n totalCount: 0,\n statusOptions: [\n 'Active',\n 'Inactive',\n ],\n approvalTotalCount: 0,\n approvalPerPage: 10,\n approvalPageSize: 0,\n approvalCurrentPage: 1,\n }\n },\n computed: {\n totalEntries() {\n return this.totalCount\n },\n numberOfPages() {\n return Math.floor((this.totalEntries + this.perPage - 1) / this.perPage)\n },\n from() {\n if (this.totalCount === 0) {\n return 0\n }\n return (this.currentPage * this.perPage) - (this.perPage - 1)\n },\n to() {\n return Math.min(this.from + this.perPage - 1, this.totalEntries)\n },\n approvalTotalEntries() {\n return this.approvalTotalCount\n },\n approvalNumberOfPages() {\n return Math.floor((this.approvalTotalCount + this.approvalPerPage - 1) / this.approvalPerPage)\n },\n approvalFom() {\n if (this.approvalTotalCount === 0) {\n return 0\n }\n return (this.approvalCurrentPage * this.approvalPerPage) - (this.approvalPerPage - 1)\n },\n approvalTo() {\n return Math.min(this.approvalFom + this.approvalPerPage - 1, this.approvalTotalCount)\n },\n },\n methods: {\n variantColor(status) {\n return status === 'Active' ? 'light-success' : 'light-secondary'\n },\n getOverallIndex(index) {\n return (this.currentPage * this.perPage) - this.perPage + index + 1\n },\n },\n}\n\nexport const _ = null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',[_vm._v(\"Show\")]),_c('v-select',{staticClass:\"per-page-selector d-inline-block ml-50 mr-1\",attrs:{\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.options,\"value\":_vm.value,\"clearable\":false},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n Show\n \n \n\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableEntries.vue?vue&type=template&id=bcfccc92&scoped=true&\"\nimport script from \"./TableEntries.vue?vue&type=script&lang=js&\"\nexport * from \"./TableEntries.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableEntries.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./TableEntries.vue?vue&type=style&index=1&id=bcfccc92&lang=scss&scoped=true&\"\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 \"bcfccc92\",\n null\n \n)\n\nexport default component.exports","// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","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 } from '../vue'; // @vue/component\n\nexport var formValidityMixin = Vue.extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n\n /* istanbul ignore next */\n get: function get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity: function setCustomValidity() {\n var _this$$refs$input;\n\n // For external handler that may want a setCustomValidity(...) method\n return (_this$$refs$input = this.$refs.input).setCustomValidity.apply(_this$$refs$input, arguments);\n },\n\n /* istanbul ignore next */\n checkValidity: function checkValidity() {\n var _this$$refs$input2;\n\n // For external handler that may want a checkValidity(...) method\n return (_this$$refs$input2 = this.$refs.input).checkValidity.apply(_this$$refs$input2, arguments);\n },\n\n /* istanbul ignore next */\n reportValidity: function reportValidity() {\n var _this$$refs$input3;\n\n // For external handler that may want a reportValidity(...) method\n return (_this$$refs$input3 = this.$refs.input).reportValidity.apply(_this$$refs$input3, arguments);\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/Vue.extend({\n name: NAME_CARD,\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 slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label)+\" \")]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules,\"vid\":_vm.vid},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-input',{attrs:{\"id\":_vm.id,\"for\":_vm.id,\"type\":_vm.type,\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly,\"value\":_vm.value,\"state\":errors.length > 0 ? false : null,\"step\":_vm.step,\"onpaste\":_vm.onpaste,\"formatter\":_vm.formatter,\"autocomplete\":\"off\",\"on-mousedown\":_vm.disableCopyPaste},on:{\"change\":_vm.onChange,\"input\":_vm.onInput,\"blur\":_vm.onBlur},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)},\"keydown\":function($event){return _vm.disableCopyPaste.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),(_vm.text)?_c('p',{staticClass:\"ml-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n \")]):_vm._e(),_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showIcon),expression:\"showIcon\"}],staticClass:\"cursor-pointer ml-1\",attrs:{\"icon\":_vm.icon,\"size\":_vm.iconSize},on:{\"click\":_vm.onClick}})],1),_c('small',{staticClass:\"text-danger error-text\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{ label }} \n \n \n 0 ? false : null\"\n :step=\"step\"\n :onpaste=\"onpaste\"\n :formatter=\"formatter\"\n autocomplete=\"off\"\n :on-mousedown=\"disableCopyPaste\"\n @change=\"onChange\"\n @input=\"onInput\"\n @blur=\"onBlur\"\n @keypress.native=\"handleKeyPress\"\n @keydown.native=\"disableCopyPaste\"\n />\n \n {{ text }}\n \n \n \n\n {{ errors[0] }}\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InputField.vue?vue&type=template&id=c26398c2&scoped=true&\"\nimport script from \"./InputField.vue?vue&type=script&lang=js&\"\nexport * from \"./InputField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InputField.vue?vue&type=style&index=0&id=c26398c2&scoped=true&lang=css&\"\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 \"c26398c2\",\n null\n \n)\n\nexport default component.exports","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_PAGINATION } from '../constants/components';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_FUNCTION_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { SLOT_NAME_ELLIPSIS_TEXT, SLOT_NAME_FIRST_TEXT, SLOT_NAME_LAST_TEXT, SLOT_NAME_NEXT_TEXT, SLOT_NAME_PAGE, SLOT_NAME_PREV_TEXT } from '../constants/slots';\nimport { createArray } from '../utils/array';\nimport { attemptFocus, getActiveElement, getAttr, isDisabled, isVisible, selectAll } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { isFunction, isNull } from '../utils/inspect';\nimport { mathFloor, mathMax, mathMin } 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 { warn } from '../utils/warn';\nimport { normalizeSlotMixin } from '../mixins/normalize-slot';\nimport { BLink } from '../components/link/link'; // Common props, computed, data, render function, and methods\n// for `` and ``\n// --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: null,\n\n /* istanbul ignore next */\n validator: function validator(value) {\n if (!isNull(value) && toInteger(value, 0) < 1) {\n warn('\"v-model\" value must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // Threshold of limit size when we start/stop showing ellipsis\n\nvar ELLIPSIS_THRESHOLD = 3; // Default # of buttons limit\n\nvar DEFAULT_LIMIT = 5; // --- Helper methods ---\n// Make an array of N to N+X\n\nvar makePageArray = function makePageArray(startNumber, numberOfPages) {\n return createArray(numberOfPages, function (_, i) {\n return {\n number: startNumber + i,\n classes: null\n };\n });\n}; // Sanitize the provided limit value (converting to a number)\n\n\nvar sanitizeLimit = function sanitizeLimit(value) {\n var limit = toInteger(value) || 1;\n return limit < 1 ? DEFAULT_LIMIT : limit;\n}; // Sanitize the provided current page number (converting to a number)\n\n\nvar sanitizeCurrentPage = function sanitizeCurrentPage(val, numberOfPages) {\n var page = toInteger(val) || 1;\n return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page;\n}; // Links don't normally respond to SPACE, so we add that\n// functionality via this handler\n\n\nvar onSpaceKey = function onSpaceKey(event) {\n if (event.keyCode === CODE_SPACE) {\n // Stop page from scrolling\n stopEvent(event, {\n immediatePropagation: true\n }); // Trigger the click event on the link\n\n event.currentTarget.click();\n return false;\n }\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n align: makeProp(PROP_TYPE_STRING, 'left'),\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n ellipsisText: makeProp(PROP_TYPE_STRING, \"\\u2026\"),\n // '…'\n firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n firstText: makeProp(PROP_TYPE_STRING, \"\\xAB\"),\n // '«'\n hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),\n hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),\n labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),\n labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),\n labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),\n labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),\n labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),\n lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),\n lastText: makeProp(PROP_TYPE_STRING, \"\\xBB\"),\n // '»'\n limit: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_LIMIT,\n /* istanbul ignore next */\n function (value) {\n if (toInteger(value, 0) < 1) {\n warn('Prop \"limit\" must be a number greater than \"0\"', NAME_PAGINATION);\n return false;\n }\n\n return true;\n }),\n nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n nextText: makeProp(PROP_TYPE_STRING, \"\\u203A\"),\n // '›'\n pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n prevText: makeProp(PROP_TYPE_STRING, \"\\u2039\"),\n // '‹'\n size: makeProp(PROP_TYPE_STRING)\n})), 'pagination'); // --- Mixin ---\n// @vue/component\n\nexport var paginationMixin = Vue.extend({\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n // `-1` signifies no page initially selected\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n currentPage = currentPage > 0 ? currentPage : -1;\n return {\n currentPage: currentPage,\n localNumberOfPages: 1,\n localLimit: DEFAULT_LIMIT\n };\n },\n computed: {\n btnSize: function btnSize() {\n var size = this.size;\n return size ? \"pagination-\".concat(size) : '';\n },\n alignment: function alignment() {\n var align = this.align;\n\n if (align === 'center') {\n return 'justify-content-center';\n } else if (align === 'end' || align === 'right') {\n return 'justify-content-end';\n } else if (align === 'fill') {\n // The page-items will also have 'flex-fill' added\n // We add text centering to make the button appearance better in fill mode\n return 'text-center';\n }\n\n return '';\n },\n styleClass: function styleClass() {\n return this.pills ? 'b-pagination-pills' : '';\n },\n computedCurrentPage: function computedCurrentPage() {\n return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages);\n },\n paginationParams: function paginationParams() {\n // Determine if we should show the the ellipsis\n var limit = this.localLimit,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage,\n hideEllipsis = this.hideEllipsis,\n firstNumber = this.firstNumber,\n lastNumber = this.lastNumber;\n var showFirstDots = false;\n var showLastDots = false;\n var numberOfLinks = limit;\n var startNumber = 1;\n\n if (numberOfPages <= limit) {\n // Special case: Less pages available than the limit of displayed pages\n numberOfLinks = numberOfPages;\n } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || lastNumber) {\n showLastDots = true;\n numberOfLinks = limit - (firstNumber ? 0 : 1);\n }\n\n numberOfLinks = mathMin(numberOfLinks, limit);\n } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {\n if (!hideEllipsis || firstNumber) {\n showFirstDots = true;\n numberOfLinks = limit - (lastNumber ? 0 : 1);\n }\n\n startNumber = numberOfPages - numberOfLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (limit > ELLIPSIS_THRESHOLD) {\n numberOfLinks = limit - (hideEllipsis ? 0 : 2);\n showFirstDots = !!(!hideEllipsis || firstNumber);\n showLastDots = !!(!hideEllipsis || lastNumber);\n }\n\n startNumber = currentPage - mathFloor(numberOfLinks / 2);\n } // Sanity checks\n\n /* istanbul ignore if */\n\n\n if (startNumber < 1) {\n startNumber = 1;\n showFirstDots = false;\n } else if (startNumber > numberOfPages - numberOfLinks) {\n startNumber = numberOfPages - numberOfLinks + 1;\n showLastDots = false;\n }\n\n if (showFirstDots && firstNumber && startNumber < 4) {\n numberOfLinks = numberOfLinks + 2;\n startNumber = 1;\n showFirstDots = false;\n }\n\n var lastPageNumber = startNumber + numberOfLinks - 1;\n\n if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {\n numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3);\n showLastDots = false;\n } // Special handling for lower limits (where ellipsis are never shown)\n\n\n if (limit <= ELLIPSIS_THRESHOLD) {\n if (firstNumber && startNumber === 1) {\n numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1);\n } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {\n startNumber = mathMax(startNumber - 1, 1);\n numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1);\n }\n }\n\n numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1);\n return {\n showFirstDots: showFirstDots,\n showLastDots: showLastDots,\n numberOfLinks: numberOfLinks,\n startNumber: startNumber\n };\n },\n pageList: function pageList() {\n // Generates the pageList array\n var _this$paginationParam = this.paginationParams,\n numberOfLinks = _this$paginationParam.numberOfLinks,\n startNumber = _this$paginationParam.startNumber;\n var currentPage = this.computedCurrentPage; // Generate list of page numbers\n\n var pages = makePageArray(startNumber, numberOfLinks); // We limit to a total of 3 page buttons on XS screens\n // So add classes to page links to hide them for XS breakpoint\n // Note: Ellipsis will also be hidden on XS screens\n // TODO: Make this visual limit configurable based on breakpoint(s)\n\n if (pages.length > 3) {\n var idx = currentPage - startNumber; // THe following is a bootstrap-vue custom utility class\n\n var classes = 'bv-d-xs-down-none';\n\n if (idx === 0) {\n // Keep leftmost 3 buttons visible when current page is first page\n for (var i = 3; i < pages.length; i++) {\n pages[i].classes = classes;\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible when current page is last page\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].classes = classes;\n }\n } else {\n // Hide all except current page, current page - 1 and current page + 1\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n // hide some left button(s)\n pages[_i2].classes = classes;\n }\n\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n // hide some right button(s)\n pages[_i3].classes = classes;\n }\n }\n }\n\n return pages;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages);\n }\n }), _defineProperty(_watch, \"currentPage\", function currentPage(newValue, oldValue) {\n if (newValue !== oldValue) {\n // Emit `null` if no page selected\n this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null);\n }\n }), _defineProperty(_watch, \"limit\", function limit(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localLimit = sanitizeLimit(newValue);\n }\n }), _watch),\n created: function created() {\n var _this = this;\n\n // Set our default values in data\n this.localLimit = sanitizeLimit(this.limit);\n this.$nextTick(function () {\n // Sanity check\n _this.currentPage = _this.currentPage > _this.localNumberOfPages ? _this.localNumberOfPages : _this.currentPage;\n });\n },\n methods: {\n handleKeyNav: function handleKeyNav(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n /* istanbul ignore if */\n\n if (this.isNav) {\n // We disable left/right keyboard navigation in ``\n return;\n }\n\n if (keyCode === CODE_LEFT || keyCode === CODE_UP) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusFirst() : this.focusPrev();\n } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {\n stopEvent(event, {\n propagation: false\n });\n shiftKey ? this.focusLast() : this.focusNext();\n }\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('button.page-link, a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this2.getButtons().find(function (el) {\n return toInteger(getAttr(el, 'aria-posinset'), 0) === _this2.computedCurrentPage;\n });\n\n if (!attemptFocus(btn)) {\n // Fallback if current page is not in button list\n _this2.focusFirst();\n }\n });\n },\n focusFirst: function focusFirst() {\n var _this3 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this3.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusLast: function focusLast() {\n var _this4 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var btn = _this4.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n\n attemptFocus(btn);\n });\n },\n focusPrev: function focusPrev() {\n var _this5 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this5.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index > 0 && !isDisabled(buttons[index - 1])) {\n attemptFocus(buttons[index - 1]);\n }\n });\n },\n focusNext: function focusNext() {\n var _this6 = this;\n\n // We do this in `$nextTick()` to ensure buttons have finished rendering\n this.$nextTick(function () {\n var buttons = _this6.getButtons();\n\n var index = buttons.indexOf(getActiveElement());\n\n if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {\n attemptFocus(buttons[index + 1]);\n }\n });\n }\n },\n render: function render(h) {\n var _this7 = this;\n\n var disabled = this.disabled,\n labelPage = this.labelPage,\n ariaLabel = this.ariaLabel,\n isNav = this.isNav,\n numberOfPages = this.localNumberOfPages,\n currentPage = this.computedCurrentPage;\n var pageNumbers = this.pageList.map(function (p) {\n return p.number;\n });\n var _this$paginationParam2 = this.paginationParams,\n showFirstDots = _this$paginationParam2.showFirstDots,\n showLastDots = _this$paginationParam2.showLastDots;\n var fill = this.align === 'fill';\n var $buttons = []; // Helper function and flag\n\n var isActivePage = function isActivePage(pageNumber) {\n return pageNumber === currentPage;\n };\n\n var noCurrentPage = this.currentPage < 1; // Factory function for prev/next/first/last buttons\n\n var makeEndBtn = function makeEndBtn(linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) {\n var isDisabled = disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages;\n var pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo;\n var scope = {\n disabled: isDisabled,\n page: pageNumber,\n index: pageNumber - 1\n };\n var $btnContent = _this7.normalizeSlot(btnSlot, scope) || toString(btnText) || h();\n var $inner = h(isDisabled ? 'span' : isNav ? BLink : 'button', {\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !isDisabled && fill\n },\n props: isDisabled || !isNav ? {} : _this7.linkProps(linkTo),\n attrs: {\n role: isNav ? null : 'menuitem',\n type: isNav || isDisabled ? null : 'button',\n tabindex: isDisabled || isNav ? null : '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-disabled': isDisabled ? 'true' : null\n },\n on: isDisabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, linkTo);\n },\n keydown: onSpaceKey\n }\n }, [$btnContent]);\n return h('li', {\n key: key,\n staticClass: 'page-item',\n class: [{\n disabled: isDisabled,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !isDisabled\n }, btnClass],\n attrs: {\n role: isNav ? null : 'presentation',\n 'aria-hidden': isDisabled ? 'true' : null\n }\n }, [$inner]);\n }; // Ellipsis factory\n\n\n var makeEllipsis = function makeEllipsis(isLast) {\n return h('li', {\n staticClass: 'page-item',\n class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', _this7.ellipsisClass],\n attrs: {\n role: 'separator'\n },\n key: \"ellipsis-\".concat(isLast ? 'last' : 'first')\n }, [h('span', {\n staticClass: 'page-link'\n }, [_this7.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(_this7.ellipsisText) || h()])]);\n }; // Page button factory\n\n\n var makePageButton = function makePageButton(page, idx) {\n var pageNumber = page.number;\n var active = isActivePage(pageNumber) && !noCurrentPage; // Active page will have tabindex of 0, or if no current page and first page button\n\n var tabIndex = disabled ? null : active || noCurrentPage && idx === 0 ? '0' : '-1';\n var attrs = {\n role: isNav ? null : 'menuitemradio',\n type: isNav || disabled ? null : 'button',\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-controls': _this7.ariaControls || null,\n 'aria-label': hasPropFunction(labelPage) ?\n /* istanbul ignore next */\n labelPage(pageNumber) : \"\".concat(isFunction(labelPage) ? labelPage() : labelPage, \" \").concat(pageNumber),\n 'aria-checked': isNav ? null : active ? 'true' : 'false',\n 'aria-current': isNav && active ? 'page' : null,\n 'aria-posinset': isNav ? null : pageNumber,\n 'aria-setsize': isNav ? null : numberOfPages,\n // ARIA \"roving tabindex\" method (except in `isNav` mode)\n tabindex: isNav ? null : tabIndex\n };\n var btnContent = toString(_this7.makePage(pageNumber));\n var scope = {\n page: pageNumber,\n index: pageNumber - 1,\n content: btnContent,\n active: active,\n disabled: disabled\n };\n var $inner = h(disabled ? 'span' : isNav ? BLink : 'button', {\n props: disabled || !isNav ? {} : _this7.linkProps(pageNumber),\n staticClass: 'page-link',\n class: {\n 'flex-grow-1': !isNav && !disabled && fill\n },\n attrs: attrs,\n on: disabled ? {} : {\n '!click': function click(event) {\n _this7.onClick(event, pageNumber);\n },\n keydown: onSpaceKey\n }\n }, [_this7.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]);\n return h('li', {\n staticClass: 'page-item',\n class: [{\n disabled: disabled,\n active: active,\n 'flex-fill': fill,\n 'd-flex': fill && !isNav && !disabled\n }, page.classes, _this7.pageClass],\n attrs: {\n role: isNav ? null : 'presentation'\n },\n key: \"page-\".concat(pageNumber)\n }, [$inner]);\n }; // Goto first page button\n // Don't render button when `hideGotoEndButtons` or `firstNumber` is set\n\n\n var $firstPageBtn = h();\n\n if (!this.firstNumber && !this.hideGotoEndButtons) {\n $firstPageBtn = makeEndBtn(1, this.labelFirstPage, SLOT_NAME_FIRST_TEXT, this.firstText, this.firstClass, 1, 'pagination-goto-first');\n }\n\n $buttons.push($firstPageBtn); // Goto previous page button\n\n $buttons.push(makeEndBtn(currentPage - 1, this.labelPrevPage, SLOT_NAME_PREV_TEXT, this.prevText, this.prevClass, 1, 'pagination-goto-prev')); // Show first (1) button?\n\n $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({\n number: 1\n }, 0) : h()); // First ellipsis\n\n $buttons.push(showFirstDots ? makeEllipsis(false) : h()); // Individual page links\n\n this.pageList.forEach(function (page, idx) {\n var offset = showFirstDots && _this7.firstNumber && pageNumbers[0] !== 1 ? 1 : 0;\n $buttons.push(makePageButton(page, idx + offset));\n }); // Last ellipsis\n\n $buttons.push(showLastDots ? makeEllipsis(true) : h()); // Show last page button?\n\n $buttons.push(this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages ? makePageButton({\n number: numberOfPages\n }, -1) : h()); // Goto next page button\n\n $buttons.push(makeEndBtn(currentPage + 1, this.labelNextPage, SLOT_NAME_NEXT_TEXT, this.nextText, this.nextClass, numberOfPages, 'pagination-goto-next')); // Goto last page button\n // Don't render button when `hideGotoEndButtons` or `lastNumber` is set\n\n var $lastPageBtn = h();\n\n if (!this.lastNumber && !this.hideGotoEndButtons) {\n $lastPageBtn = makeEndBtn(numberOfPages, this.labelLastPage, SLOT_NAME_LAST_TEXT, this.lastText, this.lastClass, numberOfPages, 'pagination-goto-last');\n }\n\n $buttons.push($lastPageBtn); // Assemble the pagination buttons\n\n var $pagination = h('ul', {\n staticClass: 'pagination',\n class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],\n attrs: {\n role: isNav ? null : 'menubar',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-label': isNav ? null : ariaLabel || null\n },\n // We disable keyboard left/right nav when ``\n on: isNav ? {} : {\n keydown: this.handleKeyNav\n },\n ref: 'ul'\n }, $buttons); // If we are ``, wrap in `` wrapper\n\n if (isNav) {\n return h('nav', {\n attrs: {\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-hidden': disabled ? 'true' : 'false',\n 'aria-label': isNav ? ariaLabel || null : null\n }\n }, [$pagination]);\n }\n\n return $pagination;\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\nimport { Vue } from '../../vue';\nimport { NAME_PAGINATION } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, EVENT_NAME_PAGE_CLICK } from '../../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, isVisible } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathCeil, mathMax } from '../../utils/math';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { MODEL_PROP_NAME, paginationMixin, props as paginationProps } from '../../mixins/pagination'; // --- Constants ---\n\nvar DEFAULT_PER_PAGE = 20;\nvar DEFAULT_TOTAL_ROWS = 0; // --- Helper methods ---\n// Sanitize the provided per page number (converting to a number)\n\nvar sanitizePerPage = function sanitizePerPage(value) {\n return mathMax(toInteger(value) || DEFAULT_PER_PAGE, 1);\n}; // Sanitize the provided total rows number (converting to a number)\n\n\nvar sanitizeTotalRows = function sanitizeTotalRows(value) {\n return mathMax(toInteger(value) || DEFAULT_TOTAL_ROWS, 0);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, paginationProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n perPage: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_PER_PAGE),\n totalRows: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_TOTAL_ROWS)\n})), NAME_PAGINATION); // --- Main component ---\n// @vue/component\n\nexport var BPagination = /*#__PURE__*/Vue.extend({\n name: NAME_PAGINATION,\n // The render function is brought in via the `paginationMixin`\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = mathCeil(sanitizeTotalRows(this.totalRows) / sanitizePerPage(this.perPage));\n return result < 1 ? 1 : result;\n },\n // Used for watching changes to `perPage` and `numberOfPages`\n pageSizeNumberOfPages: function pageSizeNumberOfPages() {\n return {\n perPage: sanitizePerPage(this.perPage),\n totalRows: sanitizeTotalRows(this.totalRows),\n numberOfPages: this.numberOfPages\n };\n }\n },\n watch: {\n pageSizeNumberOfPages: function pageSizeNumberOfPages(newValue, oldValue) {\n if (!isUndefinedOrNull(oldValue)) {\n if (newValue.perPage !== oldValue.perPage && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n this.currentPage = 1;\n } else if (newValue.numberOfPages !== oldValue.numberOfPages && this.currentPage > newValue.numberOfPages) {\n // If `numberOfPages` changes and is less than\n // the `currentPage` number, reset to page 1\n this.currentPage = 1;\n }\n }\n\n this.localNumberOfPages = newValue.numberOfPages;\n }\n },\n created: function created() {\n var _this = this;\n\n // Set the initial page count\n this.localNumberOfPages = this.numberOfPages; // Set the initial page value\n\n var currentPage = toInteger(this[MODEL_PROP_NAME], 0);\n\n if (currentPage > 0) {\n this.currentPage = currentPage;\n } else {\n this.$nextTick(function () {\n // If this value parses to `NaN` or a value less than `1`\n // trigger an initial emit of `null` if no page specified\n _this.currentPage = 0;\n });\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(event, pageNumber) {\n var _this2 = this;\n\n // Dont do anything if clicking the current active page\n if (pageNumber === this.currentPage) {\n return;\n }\n\n var target = event.target; // Emit a user-cancelable `page-click` event\n\n var clickEvt = new BvEvent(EVENT_NAME_PAGE_CLICK, {\n cancelable: true,\n vueTarget: this,\n target: target\n });\n this.$emit(clickEvt.type, clickEvt, pageNumber);\n\n if (clickEvt.defaultPrevented) {\n return;\n } // Update the `v-model`\n\n\n this.currentPage = pageNumber; // Emit event triggered by user interaction\n\n this.$emit(EVENT_NAME_CHANGE, this.currentPage); // Keep the current button focused if possible\n\n this.$nextTick(function () {\n if (isVisible(target) && _this2.$el.contains(target)) {\n attemptFocus(target);\n } else {\n _this2.focusCurrent();\n }\n });\n },\n makePage: function makePage(pageNum) {\n return pageNum;\n },\n\n /* istanbul ignore next */\n linkProps: function linkProps() {\n // No props, since we render a plain button\n return {};\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-overlay',{attrs:{\"id\":\"overlay-background\",\"show\":_vm.show,\"variant\":\"transparent\",\"opacity\":\"0.85\",\"blur\":\"2px\",\"rounded\":\"sm\",\"no-wrap\":\"\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\",staticStyle:{\"height\":\"120px\",\"width\":\"70px\"}},[_c('img',{attrs:{\"src\":require(\"../../../assets/images/gif/loader.gif\"),\"alt\":\"udara360-logo\",\"width\":\"100%\",\"height\":\"100%\"}})])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullScreenSpinner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullScreenSpinner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullScreenSpinner.vue?vue&type=template&id=2d1b72aa&\"\nimport script from \"./FullScreenSpinner.vue?vue&type=script&lang=js&\"\nexport * from \"./FullScreenSpinner.vue?vue&type=script&lang=js&\"\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","import moment from 'moment'\n\nexport const toDateWithYear = value => (\n moment(value).format('DD/MM/YYYY')\n)\nexport const toDateWithYearFirst = value => (\n moment(value).format('YYYY-MM-DD')\n)\nexport const toDateWithUnderscore = value => (\n moment(value).format('YYYY_MM_DD')\n)\nexport const customDate = value => (\n moment(value).format('DD/MMM/YYYY')\n)\nexport const tocustomDate = value => (\n moment(value).format('DD-MMM-YYYY')\n)\nexport const toDateYear = value => (\n moment(value).format('DD-MM-YYYY')\n)\nexport const toDateTime = value => (\n moment(value).format('DD/MMM/YYYY h:mm:ss')\n)\n\nexport const toDateTimeFormat = value => (\n moment(value).format('DD MMM, YYYY h:mm:ss a')\n)\n\nexport const toDateWithTime = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm:ss a')\n)\nexport const toDateWithTimes = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm')\n)\nexport const toDateWithCustomTime = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm:ss')\n)\nexport const toYearWithDateTime = selectedDate => (\n moment(selectedDate).format('YYYY-MM-DD h:mm:ss a')\n)\nexport const toDateWithDateTime = selectedDate => (\n moment(selectedDate).format('YYYY-MM-DD h:mm:ss')\n)\n\nexport const toCustomDateTime = dateValue => (\n moment(dateValue).format('Do MMM YYYY h:mm:ss')\n)\nexport const toCustomDate = dateValue => (\n moment(dateValue).format('Do MMM YYYY')\n)\nexport const toDayMonthYear = dateValue => (\n moment(dateValue).format('DD MMM, YYYY')\n)\nexport const toMonthYear = dateValue => {\n const check = moment(dateValue, 'DD/MM/YYYY')\n const month = check.format('MMM')\n const year = check.format('YYYY')\n return month + year\n}\nexport const toDateWithMinute = selectedDate => (\n moment(selectedDate).format('DD/MM/YYYY h:mm a')\n)\n\nexport const toYearWithDate = selectedDate => {\n if (selectedDate !== null) {\n const splittedDate = selectedDate.split('/')\n const commencementDate = new Date(+splittedDate[2], splittedDate[1] - 1, +splittedDate[0])\n return moment(commencementDate).format('YYYY-MM-DD')\n }\n return ''\n}\n\nexport const toDateWithMonth = selectedDate => {\n if (selectedDate !== null) {\n const splittedDate = selectedDate.split('-')\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`\n }\n return ''\n}\nexport const checkDateFormat = dateValue => {\n // eslint-disable-next-line eqeqeq\n if (new Date(dateValue) == 'Invalid Date') {\n const splitDate = dateValue.split(' ')[0]\n const splittedDate = splitDate.split('-')\n return `${splittedDate[2]}-${splittedDate[1]}-${splittedDate[0]}`\n }\n return dateValue\n}\nexport const dateSpecial = dateValue => {\n const dateParts = dateValue.split(' ')\n const date = dateParts[0].split('-')\n return `${date[0]}/${date[1]}/${date[2]}`\n}\n\nexport const dateDifference = (startDate, endDate) => {\n const start = moment(startDate)\n const end = moment(endDate)\n return end.diff(start, 'days')\n}\n\nexport const dateTimeDifference = (startDate, endDate) => {\n const diffTime = Math.abs(new Date(endDate).valueOf() - new Date(startDate).valueOf())\n const days = diffTime / (24 * 60 * 60 * 1000)\n const hours = (days % 1) * 24\n const minutes = (hours % 1) * 60\n const secs = ((minutes % 1) * 60) < 1 ? 1 : ((minutes % 1) * 60)\n const [hour, minute, sec] = [Math.floor(hours), Math.floor(minutes), Math.floor(secs)]\n return `${hour}h : ${minute}m : ${sec}s`\n}\n\nexport const toMonthWithTime = selectedDate => (\n moment(selectedDate).format('MMM Do YYYY, h:mm:ss a')\n)\nexport const toMonthWithYear = selectedDate => (\n moment(selectedDate).format('MMM Do, YYYY')\n)\n\nexport const toMonthWithYearTime = selectedDate => {\n if (selectedDate !== null) {\n const splittedDate = selectedDate.split('/')\n const commencementDate = new Date(+splittedDate[2], splittedDate[1] - 1, +splittedDate[0])\n return moment(commencementDate).format('MMM DD YYYY, h:mm:ss')\n }\n return ''\n}\n\nexport const getDate = (date, numOfDays = 1) => {\n const endDate = new Date(date)\n endDate.setDate(endDate.getDate() - Number(numOfDays))\n return moment(endDate).format('DD/MM/YYYY')\n}\nexport const getMinusOneDayDate = (date, numOfDays = 1) => {\n const endDate = new Date(date)\n endDate.setDate(endDate.getDate() - Number(numOfDays))\n return moment(endDate).format('YYYY-MM-DD')\n}\nexport const getDaysInMonth = frequency => {\n if (frequency === 'Month') {\n const today = new Date()\n const year = today.getFullYear()\n const month = today.getMonth() + 1\n const daysInMonth = [31, (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n return daysInMonth[month - 1]\n }\n return ''\n}\nexport const getDaysInYear = frequency => {\n if (frequency === 'Year') {\n const today = new Date()\n const year = today.getFullYear()\n return (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) ? 366 : 365\n }\n return ''\n}\n\nexport const formatSingleDates = (day, month, year) => {\n const inputDateStr = `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`\n const inputDate = new Date(inputDateStr)\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (inputDate > today) {\n return 'Invalid Date, The selected Date cannot be in the future.'\n }\n return inputDateStr\n}\n\nexport const convertDateString = dateString => {\n const dateObj = new Date(dateString)\n const year = dateObj.getFullYear()\n const month = dateObj.getMonth() + 1\n const day = dateObj.getDate()\n\n return { year, month, day }\n}\nexport const convertDate = dateString => {\n const dateObj = new Date(dateString)\n const operationYear = dateObj.getFullYear()\n const operationMonth = dateObj.getMonth() + 1\n const operationDay = dateObj.getDate()\n\n return { operationYear, operationMonth, operationDay }\n}\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } 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 ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INVALID_FEEDBACK,\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 tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-card',{attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"m-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-start mb-1 mb-md-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('TableEntries',{attrs:{\"options\":_vm.perPageOptions},model:{value:(_vm.perPage),callback:function ($$v) {_vm.perPage=$$v},expression:\"perPage\"}}),(_vm.getUserPermission('CREATE_INDIVIDUAL_CUSTOMER'))?_c('Button',{attrs:{\"label\":\"Add\",\"size\":\"md\"},on:{\"click\":_vm.goToAddCustomerInformation}}):_vm._e()],1),_c('b-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('div',{staticClass:\"d-flex align-items-center justify-content-lg-end\"},[_c('Button',{staticClass:\"mr-1\",attrs:{\"label\":\"Filter\",\"size\":\"md\",\"icon\":\"FilterIcon\",\"show-icon\":\"\"},on:{\"click\":function($event){return _vm.showModal('modal-filter')}}}),_c('Button',{attrs:{\"label\":\"Reset Filter\",\"size\":\"md\",\"icon\":\"RotateCwIcon\",\"show-icon\":\"\"},on:{\"click\":_vm.resetFilter}})],1)])],1)],1),_c('b-table',{ref:\"customerInfoRef\",staticClass:\"position-relative\",attrs:{\"items\":_vm.customerList,\"responsive\":\"\",\"busy\":_vm.isBusy,\"per-page\":_vm.pageSize,\"current-page\":_vm.currentPage,\"fields\":_vm.tableHeaders,\"primary-key\":\"id\",\"show-empty\":\"\",\"empty-text\":\"No records available\"},scopedSlots:_vm._u([{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center text-danger my-2\"},[_c('b-spinner',{staticClass:\"align-middle\",attrs:{\"variant\":\"primary\"}})],1)]},proxy:true},{key:\"cell(SN)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.getOverallIndex(data.index))+\"\\n \")]}},{key:\"cell(dateCreated)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.toDateWithYear(data.value))+\"\\n \")]}},{key:\"cell(actions)\",fn:function(data){return [_c('div',{staticClass:\"text-nowrap\"},[_c('b-dropdown',{attrs:{\"variant\":\"link\",\"toggle-class\":\"p-0\",\"no-caret\":\"\",\"right\":_vm.$store.state.appConfig.isRTL},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('feather-icon',{staticClass:\"align-middle text-body\",attrs:{\"icon\":\"MoreVerticalIcon\",\"size\":\"16\"}})]},proxy:true}],null,true)},[(_vm.getUserPermission('MODIFY_INDIVIDUAL_CUSTOMER'))?_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.goToEditCustomerInformation(data.item, $event.target, 'edit')}}},[_c('feather-icon',{attrs:{\"icon\":\"EditIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"Modify\")])],1):_vm._e(),_c('b-dropdown-item',{on:{\"click\":function($event){return _vm.onViewCustomer(data.item, $event.target)}}},[_c('feather-icon',{attrs:{\"icon\":\"EyeIcon\"}}),_c('span',{staticClass:\"align-middle ml-50\"},[_vm._v(\"View\")])],1)],1)],1)]}}])}),_c('TablePagination',{attrs:{\"from\":_vm.from,\"to\":_vm.to,\"total-rows\":_vm.totalEntries,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}}),_c('b-modal',{ref:\"my-modal\",attrs:{\"id\":\"modal-lg\",\"ok-title\":\"Cancel\",\"ok-only\":\"\",\"cancel-title\":\"Cancel\",\"ok-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Customer Information\"}},[_c('b-tabs',[_c('b-tab',{attrs:{\"title\":\"Personal Information\",\"active\":\"\"}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"bvn\",\"label\":\"BVN\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.bvn),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"bvn\", $$v)},expression:\"customerInformation.bvn\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"nin\",\"label\":\"NIN\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nin),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nin\", $$v)},expression:\"customerInformation.nin\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"title\",\"label\":\"Title\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.title),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"title\", $$v)},expression:\"customerInformation.title\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"last-name\",\"label\":\"Last Name\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.lastName),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"lastName\", $$v)},expression:\"customerInformation.lastName\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"first-name\",\"label\":\"First Name\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.firstName),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"firstName\", $$v)},expression:\"customerInformation.firstName\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"other-names\",\"label\":\"Other Names\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.otherNames),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"otherNames\", $$v)},expression:\"customerInformation.otherNames\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"maiden-name\",\"label\":\"Maiden Name\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.maidenName),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"maidenName\", $$v)},expression:\"customerInformation.maidenName\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"gender1\",\"label\":\"Gender\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.gender),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"gender\", $$v)},expression:\"customerInformation.gender\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"marital-status\",\"label\":\"Marital Status\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.maritalStatus),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"maritalStatus\", $$v)},expression:\"customerInformation.maritalStatus\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"user-id\",\"label\":\"User ID\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.userID),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"userID\", $$v)},expression:\"customerInformation.userID\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"phone-number\",\"label\":\"Phone Number\",\"type\":\"number\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.phoneNumber),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"phoneNumber\", $$v)},expression:\"customerInformation.phoneNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('TextAreaField',{attrs:{\"id\":\"phone-number\",\"label\":\"Notification Phone Number\",\"type\":\"text\",\"rows\":\"2\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.notificationPhoneNumber),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"notificationPhoneNumber\", $$v)},expression:\"customerInformation.notificationPhoneNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"email\",\"label\":\"Email\",\"type\":\"email\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.email),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"email\", $$v)},expression:\"customerInformation.email\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('TextAreaField',{attrs:{\"id\":\"email\",\"label\":\"Notification Email\",\"rows\":\"2\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.notificationEmail),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"notificationEmail\", $$v)},expression:\"customerInformation.notificationEmail\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"date-of-birth\",\"label\":\"Date of Birth\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.dateOfBirth),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"dateOfBirth\", $$v)},expression:\"customerInformation.dateOfBirth\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"state\",\"label\":\"State\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.state),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"state\", $$v)},expression:\"customerInformation.state\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"lga\",\"label\":\"LGA\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.lga),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"lga\", $$v)},expression:\"customerInformation.lga\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"home-town\",\"label\":\"Home Town\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.hometown),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"hometown\", $$v)},expression:\"customerInformation.hometown\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"religion\",\"label\":\"Religion\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.religion),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"religion\", $$v)},expression:\"customerInformation.religion\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"nationality\",\"label\":\"Nationality\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nationality),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nationality\", $$v)},expression:\"customerInformation.nationality\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"means-of-id\",\"value\":_vm.customerInformation.meansOfIdentification,\"label\":\"Means of Identification\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.meansOfIdentification),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"meansOfIdentification\", $$v)},expression:\"customerInformation.meansOfIdentification\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"id-number\",\"label\":\"Means of Identification Number\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.idNumber),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"idNumber\", $$v)},expression:\"customerInformation.idNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"issue-date\",\"label\":\"Means of Identification Issue Date\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.meansOfIdentificationIssueDate),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"meansOfIdentificationIssueDate\", $$v)},expression:\"customerInformation.meansOfIdentificationIssueDate\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"expiry-date\",\"label\":\"Means of Identification Expiry Date\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.meansOfIdentificationExpiryDate),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"meansOfIdentificationExpiryDate\", $$v)},expression:\"customerInformation.meansOfIdentificationExpiryDate\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"issuing-authority\",\"label\":\"Issuing Authority\",\"placeholder\":\"Enter Issuing Authority\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.meansOfIdentificationPlaceOfIssue),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"meansOfIdentificationPlaceOfIssue\", $$v)},expression:\"customerInformation.meansOfIdentificationPlaceOfIssue\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"pep\",\"label\":\"PEP\",\"type\":\"text\",\"for\":\"pep\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.pep),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"pep\", $$v)},expression:\"customerInformation.pep\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"tin\",\"label\":\"TIN\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.tin),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"tin\", $$v)},expression:\"customerInformation.tin\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"reference-number\",\"label\":\"Old customer ID\",\"type\":\"text\",\"show-icon\":\"\",\"on-click\":_vm.onViewInfo,\"readonly\":\"\"},model:{value:(_vm.customerInformation.oldCustomerID),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"oldCustomerID\", $$v)},expression:\"customerInformation.oldCustomerID\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"ippis-oracle\",\"label\":\"IPPIS/Oracle ID\",\"placeholder\":\"Enter IPPIS/Oracle ID\",\"type\":\"text\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.employeeID),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"employeeID\", $$v)},expression:\"customerInformation.employeeID\"}})],1),_c('b-col',{attrs:{\"md\":\"12\"}},[_c('TextAreaField',{attrs:{\"id\":\"address\",\"value\":_vm.customerInformation.address,\"label\":\"Address\",\"for\":\"address\",\"rows\":\"5\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.address),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"address\", $$v)},expression:\"customerInformation.address\"}})],1)],1)],1),_c('b-tab',{attrs:{\"title\":\"Next of Kin\"}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"name\",\"label\":\"Name\",\"type\":\"text\",\"for\":\"name\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nokName),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nokName\", $$v)},expression:\"customerInformation.nokName\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"email\",\"label\":\"Email\",\"type\":\"email\",\"for\":\"email\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nokEmail),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nokEmail\", $$v)},expression:\"customerInformation.nokEmail\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"phone-number\",\"label\":\"Phone Number\",\"type\":\"number\",\"for\":\"phone-number\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nokPhoneNumber),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nokPhoneNumber\", $$v)},expression:\"customerInformation.nokPhoneNumber\"}})],1)],1),_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"relationship\",\"label\":\"Relationship\",\"type\":\"text\",\"for\":\"relationship\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nokRelationship),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nokRelationship\", $$v)},expression:\"customerInformation.nokRelationship\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"gender\",\"label\":\"Gender\",\"type\":\"text\",\"for\":\"gender\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nokGender),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nokGender\", $$v)},expression:\"customerInformation.nokGender\"}})],1)],1),_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('TextAreaField',{attrs:{\"id\":\"next-of-kin-address\",\"value\":_vm.customerInformation.nokAddress,\"label\":\"Address\",\"for\":\"next-of-kin-address\",\"rows\":\"5\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.nokAddress ),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"nokAddress\", $$v)},expression:\"customerInformation.nokAddress \"}})],1)],1)],1),_c('b-tab',{attrs:{\"title\":\"Work Information\"}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"occupation\",\"label\":\"Name\",\"type\":\"text\",\"for\":\"occupation\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.occupation),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"occupation\", $$v)},expression:\"customerInformation.occupation\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"employer-name\",\"label\":\"Employer's Name\",\"type\":\"text\",\"for\":\"employer-name\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.employerName),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"employerName\", $$v)},expression:\"customerInformation.employerName\"}})],1),_c('b-col',{attrs:{\"md\":\"4\"}},[_c('InputField',{attrs:{\"id\":\"phone-number\",\"label\":\"Phone Number\",\"type\":\"number\",\"for\":\"phone-number\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.officePhoneNumber),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"officePhoneNumber\", $$v)},expression:\"customerInformation.officePhoneNumber\"}})],1)],1),_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"12\"}},[_c('TextAreaField',{attrs:{\"id\":\"employer-address\",\"value\":_vm.customerInformation.employerAddress,\"label\":\"Employer's Address\",\"for\":\"employer-address\",\"rows\":\"5\",\"readonly\":\"\"},model:{value:(_vm.customerInformation.employerAddress),callback:function ($$v) {_vm.$set(_vm.customerInformation, \"employerAddress\", $$v)},expression:\"customerInformation.employerAddress\"}})],1)],1)],1),_c('b-tab',{attrs:{\"title\":\"Other Documents\"}},[_c('b-form',_vm._l((_vm.documentsFormData),function(item,index){return _c('b-row',{key:index,staticClass:\"mb-2 match-height\",attrs:{\"id\":index}},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('SelectField',{attrs:{\"id\":\"document-type\",\"reduce\":function (option) { return option.value; },\"label\":\"Document Type\",\"placeholder\":\"Select\",\"options\":_vm.documentTypeOptions,\"item\":\"label\",\"readonly\":\"\"},model:{value:(item.type),callback:function ($$v) {_vm.$set(item, \"type\", $$v)},expression:\"item.type\"}})],1),_c('b-col',{attrs:{\"md\":\"7\"}},[_c('label',[_vm._v(\"Upload Documents\")]),_c('div',{staticClass:\"upload-image\"},[_c('b-form-group',[_c('b-form-file',{attrs:{\"placeholder\":\"Choose a file or drop it here...\",\"drop-placeholder\":\"Drop file here...\",\"accept\":\"image/jpeg, image/bmp, image/png, image/jpg, application/pdf, .doc, .docx, application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\"plain\":\"\",\"disabled\":\"\"},on:{\"change\":function($event){return _vm.onDocumentsUpload(index, $event)}}}),(!item.url)?_c('div',{staticClass:\"upload-instruction\"},[_c('h4',[_vm._v(\"Upload Document File\")]),_c('p',[_vm._v(\"Drag & drop file or choose from your device to upload\")]),_c('p',{staticClass:\"format\"},[_vm._v(\"\\n Format accepted (jpg, bmp, png, jpeg, docx, pdf)\\n \")])]):_c('div',[(item.fileExtension === 'png'|| item.fileExtension === 'jpeg'|| item.fileExtension === 'jpg'|| item.fileExtension === 'bmp')?_c('div',[_c('b-img',{attrs:{\"src\":item.url,\"block\":\"\",\"rounded\":\"\",\"width\":\"250px\",\"height\":\"250px\"}})],1):(item.fileExtension === 'pdf')?_c('div',[_c('b-img',{attrs:{\"src\":_vm.pdfIcon,\"block\":\"\",\"rounded\":\"\",\"width\":\"250px\",\"height\":\"250px\"}})],1):(item.fileExtension === 'vnd')?_c('div',[_c('b-img',{attrs:{\"src\":_vm.wordIcon,\"block\":\"\",\"rounded\":\"\",\"width\":\"250px\",\"height\":\"250px\"}})],1):_c('div',[_c('b-img',{attrs:{\"src\":\"\"}})],1),(item.url)?_c('div',{staticClass:\"view-details\"},[_c('feather-icon',{staticClass:\"text-primary\",attrs:{\"icon\":\"EyeIcon\",\"size\":\"20\"},on:{\"click\":function($event){return _vm.viewDocumentFile(item.url, item.fileName, item.fileExtension)}}})],1):_vm._e()])],1)],1)]),(item.url)?_c('b-col',{staticClass:\"mt-0\",attrs:{\"md\":\"3\"}},[_c('b-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:\"ml-0\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.handleDownload(item.url)}}},[_c('feather-icon',{staticClass:\"mr-25\",attrs:{\"icon\":\"DownloadIcon\"}}),_c('span',[_vm._v(\"Download\")])],1)],1):_vm._e()],1)}),1)],1)],1)],1),_c('b-modal',{ref:\"my-modal\",attrs:{\"id\":\"modal-filter\",\"ok-title\":\"Apply\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"no-close-on-backdrop\":\"\",\"centered\":\"\",\"size\":\"lg\",\"title\":\"Filters\",\"modal-footer\":\"\"},on:{\"ok\":_vm.fetchCustomerInformation,\"cancel\":_vm.resetFilters}},[_c('b-row',{staticClass:\"match-height\"},[_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"customer-id\",\"label\":\"Customer ID\",\"placeholder\":\"Enter customer ID\",\"type\":\"text\"},model:{value:(_vm.filter.customerID),callback:function ($$v) {_vm.$set(_vm.filter, \"customerID\", $$v)},expression:\"filter.customerID\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"reference-id\",\"label\":\"Reference ID\",\"placeholder\":\"Enter Reference ID\",\"type\":\"text\",\"for\":\"reference-id\"},model:{value:(_vm.filter.oldCustomerID),callback:function ($$v) {_vm.$set(_vm.filter, \"oldCustomerID\", $$v)},expression:\"filter.oldCustomerID\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"name\",\"label\":\"Customer Name\",\"placeholder\":\"Enter name\",\"type\":\"text\"},model:{value:(_vm.filter.name),callback:function ($$v) {_vm.$set(_vm.filter, \"name\", $$v)},expression:\"filter.name\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"phone-number\",\"label\":\"Phone Number\",\"placeholder\":\"Enter phone number\",\"type\":\"number\"},model:{value:(_vm.filter.phoneNumber),callback:function ($$v) {_vm.$set(_vm.filter, \"phoneNumber\", $$v)},expression:\"filter.phoneNumber\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"email\",\"label\":\"Email\",\"placeholder\":\"Enter email\",\"type\":\"email\"},model:{value:(_vm.filter.email),callback:function ($$v) {_vm.$set(_vm.filter, \"email\", $$v)},expression:\"filter.email\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"bvn\",\"label\":\"BVN\",\"placeholder\":\"Enter BVN\",\"type\":\"text\",\"for\":\"bvn\"},model:{value:(_vm.filter.bvn),callback:function ($$v) {_vm.$set(_vm.filter, \"bvn\", $$v)},expression:\"filter.bvn\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"nin\",\"label\":\"NIN\",\"placeholder\":\"Enter NIN\",\"type\":\"text\",\"for\":\"nin\"},model:{value:(_vm.filter.nin),callback:function ($$v) {_vm.$set(_vm.filter, \"nin\", $$v)},expression:\"filter.nin\"}})],1),_c('b-col',{attrs:{\"md\":\"6\"}},[_c('InputField',{attrs:{\"id\":\"ippis-oracle-id\",\"label\":\"IPPIS/Oracle ID\",\"placeholder\":\"Enter IPPIS/Oracle ID\",\"type\":\"text\",\"for\":\"ippis-oracle-id\"},model:{value:(_vm.filter.employeeID),callback:function ($$v) {_vm.$set(_vm.filter, \"employeeID\", $$v)},expression:\"filter.employeeID\"}})],1)],1)],1),_c('b-modal',{ref:\"infoModal\",attrs:{\"id\":\"info-modal\",\"centered\":\"\",\"size\":\"md\",\"ok-only\":\"\",\"ok-title\":\"Okay\"},on:{\"ok\":function($event){return _vm.hideModal('info-modal')}}},[_c('div',{staticClass:\"p-2\"},[_c('p',[_vm._v(\"External Customer Reference \")])])]),_c('b-modal',{ref:\"avatarModal\",attrs:{\"id\":\"view-avatar-modal\",\"no-close-on-backdrop\":\"\",\"ok-title\":\"Download File\",\"cancel-title\":\"Cancel\",\"cancel-variant\":\"outline-secondary\",\"centered\":\"\",\"size\":\"lg\",\"title\":_vm.viewDocumentModalTitle},on:{\"hidden\":_vm.resetDocumentModal,\"cancel\":_vm.resetDocumentModal,\"ok\":function($event){return _vm.handleDownload(_vm.viewDocumentData)}}},[_c('div',{staticClass:\"m-2 text-center\"},[_c('b-row',[_c('b-col',{attrs:{\"cols\":\"12\"}},[(_vm.fileExtension === 'png'|| _vm.fileExtension === 'jpeg'|| _vm.fileExtension === 'jpg' || _vm.fileExtension === 'bmp')?_c('div',[_c('b-img',{attrs:{\"src\":_vm.viewDocumentData,\"block\":\"\",\"fluid\":\"\",\"rounded\":\"\"}})],1):(_vm.fileExtension === 'pdf')?_c('div',[_c('b-img',{attrs:{\"src\":_vm.pdfIcon,\"block\":\"\",\"width\":\"250px\",\"height\":\"250px\",\"rounded\":\"\"}})],1):(_vm.fileExtension === 'vnd')?_c('div',[_c('b-img',{attrs:{\"src\":_vm.wordIcon,\"block\":\"\",\"width\":\"250px\",\"height\":\"250px\",\"rounded\":\"\"}})],1):_c('div',[_c('b-img',{attrs:{\"src\":\"\"}})],1)])],1)],1)]),_c('FullScreenSpinner',{attrs:{\"show\":_vm.showSpinner}})],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 {{ getOverallIndex(data.index) }}\n \n\n \n {{ toDateWithYear(data.value) }}\n \n\n \n \n\n \n \n \n\n \n \n \n \n \n Modify\n \n \n \n View\n \n \n \n \n\n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n\n \n\n \n \n\n \n \n\n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n option.value\"\n label=\"Document Type\"\n placeholder=\"Select\"\n :options=\"documentTypeOptions\"\n item=\"label\"\n readonly\n />\n \n \n Upload Documents\n\n \n \n \n \n Upload Document File\n Drag & drop file or choose from your device to upload\n \n Format accepted (jpg, bmp, png, jpeg, docx, pdf)\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Download\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n External Customer Reference \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=5f4ff8a8&scoped=true&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=5f4ff8a8&scoped=true&lang=css&\"\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 \"5f4ff8a8\",\n null\n \n)\n\nexport default component.exports","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 { EVENT_NAME_BLUR, EVENT_NAME_CHANGE, EVENT_NAME_INPUT, EVENT_NAME_UPDATE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptBlur, attemptFocus } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props';\nimport { toString } from '../utils/string'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nexport { MODEL_PROP_NAME, MODEL_EVENT_NAME }; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n})), 'formTextControls'); // --- Mixin ---\n// @vue/component\n\nexport var formTextMixin = Vue.extend({\n mixins: [modelMixin],\n props: props,\n data: function data() {\n var value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass: function computedClass() {\n var plaintext = this.plaintext,\n type = this.type;\n var isRange = type === 'range';\n var isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce: function computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter: function hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue) {\n var stringifyValue = toString(newValue);\n var modifiedValue = this.modifyValue(newValue);\n\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce(); // Update the local values\n\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }),\n created: function created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n mounted: function mounted() {\n // Set up destroy handler\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, this.clearDebounce);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce: function clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue: function formatValue(value, event) {\n var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n\n return value;\n },\n modifyValue: function modifyValue(value) {\n value = toString(value); // Emulate `.trim` modifier behaviour\n\n if (this.trim) {\n value = value.trim();\n } // Emulate `.number` modifier behaviour\n\n\n if (this.number) {\n value = toFloat(value, value);\n }\n\n return value;\n },\n updateValue: function updateValue(value) {\n var _this = this;\n\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var lazy = this.lazy;\n\n if (lazy && !force) {\n return;\n } // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n\n\n this.clearDebounce(); // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n\n var doUpdate = function doUpdate() {\n value = _this.modifyValue(value);\n\n if (value !== _this.vModelValue) {\n _this.vModelValue = value;\n\n _this.$emit(MODEL_EVENT_NAME, value);\n } else if (_this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n\n /* istanbul ignore next: hard to test */\n var $input = _this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n }; // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n\n\n var debounce = this.computedDebounce;\n\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput: function onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event); // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n\n /* istanbul ignore next */\n\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur: function onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n var value = event.target.value;\n var formattedValue = this.formatValue(value, event, true);\n\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue)); // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n\n this.updateValue(formattedValue, true);\n } // Emit native blur event\n\n\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur: function blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_INPUT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { attemptBlur } from '../../utils/dom';\nimport { eventOn, eventOff, eventOnOff, stopEvent } from '../../utils/events';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenersMixin } from '../../mixins/listeners'; // --- Constants ---\n// Valid supported input types\n\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week']; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n list: makeProp(PROP_TYPE_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING),\n min: makeProp(PROP_TYPE_NUMBER_STRING),\n // Disable mousewheel to prevent wheel from changing values (i.e. number/date)\n noWheel: makeProp(PROP_TYPE_BOOLEAN, false),\n step: makeProp(PROP_TYPE_NUMBER_STRING),\n type: makeProp(PROP_TYPE_STRING, 'text', function (type) {\n return arrayIncludes(TYPES, type);\n })\n})), NAME_FORM_INPUT); // --- Main component ---\n// @vue/component\n\nexport var BFormInput = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_INPUT,\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n computed: {\n localType: function localType() {\n // We only allow certain types\n var type = this.type;\n return arrayIncludes(TYPES, type) ? type : 'text';\n },\n computedAttrs: function computedAttrs() {\n var type = this.localType,\n name = this.name,\n form = this.form,\n disabled = this.disabled,\n placeholder = this.placeholder,\n required = this.required,\n min = this.min,\n max = this.max,\n step = this.step;\n return {\n id: this.safeId(),\n name: name,\n form: form,\n type: type,\n disabled: disabled,\n placeholder: placeholder,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n min: min,\n max: max,\n step: step,\n list: type !== 'password' ? this.list : null,\n 'aria-required': required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n noWheel: function noWheel(newValue) {\n this.setWheelStopper(newValue);\n }\n },\n mounted: function mounted() {\n this.setWheelStopper(this.noWheel);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // Turn off listeners when keep-alive component deactivated\n\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n // Turn on listeners (if no-wheel) when keep-alive component activated\n\n /* istanbul ignore next */\n this.setWheelStopper(this.noWheel);\n },\n beforeDestroy: function beforeDestroy() {\n /* istanbul ignore next */\n this.setWheelStopper(false);\n },\n methods: {\n setWheelStopper: function setWheelStopper(on) {\n var input = this.$el; // We use native events, so that we don't interfere with propagation\n\n eventOnOff(on, input, 'focus', this.onWheelFocus);\n eventOnOff(on, input, 'blur', this.onWheelBlur);\n\n if (!on) {\n eventOff(document, 'wheel', this.stopWheel);\n }\n },\n onWheelFocus: function onWheelFocus() {\n eventOn(document, 'wheel', this.stopWheel);\n },\n onWheelBlur: function onWheelBlur() {\n eventOff(document, 'wheel', this.stopWheel);\n },\n stopWheel: function stopWheel(event) {\n stopEvent(event, {\n propagation: false\n });\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n return h('input', {\n class: this.computedClass,\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","export const removeSpecialChar = event => {\n const regex = /^[A-Za-z0-9 %-]$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const removeNegativeNumber = event => {\n const regex = /^\\d*\\.?\\d*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const removeCharAndSpace = event => {\n const regex = /^[A-Za-z0-9]$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const persistPhoneNumber = event => {\n const regex = /^[\\d,+]*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\nexport const persistAccountNumber = event => {\n const regex = /^[\\d,]*$/\n if (!regex.test(event.key)) {\n event.preventDefault()\n }\n}\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_TITLE,\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.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\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});","module.exports = __webpack_public_path__ + \"img/loader.eb08adcf.gif\";","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});","import { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_SUB_TITLE,\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.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\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\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputField.vue?vue&type=style&index=0&id=c26398c2&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=style&index=0&id=5f4ff8a8&scoped=true&lang=css&\"","import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_ROW } 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_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_ROW,\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: 'form-row'\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } 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 ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_VALID_FEEDBACK,\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 tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\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\nimport { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n role: feedbackAriaLive ? 'alert' : null,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\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_FORM_TEXT } 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 tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_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.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\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\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\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\nimport { Vue } from '../../vue';\nimport { NAME_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\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\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: this.$props,\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n size: makeProp(PROP_TYPE_STRING)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formSizeMixin = Vue.extend({\n props: props,\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\".concat(this.size) : null];\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-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}}],attrs:{\"variant\":_vm.variant,\"disabled\":_vm.disabled,\"size\":_vm.size,\"block\":_vm.block},on:{\"click\":_vm.onClick}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":_vm.icon,\"show-icon\":_vm.showIcon}}),(_vm.loading)?_c('b-spinner',{attrs:{\"small\":\"\"}}):_vm._e(),_c('span',{staticClass:\"align-middle\"},[_vm._v(\" \"+_vm._s(_vm.label))])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n {{ label }}\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=501d0161&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\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('div',[_c('b-form-group',[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]),_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('div',{staticClass:\"d-flex align-items-center\"},[_c('b-form-textarea',{attrs:{\"id\":_vm.id,\"value\":_vm.value,\"placeholder\":_vm.placeholder,\"state\":errors.length > 0 ? false:null,\"rows\":_vm.rows,\"maxlength\":_vm.maxlength,\"readonly\":_vm.readonly},on:{\"input\":_vm.onInput},nativeOn:{\"keypress\":function($event){return _vm.handleKeyPress.apply(null, arguments)}},model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_c('feather-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showIcon),expression:\"showIcon\"}],staticClass:\"cursor-pointer ml-1\",attrs:{\"icon\":_vm.icon,\"size\":_vm.iconSize},on:{\"click\":_vm.onClick}})],1),_c('small',{staticClass:\"text-danger\"},[_vm._v(_vm._s(errors[0]))])]}}])})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options, vnode) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver(vnode);\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver(vnode) {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n vnode.context.$nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref, vnode) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options, vnode); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\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\nimport { Vue } from '../../vue';\nimport { NAME_FORM_TEXTAREA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { getCS, getStyle, isVisible, requestAF, setStyle } from '../../utils/dom';\nimport { isNull } from '../../utils/inspect';\nimport { mathCeil, mathMax, mathMin } from '../../utils/math';\nimport { toInteger, toFloat } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formSelectionMixin } from '../../mixins/form-selection';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { formTextMixin, props as formTextProps } from '../../mixins/form-text';\nimport { formValidityMixin } from '../../mixins/form-validity';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { VBVisible } from '../../directives/visible/visible'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formControlProps), formSizeProps), formStateProps), formTextProps), {}, {\n maxRows: makeProp(PROP_TYPE_NUMBER_STRING),\n // When in auto resize mode, disable shrinking to content height\n noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable the resize handle of textarea\n noResize: makeProp(PROP_TYPE_BOOLEAN, false),\n rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),\n // 'soft', 'hard' or 'off'\n // Browser default is 'soft'\n wrap: makeProp(PROP_TYPE_STRING, 'soft')\n})), NAME_FORM_TEXTAREA); // --- Main component ---\n// @vue/component\n\nexport var BFormTextarea = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TEXTAREA,\n directives: {\n 'b-visible': VBVisible\n },\n // Mixin order is important!\n mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],\n props: props,\n data: function data() {\n return {\n heightInPx: null\n };\n },\n computed: {\n computedStyle: function computedStyle() {\n var styles = {\n // Setting `noResize` to true will disable the ability for the user to\n // manually resize the textarea. We also disable when in auto height mode\n resize: !this.computedRows || this.noResize ? 'none' : null\n };\n\n if (!this.computedRows) {\n // Conditionally set the computed CSS height when auto rows/height is enabled\n // We avoid setting the style to `null`, which can override user manual resize handle\n styles.height = this.heightInPx; // We always add a vertical scrollbar to the textarea when auto-height is\n // enabled so that the computed height calculation returns a stable value\n\n styles.overflowY = 'scroll';\n }\n\n return styles;\n },\n computedMinRows: function computedMinRows() {\n // Ensure rows is at least 2 and positive (2 is the native textarea value)\n // A value of 1 can cause issues in some browsers, and most browsers\n // only support 2 as the smallest value\n return mathMax(toInteger(this.rows, 2), 2);\n },\n computedMaxRows: function computedMaxRows() {\n return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));\n },\n computedRows: function computedRows() {\n // This is used to set the attribute 'rows' on the textarea\n // If auto-height is enabled, then we return `null` as we use CSS to control height\n return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;\n },\n computedAttrs: function computedAttrs() {\n var disabled = this.disabled,\n required = this.required;\n return {\n id: this.safeId(),\n name: this.name || null,\n form: this.form || null,\n disabled: disabled,\n placeholder: this.placeholder || null,\n required: required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.computedRows,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n };\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n input: this.onInput,\n change: this.onChange,\n blur: this.onBlur\n });\n }\n },\n watch: {\n localValue: function localValue() {\n this.setHeight();\n }\n },\n mounted: function mounted() {\n this.setHeight();\n },\n methods: {\n // Called by intersection observer directive\n\n /* istanbul ignore next */\n visibleCallback: function visibleCallback(visible) {\n if (visible) {\n // We use a `$nextTick()` here just to make sure any\n // transitions or portalling have completed\n this.$nextTick(this.setHeight);\n }\n },\n setHeight: function setHeight() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n _this.heightInPx = _this.computeHeight();\n });\n });\n },\n\n /* istanbul ignore next: can't test getComputedStyle in JSDOM */\n computeHeight: function computeHeight() {\n if (this.$isServer || !isNull(this.computedRows)) {\n return null;\n }\n\n var el = this.$el; // Element must be visible (not hidden) and in document\n // Must be checked after above checks\n\n if (!isVisible(el)) {\n return null;\n } // Get current computed styles\n\n\n var computedStyle = getCS(el); // Height of one line of text in px\n\n var lineHeight = toFloat(computedStyle.lineHeight, 1); // Calculate height of border and padding\n\n var border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);\n var padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0); // Calculate offset\n\n var offset = border + padding; // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)\n\n var minHeight = lineHeight * this.computedMinRows + offset; // Get the current style height (with `px` units)\n\n var oldHeight = getStyle(el, 'height') || computedStyle.height; // Probe scrollHeight by temporarily changing the height to `auto`\n\n setStyle(el, 'height', 'auto');\n var scrollHeight = el.scrollHeight; // Place the original old height back on the element, just in case `computedProp`\n // returns the same value as before\n\n setStyle(el, 'height', oldHeight); // Calculate content height in 'rows' (scrollHeight includes padding but not border)\n\n var contentRows = mathMax((scrollHeight - padding) / lineHeight, 2); // Calculate number of rows to display (limited within min/max rows)\n\n var rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows); // Calculate the required height of the textarea including border and padding (in pixels)\n\n var height = mathMax(mathCeil(rows * lineHeight + offset), minHeight); // Computed height remains the larger of `oldHeight` and new `height`,\n // when height is in `sticky` mode (prop `no-auto-shrink` is true)\n\n if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {\n return oldHeight;\n } // Return the new computed CSS height in px units\n\n\n return \"\".concat(height, \"px\");\n }\n },\n render: function render(h) {\n return h('textarea', {\n class: this.computedClass,\n style: this.computedStyle,\n directives: [{\n name: 'b-visible',\n value: this.visibleCallback,\n // If textarea is within 640px of viewport, consider it visible\n modifiers: {\n '640': true\n }\n }],\n attrs: this.computedAttrs,\n domProps: {\n value: this.localValue\n },\n on: this.computedListeners,\n ref: 'input'\n });\n }\n});","\n \n\n \n {{ label }}\n \n \n 0 ? false:null\"\n :rows=\"rows\"\n :maxlength=\"maxlength\"\n :readonly=\"readonly\"\n @input=\"onInput\"\n @keypress.native=\"handleKeyPress\"\n />\n \n \n {{ errors[0] }}\n \n \n\n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextAreaField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextAreaField.vue?vue&type=template&id=ecc47568&\"\nimport script from \"./TextAreaField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextAreaField.vue?vue&type=script&lang=js&\"\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 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, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/Vue.extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mx-2 mb-2\"},[_c('b-row',[_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-start\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$t('Showing'))+\" \"+_vm._s(_vm.from)+\" \"+_vm._s(_vm.$t('to'))+\" \"+_vm._s(_vm.to)+\" \"+_vm._s(_vm.$t('of'))+\" \"+_vm._s(_vm.totalRows)+\" \"+_vm._s(_vm.$t('entries'))+\" \")])]),_c('b-col',{staticClass:\"d-flex align-items-center justify-content-center justify-content-sm-end\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('Pagination',{attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-pagination',{staticClass:\"mb-0 mt-1 mt-sm-0\",attrs:{\"total-rows\":_vm.totalRows,\"per-page\":_vm.perPage,\"first-number\":\"\",\"last-number\":\"\",\"prev-class\":\"prev-item\",\"next-class\":\"next-item\"},scopedSlots:_vm._u([{key:\"prev-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronLeftIcon\",\"size\":\"18\"}})]},proxy:true},{key:\"next-text\",fn:function(){return [_c('feather-icon',{attrs:{\"icon\":\"ChevronRightIcon\",\"size\":\"18\"}})]},proxy:true}]),model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=24a69b3b&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\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 {{ $t('Showing') }} {{ from }} {{ $t('to') }} {{ to }} {{ $t('of') }} {{ totalRows }} {{ $t('entries') }} \n \n\n \n \n \n \n\n \n \n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TablePagination.vue?vue&type=template&id=77d3811a&\"\nimport script from \"./TablePagination.vue?vue&type=script&lang=js&\"\nexport * from \"./TablePagination.vue?vue&type=script&lang=js&\"\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=style&index=0&lang=scss&\"","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});","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableEntries.vue?vue&type=style&index=1&id=bcfccc92&lang=scss&scoped=true&\"","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true for is-valid\n * - false for is-invalid\n * - null for no contextual state\n */\nimport { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { isBoolean } from '../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Tri-state prop: true, false, null (or undefined)\n state: makeProp(PROP_TYPE_BOOLEAN, null)\n}, 'formState'); // --- Mixin ---\n// @vue/component\n\nexport var formStateMixin = Vue.extend({\n props: props,\n computed: {\n computedState: function computedState() {\n // If not a boolean, ensure that value is null\n return isBoolean(this.state) ? this.state : null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n return state === true ? 'is-valid' : state === false ? 'is-invalid' : null;\n },\n computedAriaInvalid: function computedAriaInvalid() {\n var ariaInvalid = this.ariaInvalid;\n\n if (ariaInvalid === true || ariaInvalid === 'true' || ariaInvalid === '') {\n return 'true';\n }\n\n return this.computedState === false ? 'true' : ariaInvalid;\n }\n }\n});","import { Vue } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = Vue.extend({\n props: props\n});","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=style&index=1&id=4d9d6277&lang=scss&scoped=true&\"","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_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props';\nimport { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Constants ---\n\nvar SELECTOR = 'input, textarea, select'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n autofocus: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n form: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n name: makeProp(PROP_TYPE_STRING),\n required: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formControlMixin = Vue.extend({\n props: props,\n mounted: function mounted() {\n this.handleAutofocus();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.handleAutofocus();\n },\n methods: {\n handleAutofocus: function handleAutofocus() {\n var _this = this;\n\n this.$nextTick(function () {\n requestAF(function () {\n var el = _this.$el;\n\n if (_this.autofocus && isVisible(el)) {\n if (!matches(el, SELECTOR)) {\n el = select(SELECTOR, el);\n }\n\n attemptFocus(el);\n }\n });\n });\n }\n }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('validation-provider',{attrs:{\"name\":_vm.errorName,\"rules\":_vm.rules},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar errors = ref.errors;\nreturn [_c('b-form-group',{attrs:{\"state\":errors.length > 0 ? false:null}},[_c('label',{attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]),_c('v-select',{attrs:{\"id\":_vm.id,\"dir\":_vm.$store.state.appConfig.isRTL ? 'rtl' : 'ltr',\"options\":_vm.options,\"placeholder\":_vm.placeholder,\"label\":_vm.item,\"clearable\":_vm.clearable,\"value\":_vm.value,\"disabled\":_vm.readonly,\"reduce\":_vm.reduce,\"multiple\":_vm.multiple},on:{\"input\":_vm.setSelected},scopedSlots:_vm._u([{key:\"spinner\",fn:function(ref){return [(_vm.loading)?_c('b-spinner',{attrs:{\"variant\":\"primary\",\"small\":\"\"}}):_vm._e()]}}],null,true),model:{value:(_vm.innerValue),callback:function ($$v) {_vm.innerValue=$$v},expression:\"innerValue\"}}),_c('b-form-invalid-feedback',{attrs:{\"state\":errors.length > 0 ? false:null}},[_vm._v(\"\\n \"+_vm._s(errors[0])+\"\\n \")])],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n \n 0 ? false:null\"\n >\n {{ label }}\n \n \n \n \n \n\n 0 ? false:null\">\n {{ errors[0] }}\n \n \n \n\n \n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectField.vue?vue&type=template&id=4d9d6277&scoped=true&\"\nimport script from \"./SelectField.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectField.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./SelectField.vue?vue&type=style&index=1&id=4d9d6277&lang=scss&scoped=true&\"\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 \"4d9d6277\",\n null\n \n)\n\nexport default component.exports","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.\n * It will read the variation of the `placement` property.\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.\n * These can be overridden using the `options` argument of Popper.js.\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\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":""}
\n {{ text }}\n
Drag & drop file or choose from your device to upload
\n Format accepted (jpg, bmp, png, jpeg, docx, pdf)\n
External Customer Reference