{"version":3,"sources":["webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-select/form-select-option.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-tags/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-spinbutton/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-select/form-select-option-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-input/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-textarea/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form/form-datalist.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/jumbotron/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form/form.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-checkbox/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-timepicker/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-timepicker/form-timepicker.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-spinbutton/form-spinbutton.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-group/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-rating/form-rating.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-select/helpers/mixin-options.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-select/form-select.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-datepicker/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-radio/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-tags/form-tags.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-radio/form-radio-group.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/jumbotron/jumbotron.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/image/img.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/image/img-lazy.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/input-group/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-file/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/image/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-rating/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-tags/form-tag.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-select/index.js","webpack:////build/ln98dgidwzsassisb5w7p2c25sp6wr48-source/node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox-group.js"],"names":["props","disabled","value","undefined","BFormSelectOption","extend","name","functional","render","h","_ref","data","children","attrs","domProps","FormTagsPlugin","components","BFormTags","BTags","BFormTag","BTag","FormSpinbuttonPlugin","BFormSpinbutton","BSpinbutton","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","label","BFormSelectOptionGroup","mixins","this","$options","formOptions","map","option","index","text","html","concat","normalizeSlot","FormInputPlugin","BFormInput","BInput","_watch","_makeModelMixin","type","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","calendarProps","formBtnLabelControlProps","calendarWidth","closeButton","closeButtonVariant","dark","labelCloseButton","labelResetButton","labelTodayButton","noCloseOnSelect","resetButton","resetButtonVariant","resetValue","todayButton","todayButtonVariant","BFormDatepicker","localYMD","isVisible","localLocale","isRTL","formattedValue","activeYMD","computed","calendarYM","slice","computedLang","replace","computedResetValue","watch","newValue","$emit","valueAsDate","oldValue","$refs","control","updatePopper","_unused","methods","focus","blur","setAndClose","ymd","_this","$nextTick","hide","onSelected","_this2","onInput","onContext","ctx","locale","selectedYMD","selectedFormatted","onTodayButton","min","max","onResetButton","onCloseButton","onShow","onShown","_this3","calendar","onHidden","defaultButtonFn","isHovered","hasFocus","$createElement","readonly","$props","$scopedSlots","placeholder","labelNoDateSelected","$footer","size","variant","on","click","_label","_label2","staticClass","class","$calendar","hidden","width","selected","input","context","scopedSlots","ref","id","safeId","lang","menuClass","rtl","show","shown","componentsPlugin","plugins","AlertPlugin","AspectPlugin","AvatarPlugin","BadgePlugin","BreadcrumbPlugin","ButtonPlugin","ButtonGroupPlugin","ButtonToolbarPlugin","CalendarPlugin","CardPlugin","CarouselPlugin","CollapsePlugin","DropdownPlugin","EmbedPlugin","FormPlugin","FormCheckboxPlugin","FormDatepickerPlugin","FormFilePlugin","FormGroupPlugin","FormRadioPlugin","FormRatingPlugin","FormSelectPlugin","FormTextareaPlugin","FormTimepickerPlugin","ImagePlugin","InputGroupPlugin","JumbotronPlugin","LayoutPlugin","LinkPlugin","ListGroupPlugin","MediaPlugin","ModalPlugin","NavPlugin","NavbarPlugin","OverlayPlugin","PaginationPlugin","PaginationNavPlugin","PopoverPlugin","ProgressPlugin","SidebarPlugin","SkeletonPlugin","SpinnerPlugin","TablePlugin","TabsPlugin","TimePlugin","ToastPlugin","TooltipPlugin","defaultValue","validator","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","every","v","getDataTransferItemEntry","item","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","Promise","all","kind","entry","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","resolve","file","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","then","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","BFormFile","inheritAttrs","files","dragging","dropAllowed","computedAccept","trim","split","extOrType","startMatch","endMatch","test","rx","RegExp","computedCapture","computedAttrs","required","form","bvAttrs","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","allowed","hasNormalizedSlot","filesTraversed","names","reset","created","$_form","mounted","$form","$el","beforeDestroy","isFileValid","some","a","isFilesArrayValid","join","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","add","$input","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","plain","onChange","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","onDrop","_this4","custom","stateClass","style","zIndex","change","focusin","focusout","$label","for","pointerEvents","dragenter","dragover","dragleave","drop","BFormTextarea","BTextarea","BFormDatalist","BJumbotron","BInputGroupAppend","append","INPUTS","INPUT_SELECTOR","LEGEND_INTERACTIVE_ELEMENTS","generateProps","reduce","breakpoint","description","feedbackAriaLive","invalidFeedback","labelClass","labelFor","labelSize","labelSrOnly","tooltip","validFeedback","validated","BFormGroup","ariaDescribedby","contentColProps","getColProps","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","updateAriaDescribedby","prefix","result","propValue","content","attr","newIds","oldIds","ids","indexOf","onLegendClick","tagName","inputs","state","computedState","isFieldset","labelId","labelTag","tag","tabindex","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","ariaLive","role","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","$content","computedAriaInvalid","appendHtml","prepend","prependHtml","BInputGroup","slots","$slots","slotScope","$prepend","hasPrependSlot","$append","hasAppendSlot","inline","novalidate","BForm","BFormCheckbox","BCheckbox","BCheck","BFormCheckboxGroup","BCheckboxGroup","BCheckGroup","textVariant","BFormText","maxRows","noAutoShrink","noResize","rows","wrap","directives","heightInPx","computedStyle","styles","resize","computedRows","height","overflowY","computedMinRows","computedMaxRows","autocomplete","plaintext","computedListeners","bvListeners","onBlur","localValue","setHeight","visibleCallback","visible","computeHeight","$isServer","el","lineHeight","border","borderTopWidth","borderBottomWidth","padding","paddingTop","paddingBottom","offset","minHeight","oldHeight","scrollHeight","contentRows","computedClass","modifiers","BFormTimepicker","BTimepicker","timeProps","labelNowButton","noCloseButton","nowButton","nowButtonVariant","localHMS","hms","formatted","onNowButton","now","Date","hours","getHours","minutes","getMinutes","seconds","showSeconds","getSeconds","time","labelNoTimeSelected","$time","forceShow","BFormValidFeedback","DEFAULT_MIN","DEFAULT_MAX","DEFAULT_STEP","DEFAULT_REPEAT_DELAY","DEFAULT_REPEAT_INTERVAL","DEFAULT_REPEAT_THRESHOLD","DEFAULT_REPEAT_MULTIPLIER","KEY_CODES","ariaControls","ariaLabel","formatterFn","labelDecrement","labelIncrement","repeatDelay","repeatInterval","repeatStepMultiplier","repeatThreshold","step","vertical","spinId","computedInline","computedReadonly","computedRequired","computedStep","computedMin","computedMax","computedDelay","delay","computedInterval","interval","computedThreshold","computedStepMultiplier","computedPrecision","toString","computedMultiplier","valueAsFixed","toFixed","computedLocale","locales","nf","Intl","NumberFormat","resolvedOptions","computedRTL","defaultFormatter","precision","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","notation","format","computedFormatter","title","computedSpinAttrs","hasValue","dir","_disabled","clearRepeat","_readonly","$_autoDelayTimer","$_autoRepeatTimer","$_keyIsDown","deactivated","spinner","emitChange","stepValue","direction","multiplier","onFocusBlur","stepUp","stepDown","onKeydown","keyCode","altKey","ctrlKey","metaKey","propagation","resetTimers","handleStepRepeat","onKeyup","stepper","button","threshold","setTimeout","count","setInterval","onMouseup","_ref2","setMouseup","document","body","clearTimeout","clearInterval","makeButton","IconCmp","keyRef","shortcut","btnDisabled","slotName","$icon","scale","scope","handler","currentTarget","mousedown","touchstart","$increment","$decrement","$hidden","$spin","sizeFormClass","keydown","keyup","BFormFieldset","MIN_STARS","DEFAULT_STARS","computeStars","stars","clampValue","BVFormRatingStar","focused","hasClear","rating","star","onClick","minStar","color","iconClear","iconEmpty","iconFull","iconHalf","noBorder","showClear","showValue","showValueMax","BFormRating","BIconStar","BIconStarHalf","BIconStarFill","BIconX","computedStars","computedRating","isInteractive","formattedRating","formatOptions","isNaN","toLocaleString","amountRtl","onFocus","renderIcon","icon","iconEmptyFn","iconHalfFn","iconFullFn","iconClearFn","empty","half","full","labelField","optionsField","optionsMixin","normalizeOption","get","valueField","textField","options","String","htmlField","Boolean","disabledField","normalizeOptions","model","ariaInvalid","selectSize","BFormSelect","computedSelectSize","inputClass","selectedValue","array","o","_value","BDatepicker","BFormRadio","BRadio","BFormRadioGroup","BRadioGroup","BInputGroupText","_objectSpread2","MODEL_PROP_NAME_INDETERMINATE","MODEL_EVENT_NAME_INDETERMINATE","inject","bvGroup","from","default","isChecked","checked","computedLocalChecked","isRadio","setIndeterminate","computedLocalCheckedWatcher","indeterminate","handleChange","_ref$target","uncheckedValue","localChecked","isGroup","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","minLen","_arrayLikeToArray","n","prototype","call","constructor","Array","iter","Symbol","iterator","isArray","len","arr2","TYPES","DEFAULT_INPUT_FOCUS_SELECTOR","escapeRegExpChars","str","cleanTags","tags","processEventValue","cleanTagsState","valid","invalid","duplicate","addButtonText","addButtonVariant","addOnChange","duplicateTagText","ignoreInputFocusSelector","inputAttrs","inputId","inputType","invalidTagText","limit","limitTagsText","noAddOnEnter","noOuterFocus","noTagRemove","removeOnDelete","separator","tagClass","tagPills","tagRemoveLabel","tagRemovedLabel","tagValidator","tagVariant","newTag","removedTags","tagsState","computedInputId","computedInputType","computedInputAttrs","computedInputHandlers","onInputInput","onInputChange","onInputKeydown","computedSeparator","computedSeparatorRegExp","computedJoiner","joiner","charAt","computeIgnoreInputFocusSelector","disableAddButton","splitTags","t","validateTag","duplicateTags","hasDuplicateTags","invalidTags","hasInvalidTags","isLimitReached","old","$on","addTag","parsed","parseTags","getInput","invalidAndDuplicates","removeTag","composing","separatorRe","_this5","ignoreFocusSelector","onFocusin","onFocusout","handleAutofocus","_this6","autofocus","_this7","defaultRender","inputHandlers","isDuplicate","isInvalid","$tags","noRemove","pill","removeLabel","remove","duplicateFeedbackId","limitFeedbackId","outline","minWidth","$button","invisible","fontSize","tagListId","$field","$ul","$feedback","$invalid","$duplicate","$limit","$output","$removed","hasTags","provide","bvRadioGroup","isRadioGroup","bgVariant","borderVariant","containerFluid","fluid","header","headerHtml","headerLevel","headerTag","lead","leadHtml","leadTag","_class2","$header","hasHeaderSlot","$lead","hasLeadSlot","$children","BFormInvalidFeedback","isText","BInputGroupAddon","BLANK_TEMPLATE","makeBlankImgSrc","src","encodeURIComponent","alt","blank","blankColor","block","center","fluidGrow","left","right","rounded","sizes","srcset","thumbnail","BImg","_class","align","buttonOnly","buttonVariant","labelSelected","BVFormBtnLabelControl","idButton","idLabel","idMenu","idWrapper","computedDir","toggle","setFocus","handleHover","hovered","btnScope","opened","onMousedown","$menu","preventDefault","directionClass","boundaryClass","MODEL_PROP_NAME_SHOW","MODEL_EVENT_NAME_SHOW","imgProps","blankHeight","blankSrc","blankWidth","BImgLazy","isShown","computedSrc","computedBlank","computedWidth","computedHeight","computedSrcset","computedSizes","updateShowProp","doShow","_modifiers","BDatalist","BFormFeedback","BFormRow","BInputGroupPrepend","BFile","BRating","onRemove","tagId","tagLabelId","$remove","$tag","list","noWheel","localType","setWheelStopper","activated","onWheelFocus","onWheelBlur","stopWheel","BSelect","BSelectOption","BSelectOptionGroup","bvCheckGroup"],"mappings":"0HAAA,kGAKWA,EAAQ,eAAsB,CACvCC,SAAU,eAAS,QAAmB,GACtCC,MAAO,eAAS,YAAeC,GAAW,IAEzC,SAGQC,EAAiC,aAAIC,OAAO,CACrDC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAChBV,EAAQF,EAAME,MACdD,EAAWD,EAAMC,SACrB,OAAOQ,EAAE,SAAU,eAAUE,EAAM,CACjCE,MAAO,CACLZ,SAAUA,GAEZa,SAAU,CACRZ,MAAOA,KAEPU,O,oCC7BR,0EAGIG,EAA8B,eAAc,CAC9CC,WAAY,CACVC,UAAW,OACXC,MAAO,OACPC,SAAU,OACVC,KAAM,W,oCCRV,8DAEIC,EAAoC,eAAc,CACpDL,WAAY,CACVM,gBAAiB,OACjBC,YAAa,W,oCCLjB,uKAASC,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAapM,IAAIjD,EAAQ,eAAsB,eAASqC,EAAcA,EAAc,GAAI,QAAmB,GAAI,CACvGe,MAAO,eAAS,YAAkBjD,GAAW,MAE1C,SAGMkD,EAAsC,aAAIhD,OAAO,CAC1DC,KAAM,QACNgD,OAAQ,CAAC,OAAoB,QAC7BtD,MAAOA,EACPQ,OAAQ,SAAgBC,GACtB,IAAI2C,EAAQG,KAAKH,MACbI,EAAWD,KAAKE,YAAYC,KAAI,SAAUC,EAAQC,GACpD,IAAI1D,EAAQyD,EAAOzD,MACf2D,EAAOF,EAAOE,KACdC,EAAOH,EAAOG,KACd7D,EAAW0D,EAAO1D,SACtB,OAAOQ,EAAE,OAAmB,CAC1BI,MAAO,CACLX,MAAOA,EACPD,SAAUA,GAEZa,SAAU,eAAWgD,EAAMD,GAC3BjB,IAAK,UAAUmB,OAAOH,QAG1B,OAAOnD,EAAE,WAAY,CACnBI,MAAO,CACLuC,MAAOA,IAER,CAACG,KAAKS,cAAc,QAAkBR,EAAUD,KAAKS,sB,kCC/C5D,8DAEIC,EAA+B,eAAc,CAC/CjD,WAAY,CACVkD,WAAY,OACZC,OAAQ,W,oCCLZ,sCAAIC,EAAJ,gMAEA,SAAS5C,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAmB3M,IAAIoB,EAAkB,eAAe,QAAS,CAC5CC,KAAM,SAEJC,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBrE,MAC7B0E,EAAkBL,EAAgBM,KAClCC,EAAmBP,EAAgBQ,MAGnCC,EAAgB,eAAK,OAAgB,CAAC,QAAS,SAAU,KAAM,WAAY,kBAAmB,QAAS,UACvGC,EAA2B,eAAK,OAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7F/E,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUoC,GAAaK,GAAgBC,GAA2B,GAAI,CAEhMC,cAAe,eAAS,OAAkB,SAC1CC,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,qBAE/CC,KAAM,eAAS,QAAmB,GAClCC,iBAAkB,eAAS,OAAkB,SAC7CC,iBAAkB,eAAS,OAAkB,SAC7CC,iBAAkB,eAAS,OAAkB,gBAC7CC,gBAAiB,eAAS,QAAmB,GAC7CC,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,kBAC/CC,WAAY,eAAS,QACrBC,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,sBAC5C,QAGMC,EAA+B,aAAIxF,OAAO,CACnDC,KAAM,OACNgD,OAAQ,CAAC,OAASiB,GAClBvE,MAAOA,EACPW,KAAM,WACJ,MAAO,CAELmF,SAAU,eAAUvC,KAAKmB,KAAqB,GAE9CqB,WAAW,EAEXC,YAAa,KACbC,OAAO,EACPC,eAAgB,GAChBC,UAAW,KAGfC,SAAU,CACRC,WAAY,WAGV,OAAO9C,KAAK4C,UAAUG,MAAM,GAAI,IAElCC,aAAc,WACZ,OAAQhD,KAAKyC,aAAe,IAAIQ,QAAQ,UAAW,KAAO,MAE5DC,mBAAoB,WAClB,OAAO,eAAU,eAAclD,KAAKmC,cAAgB,KAGxDgB,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQM,GAAiB,SAAUiC,GACtEpD,KAAKuC,SAAW,eAAUa,IAAa,MACrC9D,EAAgBuB,EAAQ,YAAY,SAAkBuC,GAEpDpD,KAAKwC,WACPxC,KAAKqD,MAAMhC,EAAkBrB,KAAKsD,YAAc,eAASF,IAAa,KAAOA,GAAY,OAEzF9D,EAAgBuB,EAAQ,cAAc,SAAoBuC,EAAUG,GAItE,GAAIH,IAAaG,GAAYA,EAC3B,IACEvD,KAAKwD,MAAMC,QAAQC,eACnB,MAAOC,QAET9C,GACJ+C,QAAS,CAEPC,MAAO,WACA7D,KAAKtD,UACR,eAAasD,KAAKwD,MAAMC,UAG5BK,KAAM,WACC9D,KAAKtD,UACR,eAAYsD,KAAKwD,MAAMC,UAI3BM,YAAa,SAAqBC,GAChC,IAAIC,EAAQjE,KAEZA,KAAKuC,SAAWyB,EAEXhE,KAAKgC,iBACRhC,KAAKkE,WAAU,WACbD,EAAMT,MAAMC,QAAQU,MAAK,OAI/BC,WAAY,SAAoBJ,GAC9B,IAAIK,EAASrE,KAEbA,KAAKkE,WAAU,WACbG,EAAON,YAAYC,OAGvBM,QAAS,SAAiBN,GACpBhE,KAAKuC,WAAayB,IACpBhE,KAAKuC,SAAWyB,IAGpBO,UAAW,SAAmBC,GAC5B,IAAI5B,EAAY4B,EAAI5B,UAChBF,EAAQ8B,EAAI9B,MACZ+B,EAASD,EAAIC,OACbC,EAAcF,EAAIE,YAClBC,EAAoBH,EAAIG,kBAC5B3E,KAAK0C,MAAQA,EACb1C,KAAKyC,YAAcgC,EACnBzE,KAAK2C,eAAiBgC,EACtB3E,KAAKuC,SAAWmC,EAChB1E,KAAK4C,UAAYA,EAEjB5C,KAAKqD,MAAM,OAAoBmB,IAEjCI,cAAe,WAEb5E,KAAK+D,YAAY,eAAU,eAAc,iBAAc/D,KAAK6E,IAAK7E,KAAK8E,QAExEC,cAAe,WACb/E,KAAK+D,YAAY/D,KAAKkD,qBAExB8B,cAAe,WACbhF,KAAKwD,MAAMC,QAAQU,MAAK,IAG1Bc,OAAQ,WACNjF,KAAKwC,WAAY,GAEnB0C,QAAS,WACP,IAAIC,EAASnF,KAEbA,KAAKkE,WAAU,WACb,eAAaiB,EAAO3B,MAAM4B,UAE1BD,EAAO9B,MAAM,YAGjBgC,SAAU,WACRrF,KAAKwC,WAAY,EACjBxC,KAAKqD,MAAM,SAGbiC,gBAAiB,SAAyBnI,GACxC,IAAIoI,EAAYpI,EAAKoI,UACjBC,EAAWrI,EAAKqI,SACpB,OAAOxF,KAAKyF,eAAeF,GAAaC,EAAW,QAAoB,QAAe,CACpFlI,MAAO,CACL,cAAe,YAKvBL,OAAQ,SAAgBC,GACtB,IAAIqF,EAAWvC,KAAKuC,SAChB7F,EAAWsD,KAAKtD,SAChBgJ,EAAW1F,KAAK0F,SAChB9D,EAAO5B,KAAK4B,KACZ+D,EAAS3F,KAAK2F,OACdC,EAAe5F,KAAK4F,aACpBC,EAAc,eAAkB7F,KAAK6F,aAAe7F,KAAK8F,oBAAsB9F,KAAK6F,YAEpFE,EAAU,GAEd,GAAI/F,KAAKoC,YAAa,CACpB,IAAIvC,EAAQG,KAAK+B,iBACjBgE,EAAQnH,KAAK1B,EAAE,OAAS,CACtBT,MAAO,CACLC,SAAUA,GAAYgJ,EACtBM,KAAM,KACNC,QAASjG,KAAKqC,oBAEhB/E,MAAO,CACL,aAAcuC,GAAS,MAEzBqG,GAAI,CACFC,MAAOnG,KAAK4E,gBAEb/E,IAGL,GAAIG,KAAKiC,YAAa,CACpB,IAAImE,EAASpG,KAAK8B,iBAClBiE,EAAQnH,KAAK1B,EAAE,OAAS,CACtBT,MAAO,CACLC,SAAUA,GAAYgJ,EACtBM,KAAM,KACNC,QAASjG,KAAKkC,oBAEhB5E,MAAO,CACL,aAAc8I,GAAU,MAE1BF,GAAI,CACFC,MAAOnG,KAAK+E,gBAEbqB,IAGL,GAAIpG,KAAK0B,YAAa,CACpB,IAAI2E,EAAUrG,KAAK6B,iBACnBkE,EAAQnH,KAAK1B,EAAE,OAAS,CACtBT,MAAO,CACLC,SAAUA,EACVsJ,KAAM,KACNC,QAASjG,KAAK2B,oBAEhBrE,MAAO,CACL,aAAc+I,GAAW,MAE3BH,GAAI,CACFC,MAAOnG,KAAKgF,gBAEbqB,IAGDN,EAAQ7G,OAAS,IACnB6G,EAAU,CAAC7I,EAAE,MAAO,CAClBoJ,YAAa,wCACbC,MAAO,CACL,0BAA2BR,EAAQ7G,OAAS,EAC5C,sBAAuB6G,EAAQ7G,OAAS,IAEzC6G,KAGL,IAAIS,EAAYtJ,EAAE,OAAW,CAC3BoJ,YAAa,6BACb7J,MAAOqC,EAAcA,EAAc,GAAI,eAAWyC,EAAeoE,IAAU,GAAI,CAC7Ec,QAASzG,KAAKwC,UACd7F,MAAO4F,EACPe,aAAa,EACboD,MAAO1G,KAAKyB,gBAEdyE,GAAI,CACFS,SAAU3G,KAAKoE,WACfwC,MAAO5G,KAAKsE,QACZuC,QAAS7G,KAAKuE,WAEhBuC,YAAa,eAAKlB,EAAc,CAAC,kBAAmB,gBAAiB,iBAAkB,iBAAkB,iBAAkB,gBAAiB,oBAC5IvG,IAAK,WACL0H,IAAK,YACJhB,GACH,OAAO7I,EAAE,OAAuB,CAC9BoJ,YAAa,oBACb7J,MAAOqC,EAAcA,EAAc,GAAI,eAAW0C,EAA0BmE,IAAU,GAAI,CACxFhD,eAAgBJ,EAAWvC,KAAK2C,eAAiB,GACjDqE,GAAIhH,KAAKiH,SACTC,KAAMlH,KAAKgD,aACXmE,UAAW,CAAC,CACV,UAAWvF,EACX,aAAcA,GACb5B,KAAKmH,WACRtB,YAAaA,EACbuB,IAAKpH,KAAK0C,MACV/F,MAAO4F,IAET2D,GAAI,CACFmB,KAAMrH,KAAKiF,OACXqC,MAAOtH,KAAKkF,QACZuB,OAAQzG,KAAKqF,UAEfyB,YAAaxH,EAAgB,GAAI,OAA0BsG,EAAa,SAA6B5F,KAAKsF,iBAC1GyB,IAAK,WACJ,CAACP,Q,oCC5SR,2oBAsDWe,GAAgC,eAAc,CACvDC,QAAS,CACPC,YAAa,OACbC,aAAc,OACdC,aAAc,OACdC,YAAa,OACbC,iBAAkB,OAClBC,aAAc,OACdC,kBAAmB,OACnBC,oBAAqB,OACrBC,eAAgB,OAChBC,WAAY,OACZC,eAAgB,OAChBC,eAAgB,OAChBC,eAAgB,OAChBC,YAAa,OACbC,WAAY,OACZC,mBAAoB,OACpBC,qBAAsB,OACtBC,eAAgB,OAChBC,gBAAiB,OACjBjI,gBAAiB,OACjBkI,gBAAiB,OACjBC,iBAAkB,OAClBC,iBAAkB,OAClBhL,qBAAsB,OACtBN,eAAgB,OAChBuL,mBAAoB,OACpBC,qBAAsB,OACtBC,YAAa,OACbC,iBAAkB,OAClBC,gBAAiB,OACjBC,aAAc,OACdC,WAAY,OACZC,gBAAiB,OACjBC,YAAa,OACbC,YAAa,OACbC,UAAW,OACXC,aAAc,OACdC,cAAe,OACfC,iBAAkB,OAClBC,oBAAqB,OACrBC,cAAe,OACfC,eAAgB,OAChBC,cAAe,OACfC,eAAgB,OAChBC,cAAe,OACfC,YAAa,OACbC,WAAY,OACZC,WAAY,OACZC,YAAa,OACbC,cAAe,W,kCCzGnB,sCAAI1J,EAAJ,oUAEA,SAAS5C,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EA8B3M,IAAIoB,EAAkB,eAAe,QAAS,CAC5CC,KAAM,CAAC,OAAiB,QACxByJ,aAAc,KACdC,UAAW,SAAmB9N,GAE5B,MAAc,KAAVA,GACF,eAAK+N,EAA4B,SAC1B,GAGF,eAAkB/N,IAAUgO,EAAahO,MAGhDqE,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBrE,MAC7B0E,EAAkBL,EAAgBM,KAClCC,EAAmBP,EAAgBQ,MAEnCoJ,EAA6B,+FAE7BC,EAAe,SAASA,EAAahO,GACvC,OAAO,eAAOA,IAAU,eAAQA,IAAUA,EAAMiO,OAAM,SAAUC,GAC9D,OAAOF,EAAaE,OAOpBC,EAA2B,SAAkCC,GAC/D,OAAO,eAAWA,EAAKC,YAAcD,EAAKC,aAAe,eAAWD,EAAKE,kBAAoBF,EAAKE,mBAAqB,MAMrHC,EAAoB,SAA2BC,GACjD,IAAIC,IAAsBnM,UAAUC,OAAS,QAAsBtC,IAAjBqC,UAAU,KAAmBA,UAAU,GACzF,OAAOoM,QAAQC,IAAI,eAAUH,GAAsB3M,QAAO,SAAUuM,GAClE,MAAqB,SAAdA,EAAKQ,QACXpL,KAAI,SAAU4K,GACf,IAAIS,EAAQV,EAAyBC,GAErC,GAAIS,EAAO,CACT,GAAIA,EAAMC,aAAeL,EACvB,OAAOM,EAA6BF,EAAMG,eAAgB,GAAGnL,OAAOgL,EAAMzO,KAAM,MAC3E,GAAIyO,EAAMI,OACf,OAAO,IAAIP,SAAQ,SAAUQ,GAC3BL,EAAMM,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GACbF,EAAQC,SAMhB,OAAO,QACNtN,OAAO,UAMRkN,EAA+B,SAASA,EAA6BM,GACvE,IAAIC,EAAOhN,UAAUC,OAAS,QAAsBtC,IAAjBqC,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAO,IAAIoM,SAAQ,SAAUQ,GAC3B,IAAIK,EAAgB,GAEhBC,EAAuB,SAASA,IAClCH,EAAgBI,aAAY,SAAUC,GACb,IAAnBA,EAAQnN,OACV2M,EAAQR,QAAQC,IAAIY,GAAeI,MAAK,SAAUD,GAChD,OAAO,eAAQA,QAGjBH,EAActN,KAAKyM,QAAQC,IAAIe,EAAQlM,KAAI,SAAUqL,GACnD,GAAIA,EAAO,CACT,GAAIA,EAAMC,YACR,OAAOC,EAA6BF,EAAMG,eAAgB,GAAGnL,OAAOyL,GAAMzL,OAAOgL,EAAMzO,KAAM,MACxF,GAAIyO,EAAMI,OACf,OAAO,IAAIP,SAAQ,SAAUQ,GAC3BL,EAAMM,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GAAGvL,OAAOyL,GAAMzL,OAAOsL,EAAK/O,MACzC8O,EAAQC,SAMhB,OAAO,QACNtN,OAAO,UACV2N,SAKNA,QAKA1P,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUoC,GAAa,QAAmB,QAAkB,QAAiB,QAAgB,GAAI,CAChPqL,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,GACxCnH,YAAa,eAAS,OAAkB,qBACrC,QAGMoH,EAAyB,aAAInQ,OAAO,CAC7CC,KAAM,OACNgD,OAAQ,CAAC,OAAY,OAASiB,EAAY,OAAoB,OAAkB,OAAgB,OAAiB,QACjHkM,cAAc,EACdzQ,MAAOA,EACPW,KAAM,WACJ,MAAO,CACL+P,MAAO,GACPC,UAAU,EAIVC,aAAcrN,KAAK8M,OACnBtH,UAAU,IAGd3C,SAAU,CAERyK,eAAgB,WACd,IAAIf,EAASvM,KAAKuM,OAGlB,OAFAA,GAAUA,GAAU,IAAIgB,OAAOC,MAAM,UAAUhP,OAAO,QAEhC,IAAlB+N,EAAOrN,OACF,KAGFqN,EAAOpM,KAAI,SAAUsN,GAC1B,IAAIrM,EAAO,OACPsM,EAAa,IACbC,EAAW,IAEX,OAAaC,KAAKH,GAEpBC,EAAa,IAGbtM,EAAO,OAEH,OAAQwM,KAAKH,KACfE,EAAW,MAEXF,EAAYA,EAAU1K,MAAM,GAAI,KAKpC0K,EAAY,eAAaA,GACzB,IAAII,EAAK,IAAIC,OAAO,GAAGtN,OAAOkN,GAAYlN,OAAOiN,GAAWjN,OAAOmN,IACnE,MAAO,CACLE,GAAIA,EACJzM,KAAMA,OAIZ2M,gBAAiB,WACf,IAAItB,EAAUzM,KAAKyM,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,IAAwBA,GAAW,OAEhEuB,cAAe,WACb,IAAIjR,EAAOiD,KAAKjD,KACZL,EAAWsD,KAAKtD,SAChBuR,EAAWjO,KAAKiO,SAChBC,EAAOlO,KAAKkO,KACZH,EAAkB/N,KAAK+N,gBACvBxB,EAASvM,KAAKuM,OACdM,EAAW7M,KAAK6M,SAChBH,EAAY1M,KAAK0M,UACrB,OAAO5N,EAAcA,EAAc,GAAIkB,KAAKmO,SAAU,GAAI,CACxDpN,KAAM,OACNiG,GAAIhH,KAAKiH,SACTlK,KAAMA,EACNL,SAAUA,EACVuR,SAAUA,EACVC,KAAMA,GAAQ,KACdzB,QAASsB,EACTxB,OAAQA,GAAU,KAClBM,SAAUA,EACVH,UAAWA,EACX0B,gBAAiB1B,EACjB,gBAAiBuB,EAAW,OAAS,QAGzCI,0BAA2B,WACzB,IAAIzB,EAAoB5M,KAAK4M,kBAC7B,OAAO,eAAgBA,GAAqBA,EAAoB5M,KAAKsO,0BAEvEC,YAAa,WACX,OAAO,eAAUvO,KAAKmN,QAExBqB,eAAgB,WACd,OAAO,eAAYxO,KAAKmN,QAE1BsB,UAAW,WACT,OAAOzO,KAAKwO,eAAerO,KAAI,SAAU2L,GACvC,OAAOA,EAAK/O,SAGhB2R,aAAc,WAIZ,GAAI1O,KAAKoN,WAAapN,KAAK8M,OACzB,OACE9M,KAAKS,cAAc,OAA4B,CAC7CkO,QAAS3O,KAAKqN,gBACTrN,KAAKqN,YAAcrN,KAAK2M,gBAAkB3M,KAAKyF,eAAe,OAAQ,CAC3Ea,YAAa,eACZtG,KAAK+M,oBAKZ,GAA0B,IAAtB/M,KAAKmN,MAAMjO,OACb,OAAOc,KAAKS,cAAc,SAA0BT,KAAK6F,YAG3D,IAAI2I,EAAiBxO,KAAKwO,eACtBD,EAAcvO,KAAKuO,YACnBE,EAAYzO,KAAKyO,UACjBJ,EAA4BrO,KAAKqO,0BAErC,OAAIrO,KAAK4O,kBAAkB,QAClB5O,KAAKS,cAAc,OAAqB,CAC7C0M,MAAOqB,EACPK,eAAgBN,EAChBO,MAAOL,IAIJJ,EAA0BG,EAAgBD,EAAaE,KAGlEtL,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQM,GAAiB,SAAUiC,KACjEA,GAAY,eAAQA,IAAiC,IAApBA,EAASlE,SAC7Cc,KAAK+O,WAELzP,EAAgBuB,EAAQ,SAAS,SAAeuC,EAAUG,GAC5D,IAAK,eAAWH,EAAUG,GAAW,CACnC,IAAIsJ,EAAW7M,KAAK6M,SAChBG,EAAahN,KAAKgN,WAClBG,GAASN,GAAYG,EAAa,eAAY5J,GAAYA,EAC9DpD,KAAKqD,MAAMhC,EAAkBwL,EAAWM,EAAQA,EAAM,IAAM,UAE5DtM,GACJmO,QAAS,WAEPhP,KAAKiP,OAAS,MAEhBC,QAAS,WAEP,IAAIC,EAAQ,eAAQ,OAAQnP,KAAKoP,KAE7BD,IACF,eAAQA,EAAO,QAASnP,KAAK+O,MAAO,SACpC/O,KAAKiP,OAASE,IAGlBE,cAAe,WACb,IAAIF,EAAQnP,KAAKiP,OAEbE,GACF,eAASA,EAAO,QAASnP,KAAK+O,MAAO,UAGzCnL,QAAS,CACP0L,YAAa,SAAqBxD,GAChC,IAAKA,EACH,OAAO,EAGT,IAAIS,EAASvM,KAAKsN,eAClB,OAAOf,GAASA,EAAOgD,MAAK,SAAUC,GACpC,OAAOA,EAAE3B,GAAGD,KAAK9B,EAAK0D,EAAEpO,WAG5BqO,kBAAmB,SAA2BtC,GAC5C,IAAIlJ,EAAQjE,KAEZ,OAAO,eAAQmN,GAASA,EAAMvC,OAAM,SAAUkB,GAC5C,OAAO7H,EAAMqL,YAAYxD,MACtB9L,KAAKsP,YAAYnC,IAExBmB,yBAA0B,SAAkCE,EAAgBD,EAAaE,GACvF,OAAOA,EAAUiB,KAAK,OAExBC,SAAU,SAAkBxC,GAE1BnN,KAAKqN,aAAerN,KAAK8M,OACzB9M,KAAKoN,UAAW,EAEhBpN,KAAKmN,MAAQnN,KAAK6M,SAAW7M,KAAK0M,UAAYS,EAAQ,eAAYA,GAAS,eAAYA,GAAOpK,MAAM,EAAG,IAIzG6M,cAAe,SAAuBzC,GAIpC,IAEE,IAAI0C,EAAe,IAAIC,eAAe,IAAIC,eAAiB,IAAIC,aAE/D,eAAY,eAAU7C,IAAQ/N,SAAQ,SAAU0M,UAEvCA,EAAKC,MACZ8D,EAAaI,MAAMC,IAAIpE,MAEzB9L,KAAKwD,MAAMoD,MAAMuG,MAAQ0C,EAAa1C,MACtC,MAAOxJ,MAEXoL,MAAO,WAKL,IACE,IAAIoB,EAASnQ,KAAKwD,MAAMoD,MACxBuJ,EAAOxT,MAAQ,GACfwT,EAAOpP,KAAO,GACdoP,EAAOpP,KAAO,OACd,MAAOqP,IAETpQ,KAAKmN,MAAQ,IAEfkD,YAAa,SAAqBlD,GAChC,IAAImD,EAASrR,UAAUC,OAAS,QAAsBtC,IAAjBqC,UAAU,IAAmBA,UAAU,GAE5E,GAAIqR,EAAQ,CAEV,IAAIC,EAAgBpD,EAAM3O,OAAOwB,KAAKyP,mBAElCc,EAAcrR,OAAS,IACzBc,KAAK2P,SAASY,GAGdvQ,KAAK4P,cAAcW,SAIrBvQ,KAAK2P,SAASxC,IAGlBqD,aAAc,SAAsBlP,GAI9BtB,KAAKyQ,OAAwB,aAAfnP,EAAMP,KACtBf,KAAKwF,UAAW,EAGhBxF,KAAKwF,UAAW,GAGpBkL,SAAU,SAAkBpP,GAC1B,IAAI+C,EAASrE,KAETe,EAAOO,EAAMP,KACbhC,EAASuC,EAAMvC,OACf4R,EAAsBrP,EAAMuO,aAC5BA,OAAuC,IAAxBc,EAAiC,GAAKA,EACrDL,EAAkB,SAATvP,EAEbf,KAAKqD,MAAM,OAAmB/B,GAC9B,IAAI2O,EAAQ,eAAUJ,EAAaI,OAAS,IAE5C,GAAI,QAAuBA,EAAM/Q,OAAS,IAAM,eAAO4L,EAAyBmF,EAAM,KAKpF/E,EAAkB+E,EAAOjQ,KAAK0M,WAAWJ,MAAK,SAAUa,GACtD,OAAO9I,EAAOgM,YAAYlD,EAAOmD,UAE9B,CAGL,IAAInD,EAAQ,eAAUpO,EAAOoO,OAAS0C,EAAa1C,OAAS,IAAIhN,KAAI,SAAU2L,GAG5E,OADAA,EAAKC,MAAQD,EAAK8E,oBAAsB,GACjC9E,KAET9L,KAAKqQ,YAAYlD,EAAOmD,KAG5BO,YAAa,SAAqBvP,GAChC,eAAUA,GACVtB,KAAKoN,UAAW,EAChB,IAAI0D,EAAuBxP,EAAMuO,aAC7BA,OAAwC,IAAzBiB,EAAkC,GAAKA,EAE1D,GAAI9Q,KAAK8M,QAAU9M,KAAKtD,WAAasD,KAAKqN,YAMxC,OAFAwC,EAAakB,WAAa,YAC1B/Q,KAAKqN,aAAc,GAMrBwC,EAAakB,WAAa,QAI5BC,WAAY,SAAoB1P,GAC9B,eAAUA,GACVtB,KAAKoN,UAAW,EAChB,IAAI6D,EAAuB3P,EAAMuO,aAC7BA,OAAwC,IAAzBoB,EAAkC,GAAKA,EAE1D,GAAIjR,KAAK8M,QAAU9M,KAAKtD,WAAasD,KAAKqN,YAMxC,OAFAwC,EAAakB,WAAa,YAC1B/Q,KAAKqN,aAAc,GAMrBwC,EAAakB,WAAa,QAE5BG,YAAa,SAAqB5P,GAChC,IAAI6D,EAASnF,KAEb,eAAUsB,GACVtB,KAAKkE,WAAU,WACbiB,EAAOiI,UAAW,EAElBjI,EAAOkI,aAAelI,EAAO2H,WAIjCqE,OAAQ,SAAgB7P,GACtB,IAAI8P,EAASpR,KAEb,eAAUsB,GACVtB,KAAKoN,UAAW,EAEZpN,KAAK8M,QAAU9M,KAAKtD,WAAasD,KAAKqN,YACxCrN,KAAKkE,WAAU,WAEbkN,EAAO/D,aAAe+D,EAAOtE,UAKjC9M,KAAK0Q,SAASpP,KAGlBrE,OAAQ,SAAgBC,GACtB,IAAImU,EAASrR,KAAKqR,OACdZ,EAAQzQ,KAAKyQ,MACbzK,EAAOhG,KAAKgG,KACZoH,EAAWpN,KAAKoN,SAChBkE,EAAatR,KAAKsR,WAClBnD,EAAUnO,KAAKmO,QAEfgC,EAASjT,EAAE,QAAS,CACtBqJ,MAAO,CAAC,CACN,oBAAqBkK,EACrB,oBAAqBY,EACrBxN,MAAOwN,GAAUrR,KAAKwF,UACrB8L,GAIHC,MAAOF,EAAS,CACdG,QAAS,GACP,GACJlU,MAAO0C,KAAKgO,cACZ9H,GAAI,CACFuL,OAAQzR,KAAK0Q,SACbgB,QAAS1R,KAAKwQ,aACdmB,SAAU3R,KAAKwQ,aACfzB,MAAO/O,KAAK+O,OAEdhI,IAAK,UAGP,GAAI0J,EACF,OAAON,EAIT,IAAIyB,EAAS1U,EAAE,QAAS,CACtBoJ,YAAa,oBACbC,MAAO,CACL6G,SAAUA,GAEZ9P,MAAO,CACLuU,IAAK7R,KAAKiH,SAEV,cAAejH,KAAKwM,YAAc,OAEnC,CAACtP,EAAE,OAAQ,CACZoJ,YAAa,yBAGbiL,MAAO,CACLO,cAAe,SAEhB,CAAC9R,KAAK0O,iBAET,OAAOxR,EAAE,MAAO,CACdoJ,YAAa,0BACbC,MAAO,CAACjH,EAAgB,GAAI,oBAAoBkB,OAAOwF,GAAOA,GAAOsL,EAAYnD,EAAQ5H,OACzFgL,MAAOpD,EAAQoD,MACfjU,MAAO,CACL0J,GAAIhH,KAAKiH,OAAO,oBAElBf,GAAI,CACF6L,UAAW/R,KAAK6Q,YAChBmB,SAAUhS,KAAKgR,WACfiB,UAAWjS,KAAKkR,YAChBgB,KAAMlS,KAAKmR,SAEZ,CAAChB,EAAQyB,Q,oCCpkBhB,8DAEI7I,EAAkC,eAAc,CAClDtL,WAAY,CACV0U,cAAe,OACfC,UAAW,W,oCCLf,+IAASnU,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAWpM,IAAIjD,EAAQ,eAAsB,eAASqC,EAAcA,EAAc,GAAI,QAAmB,GAAI,CACvGkI,GAAI,eAAS,YAAkBpK,GAAW,MAEvC,QAGMyV,EAA6B,aAAIvV,OAAO,CACjDC,KAAM,OACNgD,OAAQ,CAAC,OAAkB,QAC3BtD,MAAOA,EACPQ,OAAQ,SAAgBC,GACtB,IAAI8J,EAAKhH,KAAKgH,GACV/G,EAAWD,KAAKE,YAAYC,KAAI,SAAUC,EAAQC,GACpD,IAAI1D,EAAQyD,EAAOzD,MACf2D,EAAOF,EAAOE,KACdC,EAAOH,EAAOG,KACd7D,EAAW0D,EAAO1D,SACtB,OAAOQ,EAAE,SAAU,CACjBI,MAAO,CACLX,MAAOA,EACPD,SAAUA,GAEZa,SAAU,eAAWgD,EAAMD,GAC3BjB,IAAK,UAAUmB,OAAOH,QAG1B,OAAOnD,EAAE,WAAY,CACnBI,MAAO,CACL0J,GAAIA,IAEL,CAAC/G,EAAUD,KAAKS,sB,oCC7CvB,8DAEI0I,EAA+B,eAAc,CAC/C1L,WAAY,CACV6U,WAAY,W,oCCJhB,uHAASrU,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAQpM,IAAIjD,EAAQ,eAAsB,eAAK,OAAuB,CAAC,WAAY,SAGvE8V,EAAiC,aAAIzV,OAAO,CACrDC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAEpB,OAAOH,EAAE,OAAkB,eAAUE,EAAM,CACzCX,MAAOqC,EAAcA,EAAc,GAAIrC,GAAQ,GAAI,CACjD+V,QAAQ,MAERnV,O,kCC5BR,uTAASY,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAyB3M,IAAI+S,EAAS,CAAC,QAAS,SAAU,YAE7BC,EAAiBD,EAAOtS,KAAI,SAAU0K,GACxC,MAAO,GAAGrK,OAAOqK,EAAG,uBACnB6E,OAECiD,EAA8B,GAAGnS,OAAOiS,EAAQ,CAAC,IAAK,SAAU,UAGzDG,EAAgB,WACzB,OAAO,eAAsB,eAAS9T,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAiB,iBAAyB+T,QAAO,SAAUpW,EAAOqW,GAO5K,OALArW,EAAM,eAAeqW,EAAY,gBAAkB,eAAS,QAE5DrW,EAAM,eAAeqW,EAAY,eAAiB,eAAS,QAE3DrW,EAAM,eAAeqW,EAAY,cAAgB,eAAS,QACnDrW,IACN,eAAO,QAAS,GAAI,CACrBsW,YAAa,eAAS,QACtBrW,SAAU,eAAS,QAAmB,GACtCsW,iBAAkB,eAAS,OAAkB,aAC7CC,gBAAiB,eAAS,QAC1BpT,MAAO,eAAS,QAChBqT,WAAY,eAAS,QACrBC,SAAU,eAAS,QACnBC,UAAW,eAAS,QACpBC,YAAa,eAAS,QAAmB,GACzCC,QAAS,eAAS,QAAmB,GACrCC,cAAe,eAAS,QACxBC,UAAW,eAAS,QAAmB,MACpC,SAMIC,EAAa,CACtB1W,KAAM,OACNgD,OAAQ,CAAC,OAAS,OAAgB,QAElC,YAME,cAFOC,KAAKvD,MAELuD,KAAKvD,MAAQmW,KAGtBxV,KAAM,WACJ,MAAO,CACLsW,gBAAiB,OAGrB7Q,SAAU,CACR8Q,gBAAiB,WACf,OAAO3T,KAAK4T,YAAY5T,KAAK2F,OAAQ,YAEvCkO,kBAAmB,WACjB,OAAO7T,KAAK8T,gBAAgB9T,KAAK2F,OAAQ,UAE3CoO,cAAe,WACb,OAAO/T,KAAK4T,YAAY5T,KAAK2F,OAAQ,UAEvCqO,aAAc,WAGZ,OAAO,eAAKhU,KAAK2T,iBAAiBzU,OAAS,GAAK,eAAKc,KAAK+T,eAAe7U,OAAS,IAGtFiE,MAAO,CACLuQ,gBAAiB,SAAyBtQ,EAAUG,GAC9CH,IAAaG,GACfvD,KAAKiU,sBAAsB7Q,EAAUG,KAI3C2L,QAAS,WACP,IAAIjL,EAAQjE,KAEZA,KAAKkE,WAAU,WAGbD,EAAMgQ,sBAAsBhQ,EAAMyP,qBAGtC9P,QAAS,CACPkQ,gBAAiB,SAAyBrX,EAAOyX,GAC/C,OAAO,iBAAyBrB,QAAO,SAAUsB,EAAQrB,GACvD,IAAIsB,EAAY3X,EAAM,eAAeqW,EAAY,GAAGtS,OAAO0T,EAAQ,YAAc,KAMjF,OAJIE,GACFD,EAAOvV,KAAK,CAAC,OAAQkU,EAAYsB,GAAW5V,OAAO,QAAUkR,KAAK,MAG7DyE,IACN,KAELP,YAAa,SAAqBnX,EAAOyX,GACvC,OAAO,iBAAyBrB,QAAO,SAAUsB,EAAQrB,GACvD,IAAIsB,EAAY3X,EAAM,eAAeqW,EAAY,GAAGtS,OAAO0T,EAAQ,UAmBnE,OAhBAE,EAA0B,KAAdA,IAA0BA,IAAa,GAE9C,eAAUA,IAA4B,SAAdA,IAE3BA,EAAY,eAAUA,EAAW,GAEjCA,EAAYA,EAAY,GAAIA,GAM1BA,IACFD,EAAOrB,IAAe,eAAUsB,GAAa,MAAQ,SAAWA,GAG3DD,IACN,KAKLF,sBAAuB,SAA+B7Q,EAAUG,GAC9D,IAAI4P,EAAWnT,KAAKmT,SAEpB,GAAI,QAAcA,EAAU,CAE1B,IAAIhD,EAAS,eAAO,IAAI3P,OAAO,eAAU2S,IAAYnT,KAAKwD,MAAM6Q,SAEhE,GAAIlE,EAAQ,CACV,IAAImE,EAAO,mBACPC,GAAUnR,GAAY,IAAIoK,MAAM,QAChCgH,GAAUjR,GAAY,IAAIiK,MAAM,QAGhCiH,GAAO,eAAQtE,EAAQmE,IAAS,IAAI9G,MAAM,QAAgBhP,QAAO,SAAUwI,GAC7E,OAAQ,eAAcwN,EAAQxN,MAC7BxG,OAAO+T,GAAQ/V,QAAO,SAAUwI,EAAI3G,EAAOoU,GAC5C,OAAOA,EAAIC,QAAQ1N,KAAQ3G,KAC1B7B,OAAO,QAAUkR,KAAK,KAAKnC,OAE1BkH,EACF,eAAQtE,EAAQmE,EAAMG,GAEtB,eAAWtE,EAAQmE,MAK3BK,cAAe,SAAuBrT,GAIpC,IAAItB,KAAKmT,SAAT,CAIA,IAAIpU,EAASuC,EAAMvC,OACf6V,EAAU7V,EAASA,EAAO6V,QAAU,GAKxC,IAAsD,IAAlDjC,EAA4B+B,QAAQE,GAAxC,CAKA,IAAIC,EAAS,eAAUnC,EAAgB1S,KAAKwD,MAAM6Q,SAAS7V,OAAO,QAE5C,IAAlBqW,EAAO3V,QACT,eAAa2V,EAAO,QAI1B5X,OAAQ,SAAgBC,GACtB,IAAI4X,EAAQ9U,KAAK+U,cACb/B,EAAmBhT,KAAKgT,iBACxBgB,EAAehU,KAAKgU,aACpBb,EAAWnT,KAAKmT,SAChB1S,EAAgBT,KAAKS,cACrBwG,EAASjH,KAAKiH,OACdqM,EAAUtT,KAAKsT,QACftM,EAAKC,IACL+N,GAAc7B,EACdvB,EAAS1U,IACTwR,EAAejO,EAAc,SAAoBT,KAAKH,MACtDoV,EAAUvG,EAAezH,EAAO,cAAgB,KAEpD,GAAIyH,GAAgBsF,EAAc,CAChC,IAAIZ,EAAYpT,KAAKoT,UACjBW,EAAgB/T,KAAK+T,cACrBmB,EAAWF,EAAa,SAAW,QAEnChV,KAAKqT,aACH3E,IACFkD,EAAS1U,EAAEgY,EAAU,CACnB3O,MAAO,UACPjJ,MAAO,CACL0J,GAAIiO,EACJpD,IAAKsB,GAAY,OAElB,CAACzE,KAGNkD,EAAS1U,EAAE8W,EAAe,OAAO,MAAO,CACtCvX,MAAOuX,EAAeD,EAAgB,IACrC,CAACnC,KAEJA,EAAS1U,EAAE8W,EAAe,OAAOkB,EAAU,CACzChP,GAAI8O,EAAa,CACf7O,MAAOnG,KAAK2U,eACV,GACJlY,MAAOuX,EAAelV,EAAcA,EAAc,GAAIiV,GAAgB,GAAI,CACxEoB,IAAKD,IACF,GACL5X,MAAO,CACL0J,GAAIiO,EACJpD,IAAKsB,GAAY,KAGjBiC,SAAUJ,EAAa,KAAO,MAEhCzO,MAAO,CACPyO,EAAa,mBAAqB,GAIlChB,GAAgBgB,EAAa,iBAAmB,IAC/ChB,GAAgBgB,EAAa,OAAS,GAEtChB,GAAiBgB,EAAyB,GAAZ,UAAgB5B,EAAY,kBAAkB5S,OAAO4S,GAAa,GAAIpT,KAAK6T,kBAAmB7T,KAAKkT,aACjI,CAACxE,IAIR,IAAI2G,EAAmBnY,IACnBoY,EAAyB7U,EAAc,SAA+BT,KAAKiT,gBAC3EsC,EAAoBD,EAAyBrO,EAAO,yBAA2B,KAE/EqO,IACFD,EAAmBnY,EAAE,OAAsB,CACzCT,MAAO,CACL+Y,SAAUxC,EACVhM,GAAIuO,EACJE,KAAMzC,EAAmB,QAAU,KAEnC8B,MAAOA,EACPxB,QAASA,GAEXhW,MAAO,CACL8X,SAAUE,EAAyB,KAAO,OAE3C,CAACA,KAGN,IAAII,EAAiBxY,IACjByY,EAAuBlV,EAAc,UAA6BT,KAAKuT,cACvEqC,EAAkBD,EAAuB1O,EAAO,uBAAyB,KAEzE0O,IACFD,EAAiBxY,EAAE,OAAoB,CACrCT,MAAO,CACL+Y,SAAUxC,EACVhM,GAAI4O,EACJH,KAAMzC,EAAmB,QAAU,KAEnC8B,MAAOA,EACPxB,QAASA,GAEXhW,MAAO,CACL8X,SAAUO,EAAuB,KAAO,OAEzC,CAACA,KAGN,IAAIE,EAAe3Y,IACf4Y,EAAqBrV,EAAc,SAA0BT,KAAK+S,YAClEgD,EAAgBD,EAAqB7O,EAAO,oBAAsB,KAElE6O,IACFD,EAAe3Y,EAAE,OAAW,CAC1BI,MAAO,CACL0J,GAAI+O,EACJX,SAAU,OAEX,CAACU,KAON,IAAIpC,EAAkB1T,KAAK0T,gBAAkB,CAACqC,GAAyB,IAAVjB,EAAkBS,EAAoB,MAAgB,IAAVT,EAAiBc,EAAkB,MAAMpX,OAAO,QAAUkR,KAAK,MAAQ,KAC5KsG,EAAW9Y,EAAE8W,EAAe,OAAO,MAAO,CAC5CvX,MAAOuX,EAAehU,KAAK2T,gBAAkB,GAC7C5M,IAAK,WACJ,CAACtG,EAAc,OAAmB,CACnCiT,gBAAiBA,EACjBqC,cAAeA,EACf/O,GAAIA,EACJiO,QAASA,KACL/X,IAAKmY,EAAkBK,EAAgBG,IAK7C,OAAO3Y,EAAE8X,EAAa,WAAahB,EAAe,OAAW,MAAO,CAClE1N,YAAa,aACbC,MAAO,CAAC,CACN,gBAAiBvG,KAAKwT,WACrBxT,KAAKsR,YACRhU,MAAO,CACL0J,GAAIA,EACJtK,SAAUsY,EAAahV,KAAKtD,SAAW,KACvC+Y,KAAMT,EAAa,KAAO,QAC1B,eAAgBhV,KAAKiW,oBAGrB,kBAAmBjB,GAAchB,EAAeiB,EAAU,OAE3DjB,GAAgBgB,EAAa,CAAC9X,EAAE,OAAU,CAAC0U,EAAQoE,KAAc,CAACpE,EAAQoE,O,oCClWjF,mLAAS1W,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAapM,IAAIjD,EAAQ,eAAsB,CACvC+V,OAAQ,eAAS,QACjB0D,WAAY,eAAS,QACrBlP,GAAI,eAAS,QACbmP,QAAS,eAAS,QAClBC,YAAa,eAAS,QACtBpQ,KAAM,eAAS,QACfmP,IAAK,eAAS,OAAkB,QAC/B,SAGQkB,EAA2B,aAAIvZ,OAAO,CAC/CC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZkZ,EAAQnZ,EAAKmZ,MACbxP,EAAc3J,EAAK2J,YACnBqP,EAAU1Z,EAAM0Z,QAChBC,EAAc3Z,EAAM2Z,YACpB5D,EAAS/V,EAAM+V,OACf0D,EAAazZ,EAAMyZ,WACnBlQ,EAAOvJ,EAAMuJ,KACbJ,EAAekB,GAAe,GAC9ByP,EAASD,IACTE,EAAY,GACZC,EAAWvZ,IACXwZ,EAAiB,eAAkB,OAAmB9Q,EAAc2Q,IAEpEG,GAAkBP,GAAWC,KAC/BK,EAAWvZ,EAAE,OAAoB,CAACwZ,EAAiB,eAAc,OAAmBF,EAAW5Q,EAAc2Q,GAAUrZ,EAAE,OAAiB,CACxIK,SAAU,eAAW6Y,EAAaD,QAItC,IAAIQ,EAAUzZ,IACV0Z,EAAgB,eAAkB,OAAkBhR,EAAc2Q,GAQtE,OANIK,GAAiBpE,GAAU0D,KAC7BS,EAAUzZ,EAAE,OAAmB,CAAC0Z,EAAgB,eAAc,OAAkBJ,EAAW5Q,EAAc2Q,GAAUrZ,EAAE,OAAiB,CACpIK,SAAU,eAAW2Y,EAAY1D,QAI9BtV,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCkJ,YAAa,cACbC,MAAOjH,EAAgB,GAAI,eAAekB,OAAOwF,GAAOA,GACxD1I,MAAO,CACL0J,GAAIvK,EAAMuK,IAAM,KAChByO,KAAM,WAEN,CAACgB,EAAU,eAAc,OAAmBD,EAAW5Q,EAAc2Q,GAASI,Q,oCClEtF,oIAKWla,EAAQ,eAAsB,CACvCuK,GAAI,eAAS,QACb6P,OAAQ,eAAS,QAAmB,GACpCC,WAAY,eAAS,QAAmB,GACxCtD,UAAW,eAAS,QAAmB,IACtC,QAGQuD,EAAqB,aAAIja,OAAO,CACzCC,KAAM,OACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SACpB,OAAOH,EAAE,OAAQ,eAAUE,EAAM,CAC/BmJ,MAAO,CACL,cAAe9J,EAAMoa,OACrB,gBAAiBpa,EAAM+W,WAEzBlW,MAAO,CACL0J,GAAIvK,EAAMuK,GACV8P,WAAYra,EAAMqa,cAElBzZ,O,oCC9BR,0EAGImL,EAAkC,eAAc,CAClD/K,WAAY,CACVuZ,cAAe,OACfC,UAAW,OACXC,OAAQ,OACRC,mBAAoB,OACpBC,eAAgB,OAChBC,YAAa,W,oCCVjB,2GAAS/X,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAOpM,IAAIjD,EAAQ,eAAsB,CACvCuK,GAAI,eAAS,QACb6P,OAAQ,eAAS,QAAmB,GACpC1B,IAAK,eAAS,OAAkB,SAChCmC,YAAa,eAAS,OAAkB,UACvC,SAGQC,EAAyB,aAAIza,OAAO,CAC7CC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SACpB,OAAOH,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCmJ,MAAOjH,EAAgB,CACrB,aAAc7C,EAAMoa,QACnB,QAAQrW,OAAO/D,EAAM6a,aAAc7a,EAAM6a,aAC5Cha,MAAO,CACL0J,GAAIvK,EAAMuK,MAEV3J,O,oCC9BR,oRAASY,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAsBpM,IAAIjD,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAmB,QAAgB,QAAiB,QAAgB,GAAI,CAC1N0Y,QAAS,eAAS,QAElBC,aAAc,eAAS,QAAmB,GAE1CC,SAAU,eAAS,QAAmB,GACtCC,KAAM,eAAS,OAAyB,GAGxCC,KAAM,eAAS,OAAkB,WAC9B,SAGMzF,EAA6B,aAAIrV,OAAO,CACjDC,KAAM,QACN8a,WAAY,CACV,YAAa,QAGf9X,OAAQ,CAAC,OAAgB,OAAS,OAAmB,OAAkB,OAAe,OAAgB,OAAe,OAAoB,QACzItD,MAAOA,EACPW,KAAM,WACJ,MAAO,CACL0a,WAAY,OAGhBjV,SAAU,CACRkV,cAAe,WACb,IAAIC,EAAS,CAGXC,QAASjY,KAAKkY,cAAgBlY,KAAK0X,SAAW,OAAS,MAYzD,OATK1X,KAAKkY,eAGRF,EAAOG,OAASnY,KAAK8X,WAGrBE,EAAOI,UAAY,UAGdJ,GAETK,gBAAiB,WAIf,OAAO,eAAQ,eAAUrY,KAAK2X,KAAM,GAAI,IAE1CW,gBAAiB,WACf,OAAO,eAAQtY,KAAKqY,gBAAiB,eAAUrY,KAAKwX,QAAS,KAE/DU,aAAc,WAGZ,OAAOlY,KAAKqY,kBAAoBrY,KAAKsY,gBAAkBtY,KAAKqY,gBAAkB,MAEhFrK,cAAe,WACb,IAAItR,EAAWsD,KAAKtD,SAChBuR,EAAWjO,KAAKiO,SACpB,MAAO,CACLjH,GAAIhH,KAAKiH,SACTlK,KAAMiD,KAAKjD,MAAQ,KACnBmR,KAAMlO,KAAKkO,MAAQ,KACnBxR,SAAUA,EACVmJ,YAAa7F,KAAK6F,aAAe,KACjCoI,SAAUA,EACVsK,aAAcvY,KAAKuY,cAAgB,KACnC7S,SAAU1F,KAAK0F,UAAY1F,KAAKwY,UAChCb,KAAM3X,KAAKkY,aACXN,KAAM5X,KAAK4X,MAAQ,KACnB,gBAAiB5X,KAAKiO,SAAW,OAAS,KAC1C,eAAgBjO,KAAKiW,sBAGzBwC,kBAAmB,WACjB,OAAO3Z,EAAcA,EAAc,GAAIkB,KAAK0Y,aAAc,GAAI,CAC5D9R,MAAO5G,KAAKsE,QACZmN,OAAQzR,KAAK0Q,SACb5M,KAAM9D,KAAK2Y,WAIjBxV,MAAO,CACLyV,WAAY,WACV5Y,KAAK6Y,cAGT3J,QAAS,WACPlP,KAAK6Y,aAEPjV,QAAS,CAIPkV,gBAAiB,SAAyBC,GACpCA,GAGF/Y,KAAKkE,UAAUlE,KAAK6Y,YAGxBA,UAAW,WACT,IAAI5U,EAAQjE,KAEZA,KAAKkE,WAAU,WACb,gBAAU,WACRD,EAAM6T,WAAa7T,EAAM+U,uBAM/BA,cAAe,WACb,GAAIhZ,KAAKiZ,YAAc,eAAOjZ,KAAKkY,cACjC,OAAO,KAGT,IAAIgB,EAAKlZ,KAAKoP,IAGd,IAAK,eAAU8J,GACb,OAAO,KAIT,IAAInB,EAAgB,eAAMmB,GAEtBC,EAAa,eAAQpB,EAAcoB,WAAY,GAE/CC,EAAS,eAAQrB,EAAcsB,eAAgB,GAAK,eAAQtB,EAAcuB,kBAAmB,GAC7FC,EAAU,eAAQxB,EAAcyB,WAAY,GAAK,eAAQzB,EAAc0B,cAAe,GAEtFC,EAASN,EAASG,EAElBI,EAAYR,EAAanZ,KAAKqY,gBAAkBqB,EAEhDE,EAAY,eAASV,EAAI,WAAanB,EAAcI,OAExD,eAASe,EAAI,SAAU,QACvB,IAAIW,EAAeX,EAAGW,aAGtB,eAASX,EAAI,SAAUU,GAEvB,IAAIE,EAAc,gBAASD,EAAeN,GAAWJ,EAAY,GAE7DxB,EAAO,eAAQ,eAAQmC,EAAa9Z,KAAKqY,iBAAkBrY,KAAKsY,iBAEhEH,EAAS,eAAQ,eAASR,EAAOwB,EAAaO,GAASC,GAG3D,OAAI3Z,KAAKyX,cAAgB,eAAQmC,EAAW,GAAKzB,EACxCyB,EAIF,GAAGpZ,OAAO2X,EAAQ,QAG7Blb,OAAQ,SAAgBC,GACtB,OAAOA,EAAE,WAAY,CACnBqJ,MAAOvG,KAAK+Z,cACZxI,MAAOvR,KAAK+X,cACZF,WAAY,CAAC,CACX9a,KAAM,YACNJ,MAAOqD,KAAK8Y,gBAEZkB,UAAW,CACT,KAAO,KAGX1c,MAAO0C,KAAKgO,cACZzQ,SAAU,CACRZ,MAAOqD,KAAK4Y,YAEd1S,GAAIlG,KAAKyY,kBACT1R,IAAK,c,kCC7MX,8DAEIiC,EAAoC,eAAc,CACpDvL,WAAY,CACVwc,gBAAiB,OACjBC,YAAa,W,kCCLjB,sCAAIrZ,EAAJ,oLAEA,SAAS5C,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAkB3M,IAAIoB,EAAkB,eAAe,QAAS,CAC5CC,KAAM,OACNyJ,aAAc,KAEZxJ,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBrE,MAC7B0E,EAAkBL,EAAgBM,KAClCC,EAAmBP,EAAgBQ,MAGnC6Y,EAAY,eAAK,OAAY,CAAC,SAAU,KAAM,UAC9C3Y,EAA2B,eAAK,OAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7F/E,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUoC,GAAaiZ,GAAY3Y,GAA2B,GAAI,CAC5LG,mBAAoB,eAAS,OAAkB,qBAC/CE,iBAAkB,eAAS,OAAkB,SAC7CuY,eAAgB,eAAS,OAAkB,cAC3CtY,iBAAkB,eAAS,OAAkB,SAC7CuY,cAAe,eAAS,QAAmB,GAC3CC,UAAW,eAAS,QAAmB,GACvCC,iBAAkB,eAAS,OAAkB,mBAC7CtY,YAAa,eAAS,QAAmB,GACzCC,mBAAoB,eAAS,OAAkB,kBAC/CC,WAAY,eAAS,WAClB,SAGM8X,EAA+B,aAAInd,OAAO,CACnDC,KAAM,QACNgD,OAAQ,CAAC,OAASiB,GAClBvE,MAAOA,EACPW,KAAM,WACJ,MAAO,CAELod,SAAUxa,KAAKmB,IAAoB,GAEnCsB,YAAa,KACbC,OAAO,EACPC,eAAgB,GAEhBH,WAAW,IAGfK,SAAU,CACRG,aAAc,WACZ,OAAQhD,KAAKyC,aAAe,IAAIQ,QAAQ,UAAW,KAAO,OAG9DE,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQM,GAAiB,SAAUiC,GACtEpD,KAAKwa,SAAWpX,GAAY,MAC1B9D,EAAgBuB,EAAQ,YAAY,SAAkBuC,GAIpDpD,KAAKwC,WACPxC,KAAKqD,MAAMhC,EAAkB+B,GAAY,OAEzCvC,GACJ+C,QAAS,CAEPC,MAAO,WACA7D,KAAKtD,UACR,eAAasD,KAAKwD,MAAMC,UAG5BK,KAAM,WACC9D,KAAKtD,UACR,eAAYsD,KAAKwD,MAAMC,UAI3BM,YAAa,SAAqBpH,GAChC,IAAIsH,EAAQjE,KAEZA,KAAKwa,SAAW7d,EAChBqD,KAAKkE,WAAU,WACbD,EAAMT,MAAMC,QAAQU,MAAK,OAG7BG,QAAS,SAAiBmW,GACpBza,KAAKwa,WAAaC,IACpBza,KAAKwa,SAAWC,IAGpBlW,UAAW,SAAmBC,GAC5B,IAAI9B,EAAQ8B,EAAI9B,MACZ+B,EAASD,EAAIC,OACb9H,EAAQ6H,EAAI7H,MACZ+d,EAAYlW,EAAIkW,UACpB1a,KAAK0C,MAAQA,EACb1C,KAAKyC,YAAcgC,EACnBzE,KAAK2C,eAAiB+X,EACtB1a,KAAKwa,SAAW7d,GAAS,GAEzBqD,KAAKqD,MAAM,OAAoBmB,IAEjCmW,YAAa,WACX,IAAIC,EAAM,IAAIC,KACVC,EAAQF,EAAIG,WACZC,EAAUJ,EAAIK,aACdC,EAAUlb,KAAKmb,YAAcP,EAAIQ,aAAe,EAChDze,EAAQ,CAACme,EAAOE,EAASE,GAAS/a,KAAI,SAAU0K,GAClD,MAAO,KAAKrK,OAAOqK,GAAK,IAAI9H,OAAO,MAClC2M,KAAK,KACR1P,KAAK+D,YAAYpH,IAEnBoI,cAAe,WACb/E,KAAK+D,YAAY/D,KAAKmC,aAExB6C,cAAe,WACbhF,KAAKwD,MAAMC,QAAQU,MAAK,IAE1Bc,OAAQ,WACNjF,KAAKwC,WAAY,GAEnB0C,QAAS,WACP,IAAIb,EAASrE,KAEbA,KAAKkE,WAAU,WACb,eAAaG,EAAOb,MAAM6X,MAE1BhX,EAAOhB,MAAM,YAGjBgC,SAAU,WACRrF,KAAKwC,WAAY,EACjBxC,KAAKqD,MAAM,SAGbiC,gBAAiB,SAAyBnI,GACxC,IAAIoI,EAAYpI,EAAKoI,UACjBC,EAAWrI,EAAKqI,SACpB,OAAOxF,KAAKyF,eAAeF,GAAaC,EAAW,QAAiB,QAAY,CAC9ElI,MAAO,CACL,cAAe,YAKvBL,OAAQ,SAAgBC,GACtB,IAAIsd,EAAWxa,KAAKwa,SAChB9d,EAAWsD,KAAKtD,SAChBgJ,EAAW1F,KAAK0F,SAChBC,EAAS3F,KAAK2F,OACdE,EAAc,eAAkB7F,KAAK6F,aAAe7F,KAAKsb,oBAAsBtb,KAAK6F,YAEpFE,EAAU,GAEd,GAAI/F,KAAKsa,UAAW,CAClB,IAAIza,EAAQG,KAAKoa,eACjBrU,EAAQnH,KAAK1B,EAAE,OAAS,CACtBT,MAAO,CACLuJ,KAAM,KACNtJ,SAAUA,GAAYgJ,EACtBO,QAASjG,KAAKua,kBAEhBjd,MAAO,CACL,aAAcuC,GAAS,MAEzBqG,GAAI,CACFC,MAAOnG,KAAK2a,aAEdtb,IAAK,WACJQ,IAGL,GAAIG,KAAKiC,YAAa,CAChB8D,EAAQ7G,OAAS,GAEnB6G,EAAQnH,KAAK1B,EAAE,OAAQ,MAGzB,IAAIkJ,EAASpG,KAAK8B,iBAClBiE,EAAQnH,KAAK1B,EAAE,OAAS,CACtBT,MAAO,CACLuJ,KAAM,KACNtJ,SAAUA,GAAYgJ,EACtBO,QAASjG,KAAKkC,oBAEhB5E,MAAO,CACL,aAAc8I,GAAU,MAE1BF,GAAI,CACFC,MAAOnG,KAAK+E,eAEd1F,IAAK,aACJ+G,IAGL,IAAKpG,KAAKqa,cAAe,CAEnBtU,EAAQ7G,OAAS,GACnB6G,EAAQnH,KAAK1B,EAAE,OAAQ,MAGzB,IAAImJ,EAAUrG,KAAK6B,iBACnBkE,EAAQnH,KAAK1B,EAAE,OAAS,CACtBT,MAAO,CACLuJ,KAAM,KACNtJ,SAAUA,EACVuJ,QAASjG,KAAK2B,oBAEhBrE,MAAO,CACL,aAAc+I,GAAW,MAE3BH,GAAI,CACFC,MAAOnG,KAAKgF,eAEd3F,IAAK,aACJgH,IAGDN,EAAQ7G,OAAS,IACnB6G,EAAU,CAAC7I,EAAE,MAAO,CAClBoJ,YAAa,wCACbC,MAAO,CACL,0BAA2BR,EAAQ7G,OAAS,EAC5C,sBAAuB6G,EAAQ7G,OAAS,IAEzC6G,KAGL,IAAIwV,EAAQre,EAAE,OAAO,CACnBoJ,YAAa,sBACb7J,MAAOqC,EAAcA,EAAc,GAAI,eAAWqb,EAAWxU,IAAU,GAAI,CACzEhJ,MAAO6d,EACP/T,QAASzG,KAAKwC,YAEhB0D,GAAI,CACFU,MAAO5G,KAAKsE,QACZuC,QAAS7G,KAAKuE,WAEhBwC,IAAK,QACJhB,GACH,OAAO7I,EAAE,OAAuB,CAC9BoJ,YAAa,oBACb7J,MAAOqC,EAAcA,EAAc,GAAI,eAAW0C,EAA0BmE,IAAU,GAAI,CACxFqB,GAAIhH,KAAKiH,SACTtK,MAAO6d,EACP7X,eAAgB6X,EAAWxa,KAAK2C,eAAiB,GACjDkD,YAAaA,EACbuB,IAAKpH,KAAK0C,MACVwE,KAAMlH,KAAKgD,eAEbkD,GAAI,CACFmB,KAAMrH,KAAKiF,OACXqC,MAAOtH,KAAKkF,QACZuB,OAAQzG,KAAKqF,UAEfyB,YAAaxH,EAAgB,GAAI,OAA0BU,KAAK4F,aAAa,SAA6B5F,KAAKsF,iBAC/GyB,IAAK,WACJ,CAACwU,Q,oCClRR,kGAKW9e,EAAQ,eAAsB,CACvC+Y,SAAU,eAAS,QACnBgG,UAAW,eAAS,QAAmB,GACvCxU,GAAI,eAAS,QACbyO,KAAM,eAAS,QAEfX,MAAO,eAAS,OAAmB,MACnCK,IAAK,eAAS,OAAkB,OAChC7B,QAAS,eAAS,QAAmB,IACpC,SAGQmI,EAAkC,aAAI3e,OAAO,CACtDC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAChBiW,EAAU7W,EAAM6W,QAChBkC,EAAW/Y,EAAM+Y,SACjBnO,GAA2B,IAApB5K,EAAM+e,YAAsC,IAAhB/e,EAAMqY,MAC7C,OAAO5X,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCmJ,MAAO,CACL,UAAWc,EACX,kBAAmBiM,EACnB,gBAAiBA,GAEnBhW,MAAO,CACL0J,GAAIvK,EAAMuK,IAAM,KAChByO,KAAMhZ,EAAMgZ,MAAQ,KACpB,YAAaD,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnCnY,O,oCCxCR,wEAAIwD,EAAJ,4SAEA,SAAS5C,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EA4B3M,IAAIoB,EAAkB,eAAe,QAAS,CAE5CC,KAAM,SAEJC,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBrE,MAC7B0E,EAAkBL,EAAgBM,KAClCC,EAAmBP,EAAgBQ,MAGnCoa,EAAc,EACdC,EAAc,IACdC,EAAe,EAEfC,EAAuB,IAEvBC,EAA0B,IAE1BC,EAA2B,GAE3BC,EAA4B,EAC5BC,EAAY,CAAC,OAAS,OAAW,OAAW,OAAU,OAAa,QAE5Dxf,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUoC,GAAa,eAAK,OAAkB,CAAC,WAAY,eAAgB,QAAgB,QAAiB,GAAI,CACxPgb,aAAc,eAAS,QACvBC,UAAW,eAAS,QACpBC,YAAa,eAAS,QACtBvF,OAAQ,eAAS,QAAmB,GACpCwF,eAAgB,eAAS,OAAkB,aAC3CC,eAAgB,eAAS,OAAkB,aAC3C7X,OAAQ,eAAS,QACjBK,IAAK,eAAS,OAAyB6W,GACvC9W,IAAK,eAAS,OAAyB6W,GACvC7V,YAAa,eAAS,QACtBH,SAAU,eAAS,QAAmB,GACtC6W,YAAa,eAAS,OAAyBV,GAC/CW,eAAgB,eAAS,OAAyBV,GAClDW,qBAAsB,eAAS,OAAyBT,GACxDU,gBAAiB,eAAS,OAAyBX,GACnDY,KAAM,eAAS,OAAyBf,GACxCgB,SAAU,eAAS,QAAmB,GACtChF,KAAM,eAAS,QAAmB,MAC/B,SAGM7Z,EAA+B,aAAIjB,OAAO,CACnDC,KAAM,QAENgD,OAAQ,CAAC,OAAY,OAASiB,EAAY,OAAe,OAAgB,QACzEkM,cAAc,EACdzQ,MAAOA,EACPW,KAAM,WACJ,MAAO,CACLwb,WAAY,eAAQ5Y,KAAKmB,GAAkB,MAC3CqE,UAAU,IAGd3C,SAAU,CACRga,OAAQ,WACN,OAAO7c,KAAKiH,UAEd6V,eAAgB,WACd,OAAO9c,KAAK6W,SAAW7W,KAAK4c,UAE9BG,iBAAkB,WAChB,OAAO/c,KAAK0F,WAAa1F,KAAKtD,UAEhCsgB,iBAAkB,WAChB,OAAOhd,KAAKiO,WAAajO,KAAK+c,mBAAqB/c,KAAKtD,UAE1DugB,aAAc,WACZ,OAAO,eAAQjd,KAAK2c,KAAMf,IAE5BsB,YAAa,WACX,OAAO,eAAQld,KAAK6E,IAAK6W,IAE3ByB,YAAa,WAEX,IAAIrY,EAAM,eAAQ9E,KAAK8E,IAAK6W,GACxBgB,EAAO3c,KAAKid,aACZpY,EAAM7E,KAAKkd,YACf,OAAO,gBAAWpY,EAAMD,GAAO8X,GAAQA,EAAO9X,GAEhDuY,cAAe,WACb,IAAIC,EAAQ,eAAUrd,KAAKuc,YAAa,GACxC,OAAOc,EAAQ,EAAIA,EAAQxB,GAE7ByB,iBAAkB,WAChB,IAAIC,EAAW,eAAUvd,KAAKwc,eAAgB,GAC9C,OAAOe,EAAW,EAAIA,EAAWzB,GAEnC0B,kBAAmB,WACjB,OAAO,eAAQ,eAAUxd,KAAK0c,gBAAiBX,GAA2B,IAE5E0B,uBAAwB,WACtB,OAAO,eAAQ,eAAUzd,KAAKyc,qBAAsBT,GAA4B,IAElF0B,kBAAmB,WAEjB,IAAIf,EAAO3c,KAAKid,aAChB,OAAO,eAAUN,KAAUA,EAAO,GAAKA,EAAKgB,WAAWnQ,MAAM,KAAK,IAAM,IAAItO,QAE9E0e,mBAAoB,WAClB,OAAO,eAAQ,GAAI5d,KAAK0d,mBAAqB,IAE/CG,aAAc,WACZ,IAAIlhB,EAAQqD,KAAK4Y,WACjB,OAAO,eAAOjc,GAAS,GAAKA,EAAMmhB,QAAQ9d,KAAK0d,oBAEjDK,eAAgB,WACd,IAAIC,EAAU,eAAOhe,KAAKyE,QAAQjG,OAAO,QACrCyf,EAAK,IAAIC,KAAKC,aAAaH,GAC/B,OAAOC,EAAGG,kBAAkB3Z,QAE9B4Z,YAAa,WACX,OAAO,eAAYre,KAAK+d,iBAE1BO,iBAAkB,WAEhB,IAAIC,EAAYve,KAAK0d,kBACjBO,EAAK,IAAIC,KAAKC,aAAane,KAAK+d,eAAgB,CAClDxM,MAAO,UACPiN,aAAa,EACbC,qBAAsB,EACtBC,sBAAuBH,EACvBI,sBAAuBJ,EACvBK,SAAU,aAGZ,OAAOX,EAAGY,QAEZC,kBAAmB,WACjB,IAAI1C,EAAcpc,KAAKoc,YACvB,OAAO,eAAgBA,GAAeA,EAAcpc,KAAKse,kBAE3DtQ,cAAe,WACb,OAAOlP,EAAcA,EAAc,GAAIkB,KAAKmO,SAAU,GAAI,CACxDsH,KAAM,QACNvO,KAAMlH,KAAK+d,eACX3I,SAAUpV,KAAKtD,SAAW,KAAO,KACjCqiB,MAAO/e,KAAKmc,aAGhB6C,kBAAmB,WACjB,IAAInC,EAAS7c,KAAK6c,OACdlgB,EAAQqD,KAAK4Y,WACb3K,EAAWjO,KAAKgd,iBAChBtgB,EAAWsD,KAAKtD,SAChBoY,EAAQ9U,KAAK8U,MACbgK,EAAoB9e,KAAK8e,kBACzBG,GAAY,eAAOtiB,GACvB,OAAOmC,EAAcA,EAAc,CACjCogB,IAAKlf,KAAKqe,YAAc,MAAQ,OAC/Bre,KAAKmO,SAAU,GAAI,CACpBnH,GAAI6V,EACJpH,KAAM,aACNL,SAAU1Y,EAAW,KAAO,IAC5B,YAAa,MACb,aAAcsD,KAAKmc,WAAa,KAChC,gBAAiBnc,KAAKkc,cAAgB,KAEtC,gBAA0B,IAAVpH,IAAoBmK,GAAYhR,EAAW,OAAS,KACpE,gBAAiBA,EAAW,OAAS,KAErC,gBAAiB,eAASjO,KAAKkd,aAC/B,gBAAiB,eAASld,KAAKmd,aAG/B,gBAAiB8B,EAAWtiB,EAAQ,KACpC,iBAAkBsiB,EAAWH,EAAkBniB,GAAS,SAI9DwG,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQM,GAAiB,SAAUxE,GACtEqD,KAAK4Y,WAAa,eAAQjc,EAAO,SAC/B2C,EAAgBuB,EAAQ,cAAc,SAAoBlE,GAC5DqD,KAAKqD,MAAMhC,EAAkB1E,MAC3B2C,EAAgBuB,EAAQ,YAAY,SAAkBse,GACpDA,GACFnf,KAAKof,iBAEL9f,EAAgBuB,EAAQ,YAAY,SAAkBwe,GACpDA,GACFrf,KAAKof,iBAELve,GACJmO,QAAS,WAEPhP,KAAKsf,iBAAmB,KACxBtf,KAAKuf,kBAAoB,KACzBvf,KAAKwf,aAAc,GAErBnQ,cAAe,WACbrP,KAAKof,eAIPK,YAAa,WACXzf,KAAKof,eAEPxb,QAAS,CAEPC,MAAO,WACA7D,KAAKtD,UACR,eAAasD,KAAKwD,MAAMkc,UAG5B5b,KAAM,WACC9D,KAAKtD,UACR,eAAYsD,KAAKwD,MAAMkc,UAI3BC,WAAY,WACV3f,KAAKqD,MAAM,OAAmBrD,KAAK4Y,aAErCgH,UAAW,SAAmBC,GAG5B,IAAIljB,EAAQqD,KAAK4Y,WAEjB,IAAK5Y,KAAKtD,WAAa,eAAOC,GAAQ,CACpC,IAAIggB,EAAO3c,KAAKid,aAAe4C,EAC3Bhb,EAAM7E,KAAKkd,YACXpY,EAAM9E,KAAKmd,YACX2C,EAAa9f,KAAK4d,mBAClBhG,EAAO5X,KAAK4X,KAEhBjb,EAAQ,gBAAWA,EAAQkI,GAAO8X,GAAQA,EAAO9X,EAAM8X,EAEvDhgB,EAAQ,eAAUA,EAAQmjB,GAAcA,EAExC9f,KAAK4Y,WAAajc,EAAQmI,EAAM8S,EAAO/S,EAAMC,EAAMnI,EAAQkI,EAAM+S,EAAO9S,EAAMD,EAAMlI,IAGxFojB,YAAa,SAAqBze,GAC3BtB,KAAKtD,SAGRsD,KAAKwF,UAAW,EAFhBxF,KAAKwF,SAA0B,UAAflE,EAAMP,MAK1Bif,OAAQ,WACN,IAAIF,EAAa7gB,UAAUC,OAAS,QAAsBtC,IAAjBqC,UAAU,GAAmBA,UAAU,GAAK,EACjFtC,EAAQqD,KAAK4Y,WAEb,eAAOjc,GACTqD,KAAK4Y,WAAa5Y,KAAKkd,YAEvBld,KAAK4f,UAAU,EAAKE,IAGxBG,SAAU,WACR,IAAIH,EAAa7gB,UAAUC,OAAS,QAAsBtC,IAAjBqC,UAAU,GAAmBA,UAAU,GAAK,EACjFtC,EAAQqD,KAAK4Y,WAEb,eAAOjc,GACTqD,KAAK4Y,WAAa5Y,KAAK4X,KAAO5X,KAAKmd,YAAcnd,KAAKkd,YAEtDld,KAAK4f,WAAW,EAAIE,IAGxBI,UAAW,SAAmB5e,GAC5B,IAAI6e,EAAU7e,EAAM6e,QAChBC,EAAS9e,EAAM8e,OACfC,EAAU/e,EAAM+e,QAChBC,EAAUhf,EAAMgf,QAGpB,KAAItgB,KAAKtD,UAAYsD,KAAK0F,UAAY0a,GAAUC,GAAWC,IAIvD,eAAcrE,EAAWkE,GAAU,CAOrC,GALA,eAAU7e,EAAO,CACfif,aAAa,IAIXvgB,KAAKwf,YAEP,OAGFxf,KAAKwgB,cAED,eAAc,CAAC,OAAS,QAAYL,IAEtCngB,KAAKwf,aAAc,EAEfW,IAAY,OACdngB,KAAKygB,iBAAiBnf,EAAOtB,KAAKggB,QACzBG,IAAY,QACrBngB,KAAKygB,iBAAiBnf,EAAOtB,KAAKigB,WAIhCE,IAAY,OACdngB,KAAKggB,OAAOhgB,KAAKyd,wBACR0C,IAAY,OACrBngB,KAAKigB,SAASjgB,KAAKyd,wBACV0C,IAAY,OACrBngB,KAAK4Y,WAAa5Y,KAAKkd,YACdiD,IAAY,SACrBngB,KAAK4Y,WAAa5Y,KAAKmd,eAK/BuD,QAAS,SAAiBpf,GAExB,IAAI6e,EAAU7e,EAAM6e,QAChBC,EAAS9e,EAAM8e,OACfC,EAAU/e,EAAM+e,QAChBC,EAAUhf,EAAMgf,QAGhBtgB,KAAKtD,UAAYsD,KAAK0F,UAAY0a,GAAUC,GAAWC,GAIvD,eAAcrE,EAAWkE,KAC3B,eAAU7e,EAAO,CACfif,aAAa,IAEfvgB,KAAKwgB,cACLxgB,KAAKwf,aAAc,EACnBxf,KAAK2f,eAGTc,iBAAkB,SAA0Bnf,EAAOqf,GACjD,IAAI1c,EAAQjE,KAER7C,EAAOmE,GAAS,GAChBP,EAAO5D,EAAK4D,KACZ6f,EAASzjB,EAAKyjB,OAElB,IAAK5gB,KAAKtD,WAAasD,KAAK0F,SAAU,CAEpC,GAAa,cAAT3E,GAAwB6f,EAE1B,OAGF5gB,KAAKwgB,cAELG,EAAQ,GACR,IAAIE,EAAY7gB,KAAKwd,kBACjBsC,EAAa9f,KAAKyd,uBAClBJ,EAAQrd,KAAKod,cACbG,EAAWvd,KAAKsd,iBAEpBtd,KAAKsf,iBAAmBwB,YAAW,WACjC,IAAIC,EAAQ,EACZ9c,EAAMsb,kBAAoByB,aAAY,WAKpCL,EAAQI,EAAQF,EAAY,EAAIf,GAChCiB,MACCxD,KACFF,KAGP4D,UAAW,SAAmB3f,GAE5B,IAAI4f,EAAQ5f,GAAS,GACjBP,EAAOmgB,EAAMngB,KACb6f,EAASM,EAAMN,OAIN,YAAT7f,GAAsB6f,IAK1B,eAAUtf,EAAO,CACfif,aAAa,IAEfvgB,KAAKwgB,cACLxgB,KAAKmhB,YAAW,GAEhBnhB,KAAK2f,eAEPwB,WAAY,SAAoBjb,GAG9B,IACE,eAAWA,EAAIkb,SAASC,KAAM,UAAWrhB,KAAKihB,WAAW,GACzD,eAAW/a,EAAIkb,SAASC,KAAM,WAAYrhB,KAAKihB,WAAW,GAC1D,MAAOtd,MAEX6c,YAAa,WACXc,aAAathB,KAAKsf,kBAClBiC,cAAcvhB,KAAKuf,mBACnBvf,KAAKsf,iBAAmB,KACxBtf,KAAKuf,kBAAoB,MAE3BH,YAAa,WACXpf,KAAKwgB,cACLxgB,KAAKmhB,YAAW,GAChBnhB,KAAKwf,aAAc,IAGvBviB,OAAQ,SAAgBC,GACtB,IAAImH,EAASrE,KAET6c,EAAS7c,KAAK6c,OACdlgB,EAAQqD,KAAK4Y,WACb/B,EAAS7W,KAAK8c,eACdpX,EAAW1F,KAAK+c,iBAChBH,EAAW5c,KAAK4c,SAChBlgB,EAAWsD,KAAKtD,SAChBoiB,EAAoB9e,KAAK8e,kBACzBG,GAAY,eAAOtiB,GAEnB6kB,EAAa,SAAoBb,EAAS9gB,EAAO4hB,EAASC,EAAQC,EAAUC,EAAaC,GAC3F,IAAIC,EAAQ5kB,EAAEukB,EAAS,CACrBhlB,MAAO,CACLslB,MAAO1d,EAAOmB,SAAW,IAAM,MAEjClI,MAAO,CACL,cAAe,UAGf0kB,EAAQ,CACVxc,SAAUnB,EAAOmB,UAGfyc,EAAU,SAAiB3gB,GACxB5E,GAAagJ,IAChB,eAAUpE,EAAO,CACfif,aAAa,IAGflc,EAAO8c,YAAW,GAGlB,eAAa7f,EAAM4gB,eAEnB7d,EAAOoc,iBAAiBnf,EAAOqf,KAInC,OAAOzjB,EAAE,SAAU,CACjBoJ,YAAa,gCACbC,MAAO,CACL,QAASqW,GAEXtf,MAAO,CACL8X,SAAU,KACVrU,KAAM,SACNrE,SAAUA,GAAYgJ,GAAYkc,EAClC,gBAAiBllB,GAAYgJ,GAAYkc,EAAc,OAAS,KAChE,gBAAiB/E,EACjB,aAAchd,GAAS,KACvB,oBAAqB8hB,GAAY,MAEnCzb,GAAI,CACFic,UAAWF,EACXG,WAAYH,GAEd5iB,IAAKqiB,GAAU,KACf3a,IAAK2a,GACJ,CAACrd,EAAO5D,cAAcohB,EAAUG,IAAUF,KAI3CO,EAAab,EAAWxhB,KAAKggB,OAAQhgB,KAAKsc,eAAgB,QAAW,MAAO,WAAW,EAAO,QAC9FgG,EAAad,EAAWxhB,KAAKigB,SAAUjgB,KAAKqc,eAAgB,QAAW,MAAO,aAAa,EAAO,QAClGkG,EAAUrlB,IAEV8C,KAAKjD,OAASL,IAChB6lB,EAAUrlB,EAAE,QAAS,CACnBI,MAAO,CACLyD,KAAM,SACNhE,KAAMiD,KAAKjD,KACXmR,KAAMlO,KAAKkO,MAAQ,KAEnBvR,MAAOqD,KAAK6d,cAEdxe,IAAK,YAIT,IAAImjB,EAAQtlB,EACZ,SAAU,CACRoJ,YAAa,cACbC,MAAO,CACL,SAAUqW,EACV,qBAAsBA,EACtB,qBAAsBA,EACtB,aAAcA,EACd,gBAAiBA,EACjB,eAAgBA,EAChB,gBAAiBA,GAEnBtf,MAAO0C,KAAKgf,kBACZ3f,IAAK,SACL0H,IAAK,WACJ,CAAC7J,EAAE,MAAO+hB,EAAWH,EAAkBniB,GAASqD,KAAK6F,aAAe,MACvE,OAAO3I,EAAE,MAAO,CACdoJ,YAAa,iCACbC,MAAO,CAAC,CACN7J,SAAUA,EACVgJ,SAAUA,EACV7B,MAAO7D,KAAKwF,SACZ,gBAAiBqR,GAAU+F,EAC3B,UAAW/F,IAAW+F,EACtB,uBAAwBA,EACxB,cAAeA,GACd5c,KAAKyiB,cAAeziB,KAAKsR,YAC5BhU,MAAO0C,KAAKgO,cACZ9H,GAAI,CACFwc,QAAS1iB,KAAKkgB,UACdyC,MAAO3iB,KAAK0gB,QAEZ,SAAU1gB,KAAK+f,YACf,QAAS/f,KAAK+f,cAEfnD,EAAW,CAACyF,EAAYE,EAASC,EAAOF,GAAc,CAACA,EAAYC,EAASC,EAAOH,Q,oCC7iB1F,8DAEI1Z,EAA+B,eAAc,CAC/ClL,WAAY,CACVgW,WAAY,OACZmP,cAAe,W,oCCLnB,sCAAI/hB,EAAJ,gSAEA,SAAS5C,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EA2B3M,IAAIoB,EAAkB,eAAe,QAAS,CAC5CC,KAAM,OACNO,MAAO,SAELN,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBrE,MAC7B0E,EAAkBL,EAAgBM,KAClCC,EAAmBP,EAAgBQ,MAEnCuhB,EAAY,EACZC,EAAgB,EAEhBC,EAAe,SAAsBC,GACvC,OAAO,eAAQH,EAAW,eAAUG,EAAOF,KAGzCG,EAAa,SAAoBtmB,EAAOkI,EAAKC,GAC/C,OAAO,eAAQ,eAAQnI,EAAOmI,GAAMD,IAKlCqe,EAAmB,aAAIpmB,OAAO,CAChCC,KAAM,OACNgD,OAAQ,CAAC,QACTtD,MAAO,CACLC,SAAU,eAAS,QAAmB,GAEtCymB,QAAS,eAAS,QAAmB,GACrCC,SAAU,eAAS,QAAmB,GACtCC,OAAQ,eAAS,OAAkB,GACnC3d,SAAU,eAAS,QAAmB,GACtC4d,KAAM,eAAS,OAAkB,GACjCrd,QAAS,eAAS,SAEpBrC,QAAS,CACP2f,QAAS,SAAiBjiB,GACnBtB,KAAKtD,UAAasD,KAAK0F,WAC1B,eAAUpE,EAAO,CACfif,aAAa,IAEfvgB,KAAKqD,MAAM,OAAqBrD,KAAKsjB,SAI3CrmB,OAAQ,SAAgBC,GACtB,IAAImmB,EAASrjB,KAAKqjB,OACdC,EAAOtjB,KAAKsjB,KACZH,EAAUnjB,KAAKmjB,QACfC,EAAWpjB,KAAKojB,SAChBnd,EAAUjG,KAAKiG,QACfvJ,EAAWsD,KAAKtD,SAChBgJ,EAAW1F,KAAK0F,SAChB8d,EAAUJ,EAAW,EAAI,EACzBriB,EAAOsiB,GAAUC,EAAO,OAASD,GAAUC,EAAO,GAAM,OAAS,QACjE9M,EAAY,CACdvQ,QAASA,EACTvJ,SAAUA,EACVgJ,SAAUA,GAEZ,OAAOxI,EAAE,OAAQ,CACfoJ,YAAa,gBACbC,MAAO,CAEL4c,QAASA,GAAWE,IAAWC,IAAS,eAAUD,IAAWC,IAASE,EAEtE,sBAAgC,UAATziB,EACvB,qBAA+B,SAATA,EACtB,qBAA+B,SAATA,GAExBzD,MAAO,CACL8X,SAAW1Y,GAAagJ,EAAkB,KAAP,MAErCQ,GAAI,CACFC,MAAOnG,KAAKujB,UAEb,CAACrmB,EAAE,OAAQ,CACZoJ,YAAa,iBACZ,CAACtG,KAAKS,cAAcM,EAAMyV,UAItB/Z,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUoC,GAAa,eAAK,OAAkB,CAAC,WAAY,eAAgB,QAAgB,GAAI,CAEzNuiB,MAAO,eAAS,QAChBC,UAAW,eAAS,OAAkB,KACtCC,UAAW,eAAS,OAAkB,QACtCC,SAAU,eAAS,OAAkB,aACrCC,SAAU,eAAS,OAAkB,aACrChN,OAAQ,eAAS,QAAmB,GAGpCpS,OAAQ,eAAS,QACjBqf,SAAU,eAAS,QAAmB,GACtCvF,UAAW,eAAS,QACpB7Y,SAAU,eAAS,QAAmB,GACtCqe,UAAW,eAAS,QAAmB,GACvCC,UAAW,eAAS,QAAmB,GACvCC,aAAc,eAAS,QAAmB,GAC1CjB,MAAO,eAAS,OAAyBF,GAAe,SAAUnmB,GAChE,OAAO,eAAUA,IAAUkmB,KAE7B5c,QAAS,eAAS,WACf,QAGMie,EAA2B,aAAIpnB,OAAO,CAC/CC,KAAM,OACNU,WAAY,CACV0mB,UAAW,QACXC,cAAe,QACfC,cAAe,QACfC,OAAQ,SAEVvkB,OAAQ,CAAC,OAASiB,EAAY,QAC9BvE,MAAOA,EACPW,KAAM,WACJ,IAAIT,EAAQ,eAAQqD,KAAKmB,GAAkB,MACvC6hB,EAAQD,EAAa/iB,KAAKgjB,OAC9B,MAAO,CACLpK,WAAY,eAAOjc,GAAS,KAAOsmB,EAAWtmB,EAAO,EAAGqmB,GACxDxd,UAAU,IAGd3C,SAAU,CACR0hB,cAAe,WACb,OAAOxB,EAAa/iB,KAAKgjB,QAE3BwB,eAAgB,WACd,IAAI7nB,EAAQ,eAAQqD,KAAK4Y,WAAY,GACjC2F,EAAY,eAAUve,KAAKue,UAAW,GAE1C,OAAO0E,EAAW,eAAQtmB,EAAMmhB,QAAQS,IAAa,EAAGve,KAAKukB,gBAE/DxG,eAAgB,WACd,IAAIC,EAAU,eAAOhe,KAAKyE,QAAQjG,OAAO,QACrCyf,EAAK,IAAIC,KAAKC,aAAaH,GAC/B,OAAOC,EAAGG,kBAAkB3Z,QAE9BggB,cAAe,WACb,OAAQzkB,KAAKtD,WAAasD,KAAK0F,UAEjChD,MAAO,WACL,OAAO,eAAY1C,KAAK+d,iBAE1B2G,gBAAiB,WACf,IAAInG,EAAY,eAAUve,KAAKue,WAC3B0F,EAAejkB,KAAKikB,aACpBxf,EAASzE,KAAK+d,eACd4G,EAAgB,CAClB/F,SAAU,WACVF,sBAAuBkG,MAAMrG,GAAa,EAAIA,EAC9CI,sBAAuBiG,MAAMrG,GAAa,EAAIA,GAE5CyE,EAAQhjB,KAAKukB,cAAcM,eAAepgB,GAC1C9H,EAAQqD,KAAK4Y,WAEjB,OADAjc,EAAQ,eAAOA,GAASsnB,EAAe,IAAM,GAAKtnB,EAAMkoB,eAAepgB,EAAQkgB,GACxEV,EAAe,GAAGzjB,OAAO7D,EAAO,KAAK6D,OAAOwiB,GAASrmB,IAGhEwG,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQM,GAAiB,SAAUiC,EAAUG,GAChF,GAAIH,IAAaG,EAAU,CACzB,IAAI5G,EAAQ,eAAQyG,EAAU,MAC9BpD,KAAK4Y,WAAa,eAAOjc,GAAS,KAAOsmB,EAAWtmB,EAAO,EAAGqD,KAAKukB,mBAEnEjlB,EAAgBuB,EAAQ,cAAc,SAAoBuC,EAAUG,GAClEH,IAAaG,GAAYH,KAAcpD,KAAKrD,OAAS,IACvDqD,KAAKqD,MAAMhC,EAAkB+B,GAAY,SAEzC9D,EAAgBuB,EAAQ,YAAY,SAAkBuC,GACpDA,IACFpD,KAAKwF,UAAW,EAChBxF,KAAK8D,WAELjD,GACJ+C,QAAS,CAEPC,MAAO,WACA7D,KAAKtD,UACR,eAAasD,KAAKoP,MAGtBtL,KAAM,WACC9D,KAAKtD,UACR,eAAYsD,KAAKoP,MAIrB8Q,UAAW,SAAmB5e,GAC5B,IAAI6e,EAAU7e,EAAM6e,QAEpB,GAAIngB,KAAKykB,eAAiB,eAAc,CAAC,OAAW,OAAW,OAAY,QAAUtE,GAAU,CAC7F,eAAU7e,EAAO,CACfif,aAAa,IAEf,IAAI5jB,EAAQ,eAAUqD,KAAK4Y,WAAY,GACnC/T,EAAM7E,KAAK+jB,UAAY,EAAI,EAC3Bf,EAAQhjB,KAAKukB,cAEbO,EAAY9kB,KAAK0C,OAAS,EAAI,EAE9Byd,IAAY,OACdngB,KAAK4Y,WAAaqK,EAAWtmB,EAAQmoB,EAAWjgB,EAAKme,IAAU,KACtD7C,IAAY,OACrBngB,KAAK4Y,WAAaqK,EAAWtmB,EAAQmoB,EAAWjgB,EAAKme,GAC5C7C,IAAY,OACrBngB,KAAK4Y,WAAaqK,EAAWtmB,EAAQ,EAAGkI,EAAKme,IAAU,KAC9C7C,IAAY,SACrBngB,KAAK4Y,WAAaqK,EAAWtmB,EAAQ,EAAGkI,EAAKme,MAInD5e,WAAY,SAAoBzH,GAC1BqD,KAAKykB,gBACPzkB,KAAK4Y,WAAajc,IAGtBooB,QAAS,SAAiBzjB,GACxBtB,KAAKwF,WAAYxF,KAAKykB,eAAuC,UAAfnjB,EAAMP,MAGtDikB,WAAY,SAAoBC,GAC9B,OAAOjlB,KAAKyF,eAAe,OAAO,CAChChJ,MAAO,CACLwoB,KAAMA,EACNhf,QAASjG,KAAKtD,UAAYsD,KAAKyjB,MAAQ,KAAOzjB,KAAKiG,SAAW,SAIpEif,YAAa,WACX,OAAOllB,KAAKglB,WAAWhlB,KAAK2jB,YAE9BwB,WAAY,WACV,OAAOnlB,KAAKglB,WAAWhlB,KAAK6jB,WAE9BuB,WAAY,WACV,OAAOplB,KAAKglB,WAAWhlB,KAAK4jB,WAE9ByB,YAAa,WACX,OAAOrlB,KAAKyF,eAAe,OAAO,CAChChJ,MAAO,CACLwoB,KAAMjlB,KAAK0jB,eAKnBzmB,OAAQ,SAAgBC,GACtB,IAAI+G,EAAQjE,KAERtD,EAAWsD,KAAKtD,SAChBgJ,EAAW1F,KAAK0F,SAChB3I,EAAOiD,KAAKjD,KACZmR,EAAOlO,KAAKkO,KACZ2I,EAAS7W,KAAK6W,OACd5Q,EAAUjG,KAAKiG,QACfwd,EAAQzjB,KAAKyjB,MACbK,EAAW9jB,KAAK8jB,SAChBte,EAAWxF,KAAKwF,SAChBgf,EAAiBxkB,KAAKwkB,eACtBD,EAAgBvkB,KAAKukB,cACrBG,EAAkB1kB,KAAK0kB,gBACvBX,EAAY/jB,KAAK+jB,UACjBrhB,EAAQ1C,KAAK0C,MACb+hB,EAAgBzkB,KAAKykB,cACrB7e,EAAe5F,KAAK4F,aACpBoQ,EAAW,GAEf,GAAI+N,IAAcrnB,IAAagJ,EAAU,CACvC,IAAIoc,EAAQ5kB,EAAE,OAAQ,CACpBoJ,YAAa,iBACZ,EAAEV,EAAa,SAAyB5F,KAAKqlB,iBAChDrP,EAASpX,KAAK1B,EAAE,OAAQ,CACtBoJ,YAAa,gDACbC,MAAO,CACL4c,QAAS3d,GAA+B,IAAnBgf,GAEvBlnB,MAAO,CACL8X,SAAUqP,EAAgB,KAAO,MAEnCve,GAAI,CACFC,MAAO,WACL,OAAOlC,EAAMG,WAAW,QAG5B/E,IAAK,SACJ,CAACyiB,KAGN,IAAK,IAAIzhB,EAAQ,EAAGA,EAAQkkB,EAAelkB,IAAS,CAClD,IAAI1D,EAAQ0D,EAAQ,EACpB2V,EAASpX,KAAK1B,EAAEgmB,EAAkB,CAChC5c,YAAa,cACbiL,MAAOkS,IAAU/mB,EAAW,CAC1B+mB,MAAOA,GACL,GACJhnB,MAAO,CACL4mB,OAAQmB,EACRlB,KAAM3mB,EACNsJ,QAASvJ,EAAW,KAAOuJ,GAAW,KACtCvJ,SAAUA,EACVgJ,SAAUA,EACVyd,QAAS3d,EACT4d,SAAUW,GAEZ7d,GAAI,CACFS,SAAU3G,KAAKoE,YAEjB0C,YAAa,CACXwe,MAAO1f,EAAa,SAAyB5F,KAAKklB,YAClDK,KAAM3f,EAAa,SAAwB5F,KAAKmlB,WAChDK,KAAM5f,EAAa,SAAwB5F,KAAKolB,YAElD/lB,IAAKgB,KA0BT,OAtBItD,GACFiZ,EAASpX,KAAK1B,EAAE,QAAS,CACvBI,MAAO,CACLyD,KAAM,SACNpE,MAAO,eAAOqD,KAAK4Y,YAAc,GAAK4L,EACtCznB,KAAMA,EACNmR,KAAMA,GAAQ,MAEhB7O,IAAK,YAILW,KAAKgkB,WACPhO,EAASpX,KAAK1B,EAAE,IAAK,CACnBoJ,YAAa,6BACbhJ,MAAO,CACL,cAAe,QAEjB+B,IAAK,SACJ,eAASqlB,KAGPxnB,EAAE,SAAU,CACjBoJ,YAAa,2CACbC,MAAO,CAAC,CACN,gBAAiBsQ,EACjB,UAAWA,EACX,WAAYiN,EACZpnB,SAAUA,EACVgJ,UAAWhJ,GAAYgJ,GACtB1F,KAAKyiB,eACRnlB,MAAO,CACL0J,GAAIhH,KAAKiH,SACTiY,IAAKxc,EAAQ,MAAQ,MACrB0S,SAAU1Y,EAAW,KAAO,IAC5BA,SAAUA,EACV+Y,KAAM,SACN,gBAAiB/Y,EAAW,OAAS,KACrC,iBAAkBA,GAAYgJ,EAAW,OAAS,KAClD,YAAa,MACb,gBAAiBqe,EAAY,IAAM,IACnC,gBAAiB,eAASQ,GAC1B,gBAAiBC,EAAiB,eAASA,GAAkB,MAE/Dte,GAAI,CACFwc,QAAS1iB,KAAKkgB,UACdrc,MAAO7D,KAAK+kB,QACZjhB,KAAM9D,KAAK+kB,UAEZ/O,O,0TC9YP,SAAS/X,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAUpM,IAAI,EAAQ,eAAsB,eAASZ,EAAcA,EAAc,GAAI,QAAmB,GAAI,CACvG2mB,WAAY,eAAS,OAAkB,SACvCC,aAAc,eAAS,OAAkB,cACtC,eAGMC,EAAe,aAAI7oB,OAAO,CACnCiD,OAAQ,CAAC,QACTtD,MAAO,EACPmH,QAAS,CACPgiB,gBAAiB,SAAyBxlB,GACxC,IAAIf,EAAMJ,UAAUC,OAAS,QAAsBtC,IAAjBqC,UAAU,GAAmBA,UAAU,GAAK,KAG9E,GAAI,eAAcmB,GAAS,CACzB,IAAIzD,EAAQ,OAAAkpB,EAAA,MAAIzlB,EAAQJ,KAAK8lB,YACzBxlB,EAAO,OAAAulB,EAAA,MAAIzlB,EAAQJ,KAAK+lB,WACxBC,EAAU,OAAAH,EAAA,MAAIzlB,EAAQJ,KAAK0lB,aAAc,MAE7C,OAAK,eAAOM,GAQL,CACLrpB,MAAO,eAAYA,GAAS0C,GAAOiB,EAAO3D,EAC1C2D,KAAM2lB,OAAO,eAAY3lB,GAAQjB,EAAMiB,GACvCC,KAAM,OAAAslB,EAAA,MAAIzlB,EAAQJ,KAAKkmB,WACvBxpB,SAAUypB,QAAQ,OAAAN,EAAA,MAAIzlB,EAAQJ,KAAKomB,iBAX5B,CACLvmB,MAAOomB,OAAO,OAAAJ,EAAA,MAAIzlB,EAAQJ,KAAKylB,aAAenlB,GAC9C0lB,QAAShmB,KAAKqmB,iBAAiBL,IAcrC,MAAO,CACLrpB,MAAO0C,GAAOe,EACdE,KAAM2lB,OAAO7lB,GACb1D,UAAU,O,wBCrDlB,SAAS,EAAQwB,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAAS,EAAcW,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAK,EAAQX,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAO,EAAgBN,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmB,EAAQd,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAAS,EAAgBW,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAwBpM,IAAI,EAAQ,eAAsB,eAAS,EAAc,EAAc,EAAc,EAAc,EAAc,EAAc,EAAc,GAAIsH,EAAA,MAAUsf,EAAA,MAAa,QAAmB,QAAkB,QAAgB,QAAiB,GAAI,CACvPC,YAAa,eAAS,QAA0B,GAChD1Z,SAAU,eAAS,QAAmB,GAGtC2Z,WAAY,eAAS,OAAkB,MACpC,SAGMC,EAA2B,aAAI3pB,OAAO,CAC/CC,KAAM,QACNgD,OAAQ,CAACiH,EAAA,KAASsf,EAAA,KAAY,OAAkB,OAAe,OAAgB,OAAiBX,EAAc,QAC9GlpB,MAAO,EACPW,KAAM,WACJ,MAAO,CACLwb,WAAY5Y,KAAK,UAGrB6C,SAAU,CACR6jB,mBAAoB,WAGlB,OAAQ1mB,KAAKyQ,OAA6B,IAApBzQ,KAAKwmB,WAA0BxmB,KAAKwmB,WAAZ,MAEhDG,WAAY,WACV,MAAO,CAAC3mB,KAAKyQ,MAAQ,eAAiB,gBAAiBzQ,KAAKgG,MAAQhG,KAAKyQ,MAAQ,gBAAgBjQ,OAAOR,KAAKgG,MAAQ,KAAMhG,KAAKgG,OAAShG,KAAKyQ,MAAQ,iBAAiBjQ,OAAOR,KAAKgG,MAAQ,KAAMhG,KAAKsR,cAG1MnO,MAAO,CACLxG,MAAO,SAAeyG,GACpBpD,KAAK4Y,WAAaxV,GAEpBwV,WAAY,WACV5Y,KAAKqD,MAAM,OAAkBrD,KAAK4Y,cAGtChV,QAAS,CACPC,MAAO,WACL,eAAa7D,KAAKwD,MAAMoD,QAE1B9C,KAAM,WACJ,eAAY9D,KAAKwD,MAAMoD,QAEzB8J,SAAU,SAAkBpP,GAC1B,IAAI2C,EAAQjE,KAERjB,EAASuC,EAAMvC,OACf6nB,EAAgB,OAAAC,EAAA,MAAU9nB,EAAOinB,SAASxnB,QAAO,SAAUsoB,GAC7D,OAAOA,EAAEngB,YACRxG,KAAI,SAAU2mB,GACf,MAAO,WAAYA,EAAIA,EAAEC,OAASD,EAAEnqB,SAEtCqD,KAAK4Y,WAAa7Z,EAAO8N,SAAW+Z,EAAgBA,EAAc,GAClE5mB,KAAKkE,WAAU,WACbD,EAAMZ,MAAM,OAAmBY,EAAM2U,iBAI3C3b,OAAQ,SAAgBC,GACtB,IAAIH,EAAOiD,KAAKjD,KACZL,EAAWsD,KAAKtD,SAChBuR,EAAWjO,KAAKiO,SAChBjI,EAAOhG,KAAK0mB,mBACZ/pB,EAAQqD,KAAK4Y,WACb3Y,EAAWD,KAAKE,YAAYC,KAAI,SAAUC,EAAQC,GACpD,IAAI1D,EAAQyD,EAAOzD,MACfkD,EAAQO,EAAOP,MACfmmB,EAAU5lB,EAAO4lB,QACjBtpB,EAAW0D,EAAO1D,SAClB2C,EAAM,UAAUmB,OAAOH,GAC3B,OAAO,eAAQ2lB,GAAW9oB,EAAE,OAAwB,CAClDT,MAAO,CACLoD,MAAOA,EACPmmB,QAASA,GAEX3mB,IAAKA,IACFnC,EAAE,OAAmB,CACxBT,MAAO,CACLE,MAAOA,EACPD,SAAUA,GAEZa,SAAU,OAAAgD,EAAA,MAAWH,EAAOG,KAAMH,EAAOE,MACzCjB,IAAKA,OAGT,OAAOnC,EAAE,SAAU,CACjBqJ,MAAOvG,KAAK2mB,WACZrpB,MAAO,CACL0J,GAAIhH,KAAKiH,SACTlK,KAAMA,EACNmR,KAAMlO,KAAKkO,MAAQ,KACnBrB,SAAU7M,KAAK6M,UAAY,KAC3B7G,KAAMA,EACNtJ,SAAUA,EACVuR,SAAUA,EACV,gBAAiBA,EAAW,OAAS,KACrC,eAAgBjO,KAAKiW,qBAEvB/P,GAAI,CACFuL,OAAQzR,KAAK0Q,UAEfmH,WAAY,CAAC,CACX9a,KAAM,QACNJ,MAAOA,IAEToK,IAAK,SACJ,CAAC/G,KAAKS,cAAc,QAAkBR,EAAUD,KAAKS,sB,oCCtI5D,8DAEIgI,EAAoC,eAAc,CACpDhL,WAAY,CACV6E,gBAAiB,OACjB0kB,YAAa,W,oCCLjB,0EAGIpe,EAA+B,eAAc,CAC/CnL,WAAY,CACVwpB,WAAY,OACZC,OAAQ,OACRC,gBAAiB,OACjBC,YAAa,W,kCCRjB,kGAKW3qB,EAAQ,eAAsB,CACvC0Y,IAAK,eAAS,OAAkB,QAC/B,SAGQkS,EAA+B,aAAIvqB,OAAO,CACnDC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SACpB,OAAOH,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCkJ,YAAa,qBACXjJ,O,oCCpBR,sCAAIiqB,EAAJ,wHAEA,SAASrpB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAa3M,IAAI6nB,EAAgC,gBAChCC,EAAiC,QAA0BD,EAEpD9qB,EAAQ,eAAsB,eAASqC,EAAcA,EAAc,GAAI,QAAsB,IAAKwoB,EAAiB,GAAIhoB,EAAgBgoB,EAAgBC,EAA+B,eAAS,QAAmB,IAASjoB,EAAgBgoB,EAAgB,SAAU,eAAS,QAAmB,IAAShoB,EAAgBgoB,EAAgB,iBAAkB,eAAS,QAAe,IAAShoB,EAAgBgoB,EAAgB,QAAS,eAAS,QAAe,IAAQA,KAAmB,QAGzdtQ,EAA6B,aAAIla,OAAO,CACjDC,KAAM,OACNgD,OAAQ,CAAC,QACT0nB,OAAQ,CACNC,QAAS,CACPC,KAAM,eACNC,QAAS,OAGbnrB,MAAOA,EACPoG,SAAU,CACRglB,UAAW,WACT,IAAIlrB,EAAQqD,KAAKrD,MACbmrB,EAAU9nB,KAAK+nB,qBACnB,OAAO,eAAQD,GAAW,eAAaA,EAASnrB,IAAU,EAAI,eAAWmrB,EAASnrB,IAEpFqrB,QAAS,WACP,OAAO,IAGX7kB,MAAO7D,EAAgB,GAAIioB,GAA+B,SAAUnkB,EAAUG,GACvE,eAAWH,EAAUG,IACxBvD,KAAKioB,iBAAiB7kB,MAG1B8L,QAAS,WAEPlP,KAAKioB,iBAAiBjoB,KAAKunB,KAE7B3jB,QAAS,CACPskB,4BAA6B,SAAqC9kB,EAAUG,GAC1E,IAAK,eAAWH,EAAUG,GAAW,CACnCvD,KAAKqD,MAAM,OAAkBD,GAC7B,IAAI+M,EAASnQ,KAAKwD,MAAMoD,MAEpBuJ,GACFnQ,KAAKqD,MAAMmkB,EAAgCrX,EAAOgY,iBAIxDC,aAAc,SAAsBjrB,GAClC,IAAI8G,EAAQjE,KAERqoB,EAAclrB,EAAK4B,OACnB+oB,EAAUO,EAAYP,QACtBK,EAAgBE,EAAYF,cAC5BxrB,EAAQqD,KAAKrD,MACb2rB,EAAiBtoB,KAAKsoB,eAEtBC,EAAevoB,KAAK+nB,qBAExB,GAAI,eAAQQ,GAAe,CACzB,IAAIloB,EAAQ,eAAakoB,EAAc5rB,GAEnCmrB,GAAWznB,EAAQ,EAErBkoB,EAAeA,EAAa/nB,OAAO7D,IACzBmrB,GAAWznB,GAAS,IAE9BkoB,EAAeA,EAAaxlB,MAAM,EAAG1C,GAAOG,OAAO+nB,EAAaxlB,MAAM1C,EAAQ,UAGhFkoB,EAAeT,EAAUnrB,EAAQ2rB,EAGnCtoB,KAAK+nB,qBAAuBQ,EAE5BvoB,KAAKkE,WAAU,WAEbD,EAAMZ,MAAM,OAAmBklB,GAG3BtkB,EAAMukB,SACRvkB,EAAMyjB,QAAQrkB,MAAM,OAAmBklB,GAGzCtkB,EAAMZ,MAAMmkB,EAAgCW,OAGhDF,iBAAkB,SAA0BnT,GAEtC,eAAQ9U,KAAK+nB,wBACfjT,GAAQ,GAGV,IAAI3E,EAASnQ,KAAKwD,MAAMoD,MAEpBuJ,IACFA,EAAOgY,cAAgBrT,EAEvB9U,KAAKqD,MAAMmkB,EAAgC1S,S,oCCnHnD,sCAAIjU,EAAJ,oUAEA,SAAS4nB,EAAmBC,GAAO,OAAOC,EAAmBD,IAAQE,EAAiBF,IAAQG,EAA4BH,IAAQI,IAElI,SAASA,IAAuB,MAAM,IAAIC,UAAU,wIAEpD,SAASF,EAA4B/B,EAAGkC,GAAU,GAAKlC,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOmC,EAAkBnC,EAAGkC,GAAS,IAAIE,EAAI7qB,OAAO8qB,UAAUxL,SAASyL,KAAKtC,GAAG/jB,MAAM,GAAI,GAAiE,MAAnD,WAANmmB,GAAkBpC,EAAEuC,cAAaH,EAAIpC,EAAEuC,YAAYtsB,MAAgB,QAANmsB,GAAqB,QAANA,EAAoBI,MAAM3B,KAAKb,GAAc,cAANoC,GAAqB,2CAA2Ctb,KAAKsb,GAAWD,EAAkBnC,EAAGkC,QAAzG,GAE7S,SAASJ,EAAiBW,GAAQ,GAAsB,qBAAXC,QAA0BA,OAAOC,YAAYprB,OAAOkrB,GAAO,OAAOD,MAAM3B,KAAK4B,GAE1H,SAASZ,EAAmBD,GAAO,GAAIY,MAAMI,QAAQhB,GAAM,OAAOO,EAAkBP,GAEpF,SAASO,EAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIxpB,UAAQyqB,EAAMjB,EAAIxpB,QAAQ,IAAK,IAAIF,EAAI,EAAG4qB,EAAO,IAAIN,MAAMK,GAAM3qB,EAAI2qB,EAAK3qB,IAAO4qB,EAAK5qB,GAAK0pB,EAAI1pB,GAAM,OAAO4qB,EAEhL,SAAS3rB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAgC3M,IAAIoB,EAAkB,eAAe,QAAS,CAC5CC,KAAM,OACNyJ,aAAc,KAEZxJ,EAAaF,EAAgBG,MAC7BC,EAAaJ,EAAgBrE,MAC7B0E,EAAkBL,EAAgBM,KAClCC,EAAmBP,EAAgBQ,MAGnCuoB,EAAQ,CAAC,OAAQ,QAAS,MAAO,MAAO,UAExCC,EAA+B,CAAC,cAAe,SAAU,QAAS,UAAUpa,KAAK,KAIjFqa,EAAoB,SAA2BC,GACjD,OAAO,eAAaA,GAAK/mB,QAAQ,OAAW,QAI1CgnB,EAAY,SAAmBC,GACjC,OAAO,eAAOA,GAAM/pB,KAAI,SAAUgV,GAChC,OAAO,eAAK,eAASA,OACpB3W,QAAO,SAAU2W,EAAK9U,EAAOqoB,GAC9B,OAAOvT,EAAIjW,OAAS,GAAKwpB,EAAIhU,QAAQS,KAAS9U,MAK9C8pB,EAAoB,SAA2B7oB,GACjD,OAAO,eAASA,GAASA,EAAQ,eAAQA,IAASA,EAAMvC,OAAOpC,OAAc,IAI3EytB,EAAiB,WACnB,MAAO,CACL9e,IAAK,GACL+e,MAAO,GACPC,QAAS,GACTC,UAAW,KAKX9tB,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAUoC,GAAa,QAAmB,QAAgB,QAAiB,GAAI,CAChNspB,cAAe,eAAS,OAAkB,OAC1CC,iBAAkB,eAAS,OAAkB,qBAG7CC,YAAa,eAAS,QAAmB,GACzCC,iBAAkB,eAAS,OAAkB,oBAG7CC,yBAA0B,eAAS,OAAwBd,GAE3De,WAAY,eAAS,OAAkB,IACvClE,WAAY,eAAS,QACrBmE,QAAS,eAAS,QAClBC,UAAW,eAAS,OAAkB,QAAQ,SAAUpuB,GACtD,OAAO,eAAcktB,EAAOltB,MAE9BquB,eAAgB,eAAS,OAAkB,kBAC3CC,MAAO,eAAS,QAChBC,cAAe,eAAS,OAAkB,qBAE1CC,aAAc,eAAS,QAAmB,GAE1CC,aAAc,eAAS,QAAmB,GAC1CC,YAAa,eAAS,QAAmB,GACzCxlB,YAAa,eAAS,OAAkB,cAGxCylB,eAAgB,eAAS,QAAmB,GAE5CC,UAAW,eAAS,QACpBC,SAAU,eAAS,QACnBC,SAAU,eAAS,QAAmB,GACtCC,eAAgB,eAAS,OAAkB,cAC3CC,gBAAiB,eAAS,OAAkB,eAC5CC,aAAc,eAAS,QACvBC,WAAY,eAAS,OAAkB,gBACpC,SAGMnuB,EAAyB,aAAIZ,OAAO,CAC7CC,KAAM,QACNgD,OAAQ,CAAC,OAASiB,EAAY,OAAkB,OAAe,OAAgB,QAC/EvE,MAAOA,EACPW,KAAM,WACJ,MAAO,CACLoI,UAAU,EACVsmB,OAAQ,GACR5B,KAAM,GAEN6B,YAAa,GAEbC,UAAW5B,MAGfvnB,SAAU,CACRopB,gBAAiB,WACf,OAAOjsB,KAAK8qB,SAAW9qB,KAAKiH,OAAO,cAErCilB,kBAAmB,WAEjB,OAAO,eAAcrC,EAAO7pB,KAAK+qB,WAAa/qB,KAAK+qB,UAAY,QAEjEoB,mBAAoB,WAClB,IAAIzvB,EAAWsD,KAAKtD,SAChBwR,EAAOlO,KAAKkO,KAChB,OAAOpP,EAAcA,EAAc,GAAIkB,KAAK6qB,YAAa,GAAI,CAE3D7jB,GAAIhH,KAAKisB,gBACTtvB,MAAOqD,KAAK8rB,OACZpvB,SAAUA,EACVwR,KAAMA,KAGVke,sBAAuB,WACrB,MAAO,CACLxlB,MAAO5G,KAAKqsB,aACZ5a,OAAQzR,KAAKssB,cACb5J,QAAS1iB,KAAKusB,eACdxd,MAAO/O,KAAK+O,QAGhByd,kBAAmB,WAEjB,OAAO,eAAOxsB,KAAKurB,WAAW/sB,OAAO,QAAUA,OAAO,QAAUkR,KAAK,KAEvE+c,wBAAyB,WAKvB,IAAIlB,EAAYvrB,KAAKwsB,kBACrB,OAAOjB,EAAY,IAAIzd,OAAO,IAAItN,OAAOupB,EAAkBwB,GAAY,OAAS,MAElFmB,eAAgB,WAMd,IAAIC,EAAS3sB,KAAKwsB,kBAAkBI,OAAO,GAC3C,MAAkB,MAAXD,EAAiB,GAAGnsB,OAAOmsB,EAAQ,KAAOA,GAEnDE,gCAAiC,WAE/B,OAAO,eAAO7sB,KAAK4qB,0BAA0BpsB,OAAO,QAAUkR,KAAK,KAAKnC,QAE1Euf,iBAAkB,WAChB,IAAI7oB,EAAQjE,KAKR8rB,EAAS,eAAK9rB,KAAK8rB,QACvB,MAAkB,KAAXA,IAAkB9rB,KAAK+sB,UAAUjB,GAAQvc,MAAK,SAAUyd,GAC7D,OAAQ,eAAc/oB,EAAMimB,KAAM8C,IAAM/oB,EAAMgpB,YAAYD,OAG9DE,cAAe,WACb,OAAOltB,KAAKgsB,UAAUzB,WAExB4C,iBAAkB,WAChB,OAAOntB,KAAKktB,cAAchuB,OAAS,GAErCkuB,YAAa,WACX,OAAOptB,KAAKgsB,UAAU1B,SAExB+C,eAAgB,WACd,OAAOrtB,KAAKotB,YAAYluB,OAAS,GAEnCouB,eAAgB,WACd,IAAIrC,EAAQjrB,KAAKirB,MACjB,OAAO,eAASA,IAAUA,GAAS,GAAKjrB,KAAKkqB,KAAKhrB,QAAU+rB,IAGhE9nB,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQM,GAAiB,SAAUiC,GACtEpD,KAAKkqB,KAAOD,EAAU7mB,MACpB9D,EAAgBuB,EAAQ,QAAQ,SAAcuC,EAAUG,GAErD,eAAWH,EAAUpD,KAAKmB,KAC7BnB,KAAKqD,MAAMhC,EAAkB+B,GAG1B,eAAWA,EAAUG,KACxBH,EAAW,eAAOA,GAAU5E,OAAO,QACnC+E,EAAW,eAAOA,GAAU/E,OAAO,QACnCwB,KAAK+rB,YAAcxoB,EAAS/E,QAAO,SAAU+uB,GAC3C,OAAQ,eAAcnqB,EAAUmqB,UAGlCjuB,EAAgBuB,EAAQ,aAAa,SAAmBuC,EAAUG,GAE/D,eAAWH,EAAUG,IACxBvD,KAAKqD,MAAM,OAAsBD,EAASinB,MAAOjnB,EAASknB,QAASlnB,EAASmnB,cAE5E1pB,GACJmO,QAAS,WAGPhP,KAAKkqB,KAAOD,EAAUjqB,KAAKmB,KAE7B+N,QAAS,WACP,IAAI7K,EAASrE,KAGTmP,EAAQ,eAAQ,OAAQnP,KAAKoP,KAE7BD,IACF,eAAQA,EAAO,QAASnP,KAAK+O,MAAO,SACpC/O,KAAKwtB,IAAI,SAAgC,WACvC,eAASre,EAAO,QAAS9K,EAAO0K,MAAO,cAI7CnL,QAAS,CACP6pB,OAAQ,SAAgB3B,GAItB,GAHAA,EAAS,eAASA,GAAUA,EAAS9rB,KAAK8rB,QAGtC9rB,KAAKtD,UAA6B,KAAjB,eAAKovB,KAAkB9rB,KAAKstB,eAAjD,CAKA,IAAII,EAAS1tB,KAAK2tB,UAAU7B,GAG5B,GAAI4B,EAAOrD,MAAMnrB,OAAS,GAA2B,IAAtBwuB,EAAOpiB,IAAIpM,OAIxC,GAAI,eAAQc,KAAK4tB,WAAY,UAG3B5tB,KAAK8rB,OAAS,OACT,CACL,IAAI+B,EAAuB,GAAGrtB,OAAOioB,EAAmBiF,EAAOpD,SAAU7B,EAAmBiF,EAAOnD,YACnGvqB,KAAK8rB,OAAS4B,EAAOpiB,IAAI9M,QAAO,SAAU2W,GACxC,OAAO,eAAc0Y,EAAsB1Y,MAC1CzF,KAAK1P,KAAK0sB,gBAAgBlsB,OAAOqtB,EAAqB3uB,OAAS,EAAIc,KAAK0sB,eAAeE,OAAO,GAAK,IAItGc,EAAOrD,MAAMnrB,OAAS,IAKxBc,KAAKkqB,KAAO,eAAOlqB,KAAKkqB,KAAMwD,EAAOrD,QAGvCrqB,KAAKgsB,UAAY0B,EAGjB1tB,KAAK6D,UAEPiqB,UAAW,SAAmB3Y,GAC5B,IAAIhQ,EAASnF,KAGTA,KAAKtD,WAQTsD,KAAKkqB,KAAOlqB,KAAKkqB,KAAK1rB,QAAO,SAAUwuB,GACrC,OAAOA,IAAM7X,KAGfnV,KAAKkE,WAAU,WACbiB,EAAOtB,aAGXkL,MAAO,WACL,IAAIqC,EAASpR,KAEbA,KAAK8rB,OAAS,GACd9rB,KAAKkqB,KAAO,GACZlqB,KAAKkE,WAAU,WACbkN,EAAO2a,YAAc,GACrB3a,EAAO4a,UAAY5B,QAIvBiC,aAAc,SAAsB/qB,GAElC,KAAItB,KAAKtD,UAAY,eAAQ4E,IAAUA,EAAMvC,OAAOgvB,WAApD,CAMA,IAAIjC,EAAS3B,EAAkB7oB,GAC3B0sB,EAAchuB,KAAKysB,wBAEnBzsB,KAAK8rB,SAAWA,IAClB9rB,KAAK8rB,OAASA,GAIhBA,EAAS,eAASA,GAEdkC,GAAeA,EAAYpgB,KAAKke,EAAO/oB,OAAO,IAGhD/C,KAAKytB,SAGLztB,KAAKgsB,UAAuB,KAAXF,EAAgB1B,IAAmBpqB,KAAK2tB,UAAU7B,KAGvEQ,cAAe,SAAuBhrB,GAGpC,IAAKtB,KAAKtD,UAAYsD,KAAK0qB,YAAa,CACtC,IAAIoB,EAAS3B,EAAkB7oB,GAG3BtB,KAAK8rB,SAAWA,IAClB9rB,KAAK8rB,OAASA,GAGhB9rB,KAAKytB,WAGTlB,eAAgB,SAAwBjrB,GAItC,IAAItB,KAAKtD,UAAa,eAAQ4E,GAA9B,CAIA,IAAI6e,EAAU7e,EAAM6e,QAChBxjB,EAAQ2E,EAAMvC,OAAOpC,OAAS,GAG7BqD,KAAKmrB,cAAgBhL,IAAY,QAM3BngB,KAAKsrB,gBAAmBnL,IAAY,QAAkBA,IAAY,QAA0B,KAAVxjB,IAE3F,eAAU2E,EAAO,CACfif,aAAa,IAEfvgB,KAAKkqB,KAAOlqB,KAAKkqB,KAAKnnB,MAAM,GAAI,KAThC,eAAUzB,EAAO,CACfif,aAAa,IAEfvgB,KAAKytB,YAUTlK,QAAS,SAAiBjiB,GACxB,IAAI2sB,EAASjuB,KAETkuB,EAAsBluB,KAAK6sB,gCAC3B9tB,EAASuC,EAAMvC,OAEdiB,KAAKtD,UAAa,eAAgBqC,IAAamvB,GAAwB,eAAQA,EAAqBnvB,GAAQ,IAC/GiB,KAAKkE,WAAU,WACb+pB,EAAOpqB,YAIbsqB,UAAW,WACTnuB,KAAKwF,UAAW,GAElB4oB,WAAY,WACVpuB,KAAKwF,UAAW,GAElB6oB,gBAAiB,WACf,IAAIC,EAAStuB,KAEbA,KAAKkE,WAAU,WACb,gBAAU,WACJoqB,EAAOC,YAAcD,EAAO5xB,UAC9B4xB,EAAOzqB,eAMfA,MAAO,WACA7D,KAAKtD,UACR,eAAasD,KAAK4tB,aAGtB9pB,KAAM,WACC9D,KAAKtD,UACR,eAAYsD,KAAK4tB,aAIrBb,UAAW,SAAmBjB,GAE5BA,EAAS,eAASA,GAClB,IAAIkC,EAAchuB,KAAKysB,wBAIvB,OAAQuB,EAAclC,EAAOte,MAAMwgB,GAAe,CAAClC,IAAS3rB,IAAI,QAAM3B,OAAO,SAE/EmvB,UAAW,SAAmB7B,GAC5B,IAAI0C,EAASxuB,KAKTkqB,EAAOlqB,KAAK+sB,UAAUjB,GAEtB4B,EAAS,CACXpiB,IAAK4e,EACLG,MAAO,GACPC,QAAS,GACTC,UAAW,IAmBb,OAhBAL,EAAK9qB,SAAQ,SAAU+V,GACjB,eAAcqZ,EAAOtE,KAAM/U,IAAQ,eAAcuY,EAAOrD,MAAOlV,GAE5D,eAAcuY,EAAOnD,UAAWpV,IACnCuY,EAAOnD,UAAU3rB,KAAKuW,GAEfqZ,EAAOvB,YAAY9X,GAE5BuY,EAAOrD,MAAMzrB,KAAKuW,GAGb,eAAcuY,EAAOpD,QAASnV,IACjCuY,EAAOpD,QAAQ1rB,KAAKuW,MAInBuY,GAETT,YAAa,SAAqB9X,GAChC,IAAIyW,EAAe5rB,KAAK4rB,aACxB,OAAO,eAAgBA,IAAgBA,EAAazW,IAEtDyY,SAAU,WAGR,OAAO,eAAO,IAAIptB,OAAO,eAAUR,KAAKisB,kBAAmBjsB,KAAKoP,MAGlEqf,cAAe,SAAuBtxB,GACpC,IAAIqtB,EAAgBrtB,EAAKqtB,cACrBC,EAAmBttB,EAAKstB,iBACxBgD,EAAStwB,EAAKswB,OACdX,EAAmB3vB,EAAK2vB,iBACxBpwB,EAAWS,EAAKT,SAChBiuB,EAAmBxtB,EAAKwtB,iBACxBE,EAAa1tB,EAAK0tB,WAClBlE,EAAaxpB,EAAKwpB,WAClB+H,EAAgBvxB,EAAKuxB,cACrB3D,EAAY5tB,EAAK4tB,UACjBC,EAAiB7tB,EAAK6tB,eACtB2D,EAAcxxB,EAAKwxB,YACnBC,EAAYzxB,EAAKyxB,UACjBtB,EAAiBnwB,EAAKmwB,eACtBpC,EAAgB/tB,EAAK+tB,cACrBG,EAAcluB,EAAKkuB,YACnBxlB,EAAc1I,EAAK0I,YACnBioB,EAAY3wB,EAAK2wB,UACjBtC,EAAWruB,EAAKquB,SAChBC,EAAWtuB,EAAKsuB,SAChBC,EAAiBvuB,EAAKuuB,eACtBG,EAAa1uB,EAAK0uB,WAClB3B,EAAO/sB,EAAK+sB,KACZhtB,EAAI8C,KAAKyF,eAETopB,EAAQ3E,EAAK/pB,KAAI,SAAUgV,GAE7B,OADAA,EAAM,eAASA,GACRjY,EAAE,OAAU,CACjBqJ,MAAOilB,EAGP/uB,MAAO,CACLC,SAAUA,EACVoyB,SAAUzD,EACV0D,KAAMtD,EACNuD,YAAatD,EACbvW,IAAK,KACL4J,MAAO5J,EACPlP,QAAS4lB,GAEX3lB,GAAI,CACF+oB,OAAQ,WACN,OAAOnB,EAAU3Y,KAGrB9V,IAAK,QAAQmB,OAAO2U,IACnBA,MAGDI,EAAoByV,GAAkB4D,EAAY5uB,KAAKiH,OAAO,wBAA0B,KACxFioB,EAAsBvE,GAAoBgE,EAAc3uB,KAAKiH,OAAO,0BAA4B,KAChGkoB,EAAkBjE,GAAiBoC,EAAiBttB,KAAKiH,OAAO,sBAAwB,KAExFyM,EAAkB,CAACmX,EAAW,oBAAqBtV,EAAmB2Z,EAAqBC,GAAiB3wB,OAAO,QAAUkR,KAAK,KAElIS,EAASjT,EAAE,QAAS,CACtBoJ,YAAa,sEACbC,MAAOogB,EACPpV,MAAO,CACL6d,QAAS,EACTC,SAAU,QAEZ/xB,MAAOwB,EAAcA,EAAc,GAAI+rB,GAAa,GAAI,CACtD,mBAAoBnX,GAAmB,KACvC3S,KAAMgqB,EACNllB,YAAaA,GAAe,OAE9BtI,SAAU,CACRZ,MAAOkuB,EAAWluB,OAEpBuJ,GAAIwoB,EAEJ7W,WAAY,CAAC,CACX9a,KAAM,QACNJ,MAAOkuB,EAAWluB,QAEpBoK,IAAK,UAGHuoB,EAAUpyB,EAAE,OAAS,CACvBoJ,YAAa,0BACbC,MAAO,CAKLgpB,UAAWzC,GAEbvb,MAAO,CACLie,SAAU,OAEZ/yB,MAAO,CACLC,SAAUowB,GAAoBQ,EAC9BrnB,QAASwkB,GAEXvkB,GAAI,CACFC,MAAO,WACL,OAAOsnB,MAGX1mB,IAAK,UACJ,CAAC/G,KAAKS,cAAc,SAA8B+pB,IAMjDiF,EAAYzvB,KAAKiH,OAAO,gBACxByoB,EAASxyB,EAAE,KAAM,CACnBoJ,YAAa,gCACbhJ,MAAO,CACLmY,KAAM,OACN,YAAa,MACb,gBAAiBga,GAEnBpwB,IAAK,cACJ,CAACnC,EAAE,MAAO,CACXoJ,YAAa,SACbhJ,MAAO,CACLmY,KAAM,UAEP,CAACtF,EAAQmf,MAERK,EAAMzyB,EAAE,KAAM,CAChBoJ,YAAa,0EACbhJ,MAAO,CACL0J,GAAIyoB,GAENpwB,IAAK,aACJ,CAACwvB,EAAOa,IAEPE,EAAY1yB,IAEhB,GAAI8tB,GAAkBL,GAAoBO,EAAe,CAGvD,IAAIyB,EAAS3sB,KAAK0sB,eAEdmD,EAAW3yB,IAEXqY,IACFsa,EAAW3yB,EAAE,OAAsB,CACjCT,MAAO,CACLuK,GAAIuO,EACJiG,WAAW,GAEbnc,IAAK,yBACJ,CAACW,KAAKgrB,eAAgB,KAAMhrB,KAAKotB,YAAY1d,KAAKid,MAIvD,IAAImD,EAAa5yB,IAEbgyB,IACFY,EAAa5yB,EAAE,OAAW,CACxBT,MAAO,CACLuK,GAAIkoB,GAEN7vB,IAAK,2BACJ,CAACW,KAAK2qB,iBAAkB,KAAM3qB,KAAKktB,cAAcxd,KAAKid,MAI3D,IAAIoD,EAAS7yB,IAETiyB,IACFY,EAAS7yB,EAAE,OAAW,CACpBT,MAAO,CACLuK,GAAImoB,GAEN9vB,IAAK,uBACJ,CAAC6rB,KAGN0E,EAAY1yB,EAAE,MAAO,CACnBI,MAAO,CACL,YAAa,SACb,cAAe,QAEjB+B,IAAK,iBACJ,CAACwwB,EAAUC,EAAYC,IAI5B,MAAO,CAACJ,EAAKC,KAGjB3yB,OAAQ,SAAgBC,GACtB,IAAIH,EAAOiD,KAAKjD,KACZL,EAAWsD,KAAKtD,SAChBuR,EAAWjO,KAAKiO,SAChBC,EAAOlO,KAAKkO,KACZgc,EAAOlqB,KAAKkqB,KACZ+B,EAAkBjsB,KAAKisB,gBACvBzmB,EAAWxF,KAAKwF,SAChB4lB,EAAeprB,KAAKorB,aAEpBpJ,EAAQljB,EAAc,CAExBorB,KAAMA,EAAKnnB,QAEX8nB,WAAY7qB,KAAKmsB,mBAEjBpB,UAAW/qB,KAAKksB,kBAEhBwC,cAAe1uB,KAAKosB,sBAEpB0B,UAAW9tB,KAAK8tB,UAChBL,OAAQztB,KAAKytB,OACb1e,MAAO/O,KAAK+O,MAEZ+b,QAASmB,EAET2C,UAAW5uB,KAAKqtB,eAChBD,YAAaptB,KAAKotB,YAAYrqB,QAC9B4rB,YAAa3uB,KAAKmtB,iBAClBD,cAAeltB,KAAKktB,cAAcnqB,QAClCuqB,eAAgBttB,KAAKstB,eAErBR,iBAAkB9sB,KAAK8sB,kBACtB,eAAK9sB,KAAK2F,OAAQ,CAAC,gBAAiB,mBAAoB,WAAY,mBAAoB,OAAQ,aAAc,iBAAkB,QAAS,gBAAiB,cAAe,cAAe,WAAY,YAAa,OAAQ,QAAS,WAAY,WAAY,iBAAkB,gBAG3QqQ,EAAWhW,KAAKS,cAAc,OAAmBuhB,IAAUhiB,KAAKyuB,cAAczM,GAE9EgO,EAAU9yB,EAAE,SAAU,CACxBoJ,YAAa,UACbhJ,MAAO,CACL0J,GAAIhH,KAAKiH,OAAO,qBAChBwO,KAAM,SACN5D,IAAKoa,EACL,YAAazmB,EAAW,SAAW,MACnC,cAAe,OACf,gBAAiB,mBAElBxF,KAAKkqB,KAAKxa,KAAK,OAEdugB,EAAW/yB,EAAE,MAAO,CACtBoJ,YAAa,UACbhJ,MAAO,CACL0J,GAAIhH,KAAKiH,OAAO,oBAChBwO,KAAM,SACN,YAAajQ,EAAW,YAAc,MACtC,cAAe,SAEhBxF,KAAK+rB,YAAY7sB,OAAS,EAAI,IAAIsB,OAAOR,KAAK2rB,gBAAiB,MAAMnrB,OAAOR,KAAK+rB,YAAYrc,KAAK,OAAS,IAE1G6S,EAAUrlB,IAEd,GAAIH,IAASL,EAAU,CAIrB,IAAIwzB,EAAUhG,EAAKhrB,OAAS,EAC5BqjB,GAAW2N,EAAUhG,EAAO,CAAC,KAAK/pB,KAAI,SAAUgV,GAC9C,OAAOjY,EAAE,QAAS,CAChBqJ,MAAO,CACL,WAAY2pB,GAEd5yB,MAAO,CACLyD,KAAMmvB,EAAU,SAAW,OAC3BvzB,MAAOwY,EACPlH,SAAUA,EACVlR,KAAMA,EACNmR,KAAMA,GAER7O,IAAK,aAAamB,OAAO2U,QAM/B,OAAOjY,EAAE,MAAO,CACdoJ,YAAa,kCACbC,MAAO,CAAC,CACN1C,MAAO2B,IAAa4lB,IAAiB1uB,EACrCA,SAAUA,GACTsD,KAAKyiB,cAAeziB,KAAKsR,YAC5BhU,MAAO,CACL0J,GAAIhH,KAAKiH,SACTwO,KAAM,QACNL,SAAU1Y,GAAY0uB,EAAe,KAAO,KAC5C,mBAAoBprB,KAAKiH,OAAO,sBAElCf,GAAI,CACFC,MAAOnG,KAAKujB,QACZ7R,QAAS1R,KAAKmuB,UACdxc,SAAU3R,KAAKouB,aAEhB,CAAC4B,EAASC,EAAUja,EAAUuM,Q,kCCzxBrC,sFAKW9lB,EAAQ,eAAsB,OAA0B,QAGxD0qB,EAA+B,aAAIrqB,OAAO,CACnDC,KAAM,OACNgD,OAAQ,CAAC,QACTowB,QAAS,WACP,MAAO,CACLC,aAAcpwB,OAGlBvD,MAAOA,EACPoG,SAAU,CACRwtB,aAAc,WACZ,OAAO,O,kCCnBb,2JAAS/wB,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAWpM,IAAIjD,EAAQ,eAAsB,CACvC6zB,UAAW,eAAS,QACpBC,cAAe,eAAS,QACxBC,eAAgB,eAAS,QAA0B,GACnDC,MAAO,eAAS,QAAmB,GACnCC,OAAQ,eAAS,QACjBC,WAAY,eAAS,QACrBC,YAAa,eAAS,OAAyB,GAC/CC,UAAW,eAAS,OAAkB,MACtCC,KAAM,eAAS,QACfC,SAAU,eAAS,QACnBC,QAAS,eAAS,OAAkB,KACpC7b,IAAK,eAAS,OAAkB,OAChCmC,YAAa,eAAS,SACrB,SAGQhF,EAA0B,aAAIxV,OAAO,CAC9CC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAI8zB,EAEAx0B,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZkZ,EAAQnZ,EAAKmZ,MACbxP,EAAc3J,EAAK2J,YACnB4pB,EAASj0B,EAAMi0B,OACfC,EAAal0B,EAAMk0B,WACnBG,EAAOr0B,EAAMq0B,KACbC,EAAWt0B,EAAMs0B,SACjBzZ,EAAc7a,EAAM6a,YACpBgZ,EAAY7zB,EAAM6zB,UAClBC,EAAgB9zB,EAAM8zB,cACtB3qB,EAAekB,GAAe,GAC9ByP,EAASD,IACTE,EAAY,GACZ0a,EAAUh0B,IACVi0B,EAAgB,eAAkB,OAAkBvrB,EAAc2Q,GAEtE,GAAI4a,GAAiBT,GAAUC,EAAY,CACzC,IAAIC,EAAcn0B,EAAMm0B,YACxBM,EAAUh0B,EAAET,EAAMo0B,UAAW,CAC3BtqB,MAAOjH,EAAgB,GAAI,WAAWkB,OAAOowB,GAAcA,GAC3DrzB,SAAU4zB,EAAgB,GAAK,eAAWR,EAAYD,IACrD,eAAc,OAAkBla,EAAW5Q,EAAc2Q,IAG9D,IAAI6a,EAAQl0B,IACRm0B,EAAc,eAAkB,OAAgBzrB,EAAc2Q,IAE9D8a,GAAeP,GAAQC,KACzBK,EAAQl0B,EAAET,EAAMu0B,QAAS,CACvB1qB,YAAa,OACb/I,SAAU8zB,EAAc,GAAK,eAAWN,EAAUD,IACjD,eAAc,OAAgBta,EAAW5Q,EAAc2Q,KAG5D,IAAI+a,EAAY,CAACJ,EAASE,EAAO,eAAc,OAAmB5a,EAAW5Q,EAAc2Q,IAU3F,OARI9Z,EAAMg0B,QACRa,EAAY,CAACp0B,EAAE,OAAY,CACzBT,MAAO,CACLg0B,MAAOh0B,EAAM+zB,iBAEdc,KAGEp0B,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCkJ,YAAa,YACbC,OAAQ0qB,EAAU,CAChB,kBAAmBx0B,EAAMg0B,OACxBnxB,EAAgB2xB,EAAS,QAAQzwB,OAAO8W,GAAcA,GAAchY,EAAgB2xB,EAAS,MAAMzwB,OAAO8vB,GAAYA,GAAYhxB,EAAgB2xB,EAAS,UAAUzwB,OAAO+vB,GAAgBA,GAAgBjxB,EAAgB2xB,EAAS,SAAUV,GAAgBU,KAChQK,O,kCCrFR,kGAKW70B,EAAQ,eAAsB,CACvC+Y,SAAU,eAAS,QACnBgG,UAAW,eAAS,QAAmB,GACvCxU,GAAI,eAAS,QACbyO,KAAM,eAAS,QAEfX,MAAO,eAAS,OAAmB,MACnCK,IAAK,eAAS,OAAkB,OAChC7B,QAAS,eAAS,QAAmB,IACpC,QAGQie,EAAoC,aAAIz0B,OAAO,CACxDC,KAAM,OACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAChBiW,EAAU7W,EAAM6W,QAChBkC,EAAW/Y,EAAM+Y,SACjBnO,GAA2B,IAApB5K,EAAM+e,YAAsC,IAAhB/e,EAAMqY,MAC7C,OAAO5X,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCmJ,MAAO,CACL,UAAWc,EACX,oBAAqBiM,EACrB,kBAAmBA,GAErBhW,MAAO,CACL0J,GAAIvK,EAAMuK,IAAM,KAChByO,KAAMhZ,EAAMgZ,MAAQ,KACpB,YAAaD,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnCnY,O,kCCxCR,gJAMWZ,EAAQ,eAAsB,CACvC+V,OAAQ,eAAS,QAAmB,GACpCxL,GAAI,eAAS,QACbwqB,OAAQ,eAAS,QAAmB,GACpCrc,IAAK,eAAS,OAAkB,QAC/B,SAGQsc,EAAgC,aAAI30B,OAAO,CACpDC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAChBmV,EAAS/V,EAAM+V,OACnB,OAAOtV,EAAET,EAAM0Y,IAAK,eAAU/X,EAAM,CAClCmJ,MAAO,CACL,qBAAsBiM,EACtB,uBAAwBA,GAE1BlV,MAAO,CACL0J,GAAIvK,EAAMuK,MAEVvK,EAAM+0B,OAAS,CAACt0B,EAAE,OAAiBG,IAAaA,O,kCC/BxD,yMAASiC,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAa3M,IAAIgyB,EAAiB,0LAEjBC,EAAkB,SAAyBjrB,EAAOyR,EAAQsL,GAC5D,IAAImO,EAAMC,mBAAmBH,EAAezuB,QAAQ,OAAQ,eAASyD,IAAQzD,QAAQ,OAAQ,eAASkV,IAASlV,QAAQ,OAAQwgB,IAC/H,MAAO,oCAAoCjjB,OAAOoxB,IAIzCn1B,EAAQ,eAAsB,CACvCq1B,IAAK,eAAS,QACdC,MAAO,eAAS,QAAmB,GACnCC,WAAY,eAAS,OAAkB,eACvCC,MAAO,eAAS,QAAmB,GACnCC,OAAQ,eAAS,QAAmB,GACpCzB,MAAO,eAAS,QAAmB,GAEnC0B,UAAW,eAAS,QAAmB,GACvCha,OAAQ,eAAS,QACjBia,KAAM,eAAS,QAAmB,GAClCC,MAAO,eAAS,QAAmB,GAUnCC,QAAS,eAAS,QAA0B,GAC5CC,MAAO,eAAS,QAChBX,IAAK,eAAS,QACdY,OAAQ,eAAS,QACjBC,UAAW,eAAS,QAAmB,GACvC/rB,MAAO,eAAS,SACf,SAGQgsB,EAAoB,aAAI51B,OAAO,CACxCC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIw1B,EAEAl2B,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZ00B,EAAMr1B,EAAMq1B,IACZF,EAAMn1B,EAAMm1B,IACZK,EAAQx1B,EAAMw1B,MACdE,EAAY11B,EAAM01B,UAClBG,EAAU71B,EAAM61B,QAChB5rB,EAAQ,eAAUjK,EAAMiK,QAAU,KAClCyR,EAAS,eAAU1b,EAAM0b,SAAW,KACpCya,EAAQ,KACRJ,EAAS,eAAO/1B,EAAM+1B,QAAQh0B,OAAO,QAAUkR,KAAK,KACpD6iB,EAAQ,eAAO91B,EAAM81B,OAAO/zB,OAAO,QAAUkR,KAAK,KA8BtD,OA5BIjT,EAAMs1B,SACH5Z,GAAUzR,EACbyR,EAASzR,GACCA,GAASyR,IACnBzR,EAAQyR,GAGLzR,GAAUyR,IACbzR,EAAQ,EACRyR,EAAS,GAIXyZ,EAAMD,EAAgBjrB,EAAOyR,EAAQ1b,EAAMu1B,YAAc,eAEzDQ,EAAS,KACTD,EAAQ,MAGN91B,EAAM21B,KACRQ,EAAQ,aACCn2B,EAAM41B,MACfO,EAAQ,cACCn2B,EAAMy1B,SACfU,EAAQ,UACRX,GAAQ,GAGH/0B,EAAE,MAAO,eAAUE,EAAM,CAC9BE,MAAO,CACLs0B,IAAKA,EACLE,IAAKA,EACLprB,MAAOA,EAAQ,eAASA,GAAS,KACjCyR,OAAQA,EAAS,eAASA,GAAU,KACpCqa,OAAQA,GAAU,KAClBD,MAAOA,GAAS,MAElBhsB,OAAQosB,EAAS,CACf,gBAAiBl2B,EAAMg2B,UACvB,YAAah2B,EAAMg0B,OAAS0B,EAC5B,QAASA,EACTG,QAAqB,KAAZA,IAA8B,IAAZA,GAC1BhzB,EAAgBqzB,EAAQ,WAAWnyB,OAAO8xB,GAAU,eAASA,IAAwB,KAAZA,GAAiBhzB,EAAgBqzB,EAAQC,EAAOA,GAAQtzB,EAAgBqzB,EAAQ,UAAWV,GAAQU,U,kCCjHrL,6RAAS10B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAuBpM,IAAIjD,EAAQ,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAgB,QAAiB,eAAK,OAAe,CAAC,cAAe,eAAK,OAAkB,CAAC,eAAgB,GAAI,CAE7O+zB,WAAY,eAAS,QAAmB,GAExCC,cAAe,eAAS,OAAkB,aAG1CnwB,eAAgB,eAAS,QAEzBowB,cAAe,eAAS,QACxB7rB,KAAM,eAAS,QAEfC,UAAW,eAAS,QAEpBtB,YAAa,eAAS,QACtBH,SAAU,eAAS,QAAmB,GAEtC0B,IAAK,eAAS,OAAmB,MACjCzK,MAAO,eAAS,OAAkB,OAIzBq2B,EAAqC,aAAIl2B,OAAO,CACzDC,KAAM,OACN8a,WAAY,CACV,UAAW,QAEb9X,OAAQ,CAAC,OAAS,OAAe,OAAgB,OAAe,QAChEtD,MAAOA,EACPW,KAAM,WACJ,MAAO,CACLmI,WAAW,EACXC,UAAU,IAGd3C,SAAU,CACRowB,SAAU,WACR,OAAOjzB,KAAKiH,UAEdisB,QAAS,WACP,OAAOlzB,KAAKiH,OAAO,YAErBksB,OAAQ,WACN,OAAOnzB,KAAKiH,OAAO,aAErBmsB,UAAW,WACT,OAAOpzB,KAAKiH,OAAO,YAErBosB,YAAa,WACX,OAAoB,IAAbrzB,KAAKoH,IAAe,OAAqB,IAAbpH,KAAKoH,IAAgB,MAAQ,OAGpExD,QAAS,CACPC,MAAO,WACA7D,KAAKtD,UACR,eAAasD,KAAKwD,MAAM8vB,SAG5BxvB,KAAM,WACC9D,KAAKtD,UACR,eAAYsD,KAAKwD,MAAM8vB,SAG3BC,SAAU,SAAkBjyB,GAC1BtB,KAAKwF,SAA0B,UAAflE,EAAMP,MAExByyB,YAAa,SAAqBC,GAChCzzB,KAAKuF,UAAYkuB,IAGrBx2B,OAAQ,SAAgBC,GACtB,IAAIy1B,EAEAM,EAAWjzB,KAAKizB,SAChBC,EAAUlzB,KAAKkzB,QACfC,EAASnzB,KAAKmzB,OACdC,EAAYpzB,KAAKozB,UACjB12B,EAAWsD,KAAKtD,SAChBgJ,EAAW1F,KAAK0F,SAChBuI,EAAWjO,KAAKiO,SAChBlR,EAAOiD,KAAKjD,KACZ+X,EAAQ9U,KAAK8U,MACbiE,EAAU/Y,KAAK+Y,QACf/S,EAAOhG,KAAKgG,KACZT,EAAYvF,KAAKuF,UACjBC,EAAWxF,KAAKwF,SAChButB,EAAgB/yB,KAAK+yB,cACrBD,EAAgB9yB,KAAK8yB,cACrBD,EAAa7yB,KAAK6yB,WAClBl2B,EAAQ,eAASqD,KAAKrD,QAAU,GAChC2tB,GAAoB,IAAVxV,GAAmB7G,IAAatR,EAC1C+2B,EAAW,CACbnuB,UAAWA,EACXC,SAAUA,EACVsP,MAAOA,EACP6e,OAAQ5a,GAENuW,EAAUpyB,EAAE,SAAU,CACxBoJ,YAAa,MACbC,OAAQosB,EAAS,GAAIrzB,EAAgBqzB,EAAQ,OAAOnyB,OAAOsyB,GAAgBD,GAAavzB,EAAgBqzB,EAAQ,OAAOnyB,OAAOwF,GAAOA,GAAO1G,EAAgBqzB,EAAQ,UAAWE,GAAavzB,EAAgBqzB,EAAQ,kBAAmBE,GAAavzB,EAAgBqzB,EAAQ,2BAA4BE,GAAaF,GACrTr1B,MAAO,CACL0J,GAAIisB,EACJlyB,KAAM,SACNrE,SAAUA,EACV,gBAAiB,SACjB,gBAAiBqc,EAAU,OAAS,QACpC,eAAgBuR,EAAU,OAAS,KACnC,gBAAiBrc,EAAW,OAAS,MAEvC4J,WAAY,CAAC,CACX9a,KAAM,UACNJ,MAAOqD,KAAKwzB,cAEdttB,GAAI,CACFic,UAAWniB,KAAK4zB,YAChBztB,MAAOnG,KAAKszB,OACZ5Q,QAAS1iB,KAAKszB,OAEd,SAAUtzB,KAAKuzB,SACf,QAASvzB,KAAKuzB,UAEhBxsB,IAAK,UACJ,CAAC/G,KAAK4O,kBAAkB,QAA4B5O,KAAKS,cAAc,OAA0BizB,GAEpGx2B,EAAE,QAAkB,CAClBT,MAAO,CACLslB,MAAO,UAIPQ,EAAUrlB,IAEVH,IAASL,IACX6lB,EAAUrlB,EAAE,QAAS,CACnBI,MAAO,CACLyD,KAAM,SACNhE,KAAMA,GAAQ,KACdmR,KAAMlO,KAAKkO,MAAQ,KACnBvR,MAAOA,MAMb,IAAIk3B,EAAQ32B,EAAE,MAAO,CACnBoJ,YAAa,gBACbC,MAAO,CAACvG,KAAKmH,UAAW,CACtBE,KAAM0R,EACN,sBAAuB/Y,KAAKqyB,QAE9B/0B,MAAO,CACL0J,GAAImsB,EACJ1d,KAAM,SACNL,SAAU,KACV,aAAc,QACd,kBAAmB8d,GAErBhtB,GAAI,CACFwc,QAAS1iB,KAAKkgB,WAGhBnZ,IAAK,QACJ,CAAC/G,KAAKS,cAAc,OAAmB,CACxCkzB,OAAQ5a,MAGNnH,EAAS1U,EAAE,QAAS,CACtBqJ,MAAOssB,EAAa,UAClB,CAAC,eACH,CACE,cAAel2B,GACdqD,KAAKsR,WAAYtR,KAAKyiB,eACzBnlB,MAAO,CACL0J,GAAIksB,EACJrhB,IAAKohB,EACL,eAAgB3I,EAAU,OAAS,KACnC,gBAAiBrc,EAAW,OAAS,MAEvC4J,WAAY,CAAC,CACX9a,KAAM,UACNJ,MAAOqD,KAAKwzB,cAEdttB,GAAI,CAGF,SAEA,SAAe5E,GACb,eAAUA,EAAO,CACfwyB,gBAAgB,OAIrB,CAACn3B,EAAQqD,KAAK2C,gBAAkBhG,EAAQqD,KAAK6F,aAAe,GAC/DlJ,GAASo2B,EAAgB71B,EAAE,MAAO,CAChCoJ,YAAa,WACZysB,GAAiB,KAEpB,OAAO71B,EAAE,MAAO,CACdoJ,YAAa,oCACbC,MAAO,CAACvG,KAAK+zB,eAAgB/zB,KAAKg0B,cAAe,CAAC,CAChD,YAAanB,EACb,gBAAiBA,EACjBhvB,MAAO2B,IAAaqtB,EACpBxrB,KAAM0R,EACN,YAAsB,IAAVjE,EACZ,cAAwB,IAAVA,GACb+d,EAAa,KAAO7yB,KAAKyiB,gBAC5BnlB,MAAO,CACL0J,GAAIosB,EACJ3d,KAAMod,EAAa,KAAO,QAC1B3rB,KAAMlH,KAAKkH,MAAQ,KACnBgY,IAAKlf,KAAKqzB,YACV,gBAAiB32B,EACjB,gBAAiBgJ,IAAahJ,EAC9B,kBAAmBw2B,EACnB,gBAA0B,IAAVpe,GAAmB7G,IAAatR,EAAQ,OAAS,KACjE,gBAAiBsR,EAAW,OAAS,OAEtC,CAACqhB,EAAS/M,EAASsR,EAAOjiB,Q,kCCtPjC,uKAAS3T,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAapM,IAAIjD,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAmB,QAAsB,QAAgB,SAAkB,QAGtMmoB,EAA0B,aAAInqB,OAAO,CAC9CC,KAAM,OACNgD,OAAQ,CAAC,OAAS,OAClB,OAAkB,OAAe,QACjC0nB,OAAQ,CACNC,QAAS,CACPC,KAAM,eACNC,SAAS,IAGbnrB,MAAOA,EACP0G,MAAO,CACL4kB,qBAAsB,SAA8B3kB,EAAUG,GACvD,eAAWH,EAAUG,IACxBvD,KAAKqD,MAAM,OAAkBD,Q,kCClCrC,wEAAIvC,EAAJ,gJAEA,SAAS5C,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAe3M,IAAIu0B,EAAuB,OACvBC,EAAwB,QAA0BD,EAElDE,EAAW,eAAK,OAAW,CAAC,UACrB13B,EAAQ,eAAsBqC,EAAcA,EAAc,GAAIq1B,GAAW,GAAI70B,EAAgB,CACtG0yB,WAAY,eAAS,OAAkB,eACvCoC,YAAa,eAAS,QAEtBC,SAAU,eAAS,OAAkB,MACrCC,WAAY,eAAS,QAGrB5a,OAAQ,eAAS,OAAyB,MACzCua,EAAsB,eAAS,QAAmB,KAAU,SAGpDM,EAAwB,aAAIz3B,OAAO,CAC5CC,KAAM,QACN8a,WAAY,CACV,YAAa,QAEfpb,MAAOA,EACPW,KAAM,WACJ,MAAO,CACLo3B,QAASx0B,KAAKi0B,KAGlBpxB,SAAU,CACR4xB,YAAa,WACX,IAAIJ,EAAWr0B,KAAKq0B,SACpB,OAAQA,GAAYr0B,KAAKw0B,QAAUx0B,KAAK4xB,IAAMyC,GAEhDK,cAAe,WACb,QAAS10B,KAAKw0B,SAAWx0B,KAAKq0B,WAEhCM,cAAe,WACb,IAAIjuB,EAAQ1G,KAAK0G,MACjB,OAAO1G,KAAKw0B,QAAU9tB,EAAQ1G,KAAKs0B,YAAc5tB,GAEnDkuB,eAAgB,WACd,IAAIzc,EAASnY,KAAKmY,OAClB,OAAOnY,KAAKw0B,QAAUrc,EAASnY,KAAKo0B,aAAejc,GAErD0c,eAAgB,WACd,IAAIrC,EAAS,eAAOxyB,KAAKwyB,QAAQh0B,OAAO,QAAUkR,KAAK,KACvD,OAAQ1P,KAAKq0B,UAAYr0B,KAAKw0B,QAAUhC,EAAS,MAEnDsC,cAAe,WACb,IAAIvC,EAAQ,eAAOvyB,KAAKuyB,OAAO/zB,OAAO,QAAUkR,KAAK,KACrD,OAAQ1P,KAAKq0B,UAAYr0B,KAAKw0B,QAAUjC,EAAQ,OAGpDpvB,OAAQtC,EAAS,GAAIvB,EAAgBuB,EAAQozB,GAAsB,SAAU7wB,EAAUG,GACrF,GAAIH,IAAaG,EAAU,CAEzB,IAAIwV,GAAU,QAAmC3V,EACjDpD,KAAKw0B,QAAUzb,EAEXA,IAAY3V,GACdpD,KAAKkE,UAAUlE,KAAK+0B,oBAGtBz1B,EAAgBuB,EAAQ,WAAW,SAAiBuC,EAAUG,GAE5DH,IAAaG,GACfvD,KAAK+0B,oBAELl0B,GACJqO,QAAS,WAEPlP,KAAKw0B,SAAU,QAAmCx0B,KAAKi0B,IAEzDrwB,QAAS,CACPmxB,eAAgB,WACd/0B,KAAKqD,MAAM6wB,EAAuBl0B,KAAKw0B,UAEzCQ,OAAQ,SAAgBjc,IAGjBA,GAAuB,OAAZA,GAAsB/Y,KAAKw0B,UACzCx0B,KAAKw0B,SAAU,KAIrBv3B,OAAQ,SAAgBC,GACtB,IAGM+3B,EAHFpd,EAAa,GAEZ7X,KAAKw0B,SAIR3c,EAAWjZ,KAAK,CAGd7B,KAAM,YAENJ,MAAOqD,KAAKg1B,OACZhb,WAAYib,EAAa,GAAI31B,EAAgB21B,EAAY,GAAGz0B,OAAO,eAAUR,KAAK0Z,OAAQ,KAAK,GAAOpa,EAAgB21B,EAAY,QAAQ,GAAOA,KAIrJ,OAAO/3B,EAAE,OAAM,CACb2a,WAAYA,EACZpb,MAAOqC,EAAc,CAEnB8yB,IAAK5xB,KAAKy0B,YACV1C,MAAO/xB,KAAK00B,cACZhuB,MAAO1G,KAAK20B,cACZxc,OAAQnY,KAAK40B,eACbpC,OAAQxyB,KAAK60B,gBAAkB,KAC/BtC,MAAOvyB,KAAK80B,eAAiB,MAC5B,eAAWX,EAAUn0B,KAAK2F,e,kCCpInC,0HAOI4C,EAA0B,eAAc,CAC1C9K,WAAY,CACVsZ,MAAO,OACP1E,cAAe,OACf6iB,UAAW,OACX3d,UAAW,OACXga,qBAAsB,OACtB4D,cAAe,OACf1Z,mBAAoB,OAEpB2Z,SAAU,W,kCCjBd,uHAASn3B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAQpM,IAAIjD,EAAQ,eAAsB,eAAK,OAAuB,CAAC,WAAY,SAGvE44B,EAAkC,aAAIv4B,OAAO,CACtDC,KAAM,QACNC,YAAY,EACZP,MAAOA,EACPQ,OAAQ,SAAgBC,EAAGC,GACzB,IAAIV,EAAQU,EAAKV,MACbW,EAAOD,EAAKC,KACZC,EAAWF,EAAKE,SAEpB,OAAOH,EAAE,OAAkB,eAAUE,EAAM,CACzCX,MAAOqC,EAAcA,EAAc,GAAIrC,GAAQ,GAAI,CACjD+V,QAAQ,MAERnV,O,kCC5BR,8GAMI6L,EAAgC,eAAc,CAChDzL,WAAY,CACV4Y,YAAa,OACbob,iBAAkB,OAClB4D,mBAAoB,OACpB9iB,kBAAmB,OACnB8U,gBAAiB,W,kCCZrB,8DAEI3e,EAA8B,eAAc,CAC9CjL,WAAY,CACVwP,UAAW,OACXqoB,MAAO,W,kCCLX,0EAGIrsB,EAA2B,eAAc,CAC3CxL,WAAY,CACVi1B,KAAM,OACN6B,SAAU,W,kCCNd,8DAEI1rB,EAAgC,eAAc,CAChDpL,WAAY,CACVymB,YAAa,OACbqR,QAAS,W,kCCLb,mLAASt3B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAcpM,IAAIjD,EAAQ,eAAsB,eAASqC,EAAcA,EAAc,GAAI,QAAU,GAAI,CAC9FpC,SAAU,eAAS,QAAmB,GACtCoyB,SAAU,eAAS,QAAmB,GACtCC,KAAM,eAAS,QAAmB,GAClCC,YAAa,eAAS,OAAkB,cACxC7Z,IAAK,eAAS,OAAkB,QAChC4J,MAAO,eAAS,QAChB9Y,QAAS,eAAS,OAAkB,gBACjC,SAGMrI,EAAwB,aAAId,OAAO,CAC5CC,KAAM,QACNgD,OAAQ,CAAC,OAAS,QAClBtD,MAAOA,EACPmH,QAAS,CACP4xB,SAAU,SAAkBl0B,GAC1B,IAAIP,EAAOO,EAAMP,KACbof,EAAU7e,EAAM6e,QAEfngB,KAAKtD,UAAsB,UAATqE,IAA6B,YAATA,GAAsBof,IAAY,SAC3EngB,KAAKqD,MAAM,UAIjBpG,OAAQ,SAAgBC,GACtB,IAAI6hB,EAAQ/e,KAAK+e,MACb5J,EAAMnV,KAAKmV,IACXlP,EAAUjG,KAAKiG,QACf8oB,EAAO/uB,KAAK+uB,KACZryB,EAAWsD,KAAKtD,SAChB+4B,EAAQz1B,KAAKiH,SACbyuB,EAAa11B,KAAKiH,OAAO,cACzB0uB,EAAUz4B,IAET8C,KAAK8uB,UAAapyB,IACrBi5B,EAAUz4B,EAAE,OAAc,CACxBoJ,YAAa,oBACb7J,MAAO,CACL0f,UAAWnc,KAAKgvB,aAElB1xB,MAAO,CACL,gBAAiBm4B,EACjB,mBAAoBC,EACpB,oBAAqB,UAEvBxvB,GAAI,CACFC,MAAOnG,KAAKw1B,SACZ9S,QAAS1iB,KAAKw1B,aAKpB,IAAII,EAAO14B,EAAE,OAAQ,CACnBoJ,YAAa,+CACbhJ,MAAO,CACL0J,GAAI0uB,IAEL11B,KAAKS,iBAAmBse,GAC3B,OAAO7hB,EAAE,OAAQ,CACfoJ,YAAa,uDACbC,MAAO,CACL7J,SAAUA,GAEZD,MAAO,CACL0Y,IAAKA,EACLlP,QAASA,EACT8oB,KAAMA,GAERzxB,MAAO,CACL0J,GAAIyuB,EACJ1W,MAAOA,GAAS,KAChB,kBAAmB2W,IAEpB,CAACE,EAAMD,Q,kCC5Fd,gPAAS13B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EAoB3M,IAAImqB,EAAQ,CAAC,OAAQ,WAAY,QAAS,SAAU,MAAO,MAAO,SAAU,QAAS,QAAS,OAAQ,OAAQ,WAAY,iBAAkB,QAAS,QAE1IptB,EAAQ,eAAsB,eAASqC,EAAcA,EAAcA,EAAcA,EAAcA,EAAcA,EAAc,GAAI,QAAU,QAAmB,QAAgB,QAAiB,QAAgB,GAAI,CAC1N+2B,KAAM,eAAS,QACf/wB,IAAK,eAAS,QACdD,IAAK,eAAS,QAEdixB,QAAS,eAAS,QAAmB,GACrCnZ,KAAM,eAAS,QACf5b,KAAM,eAAS,OAAkB,QAAQ,SAAUA,GACjD,OAAO,eAAc8oB,EAAO9oB,SAE3B,QAGMJ,EAA0B,aAAI7D,OAAO,CAC9CC,KAAM,OAENgD,OAAQ,CAAC,OAAgB,OAAS,OAAkB,OAAe,OAAgB,OAAe,OAAoB,QACtHtD,MAAOA,EACPoG,SAAU,CACRkzB,UAAW,WAET,IAAIh1B,EAAOf,KAAKe,KAChB,OAAO,eAAc8oB,EAAO9oB,GAAQA,EAAO,QAE7CiN,cAAe,WACb,IAAIjN,EAAOf,KAAK+1B,UACZh5B,EAAOiD,KAAKjD,KACZmR,EAAOlO,KAAKkO,KACZxR,EAAWsD,KAAKtD,SAChBmJ,EAAc7F,KAAK6F,YACnBoI,EAAWjO,KAAKiO,SAChBpJ,EAAM7E,KAAK6E,IACXC,EAAM9E,KAAK8E,IACX6X,EAAO3c,KAAK2c,KAChB,MAAO,CACL3V,GAAIhH,KAAKiH,SACTlK,KAAMA,EACNmR,KAAMA,EACNnN,KAAMA,EACNrE,SAAUA,EACVmJ,YAAaA,EACboI,SAAUA,EACVsK,aAAcvY,KAAKuY,cAAgB,KACnC7S,SAAU1F,KAAK0F,UAAY1F,KAAKwY,UAChC3T,IAAKA,EACLC,IAAKA,EACL6X,KAAMA,EACNkZ,KAAe,aAAT90B,EAAsBf,KAAK61B,KAAO,KACxC,gBAAiB5nB,EAAW,OAAS,KACrC,eAAgBjO,KAAKiW,sBAGzBwC,kBAAmB,WACjB,OAAO3Z,EAAcA,EAAc,GAAIkB,KAAK0Y,aAAc,GAAI,CAC5D9R,MAAO5G,KAAKsE,QACZmN,OAAQzR,KAAK0Q,SACb5M,KAAM9D,KAAK2Y,WAIjBxV,MAAO,CACL2yB,QAAS,SAAiB1yB,GACxBpD,KAAKg2B,gBAAgB5yB,KAGzB8L,QAAS,WACPlP,KAAKg2B,gBAAgBh2B,KAAK81B,UAI5BrW,YAAa,WAIXzf,KAAKg2B,iBAAgB,IAIvBC,UAAW,WAITj2B,KAAKg2B,gBAAgBh2B,KAAK81B,UAE5BzmB,cAAe,WAEbrP,KAAKg2B,iBAAgB,IAEvBpyB,QAAS,CACPoyB,gBAAiB,SAAyB9vB,GACxC,IAAIU,EAAQ5G,KAAKoP,IAEjB,eAAWlJ,EAAIU,EAAO,QAAS5G,KAAKk2B,cACpC,eAAWhwB,EAAIU,EAAO,OAAQ5G,KAAKm2B,aAE9BjwB,GACH,eAASkb,SAAU,QAASphB,KAAKo2B,YAGrCF,aAAc,WACZ,eAAQ9U,SAAU,QAASphB,KAAKo2B,YAElCD,YAAa,WACX,eAAS/U,SAAU,QAASphB,KAAKo2B,YAEnCA,UAAW,SAAmB90B,GAC5B,eAAUA,EAAO,CACfif,aAAa,IAEf,eAAYvgB,KAAKoP,OAGrBnS,OAAQ,SAAgBC,GACtB,OAAOA,EAAE,QAAS,CAChBqJ,MAAOvG,KAAK+Z,cACZzc,MAAO0C,KAAKgO,cACZzQ,SAAU,CACRZ,MAAOqD,KAAK4Y,YAEd1S,GAAIlG,KAAKyY,kBACT1R,IAAK,c,kCClJX,sFAII+B,EAAgC,eAAc,CAChDrL,WAAY,CACVgpB,YAAa,OACb5pB,kBAAmB,OACnBiD,uBAAwB,OACxBu2B,QAAS,OACTC,cAAe,OACfC,mBAAoB,W,kCCXxB,sCAAIjP,EAAJ,wEAEA,SAASrpB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAAaC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,eAAgBP,EAAKQ,KAAKC,MAAMT,EAAMG,GAAY,OAAOH,EAE9U,SAASU,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,GAAQA,EAAI,EAAKf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAAOC,EAAgBP,EAAQM,EAAKF,EAAOE,OAAsBhB,OAAOkB,0BAA6BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAmBlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,OAAe,OAAON,EAE7gB,SAASO,EAAgBI,EAAKL,EAAK1C,GAAiK,OAApJ0C,KAAOK,EAAOrB,OAAOoB,eAAeC,EAAKL,EAAK,CAAE1C,MAAOA,EAAOgC,YAAY,EAAMgB,cAAc,EAAMC,UAAU,IAAkBF,EAAIL,GAAO1C,EAAgB+C,EASpM,IAAIjD,EAAQ,eAAsB,eAASqC,EAAcA,EAAc,GAAI,QAA2B,IAAKwoB,EAAiB,GAAIhoB,EAAgBgoB,EAAgB,OAAiB,eAAS,OAAiB,KAAMhoB,EAAgBgoB,EAAgB,WAAY,eAAS,QAAmB,IAASA,KAAmB,QAGjTnQ,EAAkC,aAAIra,OAAO,CACtDC,KAAM,OAENgD,OAAQ,CAAC,QACTowB,QAAS,WACP,MAAO,CACLqG,aAAcx2B,OAGlBvD,MAAOA,EACPoG,SAAU,CACRwtB,aAAc,WACZ,OAAO","file":"js/chunk-vendors~5dc4b95a.1fc7f7bd.js","sourcesContent":["import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM_SELECT_OPTION } from '../../constants/components';\nimport { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n value: makeProp(PROP_TYPE_ANY, undefined, true) // Required\n\n}, NAME_FORM_SELECT_OPTION); // --- Main component ---\n// @vue/component\n\nexport var BFormSelectOption = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SELECT_OPTION,\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 value = props.value,\n disabled = props.disabled;\n return h('option', mergeData(data, {\n attrs: {\n disabled: disabled\n },\n domProps: {\n value: value\n }\n }), children);\n }\n});","import { BFormTags } from './form-tags';\nimport { BFormTag } from './form-tag';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTagsPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormTags: BFormTags,\n BTags: BFormTags,\n BFormTag: BFormTag,\n BTag: BFormTag\n }\n});\nexport { FormTagsPlugin, BFormTags, BFormTag };","import { BFormSpinbutton } from './form-spinbutton';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormSpinbuttonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormSpinbutton: BFormSpinbutton,\n BSpinbutton: BFormSpinbutton\n }\n});\nexport { FormSpinbuttonPlugin, BFormSpinbutton };","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_SELECT_OPTION_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_FIRST } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formOptionsMixin, props as formOptionsProps } from '../../mixins/form-options';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BFormSelectOption } from './form-select-option'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formOptionsProps), {}, {\n label: makeProp(PROP_TYPE_STRING, undefined, true) // Required\n\n})), NAME_FORM_SELECT_OPTION_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BFormSelectOptionGroup = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SELECT_OPTION_GROUP,\n mixins: [normalizeSlotMixin, formOptionsMixin],\n props: props,\n render: function render(h) {\n var label = this.label;\n var $options = this.formOptions.map(function (option, index) {\n var value = option.value,\n text = option.text,\n html = option.html,\n disabled = option.disabled;\n return h(BFormSelectOption, {\n attrs: {\n value: value,\n disabled: disabled\n },\n domProps: htmlOrText(html, text),\n key: \"option_\".concat(index)\n });\n });\n return h('optgroup', {\n attrs: {\n label: label\n }\n }, [this.normalizeSlot(SLOT_NAME_FIRST), $options, this.normalizeSlot()]);\n }\n});","import { BFormInput } from './form-input';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormInputPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormInput: BFormInput,\n BInput: BFormInput\n }\n});\nexport { FormInputPlugin, BFormInput };","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_DATEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { createDate, constrainDate, formatYMD, parseYMD } from '../../utils/date';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconCalendar, BIconCalendarFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BCalendar, props as BCalendarProps } from '../calendar/calendar';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar calendarProps = omit(BCalendarProps, ['block', 'hidden', 'id', 'noKeyNav', 'roleDescription', 'value', 'width']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), calendarProps), formBtnLabelControlProps), {}, {\n // Width of the calendar dropdown\n calendarWidth: makeProp(PROP_TYPE_STRING, '270px'),\n closeButton: makeProp(PROP_TYPE_BOOLEAN, false),\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n // Dark mode\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n labelTodayButton: makeProp(PROP_TYPE_STRING, 'Select today'),\n noCloseOnSelect: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING),\n todayButton: makeProp(PROP_TYPE_BOOLEAN, false),\n todayButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary')\n})), NAME_FORM_DATEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormDatepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `YYYY-MM-DD` value internally\n localYMD: formatYMD(this[MODEL_PROP_NAME]) || '',\n // If the popup is open\n isVisible: false,\n // Context data from BCalendar\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n activeYMD: ''\n };\n },\n computed: {\n calendarYM: function calendarYM() {\n // Returns the calendar year/month\n // Returns the `YYYY-MM` portion of the active calendar date\n return this.activeYMD.slice(0, -3);\n },\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n },\n computedResetValue: function computedResetValue() {\n return formatYMD(constrainDate(this.resetValue)) || '';\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localYMD = formatYMD(newValue) || '';\n }), _defineProperty(_watch, \"localYMD\", function localYMD(newValue) {\n // We only update the v-model when the datepicker is open\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newValue) || null : newValue || '');\n }\n }), _defineProperty(_watch, \"calendarYM\", function calendarYM(newValue, oldValue) {\n // Displayed calendar month has changed\n // So possibly the calendar height has changed...\n // We need to update popper computed position\n if (newValue !== oldValue && oldValue) {\n try {\n this.$refs.control.updatePopper();\n } catch (_unused) {}\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(ymd) {\n var _this = this;\n\n this.localYMD = ymd; // Close calendar popup, unless `noCloseOnSelect`\n\n if (!this.noCloseOnSelect) {\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n }\n },\n onSelected: function onSelected(ymd) {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.setAndClose(ymd);\n });\n },\n onInput: function onInput(ymd) {\n if (this.localYMD !== ymd) {\n this.localYMD = ymd;\n }\n },\n onContext: function onContext(ctx) {\n var activeYMD = ctx.activeYMD,\n isRTL = ctx.isRTL,\n locale = ctx.locale,\n selectedYMD = ctx.selectedYMD,\n selectedFormatted = ctx.selectedFormatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = selectedFormatted;\n this.localYMD = selectedYMD;\n this.activeYMD = activeYMD; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onTodayButton: function onTodayButton() {\n // Set to today (or min/max if today is out of range)\n this.setAndClose(formatYMD(constrainDate(createDate(), this.min, this.max)));\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.computedResetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n // Menu handlers\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this3 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this3.$refs.calendar);\n\n _this3.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconCalendarFill : BIconCalendar, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localYMD = this.localYMD,\n disabled = this.disabled,\n readonly = this.readonly,\n dark = this.dark,\n $props = this.$props,\n $scopedSlots = this.$scopedSlots;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoDateSelected : this.placeholder; // Optional footer buttons\n\n var $footer = [];\n\n if (this.todayButton) {\n var label = this.labelTodayButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.todayButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onTodayButton\n }\n }, label));\n }\n\n if (this.resetButton) {\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled || readonly,\n size: 'sm',\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n }\n }, _label));\n }\n\n if (this.closeButton) {\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n disabled: disabled,\n size: 'sm',\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n }\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $calendar = h(BCalendar, {\n staticClass: 'b-form-date-calendar w-100',\n props: _objectSpread(_objectSpread({}, pluckProps(calendarProps, $props)), {}, {\n hidden: !this.isVisible,\n value: localYMD,\n valueAsDate: false,\n width: this.calendarWidth\n }),\n on: {\n selected: this.onSelected,\n input: this.onInput,\n context: this.onContext\n },\n scopedSlots: pick($scopedSlots, ['nav-prev-decade', 'nav-prev-year', 'nav-prev-month', 'nav-this-month', 'nav-next-month', 'nav-next-year', 'nav-next-decade']),\n key: 'calendar',\n ref: 'calendar'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-datepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n formattedValue: localYMD ? this.formattedValue : '',\n id: this.safeId(),\n lang: this.computedLang,\n menuClass: [{\n 'bg-dark': dark,\n 'text-light': dark\n }, this.menuClass],\n placeholder: placeholder,\n rtl: this.isRTL,\n value: localYMD\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, $scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$calendar]);\n }\n});","import { pluginFactory } from '../utils/plugins'; // Component group plugins\n\nimport { AlertPlugin } from './alert';\nimport { AspectPlugin } from './aspect';\nimport { AvatarPlugin } from './avatar';\nimport { BadgePlugin } from './badge';\nimport { BreadcrumbPlugin } from './breadcrumb';\nimport { ButtonPlugin } from './button';\nimport { ButtonGroupPlugin } from './button-group';\nimport { ButtonToolbarPlugin } from './button-toolbar';\nimport { CalendarPlugin } from './calendar';\nimport { CardPlugin } from './card';\nimport { CarouselPlugin } from './carousel';\nimport { CollapsePlugin } from './collapse';\nimport { DropdownPlugin } from './dropdown';\nimport { EmbedPlugin } from './embed';\nimport { FormPlugin } from './form';\nimport { FormCheckboxPlugin } from './form-checkbox';\nimport { FormDatepickerPlugin } from './form-datepicker';\nimport { FormFilePlugin } from './form-file';\nimport { FormGroupPlugin } from './form-group';\nimport { FormInputPlugin } from './form-input';\nimport { FormRadioPlugin } from './form-radio';\nimport { FormRatingPlugin } from './form-rating';\nimport { FormSelectPlugin } from './form-select';\nimport { FormSpinbuttonPlugin } from './form-spinbutton';\nimport { FormTagsPlugin } from './form-tags';\nimport { FormTextareaPlugin } from './form-textarea';\nimport { FormTimepickerPlugin } from './form-timepicker';\nimport { ImagePlugin } from './image';\nimport { InputGroupPlugin } from './input-group';\nimport { JumbotronPlugin } from './jumbotron';\nimport { LayoutPlugin } from './layout';\nimport { LinkPlugin } from './link';\nimport { ListGroupPlugin } from './list-group';\nimport { MediaPlugin } from './media';\nimport { ModalPlugin } from './modal';\nimport { NavPlugin } from './nav';\nimport { NavbarPlugin } from './navbar';\nimport { OverlayPlugin } from './overlay';\nimport { PaginationPlugin } from './pagination';\nimport { PaginationNavPlugin } from './pagination-nav';\nimport { PopoverPlugin } from './popover';\nimport { ProgressPlugin } from './progress';\nimport { SidebarPlugin } from './sidebar';\nimport { SkeletonPlugin } from './skeleton';\nimport { SpinnerPlugin } from './spinner'; // Table plugin includes TableLitePlugin and TableSimplePlugin\n\nimport { TablePlugin } from './table';\nimport { TabsPlugin } from './tabs';\nimport { TimePlugin } from './time';\nimport { ToastPlugin } from './toast';\nimport { TooltipPlugin } from './tooltip'; // Main plugin to install all component group plugins\n\nexport var componentsPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n AlertPlugin: AlertPlugin,\n AspectPlugin: AspectPlugin,\n AvatarPlugin: AvatarPlugin,\n BadgePlugin: BadgePlugin,\n BreadcrumbPlugin: BreadcrumbPlugin,\n ButtonPlugin: ButtonPlugin,\n ButtonGroupPlugin: ButtonGroupPlugin,\n ButtonToolbarPlugin: ButtonToolbarPlugin,\n CalendarPlugin: CalendarPlugin,\n CardPlugin: CardPlugin,\n CarouselPlugin: CarouselPlugin,\n CollapsePlugin: CollapsePlugin,\n DropdownPlugin: DropdownPlugin,\n EmbedPlugin: EmbedPlugin,\n FormPlugin: FormPlugin,\n FormCheckboxPlugin: FormCheckboxPlugin,\n FormDatepickerPlugin: FormDatepickerPlugin,\n FormFilePlugin: FormFilePlugin,\n FormGroupPlugin: FormGroupPlugin,\n FormInputPlugin: FormInputPlugin,\n FormRadioPlugin: FormRadioPlugin,\n FormRatingPlugin: FormRatingPlugin,\n FormSelectPlugin: FormSelectPlugin,\n FormSpinbuttonPlugin: FormSpinbuttonPlugin,\n FormTagsPlugin: FormTagsPlugin,\n FormTextareaPlugin: FormTextareaPlugin,\n FormTimepickerPlugin: FormTimepickerPlugin,\n ImagePlugin: ImagePlugin,\n InputGroupPlugin: InputGroupPlugin,\n JumbotronPlugin: JumbotronPlugin,\n LayoutPlugin: LayoutPlugin,\n LinkPlugin: LinkPlugin,\n ListGroupPlugin: ListGroupPlugin,\n MediaPlugin: MediaPlugin,\n ModalPlugin: ModalPlugin,\n NavPlugin: NavPlugin,\n NavbarPlugin: NavbarPlugin,\n OverlayPlugin: OverlayPlugin,\n PaginationPlugin: PaginationPlugin,\n PaginationNavPlugin: PaginationNavPlugin,\n PopoverPlugin: PopoverPlugin,\n ProgressPlugin: ProgressPlugin,\n SidebarPlugin: SidebarPlugin,\n SkeletonPlugin: SkeletonPlugin,\n SpinnerPlugin: SpinnerPlugin,\n TablePlugin: TablePlugin,\n TabsPlugin: TabsPlugin,\n TimePlugin: TimePlugin,\n ToastPlugin: ToastPlugin,\n TooltipPlugin: TooltipPlugin\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_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});","import { BFormTextarea } from './form-textarea';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTextareaPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormTextarea: BFormTextarea,\n BTextarea: BFormTextarea\n }\n});\nexport { FormTextareaPlugin, BFormTextarea };","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_DATALIST } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { formOptionsMixin, props as formOptionsProps } from '../../mixins/form-options';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formOptionsProps), {}, {\n id: makeProp(PROP_TYPE_STRING, undefined, true) // Required\n\n})), NAME_FORM_DATALIST); // --- Main component ---\n// @vue/component\n\nexport var BFormDatalist = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_DATALIST,\n mixins: [formOptionsMixin, normalizeSlotMixin],\n props: props,\n render: function render(h) {\n var id = this.id;\n var $options = this.formOptions.map(function (option, index) {\n var value = option.value,\n text = option.text,\n html = option.html,\n disabled = option.disabled;\n return h('option', {\n attrs: {\n value: value,\n disabled: disabled\n },\n domProps: htmlOrText(html, text),\n key: \"option_\".concat(index)\n });\n });\n return h('datalist', {\n attrs: {\n id: id\n }\n }, [$options, this.normalizeSlot()]);\n }\n});","import { BJumbotron } from './jumbotron';\nimport { pluginFactory } from '../../utils/plugins';\nvar JumbotronPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BJumbotron: BJumbotron\n }\n});\nexport { JumbotronPlugin, BJumbotron };","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_INPUT_GROUP_APPEND } from '../../constants/components';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAddon, props as BInputGroupAddonProps } from './input-group-addon'; // --- Props ---\n\nexport var props = makePropsConfigurable(omit(BInputGroupAddonProps, ['append']), NAME_INPUT_GROUP_APPEND); // --- Main component ---\n// @vue/component\n\nexport var BInputGroupAppend = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP_APPEND,\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 // Pass all our data down to child, and set `append` to `true`\n return h(BInputGroupAddon, mergeData(data, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n append: true\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_INPUT_GROUP } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_APPEND, SLOT_NAME_DEFAULT, SLOT_NAME_PREPEND } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BInputGroupAppend } from './input-group-append';\nimport { BInputGroupPrepend } from './input-group-prepend';\nimport { BInputGroupText } from './input-group-text'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n append: makeProp(PROP_TYPE_STRING),\n appendHtml: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n prepend: makeProp(PROP_TYPE_STRING),\n prependHtml: makeProp(PROP_TYPE_STRING),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_INPUT_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BInputGroup = /*#__PURE__*/Vue.extend({\n name: NAME_INPUT_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var prepend = props.prepend,\n prependHtml = props.prependHtml,\n append = props.append,\n appendHtml = props.appendHtml,\n size = props.size;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $prepend = h();\n var hasPrependSlot = hasNormalizedSlot(SLOT_NAME_PREPEND, $scopedSlots, $slots);\n\n if (hasPrependSlot || prepend || prependHtml) {\n $prepend = h(BInputGroupPrepend, [hasPrependSlot ? normalizeSlot(SLOT_NAME_PREPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(prependHtml, prepend)\n })]);\n }\n\n var $append = h();\n var hasAppendSlot = hasNormalizedSlot(SLOT_NAME_APPEND, $scopedSlots, $slots);\n\n if (hasAppendSlot || append || appendHtml) {\n $append = h(BInputGroupAppend, [hasAppendSlot ? normalizeSlot(SLOT_NAME_APPEND, slotScope, $scopedSlots, $slots) : h(BInputGroupText, {\n domProps: htmlOrText(appendHtml, append)\n })]);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, \"input-group-\".concat(size), size),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), [$prepend, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots), $append]);\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 { BFormCheckbox } from './form-checkbox';\nimport { BFormCheckboxGroup } from './form-checkbox-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormCheckboxPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormCheckbox: BFormCheckbox,\n BCheckbox: BFormCheckbox,\n BCheck: BFormCheckbox,\n BFormCheckboxGroup: BFormCheckboxGroup,\n BCheckboxGroup: BFormCheckboxGroup,\n BCheckGroup: BFormCheckboxGroup\n }\n});\nexport { FormCheckboxPlugin, BFormCheckbox, BFormCheckboxGroup };","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});","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});","import { BFormTimepicker } from './form-timepicker';\nimport { pluginFactory } from '../../utils/plugins';\nvar FormTimepickerPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BFormTimepicker: BFormTimepicker,\n BTimepicker: BFormTimepicker\n }\n});\nexport { FormTimepickerPlugin, BFormTimepicker };","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_TIMEPICKER } from '../../constants/components';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SHOWN, EVENT_NAME_HIDDEN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT } from '../../constants/slots';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { BIconClock, BIconClockFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BVFormBtnLabelControl, props as BVFormBtnLabelControlProps } from '../form-btn-label-control/bv-form-btn-label-control';\nimport { BTime, props as BTimeProps } from '../time/time'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_STRING,\n defaultValue: ''\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nvar timeProps = omit(BTimeProps, ['hidden', 'id', 'value']);\nvar formBtnLabelControlProps = omit(BVFormBtnLabelControlProps, ['formattedValue', 'id', 'lang', 'rtl', 'value']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), timeProps), formBtnLabelControlProps), {}, {\n closeButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-secondary'),\n labelCloseButton: makeProp(PROP_TYPE_STRING, 'Close'),\n labelNowButton: makeProp(PROP_TYPE_STRING, 'Select now'),\n labelResetButton: makeProp(PROP_TYPE_STRING, 'Reset'),\n noCloseButton: makeProp(PROP_TYPE_BOOLEAN, false),\n nowButton: makeProp(PROP_TYPE_BOOLEAN, false),\n nowButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-primary'),\n resetButton: makeProp(PROP_TYPE_BOOLEAN, false),\n resetButtonVariant: makeProp(PROP_TYPE_STRING, 'outline-danger'),\n resetValue: makeProp(PROP_TYPE_DATE_STRING)\n})), NAME_FORM_TIMEPICKER); // --- Main component ---\n// @vue/component\n\nexport var BFormTimepicker = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_TIMEPICKER,\n mixins: [idMixin, modelMixin],\n props: props,\n data: function data() {\n return {\n // We always use `HH:mm:ss` value internally\n localHMS: this[MODEL_PROP_NAME] || '',\n // Context data from BTime\n localLocale: null,\n isRTL: false,\n formattedValue: '',\n // If the menu is opened\n isVisible: false\n };\n },\n computed: {\n computedLang: function computedLang() {\n return (this.localLocale || '').replace(/-u-.*$/i, '') || null;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.localHMS = newValue || '';\n }), _defineProperty(_watch, \"localHMS\", function localHMS(newValue) {\n // We only update the v-model value when the timepicker\n // is open, to prevent cursor jumps when bound to a\n // text input in button only mode\n if (this.isVisible) {\n this.$emit(MODEL_EVENT_NAME, newValue || '');\n }\n }), _watch),\n methods: {\n // Public methods\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.control);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.control);\n }\n },\n // Private methods\n setAndClose: function setAndClose(value) {\n var _this = this;\n\n this.localHMS = value;\n this.$nextTick(function () {\n _this.$refs.control.hide(true);\n });\n },\n onInput: function onInput(hms) {\n if (this.localHMS !== hms) {\n this.localHMS = hms;\n }\n },\n onContext: function onContext(ctx) {\n var isRTL = ctx.isRTL,\n locale = ctx.locale,\n value = ctx.value,\n formatted = ctx.formatted;\n this.isRTL = isRTL;\n this.localLocale = locale;\n this.formattedValue = formatted;\n this.localHMS = value || ''; // Re-emit the context event\n\n this.$emit(EVENT_NAME_CONTEXT, ctx);\n },\n onNowButton: function onNowButton() {\n var now = new Date();\n var hours = now.getHours();\n var minutes = now.getMinutes();\n var seconds = this.showSeconds ? now.getSeconds() : 0;\n var value = [hours, minutes, seconds].map(function (v) {\n return \"00\".concat(v || '').slice(-2);\n }).join(':');\n this.setAndClose(value);\n },\n onResetButton: function onResetButton() {\n this.setAndClose(this.resetValue);\n },\n onCloseButton: function onCloseButton() {\n this.$refs.control.hide(true);\n },\n onShow: function onShow() {\n this.isVisible = true;\n },\n onShown: function onShown() {\n var _this2 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this2.$refs.time);\n\n _this2.$emit(EVENT_NAME_SHOWN);\n });\n },\n onHidden: function onHidden() {\n this.isVisible = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n // Render function helpers\n defaultButtonFn: function defaultButtonFn(_ref) {\n var isHovered = _ref.isHovered,\n hasFocus = _ref.hasFocus;\n return this.$createElement(isHovered || hasFocus ? BIconClockFill : BIconClock, {\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n }\n },\n render: function render(h) {\n var localHMS = this.localHMS,\n disabled = this.disabled,\n readonly = this.readonly,\n $props = this.$props;\n var placeholder = isUndefinedOrNull(this.placeholder) ? this.labelNoTimeSelected : this.placeholder; // Footer buttons\n\n var $footer = [];\n\n if (this.nowButton) {\n var label = this.labelNowButton;\n $footer.push(h(BButton, {\n props: {\n size: 'sm',\n disabled: disabled || readonly,\n variant: this.nowButtonVariant\n },\n attrs: {\n 'aria-label': label || null\n },\n on: {\n click: this.onNowButton\n },\n key: 'now-btn'\n }, label));\n }\n\n if (this.resetButton) {\n if ($footer.length > 0) {\n // Add a \"spacer\" between buttons (' ')\n $footer.push(h('span', \"\\xA0\"));\n }\n\n var _label = this.labelResetButton;\n $footer.push(h(BButton, {\n props: {\n size: 'sm',\n disabled: disabled || readonly,\n variant: this.resetButtonVariant\n },\n attrs: {\n 'aria-label': _label || null\n },\n on: {\n click: this.onResetButton\n },\n key: 'reset-btn'\n }, _label));\n }\n\n if (!this.noCloseButton) {\n // Add a \"spacer\" between buttons (' ')\n if ($footer.length > 0) {\n $footer.push(h('span', \"\\xA0\"));\n }\n\n var _label2 = this.labelCloseButton;\n $footer.push(h(BButton, {\n props: {\n size: 'sm',\n disabled: disabled,\n variant: this.closeButtonVariant\n },\n attrs: {\n 'aria-label': _label2 || null\n },\n on: {\n click: this.onCloseButton\n },\n key: 'close-btn'\n }, _label2));\n }\n\n if ($footer.length > 0) {\n $footer = [h('div', {\n staticClass: 'b-form-date-controls d-flex flex-wrap',\n class: {\n 'justify-content-between': $footer.length > 1,\n 'justify-content-end': $footer.length < 2\n }\n }, $footer)];\n }\n\n var $time = h(BTime, {\n staticClass: 'b-form-time-control',\n props: _objectSpread(_objectSpread({}, pluckProps(timeProps, $props)), {}, {\n value: localHMS,\n hidden: !this.isVisible\n }),\n on: {\n input: this.onInput,\n context: this.onContext\n },\n ref: 'time'\n }, $footer);\n return h(BVFormBtnLabelControl, {\n staticClass: 'b-form-timepicker',\n props: _objectSpread(_objectSpread({}, pluckProps(formBtnLabelControlProps, $props)), {}, {\n id: this.safeId(),\n value: localHMS,\n formattedValue: localHMS ? this.formattedValue : '',\n placeholder: placeholder,\n rtl: this.isRTL,\n lang: this.computedLang\n }),\n on: {\n show: this.onShow,\n shown: this.onShown,\n hidden: this.onHidden\n },\n scopedSlots: _defineProperty({}, SLOT_NAME_BUTTON_CONTENT, this.$scopedSlots[SLOT_NAME_BUTTON_CONTENT] || this.defaultButtonFn),\n ref: 'control'\n }, [$time]);\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});","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_SPINBUTTON } from '../../constants/components';\nimport { EVENT_NAME_CHANGE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_PAGEUP, CODE_UP, CODE_PAGEDOWN } from '../../constants/key-codes';\nimport { SLOT_NAME_DECREMENT, SLOT_NAME_INCREMENT } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus } from '../../utils/dom';\nimport { eventOnOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isNull } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { mathFloor, mathMax, mathPow, mathRound } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toFloat, toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formSizeMixin, props as formSizeProps } from '../../mixins/form-size';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formControlProps } from '../../mixins/form-control';\nimport { BIconPlus, BIconDash } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n // Should this really be String, to match native number inputs?\n type: PROP_TYPE_BOOLEAN_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // Default for spin button range and step\n\n\nvar DEFAULT_MIN = 1;\nvar DEFAULT_MAX = 100;\nvar DEFAULT_STEP = 1; // Delay before auto-repeat in ms\n\nvar DEFAULT_REPEAT_DELAY = 500; // Repeat interval in ms\n\nvar DEFAULT_REPEAT_INTERVAL = 100; // Repeat rate increased after number of repeats\n\nvar DEFAULT_REPEAT_THRESHOLD = 10; // Repeat speed multiplier (step multiplier, must be an integer)\n\nvar DEFAULT_REPEAT_MULTIPLIER = 4;\nvar KEY_CODES = [CODE_UP, CODE_DOWN, CODE_HOME, CODE_END, CODE_PAGEUP, CODE_PAGEDOWN]; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), omit(formControlProps, ['required', 'autofocus'])), formSizeProps), formStateProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n formatterFn: makeProp(PROP_TYPE_FUNCTION),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n labelDecrement: makeProp(PROP_TYPE_STRING, 'Decrement'),\n labelIncrement: makeProp(PROP_TYPE_STRING, 'Increment'),\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_MAX),\n min: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_MIN),\n placeholder: makeProp(PROP_TYPE_STRING),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n repeatDelay: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_DELAY),\n repeatInterval: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_INTERVAL),\n repeatStepMultiplier: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_MULTIPLIER),\n repeatThreshold: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_THRESHOLD),\n step: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_STEP),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false),\n wrap: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_FORM_SPINBUTTON); // --- Main Component ---\n// @vue/component\n\nexport var BFormSpinbutton = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_SPINBUTTON,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, formSizeMixin, formStateMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localValue: toFloat(this[MODEL_PROP_NAME], null),\n hasFocus: false\n };\n },\n computed: {\n spinId: function spinId() {\n return this.safeId();\n },\n computedInline: function computedInline() {\n return this.inline && !this.vertical;\n },\n computedReadonly: function computedReadonly() {\n return this.readonly && !this.disabled;\n },\n computedRequired: function computedRequired() {\n return this.required && !this.computedReadonly && !this.disabled;\n },\n computedStep: function computedStep() {\n return toFloat(this.step, DEFAULT_STEP);\n },\n computedMin: function computedMin() {\n return toFloat(this.min, DEFAULT_MIN);\n },\n computedMax: function computedMax() {\n // We round down to the nearest maximum step value\n var max = toFloat(this.max, DEFAULT_MAX);\n var step = this.computedStep;\n var min = this.computedMin;\n return mathFloor((max - min) / step) * step + min;\n },\n computedDelay: function computedDelay() {\n var delay = toInteger(this.repeatDelay, 0);\n return delay > 0 ? delay : DEFAULT_REPEAT_DELAY;\n },\n computedInterval: function computedInterval() {\n var interval = toInteger(this.repeatInterval, 0);\n return interval > 0 ? interval : DEFAULT_REPEAT_INTERVAL;\n },\n computedThreshold: function computedThreshold() {\n return mathMax(toInteger(this.repeatThreshold, DEFAULT_REPEAT_THRESHOLD), 1);\n },\n computedStepMultiplier: function computedStepMultiplier() {\n return mathMax(toInteger(this.repeatStepMultiplier, DEFAULT_REPEAT_MULTIPLIER), 1);\n },\n computedPrecision: function computedPrecision() {\n // Quick and dirty way to get the number of decimals\n var step = this.computedStep;\n return mathFloor(step) === step ? 0 : (step.toString().split('.')[1] || '').length;\n },\n computedMultiplier: function computedMultiplier() {\n return mathPow(10, this.computedPrecision || 0);\n },\n valueAsFixed: function valueAsFixed() {\n var value = this.localValue;\n return isNull(value) ? '' : value.toFixed(this.computedPrecision);\n },\n computedLocale: function computedLocale() {\n var locales = concat(this.locale).filter(identity);\n var nf = new Intl.NumberFormat(locales);\n return nf.resolvedOptions().locale;\n },\n computedRTL: function computedRTL() {\n return isLocaleRTL(this.computedLocale);\n },\n defaultFormatter: function defaultFormatter() {\n // Returns and `Intl.NumberFormat` formatter method reference\n var precision = this.computedPrecision;\n var nf = new Intl.NumberFormat(this.computedLocale, {\n style: 'decimal',\n useGrouping: false,\n minimumIntegerDigits: 1,\n minimumFractionDigits: precision,\n maximumFractionDigits: precision,\n notation: 'standard'\n }); // Return the format method reference\n\n return nf.format;\n },\n computedFormatter: function computedFormatter() {\n var formatterFn = this.formatterFn;\n return hasPropFunction(formatterFn) ? formatterFn : this.defaultFormatter;\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'group',\n lang: this.computedLocale,\n tabindex: this.disabled ? null : '-1',\n title: this.ariaLabel\n });\n },\n computedSpinAttrs: function computedSpinAttrs() {\n var spinId = this.spinId,\n value = this.localValue,\n required = this.computedRequired,\n disabled = this.disabled,\n state = this.state,\n computedFormatter = this.computedFormatter;\n var hasValue = !isNull(value);\n return _objectSpread(_objectSpread({\n dir: this.computedRTL ? 'rtl' : 'ltr'\n }, this.bvAttrs), {}, {\n id: spinId,\n role: 'spinbutton',\n tabindex: disabled ? null : '0',\n 'aria-live': 'off',\n 'aria-label': this.ariaLabel || null,\n 'aria-controls': this.ariaControls || null,\n // TODO: May want to check if the value is in range\n 'aria-invalid': state === false || !hasValue && required ? 'true' : null,\n 'aria-required': required ? 'true' : null,\n // These attrs are required for role spinbutton\n 'aria-valuemin': toString(this.computedMin),\n 'aria-valuemax': toString(this.computedMax),\n // These should be `null` if the value is out of range\n // They must also be non-existent attrs if the value is out of range or `null`\n 'aria-valuenow': hasValue ? value : null,\n 'aria-valuetext': hasValue ? computedFormatter(value) : null\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (value) {\n this.localValue = toFloat(value, null);\n }), _defineProperty(_watch, \"localValue\", function localValue(value) {\n this.$emit(MODEL_EVENT_NAME, value);\n }), _defineProperty(_watch, \"disabled\", function disabled(_disabled) {\n if (_disabled) {\n this.clearRepeat();\n }\n }), _defineProperty(_watch, \"readonly\", function readonly(_readonly) {\n if (_readonly) {\n this.clearRepeat();\n }\n }), _watch),\n created: function created() {\n // Create non reactive properties\n this.$_autoDelayTimer = null;\n this.$_autoRepeatTimer = null;\n this.$_keyIsDown = false;\n },\n beforeDestroy: function beforeDestroy() {\n this.clearRepeat();\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.clearRepeat();\n },\n methods: {\n // --- Public methods ---\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.spinner);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.spinner);\n }\n },\n // --- Private methods ---\n emitChange: function emitChange() {\n this.$emit(EVENT_NAME_CHANGE, this.localValue);\n },\n stepValue: function stepValue(direction) {\n // Sets a new incremented or decremented value, supporting optional wrapping\n // Direction is either +1 or -1 (or a multiple thereof)\n var value = this.localValue;\n\n if (!this.disabled && !isNull(value)) {\n var step = this.computedStep * direction;\n var min = this.computedMin;\n var max = this.computedMax;\n var multiplier = this.computedMultiplier;\n var wrap = this.wrap; // We ensure that the value steps like a native input\n\n value = mathRound((value - min) / step) * step + min + step; // We ensure that precision is maintained (decimals)\n\n value = mathRound(value * multiplier) / multiplier; // Handle if wrapping is enabled\n\n this.localValue = value > max ? wrap ? min : max : value < min ? wrap ? max : min : value;\n }\n },\n onFocusBlur: function onFocusBlur(event) {\n if (!this.disabled) {\n this.hasFocus = event.type === 'focus';\n } else {\n this.hasFocus = false;\n }\n },\n stepUp: function stepUp() {\n var multiplier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var value = this.localValue;\n\n if (isNull(value)) {\n this.localValue = this.computedMin;\n } else {\n this.stepValue(+1 * multiplier);\n }\n },\n stepDown: function stepDown() {\n var multiplier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var value = this.localValue;\n\n if (isNull(value)) {\n this.localValue = this.wrap ? this.computedMax : this.computedMin;\n } else {\n this.stepValue(-1 * multiplier);\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode,\n altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n /* istanbul ignore if */\n\n if (this.disabled || this.readonly || altKey || ctrlKey || metaKey) {\n return;\n }\n\n if (arrayIncludes(KEY_CODES, keyCode)) {\n // https://w3c.github.io/aria-practices/#spinbutton\n stopEvent(event, {\n propagation: false\n });\n /* istanbul ignore if */\n\n if (this.$_keyIsDown) {\n // Keypress is already in progress\n return;\n }\n\n this.resetTimers();\n\n if (arrayIncludes([CODE_UP, CODE_DOWN], keyCode)) {\n // The following use the custom auto-repeat handling\n this.$_keyIsDown = true;\n\n if (keyCode === CODE_UP) {\n this.handleStepRepeat(event, this.stepUp);\n } else if (keyCode === CODE_DOWN) {\n this.handleStepRepeat(event, this.stepDown);\n }\n } else {\n // These use native OS key repeating\n if (keyCode === CODE_PAGEUP) {\n this.stepUp(this.computedStepMultiplier);\n } else if (keyCode === CODE_PAGEDOWN) {\n this.stepDown(this.computedStepMultiplier);\n } else if (keyCode === CODE_HOME) {\n this.localValue = this.computedMin;\n } else if (keyCode === CODE_END) {\n this.localValue = this.computedMax;\n }\n }\n }\n },\n onKeyup: function onKeyup(event) {\n // Emit a change event when the keyup happens\n var keyCode = event.keyCode,\n altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n /* istanbul ignore if */\n\n if (this.disabled || this.readonly || altKey || ctrlKey || metaKey) {\n return;\n }\n\n if (arrayIncludes(KEY_CODES, keyCode)) {\n stopEvent(event, {\n propagation: false\n });\n this.resetTimers();\n this.$_keyIsDown = false;\n this.emitChange();\n }\n },\n handleStepRepeat: function handleStepRepeat(event, stepper) {\n var _this = this;\n\n var _ref = event || {},\n type = _ref.type,\n button = _ref.button;\n\n if (!this.disabled && !this.readonly) {\n /* istanbul ignore if */\n if (type === 'mousedown' && button) {\n // We only respond to left (main === 0) button clicks\n return;\n }\n\n this.resetTimers(); // Step the counter initially\n\n stepper(1);\n var threshold = this.computedThreshold;\n var multiplier = this.computedStepMultiplier;\n var delay = this.computedDelay;\n var interval = this.computedInterval; // Initiate the delay/repeat interval\n\n this.$_autoDelayTimer = setTimeout(function () {\n var count = 0;\n _this.$_autoRepeatTimer = setInterval(function () {\n // After N initial repeats, we increase the incrementing step amount\n // We do this to minimize screen reader announcements of the value\n // (values are announced every change, which can be chatty for SR users)\n // And to make it easer to select a value when the range is large\n stepper(count < threshold ? 1 : multiplier);\n count++;\n }, interval);\n }, delay);\n }\n },\n onMouseup: function onMouseup(event) {\n // `` listener, only enabled when mousedown starts\n var _ref2 = event || {},\n type = _ref2.type,\n button = _ref2.button;\n /* istanbul ignore if */\n\n\n if (type === 'mouseup' && button) {\n // Ignore non left button (main === 0) mouse button click\n return;\n }\n\n stopEvent(event, {\n propagation: false\n });\n this.resetTimers();\n this.setMouseup(false); // Trigger the change event\n\n this.emitChange();\n },\n setMouseup: function setMouseup(on) {\n // Enable or disabled the body mouseup/touchend handlers\n // Use try/catch to handle case when called server side\n try {\n eventOnOff(on, document.body, 'mouseup', this.onMouseup, false);\n eventOnOff(on, document.body, 'touchend', this.onMouseup, false);\n } catch (_unused) {}\n },\n resetTimers: function resetTimers() {\n clearTimeout(this.$_autoDelayTimer);\n clearInterval(this.$_autoRepeatTimer);\n this.$_autoDelayTimer = null;\n this.$_autoRepeatTimer = null;\n },\n clearRepeat: function clearRepeat() {\n this.resetTimers();\n this.setMouseup(false);\n this.$_keyIsDown = false;\n }\n },\n render: function render(h) {\n var _this2 = this;\n\n var spinId = this.spinId,\n value = this.localValue,\n inline = this.computedInline,\n readonly = this.computedReadonly,\n vertical = this.vertical,\n disabled = this.disabled,\n computedFormatter = this.computedFormatter;\n var hasValue = !isNull(value);\n\n var makeButton = function makeButton(stepper, label, IconCmp, keyRef, shortcut, btnDisabled, slotName) {\n var $icon = h(IconCmp, {\n props: {\n scale: _this2.hasFocus ? 1.5 : 1.25\n },\n attrs: {\n 'aria-hidden': 'true'\n }\n });\n var scope = {\n hasFocus: _this2.hasFocus\n };\n\n var handler = function handler(event) {\n if (!disabled && !readonly) {\n stopEvent(event, {\n propagation: false\n });\n\n _this2.setMouseup(true); // Since we `preventDefault()`, we must manually focus the button\n\n\n attemptFocus(event.currentTarget);\n\n _this2.handleStepRepeat(event, stepper);\n }\n };\n\n return h('button', {\n staticClass: 'btn btn-sm border-0 rounded-0',\n class: {\n 'py-0': !vertical\n },\n attrs: {\n tabindex: '-1',\n type: 'button',\n disabled: disabled || readonly || btnDisabled,\n 'aria-disabled': disabled || readonly || btnDisabled ? 'true' : null,\n 'aria-controls': spinId,\n 'aria-label': label || null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: {\n mousedown: handler,\n touchstart: handler\n },\n key: keyRef || null,\n ref: keyRef\n }, [_this2.normalizeSlot(slotName, scope) || $icon]);\n }; // TODO: Add button disabled state when `wrap` is `false` and at value max/min\n\n\n var $increment = makeButton(this.stepUp, this.labelIncrement, BIconPlus, 'inc', 'ArrowUp', false, SLOT_NAME_INCREMENT);\n var $decrement = makeButton(this.stepDown, this.labelDecrement, BIconDash, 'dec', 'ArrowDown', false, SLOT_NAME_DECREMENT);\n var $hidden = h();\n\n if (this.name && !disabled) {\n $hidden = h('input', {\n attrs: {\n type: 'hidden',\n name: this.name,\n form: this.form || null,\n // TODO: Should this be set to '' if value is out of range?\n value: this.valueAsFixed\n },\n key: 'hidden'\n });\n }\n\n var $spin = h( // We use 'output' element to make this accept a `