From 5cd061339891482796096647989395a81c2d8dbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Tue, 6 Apr 2021 14:47:04 +0200 Subject: [PATCH 1/2] Additional changes to typescript --- dist/CookieMonster.js.map | 2 +- src/Config/SaveLoadReload/SaveLoadReloadSettings.js | 2 +- src/Data/{Gamedata.js => Gamedata.ts} | 12 ++++++------ src/Data/{Moddata.js => Moddata.ts} | 0 src/Data/{Scales.js => Scales.ts} | 6 +++--- src/Data/{Sectionheaders.js => Sectionheaders.ts} | 4 ++-- src/Data/{SettingsDefault.js => SettingsDefault.ts} | 4 +++- src/Disp/BeautifyAndFormatting/BeautifyFormatting.js | 6 +++++- src/Disp/InfoBars/BottomBar.js | 2 +- src/Disp/MenuSections/Info/InfoPage.js | 2 +- src/Disp/MenuSections/Settings/CreateOption.js | 2 +- src/Disp/MenuSections/Settings/SettingsPage.js | 4 ++-- src/Disp/MenuSections/Statistics/AddStatsPage.js | 2 +- .../MenuSections/Statistics/CreateStatsSections.js | 2 +- src/InitSaveLoad/init.js | 2 +- src/InitSaveLoad/load.js | 2 +- src/InitSaveLoad/save.js | 2 +- src/Main/Initialization.js | 2 +- src/Sim/Calculations/CheckOtherAchiev.js | 2 +- 19 files changed, 33 insertions(+), 27 deletions(-) rename src/Data/{Gamedata.js => Gamedata.ts} (90%) rename src/Data/{Moddata.js => Moddata.ts} (100%) rename src/Data/{Scales.js => Scales.ts} (90%) rename src/Data/{Sectionheaders.js => Sectionheaders.ts} (86%) rename src/Data/{SettingsDefault.js => SettingsDefault.ts} (97%) diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 413b22c..1a7c068 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/./node_modules/@eastdesire/jscolor/jscolor.js","webpack://cookiemonster-mod/webpack/bootstrap","webpack://cookiemonster-mod/webpack/runtime/compat get default export","webpack://cookiemonster-mod/webpack/runtime/define property getters","webpack://cookiemonster-mod/webpack/runtime/hasOwnProperty shorthand","webpack://cookiemonster-mod/./src/Config/VariablesAndData.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleWrinklerButtons.js","webpack://cookiemonster-mod/./src/Data/Scales.js","webpack://cookiemonster-mod/./src/Main/VariablesAndData.js","webpack://cookiemonster-mod/./src/Disp/VariablesAndData.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/BeautifyFormatting.js","webpack://cookiemonster-mod/./src/Cache/VariablesAndData.js","webpack://cookiemonster-mod/./src/Sim/VariablesAndData.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimAuraMult.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimEff.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHas.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHasGod.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/SellBuilding.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/Buildings.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/Upgrades.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetCPS.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetWrinkConfigBank.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/CreateDOMElements.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/BottomBar.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateBackground.js","webpack://cookiemonster-mod/./src/Config/SpecificToggles.js","webpack://cookiemonster-mod/./src/Cache/Dragon/CacheDragonAuras.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitAchievement.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitialBuildingData.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitUpgrade.js","webpack://cookiemonster-mod/./src/Sim/SimulationData/CopyData.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/CreateTooltip.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js","webpack://cookiemonster-mod/./src/Cache/CPS/GetCPSBuffMult.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleToolWarnPos.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/UpdateTooltips.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Building.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Upgrade.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/SugarLump.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetLumpColour.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Grimoire.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Warnings.js","webpack://cookiemonster-mod/./src/Disp/DrawHook.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/TimerBar.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/WrinklerTooltips.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Refreshmenu.js","webpack://cookiemonster-mod/./src/Main/ClickHook.js","webpack://cookiemonster-mod/./src/Cache/CPS/AverageQueue.js","webpack://cookiemonster-mod/./src/Cache/CPS/CPS.js","webpack://cookiemonster-mod/./src/Cache/PP/ColourOfPP.js","webpack://cookiemonster-mod/./src/Cache/PP/Building.js","webpack://cookiemonster-mod/./src/Cache/PP/PP.js","webpack://cookiemonster-mod/./src/Cache/PP/Upgrade.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyBuilding.js","webpack://cookiemonster-mod/./src/Sim/SimulationData/SimWin.js","webpack://cookiemonster-mod/./src/Sim/Calculations/CalculateGains.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js","webpack://cookiemonster-mod/./src/Data/Gamedata.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHasAchiev.js","webpack://cookiemonster-mod/./src/Sim/Calculations/CheckOtherAchiev.js","webpack://cookiemonster-mod/./src/Cache/PriceAndIncome/PriceAndIncome.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyBuildingBonusIncome.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyUpgrades.js","webpack://cookiemonster-mod/./src/Cache/Stats/ChainCookies.js","webpack://cookiemonster-mod/./src/Cache/Stats/HeavenlyChips.js","webpack://cookiemonster-mod/./src/Cache/Stats/MissingUpgrades.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateMissingUpgrades.js","webpack://cookiemonster-mod/./src/Cache/Stats/Reindeer.js","webpack://cookiemonster-mod/./src/Cache/Stats/Stats.js","webpack://cookiemonster-mod/./src/Cache/Wrinklers/Wrinklers.js","webpack://cookiemonster-mod/./src/Cache/CacheInit.js","webpack://cookiemonster-mod/./src/Data/SettingsDefault.js","webpack://cookiemonster-mod/./src/Config/CheckNotificationPermissions.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleBotBar.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/RefreshScale.js","webpack://cookiemonster-mod/./src/Disp/TabTitle/FavIcon.js","webpack://cookiemonster-mod/./src/Data/SettingClasses/BaseSetting.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingColours.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingInputNumber.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingStandard.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingVolume.ts","webpack://cookiemonster-mod/./src/Data/SettingsData.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleDetailedTime.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleUpgradeBarAndColour.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleUpgradeBarFixedPos.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleGCTimer.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleSectionHideButtons.js","webpack://cookiemonster-mod/./src/InitSaveLoad/save.js","webpack://cookiemonster-mod/./src/Cache/Dragon/Dragon.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/GodChange.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitData.js","webpack://cookiemonster-mod/./src/InitSaveLoad/Variables.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Flash.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Sound.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Notification.js","webpack://cookiemonster-mod/./src/Main/LoopHook.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateAscendState.js","webpack://cookiemonster-mod/./src/Cache/CPS/NoGoldSwitchCPS.js","webpack://cookiemonster-mod/./src/Sim/Calculations/NoGoldenSwitchCalc.js","webpack://cookiemonster-mod/./src/Cache/PantheonGods/CacheGods.js","webpack://cookiemonster-mod/./src/Cache/CPS/SellChoEgg.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/SellBuildingForChoEgg.js","webpack://cookiemonster-mod/./src/Cache/CacheLoop.js","webpack://cookiemonster-mod/./src/Cache/CPS/CurrWrinklerCPS.js","webpack://cookiemonster-mod/./src/Main/CheckStates/GoldenCookie.js","webpack://cookiemonster-mod/./src/Disp/GoldenCookieTimers/GoldenCookieTimers.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Ticker.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Season.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Garden.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Grimoire.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Wrinkler.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateColours.js","webpack://cookiemonster-mod/./src/Config/SaveLoadReload/SaveLoadReloadSettings.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/PopWrinklers.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/Tooltip.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/TooltipGrimoire.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/NativeGrimoire.js","webpack://cookiemonster-mod/./src/Config/ToggleSetting.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateDOMElements.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/AddStatsPage.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateStatsSections.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/ResetAscension.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateMissingAchievements.js","webpack://cookiemonster-mod/./src/Data/Sectionheaders.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/CreateHeader.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/CreateOption.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleFavourites.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Prompt.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameFunctions/FixMouse.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameFunctions/ReplaceNative.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/PositionLocation.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/TooltipUpgrades.js","webpack://cookiemonster-mod/./src/Disp/Dragon/Dragon.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/AuraChange.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/AddMenus.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/SettingsPage.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Info/InfoPage.js","webpack://cookiemonster-mod/./src/Data/Moddata.js","webpack://cookiemonster-mod/./src/Disp/TabTitle/TabTitle.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/AscendButton.js","webpack://cookiemonster-mod/./src/Main/Initialization.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CssArea.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/UpgradeBar.js","webpack://cookiemonster-mod/./src/Disp/Initialization/FlashScreen.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CreateSectionHideButtons.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CreateWrinklerButton.js","webpack://cookiemonster-mod/./src/Disp/Initialization/UpdateBuildingUpgradeStyle.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/Tooltips.js","webpack://cookiemonster-mod/./src/Main/WrinklerArea/AddDetectArea.js","webpack://cookiemonster-mod/./src/CookieMonster.js","webpack://cookiemonster-mod/./src/InitSaveLoad/init.js","webpack://cookiemonster-mod/./src/InitSaveLoad/load.js"],"names":["global","factory","module","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","setBoxShadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","key","o","enumerable","CMOptions","ToggleWrinklerButtons","WrinklerButtons","Game","elderWrath","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","DispCSS","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","CycliusDateAtBeginLoop","Date","now","CenturyDateAtBeginLoop","ColourTextPre","ColourBackPre","ColourBlue","ColourGreen","ColourYellow","ColourOrange","ColourRed","ColourPurple","ColourGray","ColourPink","ColourBrown","ColoursOrdering","TooltipText","SimpleTooltipElements","CMLastAscendState","CMSayTime","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColours","Frenzy","Clot","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","FavouriteSettings","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColour","text","CacheAverageCookiesFromClicks","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","UpdateBuildings","buyMode","BuildColour","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgrades","UpBarColour","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColour","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColour","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","DrawBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","GetCPSBuffMult","buffs","multCpS","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColour","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColour","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","plantName","GardenPlots","totalGain","mortal","tile","immortal","matureBase","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CMDrawHook","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","shimmerTypes","golden","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColour","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMClickHook","addLatest","computedMouseCps","CMAvgQueue","maxLength","queue","newValue","timePeriod","reduce","CacheAvgCPS","currDate","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","CacheColour","PPRigidelMode","getSumPrice","PPExcludeTop","CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","startDate","lumps","rawCookiesPs","CpsAchievements","threshold","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","CacheBuildingIncome","result","tieredAchievs","achievUnlock","lastAchievementsOwned","BuyBuildingsBonusIncome","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","CacheWrinklers","InitCache","DetailedTime","UpgradeBarFixedPos","DragonAuraInfo","GrimoireBar","GCTimer","Favicon","HideSectionsButtons","TooltipAmor","TooltipAscendButton","MissingUpgrades","MissingAchievements","HeavenlyChipsTarget","ShowMissedGC","GeneralSound","GCNotification","GCFlash","ColourGCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","ColourFortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","ColourSeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","ColourGardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","ColourMagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","ColourWrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","ColourWrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","BulkBuyBlock","Header","Favourite","Calculation","Notation","Colours","BarsDisplay","Tooltip","Statistics","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateFavicon","wrath","href","Setting","group","SettingColours","desc","super","SettingInputNumber","label","SettingStandard","toggle","SettingVolume","insertBefore","UpBarColor","save","stringify","favouriteSettings","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","includes","replaceAll","cost","CalculateChangeGod","CurrentSlot","godsById","InitData","isInitializing","Flash","config","setTimeout","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoopHook","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","shimmers","spawnLead","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","TickerEffect","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","UpdateColours","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","Colors","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","section","luckyColour","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColourFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","chainColour","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColour","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColourFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColourFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","conjureColour","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColour","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","bakeberryColour","bakeberryFrag","chocorootColour","chocorootFrag","queenbeetColour","queenbeetFrag","duketaterColour","duketaterFrag","missingPlantDrops","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","centEgg","failRateHalloween","dropRateMult","obtainedCookiesChance","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","calcSum","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","achievs","values","parentElement","achievsCrate","AchievementsById","mouseDown","setOnCrate","tags","neuromancy","sesame","descFunc","tagsStr","CrateTooltipLockedAchievements","AddMissingAchievements","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","FavStar","ele","ToggleFavouriteSetting","FavouriteSettingPlaceholder","CreateFavouriteStar","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","content","promptWrapL","promptL","PlaySound","promptAnchorL","darkenL","focus","promptOn","UpdatePrompt","CookieMonsterPrompt","outerHTML","ClosePrompt","innerSpan","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","minHeight","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","index","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateFlashScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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AE,4BAA4BhJ,MAAM2U,QAAU,QCT3C,MAAMmI,EAAS,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhDC,EAAa,CACxB,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIWC,EAAwB,CACnC,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OC3IK,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,ECjBAC,EDFAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAalBC,EAAyBC,KAAKC,MAI9BC,EAAyBF,KAAKC,MCpBlC,MAAME,EAAgB,SAChBC,EAAgB,SAMhBC,EAAa,OACbC,EAAc,QACdC,EAAe,SACfC,EAAe,SACfC,EAAY,MACZC,EAAe,SACfC,EAAa,OACbC,EAAa,OACbC,EAAc,QACdC,EAAkB,CAC7BH,EACAN,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,GAUWE,EAAc,CACzB,CAAC,6BAA8B,oCAAqC,SACpE,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BACA,8BAEF,uDACA,GAEF1c,UAAW,IAAI0c,GACb,OACA,cACA,CACE,+BACA,8BACA,6CAEF,qGACA,GACA,WACEhmB,IAAY,KAKhBpD,MAAO,IAAIopB,GACT,OACA,WACA,CACE,uBACA,SACA,cACA,4BACA,sBACA,wBAEF,yCACA,GACA,WACEd,QAGJxoB,cAAe,IAAIspB,GACjB,OACA,WACA,CAAC,aAAc,aAAc,cAC7B,oIACA,GACA,WACEd,QAGJhoB,eAAgB,IAAI8oB,GAClB,OACA,WACA,CAAC,4BAA6B,mBAC9B,qDACA,GACA,WACEd,QAGJjoB,YAAa,IAAI6oB,GACf,WACA,WACA,2BACA,8KACA,EACA,WAEFjoB,WAAY,IAAImoB,GACd,OACA,WACA,CAAC,0BAA2B,uBAC5B,0BACA,GAEFtG,aAAc,IAAIsG,GAChB,OACA,WACA,CAAC,oBAAqB,oBACtB,mEACA,GACA,WC7H6B,IAA3BjuB,EAAU2nB,aAAoBxnB,KAAKmd,QAAUta,EAC5C7C,KAAKmd,QAAU1b,EAAgB0b,WDgIpCnK,cAAe,IAAI8a,GACjB,OACA,WACA,CAAC,yBAA0B,mBAC3B,sKACA,GAIFze,YAAa,IAAIye,GACf,OACA,UACA,CAAC,uBAAwB,uBACzB,yBACA,GACA,WACE3e,QAGJ4R,sBAAuB,IAAI+M,GACzB,OACA,UACA,CAAC,2BAA4B,sBAC7B,0KACA,GAEF3M,aAAc,IAAI2M,GAChB,OACA,UACA,CACE,mBACA,kBACA,0BACA,gCAEF,sGACA,GAEF7M,cAAe,IAAI6M,GACjB,OACA,UACA,CAAC,mBAAoB,mBACrB,sJACA,GAEFhN,oBAAqB,IAAI8M,GACvB,WACA,UACA,oCACA,wMACA,EACAnpB,KAEFzC,WAAY,IAAIyrB,GACd,SACA,UACA,6HAEFxrB,YAAa,IAAIwrB,GACf,SACA,UACA,yGAEFvrB,aAAc,IAAIurB,GAChB,SACA,UACA,qHAEFtrB,aAAc,IAAIsrB,GAChB,SACA,UACA,4HAEFrrB,UAAW,IAAIqrB,GACb,SACA,UACA,gHAEFprB,aAAc,IAAIorB,GAChB,SACA,UACA,8HAEFnrB,WAAY,IAAImrB,GACd,SACA,UACA,wGAEFlrB,WAAY,IAAIkrB,GACd,SACA,UACA,sDAEFjrB,YAAa,IAAIirB,GACf,SACA,UACA,yDAIF5a,OAAQ,IAAIib,GACV,OACA,cACA,CAAC,iBAAkB,iBACnB,wBACA,GACA,WACEf,QAGJtZ,SAAU,IAAIqa,GACZ,OACA,cACA,CAAC,gBAAiB,gBAClB,+FACA,GACA,WACEna,QAGJD,YAAa,IAAIoa,GACf,OACA,cACA,CAAC,gCAAiC,+BAClC,8BACA,GACA,W7DtN4B,IAA1BjuB,EAAU6T,aACZtnB,EAAE,cAAchJ,MAAMgG,MAAQ,MAC9BgD,EAAE,cAAchJ,MAAMwV,OAAS,GAC/BxM,EAAE,QAAQ6hC,aAAa7hC,EAAE,cAAeA,EAAE,kBAE1CA,EAAE,cAAchJ,MAAMgG,MAAQ,OAC9BgD,EAAE,cAAchJ,MAAMwV,OAAS,MAC/BxM,EAAE,WAAWiK,YAAYjK,EAAE,gBAE7BonB,Q6DiNAsK,gBAAiB,IAAIgQ,GACnB,OACA,cACA,CACE,wBACA,iCACA,0BAEF,+DACA,GAEFhe,YAAa,IAAIge,GACf,OACA,cACA,CACE,0BACA,8BACA,kCAEF,yDACA,GACA,WEzR2B,IAAzBjuB,EAAUquB,YAEZ9hC,EAAE,gBAAgBhJ,MAAM2U,QAAU,GAClC8X,MACkC,IAAzBhQ,EAAUquB,YAEnB9hC,EAAE,gBAAgBhJ,MAAM2U,QAAU,OAClC8X,OAGAzjB,EAAE,gBAAgBhJ,MAAM2U,QAAU,OAClCiI,KAAKmtB,sBFkRP1F,mBAAoB,IAAIqG,GACtB,OACA,cACA,CAAC,iCAAkC,iCACnC,+FACA,GACA,WGpSmC,IAAjCjuB,EAAU4nB,oBAEZr7B,EAAE,gBAAgBhJ,MAAM8H,SAAW,SACnCkB,EAAE,gBAAgBhJ,MAAMoC,IAAM,OAE9B4G,EAAE,gBAAgBhJ,MAAM8H,SAAW,MHmSrCskB,cAAe,IAAIse,GACjB,OACA,cACA,CACE,0BACA,oCACA,4CAEF,kEACA,GACA,WACE3e,QAGJyB,aAAc,IAAIkd,GAChB,OACA,cACA,CAAC,yBAA0B,qBAC3B,iEACA,GACA,WACEje,QAGJ6X,eAAgB,IAAIoG,GAClB,OACA,cACA,CAAC,6BAA8B,6BAC/B,kFACA,GAEFnG,YAAa,IAAImG,GACf,OACA,cACA,CAAC,iCAAkC,iCACnC,+DACA,GAEFlG,QAAS,IAAIkG,GACX,OACA,cACA,CAAC,0BAA2B,0BAC5B,yDACA,GACA,WIlVwB,IAAtBjuB,EAAU+nB,QACZjpC,OAAO6C,KAAKyiB,IAAUqL,SAASn0B,IAC7B8oB,GAAS9oB,GAAGiI,MAAM2U,QAAU,QAC5BkM,GAAS9oB,GAAGiI,MAAMmC,KAAOimB,GAAwBrwB,GAAGiR,EAAEhJ,MAAMmC,KAC5D0e,GAAS9oB,GAAGiI,MAAMoC,IAAMgmB,GAAwBrwB,GAAGiR,EAAEhJ,MAAMoC,OAI7D7G,OAAO6C,KAAKyiB,IAAUqL,SAASn0B,GAAO8oB,GAAS9oB,GAAGiI,MAAM2U,QAAU,YJ8UpE8vB,QAAS,IAAIiG,GACX,OACA,cACA,CAAC,cAAe,cAChB,2CACA,GACA,WACEV,QAGJrtB,gBAAiB,IAAI+tB,GACnB,OACA,cACA,CAAC,6BAA8B,6BAC/B,kEACA,GACA,WACEhuB,OAGJgoB,oBAAqB,IAAIgG,GACvB,OACA,cACA,CAAC,qCAAsC,qCACvC,+FACA,GACA,WKlXEjuB,EAAUioB,oBACZ17B,EAAE,uBAAuBhJ,MAAM2U,QAAU,GAEzC3L,EAAE,uBAAuBhJ,MAAM2U,QAAU,ULqX3CggB,oBAAqB,IAAI+V,GACvB,OACA,UACA,CACE,2CACA,2CAEF,kDACA,GAEF/F,YAAa,IAAI+F,GACf,OACA,UACA,CACE,iDACA,iDAEF,qDACA,GAEF5R,cAAe,IAAI4R,GACjB,OACA,UACA,CAAC,4BAA6B,4BAC9B,kGACA,GAEF3R,oBAAqB,IAAI2R,GACvB,OACA,UACA,CAAC,mCAAoC,mCACrC,2GACA,GAEFzR,gBAAiB,IAAIyR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,+GACA,GAEFvR,sBAAuB,IAAIuR,GACzB,OACA,UACA,CAAC,qCAAsC,qCACvC,kIACA,GAEFrR,gBAAiB,IAAIqR,GACnB,OACA,UACA,CAAC,8BAA+B,8BAChC,qJACA,GAEFjS,aAAc,IAAI+R,GAChB,WACA,UACA,mCACA,gKACA,EACAnpB,KAEFsX,YAAa,IAAI+R,GACf,OACA,UACA,CACE,+CACA,+CAEF,2EACA,GAEFnW,YAAa,IAAImW,GACf,OACA,UACA,CAAC,kCAAmC,qCACpC,kCACA,GACA,WACEpW,QAGJyB,YAAa,IAAI2U,GACf,OACA,UACA,CAAC,mCAAoC,mCACrC,6CACA,GAEF1P,aAAc,IAAI0P,GAChB,OACA,UACA,CAAC,uBAAwB,uBACzB,oEACA,GAEFnV,YAAa,IAAImV,GACf,OACA,UACA,CAAC,yBAA0B,yBAC3B,4DACA,GAEFjU,aAAc,IAAIiU,GAChB,OACA,UACA,CAAC,2BAA4B,2BAC7B,yDACA,GAEFnT,gBAAiB,IAAImT,GACnB,OACA,UACA,CAAC,uBAAwB,uBACzB,iDACA,GAEF9F,oBAAqB,IAAI8F,GACvB,OACA,UACA,CAAC,qCAAsC,qCACvC,+CACA,GAIF7Q,MAAO,IAAI6Q,GACT,OACA,aACA,CAAC,iBAAkB,iBACnB,oCACA,GAEF7F,gBAAiB,IAAI6F,GACnB,OACA,aACA,CAAC,uBAAwB,uBACzB,6CACA,GAEF5F,oBAAqB,IAAI4F,GACvB,OACA,aACA,CAAC,2BAA4B,kCAC7B,yDACA,GAEF9O,QAAS,IAAI8O,GACX,OACA,aACA,CAAC,mCAAoC,+BACrC,wCACA,GAEF3F,oBAAqB,IAAIyF,GACvB,WACA,aACA,0BACA,8GACA,EACAnpB,KAEF2jB,aAAc,IAAI0F,GAChB,OACA,aACA,CAAC,gBAAiB,gBAClB,4FACA,GAIF5pB,MAAO,IAAI4pB,GACT,OACA,sBACA,CAAC,YAAa,WAAY,8BAC1B,8LACA,GAEFzF,aAAc,IAAIyF,GAChB,OACA,sBACA,CAAC,mCAAoC,mCACrC,kLACA,GAEFxF,eAAgB,IAAIwF,GAClB,OACA,iBACA,CAAC,mBAAoB,mBACrB,mDACA,GACA,WACE,GAA6BjuB,EAAUyoB,mBAG3CC,QAAS,IAAIuF,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEFtF,cAAe,IAAIiF,GACjB,SACA,iBACA,wDAEFhF,QAAS,IAAIqF,GACX,OACA,iBACA,CAAC,YAAa,YACd,iCACA,GAEFpF,SAAU,IAAIsF,GAAc,MAAO,iBAAkB,GAAI,UACzDrF,WAAY,IAAImF,GACd,MACA,iBACA,aACA,6DAEFlF,oBAAqB,IAAIkF,GACvB,OACA,iBACA,CAAC,mBAAoB,mBACrB,8DACA,GACA,WACE,GAA6BjuB,EAAU+oB,wBAG3CC,aAAc,IAAIiF,GAChB,OACA,iBACA,CAAC,YAAa,YACd,wCACA,GAEFhF,mBAAoB,IAAI2E,GACtB,SACA,iBACA,6DAEF1E,aAAc,IAAI+E,GAChB,OACA,iBACA,CAAC,YAAa,YACd,wCACA,GAEF9E,cAAe,IAAIgF,GAAc,MAAO,iBAAkB,GAAI,UAC9D/E,gBAAiB,IAAI6E,GACnB,MACA,iBACA,aACA,sEAEF5E,gBAAiB,IAAI4E,GACnB,OACA,kBACA,CAAC,mBAAoB,mBACrB,yCACA,GACA,WACE,GAA6BjuB,EAAUqpB,oBAG3CC,SAAU,IAAI2E,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEF1E,eAAgB,IAAIqE,GAClB,SACA,kBACA,kEAEFpE,SAAU,IAAIyE,GACZ,OACA,kBACA,CAAC,YAAa,YACd,gCACA,GAEFxE,UAAW,IAAI0E,GAAc,MAAO,kBAAmB,GAAI,UAC3DzE,YAAa,IAAIuE,GACf,MACA,kBACA,aACA,6DAEFtE,UAAW,IAAIsE,GACb,OACA,mBACA,CAAC,wBAAyB,YAC1B,+BACA,GAEFrE,gBAAiB,IAAIgE,GACnB,SACA,mBACA,4DAEF/D,UAAW,IAAIoE,GACb,OACA,mBACA,CAAC,YAAa,YACd,+BACA,GAEFnE,WAAY,IAAIqE,GAAc,MAAO,mBAAoB,GAAI,UAC7DpE,aAAc,IAAIkE,GAChB,MACA,mBACA,yBACA,uDAEFjE,kBAAmB,IAAIiE,GACrB,OACA,mBACA,CAAC,mBAAoB,mBACrB,oDACA,GACA,WACE,GAA6BjuB,EAAUgqB,sBAG3CC,WAAY,IAAIgE,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEF/D,iBAAkB,IAAI0D,GACpB,SACA,mBACA,2DAEFzD,WAAY,IAAI8D,GACd,OACA,mBACA,CAAC,YAAa,YACd,2CACA,GAEF7D,YAAa,IAAI+D,GAAc,MAAO,mBAAoB,GAAI,UAC9D9D,cAAe,IAAI4D,GACjB,MACA,mBACA,aACA,2DAEF3D,qBAAsB,IAAI2D,GACxB,OACA,oBACA,CAAC,mBAAoB,mBACrB,iDACA,GACA,WACE,GAA6BjuB,EAAUsqB,yBAG3CC,cAAe,IAAI0D,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFzD,oBAAqB,IAAIoD,GACvB,SACA,oBACA,8DAEFnD,cAAe,IAAIwD,GACjB,OACA,oBACA,CAAC,YAAa,YACd,wCACA,GAEFvD,eAAgB,IAAIyD,GAAc,MAAO,oBAAqB,GAAI,UAClExD,iBAAkB,IAAIsD,GACpB,MACA,oBACA,aACA,yDAEFrD,wBAAyB,IAAIqD,GAC3B,OACA,uBACA,CAAC,mBAAoB,mBACrB,2EACA,GACA,WACE,GAA6BjuB,EAAU4qB,4BAG3CC,iBAAkB,IAAIoD,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEFnD,uBAAwB,IAAI8C,GAC1B,SACA,uBACA,sEAEF7C,iBAAkB,IAAIkD,GACpB,OACA,uBACA,CAAC,YAAa,YACd,kEACA,GAEFjD,kBAAmB,IAAImD,GACrB,MACA,uBACA,GACA,UAEFlD,oBAAqB,IAAIgD,GACvB,MACA,uBACA,aACA,mFAIF/C,aAAc,IAAI+C,GAChB,OACA,gBACA,CAAC,wBAAyB,wBAC1B,mIACA,GAEF3pB,kBAAmB,IAAI2pB,GACrB,OACA,gBACA,CACE,iCACA,gCACA,0CAEF,8MACA,GACA,WACE9tB,KAAKif,iBM3zBI,SAASkP,KACtB,OAAO3xC,KAAK4xC,UAAU,CACpBC,kBAAmBlqB,GACnBmqB,SAAUzuB,EACV0uB,QAAS,YCAE,SAASC,KACtB,GAAIpmB,KAAyBpI,KAAKyuB,aAAe3mB,GAAW,CAC1D,GACE9H,KAAKyuB,YAAc,IACnBzuB,KAAK0uB,aAAa1uB,KAAKyuB,aAAaE,IAAI/qC,WAAWgrC,SAAS,aAC5D,CACA,IAAIpuC,EAASwf,KAAK0uB,aAAa1uB,KAAKyuB,aAAaE,IAC9C/qC,WACA/H,MAAM,mBAAmB,GAC5B,MAAM4yB,EAASzO,KAAK0uB,aAAa1uB,KAAKyuB,aAAaE,IAChD/qC,WACA/H,MAAM,sBAAsB,GAC/B,GAAe,MAAX2E,EAEF,GADAA,EAASA,EAAOquC,WAAW,IAAK,IAC5B7uB,KAAKyN,QAAQjtB,GAAQiuB,OAASA,EAChCpG,GAAyB,mCACpB,CACL,IAAIymB,EAAO,EACX9Y,KACA,IAAK,IAAI76B,EAAI,EAAGA,EAAIszB,EAAQtzB,IAAK,CAC/B,IAAI4yB,EACF1B,GAAW7rB,GAAQ+tB,UACnBvO,KAAKgP,eACHtrB,KAAK2D,IACH,EACAglB,GAAW7rB,GAAQiuB,OAAS,EAAIpC,GAAW7rB,GAAQguB,MAEzDT,EAAQ/N,KAAKiP,oBAAoB5C,GAAW7rB,GAASutB,GACrDA,EAAQrqB,KAAKiL,KAAKof,GAClB+gB,GAAQ/gB,EACR1B,GAAW7rB,GAAQiuB,QAAU,EAE/BpG,GAAyB,kBAAkB,GAASymB,SAEjD,CACL,IAAIA,EAAO,EACX9Y,KACAr3B,OAAO6C,KAAKwe,KAAKyN,SAAS6B,SAASmB,IAEjC,GADAjwB,EAASiwB,EACLzQ,KAAKyN,QAAQjtB,GAAQiuB,OAASA,EAChCpG,GAAyB,mCAD3B,CAIA,IAAK,IAAIltB,EAAI,EAAGA,EAAIszB,EAAQtzB,IAAK,CAC/B,IAAI4yB,EACF1B,GAAW7rB,GAAQ+tB,UACnBvO,KAAKgP,eACHtrB,KAAK2D,IACH,EACAglB,GAAW7rB,GAAQiuB,OAAS,EAAIpC,GAAW7rB,GAAQguB,MAEzDT,EAAQ/N,KAAKiP,oBAAoB5C,GAAW7rB,GAASutB,GACrDA,EAAQrqB,KAAKiL,KAAKof,GAClB+gB,GAAQ/gB,EACR1B,GAAW7rB,GAAQiuB,QAAU,EAE/BpG,GAAyB,kBAAkB,GAASymB,UAI1D1mB,GAAuBpI,KAAKyuB,aCvDjB,SAASM,GAAmBrhB,EAAK6I,GAC9C,IAAKvW,KAAKyN,QAAQF,OAAOY,eAAgB,OAAO,EAChD6H,KACA,MAAM,SAAExI,GAAaxN,KAAKyN,QAAQF,OAC5ByhB,EAAcxhB,EAASyhB,SAASvhB,GAAK6I,KACvB,MAAhByY,EAAqBrnB,GAAU6F,EAAS+I,KAAKA,GACxB,MAAhByY,EAAqBpnB,GAAU4F,EAAS+I,KAAKA,GAC7B,MAAhByY,IAAqBnnB,GAAU2F,EAAS+I,KAAKA,IAEzC,IAATA,EAAY5O,GAAU+F,EACR,IAAT6I,EAAY3O,GAAU8F,EACb,IAAT6I,IAAY1O,GAAU6F,GAG/B,MAAMkX,EAAwBtd,GAO9B,OANAma,KAEAmC,KACIgB,IAA0Btd,IAC5Bma,KAEKzZ,GAAehI,KAAKqR,UC5Bd,SAAS6d,KAEtB7iB,GAAa,GACb1tB,OAAO6C,KAAKwe,KAAKyN,SAAS6B,SAASn0B,IACjCkxB,GAAWlxB,GAAK65B,GAAoB75B,MAItCmxB,GAAc,GACd3tB,OAAO6C,KAAKwe,KAAK4V,UAAUtG,SAASn0B,IAClCmxB,GAAYnxB,GAAKu6B,GAAYv6B,MAI/BoxB,GAAkB,GAClB5tB,OAAO6C,KAAKwe,KAAKiU,cAAc3E,SAASn0B,IACtCoxB,GAAgBpxB,GAAK44B,GAAgB54B,MAEvC66B,KC5BK,IAAImZ,IAAiB,ECUb,SAASC,GAAMngC,EAAMogC,EAAQ/qB,IAGhB,IAAtBzE,EAAUwvB,IAAiB/qB,IAClB,IAATrV,IACmB,IAAnBkgC,IACO,IAATlgC,GAEA7C,EAAE,iBAAiBhJ,MAAMkU,gBAAkBuI,EAAU,SAASwvB,KAC9DjjC,EAAE,iBAAiBhJ,MAAMmU,QAAU,MACtB,IAATtI,GACF7C,EAAE,iBAAiBhJ,MAAM2U,QAAU,SACnCu3B,YAAW,WACTF,GAAM,EAAGC,GAAQ,KAChB,IAAOrvB,KAAKsX,MAEfgY,YAAW,WACTF,GAAM,EAAGC,GAAQ,KAChB,IAAOrvB,KAAKsX,MAEC,IAATroB,GACT7C,EAAE,iBAAiBhJ,MAAMmU,QAAU,IACnC+3B,YAAW,WACTF,GAAM,EAAGC,GAAQ,KAChB,IAAOrvB,KAAKsX,MACG,IAATroB,IAAY7C,EAAE,iBAAiBhJ,MAAM2U,QAAU,QCzB7C,SAAS,GAAUw3B,EAAKC,EAAWC,EAAWnrB,GAE3D,IAA8B,IAAzBzE,EAAU2vB,IAAoBlrB,KAA8B,IAAnB6qB,GAA0B,CAEtE,MAAMO,EAAQ,IAAIC,MAAMJ,GACpB1vB,EAAUwoB,aACZqH,EAAME,OAAU/vB,EAAU4vB,GAAa,KAAQzvB,KAAK4vB,OAAS,KAC1DF,EAAME,OAAS/vB,EAAU4vB,GAAa,IAC3CC,EAAMG,QCPK,SAASC,GAAmBC,EAAcC,EAAOC,GAGhC,IAA5BpwB,EAAUkwB,IACmB,WAA7Bt2C,SAASy2C,kBACU,IAAnBf,IAIA,IAAI3D,aAAawE,EAAO,CAAEr2B,KAAMs2B,EAASE,MAFtB,yDCkBR,SAASC,KAKtB,GAJIrsB,KAAoB/D,KAAKqwB,WAC3BtsB,GAAkB/D,KAAKqwB,SC7BrBrwB,KAAKqwB,UACPjkC,EAAE,QAAQhJ,MAAMwV,OAAS,MACA,IAArBiH,EAAUgT,SAAczmB,EAAE,YAAYhJ,MAAM2U,QAAU,QAC/B,IAAvB8H,EAAU4T,WAAgBrnB,EAAE,cAAchJ,MAAM2U,QAAU,UAE9Dg1B,KACApZ,MAEFP,ODwBKpT,KAAKqwB,UAAiC,IAArBrwB,KAAKswB,YAAmB,CAExCjwB,IAAiB1hB,OAAO6C,KAAKwe,KAAKuwB,MAAMn1C,SAC1C8zC,KACA3H,KACAlnB,EAAe1hB,OAAO6C,KAAKwe,KAAKuwB,MAAMn1C,QAIpC0sB,KACFid,KE3CA/kB,KAAK2d,IAAI,wBCAb3H,KACA1J,GAAY,uBAAZ,OAA4C,EAC5CmV,KDDEzY,GCEKhB,IDDAgB,GAA6BhJ,KAAKqR,UF4CrC6V,KACAD,KACAT,KACAR,KACAwI,KIrDS,WACb,IAAK,IAAI9gB,EAAM,EAAGA,EAAM,GAAIA,GAAO,EACjC,IAAK,IAAI6I,EAAO,EAAGA,EAAO,EAAGA,GAAQ,EACnC7K,GAAUgC,GAAK6I,GAAQwY,GAAmBrhB,EAAK6I,GJmD/Cia,GAEAxJ,KKtDS,WACb,IAAIyJ,EAAY,EAEhB,GAAIzwB,KAAKyN,QAAQijB,KAAKviB,eAAgB,CACpC,MAAMwiB,EAAc3wB,KAAKyN,QAAQijB,KAAKljB,SAASojB,MAC/C,IAAIC,EAAW,EACflyC,OAAO6C,KAAKmvC,GAAarhB,SAASn0B,IAChC,MAAM21C,EAAaH,EAAYx1C,GAC/B01C,GAAYC,EAAWC,MAAQD,EAAWnzC,OAE5C8yC,GAAaI,EAAW7wB,KAAKgxB,oBAG/BP,GCPa,WACb,IAAIA,EAAY,EAEhBza,KAGA,IAAIib,EAAuB,EACL,IAAlBxpB,IAAyC,KAAlBA,KACzBwpB,GAAwB,GAEH,IAAnBvpB,IAA2C,KAAnBA,KAC1BupB,GAAwB,GAE1BxpB,GAAgB,EAChBC,GAAiB,GAGjB,IAAK,IAAIvsB,EAAI,EAAGA,EAAI81C,IAAwB91C,EAAG,CAC7C,IAAI+1C,EAAkB,SACtBvyC,OAAO6C,KAAK6qB,IAAYiD,SAASmB,IAC3BpE,GAAWoE,GAAGhC,OAAS,IACzByiB,EAAkBzgB,MAGtBpE,GAAW6kB,GAAiBziB,QAAU,EACtCtH,IAAqB,EAevB,OAXAxoB,OAAO6C,KAAK6qB,IAAYiD,SAASn0B,IAC/B,MAAMo1B,EAAKlE,GAAWlxB,GACtBs1C,GAAapiB,GACXrO,KAAKyN,QAAQ8C,EAAG7wB,MAChBsgB,KAAKyN,QAAQtyB,GAAGozB,UAChBgC,EAAG9B,OACHzO,KAAKyN,QAAQtyB,GAAGqzB,KAChB+B,EAAG9B,WAIAgiB,EDjCMU,GACb1lB,GAAqBglB,ELyCjBW,GAEAtpB,GAAY,GAId,MAAMupB,EAAerxB,KAAK+iB,SAAS,kBAAoB,GAClD7b,IAAqBmqB,GACxBnqB,IAAoB,EACpBD,GAA2B,GAClBC,KAAsBmqB,IAC/BnqB,IAAoB,EACpBD,GAA2B,GAGzBA,KACF6d,KACA7d,GAA2B,GOnElB,WAEbqgB,KAEA,KCNa,WACbxd,GAA2B,EAC3B,IAAIgJ,EAAQ,EACZn0B,OAAO6C,KAAKwe,KAAKuR,WAAWjC,SAASn0B,IACH,IAA5B6kB,KAAKuR,UAAUp2B,GAAGmjC,QAAaxL,GAAS,MAE9C,IAAIwe,EAAU,EACd,GAAIjlB,GAAWkB,OAAOY,eAAgB,CACpC,MAAMC,EAASpO,KAAKsN,OAAO,SACZ,IAAXc,EAAckjB,GAAW,KACT,IAAXljB,EAAckjB,GAAW,IACd,IAAXljB,IAAckjB,GAAW,MAEpCvnB,GAAyB+I,EACzBhJ,GACEgJ,GACS,IAARA,EAAe,MACuB,IAAtC9S,KAAK2d,IAAI,2BAAoC,IACjB,IAA5B3d,KAAK2d,IAAI,iBAA0B,GACpC2T,EDZFC,GACA3R,KACAsG,KAEA,MAAMsL,EACJxxB,KAAKyxB,oBACH/tC,KAAKgE,MAAMsY,KAAKomB,gBAAgBpmB,KAAKqmB,aAAermB,KAAK+f,gBACvD,IAEH/f,KAAK+f,cAAgB/f,KAAKqmB,cAC7Bhb,GAA4B9F,GAAWisB,EAAgBtgB,MPuDrDwgB,GS5DFvwB,EAA+B,EAC/BqK,GAA0B,GAC1B7sB,OAAO6C,KAAKwe,KAAK2xB,UAAUriB,SAASn0B,IAClCqwB,GAAwBxL,KAAK2xB,SAASx2C,GAAGyyB,IAAM5N,KAAK2xB,SAASx2C,GACzD6kB,KAAK2xB,SAASx2C,GAAGy2C,WAAuC,WAA1B5xB,KAAK2xB,SAASx2C,GAAGK,OACjD2vB,GAA4BnL,KAAK2xB,SAASx2C,GAC1CgmB,GAAgC,MAWpCxiB,OAAO6C,KAAKyiB,IAAUqL,SAASn0B,SACa,IAA/BqwB,GAAwBrwB,KACjC8oB,GAAS9oB,GAAGye,WAAW3b,YAAYgmB,GAAS9oB,WACrC8oB,GAAS9oB,OAGhB6lB,IAA0BhB,KAAKwd,aAAaC,OAAOr/B,GACrD4iB,EAAwBhB,KAAKwd,aAAaC,OAAOr/B,EAC7C4iB,IACEC,EAA+BE,IACjCiuB,GAAM,EAAG,WAAW,GACpB,GAAUvvB,EAAU8oB,WAAY,UAAW,YAAY,GACvDmH,GACE,iBACA,wBACA,+CAIJnxC,OAAO6C,KAAKwe,KAAK2xB,UAAUriB,SAASn0B,SACW,IAAlC8oB,GAASjE,KAAK2xB,SAASx2C,GAAGyyB,KCnD9B,SAAuBikB,GACpC,MAAMjK,EAAUnuC,SAAS4D,cAAc,OACvCuqC,EAAQha,GAAK,UAAUikB,EAAOjkB,KAC9Bga,EAAQxkC,MAAMgG,MAAQ,OACtBw+B,EAAQxkC,MAAMiG,OAAS,OACvBu+B,EAAQxkC,MAAM8H,SAAW,WACzB08B,EAAQxkC,MAAM+T,OAAS,cACvBywB,EAAQxkC,MAAM6V,UAAY,SAC1B2uB,EAAQxkC,MAAM+V,WAAa,OAC3ByuB,EAAQxkC,MAAM0uC,WAAa,2BAC3BlK,EAAQxkC,MAAMyuB,SAAW,OACzB+V,EAAQxkC,MAAMqU,OAAS,UACvBmwB,EAAQxkC,MAAM2U,QAAU,QACE,IAAtB8H,EAAU+nB,UAAeA,EAAQxkC,MAAM2U,QAAU,QACrD6vB,EAAQxkC,MAAMmC,KAAOssC,EAAOzlC,EAAEhJ,MAAMmC,KACpCqiC,EAAQxkC,MAAMoC,IAAMqsC,EAAOzlC,EAAEhJ,MAAMoC,IACnCoiC,EAAQmK,QAAU,WAChBF,EAAOG,OAETpK,EAAQqK,YAAc,WACpBJ,EAAOzlC,EAAEhJ,MAAM8uC,OACb,gEACFL,EAAOzlC,EAAEhJ,MAAM+uC,aACb,iEAEJvK,EAAQwK,WAAa,WACnBP,EAAOzlC,EAAEhJ,MAAM8uC,OAAS,GACxBL,EAAOzlC,EAAEhJ,MAAM+uC,aAAe,IAGhCluB,GAAS4tB,EAAOjkB,IAAMga,EACtBx7B,EAAE,YAAYiK,YAAYuxB,GDqBlByK,CAAcryB,KAAK2xB,SAASx2C,QAIlCiyC,KACAnsB,EAA+BE,EACM,IAAjCA,IAAoCgK,GAA4B,IACrC,IAAtBtL,EAAU+nB,SAAiB5mB,GACpCriB,OAAO6C,KAAKyiB,IAAUqL,SAASn0B,IAC7B8oB,GAAS9oB,GAAGiI,MAAMmU,QAAUiU,GAAwBrwB,GAAGiR,EAAEhJ,MAAMmU,QAC/D0M,GAAS9oB,GAAGiI,MAAMkvC,UAChB9mB,GAAwBrwB,GAAGiR,EAAEhJ,MAAMkvC,UACrCruB,GAAS9oB,GAAGqD,YAAckF,KAAKiL,KAC7B6c,GAAwBrwB,GAAGo3C,KAAOvyB,KAAKsX,QE9D3CxW,KACCd,KAAKwyB,cAA2C,YAA3BxyB,KAAKwyB,aAAah3C,QAExCslB,EACEd,KAAKwyB,cAA2C,YAA3BxyB,KAAKwyB,aAAah3C,KACrCslB,IACFsuB,GAAM,EAAG,gBAAgB,GACzB,GACEvvB,EAAUopB,gBACV,eACA,iBACA,GAEF6G,GACE,sBACA,uBACA,kDChBFjvB,IAAyBb,KAAKwd,aAAaQ,SAASN,UACtD7c,EAAuBb,KAAKwd,aAAaQ,SAASN,QAClD/+B,OAAO6C,KAAKwe,KAAK2xB,UAAUriB,SAASn0B,IAC9B6kB,KAAK2xB,SAASx2C,GAAGy2C,WAAuC,aAA1B5xB,KAAK2xB,SAASx2C,GAAGK,OACjD4vB,GAAwBpL,KAAK2xB,SAASx2C,OAG1Ci0C,GAAM,EAAG,YAAY,GACrB,GAAUvvB,EAAU0pB,YAAa,WAAY,aAAa,GAC1DuG,GACE,kBACA,oBACA,0CCdF9vB,KAAKyN,QAAQmM,KAAKzL,gBAClBpN,IAAuBf,KAAKyN,QAAQmM,KAAKpM,SAASilB,WAEvB,IAAvB1xB,GAA4BA,EAAqBY,KAAKC,QACxDwtB,GAAM,EAAG,aAAa,GACtB,GAAUvvB,EAAU+pB,aAAc,YAAa,cAAc,IAE/D7oB,EAAqBf,KAAKyN,QAAQmM,KAAKpM,SAASilB,UCPrC,WACb,GACEzyB,KAAKyN,QAAQ,gBAAgBU,gBACH,IAA1BtO,EAAU8nB,YACV,CACA,MAAM,SAAEna,GAAaxN,KAAKyN,QAAQ,gBAC9BD,EAAS6J,MAAQ7J,EAAS4L,OAAQlY,GAAmB,EAC/CA,IACRA,GAAmB,EACnBkuB,GAAM,EAAG,cAAc,GACvB,GAAUvvB,EAAUqqB,cAAe,aAAc,eAAe,GAChE4F,GACE,oBACA,mBACA,6CdkEJ4C,GehFW,WACb,GAAI1yB,KAAKC,WAAa,EAAG,CACvB,IAAI0yB,EAAmB,EACvBh0C,OAAO6C,KAAKwe,KAAKuR,WAAWjC,SAASn0B,IACH,IAA5B6kB,KAAKuR,UAAUp2B,GAAGmjC,QAAaqU,GAAoB,MAErDA,EAAmBvxB,GACrBA,EAAoBuxB,EAElBA,IAAqB3yB,KAAK4yB,mBAC1B/yB,EAAU6qB,iBAEV0E,GAAM,EAAG,oBAAoB,GAE7BA,GAAM,EAAG,iBAAiB,GAG1BuD,IAAqB3yB,KAAK4yB,mBAC1B/yB,EAAU+qB,iBAEV,GACE/qB,EAAUirB,oBACV,mBACA,qBACA,GAGF,GACEjrB,EAAU2qB,iBACV,gBACA,kBACA,GAIFmI,IAAqB3yB,KAAK4yB,mBAC1B/yB,EAAU4qB,wBAEVqF,GACE,0BACA,4BACA,sDAGFA,GACE,uBACA,sBACA,gCAIJ1uB,EAAoBuxB,Gf8BtBE,IgB9EW,SAASC,KACtB,IAAIv2C,EAAM,GACV,IAAK,IAAIpB,EAAI,EAAGA,EAAIsnB,EAAgBrnB,OAAQD,IAC1CoB,GAAO,UAAoBkmB,EAAgBtnB,eACzC0kB,EAAU,SAAS4C,EAAgBtnB,aAGvC,IAAK,IAAIA,EAAI,EAAGA,EAAIsnB,EAAgBrnB,OAAQD,IAC1CoB,GAAO,UAAoBkmB,EAAgBtnB,0BACzC0kB,EAAU,SAAS4C,EAAgBtnB,aAGvC,IAAK,IAAIA,EAAI,EAAGA,EAAIsnB,EAAgBrnB,OAAQD,IAC1CoB,GAAO,YAAsBkmB,EAAgBtnB,0BAC3C0kB,EAAU,SAAS4C,EAAgBtnB,aAGvCiR,EAAE,SAAS5N,YAAcjC,EACzB4yB,KChBK,SAAS4jB,KACd,MAAMC,EAAaC,YACjBC,SAASC,aAAaC,QAAQ,sBAAsBpxC,MAAM,SAAS,IAE/DqxC,EAAoBL,EAAWn3C,MAAM,wBAC3C,GAA0B,OAAtBw3C,EAA4B,CAC9B,MAAMC,EAAgBN,EAAWjxC,QAC/BsxC,EAAkB,GAClB,iBAAiBlF,QAEnBgF,aAAaI,QACX,oBACA5U,OAAO,GAAG6U,YAAYF,aASrB,SAASG,GAAWnF,GAKzB,QAHqC,IAA1B6E,aAAaO,iBACfP,aAAaO,cAELn4C,IAAb+yC,EAAwB,CAC1BzuB,EAAYyuB,OAEoB,IAArBzuB,EAAU8zB,eACZ9zB,EAAU8zB,YAEc,IAAtB9zB,EAAUurB,gBACZvrB,EAAUurB,QAInB,IAAIwI,GAAM,EACVj1C,OAAO6C,KAAK,IAAe8tB,SAASn0B,SACN,IAAjB0kB,EAAU1kB,IACnBy4C,GAAM,EACN/zB,EAAU1kB,GAAK,GAAcA,IACd,WAANA,GACTwD,OAAO6C,KAAK,WAAsB8tB,SAASmB,SAEZ,IAApB5Q,EAAU1kB,GAAGs1B,IAClB5Q,EAAU1kB,GAAGs1B,IAAM,GAAK5Q,EAAU1kB,GAAGs1B,GAAK,IAE5CmjB,GAAM,EACN/zB,EAAU1kB,GAAGs1B,GAAK,GAAct1B,GAAGs1B,UAKvCmjB,GAAKb,KACT3C,KACAzxC,OAAO6C,KAAK,IAAe8tB,SAASn0B,IACxB,WAANA,QAAgD,IAAvB,GAAWA,GAAG+E,MACzC,GAAW/E,GAAG+E,eAKlBuzC,GAAW,IAEbzzB,KAAKif,aACL6T,KC7Ea,SAASe,KACtBl1C,OAAO6C,KAAKwe,KAAKuR,WAAWjC,SAASn0B,IAC/B6kB,KAAKuR,UAAUp2B,GAAG0jC,OAAS,GAAgC,IAA3B7e,KAAKuR,UAAUp2B,GAAGK,OACpDwkB,KAAKuR,UAAUp2B,GAAG24C,GAAK,MCoCtB,SAASC,GAAcv4C,EAAMkE,GAClC,GAAa,MAATlE,EAAc,CAIhB,GAFA4Q,EAAE,WAAW6L,UAAY+H,KAAKyN,QAAQ/tB,GAAMk3B,UAEd,IAA1B/W,EAAUkoB,YAAmB,CAC/B,MAAMiM,EAAazS,GACjBvhB,KAAKyN,QAAQ/tB,GACbsgB,KAAKyN,QAAQ/tB,GAAM6uB,UACnB,EACAvO,KAAKyN,QAAQ/tB,GAAM8uB,KACnBxO,KAAKyN,QAAQ/tB,GAAM+uB,QAEfwlB,EAAiBD,EAAah0B,KAAKyN,QAAQ/tB,GAAM42B,aACnD2d,EAAiB,IACnB7nC,EAAE,WAAW6L,UAAY7L,EAAE,WACxB6L,UAAUjW,MAAM,gBAChB6C,KACC,wBAAwB,GAASovC,UACA,IAA/BvwC,KAAKgE,MAAMusC,GAAwB,SAAW,+BAE9CruB,IACGouB,EAAah0B,KAAKyN,QAAQ/tB,GAAM42B,eAC9BtW,KAAKyN,QAAQ/tB,GAAMw0C,eAAiBl0B,KAAKm0B,gBAC5CtuB,iBAKU,IAAlB7F,KAAKoP,UASPhjB,EAAE,WAAW6L,UAAY7L,EAAE,WACxB6L,UAAUjW,MAAM,GAASge,KAAKyN,QAAQ/tB,GAAMwzB,YAC5CruB,KACC,IACGmb,KAAKyN,QAAQ/tB,GACdsgB,KAAKyN,QAAQ/tB,GAAM6uB,UACnBvO,KAAKyN,QAAQ/tB,GAAM+uB,OACnBzO,KAAKyN,QAAQ/tB,GAAM8uB,KACnBxO,KAAK+O,QACL,WAIH,GAAa,MAATvzB,EAAc,CAEvB,IAAKwkB,KAAKsQ,gBAAgB5wB,GAAO,MAAO,GACxC0M,EAAE,WAAW6L,UAAY+H,KAAKo0B,aAC5Bp0B,KAAKsQ,gBAAgB5wB,GACrB,aAEgB,MAATlE,EAAc4Q,EAAE,WAAW6L,UAAY+H,KAAKq0B,cAErC,MAAT74C,EACP4Q,EAAE,WAAW6L,UAAY+H,KAAKyN,QAAQ,gBAAgBD,SAAS8mB,aAC7D50C,EADuBsgB,GAIT,MAATxkB,EACP4Q,EAAE,WAAW6L,UAAY+H,KAAKkkB,YAAY,GAAG1W,SAAS+mB,YACpD70C,EAAK,GACLA,EAAK,GAFkBsgB,GAKT,OAATxkB,EACP4Q,EAAE,WAAW6L,UAAY+H,KAAKkkB,YAAY,GAAG1W,SAASgnB,YAAY,EAAzCx0B,GACT,OAATxkB,EAAe4Q,EAAE,WAAW6L,UAAY,GAC/B,QAATzc,EACP4Q,EAAE,WAAW6L,UAAY+H,KAAKyN,QAAQF,OAAOC,SAASinB,WAAW/0C,EAAxCsgB,GACT,QAATxkB,IACP4Q,EAAE,WAAW6L,UAAY+H,KAAKyN,QAAQF,OAAOC,SAASknB,YACpDh1C,EAAK,GADkBsgB,IAK3B,GACY,MAATxkB,GAAiC,IAAjBwkB,KAAKoP,SACb,MAAT5zB,GACS,MAATA,GACS,MAATA,GACU,MAATA,IAAiBwkB,KAAKxe,KAAK,KACnB,OAAThG,GACS,OAATA,GACS,QAATA,GACU,QAATA,IAA+B,IAAbkE,EAAK,GACxB,CACA,MAAMi1C,EAAOl7C,SAAS4D,cAAc,OACpCs3C,EAAK/mB,GAAK,gBACVxhB,EAAE,WAAWiK,YAAYs+B,GAS3B,OALA/wB,GAAcpoB,EACdqoB,GAAcnkB,EAEdk4B,KAEOxrB,EAAE,WAAW6L,UC7IP,SAAS28B,KAClB50B,KAAKyN,QAAQ,gBAAgBU,gBAC/BxvB,OAAO6C,KAAKwe,KAAKyN,QAAQ,gBAAgBD,SAAS0L,YAAY5J,SAC3Dn0B,IAC4C,OAAvCiR,EAAE,gBAAgBjR,KAAK82C,cACzB1wB,EAAsBpmB,GAAKiR,EAAE,gBAAgBjR,KAAK82C,YAClD7lC,EAAE,gBAAgBjR,KAAK82C,YAAc,WACnCjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,IAAK,GAAG54C,OAE/B,QAEF6kB,KAAK4W,QAAQke,cCLzB,SAASC,KACP,IACGp0B,GACDX,KAAKyN,QAAQ,gBAAgBU,eAC7B,CACA,MAAM,SAAEX,GAAaxN,KAAKyN,QAAQ,gBAClChN,EAAqB+M,EAAShb,KAC9BwN,KAAKyN,QAAQ,gBAAgBD,SAAShb,KAAO,WAC3CiO,IAC8B,IAA1BZ,EAAU8nB,aAAqBna,EAAS6J,MAAQ7J,EAAS4L,SAC3D5L,EAASwnB,cAAc/8B,WAAa,KAAKsN,GACvC0R,GACEzJ,EAAS6J,MACT7J,EAAS4L,OACT5L,EAAS4L,cAKjBzY,GAA+B,GAkCpB,SAASs0B,MA3BxB,WACE,IACGv0B,GACDV,KAAKyN,QAAQ,gBAAgBU,eAC7B,CACA,MAAM,SAAEX,GAAaxN,KAAKyN,QAAQ,gBAClClN,EAAuBiN,EAAS0nB,OAChC10B,EAA0B,IAAI5jB,SAC5B,UAAU4wB,EAAS0nB,OAChBtxC,WACA5B,MAAM,SACN6C,KAAK,8CAEVmb,KAAKyN,QAAQ,gBAAgBD,SAAS0nB,OAAS,WAC7C10B,IACAo0B,KACAj0B,GAA+B,EAC/Bo0B,KAEAr0B,GAAiC,IASrCy0B,GACAJ,K,yBChEK,MAAM,GAAe,WA8BrB,SAASK,GAAmB/F,GACJ,OAAzBjjC,EAAE,SAASijC,OACbjjC,EAAE,SAASijC,UAAep3B,UAAY,GAAG7L,EAAE,SAASijC,KAAU9wC,SAC9DshB,EAAUwvB,GAAU3rC,KAAKC,MAAMyI,EAAE,SAASijC,KAAU9wC,QAEtDw0C,KAQK,SAASsC,GAAahG,GAC3BxvB,EAAUmrB,OAAOqE,IAAW,EACxBxvB,EAAUmrB,OAAOqE,GAAU,IAAGxvB,EAAUmrB,OAAOqE,GAAU,GAC7D0D,KCxCK,SAASuC,GAAYzvB,EAAMwpB,GAChC,MAAM1e,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAI/0B,UAAY,QAChB+0B,EAAIvtB,MAAMqK,QAAU,WACpBkjB,EAAIvtB,MAAMmU,QAAU,MACpBoZ,EAAIvtB,MAAMyuB,SAAW,OACrBlB,EAAIvtB,MAAM0uC,WAAa,2BACvBnhB,EAAIta,YAAY5c,SAAS2f,eAAe,GAAGyM,OAC3C,MAAM0vB,EAAO97C,SAAS4D,cAAc,QAiBpC,OAhBAk4C,EAAKnyC,MAAMqU,OAAS,UACpB89B,EAAKnyC,MAAM2U,QAAU,eACrBw9B,EAAKnyC,MAAMiG,OAAS,OACpBksC,EAAKnyC,MAAMgG,MAAQ,OACnBmsC,EAAKnyC,MAAM4T,aAAe,MAC1Bu+B,EAAKnyC,MAAM6V,UAAY,SACvBs8B,EAAKnyC,MAAMkU,gBAAkB,UAC7Bi+B,EAAKnyC,MAAMyF,MAAQ,QACnB0sC,EAAKnyC,MAAMyuB,SAAW,OACtB0jB,EAAKnyC,MAAM2uB,cAAgB,SAC3BwjB,EAAK/2C,YAAcqhB,EAAUmrB,OAAOqE,GAAU,IAAM,IACpDkG,EAAKxD,QAAU,WACbsD,GAAahG,GACbrvB,KAAKif,cAEPtO,EAAIta,YAAYk/B,GACT5kB,EAYF,SAAS6kB,GAAah6C,EAAMkE,EAAMmmB,EAAM2Y,GAC7C,MAAM7N,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAI/0B,UAAY,UAEhB,MAAM65C,EAAch8C,SAAS4D,cAAc,KAG3C,GAFAo4C,EAAYj3C,YAAckB,EAC1BixB,EAAIta,YAAYo/B,GACH,gBAATj6C,EAAwB,CAC1Bm1B,EAAI/0B,UAAY,UAChB+0B,EAAIta,YAAY5c,SAAS2f,eAAe,MAExC,MAAMwd,EAAUn9B,SAAS4D,cAAc,QACvCu5B,EAAQwb,WAAa,WACnBpyB,KAAK4W,QAAQ5kB,QAEf4kB,EAAQqb,YAAc,WACpBjyB,KAAK4W,QAAQpkB,KACX3Y,KACA8kC,OAAOhc,EAAsB6b,GAAavmB,aAG9C2e,EAAQxzB,MAAMqU,OAAS,UACvBmf,EAAQxzB,MAAM2U,QAAU,eACxB6e,EAAQxzB,MAAMiG,OAAS,OACvButB,EAAQxzB,MAAMgG,MAAQ,OACtBwtB,EAAQxzB,MAAM4T,aAAe,MAC7B4f,EAAQxzB,MAAM6V,UAAY,SAC1B2d,EAAQxzB,MAAMkU,gBAAkB,UAChCsf,EAAQxzB,MAAMyF,MAAQ,QACtB+tB,EAAQxzB,MAAMyuB,SAAW,MACzB+E,EAAQxzB,MAAM2uB,cAAgB,SAC9B6E,EAAQp4B,YAAc,IACtBmyB,EAAIta,YAAYugB,GAIlB,OAFAjG,EAAIta,YAAY5c,SAAS2f,eAAe,OACxCuX,EAAIta,YAAYwP,GACT8K,EAQF,SAAS+kB,GAAcC,GAC5B,MAAMC,EAAOn8C,SAASo8C,yBACtBD,EAAKv/B,YAAY5c,SAAS2f,eAAe,GAAGu8B,EAAYv6C,YACxD,MAAMm6C,EAAO97C,SAAS4D,cAAc,QACpCk4C,EAAKnD,WAAa,WAChBpyB,KAAK4W,QAAQ5kB,QAEf,MAAMwsB,EAAc/kC,SAAS4D,cAAc,OACrCy4C,EAAUr8C,SAAS4D,cAAc,OACvCy4C,EAAQ1yC,MAAMs7B,SAAW,QACzBoX,EAAQ1yC,MAAM0zB,aAAe,MAC7B,MAAMkZ,EAAQv2C,SAAS4D,cAAc,OA4BrC,OA3BA2yC,EAAMp0C,UAAY,OAClBo0C,EAAM5sC,MAAM0zB,aAAe,MAC3BkZ,EAAM5sC,MAAM6V,UAAY,SACxB+2B,EAAMxxC,YAAc,UACpBs3C,EAAQz/B,YAAY25B,GACpBrxC,OAAO6C,KAAKm0C,GAAarmB,SAASn0B,IAChC,MAAMw1B,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAIvtB,MAAM6V,UAAY,SACtB0X,EAAIta,YAAY5c,SAAS2f,eAAeu8B,EAAYx6C,KACpD26C,EAAQz/B,YAAYsa,MAEtB6N,EAAYnoB,YAAYy/B,GACxBP,EAAKtD,YAAc,WACjBjyB,KAAK4W,QAAQpkB,KAAK3Y,KAAM8kC,OAAOH,EAAYvmB,aAE7Cs9B,EAAKnyC,MAAMqU,OAAS,UACpB89B,EAAKnyC,MAAM2U,QAAU,eACrBw9B,EAAKnyC,MAAMiG,OAAS,OACpBksC,EAAKnyC,MAAMgG,MAAQ,OACnBmsC,EAAKnyC,MAAM4T,aAAe,MAC1Bu+B,EAAKnyC,MAAM6V,UAAY,SACvBs8B,EAAKnyC,MAAMkU,gBAAkB,UAC7Bi+B,EAAKnyC,MAAMyF,MAAQ,QACnB0sC,EAAKnyC,MAAMyuB,SAAW,MACtB0jB,EAAKnyC,MAAM2uB,cAAgB,SAC3BwjB,EAAK/2C,YAAc,IACnBo3C,EAAKv/B,YAAYk/B,GACVK,EC3GM,SAASG,GAAa/F,GACnC,MAAMgG,EAAQv8C,SAAS4D,cAAc,OAiCrC,GAhCA24C,EAAMp6C,UAAY,aAClBo6C,EAAM3/B,YAAY25B,GAElBgG,EAAM3/B,YAAY,GAA2B,gBAAiB,UAC1DwJ,EAAUmrB,OAAOkB,OACnB8J,EAAM3/B,YCqBH,WAEL,MAAM4/B,EAAkBj2B,KAAK+iB,SAAS,oBAClC,2CACA,6BAEEmT,EAAUz8C,SAAS4D,cAAc,OACvC64C,EAAQt6C,UAAY,sBAEpB,MAAMu6C,EACJn2B,KAAKmT,QAAU3B,KAAuBlJ,GAAalG,EAAYH,EAC3Dm0B,EACJp2B,KAAKmT,QAAU3B,KAAuBlJ,GAClC/C,IACG+C,IAActI,KAAKmT,QAAU3B,OAAyBN,MAEzD,GACAmlB,EAAe58C,SAASo8C,yBACxBS,EAAe78C,SAAS4D,cAAc,QAK5C,GAJAi5C,EAAalzC,MAAMszB,WAAa,OAChC4f,EAAa16C,UAAYkmB,EAAgBq0B,EACzCG,EAAa93C,YAAc,GAAS8pB,IACpC+tB,EAAahgC,YAAYigC,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgB98C,SAAS4D,cAAc,SAC7Ck5C,EAAc/3C,YAAc,KAAK43C,KACjCC,EAAahgC,YAAYkgC,GAE3BL,EAAQ7/B,YACNm/B,GACE,cACA,4BACAa,EACAJ,IAIJ,MAAMO,EACJx2B,KAAKmT,QAAU3B,KAAuB/I,GAClCrG,EACAH,EACAw0B,EACJz2B,KAAKmT,QAAU3B,KAAuB/I,GAClClD,IACGkD,IAAoBzI,KAAKmT,QAAU3B,OAAyBN,MAE/D,GACAwlB,EAAmBj9C,SAASo8C,yBAC5Bc,EAAmBl9C,SAAS4D,cAAc,QAKhD,GAJAs5C,EAAiBvzC,MAAMszB,WAAa,OACpCigB,EAAiB/6C,UAAYkmB,EAAgB00B,EAC7CG,EAAiBn4C,YAAc,GAASiqB,IACxCiuB,EAAiBrgC,YAAYsgC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBn9C,SAAS4D,cAAc,SACjDu5C,EAAkBp4C,YAAc,KAAKi4C,KACrCC,EAAiBrgC,YAAYugC,GAE/BV,EAAQ7/B,YACNm/B,GACE,cACA,qCACAkB,EACAT,IAIJ,MAAMY,EAAatuB,KAAqBC,GAElCsuB,EAAqBr9C,SAAS4D,cAAc,QAClDy5C,EAAmB1zC,MAAMszB,WAAa,OACtCogB,EAAmBl7C,UAAYkmB,EAAgByG,GAC/CuuB,EAAmBt4C,YACjB,GAAS+pB,KACRsuB,EAAa,MAAM,GAASruB,MAA2B,IAC1D0tB,EAAQ7/B,YACNm/B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DC,EACAb,IAIJ,MAAMc,EAA2Bt9C,SAAS4D,cAAc,QACxD05C,EAAyB3zC,MAAMszB,WAAa,OAC5CqgB,EAAyBn7C,UAAYkmB,EAAgBi1B,EACrDA,EAAyBv4C,YACvB,GAASkqB,KACRmuB,EAAa,MAAM,GAASluB,MAAiC,IAChEutB,EAAQ7/B,YACNm/B,GACE,cACA,kCAAiCqB,EAAa,oBAAsB,IACpEE,EACAd,IAIJ,MAAMe,EACJtzC,KAAKyD,IACqC,KAAvC6Y,KAAKmT,QAAU3B,MAChBxI,GAA6BC,GAAoC,GAAK,IACpE,GACAguB,EAAex9C,SAAS4D,cAAc,QAc5C,OAbA45C,EAAa7zC,MAAMszB,WAAa,OAChCugB,EAAar7C,UAAYkmB,EAAgBm1B,EACzCA,EAAaz4C,YACX,GAAS0qB,GAAyB8tB,IACjCH,EAAa,MAAM,GAAS1tB,GAAwB6tB,KAAkB,IACzEd,EAAQ7/B,YACNm/B,GACE,cACA,yBAAwBqB,EAAa,oBAAsB,IAC3DI,EACAhB,IAGGC,ED3Ia,IAGpBF,EAAM3/B,YAAY,GAA2B,gBAAiB,UAC1DwJ,EAAUmrB,OAAOmB,OACnB6J,EAAM3/B,YC6IH,WAEL,MAAM4/B,EAAkBj2B,KAAK+iB,SAAS,oBAClC,2CACA,6BAEEmT,EAAUz8C,SAAS4D,cAAc,OACvC64C,EAAQt6C,UAAY,sBAEpB,MAAMs7C,EACJl3B,KAAKmT,QAAU3B,KAAuBnH,GAClCjI,EACAH,EACAk1B,EACJn3B,KAAKmT,QAAU3B,KAAuBnH,GAClC9E,IACG8E,IAAsBrK,KAAKmT,QAAU3B,OACpCN,MAEJ,GACAkmB,EAAe39C,SAASo8C,yBACxBwB,EAAe59C,SAAS4D,cAAc,QAK5C,GAJAg6C,EAAaj0C,MAAMszB,WAAa,OAChC2gB,EAAaz7C,UAAYkmB,EAAgBo1B,EACzCG,EAAa74C,YAAc,GAAS6rB,IACpC+sB,EAAa/gC,YAAYghC,GACP,KAAdF,EAAkB,CACpB,MAAMG,EAAgB79C,SAAS4D,cAAc,SAC7Ci6C,EAAc94C,YAAc,KAAK24C,KACjCC,EAAa/gC,YAAYihC,GAE3BpB,EAAQ7/B,YACNm/B,GACE,cACA,2BACA4B,EACAnB,IAIJ,MAAMsB,EACJv3B,KAAKmT,QAAU3B,KAAuBhH,GAClCpI,EACAH,EACAu1B,EACJx3B,KAAKmT,QAAU3B,KAAuBhH,GAClCjF,IACGiF,IAA2BxK,KAAKmT,QAAU3B,OACzCN,MAEJ,GACAumB,EAAoBh+C,SAASo8C,yBAC7B6B,EAAoBj+C,SAAS4D,cAAc,QAKjD,GAJAq6C,EAAkBt0C,MAAMszB,WAAa,OACrCghB,EAAkB97C,UAAYkmB,EAAgBy1B,EAC9CG,EAAkBl5C,YAAc,GAASgsB,IACzCitB,EAAkBphC,YAAYqhC,GACP,KAAnBF,EAAuB,CACzB,MAAMG,EAAqBl+C,SAAS4D,cAAc,SAClDs6C,EAAmBn5C,YAAc,KAAKg5C,KACtCC,EAAkBphC,YAAYshC,GAEhCzB,EAAQ7/B,YACNm/B,GACE,cACA,mCACAiC,EACAxB,IAIJ,MAAM2B,EACJ53B,KAAKmT,QAAU3B,KAAuB7G,GAClCvI,EACAH,EACA41B,EACJ73B,KAAKmT,QAAU3B,KAAuB7G,GAClCpF,IACGoF,IAA4B3K,KAAKmT,QAAU3B,OAC1CN,MAEJ,GACA4mB,EAAmBr+C,SAASo8C,yBAC5BkC,EAAmBt+C,SAAS4D,cAAc,QAKhD,GAJA06C,EAAiB30C,MAAMszB,WAAa,OACpCqhB,EAAiBn8C,UAAYkmB,EAAgB81B,EAC7CG,EAAiBv5C,YAAc,GAASmsB,IACxCmtB,EAAiBzhC,YAAY0hC,GACL,KAApBF,EAAwB,CAC1B,MAAMG,EAAoBv+C,SAAS4D,cAAc,SACjD26C,EAAkBx5C,YAAc,KAAKq5C,KACrCC,EAAiBzhC,YAAY2hC,GAE/B9B,EAAQ7/B,YACNm/B,GACE,cACA,oCACAsC,EACA7B,IAIJ,MAAMgC,EACJj4B,KAAKmT,QAAU3B,KAAuB1G,GAClC1I,EACAH,EACAi2B,EACJl4B,KAAKmT,QAAU3B,KAAuB1G,GAClCvF,IACGuF,IACE9K,KAAKmT,QAAU3B,OAChBN,MAEJ,GACAinB,EAAwB1+C,SAASo8C,yBACjCuC,EAAwB3+C,SAAS4D,cAAc,QAKrD,GAJA+6C,EAAsBh1C,MAAMszB,WAAa,OACzC0hB,EAAsBx8C,UAAYkmB,EAAgBm2B,EAClDG,EAAsB55C,YAAc,GAASssB,IAC7CqtB,EAAsB9hC,YAAY+hC,GACL,KAAzBF,EAA6B,CAC/B,MAAMG,EAAyB5+C,SAAS4D,cAAc,SACtDg7C,EAAuB75C,YAAc,KAAK05C,KAC1CC,EAAsB9hC,YAAYgiC,GAEpCnC,EAAQ7/B,YACNm/B,GACE,cACA,4CACA2C,EACAlC,IAIJC,EAAQ7/B,YACNm/B,GACE,cACA,wCACA/7C,SAAS2f,eACP,GAAG,GAASmR,GAAoB,SAAS,GACvCG,GAAyB,OAG7BurB,IAIJC,EAAQ7/B,YACNm/B,GACE,cACA,iDACA/7C,SAAS2f,eACP,GAAG,GAASyR,GAA0B,SAAS,GAC7CA,GAA0B,OAG9BorB,IAIJ,MAAMqC,EAAc50C,KAAKyD,IACN,GAAjB6Y,KAAKqR,UAAiB,GAAK,EAAIpI,GAChB,GAAfjJ,KAAKmT,SAEDolB,EAAW/S,GACf,EACA8S,EACApvB,IACA,GACIsvB,EAAgBhT,GACpB,EACA8S,EACAnvB,IACA,GAoCF,OAnCA+sB,EAAQ7/B,YACNm/B,GACE,cACA,wCACA/7C,SAAS2f,eACP,GAAG,GAASm/B,QAAe,GAASC,MAEtCvC,IAIJC,EAAQ7/B,YACNm/B,GACE,cACA,oCACA/7C,SAAS2f,eACP,GAAG,GAASkR,SAA6B,GACvCG,OAGJ,8BAGJyrB,EAAQ7/B,YACNm/B,GACE,cACA,6CACA/7C,SAAS2f,eACP,GAAG,GAASwR,SAAmC,GAC7CG,OAGJ,8BAGGmrB,ED9Va,IAGhBl2B,KAAKyN,QAAQ,gBAAgBU,iBAC/B6nB,EAAM3/B,YAAY,GAA2B,SAAU,WACnDwJ,EAAUmrB,OAAOoB,QACnB4J,EAAM3/B,YC+VL,WACL,MAAM6/B,EAAUz8C,SAAS4D,cAAc,OACvC64C,EAAQt6C,UAAY,uBAEpB,MAAM68C,EACJz4B,KAAKmT,QAAU3B,KAAuB5I,GAClCxG,EACAH,EACAy2B,EACJ14B,KAAKmT,QAAU3B,KAAuB5I,GAClCrD,IACGqD,IAAgB5I,KAAKmT,QAAU3B,OAAyBN,MAE3D,GAEAynB,EAAiBl/C,SAASo8C,yBAC1B+C,EAAiBn/C,SAAS4D,cAAc,QAK9C,GAJAu7C,EAAex1C,MAAMszB,WAAa,OAClCkiB,EAAeh9C,UAAYkmB,EAAgB22B,EAC3CG,EAAep6C,YAAc,GAASoqB,IACtC+vB,EAAetiC,YAAYuiC,GACP,KAAhBF,EAAoB,CACtB,MAAMG,EAAkBp/C,SAAS4D,cAAc,SAC/Cw7C,EAAgBr6C,YAAc,KAAKk6C,KACnCC,EAAetiC,YAAYwiC,GAE7B3C,EAAQ7/B,YACNm/B,GACE,cACA,yCACAmD,EACA,+BAGJzC,EAAQ7/B,YACNm/B,GACE,cACA,qCACA/7C,SAAS2f,eAAe,GAASyP,KACjC,+BAIJ,MAAMiwB,EACJ94B,KAAKmT,QAAU3B,KAAsC,EAAf5I,GAClCxG,EACAH,EACA82B,EAAmBr1C,KAAKyD,IACY,KAAvC6Y,KAAKmT,QAAU3B,MACa,GAA7BxI,GAAkC,IAE9BgwB,EACJh5B,KAAKmT,QAAU3B,KAAsC,EAAf5I,GAClCrD,IACkB,EAAfqD,IAAoB5I,KAAKmT,QAAU3B,OAAyBN,MAE/D,GAEA+nB,EAAuBx/C,SAASo8C,yBAChCqD,EAAuBz/C,SAAS4D,cAAc,QAKpD,GAJA67C,EAAqB91C,MAAMszB,WAAa,OACxCwiB,EAAqBt9C,UAAYkmB,EAAgBg3B,EACjDI,EAAqB16C,YAAc,GAAwB,EAAfoqB,IAC5CqwB,EAAqB5iC,YAAY6iC,GACP,KAAtBF,EAA0B,CAC5B,MAAMG,EAAwB1/C,SAAS4D,cAAc,SACrD87C,EAAsB36C,YAAc,KAAKw6C,KACzCC,EAAqB5iC,YAAY8iC,GAsCnC,OApCAjD,EAAQ7/B,YACNm/B,GACE,cACA,kDACAyD,EACA,+BAGJ/C,EAAQ7/B,YACNm/B,GACE,cACA,8CACA/7C,SAAS2f,eAAe,GAA8B,EAArByP,KACjC,+BAGJqtB,EAAQ7/B,YACNm/B,GACE,cACA,qCACA/7C,SAAS2f,eAAe,GAAS2/B,IACjC,+BAGAjwB,IACFotB,EAAQ7/B,YACNm/B,GACE,cACA,mEACA/7C,SAAS2f,eACP,GAAG,GAAS0P,QAAkBC,OAEhC,+BAICmtB,EDxce,KAIlBl2B,KAAKyN,QAAQmM,KAAKzL,iBACpB6nB,EAAM3/B,YAAY,GAA2B,SAAU,WACnDwJ,EAAUmrB,OAAOqB,QACnB2J,EAAM3/B,YCwcL,WACL,MAAM6/B,EAAUz8C,SAAS4D,cAAc,OACvC64C,EAAQt6C,UAAY,uBAEpB,MAAMw9C,EACJp5B,KAAKmT,QAA2B,GAAjBnT,KAAKqR,UAAiB,GAAK,IAAMjP,EAAYH,EACxDo3B,EAAgB5/C,SAAS4D,cAAc,QAC7Cg8C,EAAcj2C,MAAMszB,WAAa,OACjC2iB,EAAcz9C,UAAYkmB,EAAgBs3B,EAC1CC,EAAc76C,YAAc,GAA0B,GAAjBwhB,KAAKqR,UAAiB,GAAK,KAChE6kB,EAAQ7/B,YACNm/B,GACE,QACA,iDACA6D,IAIJ,MAAMC,EACJt5B,KAAKmT,QAA2B,GAAjBnT,KAAKqR,UAAiB,IAAMjP,EAAYH,EACnDs3B,EAAgB9/C,SAAS4D,cAAc,QAC7Ck8C,EAAcn2C,MAAMszB,WAAa,OACjC6iB,EAAc39C,UAAYkmB,EAAgBw3B,EAC1CC,EAAc/6C,YAAc,GAA0B,GAAjBwhB,KAAKqR,UAAiB,KAC3D6kB,EAAQ7/B,YACNm/B,GACE,QACA,iDACA+D,IAIJ,MAAMC,EACJx5B,KAAKmT,QAA2B,GAAjBnT,KAAKqR,UAAiB,GAAK,GAAKjP,EAAYH,EACvDw3B,EAAgBhgD,SAAS4D,cAAc,QAC7Co8C,EAAcr2C,MAAMszB,WAAa,OACjC+iB,EAAc79C,UAAYkmB,EAAgB03B,EAC1CC,EAAcj7C,YAAc,GAA0B,GAAjBwhB,KAAKqR,UAAiB,GAAK,IAChE6kB,EAAQ7/B,YACNm/B,GACE,QACA,iDACAiE,IAIJ,MAAMC,EACJ15B,KAAKmT,QAA2B,GAAjBnT,KAAKqR,UAAiB,GAAK,IAAMjP,EAAYH,EACxD03B,EAAgBlgD,SAAS4D,cAAc,QAC7Cs8C,EAAcv2C,MAAMszB,WAAa,OACjCijB,EAAc/9C,UAAYkmB,EAAgB43B,EAC1CC,EAAcn7C,YAAc,GAA0B,GAAjBwhB,KAAKqR,UAAiB,GAAK,KAChE6kB,EAAQ7/B,YACNm/B,GACE,QACA,iDACAmE,IAGJ,MAAMC,EAAoB,GAe1B,OAdAj7C,OAAO6C,KAAK,IAAqB8tB,SAASn0B,IACnC6kB,KAAK2gB,YAAY,GAAoBxlC,KACxCy+C,EAAkB38C,KAAK,GAAoB9B,OAGd,IAA7By+C,EAAkBx+C,QACpB86C,EAAQ7/B,YACNm/B,GACE,QACA,kCACAE,GAAckE,KAIb1D,EDlhBe,KAItBF,EAAM3/B,YAAY,GAA2B,WAAY,aACrDwJ,EAAUmrB,OAAOsB,UACnB0J,EAAM3/B,YCmhBH,WACL,MAAM6/B,EAAUz8C,SAAS4D,cAAc,OACvC64C,EAAQt6C,UAAY,yBAEpB,MAAMi+C,EAAkBn2C,KAAKgE,MAC3BsY,KAAKomB,gBACHnb,GACEjL,KAAKqmB,aACL1c,IACC3J,KAAK2gB,YAAY,mBAAqB3gB,KAAK2d,IAAI,iBAC5CpU,GACA,KAGV2sB,EAAQ7/B,YACNm/B,GACE,cACA,6BACA/7C,SAAS2f,eACP,GAAG,GAAS4G,KAAKqW,eAAe,GAASwjB,MAE3C,+BAIJ,MAAMC,EAAap2C,KAAK2D,IACtB,EACA2Y,KAAKyxB,oBAAoBoI,EAAkB,IACxC5uB,GACCjL,KAAKqmB,aACL1c,IAEE3J,KAAK2gB,YAAY,mBAAqB3gB,KAAK2d,IAAI,kBAC3CpU,GAGFA,GACA,KAEJwwB,EAAkBtgD,SAASo8C,yBACjCkE,EAAgB1jC,YAAY5c,SAAS2f,eAAe,GAAS0gC,KAC7D,MAAME,EAAmBvgD,SAAS4D,cAAc,SAChD28C,EAAiBx7C,YAAc,KAAK+mB,GAClCu0B,EAAa5uB,GACb,MAEF6uB,EAAgB1jC,YAAY2jC,GAC5B9D,EAAQ7/B,YACNm/B,GACE,cACA,wBACAuE,EACA,gCAIJ7D,EAAQ7/B,YACNm/B,GACE,cACA,6BACA/7C,SAAS2f,eACP,GAAG,GAAS4G,KAAKi6B,oBAAoB,GACnCJ,EAAkB75B,KAAKqW,SAAWrW,KAAKi6B,kBAG3C,oCAIJ/D,EAAQ7/B,YACNm/B,GACE,QACA,6CACA/7C,SAAS2f,eAAe,GAASgQ,GAAkB,MAIvD,MAAM8wB,EAAWt1B,OAAO/E,EAAUsoB,qBAClC,IAAKvjB,OAAO7I,MAAMm+B,GAAW,CAC3B,MAAMC,EACJD,EACAx2C,KAAKgE,MAAMsY,KAAKomB,gBAAgBpmB,KAAKqmB,aAAermB,KAAK+f,gBACvDoa,EAAoB,IACtBjE,EAAQ7/B,YACNm/B,GACE,QACA,iDACA/7C,SAAS2f,eAAe,GAAS+gC,MAGrCjE,EAAQ7/B,YACNm/B,GACE,QACA,mDACA/7C,SAAS2f,eACPmM,GAAW40B,EAAoB/wB,QAOzC,MAAMgxB,EChqBO,SAAoBC,GAEjC,IAAIC,EAASt6B,KAAKqR,UAElB2E,KAE2C,IAAvC1J,GAAY,gBAAZ,SACFA,GAAY,wBAAZ,OAA6C,EAC7CA,GAAY,yBAAZ,OAA8C,EAC9CA,GAAY,mBAAZ,OAAwC,EACxCA,GAAY,0BAAZ,OAA+C,EAC/CA,GAAY,gBAAZ,OAAqC,EAErCmV,KAEA6Y,EAAStyB,GAETgO,MAGE/K,IAA0B,KAASuW,GAAO,aAC1CvW,IAA0B,KAAYuW,GAAO,YAC7CvW,IAA0B,MAAeuW,GAAO,gBAChDvW,IAA0B,MAAkBuW,GAAO,YACnDvW,IAA0B,MAAqBuW,GAAO,iBACtDvW,IAA0B,MAC5BuW,GAAO,kBACLvW,IAA0B,MAC5BuW,GAAO,iBACLvW,IAA0B,MAC5BuW,GAAO,cACLvW,IAA0B,MAC5BuW,GAAO,iBACLvW,IAA0B,MAC5BuW,GAAO,uBACLvW,IAA0B,MAC5BuW,GAAO,mBACLvW,IAA0B,MAC5BuW,GAAO,uBACLvW,IAA0B,MAC5BuW,GAAO,wBACLvW,IAA0B,MAC5BuW,GAAO,mBAEPvW,IAA0B,MAE1BuW,GAAO,WAEPvW,IACA,MAEAuW,GAAO,iBAEPvW,IACA,MAEAuW,GAAO,iCAETlV,GAAY,wBAAZ,OAA6C,EAC7CA,GAAY,yBAAZ,OAA8C,EAC9CA,GAAY,mBAAZ,OAAwC,EACxCA,GAAY,0BAAZ,OAA+C,EAC/CA,GAAY,gBAAZ,OAAqC,EAErC9E,GAAc6yB,EAEd,MAAMzV,EAAwBtd,GAE9Bma,KAEAmC,KAEIgB,IAA0Btd,IAC5Bma,KAGF,MAAM8Y,EAAWvyB,GAAesyB,EAKhC,OAFA9yB,GAAcxH,KAAKqW,SAEZkkB,ED+kBYC,CAAWX,GACxBY,EAAYhhD,SAASo8C,yBAC3B4E,EAAUpkC,YAAY5c,SAAS2f,eAAe,GAASghC,KACvD,MAAMpiB,EAAWt0B,KAAKC,MAAOy2C,EAAap6B,KAAKqR,UAAa,KAC5D,GAAIzM,OAAOC,SAASmT,IAA0B,IAAbA,EAAgB,CAC/C,MAAM0iB,EAAajhD,SAAS4D,cAAc,SAC1Cq9C,EAAWl8C,YAAc,KAAKw5B,EAAW,kBACzCyiB,EAAUpkC,YAAYqkC,GAExBxE,EAAQ7/B,YACNm/B,GACE,cACA,qBACAiF,EACA,4BAIJ,MAAME,EAAkBj3C,KAAKgE,MAAMsY,KAAKomB,gBAAgBpmB,KAAKqmB,eACvDuU,EAAWl3C,KAAKgE,MACpBsY,KAAKomB,gBAAgBpmB,KAAKqmB,aAAermB,KAAK+f,gBAE1C8a,EAAUD,EAAWD,EAC3B,IAAK36B,KAAK2d,IAAI,eAAgB,CAC5B,IAAImd,EAAS,EAAKF,EAAW,GACzBE,EAAS,IAAGA,GAAU,IAC1B,MAAMC,EAAaF,EAAUC,EACvBE,EAAaJ,EAAWE,EACxBG,EAAQxhD,SAASo8C,yBACvBoF,EAAM5kC,YACJ5c,SAAS2f,eACP,GAAG4hC,EAAW/1B,sBAAsB81B,EAAW91B,sBAAsB61B,OAGzE5E,EAAQ7/B,YACNm/B,GAAa,QAAS,qCAAsCyF,IAIhE,IAAKj7B,KAAK2d,IAAI,gBAAiB,CAC7B,IAAIud,EAAW,IAAON,EAAW,IAC7BM,EAAW,IAAGA,GAAY,KAC9B,MAAMC,EAAeN,EAAUK,EACzBE,EAAeR,EAAWM,EAC1BG,EAAU5hD,SAASo8C,yBACzBwF,EAAQhlC,YACN5c,SAAS2f,eACP,GAAGgiC,EAAan2B,sBAAsBk2B,EAAal2B,sBAAsBi2B,OAG7EhF,EAAQ7/B,YACNm/B,GAAa,QAAS,sCAAuC6F,IAIjE,IAAKr7B,KAAK2d,IAAI,gBAAiB,CAC7B,IAAI2d,EAAc,OAAUV,EAAW,IACnCU,EAAc,IAAGA,GAAe,KACpC,MAAMC,EAAkBV,EAAUS,EAC5BE,EAAkBZ,EAAWU,EAC7BG,EAAahiD,SAASo8C,yBAC5B4F,EAAWplC,YACT5c,SAAS2f,eACP,GAAGoiC,EAAgBv2B,sBAAsBs2B,EAAgBt2B,sBAAsBq2B,OAGnFpF,EAAQ7/B,YACNm/B,GAAa,QAAS,sCAAuCiG,IAIjE,OAAOvF,EDhsBa,IAGhBl2B,KAAKsR,UAAY,IACnB0kB,EAAM3/B,YAAY,GAA2B,YAAa,UACtDwJ,EAAUmrB,OAAOuB,OAAO,CAC1B,MAAMmP,EAAajiD,SAASo8C,yBAC5B6F,EAAWrlC,YACT5c,SAAS2f,eACP,GAAG,GAASuQ,SAA0B,GACpCC,SAIN,MAAM+xB,EAAUliD,SAAS4D,cAAc,KACvCs+C,EAAQn9C,YAAc,iBACtBm9C,EAAQ//C,UAAY,SACpB+/C,EAAQ5J,QAAU,WAChB8B,MAEF6H,EAAWrlC,YAAYslC,GACvB3F,EAAM3/B,YACJ,GACE,QACA,kCACAqlC,IAGJ,MAAME,EAAiBniD,SAASo8C,yBAChC+F,EAAevlC,YACb5c,SAAS2f,eAAe,GAAG,GAASyQ,GAAsB,SAE5D,MAAMgyB,EAAcpiD,SAAS4D,cAAc,KAC3Cw+C,EAAYr9C,YAAc,qBAC1Bq9C,EAAYjgD,UAAY,SACxBigD,EAAY9J,QAAU,WACa,OAA7BloB,GAAsB,KACxB7J,KAAKuR,UAAU1H,GAAsB,IAAIiqB,GAAK,IAElD8H,EAAevlC,YAAYwlC,GAC3B7F,EAAM3/B,YACJ,GACE,QACA,6DAC+B,OAA7BwT,GAAsB,GAClBA,GAAsB,GACtB,UAEN+xB,IASR,GAHA5F,EAAM3/B,YCipBD,WACL,MAAM6/B,EAAUz8C,SAAS4D,cAAc,OACvC64C,EAAQt6C,UAAY,uBAEpB,IAAIkgD,GAAW,EACf,MAAMC,EAA0B,GAChCp9C,OAAO6C,KAAK,IAAuB8tB,SAASn0B,IACrC6kB,KAAK2d,IAAI,GAAsBxiC,MAClC4gD,EAAwB9+C,KAAK,GAAsB9B,IACnD2gD,GAAW,MAGf,MAAME,EAA0B,GAChCr9C,OAAO6C,KAAK,IAAwB8tB,SAASn0B,IACtC6kB,KAAK2d,IAAI,GAAuBxiC,MACnC6gD,EAAwB/+C,KAAK,GAAuB9B,IACpD2gD,GAAW,MAGf,MAAMG,EAA0B,GAChCt9C,OAAO6C,KAAK,IAAqB8tB,SAASn0B,IACnC6kB,KAAK2d,IAAI,GAAoBxiC,MAChC8gD,EAAwBh/C,KAAK,GAAoB9B,IACjD2gD,GAAW,MAGf,MAAMI,EAAoB,GAC1Bv9C,OAAO6C,KAAKwe,KAAKm8B,UAAU7sB,SAASn0B,IAC7B6kB,KAAK2gB,YAAY3gB,KAAKm8B,SAAShhD,MAClC+gD,EAAkBj/C,KAAK+iB,KAAKm8B,SAAShhD,IACrC2gD,GAAW,MAGf,MAAMM,EAAkB,GACxBz9C,OAAO6C,KAAKwe,KAAKq8B,cAAc/sB,SAASn0B,IACjC6kB,KAAK2gB,YAAY3gB,KAAKq8B,aAAalhD,MACtCihD,EAAgBn/C,KAAK+iB,KAAKq8B,aAAalhD,IACvC2gD,GAAW,MAGf,MAAMpb,EACJ1gB,KAAK2gB,YAAY,mBAAqB3gB,KAAK2d,IAAI,iBAC3C2e,EAAUt8B,KAAK2d,IAAI,eAEzB,IAAoB,cAAhB3d,KAAK+d,QAA0B+d,GAAYpb,GAAU4b,KACvDpG,EAAQ7/B,YAAYi/B,GAAY,kBAAmB,QAC/Cz1B,EAAUmrB,OAAOwB,KAAK,CACxB,GAAuC,IAAnCuP,EAAwB3gD,OAAc,CACxC86C,EAAQ7/B,YACNm/B,GACE,QACA,gCACAE,GAAcqG,KAGlB,IAAIQ,EAAoB,IAIxB,GAHIv8B,KAAKkY,UAAU,oBAAmBqkB,EAAoB,IACtDv8B,KAAK2d,IAAI,gBAAe4e,GAAqB,IACjDA,GAAqB,EAAIv8B,KAAKw8B,eAC1Bx8B,KAAKsN,OAAQ,CACf,MAAMc,EAASpO,KAAKsN,OAAO,WACZ,IAAXc,EAAcmuB,GAAqB,GACnB,IAAXnuB,EAAcmuB,GAAqB,IACxB,IAAXnuB,IAAcmuB,GAAqB,KAE9C,MAAME,EAAwBV,EAAwB3gD,OAAS,EAC/D86C,EAAQ7/B,YACNm/B,GACE,QACA,4DACA/7C,SAAS2f,eACP,GAAG,IACA,EAAImjC,GAAqBE,EAAwB,WAC5C,IACL,EAAwB,GAApBF,GAA2BE,EAAwB,WAMlE,GAAuC,IAAnCT,EAAwB5gD,OAAc,CACxC86C,EAAQ7/B,YACNm/B,GACE,QACA,gCACAE,GAAcsG,KAGlB,IAAIU,EAAoB,GAIxB,GAHI18B,KAAKkY,UAAU,iBAAgBwkB,EAAoB,IACvDA,GAAqB,EAAI18B,KAAKw8B,eAC1Bx8B,KAAK2d,IAAI,cAAa+e,GAAqB,KAC3C18B,KAAKsN,OAAQ,CACf,MAAMc,EAASpO,KAAKsN,OAAO,WACZ,IAAXc,EAAcsuB,GAAqB,GACnB,IAAXtuB,EAAcsuB,GAAqB,IACxB,IAAXtuB,IAAcsuB,GAAqB,KAE9C,MAAMD,EAAwBT,EAAwB5gD,OAAS,EAC/D86C,EAAQ7/B,YACNm/B,GACE,QACA,6CACA/7C,SAAS2f,eACP,GAAG,IACA,EAAIsjC,GAAqBD,EAAwB,WAMrB,IAAnCR,EAAwB7gD,QAC1B86C,EAAQ7/B,YACNm/B,GACE,QACA,gCACAE,GAAcuG,KAIpB,MAAMU,EAAc,SAAUC,GAC5B,IAAIC,EAAcD,GAAoB,EAAI58B,KAAKw8B,gBAI/C,GAHIx8B,KAAKkY,UAAU,0BAAyB2kB,GAAe,IACvD78B,KAAK2d,IAAI,cAAakf,GAAe,IACrC78B,KAAK2d,IAAI,eAAckf,GAAe,IACtC78B,KAAKsN,OAAQ,CACf,MAAMc,EAASpO,KAAKsN,OAAO,WACZ,IAAXc,EAAcyuB,GAAe,GACb,IAAXzuB,EAAcyuB,GAAe,IAClB,IAAXzuB,IAAcyuB,GAAe,KAGxC,MAAMC,EAAgB,EAAID,EACpBE,EAAe/8B,KAAKm8B,SAAS/gD,OAAS8gD,EAAkB9gD,OACxD4hD,EACJh9B,KAAKq8B,aAAajhD,OAASghD,EAAgBhhD,OACvC6hD,EACY,GAAhBH,GAAuB,EAAIC,EAAe/8B,KAAKm8B,SAAS/gD,QACpD8hD,EAEJ,GADAJ,GAEC,EAAIE,EAAmBh9B,KAAKq8B,aAAajhD,QAKtC+hD,EAHY,GAAhBL,GAAuBC,EAAe/8B,KAAKm8B,SAAS/gD,QAEpC,GAAhB0hD,GAAuBE,EAAmBh9B,KAAKq8B,aAAajhD,QAM9D,MAAO,CAAC6hD,EAHI,GAAVE,GAAiB,EAAIJ,EAAe/8B,KAAKm8B,SAAS/gD,QAGvB8hD,EADjB,GAAVC,GAAiB,EAAIH,EAAmBh9B,KAAKq8B,aAAajhD,UAG7B,IAA7B8gD,EAAkB9gD,SACpB86C,EAAQ7/B,YACNm/B,GACE,QACA,oCACAE,GAAcwG,KAGlBhG,EAAQ7/B,YACNm/B,GACE,QACA,yDACA/7C,SAAS2f,eACP,GAAG,GAAgC,IAAvBujC,EAAY,KAAM,UAAgB,GACtB,IAAtBA,EAAY,IAAK,WAMI,IAA3BP,EAAgBhhD,SAClB86C,EAAQ7/B,YACNm/B,GACE,QACA,kCACAE,GAAc0G,KAGlBlG,EAAQ7/B,YACNm/B,GACE,QACA,6DACA/7C,SAAS2f,eACP,GAAG,GAAgC,IAAvBujC,EAAY,KAAM,UAAgB,GACtB,IAAtBA,EAAY,IAAK,WAOP,cAAhB38B,KAAK+d,QACPmY,EAAQ7/B,YACNm/B,GACE,QACA,kBACA/7C,SAAS2f,eAAe,GAASkQ,OAGnCoX,GACFwV,EAAQ7/B,YACNm/B,GACE,cACA,wBACA/7C,SAAS2f,eAAe,GAASmQ,KACjC,6BAIF+yB,GACFpG,EAAQ7/B,YACNm/B,GACE,QACA,yBACA/7C,SAAS2f,eACJ1V,KAAKC,MAA2B,KAApB0lB,GAAe,IAAc,IAA5C,OAOZ,OAAO6sB,EDl3BW,IAElBF,EAAM3/B,YAAY,GAA2B,gBAAiB,SAC1DwJ,EAAUmrB,OAAOyB,KAAM,CAqCzB,GApCAuJ,EAAM3/B,YACJ,GACE,QACA,oCACE+M,EAAYvD,EAAU2gB,YAAc,GAChC,GAAGpd,EAAYvD,EAAU2gB,sBACzBpd,EAAYvD,EAAU2gB,YAAc,IACV,IAAzB3gB,EAAU2gB,WAAmB,UAAY,eAEhD/mC,SAAS2f,eAAe,GAAS8X,KAAU,MAG/C8kB,EAAM3/B,YACJ,GACE,QACA,0CACEgN,EAAWxD,EAAU+gB,iBACQ,IAA5B/gB,EAAU+gB,cAAsB,UAAY,cAC/CnnC,SAAS2f,eAAe,GAAS6Q,GAAoB,MAGzD+rB,EAAM3/B,YACJ,GACE,QACA,+BAA+BgN,EAAWxD,EAAU+gB,iBACtB,IAA5B/gB,EAAU+gB,cAAsB,UAAY,cAE9CnnC,SAAS2f,eACP,GACE0M,GAA8Bs3B,QAC5BnzB,GAAqB5G,EAAWxD,EAAU+gB,oBAMhD5gB,KAAK2d,IAAI,mBAAoB,CAC/B,MAAM4G,EAAW,GACjB5lC,OAAO6C,KAAK,IAAmB8tB,SAASn0B,IACjC6kB,KAAK2d,IAAI,GAAkBxiC,KAC9BopC,EAAStnC,KAAK,GAAkB9B,OAGZ,IAApBopC,EAASnpC,QACX46C,EAAM3/B,YACJ,GACE,QACA,+BACA,GAA6BkuB,KAarC,GATI1kB,EAAUuoB,cACZ4N,EAAM3/B,YACJ,GACE,QACA,wBACA5c,SAAS2f,eAAe,GAAS4G,KAAKq9B,uBAIxCr9B,KAAK6c,MAAMC,SAAU,CACvB,MAAM3K,EAAQ14B,SAAS4D,cAAc,QACrC80B,EAAMvE,GAAK,uBACXuE,EAAM+K,UAAYld,KAAKmd,QACV,GAAXnd,KAAKsX,KAAYtX,KAAKqwB,SAAW,EAAIrwB,KAAKod,GAAgB,GAAXpd,KAAKsX,MACpD,GAEF0e,EAAM3/B,YACJ,GAA4B,QAAS,qBAAsB8b,KAKjE/lB,EAAE,QAAQ6hC,aAAa+H,EAAO5pC,EAAE,QAAQskB,WAAW,IAE/C7Q,EAAUooB,iBrDnLd77B,EAAE,QAAQskB,WAAWpB,SAASguB,IAC5B,GAAIA,EAAY5gB,SAAS,GACvB,GACwC,aAAtC4gB,EAAY5gB,SAAS,GAAGzkB,WACxBkS,GACA,CACA,MAAMozB,EACJpzB,GAA6BtuB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAC1DG,OAAS,EACR40C,EAAQv2C,SAAS4D,cAAc,OACrC2yC,EAAMpiB,GAAK,iCACXoiB,EAAMp0C,UAAY,UAClB,MAAM4hD,EAAY/jD,SAAS4D,cAAc,OACzCmgD,EAAUvlC,UAAY,qCAAqCslC,KACzDv9B,KAAKy9B,iBAAiBriD,WACnBsI,KAAKgE,MACP61C,EAA0Bv9B,KAAKy9B,iBAAiBriD,OAAU,SAE7D40C,EAAM35B,YAAYmnC,GAClBF,EAAYjnC,YAAY25B,GACxB,MAAM9M,EAAWzpC,SAAS4D,cAAc,OACxC6lC,EAAStnC,UAAY,mBACrBsnC,EAASjrB,UAAYkS,GACrBmzB,EAAYjnC,YAAY6sB,QACnB,GAA0C,aAAtCoa,EAAY5gB,SAAS,GAAGzkB,UAA0B,CAC3D,GAAIiS,GAAsB,CACxB,MAAMwzB,EACJxzB,GAAqBruB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GAAIG,OAAS,EAC9D40C,EAAQv2C,SAAS4D,cAAc,OACrC2yC,EAAMpiB,GAAK,yBACXoiB,EAAMp0C,UAAY,UAClB,MAAM4hD,EAAY/jD,SAAS4D,cAAc,OACzCmgD,EAAUvlC,UAAY,mCAAmCylC,KACvD19B,KAAKqV,eAAe,IAAIj6B,OAAS4kB,KAAKqV,eAAesoB,KAAKviD,WACvDsI,KAAKgE,MACPg2C,GACE19B,KAAKqV,eAAe,IAAIj6B,OACvB4kB,KAAKqV,eAAesoB,KAAKviD,QAC3B,SAEJ40C,EAAM35B,YAAYmnC,GAClBF,EAAYrP,aAAa+B,EAAOsN,EAAY5sB,WAAW,IACvD,MAAMwS,EAAWzpC,SAAS4D,cAAc,OACxC6lC,EAAStnC,UAAY,mBACrBsnC,EAASjrB,UAAYiS,GACrBozB,EAAYrP,aACV/K,EACAzpC,SAASwhC,eAAe,0BAA0B2iB,aAGtD,GAAIxzB,GAA6B,CAC/B,MAAMyzB,EACJzzB,GAA4BvuB,MAAM,IAAIZ,OAAO,MAAO,MAAQ,GACzDG,OAAS,EACR40C,EAAQv2C,SAAS4D,cAAc,OACrC2yC,EAAMpiB,GAAK,gCACXoiB,EAAMp0C,UAAY,UAClB,MAAM4hD,EAAY/jD,SAAS4D,cAAc,OACzCmgD,EAAUvlC,UAAY,mCAAmC4lC,KACvD79B,KAAKqV,eAAewc,OAAOz2C,WACxBsI,KAAKgE,MACPm2C,EAAwB79B,KAAKqV,eAAewc,OAAOz2C,OAAU,SAEhE40C,EAAM35B,YAAYmnC,GAClBF,EAAYjnC,YAAY25B,GACxB,MAAM9M,EAAWzpC,SAAS4D,cAAc,OACxC6lC,EAAStnC,UAAY,mBACrBsnC,EAASjrB,UAAYmS,GACrBkzB,EAAYjnC,YAAY6sB,QqDkH5BrjB,EAAUqoB,qBGnJD,WACb,IAAI4V,EACJn/C,OAAOo/C,OAAOtkD,SAASsB,iBAAiB,cAAcu0B,SAASn0B,IACzDA,EAAEqD,YAAYowC,SAAS,kBACzBkP,EAAU3iD,EAAE6iD,cAAcjjD,iBAAiB,wBAAwB,OAGnE8kB,EAAUqoB,qBACZvpC,OAAOo/C,OAAOD,EAAQphB,UAAUpN,SAAS2uB,IACvC,IAAKA,EAAariD,UAAUgzC,SAAS,WAAY,CAC/C,MAAMhhB,EAAKqwB,EAAalM,QAAQnuC,WAAW/H,MAAM,oBAAoB,IAC/D,KAAE+qC,GAAS5mB,KAAKk+B,iBAAiBtwB,GAEvCqwB,EAAa76C,MAAMuV,mBAAqB,GAAc,IAAViuB,EAAK,QACpC,IAAVA,EAAK,OAGRqX,EAAahM,YAAc,WACpBjyB,KAAKm+B,YACRn+B,KAAKo+B,WAAWvkD,MAChBmmB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OArEhB,SAAwC02B,GACtC,MAAM8tB,EAAO,GACG,WAAZ9tB,EAAGrD,KAAmBmxB,EAAKphD,KAAK,qBAAsB,WACrDohD,EAAKphD,KAAK,cAAe,GAC9BohD,EAAKphD,KAAK,SAAU,GAEpB,IAAIqhD,EAAa,GACbt+B,KAAK2d,IAAI,eAAkB3d,KAAKu+B,QAAsB,UAAZhuB,EAAGrD,QAC/CoxB,EAAa,GACXA,GAAyB,IAAX/tB,EAAGiG,IAAW6nB,EAAKphD,KAAK,gBAAiB,WAClDqhD,GAAc/tB,EAAGiG,IAAM,GAAG6nB,EAAKphD,KAAK,iBAAkB,WAE/D,IAAI,KAAE2pC,GAASrW,EACXA,EAAGsW,eAAcD,EAAOrW,EAAGsW,gBAE/B,IAAI,KAAE6G,GAASnd,EACXA,EAAGiuB,WAAU9Q,EAAOnd,EAAGiuB,SAAS,UAEpC,IAAIC,EAAU,GACd,IAAK,IAAItjD,EAAI,EAAGA,EAAIkjD,EAAKjjD,OAAQD,GAAK,EAChCA,EAAI,GAAM,IACZsjD,GAAW,kCACO,IAAhBJ,EAAKljD,EAAI,GAAW,OAASkjD,EAAKljD,EAAI,SACjCkjD,EAAKljD,aAIhB,OAFAsjD,EAAUA,EAAQhsB,UAAU,GAErB,yJAEM,IAAVmU,EAAK,QACS,IAAVA,EAAK,sCACQrW,EAAG7wB,iBACrB++C,qDAA2D/Q,oBAE3D1tB,KAAKu+B,OACD,oCAAoChuB,EAAG3C,gBAAgBlqB,KAAKgE,MAC1D6oB,EAAGU,SACDV,EAAGpD,KAAO,aAAaoD,EAAGpD,OAAS,WACvC,KAgCiBuxB,CACL1+B,KAAKk+B,iBAAiBtwB,MAI5B,OAEF5N,KAAK4W,QAAQke,eHoHrB6J,GIhMG,MAAMC,GAAe,CAC1B3T,UAAW,qBACXC,YAAa,cACbC,SAAU,WACVC,QAAS,4BACTC,YAAa,+BACbC,QAAS,WACTC,WAAY,aACZC,aAAc,gBACdS,cAAe,iBAIJ4S,GAA2B,CACtCpT,oBAAqB,wBACrBC,eAAgB,gBAChBC,eAAgB,iBAChBC,gBAAiB,iBACjBC,iBAAkB,cAClBC,iBAAkB,iBAClBC,kBAAmB,WACnBC,qBAAsB,qBCfT,SAAS8S,GAAiBzP,EAAQxpB,GAC/C,MAAM8K,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAI/0B,UAAY,QAEhB+0B,EAAIvtB,MAAMmU,QAAU,MACpBoZ,EAAIvtB,MAAMyuB,SAAW,OACrBlB,EAAIta,YAAY5c,SAAS2f,eAAe,GAAGyM,OAC3C,MAAM0vB,EAAO97C,SAAS4D,cAAc,QAiBpC,OAhBAk4C,EAAKnyC,MAAMqU,OAAS,UACpB89B,EAAKnyC,MAAM2U,QAAU,eACrBw9B,EAAKnyC,MAAMiG,OAAS,OACpBksC,EAAKnyC,MAAMgG,MAAQ,OACnBmsC,EAAKnyC,MAAM4T,aAAe,MAC1Bu+B,EAAKnyC,MAAM6V,UAAY,SACvBs8B,EAAKnyC,MAAMkU,gBAAkB,UAC7Bi+B,EAAKnyC,MAAMyF,MAAQ,QACnB0sC,EAAKnyC,MAAMyuB,SAAW,OACtB0jB,EAAKnyC,MAAM2uB,cAAgB,SAC3BwjB,EAAK/2C,YAAcqhB,EAAUmrB,OAAOqE,GAAU,IAAM,IACpDkG,EAAKxD,QAAU,WACbsD,GAAahG,GACbrvB,KAAKif,cAEPtO,EAAIta,YAAYk/B,GACT5kB,ECuBM,SAASouB,GAAiB1P,GACvC,MAAM1e,EAAMl3B,SAAS4D,cAAc,OAKnC,GAJAszB,EAAI/0B,UAAY,UACoB,IAAhCikB,EAAUsE,mBACZwM,EAAIta,YAlCR,SAA6Bg5B,GAC3B,MAAM2P,EAAUvlD,SAAS4D,cAAc,KAqBvC,OApBI8mB,GAAkByqB,SAASS,IAC7B2P,EAAQ9hB,UAAY,IACpB8hB,EAAQ57C,MAAMyF,MAAQ,UACjBm2C,EAAQ9hB,UAAY,IAC3B8hB,EAAQpjD,UAAY,SACpBojD,EAAQjN,QAAU,YC3BL,SAAgC1C,GACzClrB,GAAkByqB,SAASS,GAC7BlrB,GAAoBA,GAAkB+tB,QAAO,SAAU+M,GACrD,OAAOA,IAAQ5P,KAEdlrB,GAAkBlnB,KAAKoyC,GDuB1B6P,CAAuB7P,GACvB0D,KACA/yB,KAAKif,cAEP+f,EAAQ/M,YAAc,WACpBjyB,KAAK4W,QAAQpkB,KACX3Y,KACA8kC,OAAOhc,EAAsBw8B,4BAA4BlnC,aAG7D+mC,EAAQ5M,WAAa,WACnBpyB,KAAK4W,QAAQ5kB,QAEfgtC,EAAQ3oC,YAAY5c,SAAS2f,eAAe,MACrC4lC,EAYWI,CAAoB/P,IAEV,SAAxB,GAAOA,GAAQ7zC,KAAiB,CAClC,MAAMwI,EAAIvK,SAAS4D,cAAc,KAC7B,GAAOgyC,GAAQtB,QAAgC,IAAtBluB,EAAUwvB,GACrCrrC,EAAEpI,UAAY,aAEdoI,EAAEpI,UAAY,SAEhBoI,EAAE4pB,GAAK,GAAeyhB,EACtBrrC,EAAE+tC,QAAU,YRxDT,SAAsB1C,GAC3BxvB,EAAUwvB,IAAW,EAEjBxvB,EAAUwvB,KAAY,GAAWA,GAAQxB,MAAMzyC,QACjDykB,EAAUwvB,GAAU,EAChB,GAAWA,GAAQtB,SACrB3hC,EAAE,GAAeijC,GAAQzzC,UAAY,eAClCwQ,EAAE,GAAeijC,GAAQzzC,UAAY,cAEL,IAA5B,GAAWyzC,GAAQnvC,MAC5B,GAAWmvC,GAAQnvC,OAGrBkM,EAAE,GAAeijC,GAAQp3B,UACvB,GAAWo3B,GAAQxB,MAAMhuB,EAAUwvB,IACrC0D,KQ0CIsM,CAAahQ,IAEfrrC,EAAExF,YAAc,GAAO6wC,GAAQxB,MAAMhuB,EAAUwvB,IAC/C1e,EAAIta,YAAYrS,GAChB,MAAM6pC,EAAQp0C,SAAS4D,cAAc,SAIrC,OAHAwwC,EAAMrvC,YAAc,GAAO6wC,GAAQ3B,KACnCG,EAAMzqC,MAAM+V,WAAa,MACzBwX,EAAIta,YAAYw3B,GACTld,EAET,GAA4B,QAAxB,GAAO0e,GAAQ7zC,KAAgB,CACjC,MAAMo0C,EAASn2C,SAAS4D,cAAc,OACtCuyC,EAAOh0C,UAAY,YACnB,MAAMo0C,EAAQv2C,SAAS4D,cAAc,OACrC2yC,EAAM5sC,MAAMk8C,MAAQ,OACpBtP,EAAM/3B,UAAY,GAAOo3B,GAAQ3B,KACjCkC,EAAOv5B,YAAY25B,GACnB,MAAMuP,EAAU9lD,SAAS4D,cAAc,OACvCkiD,EAAQ3xB,GAAK,SAASyhB,SACtBkQ,EAAQn8C,MAAMk8C,MAAQ,QACtBC,EAAQtnC,UAAY,GAAG4H,EAAUwvB,MACjCO,EAAOv5B,YAAYkpC,GACnB,MAAMC,EAAS/lD,SAAS4D,cAAc,SACtCmiD,EAAO5jD,UAAY,SACnB4jD,EAAO5xB,GAAK,SAASyhB,IACrBmQ,EAAOp8C,MAAM8T,MAAQ,OACrBsoC,EAAOhkD,KAAO,QACdgkD,EAAOr4C,IAAM,IACbq4C,EAAOn4C,IAAM,MACbm4C,EAAOC,KAAO,IACdD,EAAOjhD,MAAQshB,EAAUwvB,GACzBmQ,EAAOhhC,QAAU,WACf42B,GAAmB/F,IAErBmQ,EAAOE,SAAW,WAChBtK,GAAmB/F,IAErBO,EAAOv5B,YAAYmpC,GACnB7uB,EAAIta,YAAYu5B,GAChB,MAAM5rC,EAAIvK,SAAS4D,cAAc,KAYjC,OAXA2G,EAAEpI,UAAY,SACdoI,EAAE+tC,QAAU,WACV,GACElyB,EAAUwvB,EAAOttC,QAAQ,SAAU,aACnCstC,EAAOttC,QAAQ,SAAU,SACzBstC,GACA,IAGJrrC,EAAExF,YAAc,aAChBmyB,EAAIta,YAAYrS,GACT2sB,EAET,GAA4B,QAAxB,GAAO0e,GAAQ7zC,KAAgB,CACjC,MAAM+5C,EAAO97C,SAAS4D,cAAc,QACpCk4C,EAAK35C,UAAY,SACjB25C,EAAK/2C,YAAc,GAAG,GAAO6wC,GAAQxB,SACrC0H,EAAKnyC,MAAM+V,WAAa,MACxBwX,EAAIta,YAAYk/B,GAChB,MAAMoK,EAAQlmD,SAAS4D,cAAc,SACrCsiD,EAAM/xB,GAAK,GAAeyhB,EAC1BsQ,EAAM/jD,UAAY,SAClB+jD,EAAMnkD,KAAO,OACbmkD,EAAMC,UAAW,EACjBD,EAAM5gD,aAAa,QAAS8gB,EAAUwvB,IACtCsQ,EAAMv8C,MAAMgG,MAAQ,QACpBunB,EAAIta,YAAYspC,GAChBhvB,EAAIta,YAAY5c,SAAS2f,eAAe,MACxC,MAAMymC,EAAcpmD,SAAS4D,cAAc,SAC3CwiD,EAAYjyB,GAAK,GAAG,GAAeyhB,UACnCwQ,EAAYjkD,UAAY,SACxBikD,EAAYrkD,KAAO,OACnBqkD,EAAY9gD,aAAa,QAAS8gB,EAAUwvB,IAC5C,MAAMrrC,EAAIvK,SAAS4D,cAAc,KACjC2G,EAAEpI,UAAY,SACdoI,EAAE+tC,QAAU,YEjJD,SAA6B+N,EAAS/hC,GACnDiC,KAAK+/B,YAAYnkD,UAAY,SAC7B,MAAMW,EAAMujD,EACZ9/B,KAAKggC,QAAQ/nC,UAAY,GAAG1b,iCAC5BoC,OAAO6C,KAAKuc,GAASuR,SAASn0B,IAC5B,MAAM6Y,EAASva,SAAS4D,cAAc,KACtC2W,EAAO4Z,GAAK,eAAezyB,IAC3B6Y,EAAOpY,UAAY,SACnBoY,EAAO+9B,QAAU,WACfkO,UAAU,gBACVliC,EAAQ5iB,GAAG,MAEb6Y,EAAOxV,YAAcuf,EAAQ5iB,GAAG,GAChC6kB,KAAKggC,QAAQtjB,SAAS,GAAGrmB,YAAYrC,MAEvCgM,KAAKkgC,cAAc98C,MAAM2U,QAAU,QACnCiI,KAAKmgC,QAAQ/8C,MAAM2U,QAAU,QAC7BiI,KAAKggC,QAAQI,QACbpgC,KAAKqgC,SAAW,EAChBrgC,KAAKsgC,eF+HDC,CAAoBV,EAAYW,UAAW,CACzC,CACE,OACA,WACE3gC,EAAUwvB,GAAUjjC,EAAE,WAAkBijC,WAAgB9wC,MACxDw0C,KACA/yB,KAAKygC,cACLzgC,KAAKif,eAGT,CACE,SACA,WACEjf,KAAKygC,mBAKbz8C,EAAExF,YAAc,OAChBmyB,EAAIta,YAAYrS,GAChB,MAAM6pC,EAAQp0C,SAAS4D,cAAc,SAIrC,OAHAwwC,EAAMrvC,YAAc,GAAO6wC,GAAQ3B,KACnCG,EAAMzqC,MAAM+V,WAAa,MACzBwX,EAAIta,YAAYw3B,GACTld,EAET,GAA4B,WAAxB,GAAO0e,GAAQ7zC,KAAmB,CACpC,MAAMklD,EAAYjnD,SAAS4D,cAAc,QACzCqjD,EAAU9kD,UAAY,SACtB,MAAM+jD,EAAQlmD,SAAS4D,cAAc,SACrCsiD,EAAM/xB,GAAKyhB,EACXsQ,EAAMv8C,MAAMgG,MAAQ,OACpBu2C,EAAM5gD,aAAa,QAAS8gB,EAAUwvB,IACtCqR,EAAUrqC,YAAYspC,GAQtB,IAAI,GAAQA,EAAO,CAAE9kC,MAAM,EAAM3P,SAAU,QAASoP,QAPrC,WACbuF,EAAUhmB,KAAKmD,cAAc4wB,IAAM/zB,KAAKogB,cACxC64B,KACAC,KACA/yB,KAAKif,gBAIP,MAAM4O,EAAQp0C,SAAS4D,cAAc,SAIrC,GAHAwwC,EAAMrvC,YAAc,GAAO6wC,GAAQ3B,KACnCG,EAAMzqC,MAAM+V,WAAa,MACzBunC,EAAUrqC,YAAYw3B,GAClBwB,EAAOT,SAAS,SAAU,CAC5B,MAAM5qC,EAAIvK,SAAS4D,cAAc,KACjC2G,EAAEpI,UAAY,SACdoI,EAAE+tC,QAAU,WACV3C,GAAM,EAAGC,EAAOttC,QAAQ,SAAU,KAAK,IAEzCiC,EAAExF,YAAc,aAChBkiD,EAAUrqC,YAAYrS,GAIxB,OAFA2sB,EAAIta,YAAYqqC,GAChB,YACO/vB,EAET,GAA4B,aAAxB,GAAO0e,GAAQ7zC,KAAqB,CACtC,MAAM+5C,EAAO97C,SAAS4D,cAAc,QACpCk4C,EAAK35C,UAAY,SACjB25C,EAAK/2C,YAAc,GAAG,GAAO6wC,GAAQxB,SACrC0H,EAAKnyC,MAAM+V,WAAa,MACxBwX,EAAIta,YAAYk/B,GAChB,MAAMoK,EAAQlmD,SAAS4D,cAAc,SACrCsiD,EAAM/xB,GAAK,GAAeyhB,EAC1BsQ,EAAM/jD,UAAY,SAClB+jD,EAAMnkD,KAAO,SACbmkD,EAAMphD,MAAQshB,EAAUwvB,GACxBsQ,EAAMx4C,IAAM,GAAOkoC,GAAQloC,IAC3Bw4C,EAAMt4C,IAAM,GAAOgoC,GAAQhoC,IAC3Bs4C,EAAMnhC,QAAU,WACdqB,EAAUwvB,GAAUx1C,KAAK0E,MACzBw0C,KACA/F,MAEFrc,EAAIta,YAAYspC,GAChBhvB,EAAIta,YAAY5c,SAAS2f,eAAe,MACxC,MAAMy0B,EAAQp0C,SAAS4D,cAAc,SAIrC,OAHAwwC,EAAMrvC,YAAc,GAAO6wC,GAAQ3B,KACnCG,EAAMzqC,MAAM+V,WAAa,MACzBwX,EAAIta,YAAYw3B,GACTld,EAET,OAAOA,EGjOM,SAASgwB,GAAUngD,GAChC,GAA2B,IAAvBqf,EAAU4T,UAA4C,IAA1B5T,EAAU6T,YAAmB,CAC3D,MAAMktB,EAAiB74C,SAASqE,EAAE,cAAchJ,MAAMiG,OAAQ,IAC9D2W,KAAK6gC,QAAUD,EACfpgD,IACAwf,KAAK6gC,QAAUD,OAEfpgD,ICUW,SAASsgD,KAEtBr/B,EAAgBkD,SAAWA,SAE3BA,SAAW,GAEXlD,EAAgBggB,eAAiBzhB,KAAKyhB,eACtCzhB,KAAKyhB,eAAiB,WACpBhgB,EAAgBggB,iBAChB3Z,GAAY,EACZpG,EAAyBC,KAAKC,MAC9BC,EAAyBF,KAAKC,OAGhCH,EAAgBmV,QAAU,GAC1BnV,EAAgBmV,QAAQpkB,KAAOwN,KAAK4W,QAAQpkB,KAC5CiP,EAAgBmV,QAAQmqB,QAAU,IAAInkD,SACpC,UAAUojB,KAAK4W,QAAQpkB,KAAK5O,WAAW5B,MAAM,QAAQ6C,KAAK,kBAD1B,GAGlCmb,KAAK4W,QAAQpkB,KAAO,SAAUwuC,EAAMn7B,EAAMtI,GACxCkE,EAAgBmV,QAAQmqB,QAAQC,EAAMn7B,EAAMtI,IAG9CkE,EAAgBmV,QAAQqqB,OAASjhC,KAAK4W,QAAQqqB,OAC9Cx/B,EAAgBmV,QAAQsqB,UAAY,IAAItkD,SACtC,UAAUojB,KAAK4W,QAAQqqB,OACpBr9C,WACA5B,MAAM,SACN6C,KAAK,mBAJ0B,GAMpCmb,KAAK4W,QAAQqqB,OAAS,WACpBx/B,EAAgBmV,QAAQsqB,YCjDb,WACb,GAA4B,UAAxBlhC,KAAK4W,QAAQrZ,OAAoB,CACnC,IAAI4jC,EAAa,EAEa,IAA5BthC,EAAUqc,eACgB,IAA1Brc,EAAU8X,aAC0B,OAApCvrB,EAAE,gCAEF+0C,EAAa/0C,EAAE,8BAA8BnF,aAAe,GAE9D+Y,KAAK4W,QAAQwqB,IAAIh+C,MAAMoC,IAAM,GAAG9B,KAAKyD,IACnCY,SAASiY,KAAK4W,QAAQwqB,IAAIh+C,MAAMoC,IAAK,IACrC4G,EAAE,QAAQnF,aACRmF,EAAE,UAAUnF,aACZ+Y,KAAK4W,QAAQyqB,GAAGp6C,aAChBk6C,EACA,SDkCJG,IAGF7/B,EAAgB8/B,gBAAkBvhC,KAAKuhC,gBACvCvhC,KAAKuhC,gBAAkB,WACrBZ,GAAUl/B,EAAgB8/B,kBAG5B9/B,EAAgB+/B,cAAgBxhC,KAAKwhC,cACrCxhC,KAAKwhC,cAAgB,WACnBb,GAAUl/B,EAAgB+/B,gBAI5Bp1C,EAAE,aAAatN,oBAAoB,QAASkhB,KAAKyhC,aAAa,GAC9Dr1C,EAAE,aAAa7R,iBACb,SACA,WACEomD,GAAU3gC,KAAKyhC,gBAEjB,GAGFhgC,EAAgB0rB,gBAAkBntB,KAAKmtB,gBACvCntB,KAAKmtB,gBAAkB,WACrB1rB,EAAgB0rB,kBExElB3rB,EAAuB,GACvB7iB,OAAO6C,KAAKwe,KAAKsQ,iBAAiBhB,SAASn0B,IACJ,OAAjCiR,EAAE,UAAUjR,KAAK82C,cACnBzwB,EAAqBrmB,GAAKiR,EAAE,UAAUjR,KAAK82C,YAC3C7lC,EAAE,UAAUjR,KAAK82C,YAAc,WACxBjyB,KAAKm+B,YACRn+B,KAAKo+B,WAAWvkD,MAChBmmB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,IAAK,GAAG54C,OAE/B,SAEF6kB,KAAK4W,QAAQke,eF2DnB90B,KAAKyhB,kBAGPhgB,EAAgBigC,aAAe1hC,KAAK0hC,aAKpC1hC,KAAK0hC,aAAe,SAAUj1B,KAEzB5M,EAAUkrB,cACX/qB,KAAKkkB,YAAYzX,GAAMyG,UAAYlT,KAAKmT,UACtB,IAAlBnT,KAAKoP,UAEL3N,EAAgBigC,aAAaj1B,IAIjChL,EAAgBkgC,mBAAqB3hC,KAAK2hC,mBAM1C3hC,KAAK2hC,mBAAqB,SAAUC,GAClCngC,EAAgBkgC,mBAAmBC,GG7FhC,SAAqBA,GAC1B,GAAiC,IAA7B/hC,EAAU6nB,eAAsB,CAClC,MAAOma,EAAUC,GCKN,SAA6BF,GAC1C5rB,KAGwB5pB,EAAE,iBAAiBswB,SAAS,GAAGzkB,UAAU22B,SAC/D,aAEmBlnB,GAAiBk6B,EACjCn6B,GAAgBm6B,EAGrB,IAAI7zB,EAAQ,EACZ,GACEtG,KAAkBS,IAClBR,KAAmBS,GAEnB,IAAK,IAAIhtB,EAAI6kB,KAAKkkB,YAAY9oC,OAAS,EAAGD,GAAK,IAAKA,EAClD,GAAI6kB,KAAKkkB,YAAY/oC,GAAGszB,OAAS,EAAG,CAClC,MAAMyiB,EAAkB7kB,GAAWrM,KAAKkkB,YAAY/oC,GAAGuE,MAAMA,KAC7D2sB,GAAW6kB,GAAiBziB,QAAU,EACtCtH,IAAqB,EACrB4G,EACE1B,GAAW6kB,GAAiB3iB,UAC5BvO,KAAKgP,eACHtrB,KAAK2D,IACH,EACAglB,GAAW6kB,GAAiBziB,OAC1B,EACApC,GAAW6kB,GAAiB1iB,MAEpCT,EAAQ/N,KAAKiP,oBAAoB5C,GAAW6kB,GAAkBnjB,GAC9DA,EAAQrqB,KAAKiL,KAAKof,GAClB,MAKN,MAAM6W,EAAwBtd,GAO9B,OANAma,KAEAmC,KACIgB,IAA0Btd,IAC5Bma,KAEK,CAACzZ,GAAehI,KAAKqR,UAAWtD,GDjDHg0B,CAAoBH,GAChDI,EAAgBz8B,GACpBu8B,GAAiBD,EAAW7hC,KAAKqR,YAEnC,IAAI4wB,EACsBA,EAAH,IAAnBjiC,KAAKqR,UAAsC,GAAS5M,KAC9B,GAAUo9B,EAAW7hC,KAAKqR,UAAa,KAEjEjlB,EAAE,kBAAkBhJ,MAAM8+C,UAAY,OACtC91C,EAAE,kBAAkBhJ,MAAMwuB,OAAS,MACnCxlB,EAAE,kBAAkBiK,YAAY5c,SAAS4D,cAAc,QAAQzB,UAC7D,OACF,MAAM+0B,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAIvtB,MAAMs7B,SAAW,QACrB/N,EAAIvtB,MAAM6V,UAAY,SACtB0X,EAAInyB,YAAc,wCAAwC,GACxDqjD,OACII,sBACN71C,EAAE,kBAAkBiK,YAAYsa,GAChC,MAAMwxB,EAAO1oD,SAAS4D,cAAc,OACpC8kD,EAAK/+C,MAAMs7B,SAAW,QACtByjB,EAAK/+C,MAAM6V,UAAY,SACvBkpC,EAAK3jD,YAAc,gBAAgBwjD,yBACnC51C,EAAE,kBAAkBiK,YAAY8rC,IHqEhCC,CAAYR,IAGdngC,EAAgB4gC,kBAAoBriC,KAAKqiC,kBAIzCriC,KAAKqiC,kBAAoB,SAAUC,GACjC7gC,EAAgB4gC,kBAAkBC,GGrE/B,WAEL,GAEwE,QADrEl2C,EAAE,gBAAgBxQ,UAAUC,MAAM,aACjCuQ,EAAE,gBAAgBswB,SAAS,GAAGt5B,MAAMqB,WAAW5I,MAAM,WAEvD,IAAK,IAAIV,EAAI,EAAGA,EAAIiR,EAAE,gBAAgBskB,WAAWt1B,OAAQD,IACL,cAA9CiR,EAAE,gBAAgBskB,WAAWv1B,GAAGS,YAClCwQ,EAAE,gBAAgBswB,SAASvhC,GAAG82C,YAAc,WAC1CzD,KACAxuB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACXpG,EAAE,gBACF,mDAAmDic,WACnD,QAEFrI,KAAK4W,QAAQke,UAEf1oC,EAAE,gBAAgBswB,SAASvhC,GAAGi3C,WAAa,WACzCpyB,KAAK4W,QAAQ2rB,WAAa,IHmDhCC,IAGF/gC,EAAgBwd,WAAajf,KAAKif,WAClCjf,KAAKif,WAAa,gBAEY,IAAnB,kBACyB,IAAzB,oBAEPxd,EAAgBwd,aKvHP,WACb,MAAM+Q,EAAQv2C,SAAS4D,cAAc,OACrC2yC,EAAMp0C,UAAY,QAEE,UAAhBokB,KAAKgd,QACPgT,EAAMxxC,YAAc,0BCIT,SAAqBwxC,GAClC,MAAM4F,EAAOn8C,SAASo8C,yBACtBD,EAAKv/B,YAAY25B,GAEjBrxC,OAAO6C,KAAKo9C,IAActvB,SAASke,IACjC,GAAc,cAAVA,GACF,GAAiC,IAA7BrpB,GAAkB/oB,QAAgBykB,EAAUsE,kBAAoB,IAClEyxB,EAAKv/B,YAAYyoC,GAAiBtR,EAAOoR,GAAapR,KAClD3tB,EAAUmrB,OAAOwC,IACnB,IAAK,IAAIiV,EAAQ,EAAGA,EAAQt+B,GAAkB/oB,OAAQqnD,IACpD7M,EAAKv/B,YAAY0oC,GAAiB56B,GAAkBs+B,UAI1D7M,EAAKv/B,YAAYyoC,GAAiBtR,EAAOoR,GAAapR,KAClD3tB,EAAUmrB,OAAOwC,KAGL,iBAAVA,EACF7uC,OAAO6C,KAAKq9C,IAA0BvvB,SAASozB,IAC7C,MAAMC,EAAiB7D,GACrB4D,EACA7D,GAAyB6D,IAE3BC,EAAev/C,MAAMyuB,SAAW,OAChC8wB,EAAev/C,MAAMmU,QAAU,MAC/Bq+B,EAAKv/B,YAAYssC,GACb9iC,EAAUmrB,OAAO0X,IACnB/jD,OAAO6C,KAAK,IAAQ8tB,SAAStb,IACvB,GAAOA,GAAQw5B,QAAUkV,GAC3B9M,EAAKv/B,YAAY0oC,GAAiB/qC,UAK1CrV,OAAO6C,KAAK,IAAQ8tB,SAAStb,IACvB,GAAOA,GAAQw5B,QAAUA,GAC3BoI,EAAKv/B,YAAY0oC,GAAiB/qC,WAO9C,MAAM4uC,EAASnpD,SAAS4D,cAAc,OACtCulD,EAAOhnD,UAAY,UACnB,MAAMinD,EAAYppD,SAAS4D,cAAc,KACzCwlD,EAAUjnD,UAAY,SACtBinD,EAAU9Q,QAAU,WAClB0B,GAAW,KAEboP,EAAUrkD,YAAc,kBACxBokD,EAAOvsC,YAAYwsC,GACnBjN,EAAKv/B,YAAYusC,GAEjBx2C,EAAE,QAAQskB,WAAW,GAAGud,aACtB2H,EACAxpC,EAAE,QAAQskB,WAAW,GAAGA,WACtBtkB,EAAE,QAAQskB,WAAW,GAAGA,WAAWt1B,OAAS,ID7D9C0nD,CAAY9S,IACa,UAAhBhwB,KAAKgd,OACVnd,EAAUod,QACZ+S,EAAMxxC,YAAc,4BACpBu3C,GAAa/F,IAEU,QAAhBhwB,KAAKgd,SACdgT,EAAMxxC,YAAc,kBEXT,SAAqBwxC,GAClC,MAAM+S,EAAOtpD,SAAS4D,cAAc,OACpC0lD,EAAKnnD,UAAY,aAEjB,MAAM25C,EAAO97C,SAAS4D,cAAc,QAmBpC,GAlBAk4C,EAAKnyC,MAAMqU,OAAS,UACpB89B,EAAKnyC,MAAM2U,QAAU,eACrBw9B,EAAKnyC,MAAMiG,OAAS,OACpBksC,EAAKnyC,MAAMgG,MAAQ,OACnBmsC,EAAKnyC,MAAM4T,aAAe,MAC1Bu+B,EAAKnyC,MAAM6V,UAAY,SACvBs8B,EAAKnyC,MAAMkU,gBAAkB,UAC7Bi+B,EAAKnyC,MAAMyF,MAAQ,QACnB0sC,EAAKnyC,MAAMyuB,SAAW,OACtB0jB,EAAKnyC,MAAM2uB,cAAgB,SAC3BwjB,EAAK/2C,YAAcqhB,EAAUmrB,OAAO0B,QAAU,IAAM,IACpD6I,EAAKxD,QAAU,WACbsD,GAAa,WACbr1B,KAAKif,cAEP+Q,EAAM35B,YAAYk/B,GAClBwN,EAAK1sC,YAAY25B,GAEbnwB,EAAUmrB,OAAO0B,QAAS,CAC5B,MAAMsW,EAAcvpD,SAAS4D,cAAc,OAC3C2lD,EAAY/qC,UC7Bc,siBD8B1B8qC,EAAK1sC,YAAY2sC,GACjB,MAAMC,EAAQxpD,SAAS4D,cAAc,OACrC4lD,EAAMhrC,UCtBwB,s5CDuB9B8qC,EAAK1sC,YAAY4sC,GAGnB,MAAMC,EAAO92C,EAAE,QAAQswB,SAAS,GAChCwmB,EAAKjV,aAAa8U,EAAMG,EAAKxmB,SAAS,IFrBpCymB,CAAYnT,IL0GVoT,KAIJ3hC,EAAgB0b,QAAUnd,KAAKmd,QAE/Bta,EAAY,SAAU2C,EAAM69B,GAC1B,OAAIz+B,OAAO7I,MAAMyJ,IAASA,GAAQ,EACzB/D,EAAgB0b,QAAQ3X,EAAM69B,GAChC99B,GAAWC,EAAOxF,KAAKsX,IAAK,IAGrC7V,EAAgB6hC,MAAQtjC,KAAKsjC,MAC7BtjC,KAAKsjC,MAAQ,WACX7hC,EAAgB6hC,QAGhB,IAAItT,EAAQ,iBACQ,UAAhBhwB,KAAK+d,SAAoBiS,EAAQ,gBAErC9rB,GAAQ,GAAGlE,KAAKqwB,SAAW,cAAgB,KAAK,GAAWrwB,KAAKmT,YAC7C,IAAjBnT,KAAKmT,QAAgB,SAAW,eAC5B6c,ISrIK,WACb,GAAIhwB,KAAKqwB,UAAgC,IAApBxwB,EAAUqE,MAC7BzqB,SAASu2C,MAAQ9rB,QACZ,GAAwB,IAApBrE,EAAUqE,MAAa,CAChC,IAEIq/B,EACAC,EACAC,EAJAC,GAAQ,EACRC,GAAQ,EAORJ,EAFAp4B,GACEA,GAA0BkiB,MAClB,KAAK3pC,KAAKiL,KAAKwc,GAA0BonB,KAAOvyB,KAAKsX,QAErD,KAAK5zB,KAAKiL,KAAKwc,GAA0BonB,KAAOvyB,KAAKsX,QACvDtX,KAAK2d,IAAI,uBAOJ,OANL,IACR/Y,OAAOxY,EAAE,sBAAsB5N,aAAe,EAAI,IAAM,KACvDkF,KAAKiL,MACLqR,KAAKwd,aAAaC,OAAOI,QAAU7d,KAAKwd,aAAaC,OAAOjY,MAC3DxF,KAAKsX,QAIPxW,IACF4iC,GAAQ,EACRF,EAAU,OAGQ,cAAhBxjC,KAAK+d,SACP4lB,GAAQ,EAENF,EADE5iC,EACQ,KAAKnd,KAAKiL,KAAKyc,GAAsBmnB,KAAOvyB,KAAKsX,QAEjD,IACR1S,OAAOxY,EAAE,uBAAuB5N,aAAe,EAAI,IAAM,KACxDkF,KAAKiL,MACLqR,KAAKwd,aAAaQ,SAASH,QAC1B7d,KAAKwd,aAAaQ,SAASxY,MAC3BxF,KAAKsX,SAMb,IAAI/6B,EAAM2nB,GACY,MAAlB3nB,EAAIyL,OAAO,KACbzL,EAAMA,EAAIk2B,UAAUl2B,EAAIqnD,YAAY,KAAO,IAE7CnqD,SAASu2C,MAAQ,GACfuT,GAAWG,EAAQF,EAAU,KAAOG,EAAQF,EAAU,OACpDlnD,SACC,GAAwB,IAApBsjB,EAAUqE,MAAa,CAChC,IAAI3nB,EAAM,GACNsnD,GAAQ,EACR14B,KACF04B,GAAQ,EACJ14B,GAA0BkiB,MAC5B9wC,GAAO,KAAKmH,KAAKiL,KAAKwc,GAA0BonB,KAAOvyB,KAAKsX,QACzD/6B,GAAO,KAAKmH,KAAKiL,KAAKwc,GAA0BonB,KAAOvyB,KAAKsX,SAE/DxW,IACF+iC,GAAQ,EACRtnD,GAAO,OAEW,cAAhByjB,KAAK+d,QAA0Bld,IACjCtkB,GAAO,KAAKmH,KAAKiL,KAAKyc,GAAsBmnB,KAAOvyB,KAAKsX,QACxDusB,GAAQ,GAENA,IAAOtnD,GAAO,OAClB,IAAIyzC,EAAQ,iBACQ,UAAhBhwB,KAAK+d,SAAoBiS,EAAQ,gBACrCzzC,GAAOyzC,EACPv2C,SAASu2C,MAAQzzC,GT6DjBunD,GU1IW,WACb,MAAMtS,EAAgB9tC,KAAK2D,IACzB,EACA2Y,KAAKyxB,oBACH/tC,KAAKgE,MAAMsY,KAAKomB,gBAAgBpmB,KAAKqmB,aAAermB,KAAK+f,gBACvD,IAED/f,KAAK+f,cAAgB/f,KAAKqmB,eAGzB3D,EAAY1iB,KAAKmd,SACnBxb,KAAKC,MAAQ5B,KAAK0iB,WAAa,IAAQ1iB,KAAKsX,KAC7C,GAEH,IAAI/6B,EAAM,GACVA,GAAO,kCACS,KAAdmmC,EAAmB,gBAAkBA,aAEvCnmC,GAAO,2BACHyjB,KAAKqW,SAAW,IAClB95B,GAAO,uCAAuC,GAC5CyjB,KAAKqW,2BACY,GAASrW,KAAKqW,cACjC95B,GAAO,4BAGPA,GADEyqB,GAAyB,EACpB,6CACAA,GAAyB,EAE9B,6GAEK,uCAAuC,GAC5CA,6BACyB,GACzBA,uBACmB,GACnBA,mCAEJzqB,GAAO,2BACPA,GAAO,eAAe,GACpBi1C,8CAEFj1C,GACEsjB,EAAUmoB,oBACN,oCAAoC3c,kDAAyE,GAC3GjC,GACA,iDAEF,GAENhd,EAAE,iBAAiB6L,UAAY1b,EV2F7BwnD,IWjIW,SAASC,KACtB9U,KACAjI,KACAM,KAGAlnB,EAAe1hB,OAAO6C,KAAKwe,KAAKuwB,MAAMn1C,OCxBtCimB,EAAU5nB,SAAS4D,cAAc,SACjCgkB,EAAQ7lB,KAAO,WACf6lB,EAAQuM,GAAK,QAEbn0B,SAASwqD,KAAK5tC,YAAYgL,G3HgBrB,WACL,MAAMwR,EAASp5B,SAAS4D,cAAc,OACtCw1B,EAAOjF,GAAK,WACZiF,EAAOzvB,MAAMiG,OAAS,OACtBwpB,EAAOzvB,MAAMgG,MAAQ,OACrBypB,EAAOzvB,MAAM8H,SAAW,WACxB2nB,EAAOzvB,MAAM2U,QAAU,OACvB8a,EAAOzvB,MAAMkU,gBAAkB,UAC/Bub,EAAOzvB,MAAMoV,gBAAkB,+CAC/Bqa,EAAOzvB,MAAM8gD,UAAY,kBACzBrxB,EAAOzvB,MAAM0U,SAAW,OACxB+a,EAAOzvB,MAAM+gD,WACX,uDAEF,MAAMC,EAAQvxB,EAAOxc,YAAY5c,SAAS4D,cAAc,UACxD+mD,EAAMhhD,MAAMgG,MAAQ,OACpBg7C,EAAMhhD,MAAM6V,UAAY,SACxBmrC,EAAMhhD,MAAM0V,WAAa,SACzB,MAAMurC,EAAQD,EAAM/tC,YAAY5c,SAAS4D,cAAc,UAEjDinD,EAAW,SAAUz+B,EAAMhd,GAC/B,MAAM07C,EAAK9qD,SAAS4D,cAAc,MAIlC,OAHAknD,EAAGnhD,MAAM6V,UAAY,QACrBsrC,EAAG3oD,UAAYkmB,EAAgBjZ,EAC/B07C,EAAG/lD,YAAcqnB,EACV0+B,GAEH/oD,EAAO6oD,EAAMhuC,YAAY5c,SAAS4D,cAAc,OACtD7B,EAAK4H,MAAMszB,WAAa,OACxBl7B,EAAK6a,YACHiuC,EAAS,aAAsCpiC,IAEnCmiC,EAAMhuC,YAAY5c,SAAS4D,cAAc,OACjDgZ,YAAYiuC,EAAS,eAAgBtiC,IAChCqiC,EAAMhuC,YAAY5c,SAAS4D,cAAc,OACjDgZ,YAAYiuC,EAAS,iBAAkBtiC,IAC7BqiC,EAAMhuC,YAAY5c,SAAS4D,cAAc,OACjDgZ,YAAYiuC,EAAS,YAAatiC,IAEvC5V,EAAE,WAAWiK,YAAYwc,GAEzBl0B,OAAO6C,KAAKwe,KAAKyN,SAAS6B,SAASn0B,IACjCk3B,GAA2Bl3B,M0HlC7BqpD,GjGlBK,WACL,MAAM/wB,EAAWh6B,SAAS4D,cAAc,OACxCo2B,EAAS7F,GAAK,aACd6F,EAASrwB,MAAM8H,SAAW,WAC1BuoB,EAASrwB,MAAM2U,QAAU,OACzB0b,EAASrwB,MAAMiG,OAAS,MACxBoqB,EAASrwB,MAAMyuB,SAAW,OAC1B4B,EAASrwB,MAAMszB,WAAa,OAC5BjD,EAASrwB,MAAMkU,gBAAkB,QAGjC,MAAMmtC,EAAehzB,GAAY,eAAgB,cAAe,CAC9D,CAAE7D,GAAI,qBAAsB/kB,MAAOyZ,GACnC,CAAEsL,GAAI,kBAAmB/kB,MAAOwZ,KAElCoR,EAASpd,YAAYouC,GAGrB,MAAMC,EAAgBjzB,GAAY,gBAAiB,gBAAiB,CAClE,CAAE7D,GAAI,sBAAuB/kB,MAAOyZ,GACpC,CAAEsL,GAAI,mBAAoB/kB,MAAOsZ,KAEnCsR,EAASpd,YAAYquC,GACrB,MAAMC,EAAqBlrD,SAAS4D,cAAc,OAClDsnD,EAAmB/2B,GAAK,uBACxB6F,EAASpd,YAAYsuC,GAErBv4C,EAAE,WAAWiK,YAAYod,GiGRzBmxB,GE6Ba,WACb,MAAMC,EAAaprD,SAAS4D,cAAc,OAC1CwnD,EAAWj3B,GAAK,eAChBi3B,EAAWzhD,MAAMgG,MAAQ,OACzBy7C,EAAWzhD,MAAMkU,gBAAkB,QACnCutC,EAAWzhD,MAAM6V,UAAY,SAC7B4rC,EAAWzhD,MAAMszB,WAAa,OAC9BmuB,EAAWzhD,MAAM2U,QAAU,OAC3B8sC,EAAWzhD,MAAM+T,OAAS,KAC1B0tC,EAAWzS,WAAa,WACtBpyB,KAAK4W,QAAQ5kB,QAGf,MAAMwsB,EAAc/kC,SAAS4D,cAAc,OAC3CmhC,EAAYnoB,YA/Dd,WACE,MAAMyuC,EAASrrD,SAAS4D,cAAc,OACtCynD,EAAO1hD,MAAMs7B,SAAW,QACxBomB,EAAO1hD,MAAM0zB,aAAe,MAC5B,MAAMkZ,EAAQv2C,SAAS4D,cAAc,OACrC2yC,EAAMp0C,UAAY,OAClBo0C,EAAM5sC,MAAM0zB,aAAe,MAC3BkZ,EAAMxxC,YAAc,SACpBsmD,EAAOzuC,YAAY25B,GAEnB,MAAM+U,EAAa,SAAUl8C,EAAOgd,GAClC,MAAM8K,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAIvtB,MAAM2uB,cAAgB,SAC1B,MAAMwjB,EAAO97C,SAAS4D,cAAc,QAQpC,OAPAk4C,EAAK35C,UAAYmmB,EAAgBlZ,EACjC0sC,EAAKnyC,MAAM2U,QAAU,eACrBw9B,EAAKnyC,MAAMiG,OAAS,OACpBksC,EAAKnyC,MAAMgG,MAAQ,OACnBmsC,EAAKnyC,MAAM0uB,YAAc,MACzBnB,EAAIta,YAAYk/B,GAChB5kB,EAAIta,YAAY5c,SAAS2f,eAAeyM,IACjC8K,GAsBT,OAnBAm0B,EAAOzuC,YACL0uC,EAAW/iC,EAAY,iDAEzB8iC,EAAOzuC,YACL0uC,EAAW9iC,EAAa,wCAE1B6iC,EAAOzuC,YACL0uC,EAAW7iC,EAAc,0CAE3B4iC,EAAOzuC,YACL0uC,EAAW5iC,EAAc,0CAE3B2iC,EAAOzuC,YACL0uC,EAAW3iC,EAAW,0CAExB0iC,EAAOzuC,YACL0uC,EAAW1iC,EAAc,8CAE3ByiC,EAAOzuC,YAAY0uC,EAAWziC,EAAY,4BACnCwiC,EAoBiBE,IACxBH,EAAW5S,YAAc,WACvBjyB,KAAK4W,QAAQpkB,KAAK3Y,KAAM8kC,OAAOH,EAAYvmB,WAAY,UAGzD,MAAMgtC,EAAgB,SAAUr3B,EAAI/kB,GAClC,MAAM0sC,EAAO97C,SAAS4D,cAAc,QAMpC,OALAk4C,EAAK3nB,GAAKA,EACV2nB,EAAK35C,UAAYkmB,EAAgBjZ,EACjC0sC,EAAKnyC,MAAMgG,MAAQ,qBACnBmsC,EAAKnyC,MAAM2U,QAAU,eACrBw9B,EAAK/2C,YAAc,IACZ+2C,GAETsP,EAAWxuC,YAAY4uC,EAAc,mBAAoBjjC,IACzD6iC,EAAWxuC,YAAY4uC,EAAc,oBAAqBhjC,IAC1D4iC,EAAWxuC,YAAY4uC,EAAc,qBAAsB/iC,IAC3D2iC,EAAWxuC,YAAY4uC,EAAc,qBAAsB9iC,IAC3D0iC,EAAWxuC,YAAY4uC,EAAc,kBAAmB7iC,IACxDyiC,EAAWxuC,YAAY4uC,EAAc,qBAAsB5iC,IAC3DwiC,EAAWxuC,YAAY4uC,EAAc,mBAAoB3iC,IAEzDlW,EAAE,YAAYwN,WAAWq0B,aACvB4W,EACAz4C,EAAE,YAAYwN,WAAW8W,WAAW,IFlEtCw0B,GGlCa,WACb,MAAMC,EAAc1rD,SAAS4D,cAAc,OAC3C8nD,EAAYv3B,GAAK,gBACjBu3B,EAAY/hD,MAAMgG,MAAQ,OAC1B+7C,EAAY/hD,MAAMiG,OAAS,OAC3B87C,EAAY/hD,MAAMkU,gBAAkB,QACpC6tC,EAAY/hD,MAAM2U,QAAU,OAC5BotC,EAAY/hD,MAAM+T,OAAS,aAC3BguC,EAAY/hD,MAAM8H,SAAW,WAC7BkB,EAAE,WAAWiK,YAAY8uC,GH0BzBC,GInCa,WACb,MAAMz0B,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAI/C,GAAK,sBACT+C,EAAIvtB,MAAM6V,UAAY,SACtB,MAAMjV,EAAIvK,SAAS4D,cAAc,KACjC2G,EAAEpI,UAAY,SACdoI,EAAE+tC,QAAU,WAC0B,SAAhC3lC,EAAE,YAAYhJ,MAAM2U,SACtB3L,EAAE,YAAYhJ,MAAM2U,QAAU,OAC9B3L,EAAE,kBAAkBhJ,MAAM2U,QAAU,OACpC3L,EAAE,gBAAgBhJ,MAAM2U,QAAU,OAClC3L,EAAE,iBAAiBhJ,MAAM2U,QAAU,SAEnC3L,EAAE,YAAYhJ,MAAM2U,QAAU,OACc,IAAxC3L,EAAE,kBAAkBswB,SAASthC,SAC/BgR,EAAE,kBAAkBhJ,MAAM2U,QAAU,SACI,IAAtC3L,EAAE,gBAAgBswB,SAASthC,SAC7BgR,EAAE,gBAAgBhJ,MAAM2U,QAAU,SACO,IAAvC3L,EAAE,iBAAiBswB,SAASthC,SAC9BgR,EAAE,iBAAiBhJ,MAAM2U,QAAU,WAGzC/T,EAAExF,YAAc,qBAChBmyB,EAAIta,YAAYrS,GAChB,MAAMP,EAAIhK,SAAS4D,cAAc,KACjCoG,EAAE7H,UAAY,SACd6H,EAAEsuC,QAAU,WAC0B,SAAhC3lC,EAAE,YAAYhJ,MAAM2U,QACtB3L,EAAE,YAAYhJ,MAAM2U,QAAU,OAC3B3L,EAAE,YAAYhJ,MAAM2U,QAAU,QAErCtU,EAAEjF,YAAc,sBAChBmyB,EAAIta,YAAY5S,GAChB2I,EAAE,SAAS6hC,aAAatd,EAAKvkB,EAAE,SAASskB,WAAW,IJGnD20B,GjEhCK,WACL,MAAMxd,EAAUpuC,SAAS4D,cAAc,QACvCwqC,EAAQja,GAAK,YACbia,EAAQ32B,IAAM,gBACd22B,EAAQyF,KAAO,uDACf7zC,SAAS6rD,qBAAqB,QAAQ,GAAGjvC,YAAYwxB,GiE4BrD0d,GACA5mD,OAAO6C,KAAKkhB,GAAa4M,SAASn0B,K1BnB7B,SAA6BqjC,EAAa3Y,EAAM6Y,GACrD,MAAM4M,EAAU7xC,SAAS4D,cAAc,OACvCiuC,EAAQ1d,GAAK4Q,EACb,MAAMkP,EAAOj0C,SAAS4D,cAAc,OACpCqwC,EAAKtqC,MAAMs7B,SAAWA,EACtBgP,EAAKtqC,MAAM0zB,aAAe,MAC1B,MAAMnG,EAAMl3B,SAAS4D,cAAc,OACnCszB,EAAIvtB,MAAM6V,UAAY,OACtB0X,EAAInyB,YAAcqnB,EAClB6nB,EAAKr3B,YAAYsa,GACjB2a,EAAQj1B,YAAYq3B,GACpB/qB,EAAsB6b,GAAe8M,E0BSnCka,CACE9iC,EAAYvnB,GAAG,GACfunB,EAAYvnB,GAAG,GACfunB,EAAYvnB,GAAG,OKtCN,WACb,MAAMwgD,EAAUliD,SAAS4D,cAAc,KACvCs+C,EAAQ/tB,GAAK,6BACb+tB,EAAQn9C,YAAc,iBACtBm9C,EAAQ//C,UAAY,SACpB+/C,EAAQ5J,QAAU,WAChB8B,MAEF8H,EAAQvJ,WAAa,WACnBpyB,KAAK4W,QAAQ2rB,WAAa,GAE5B5G,EAAQ1J,YAAc,WACpBjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,KAAM,YAE7B,QAEF/zB,KAAK4W,QAAQke,UAEf1oC,EAAE,oBAAoBswB,SAAS,GAAG+oB,OAAO9J,GACzC,MAAME,EAAcpiD,SAAS4D,cAAc,KAC3Cw+C,EAAYjuB,GAAK,2BACjBiuB,EAAYr9C,YAAc,qBAC1Bq9C,EAAYjgD,UAAY,SACxBigD,EAAY9J,QAAU,WACa,OAA7BloB,GAAsB,KACxB7J,KAAKuR,UAAU1H,GAAsB,IAAIiqB,GAAK,IAElD+H,EAAYzJ,WAAa,WACvBpyB,KAAK4W,QAAQ2rB,WAAa,GAE5B1G,EAAY5J,YAAc,WACxBjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,KAAM,gBAE7B,QAEF/zB,KAAK4W,QAAQke,UAEf1oC,EAAE,oBAAoBswB,SAAS,GAAG+oB,OAAO5J,GLJzC6J,GM5CAt5C,EAAE,YAAYhJ,MAAM2U,QAAU,OAC9B3L,EAAE,aAAahJ,MAAMwsB,QAAU,MAE/BxjB,EAAE,YAAYhJ,MAAM2U,QAAU,OAC9B3L,EAAE,YAAYhJ,MAAM,aAAe,OCOnCzE,OAAO6C,KAAKwe,KAAKyN,SAAS6B,SAASn0B,IACjC,MAAMo1B,EAAKvQ,KAAKyN,QAAQtyB,GACiB,OAArCiR,EAAE,UAAUmkB,EAAG3C,MAAMqkB,cACvB3wB,EAAmBnmB,GAAKiR,EAAE,UAAUmkB,EAAG3C,MAAMqkB,YAC7C7lC,EAAE,UAAUmkB,EAAG3C,MAAMqkB,YAAc,WACjCjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,IAAK,GAAG54C,OAE/B,SAEF6kB,KAAK4W,QAAQke,cAUf90B,KAAK2lC,aACPrlC,EAAoBlU,EAAE,SAAS6lC,YAC/B7lC,EAAE,SAAS6lC,YAAc,WACvBjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,IAAK,UAE5B,QAEF/zB,KAAK4W,QAAQke,WAmFjBl0B,EAAgBZ,KAAKY,cACrBZ,KAAKY,cAAgB,WACnBA,IA5EEZ,KAAKyN,QAAQmM,KAAKzL,iBACpB/hB,EAAE,gBAAgB6lC,YAAc,WAC9BjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,KAAM,sBAE7B,QAEF/zB,KAAK4W,QAAQke,UAEfnwC,MAAMq8C,KAAK50C,EAAE,cAAcswB,UAAUpN,SAASs2B,IAC5C,MAAMC,EAASD,EAAMh4B,GAAG1P,OAAO,GAE/B0nC,EAAM3T,YAAc,WAClBjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,IAAK,CAAC,GAAG8R,EAAO,KAAM,GAAGA,EAAO,SAEvD,QAEF7lC,KAAK4W,QAAQke,cAsDjBF,KAhDJ,WACE,GAAI50B,KAAKyN,QAAQF,OAAOY,eAAgB,CACtC,IAAK,IAAIhzB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAC3BiR,EAAE,YAAYjR,KAAK82C,YAAc,WAC/BjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,MAAO54C,KAE9B,QAEF6kB,KAAK4W,QAAQke,UAGjB,IAAK,IAAI35C,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BiR,EAAE,aAAajR,KAAK82C,YAAc,WAChCjyB,KAAK4W,QAAQie,QAAU,EACvB70B,KAAK4W,QAAQpkB,KACX3Y,MACA,WACE,OAAOk6C,GAAc,MAAO,CAC1B54C,EACA6kB,KAAKyN,QAAQF,OAAOC,SAAS+I,KAAKp7B,OAGtC,QAEF6kB,KAAK4W,QAAQke,WAqBjBgR,GACA7Q,MAEFj1B,KAAKY,gBClILxU,EAAE,wBAAwB6lC,YAAc,WACtCnvB,EAAsB,GAExB1W,EAAE,wBAAwBgmC,WAAa,WACrCtvB,EAAsB,EACtB9C,KAAK4W,QAAQ5kB,OACbrT,OAAO6C,KAAKwe,KAAKuR,WAAWjC,SAASn0B,IACnC6nB,EAA0B7nB,GAAK,MRsCnC2lD,KACA7L,KACAj1B,KAAKyhB,iBAELgS,KACA7wB,EAAoB5C,KAAKqwB,SAErBrwB,KAAK6c,MAAMkpB,OACb/lC,KAAKgmC,MACH,0CAGFhmC,KAAKimC,OACH,yCACA,GACA,GACA,EACA,GAGJjmC,KAAKkmC,IAAI,eSvEX,MAAMC,GAAK,CACT1rD,KCQa,WACb00C,IAAiB,EACjB,IAAIiX,GAAU,EACVpmC,KAAKuuB,UAAY3pB,ObdK,WagBxBwhC,EAAUC,QACR,4JAGAD,IACFpC,KACAhkC,KAAKsmC,aAAa,OAAQ1pB,IAC1B5c,KAAKsmC,aAAa,QAASlW,IAC3BpwB,KAAKsmC,aAAa,QAASnnB,IAC3BgQ,IAAiB,IDrBnBoX,KEGa,SAAchqD,GAC3B,MAAM4xC,EAAO3xC,KAAKC,MAAMF,GACxB2yC,UAEsC,IAA3Bf,EAAKE,oBACdlqB,GAAoBgqB,EAAKE,mBAC3BoF,GAAWtF,EAAKG,UACK,YAAjBH,EAAKI,UACHvuB,KAAK6c,MAAMkpB,OACb/lC,KAAKgmC,MACH,iGAGFhmC,KAAKimC,OACH,gGACA,GACA,GACA,EACA,KFpBN9X,KAAI,IAGNnuB,KAAKwmC,YAAY,gBAAiBL,K","file":"CookieMonster.js","sourcesContent":["/**\r\n * jscolor - JavaScript Color Picker\r\n *\r\n * @link http://jscolor.com\r\n * @license For open source use: GPLv3\r\n * For commercial use: JSColor Commercial License\r\n * @author Jan Odvarko - East Desire\r\n *\r\n * See usage examples at http://jscolor.com/examples/\r\n */\r\n\r\n\r\n(function (global, factory) {\r\n\r\n\t'use strict';\r\n\r\n\tif (typeof module === 'object' && typeof module.exports === 'object') {\r\n\t\t// Export jscolor as a module\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory (global) :\r\n\t\t\tfunction (win) {\r\n\t\t\t\tif (!win.document) {\r\n\t\t\t\t\tthrow new Error('jscolor needs a window with document');\r\n\t\t\t\t}\r\n\t\t\t\treturn factory(win);\r\n\t\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Default use (no module export)\r\n\tfactory(global);\r\n\r\n})(typeof window !== 'undefined' ? window : this, function (window) { // BEGIN factory\r\n\r\n// BEGIN jscolor code\r\n\r\n\r\n'use strict';\r\n\r\n\r\nvar jscolor = (function () { // BEGIN jscolor\r\n\r\nvar jsc = {\r\n\r\n\r\n\tinitialized : false,\r\n\r\n\tinstances : [], // created instances of jscolor\r\n\r\n\treadyQueue : [], // functions waiting to be called after init\r\n\r\n\r\n\tregister : function () {\r\n\t\tif (typeof window !== 'undefined' && window.document) {\r\n\t\t\twindow.document.addEventListener('DOMContentLoaded', jsc.pub.init, false);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tinstallBySelector : function (selector, rootNode) {\r\n\t\trootNode = rootNode ? jsc.node(rootNode) : window.document;\r\n\t\tif (!rootNode) {\r\n\t\t\tthrow new Error('Missing root node');\r\n\t\t}\r\n\r\n\t\tvar elms = rootNode.querySelectorAll(selector);\r\n\r\n\t\t// for backward compatibility with DEPRECATED installation/configuration using className\r\n\t\tvar matchClass = new RegExp('(^|\\\\s)(' + jsc.pub.lookupClass + ')(\\\\s*(\\\\{[^}]*\\\\})|\\\\s|$)', 'i');\r\n\r\n\t\tfor (var i = 0; i < elms.length; i += 1) {\r\n\r\n\t\t\tif (elms[i].jscolor && elms[i].jscolor instanceof jsc.pub) {\r\n\t\t\t\tcontinue; // jscolor already installed on this element\r\n\t\t\t}\r\n\r\n\t\t\tif (elms[i].type !== undefined && elms[i].type.toLowerCase() == 'color' && jsc.isColorAttrSupported) {\r\n\t\t\t\tcontinue; // skips inputs of type 'color' if supported by the browser\r\n\t\t\t}\r\n\r\n\t\t\tvar dataOpts, m;\r\n\r\n\t\t\tif (\r\n\t\t\t\t(dataOpts = jsc.getDataAttr(elms[i], 'jscolor')) !== null ||\r\n\t\t\t\t(elms[i].className && (m = elms[i].className.match(matchClass))) // installation using className (DEPRECATED)\r\n\t\t\t) {\r\n\t\t\t\tvar targetElm = elms[i];\r\n\r\n\t\t\t\tvar optsStr = '';\r\n\t\t\t\tif (dataOpts !== null) {\r\n\t\t\t\t\toptsStr = dataOpts;\r\n\r\n\t\t\t\t} else if (m) { // installation using className (DEPRECATED)\r\n\t\t\t\t\tconsole.warn('Installation using class name is DEPRECATED. Use data-jscolor=\"\" attribute instead.' + jsc.docsRef);\r\n\t\t\t\t\tif (m[4]) {\r\n\t\t\t\t\t\toptsStr = m[4];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar opts = null;\r\n\t\t\t\tif (optsStr.trim()) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts = jsc.parseOptionsStr(optsStr);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e + '\\n' + optsStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tnew jsc.pub(targetElm, opts);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseOptionsStr : function (str) {\r\n\t\tvar opts = null;\r\n\r\n\t\ttry {\r\n\t\t\topts = JSON.parse(str);\r\n\r\n\t\t} catch (eParse) {\r\n\t\t\tif (!jsc.pub.looseJSON) {\r\n\t\t\t\tthrow new Error('Could not parse jscolor options as JSON: ' + eParse);\r\n\t\t\t} else {\r\n\t\t\t\t// loose JSON syntax is enabled -> try to evaluate the options string as JavaScript object\r\n\t\t\t\ttry {\r\n\t\t\t\t\topts = (new Function ('var opts = (' + str + '); return typeof opts === \"object\" ? opts : {};'))();\r\n\t\t\t\t} catch (eEval) {\r\n\t\t\t\t\tthrow new Error('Could not evaluate jscolor options: ' + eEval);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn opts;\r\n\t},\r\n\r\n\r\n\tgetInstances : function () {\r\n\t\tvar inst = [];\r\n\t\tfor (var i = 0; i < jsc.instances.length; i += 1) {\r\n\t\t\t// if the targetElement still exists, the instance is considered \"alive\"\r\n\t\t\tif (jsc.instances[i] && jsc.instances[i].targetElement) {\r\n\t\t\t\tinst.push(jsc.instances[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn inst;\r\n\t},\r\n\r\n\r\n\tcreateEl : function (tagName) {\r\n\t\tvar el = window.document.createElement(tagName);\r\n\t\tjsc.setData(el, 'gui', true);\r\n\t\treturn el;\r\n\t},\r\n\r\n\r\n\tnode : function (nodeOrSelector) {\r\n\t\tif (!nodeOrSelector) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (typeof nodeOrSelector === 'string') {\r\n\t\t\t// query selector\r\n\t\t\tvar sel = nodeOrSelector;\r\n\t\t\tvar el = null;\r\n\t\t\ttry {\r\n\t\t\t\tel = window.document.querySelector(sel);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.warn(e);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tif (!el) {\r\n\t\t\t\tconsole.warn('No element matches the selector: %s', sel);\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t}\r\n\r\n\t\tif (jsc.isNode(nodeOrSelector)) {\r\n\t\t\t// DOM node\r\n\t\t\treturn nodeOrSelector;\r\n\t\t}\r\n\r\n\t\tconsole.warn('Invalid node of type %s: %s', typeof nodeOrSelector, nodeOrSelector);\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// See https://stackoverflow.com/questions/384286/\r\n\tisNode : function (val) {\r\n\t\tif (typeof Node === 'object') {\r\n\t\t\treturn val instanceof Node;\r\n\t\t}\r\n\t\treturn val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.nodeName === 'string';\r\n\t},\r\n\r\n\r\n\tnodeName : function (node) {\r\n\t\tif (node && node.nodeName) {\r\n\t\t\treturn node.nodeName.toLowerCase();\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tremoveChildren : function (node) {\r\n\t\twhile (node.firstChild) {\r\n\t\t\tnode.removeChild(node.firstChild);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tisTextInput : function (el) {\r\n\t\treturn el && jsc.nodeName(el) === 'input' && el.type.toLowerCase() === 'text';\r\n\t},\r\n\r\n\r\n\tisButton : function (el) {\r\n\t\tif (!el) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar n = jsc.nodeName(el);\r\n\t\treturn (\r\n\t\t\t(n === 'button') ||\r\n\t\t\t(n === 'input' && ['button', 'submit', 'reset'].indexOf(el.type.toLowerCase()) > -1)\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tisButtonEmpty : function (el) {\r\n\t\tswitch (jsc.nodeName(el)) {\r\n\t\t\tcase 'input': return (!el.value || el.value.trim() === '');\r\n\t\t\tcase 'button': return (el.textContent.trim() === '');\r\n\t\t}\r\n\t\treturn null; // could not determine element's text\r\n\t},\r\n\r\n\r\n\t// See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\r\n\tisPassiveEventSupported : (function () {\r\n\t\tvar supported = false;\r\n\r\n\t\ttry {\r\n\t\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\t\tget: function () { supported = true; }\r\n\t\t\t});\r\n\t\t\twindow.addEventListener('testPassive', null, opts);\r\n\t\t\twindow.removeEventListener('testPassive', null, opts);\r\n\t\t} catch (e) {}\r\n\r\n\t\treturn supported;\r\n\t})(),\r\n\r\n\r\n\tisColorAttrSupported : (function () {\r\n\t\tvar elm = window.document.createElement('input');\r\n\t\tif (elm.setAttribute) {\r\n\t\t\telm.setAttribute('type', 'color');\r\n\t\t\tif (elm.type.toLowerCase() == 'color') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t})(),\r\n\r\n\r\n\tdataProp : '_data_jscolor',\r\n\r\n\r\n\t// usage:\r\n\t// setData(obj, prop, value)\r\n\t// setData(obj, {prop:value, ...})\r\n\t//\r\n\tsetData : function () {\r\n\t\tvar obj = arguments[0];\r\n\r\n\t\tif (arguments.length === 3) {\r\n\t\t\t// setting a single property\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar prop = arguments[1];\r\n\t\t\tvar value = arguments[2];\r\n\r\n\t\t\tdata[prop] = value;\r\n\t\t\treturn true;\r\n\r\n\t\t} else if (arguments.length === 2 && typeof arguments[1] === 'object') {\r\n\t\t\t// setting multiple properties\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar map = arguments[1];\r\n\r\n\t\t\tfor (var prop in map) {\r\n\t\t\t\tif (map.hasOwnProperty(prop)) {\r\n\t\t\t\t\tdata[prop] = map[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthrow new Error('Invalid arguments');\r\n\t},\r\n\r\n\r\n\t// usage:\r\n\t// removeData(obj, prop, [prop...])\r\n\t//\r\n\tremoveData : function () {\r\n\t\tvar obj = arguments[0];\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\treturn true; // data object does not exist\r\n\t\t}\r\n\t\tfor (var i = 1; i < arguments.length; i += 1) {\r\n\t\t\tvar prop = arguments[i];\r\n\t\t\tdelete obj[jsc.dataProp][prop];\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\tgetData : function (obj, prop, setDefault) {\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\t// data object does not exist\r\n\t\t\tif (setDefault !== undefined) {\r\n\t\t\t\tobj[jsc.dataProp] = {}; // create data object\r\n\t\t\t} else {\r\n\t\t\t\treturn undefined; // no value to return\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar data = obj[jsc.dataProp];\r\n\r\n\t\tif (!data.hasOwnProperty(prop) && setDefault !== undefined) {\r\n\t\t\tdata[prop] = setDefault;\r\n\t\t}\r\n\t\treturn data[prop];\r\n\t},\r\n\r\n\r\n\tgetDataAttr : function (el, name) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tvar attrValue = el.getAttribute(attrName);\r\n\t\treturn attrValue;\r\n\t},\r\n\r\n\r\n\tsetDataAttr : function (el, name, value) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tel.setAttribute(attrName, value);\r\n\t},\r\n\r\n\r\n\t_attachedGroupEvents : {},\r\n\r\n\r\n\tattachGroupEvent : function (groupName, el, evnt, func) {\r\n\t\tif (!jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tjsc._attachedGroupEvents[groupName] = [];\r\n\t\t}\r\n\t\tjsc._attachedGroupEvents[groupName].push([el, evnt, func]);\r\n\t\tel.addEventListener(evnt, func, false);\r\n\t},\r\n\r\n\r\n\tdetachGroupEvents : function (groupName) {\r\n\t\tif (jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tfor (var i = 0; i < jsc._attachedGroupEvents[groupName].length; i += 1) {\r\n\t\t\t\tvar evt = jsc._attachedGroupEvents[groupName][i];\r\n\t\t\t\tevt[0].removeEventListener(evt[1], evt[2], false);\r\n\t\t\t}\r\n\t\t\tdelete jsc._attachedGroupEvents[groupName];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tpreventDefault : function (e) {\r\n\t\tif (e.preventDefault) { e.preventDefault(); }\r\n\t\te.returnValue = false;\r\n\t},\r\n\r\n\r\n\tcaptureTarget : function (target) {\r\n\t\t// IE\r\n\t\tif (target.setCapture) {\r\n\t\t\tjsc._capturedTarget = target;\r\n\t\t\tjsc._capturedTarget.setCapture();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\treleaseTarget : function () {\r\n\t\t// IE\r\n\t\tif (jsc._capturedTarget) {\r\n\t\t\tjsc._capturedTarget.releaseCapture();\r\n\t\t\tjsc._capturedTarget = null;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\ttriggerEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar ev = null;\r\n\r\n\t\tif (typeof Event === 'function') {\r\n\t\t\tev = new Event(eventName, {\r\n\t\t\t\tbubbles: bubbles,\r\n\t\t\t\tcancelable: cancelable\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// IE\r\n\t\t\tev = window.document.createEvent('Event');\r\n\t\t\tev.initEvent(eventName, bubbles, cancelable);\r\n\t\t}\r\n\r\n\t\tif (!ev) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// so that we know that the event was triggered internally\r\n\t\tjsc.setData(ev, 'internal', true);\r\n\r\n\t\tel.dispatchEvent(ev);\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\ttriggerInputEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (jsc.isTextInput(el)) {\r\n\t\t\tjsc.triggerEvent(el, eventName, bubbles, cancelable);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\teventKey : function (ev) {\r\n\t\tvar keys = {\r\n\t\t\t9: 'Tab',\r\n\t\t\t13: 'Enter',\r\n\t\t\t27: 'Escape',\r\n\t\t};\r\n\t\tif (typeof ev.code === 'string') {\r\n\t\t\treturn ev.code;\r\n\t\t} else if (ev.keyCode !== undefined && keys.hasOwnProperty(ev.keyCode)) {\r\n\t\t\treturn keys[ev.keyCode];\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\tstrList : function (str) {\r\n\t\tif (!str) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn str.replace(/^\\s+|\\s+$/g, '').split(/\\s+/);\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can only contain a single class name\r\n\thasClass : function (elm, className) {\r\n\t\tif (!className) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\treturn elm.classList.contains(className);\r\n\t\t}\r\n\t\t// polyfill\r\n\t\treturn -1 != (' ' + elm.className.replace(/\\s+/g, ' ') + ' ').indexOf(' ' + className + ' ');\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\taddClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.add(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tif (!jsc.hasClass(elm, classNames[i])) {\r\n\t\t\t\telm.className += (elm.className ? ' ' : '') + classNames[i];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\tremoveClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.remove(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tvar repl = new RegExp(\r\n\t\t\t\t'^\\\\s*' + classNames[i] + '\\\\s*|' +\r\n\t\t\t\t'\\\\s*' + classNames[i] + '\\\\s*$|' +\r\n\t\t\t\t'\\\\s+' + classNames[i] + '(\\\\s+)',\r\n\t\t\t\t'g'\r\n\t\t\t);\r\n\t\t\telm.className = elm.className.replace(repl, '$1');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tgetCompStyle : function (elm) {\r\n\t\tvar compStyle = window.getComputedStyle ? window.getComputedStyle(elm) : elm.currentStyle;\r\n\r\n\t\t// Note: In Firefox, getComputedStyle returns null in a hidden iframe,\r\n\t\t// that's why we need to check if the returned value is non-empty\r\n\t\tif (!compStyle) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\treturn compStyle;\r\n\t},\r\n\r\n\r\n\t// Note:\r\n\t// Setting a property to NULL reverts it to the state before it was first set\r\n\t// with the 'reversible' flag enabled\r\n\t//\r\n\tsetStyle : function (elm, styles, important, reversible) {\r\n\t\t// using '' for standard priority (IE10 apparently doesn't like value undefined)\r\n\t\tvar priority = important ? 'important' : '';\r\n\t\tvar origStyle = null;\r\n\r\n\t\tfor (var prop in styles) {\r\n\t\t\tif (styles.hasOwnProperty(prop)) {\r\n\t\t\t\tvar setVal = null;\r\n\r\n\t\t\t\tif (styles[prop] === null) {\r\n\t\t\t\t\t// reverting a property value\r\n\r\n\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t// get the original style object, but dont't try to create it if it doesn't exist\r\n\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (origStyle && origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t// we have property's original value -> use it\r\n\t\t\t\t\t\tsetVal = origStyle[prop];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// setting a property value\r\n\r\n\t\t\t\t\tif (reversible) {\r\n\t\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t\t// get the original style object and if it doesn't exist, create it\r\n\t\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle', {});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t\t// original property value not yet stored -> store it\r\n\t\t\t\t\t\t\torigStyle[prop] = elm.style[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetVal = styles[prop];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (setVal !== null) {\r\n\t\t\t\t\telm.style.setProperty(prop, setVal, priority);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\thexColor : function (r, g, b) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\thexaColor : function (r, g, b, a) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(a * 255).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\trgbColor : function (r, g, b) {\r\n\t\treturn 'rgb(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\trgbaColor : function (r, g, b, a) {\r\n\t\treturn 'rgba(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) + ',' +\r\n\t\t\t(Math.round((a===undefined || a===null ? 1 : a) * 100) / 100) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\tlinearGradient : (function () {\r\n\r\n\t\tfunction getFuncName () {\r\n\t\t\tvar stdName = 'linear-gradient';\r\n\t\t\tvar prefixes = ['', '-webkit-', '-moz-', '-o-', '-ms-'];\r\n\t\t\tvar helper = window.document.createElement('div');\r\n\r\n\t\t\tfor (var i = 0; i < prefixes.length; i += 1) {\r\n\t\t\t\tvar tryFunc = prefixes[i] + stdName;\r\n\t\t\t\tvar tryVal = tryFunc + '(to right, rgba(0,0,0,0), rgba(0,0,0,0))';\r\n\r\n\t\t\t\thelper.style.background = tryVal;\r\n\t\t\t\tif (helper.style.background) { // CSS background successfully set -> function name is supported\r\n\t\t\t\t\treturn tryFunc;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn stdName; // fallback to standard 'linear-gradient' without vendor prefix\r\n\t\t}\r\n\r\n\t\tvar funcName = getFuncName();\r\n\r\n\t\treturn function () {\r\n\t\t\treturn funcName + '(' + Array.prototype.join.call(arguments, ', ') + ')';\r\n\t\t};\r\n\r\n\t})(),\r\n\r\n\r\n\tsetBorderRadius : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'border-radius' : value || '0'});\r\n\t},\r\n\r\n\r\n\tsetBoxShadow : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'box-shadow': value || 'none'});\r\n\t},\r\n\r\n\r\n\tgetElementPos : function (e, relativeToViewport) {\r\n\t\tvar x=0, y=0;\r\n\t\tvar rect = e.getBoundingClientRect();\r\n\t\tx = rect.left;\r\n\t\ty = rect.top;\r\n\t\tif (!relativeToViewport) {\r\n\t\t\tvar viewPos = jsc.getViewPos();\r\n\t\t\tx += viewPos[0];\r\n\t\t\ty += viewPos[1];\r\n\t\t}\r\n\t\treturn [x, y];\r\n\t},\r\n\r\n\r\n\tgetElementSize : function (e) {\r\n\t\treturn [e.offsetWidth, e.offsetHeight];\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to viewport\r\n\tgetAbsPointerPos : function (e) {\r\n\t\tvar x = 0, y = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tx = e.changedTouches[0].clientX;\r\n\t\t\ty = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tx = e.clientX;\r\n\t\t\ty = e.clientY;\r\n\t\t}\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to target element\r\n\tgetRelPointerPos : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\t\tvar targetRect = target.getBoundingClientRect();\r\n\r\n\t\tvar x = 0, y = 0;\r\n\r\n\t\tvar clientX = 0, clientY = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tclientX = e.changedTouches[0].clientX;\r\n\t\t\tclientY = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tclientX = e.clientX;\r\n\t\t\tclientY = e.clientY;\r\n\t\t}\r\n\r\n\t\tx = clientX - targetRect.left;\r\n\t\ty = clientY - targetRect.top;\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\tgetViewPos : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),\r\n\t\t\t(window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\r\n\t\t];\r\n\t},\r\n\r\n\r\n\tgetViewSize : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.innerWidth || doc.clientWidth),\r\n\t\t\t(window.innerHeight || doc.clientHeight),\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// r: 0-255\r\n\t// g: 0-255\r\n\t// b: 0-255\r\n\t//\r\n\t// returns: [ 0-360, 0-100, 0-100 ]\r\n\t//\r\n\tRGB_HSV : function (r, g, b) {\r\n\t\tr /= 255;\r\n\t\tg /= 255;\r\n\t\tb /= 255;\r\n\t\tvar n = Math.min(Math.min(r,g),b);\r\n\t\tvar v = Math.max(Math.max(r,g),b);\r\n\t\tvar m = v - n;\r\n\t\tif (m === 0) { return [ null, 0, 100 * v ]; }\r\n\t\tvar h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);\r\n\t\treturn [\r\n\t\t\t60 * (h===6?0:h),\r\n\t\t\t100 * (m/v),\r\n\t\t\t100 * v\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// h: 0-360\r\n\t// s: 0-100\r\n\t// v: 0-100\r\n\t//\r\n\t// returns: [ 0-255, 0-255, 0-255 ]\r\n\t//\r\n\tHSV_RGB : function (h, s, v) {\r\n\t\tvar u = 255 * (v / 100);\r\n\r\n\t\tif (h === null) {\r\n\t\t\treturn [ u, u, u ];\r\n\t\t}\r\n\r\n\t\th /= 60;\r\n\t\ts /= 100;\r\n\r\n\t\tvar i = Math.floor(h);\r\n\t\tvar f = i%2 ? h-i : 1-(h-i);\r\n\t\tvar m = u * (1 - s);\r\n\t\tvar n = u * (1 - s * f);\r\n\t\tswitch (i) {\r\n\t\t\tcase 6:\r\n\t\t\tcase 0: return [u,n,m];\r\n\t\t\tcase 1: return [n,u,m];\r\n\t\t\tcase 2: return [m,u,n];\r\n\t\t\tcase 3: return [m,n,u];\r\n\t\t\tcase 4: return [n,m,u];\r\n\t\t\tcase 5: return [u,m,n];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseColorString : function (str) {\r\n\t\tvar ret = {\r\n\t\t\trgba: null,\r\n\t\t\tformat: null // 'hex' | 'hexa' | 'rgb' | 'rgba'\r\n\t\t};\r\n\r\n\t\tvar m;\r\n\r\n\t\tif (m = str.match(/^\\W*([0-9A-F]{3,8})\\W*$/i)) {\r\n\t\t\t// HEX notation\r\n\r\n\t\t\tif (m[1].length === 8) {\r\n\t\t\t\t// 8-char notation (= with alpha)\r\n\t\t\t\tret.format = 'hexa';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(6,2),16) / 255\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 6) {\r\n\t\t\t\t// 6-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 3) {\r\n\t\t\t\t// 3-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].charAt(0) + m[1].charAt(0),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(1) + m[1].charAt(1),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(2) + m[1].charAt(2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (m = str.match(/^\\W*rgba?\\(([^)]*)\\)\\W*$/i)) {\r\n\t\t\t// rgb(...) or rgba(...) notation\r\n\r\n\t\t\tvar par = m[1].split(',');\r\n\t\t\tvar re = /^\\s*(\\d+|\\d*\\.\\d+|\\d+\\.\\d*)\\s*$/;\r\n\t\t\tvar mR, mG, mB, mA;\r\n\t\t\tif (\r\n\t\t\t\tpar.length >= 3 &&\r\n\t\t\t\t(mR = par[0].match(re)) &&\r\n\t\t\t\t(mG = par[1].match(re)) &&\r\n\t\t\t\t(mB = par[2].match(re))\r\n\t\t\t) {\r\n\t\t\t\tret.format = 'rgb';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseFloat(mR[1]) || 0,\r\n\t\t\t\t\tparseFloat(mG[1]) || 0,\r\n\t\t\t\t\tparseFloat(mB[1]) || 0,\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tpar.length >= 4 &&\r\n\t\t\t\t\t(mA = par[3].match(re))\r\n\t\t\t\t) {\r\n\t\t\t\t\tret.format = 'rgba';\r\n\t\t\t\t\tret.rgba[3] = parseFloat(mA[1]) || 0;\r\n\t\t\t\t}\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tparsePaletteValue : function (mixed) {\r\n\t\tvar vals = [];\r\n\r\n\t\tif (typeof mixed === 'string') { // input is a string of space separated color values\r\n\t\t\t// rgb() and rgba() may contain spaces too, so let's find all color values by regex\r\n\t\t\tmixed.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\\(([^)]*)\\)/ig, function (val) {\r\n\t\t\t\tvals.push(val);\r\n\t\t\t});\r\n\t\t} else if (Array.isArray(mixed)) { // input is an array of color values\r\n\t\t\tvals = mixed;\r\n\t\t}\r\n\r\n\t\t// convert all values into uniform color format\r\n\r\n\t\tvar colors = [];\r\n\r\n\t\tfor (var i = 0; i < vals.length; i++) {\r\n\t\t\tvar color = jsc.parseColorString(vals[i]);\r\n\t\t\tif (color) {\r\n\t\t\t\tcolors.push(color);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn colors;\r\n\t},\r\n\r\n\r\n\tcontainsTranparentColor : function (colors) {\r\n\t\tfor (var i = 0; i < colors.length; i++) {\r\n\t\t\tvar a = colors[i].rgba[3];\r\n\t\t\tif (a !== null && a < 1.0) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tisAlphaFormat : function (format) {\r\n\t\tswitch (format.toLowerCase()) {\r\n\t\tcase 'hexa':\r\n\t\tcase 'rgba':\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\t// Canvas scaling for retina displays\r\n\t//\r\n\t// adapted from https://www.html5rocks.com/en/tutorials/canvas/hidpi/\r\n\t//\r\n\tscaleCanvasForHighDPR : function (canvas) {\r\n\t\tvar dpr = window.devicePixelRatio || 1;\r\n\t\tcanvas.width *= dpr;\r\n\t\tcanvas.height *= dpr;\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\t\tctx.scale(dpr, dpr);\r\n\t},\r\n\r\n\r\n\tgenColorPreviewCanvas : function (color, separatorPos, specWidth, scaleForHighDPR) {\r\n\r\n\t\tvar sepW = Math.round(jsc.pub.previewSeparator.length);\r\n\t\tvar sqSize = jsc.pub.chessboardSize;\r\n\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\tvar cWidth = specWidth ? specWidth : sqSize * 2;\r\n\t\tvar cHeight = sqSize * 2;\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tcanvas.width = cWidth;\r\n\t\tcanvas.height = cHeight;\r\n\t\tif (scaleForHighDPR) {\r\n\t\t\tjsc.scaleCanvasForHighDPR(canvas);\r\n\t\t}\r\n\r\n\t\t// transparency chessboard - background\r\n\t\tctx.fillStyle = sqColor1;\r\n\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\r\n\t\t// transparency chessboard - squares\r\n\t\tctx.fillStyle = sqColor2;\r\n\t\tfor (var x = 0; x < cWidth; x += sqSize * 2) {\r\n\t\t\tctx.fillRect(x, 0, sqSize, sqSize);\r\n\t\t\tctx.fillRect(x + sqSize, sqSize, sqSize, sqSize);\r\n\t\t}\r\n\r\n\t\tif (color) {\r\n\t\t\t// actual color in foreground\r\n\t\t\tctx.fillStyle = color;\r\n\t\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\t\t}\r\n\r\n\t\tvar start = null;\r\n\t\tswitch (separatorPos) {\r\n\t\t\tcase 'left':\r\n\t\t\t\tstart = 0;\r\n\t\t\t\tctx.clearRect(0, 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'right':\r\n\t\t\t\tstart = cWidth - sepW;\r\n\t\t\t\tctx.clearRect(cWidth - (sepW/2), 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (start !== null) {\r\n\t\t\tctx.lineWidth = 1;\r\n\t\t\tfor (var i = 0; i < jsc.pub.previewSeparator.length; i += 1) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.strokeStyle = jsc.pub.previewSeparator[i];\r\n\t\t\t\tctx.moveTo(0.5 + start + i, 0);\r\n\t\t\t\tctx.lineTo(0.5 + start + i, cHeight);\r\n\t\t\t\tctx.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcanvas: canvas,\r\n\t\t\twidth: cWidth,\r\n\t\t\theight: cHeight,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\t// if position or width is not set => fill the entire element (0%-100%)\r\n\tgenColorPreviewGradient : function (color, position, width) {\r\n\t\tvar params = [];\r\n\r\n\t\tif (position && width) {\r\n\t\t\tparams = [\r\n\t\t\t\t'to ' + {'left':'right', 'right':'left'}[position],\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' ' + width + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) ' + (width + 1) + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) 100%',\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tparams = [\r\n\t\t\t\t'to right',\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' 100%',\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\treturn jsc.linearGradient.apply(this, params);\r\n\t},\r\n\r\n\r\n\tredrawPosition : function () {\r\n\r\n\t\tif (!jsc.picker || !jsc.picker.owner) {\r\n\t\t\treturn; // picker is not shown\r\n\t\t}\r\n\r\n\t\tvar thisObj = jsc.picker.owner;\r\n\r\n\t\tvar tp, vp;\r\n\r\n\t\tif (thisObj.fixed) {\r\n\t\t\t// Fixed elements are positioned relative to viewport,\r\n\t\t\t// therefore we can ignore the scroll offset\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement, true); // target pos\r\n\t\t\tvp = [0, 0]; // view pos\r\n\t\t} else {\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement); // target pos\r\n\t\t\tvp = jsc.getViewPos(); // view pos\r\n\t\t}\r\n\r\n\t\tvar ts = jsc.getElementSize(thisObj.targetElement); // target size\r\n\t\tvar vs = jsc.getViewSize(); // view size\r\n\t\tvar pd = jsc.getPickerDims(thisObj);\r\n\t\tvar ps = [pd.borderW, pd.borderH]; // picker outer size\r\n\t\tvar a, b, c;\r\n\t\tswitch (thisObj.position.toLowerCase()) {\r\n\t\t\tcase 'left': a=1; b=0; c=-1; break;\r\n\t\t\tcase 'right':a=1; b=0; c=1; break;\r\n\t\t\tcase 'top': a=0; b=1; c=-1; break;\r\n\t\t\tdefault: a=0; b=1; c=1; break;\r\n\t\t}\r\n\t\tvar l = (ts[b]+ps[b])/2;\r\n\r\n\t\t// compute picker position\r\n\t\tif (!thisObj.smartPosition) {\r\n\t\t\tvar pp = [\r\n\t\t\t\ttp[a],\r\n\t\t\t\ttp[b]+ts[b]-l+l*c\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tvar pp = [\r\n\t\t\t\t-vp[a]+tp[a]+ps[a] > vs[a] ?\r\n\t\t\t\t\t(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :\r\n\t\t\t\t\ttp[a],\r\n\t\t\t\t-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?\r\n\t\t\t\t\t(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :\r\n\t\t\t\t\t(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tvar x = pp[a];\r\n\t\tvar y = pp[b];\r\n\t\tvar positionValue = thisObj.fixed ? 'fixed' : 'absolute';\r\n\t\tvar contractShadow =\r\n\t\t\t(pp[0] + ps[0] > tp[0] || pp[0] < tp[0] + ts[0]) &&\r\n\t\t\t(pp[1] + ps[1] < tp[1] + ts[1]);\r\n\r\n\t\tjsc._drawPosition(thisObj, x, y, positionValue, contractShadow);\r\n\t},\r\n\r\n\r\n\t_drawPosition : function (thisObj, x, y, positionValue, contractShadow) {\r\n\t\tvar vShadow = contractShadow ? 0 : thisObj.shadowBlur; // px\r\n\r\n\t\tjsc.picker.wrap.style.position = positionValue;\r\n\t\tjsc.picker.wrap.style.left = x + 'px';\r\n\t\tjsc.picker.wrap.style.top = y + 'px';\r\n\r\n\t\tjsc.setBoxShadow(\r\n\t\t\tjsc.picker.boxS,\r\n\t\t\tthisObj.shadow ?\r\n\t\t\t\tnew jsc.BoxShadow(0, vShadow, thisObj.shadowBlur, 0, thisObj.shadowColor) :\r\n\t\t\t\tnull);\r\n\t},\r\n\r\n\r\n\tgetPickerDims : function (thisObj) {\r\n\t\tvar w = 2 * thisObj.controlBorderWidth + thisObj.width;\r\n\t\tvar h = 2 * thisObj.controlBorderWidth + thisObj.height;\r\n\r\n\t\tvar sliderSpace = 2 * thisObj.controlBorderWidth + 2 * jsc.getControlPadding(thisObj) + thisObj.sliderSize;\r\n\r\n\t\tif (jsc.getSliderChannel(thisObj)) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\t\tif (thisObj.hasAlphaChannel()) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\r\n\t\tvar pal = jsc.getPaletteDims(thisObj, w);\r\n\r\n\t\tif (pal.height) {\r\n\t\t\th += pal.height + thisObj.padding;\r\n\t\t}\r\n\t\tif (thisObj.closeButton) {\r\n\t\t\th += 2 * thisObj.controlBorderWidth + thisObj.padding + thisObj.buttonHeight;\r\n\t\t}\r\n\r\n\t\tvar pW = w + (2 * thisObj.padding);\r\n\t\tvar pH = h + (2 * thisObj.padding);\r\n\r\n\t\treturn {\r\n\t\t\tcontentW: w,\r\n\t\t\tcontentH: h,\r\n\t\t\tpaddedW: pW,\r\n\t\t\tpaddedH: pH,\r\n\t\t\tborderW: pW + (2 * thisObj.borderWidth),\r\n\t\t\tborderH: pH + (2 * thisObj.borderWidth),\r\n\t\t\tpalette: pal,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetPaletteDims : function (thisObj, width) {\r\n\t\tvar cols = 0, rows = 0, cellW = 0, cellH = 0, height = 0;\r\n\t\tvar sampleCount = thisObj._palette ? thisObj._palette.length : 0;\r\n\r\n\t\tif (sampleCount) {\r\n\t\t\tcols = thisObj.paletteCols;\r\n\t\t\trows = cols > 0 ? Math.ceil(sampleCount / cols) : 0;\r\n\r\n\t\t\t// color sample's dimensions (includes border)\r\n\t\t\tcellW = Math.max(1, Math.floor((width - ((cols - 1) * thisObj.paletteSpacing)) / cols));\r\n\t\t\tcellH = thisObj.paletteHeight ? Math.min(thisObj.paletteHeight, cellW) : cellW;\r\n\t\t}\r\n\r\n\t\tif (rows) {\r\n\t\t\theight =\r\n\t\t\t\trows * cellH +\r\n\t\t\t\t(rows - 1) * thisObj.paletteSpacing;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcols: cols,\r\n\t\t\trows: rows,\r\n\t\t\tcellW: cellW,\r\n\t\t\tcellH: cellH,\r\n\t\t\twidth: width,\r\n\t\t\theight: height,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetControlPadding : function (thisObj) {\r\n\t\treturn Math.max(\r\n\t\t\tthisObj.padding / 2,\r\n\t\t\t(2 * thisObj.pointerBorderWidth + thisObj.pointerThickness) - thisObj.controlBorderWidth\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tgetPadYChannel : function (thisObj) {\r\n\t\tswitch (thisObj.mode.charAt(1).toLowerCase()) {\r\n\t\t\tcase 'v': return 'v'; break;\r\n\t\t}\r\n\t\treturn 's';\r\n\t},\r\n\r\n\r\n\tgetSliderChannel : function (thisObj) {\r\n\t\tif (thisObj.mode.length > 2) {\r\n\t\t\tswitch (thisObj.mode.charAt(2).toLowerCase()) {\r\n\t\t\t\tcase 's': return 's'; break;\r\n\t\t\t\tcase 'v': return 'v'; break;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// calls function specified in picker's property\r\n\ttriggerCallback : function (thisObj, prop) {\r\n\t\tif (!thisObj[prop]) {\r\n\t\t\treturn; // callback func not specified\r\n\t\t}\r\n\t\tvar callback = null;\r\n\r\n\t\tif (typeof thisObj[prop] === 'string') {\r\n\t\t\t// string with code\r\n\t\t\ttry {\r\n\t\t\t\tcallback = new Function (thisObj[prop]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// function\r\n\t\t\tcallback = thisObj[prop];\r\n\t\t}\r\n\r\n\t\tif (callback) {\r\n\t\t\tcallback.call(thisObj);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// Triggers a color change related event(s) on all picker instances.\r\n\t// It is possible to specify multiple events separated with a space.\r\n\ttriggerGlobal : function (eventNames) {\r\n\t\tvar inst = jsc.getInstances();\r\n\t\tfor (var i = 0; i < inst.length; i += 1) {\r\n\t\t\tinst[i].trigger(eventNames);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t_pointerMoveEvent : {\r\n\t\tmouse: 'mousemove',\r\n\t\ttouch: 'touchmove'\r\n\t},\r\n\t_pointerEndEvent : {\r\n\t\tmouse: 'mouseup',\r\n\t\ttouch: 'touchend'\r\n\t},\r\n\r\n\r\n\t_pointerOrigin : null,\r\n\t_capturedTarget : null,\r\n\r\n\r\n\tonDocumentKeyUp : function (e) {\r\n\t\tif (['Tab', 'Escape'].indexOf(jsc.eventKey(e)) !== -1) {\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonWindowResize : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonWindowScroll : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonParentScroll : function (e) {\r\n\t\t// hide the picker when one of the parent elements is scrolled\r\n\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\tjsc.picker.owner.tryHide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentMouseDown : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (target.jscolor && target.jscolor instanceof jsc.pub) { // clicked targetElement -> show picker\r\n\t\t\tif (target.jscolor.showOnClick && !target.disabled) {\r\n\t\t\t\ttarget.jscolor.show();\r\n\t\t\t}\r\n\t\t} else if (jsc.getData(target, 'gui')) { // clicked jscolor's GUI element\r\n\t\t\tvar control = jsc.getData(target, 'control');\r\n\t\t\tif (control) {\r\n\t\t\t\t// jscolor's control\r\n\t\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'mouse');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// mouse is outside the picker's controls -> hide the color picker!\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonPickerTouchStart : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (jsc.getData(target, 'control')) {\r\n\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'touch');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonControlPointerStart : function (e, target, controlName, pointerType) {\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\r\n\t\tjsc.preventDefault(e);\r\n\t\tjsc.captureTarget(target);\r\n\r\n\t\tvar registerDragEvents = function (doc, offset) {\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerMoveEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerMove(e, target, controlName, pointerType, offset));\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerEndEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerEnd(e, target, controlName, pointerType));\r\n\t\t};\r\n\r\n\t\tregisterDragEvents(window.document, [0, 0]);\r\n\r\n\t\tif (window.parent && window.frameElement) {\r\n\t\t\tvar rect = window.frameElement.getBoundingClientRect();\r\n\t\t\tvar ofs = [-rect.left, -rect.top];\r\n\t\t\tregisterDragEvents(window.parent.window.document, ofs);\r\n\t\t}\r\n\r\n\t\tvar abs = jsc.getAbsPointerPos(e);\r\n\t\tvar rel = jsc.getRelPointerPos(e);\r\n\t\tjsc._pointerOrigin = {\r\n\t\t\tx: abs.x - rel.x,\r\n\t\t\ty: abs.y - rel.y\r\n\t\t};\r\n\r\n\t\tswitch (controlName) {\r\n\t\tcase 'pad':\r\n\t\t\t// if the value slider is at the bottom, move it up\r\n\t\t\tif (jsc.getSliderChannel(thisObj) === 'v' && thisObj.channels.v === 0) {\r\n\t\t\t\tthisObj.fromHSVA(null, null, 100, null);\r\n\t\t\t}\r\n\t\t\tjsc.setPad(thisObj, e, 0, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'sld':\r\n\t\t\tjsc.setSld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'asld':\r\n\t\t\tjsc.setASld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tthisObj.trigger('input');\r\n\t},\r\n\r\n\r\n\tonDocumentPointerMove : function (e, target, controlName, pointerType, offset) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tswitch (controlName) {\r\n\t\t\tcase 'pad':\r\n\t\t\t\tjsc.setPad(thisObj, e, offset[0], offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'sld':\r\n\t\t\t\tjsc.setSld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'asld':\r\n\t\t\t\tjsc.setASld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthisObj.trigger('input');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentPointerEnd : function (e, target, controlName, pointerType) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tjsc.detachGroupEvents('drag');\r\n\t\t\tjsc.releaseTarget();\r\n\r\n\t\t\t// Always trigger changes AFTER detaching outstanding mouse handlers,\r\n\t\t\t// in case some color change that occured in user-defined onChange/onInput handler\r\n\t\t\t// intruded into current mouse events\r\n\t\t\tthisObj.trigger('input');\r\n\t\t\tthisObj.trigger('change');\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tonPaletteSampleClick : function (e) {\r\n\t\tvar target = e.currentTarget;\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\tvar color = jsc.getData(target, 'color');\r\n\r\n\t\t// when format is flexible, use the original format of this color sample\r\n\t\tif (thisObj.format.toLowerCase() === 'any') {\r\n\t\t\tthisObj._setFormat(color.format); // adapt format\r\n\t\t\tif (!jsc.isAlphaFormat(thisObj.getFormat())) {\r\n\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if this color doesn't specify alpha, use alpha of 1.0 (if applicable)\r\n\t\tif (color.rgba[3] === null) {\r\n\t\t\tif (thisObj.paletteSetsAlpha === true || (thisObj.paletteSetsAlpha === 'auto' && thisObj._paletteHasTransparency)) {\r\n\t\t\t\tcolor.rgba[3] = 1.0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromRGBA.apply(thisObj, color.rgba);\r\n\r\n\t\tthisObj.trigger('input');\r\n\t\tthisObj.trigger('change');\r\n\r\n\t\tif (thisObj.hideOnPaletteClick) {\r\n\t\t\tthisObj.hide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetPad : function (thisObj, e, ofsX, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar x = ofsX + pointerAbs.x - jsc._pointerOrigin.x - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\r\n\t\tvar xVal = x * (360 / (thisObj.width - 1));\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getPadYChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(xVal, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(xVal, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetSld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getSliderChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(null, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(null, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetASld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 1.0 - (y * (1.0 / (thisObj.height - 1)));\r\n\r\n\t\tif (yVal < 1.0) {\r\n\t\t\t// if format is flexible and the current format doesn't support alpha, switch to a suitable one\r\n\t\t\tvar fmt = thisObj.getFormat();\r\n\t\t\tif (thisObj.format.toLowerCase() === 'any' && !jsc.isAlphaFormat(fmt)) {\r\n\t\t\t\tthisObj._setFormat(fmt === 'hex' ? 'hexa' : 'rgba');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromHSVA(null, null, null, yVal);\r\n\t},\r\n\r\n\r\n\tcreatePadCanvas : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, type) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar hGrad = ctx.createLinearGradient(0, 0, canvas.width, 0);\r\n\t\t\thGrad.addColorStop(0 / 6, '#F00');\r\n\t\t\thGrad.addColorStop(1 / 6, '#FF0');\r\n\t\t\thGrad.addColorStop(2 / 6, '#0F0');\r\n\t\t\thGrad.addColorStop(3 / 6, '#0FF');\r\n\t\t\thGrad.addColorStop(4 / 6, '#00F');\r\n\t\t\thGrad.addColorStop(5 / 6, '#F0F');\r\n\t\t\thGrad.addColorStop(6 / 6, '#F00');\r\n\r\n\t\t\tctx.fillStyle = hGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar vGrad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tswitch (type.toLowerCase()) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(255,255,255,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(255,255,255,1)');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(0,0,0,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(0,0,0,1)');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tctx.fillStyle = vGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateSliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color1, color2) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color1);\r\n\t\t\tgrad.addColorStop(1, color2);\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateASliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar sqSize = canvas.width / 2;\r\n\t\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\t\t// dark gray background\r\n\t\t\tctx.fillStyle = sqColor1;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tif (sqSize > 0) { // to avoid infinite loop\r\n\t\t\t\tfor (var y = 0; y < canvas.height; y += sqSize * 2) {\r\n\t\t\t\t\t// light gray squares\r\n\t\t\t\t\tctx.fillStyle = sqColor2;\r\n\t\t\t\t\tctx.fillRect(0, y, sqSize, sqSize);\r\n\t\t\t\t\tctx.fillRect(sqSize, y + sqSize, sqSize, sqSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color);\r\n\t\t\tgrad.addColorStop(1, 'rgba(0,0,0,0)');\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tBoxShadow : (function () {\r\n\t\tvar BoxShadow = function (hShadow, vShadow, blur, spread, color, inset) {\r\n\t\t\tthis.hShadow = hShadow;\r\n\t\t\tthis.vShadow = vShadow;\r\n\t\t\tthis.blur = blur;\r\n\t\t\tthis.spread = spread;\r\n\t\t\tthis.color = color;\r\n\t\t\tthis.inset = !!inset;\r\n\t\t};\r\n\r\n\t\tBoxShadow.prototype.toString = function () {\r\n\t\t\tvar vals = [\r\n\t\t\t\tMath.round(this.hShadow) + 'px',\r\n\t\t\t\tMath.round(this.vShadow) + 'px',\r\n\t\t\t\tMath.round(this.blur) + 'px',\r\n\t\t\t\tMath.round(this.spread) + 'px',\r\n\t\t\t\tthis.color\r\n\t\t\t];\r\n\t\t\tif (this.inset) {\r\n\t\t\t\tvals.push('inset');\r\n\t\t\t}\r\n\t\t\treturn vals.join(' ');\r\n\t\t};\r\n\r\n\t\treturn BoxShadow;\r\n\t})(),\r\n\r\n\r\n\tflags : {\r\n\t\tleaveValue : 1 << 0,\r\n\t\tleaveAlpha : 1 << 1,\r\n\t\tleavePreview : 1 << 2,\r\n\t},\r\n\r\n\r\n\tenumOpts : {\r\n\t\tformat: ['auto', 'any', 'hex', 'hexa', 'rgb', 'rgba'],\r\n\t\tpreviewPosition: ['left', 'right'],\r\n\t\tmode: ['hsv', 'hvs', 'hs', 'hv'],\r\n\t\tposition: ['left', 'right', 'top', 'bottom'],\r\n\t\talphaChannel: ['auto', true, false],\r\n\t\tpaletteSetsAlpha: ['auto', true, false],\r\n\t},\r\n\r\n\r\n\tdeprecatedOpts : {\r\n\t\t// : ( can be null)\r\n\t\t'styleElement': 'previewElement',\r\n\t\t'onFineChange': 'onInput',\r\n\t\t'overwriteImportant': 'forceStyle',\r\n\t\t'closable': 'closeButton',\r\n\t\t'insetWidth': 'controlBorderWidth',\r\n\t\t'insetColor': 'controlBorderColor',\r\n\t\t'refine': null,\r\n\t},\r\n\r\n\r\n\tdocsRef : ' ' + 'See https://jscolor.com/docs/',\r\n\r\n\r\n\t//\r\n\t// Usage:\r\n\t// var myPicker = new JSColor( [, ])\r\n\t//\r\n\t// (constructor is accessible via both 'jscolor' and 'JSColor' name)\r\n\t//\r\n\r\n\tpub : function (targetElement, opts) {\r\n\r\n\t\tvar THIS = this;\r\n\r\n\t\tif (!opts) {\r\n\t\t\topts = {};\r\n\t\t}\r\n\r\n\t\tthis.channels = {\r\n\t\t\tr: 255, // red [0-255]\r\n\t\t\tg: 255, // green [0-255]\r\n\t\t\tb: 255, // blue [0-255]\r\n\t\t\th: 0, // hue [0-360]\r\n\t\t\ts: 0, // saturation [0-100]\r\n\t\t\tv: 100, // value (brightness) [0-100]\r\n\t\t\ta: 1.0, // alpha (opacity) [0.0 - 1.0]\r\n\t\t};\r\n\r\n\t\t// General options\r\n\t\t//\r\n\t\tthis.format = 'auto'; // 'auto' | 'any' | 'hex' | 'hexa' | 'rgb' | 'rgba' - Format of the input/output value\r\n\t\tthis.value = undefined; // INITIAL color value in any supported format. To change it later, use method fromString(), fromHSVA(), fromRGBA() or channel()\r\n\t\tthis.alpha = undefined; // INITIAL alpha value. To change it later, call method channel('A', )\r\n\t\tthis.onChange = undefined; // called when color changes. Value can be either a function or a string with JS code.\r\n\t\tthis.onInput = undefined; // called repeatedly as the color is being changed, e.g. while dragging a slider. Value can be either a function or a string with JS code.\r\n\t\tthis.valueElement = undefined; // element that will be used to display and input the color value\r\n\t\tthis.alphaElement = undefined; // element that will be used to display and input the alpha (opacity) value\r\n\t\tthis.previewElement = undefined; // element that will preview the picked color using CSS background\r\n\t\tthis.previewPosition = 'left'; // 'left' | 'right' - position of the color preview in previewElement\r\n\t\tthis.previewSize = 32; // (px) width of the color preview displayed in previewElement\r\n\t\tthis.previewPadding = 8; // (px) space between color preview and content of the previewElement\r\n\t\tthis.required = true; // whether the associated text input must always contain a color value. If false, the input can be left empty.\r\n\t\tthis.hash = true; // whether to prefix the HEX color code with # symbol (only applicable for HEX format)\r\n\t\tthis.uppercase = true; // whether to show the HEX color code in upper case (only applicable for HEX format)\r\n\t\tthis.forceStyle = true; // whether to overwrite CSS style of the previewElement using !important flag\r\n\r\n\t\t// Color Picker options\r\n\t\t//\r\n\t\tthis.width = 181; // width of the color spectrum (in px)\r\n\t\tthis.height = 101; // height of the color spectrum (in px)\r\n\t\tthis.mode = 'HSV'; // 'HSV' | 'HVS' | 'HS' | 'HV' - layout of the color picker controls\r\n\t\tthis.alphaChannel = 'auto'; // 'auto' | true | false - if alpha channel is enabled, the alpha slider will be visible. If 'auto', it will be determined according to color format\r\n\t\tthis.position = 'bottom'; // 'left' | 'right' | 'top' | 'bottom' - position relative to the target element\r\n\t\tthis.smartPosition = true; // automatically change picker position when there is not enough space for it\r\n\t\tthis.showOnClick = true; // whether to show the picker when user clicks its target element\r\n\t\tthis.hideOnLeave = true; // whether to automatically hide the picker when user leaves its target element (e.g. upon clicking the document)\r\n\t\tthis.palette = []; // colors to be displayed in the palette, specified as an array or a string of space separated color values (in any supported format)\r\n\t\tthis.paletteCols = 10; // number of columns in the palette\r\n\t\tthis.paletteSetsAlpha = 'auto'; // 'auto' | true | false - if true, palette colors that don't specify alpha will set alpha to 1.0\r\n\t\tthis.paletteHeight = 16; // maximum height (px) of a row in the palette\r\n\t\tthis.paletteSpacing = 4; // distance (px) between color samples in the palette\r\n\t\tthis.hideOnPaletteClick = false; // when set to true, clicking the palette will also hide the color picker\r\n\t\tthis.sliderSize = 16; // px\r\n\t\tthis.crossSize = 8; // px\r\n\t\tthis.closeButton = false; // whether to display the Close button\r\n\t\tthis.closeText = 'Close';\r\n\t\tthis.buttonColor = 'rgba(0,0,0,1)'; // CSS color\r\n\t\tthis.buttonHeight = 18; // px\r\n\t\tthis.padding = 12; // px\r\n\t\tthis.backgroundColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.borderWidth = 1; // px\r\n\t\tthis.borderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.borderRadius = 8; // px\r\n\t\tthis.controlBorderWidth = 1; // px\r\n\t\tthis.controlBorderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.shadow = true; // whether to display a shadow\r\n\t\tthis.shadowBlur = 15; // px\r\n\t\tthis.shadowColor = 'rgba(0,0,0,0.2)'; // CSS color\r\n\t\tthis.pointerColor = 'rgba(76,76,76,1)'; // CSS color\r\n\t\tthis.pointerBorderWidth = 1; // px\r\n\t\tthis.pointerBorderColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.pointerThickness = 2; // px\r\n\t\tthis.zIndex = 5000;\r\n\t\tthis.container = undefined; // where to append the color picker (BODY element by default)\r\n\r\n\t\t// Experimental\r\n\t\t//\r\n\t\tthis.minS = 0; // min allowed saturation (0 - 100)\r\n\t\tthis.maxS = 100; // max allowed saturation (0 - 100)\r\n\t\tthis.minV = 0; // min allowed value (brightness) (0 - 100)\r\n\t\tthis.maxV = 100; // max allowed value (brightness) (0 - 100)\r\n\t\tthis.minA = 0.0; // min allowed alpha (opacity) (0.0 - 1.0)\r\n\t\tthis.maxA = 1.0; // max allowed alpha (opacity) (0.0 - 1.0)\r\n\r\n\r\n\t\t// Getter: option(name)\r\n\t\t// Setter: option(name, value)\r\n\t\t// option({name:value, ...})\r\n\t\t//\r\n\t\tthis.option = function () {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\tthrow new Error('No option specified');\r\n\t\t\t}\r\n\r\n\t\t\tif (arguments.length === 1 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// getting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn getOption(arguments[0]);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t} else if (arguments.length >= 2 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// setting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (!setOption(arguments[0], arguments[1])) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (arguments.length === 1 && typeof arguments[0] === 'object') {\r\n\t\t\t\t// setting multiple options\r\n\t\t\t\tvar opts = arguments[0];\r\n\t\t\t\tvar success = true;\r\n\t\t\t\tfor (var opt in opts) {\r\n\t\t\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tif (!setOption(opt, opts[opt])) {\r\n\t\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn success;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Invalid arguments');\r\n\t\t}\r\n\r\n\r\n\t\t// Getter: channel(name)\r\n\t\t// Setter: channel(name, value)\r\n\t\t//\r\n\t\tthis.channel = function (name, value) {\r\n\t\t\tif (typeof name !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for channel name: ' + name);\r\n\t\t\t}\r\n\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\t// getting channel value\r\n\t\t\t\tif (!this.channels.hasOwnProperty(name.toLowerCase())) {\r\n\t\t\t\t\tconsole.warn('Getting unknown channel: ' + name);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.channels[name.toLowerCase()];\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// setting channel value\r\n\t\t\t\tvar res = false;\r\n\t\t\t\tswitch (name.toLowerCase()) {\r\n\t\t\t\t\tcase 'r': res = this.fromRGBA(value, null, null, null); break;\r\n\t\t\t\t\tcase 'g': res = this.fromRGBA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'b': res = this.fromRGBA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'h': res = this.fromHSVA(value, null, null, null); break;\r\n\t\t\t\t\tcase 's': res = this.fromHSVA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'v': res = this.fromHSVA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'a': res = this.fromHSVA(null, null, null, value); break;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tconsole.warn('Setting unknown channel: ' + name);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (res) {\r\n\t\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\t// Triggers given input event(s) by:\r\n\t\t// - executing on callback specified as picker's option\r\n\t\t// - triggering standard DOM event listeners attached to the value element\r\n\t\t//\r\n\t\t// It is possible to specify multiple events separated with a space.\r\n\t\t//\r\n\t\tthis.trigger = function (eventNames) {\r\n\t\t\tvar evs = jsc.strList(eventNames);\r\n\t\t\tfor (var i = 0; i < evs.length; i += 1) {\r\n\t\t\t\tvar ev = evs[i].toLowerCase();\r\n\r\n\t\t\t\t// trigger a callback\r\n\t\t\t\tvar callbackProp = null;\r\n\t\t\t\tswitch (ev) {\r\n\t\t\t\t\tcase 'input': callbackProp = 'onInput'; break;\r\n\t\t\t\t\tcase 'change': callbackProp = 'onChange'; break;\r\n\t\t\t\t}\r\n\t\t\t\tif (callbackProp) {\r\n\t\t\t\t\tjsc.triggerCallback(this, callbackProp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// trigger standard DOM event listeners on the value element\r\n\t\t\t\tjsc.triggerInputEvent(this.valueElement, ev, true, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t// h: 0-360\r\n\t\t// s: 0-100\r\n\t\t// v: 0-100\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromHSVA = function (h, s, v, a, flags) { // null = don't change\r\n\t\t\tif (h === undefined) { h = null; }\r\n\t\t\tif (s === undefined) { s = null; }\r\n\t\t\tif (v === undefined) { v = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (h !== null) {\r\n\t\t\t\tif (isNaN(h)) { return false; }\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, h));\r\n\t\t\t}\r\n\t\t\tif (s !== null) {\r\n\t\t\t\tif (isNaN(s)) { return false; }\r\n\t\t\t\tthis.channels.s = Math.max(0, Math.min(100, this.maxS, s), this.minS);\r\n\t\t\t}\r\n\t\t\tif (v !== null) {\r\n\t\t\t\tif (isNaN(v)) { return false; }\r\n\t\t\t\tthis.channels.v = Math.max(0, Math.min(100, this.maxV, v), this.minV);\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar rgb = jsc.HSV_RGB(\r\n\t\t\t\tthis.channels.h,\r\n\t\t\t\tthis.channels.s,\r\n\t\t\t\tthis.channels.v\r\n\t\t\t);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// r: 0-255\r\n\t\t// g: 0-255\r\n\t\t// b: 0-255\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromRGBA = function (r, g, b, a, flags) { // null = don't change\r\n\t\t\tif (r === undefined) { r = null; }\r\n\t\t\tif (g === undefined) { g = null; }\r\n\t\t\tif (b === undefined) { b = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (r !== null) {\r\n\t\t\t\tif (isNaN(r)) { return false; }\r\n\t\t\t\tr = Math.max(0, Math.min(255, r));\r\n\t\t\t}\r\n\t\t\tif (g !== null) {\r\n\t\t\t\tif (isNaN(g)) { return false; }\r\n\t\t\t\tg = Math.max(0, Math.min(255, g));\r\n\t\t\t}\r\n\t\t\tif (b !== null) {\r\n\t\t\t\tif (isNaN(b)) { return false; }\r\n\t\t\t\tb = Math.max(0, Math.min(255, b));\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar hsv = jsc.RGB_HSV(\r\n\t\t\t\tr===null ? this.channels.r : r,\r\n\t\t\t\tg===null ? this.channels.g : g,\r\n\t\t\t\tb===null ? this.channels.b : b\r\n\t\t\t);\r\n\t\t\tif (hsv[0] !== null) {\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, hsv[0]));\r\n\t\t\t}\r\n\t\t\tif (hsv[2] !== 0) { // fully black color stays black through entire saturation range, so let's not change saturation\r\n\t\t\t\tthis.channels.s = Math.max(0, this.minS, Math.min(100, this.maxS, hsv[1]));\r\n\t\t\t}\r\n\t\t\tthis.channels.v = Math.max(0, this.minV, Math.min(100, this.maxV, hsv[2]));\r\n\r\n\t\t\t// update RGB according to final HSV, as some values might be trimmed\r\n\t\t\tvar rgb = jsc.HSV_RGB(this.channels.h, this.channels.s, this.channels.v);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromHSVA() instead\r\n\t\t//\r\n\t\tthis.fromHSV = function (h, s, v, flags) {\r\n\t\t\tconsole.warn('fromHSV() method is DEPRECATED. Using fromHSVA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromHSVA(h, s, v, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromRGBA() instead\r\n\t\t//\r\n\t\tthis.fromRGB = function (r, g, b, flags) {\r\n\t\t\tconsole.warn('fromRGB() method is DEPRECATED. Using fromRGBA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromRGBA(r, g, b, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\tthis.fromString = function (str, flags) {\r\n\t\t\tif (!this.required && str.trim() === '') {\r\n\t\t\t\t// setting empty string to an optional color input\r\n\t\t\t\tthis.setPreviewElementBg(null);\r\n\t\t\t\tthis.setValueElementValue('');\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar color = jsc.parseColorString(str);\r\n\t\t\tif (!color) {\r\n\t\t\t\treturn false; // could not parse\r\n\t\t\t}\r\n\t\t\tif (this.format.toLowerCase() === 'any') {\r\n\t\t\t\tthis._setFormat(color.format); // adapt format\r\n\t\t\t\tif (!jsc.isAlphaFormat(this.getFormat())) {\r\n\t\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.fromRGBA(\r\n\t\t\t\tcolor.rgba[0],\r\n\t\t\t\tcolor.rgba[1],\r\n\t\t\t\tcolor.rgba[2],\r\n\t\t\t\tcolor.rgba[3],\r\n\t\t\t\tflags\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toString = function (format) {\r\n\t\t\tif (format === undefined) {\r\n\t\t\t\tformat = this.getFormat(); // format not specified -> use the current format\r\n\t\t\t}\r\n\t\t\tswitch (format.toLowerCase()) {\r\n\t\t\t\tcase 'hex': return this.toHEXString(); break;\r\n\t\t\t\tcase 'hexa': return this.toHEXAString(); break;\r\n\t\t\t\tcase 'rgb': return this.toRGBString(); break;\r\n\t\t\t\tcase 'rgba': return this.toRGBAString(); break;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXString = function () {\r\n\t\t\treturn jsc.hexColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXAString = function () {\r\n\t\t\treturn jsc.hexaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBString = function () {\r\n\t\t\treturn jsc.rgbColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBAString = function () {\r\n\t\t\treturn jsc.rgbaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toGrayscale = function () {\r\n\t\t\treturn (\r\n\t\t\t\t0.213 * this.channels.r +\r\n\t\t\t\t0.715 * this.channels.g +\r\n\t\t\t\t0.072 * this.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toCanvas = function () {\r\n\t\t\treturn jsc.genColorPreviewCanvas(this.toRGBAString()).canvas;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toDataURL = function () {\r\n\t\t\treturn this.toCanvas().toDataURL();\r\n\t\t};\r\n\r\n\r\n\t\tthis.toBackground = function () {\r\n\t\t\treturn jsc.pub.background(this.toRGBAString());\r\n\t\t};\r\n\r\n\r\n\t\tthis.isLight = function () {\r\n\t\t\treturn this.toGrayscale() > 255 / 2;\r\n\t\t};\r\n\r\n\r\n\t\tthis.hide = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdetachPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.show = function () {\r\n\t\t\tdrawPicker();\r\n\t\t};\r\n\r\n\r\n\t\tthis.redraw = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdrawPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.getFormat = function () {\r\n\t\t\treturn this._currentFormat;\r\n\t\t};\r\n\r\n\r\n\t\tthis._setFormat = function (format) {\r\n\t\t\tthis._currentFormat = format.toLowerCase();\r\n\t\t};\r\n\r\n\r\n\t\tthis.hasAlphaChannel = function () {\r\n\t\t\tif (this.alphaChannel === 'auto') {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tthis.format.toLowerCase() === 'any' || // format can change on the fly (e.g. from hex to rgba), so let's consider the alpha channel enabled\r\n\t\t\t\t\tjsc.isAlphaFormat(this.getFormat()) || // the current format supports alpha channel\r\n\t\t\t\t\tthis.alpha !== undefined || // initial alpha value is set, so we're working with alpha channel\r\n\t\t\t\t\tthis.alphaElement !== undefined // the alpha value is redirected, so we're working with alpha channel\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.alphaChannel; // the alpha channel is explicitly set\r\n\t\t};\r\n\r\n\r\n\t\tthis.processValueInput = function (str) {\r\n\t\t\tif (!this.fromString(str)) {\r\n\t\t\t\t// could not parse the color value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.processAlphaInput = function (str) {\r\n\t\t\tif (!this.fromHSVA(null, null, null, parseFloat(str))) {\r\n\t\t\t\t// could not parse the alpha value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.exposeColor = function (flags) {\r\n\t\t\tvar colorStr = this.toString();\r\n\t\t\tvar fmt = this.getFormat();\r\n\r\n\t\t\t// reflect current color in data- attribute\r\n\t\t\tjsc.setDataAttr(this.targetElement, 'current-color', colorStr);\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveValue) && this.valueElement) {\r\n\t\t\t\tif (fmt === 'hex' || fmt === 'hexa') {\r\n\t\t\t\t\tif (!this.uppercase) { colorStr = colorStr.toLowerCase(); }\r\n\t\t\t\t\tif (!this.hash) { colorStr = colorStr.replace(/^#/, ''); }\r\n\t\t\t\t}\r\n\t\t\t\tthis.setValueElementValue(colorStr);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveAlpha) && this.alphaElement) {\r\n\t\t\t\tvar alphaVal = Math.round(this.channels.a * 100) / 100;\r\n\t\t\t\tthis.setAlphaElementValue(alphaVal);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leavePreview) && this.previewElement) {\r\n\t\t\t\tvar previewPos = null; // 'left' | 'right' (null -> fill the entire element)\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t\t) {\r\n\t\t\t\t\tpreviewPos = this.previewPosition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.setPreviewElementBg(this.toRGBAString());\r\n\t\t\t}\r\n\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tredrawPad();\r\n\t\t\t\tredrawSld();\r\n\t\t\t\tredrawASld();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setPreviewElementBg = function (color) {\r\n\t\t\tif (!this.previewElement) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar position = null; // color preview position: null | 'left' | 'right'\r\n\t\t\tvar width = null; // color preview width: px | null = fill the entire element\r\n\t\t\tif (\r\n\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t) {\r\n\t\t\t\tposition = this.previewPosition;\r\n\t\t\t\twidth = this.previewSize;\r\n\t\t\t}\r\n\r\n\t\t\tvar backgrounds = [];\r\n\r\n\t\t\tif (!color) {\r\n\t\t\t\t// there is no color preview to display -> let's remove any previous background image\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'none',\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: 'no-repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// CSS gradient for background color preview\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: jsc.genColorPreviewGradient(\r\n\t\t\t\t\t\tcolor,\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\twidth ? width - jsc.pub.previewSeparator.length : null\r\n\t\t\t\t\t),\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// data URL of generated PNG image with a gray transparency chessboard\r\n\t\t\t\tvar preview = jsc.genColorPreviewCanvas(\r\n\t\t\t\t\t'rgba(0,0,0,0)',\r\n\t\t\t\t\tposition ? {'left':'right', 'right':'left'}[position] : null,\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\ttrue\r\n\t\t\t\t);\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'url(\\'' + preview.canvas.toDataURL() + '\\')',\r\n\t\t\t\t\tposition: (position || 'left') + ' top',\r\n\t\t\t\t\tsize: preview.width + 'px ' + preview.height + 'px',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar bg = {\r\n\t\t\t\timage: [],\r\n\t\t\t\tposition: [],\r\n\t\t\t\tsize: [],\r\n\t\t\t\trepeat: [],\r\n\t\t\t\torigin: [],\r\n\t\t\t};\r\n\t\t\tfor (var i = 0; i < backgrounds.length; i += 1) {\r\n\t\t\t\tbg.image.push(backgrounds[i].image);\r\n\t\t\t\tbg.position.push(backgrounds[i].position);\r\n\t\t\t\tbg.size.push(backgrounds[i].size);\r\n\t\t\t\tbg.repeat.push(backgrounds[i].repeat);\r\n\t\t\t\tbg.origin.push(backgrounds[i].origin);\r\n\t\t\t}\r\n\r\n\t\t\t// set previewElement's background-images\r\n\t\t\tvar sty = {\r\n\t\t\t\t'background-image': bg.image.join(', '),\r\n\t\t\t\t'background-position': bg.position.join(', '),\r\n\t\t\t\t'background-size': bg.size.join(', '),\r\n\t\t\t\t'background-repeat': bg.repeat.join(', '),\r\n\t\t\t\t'background-origin': bg.origin.join(', '),\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle);\r\n\r\n\r\n\t\t\t// set/restore previewElement's padding\r\n\t\t\tvar padding = {\r\n\t\t\t\tleft: null,\r\n\t\t\t\tright: null,\r\n\t\t\t};\r\n\t\t\tif (position) {\r\n\t\t\t\tpadding[position] = (this.previewSize + this.previewPadding) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\tvar sty = {\r\n\t\t\t\t'padding-left': padding.left,\r\n\t\t\t\t'padding-right': padding.right,\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle, true);\r\n\t\t};\r\n\r\n\r\n\t\tthis.setValueElementValue = function (str) {\r\n\t\t\tif (this.valueElement) {\r\n\t\t\t\tif (jsc.nodeName(this.valueElement) === 'input') {\r\n\t\t\t\t\tthis.valueElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.valueElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setAlphaElementValue = function (str) {\r\n\t\t\tif (this.alphaElement) {\r\n\t\t\t\tif (jsc.nodeName(this.alphaElement) === 'input') {\r\n\t\t\t\t\tthis.alphaElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.alphaElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis._processParentElementsInDOM = function () {\r\n\t\t\tif (this._parentElementsProcessed) { return; }\r\n\t\t\tthis._parentElementsProcessed = true;\r\n\r\n\t\t\tvar elm = this.targetElement;\r\n\t\t\tdo {\r\n\t\t\t\t// If the target element or one of its parent nodes has fixed position,\r\n\t\t\t\t// then use fixed positioning instead\r\n\t\t\t\tvar compStyle = jsc.getCompStyle(elm);\r\n\t\t\t\tif (compStyle.position && compStyle.position.toLowerCase() === 'fixed') {\r\n\t\t\t\t\tthis.fixed = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (elm !== this.targetElement) {\r\n\t\t\t\t\t// Ensure to attach onParentScroll only once to each parent element\r\n\t\t\t\t\t// (multiple targetElements can share the same parent nodes)\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Note: It's not just offsetParents that can be scrollable,\r\n\t\t\t\t\t// that's why we loop through all parent nodes\r\n\t\t\t\t\tif (!jsc.getData(elm, 'hasScrollListener')) {\r\n\t\t\t\t\t\telm.addEventListener('scroll', jsc.onParentScroll, false);\r\n\t\t\t\t\t\tjsc.setData(elm, 'hasScrollListener', true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} while ((elm = elm.parentNode) && jsc.nodeName(elm) !== 'body');\r\n\t\t};\r\n\r\n\r\n\t\tthis.tryHide = function () {\r\n\t\t\tif (this.hideOnLeave) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.set__palette = function (val) {\r\n\t\t\tthis.palette = val;\r\n\t\t\tthis._palette = jsc.parsePaletteValue(val);\r\n\t\t\tthis._paletteHasTransparency = jsc.containsTranparentColor(this._palette);\r\n\t\t};\r\n\r\n\r\n\t\tfunction setOption (option, value) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// enum option\r\n\t\t\tif (jsc.enumOpts.hasOwnProperty(option)) {\r\n\t\t\t\tif (typeof value === 'string') { // enum string values are case insensitive\r\n\t\t\t\t\tvalue = value.toLowerCase();\r\n\t\t\t\t}\r\n\t\t\t\tif (jsc.enumOpts[option].indexOf(value) === -1) {\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' has invalid value: ' + value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar setter = 'set__' + option;\r\n\r\n\t\t\tif (typeof THIS[setter] === 'function') { // a setter exists for this option\r\n\t\t\t\tTHIS[setter](value);\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\tTHIS[option] = value;\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction getOption (option) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar getter = 'get__' + option;\r\n\r\n\t\t\tif (typeof THIS[getter] === 'function') { // a getter exists for this option\r\n\t\t\t\treturn THIS[getter](value);\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\treturn THIS[option];\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction detachPicker () {\r\n\t\t\tjsc.removeClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t\tjsc.picker.wrap.parentNode.removeChild(jsc.picker.wrap);\r\n\t\t\tdelete jsc.picker.owner;\r\n\t\t}\r\n\r\n\r\n\t\tfunction drawPicker () {\r\n\r\n\t\t\t// At this point, when drawing the picker, we know what the parent elements are\r\n\t\t\t// and we can do all related DOM operations, such as registering events on them\r\n\t\t\t// or checking their positioning\r\n\t\t\tTHIS._processParentElementsInDOM();\r\n\r\n\t\t\tif (!jsc.picker) {\r\n\t\t\t\tjsc.picker = {\r\n\t\t\t\t\towner: null, // owner picker instance\r\n\t\t\t\t\twrap : jsc.createEl('div'),\r\n\t\t\t\t\tbox : jsc.createEl('div'),\r\n\t\t\t\t\tboxS : jsc.createEl('div'), // shadow area\r\n\t\t\t\t\tboxB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpad : jsc.createEl('div'),\r\n\t\t\t\t\tpadB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpadM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tpadCanvas : jsc.createPadCanvas(),\r\n\t\t\t\t\tcross : jsc.createEl('div'),\r\n\t\t\t\t\tcrossBY : jsc.createEl('div'), // border Y\r\n\t\t\t\t\tcrossBX : jsc.createEl('div'), // border X\r\n\t\t\t\t\tcrossLY : jsc.createEl('div'), // line Y\r\n\t\t\t\t\tcrossLX : jsc.createEl('div'), // line X\r\n\t\t\t\t\tsld : jsc.createEl('div'), // slider\r\n\t\t\t\t\tsldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tsldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tsldGrad : jsc.createSliderGradient(),\r\n\t\t\t\t\tsldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tsldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tsldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tsldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tasld : jsc.createEl('div'), // alpha slider\r\n\t\t\t\t\tasldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tasldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tasldGrad : jsc.createASliderGradient(),\r\n\t\t\t\t\tasldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tasldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tasldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tasldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tpal : jsc.createEl('div'), // palette\r\n\t\t\t\t\tbtn : jsc.createEl('div'),\r\n\t\t\t\t\tbtnT : jsc.createEl('span'), // text\r\n\t\t\t\t};\r\n\r\n\t\t\t\tjsc.picker.pad.appendChild(jsc.picker.padCanvas.elm);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.pad);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBX);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLX);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.cross);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padM);\r\n\r\n\t\t\t\tjsc.picker.sld.appendChild(jsc.picker.sldGrad.elm);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sld);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sldPtrOB);\r\n\t\t\t\tjsc.picker.sldPtrOB.appendChild(jsc.picker.sldPtrMB);\r\n\t\t\t\tjsc.picker.sldPtrMB.appendChild(jsc.picker.sldPtrIB);\r\n\t\t\t\tjsc.picker.sldPtrIB.appendChild(jsc.picker.sldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldM);\r\n\r\n\t\t\t\tjsc.picker.asld.appendChild(jsc.picker.asldGrad.elm);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asld);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asldPtrOB);\r\n\t\t\t\tjsc.picker.asldPtrOB.appendChild(jsc.picker.asldPtrMB);\r\n\t\t\t\tjsc.picker.asldPtrMB.appendChild(jsc.picker.asldPtrIB);\r\n\t\t\t\tjsc.picker.asldPtrIB.appendChild(jsc.picker.asldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldM);\r\n\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.pal);\r\n\r\n\t\t\t\tjsc.picker.btn.appendChild(jsc.picker.btnT);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.btn);\r\n\r\n\t\t\t\tjsc.picker.boxB.appendChild(jsc.picker.box);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxS);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxB);\r\n\r\n\t\t\t\tjsc.picker.wrap.addEventListener('touchstart', jsc.onPickerTouchStart,\r\n\t\t\t\t\tjsc.isPassiveEventSupported ? {passive: false} : false);\r\n\t\t\t}\r\n\r\n\t\t\tvar p = jsc.picker;\r\n\r\n\t\t\tvar displaySlider = !!jsc.getSliderChannel(THIS);\r\n\t\t\tvar displayAlphaSlider = THIS.hasAlphaChannel();\r\n\t\t\tvar pickerDims = jsc.getPickerDims(THIS);\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar controlPadding = jsc.getControlPadding(THIS);\r\n\t\t\tvar borderRadius = Math.min(\r\n\t\t\t\tTHIS.borderRadius,\r\n\t\t\t\tMath.round(THIS.padding * Math.PI)); // px\r\n\t\t\tvar padCursor = 'crosshair';\r\n\r\n\t\t\t// wrap\r\n\t\t\tp.wrap.className = 'jscolor-picker-wrap';\r\n\t\t\tp.wrap.style.clear = 'both';\r\n\t\t\tp.wrap.style.width = pickerDims.borderW + 'px';\r\n\t\t\tp.wrap.style.height = pickerDims.borderH + 'px';\r\n\t\t\tp.wrap.style.zIndex = THIS.zIndex;\r\n\r\n\t\t\t// picker\r\n\t\t\tp.box.className = 'jscolor-picker';\r\n\t\t\tp.box.style.width = pickerDims.paddedW + 'px';\r\n\t\t\tp.box.style.height = pickerDims.paddedH + 'px';\r\n\t\t\tp.box.style.position = 'relative';\r\n\r\n\t\t\t// picker shadow\r\n\t\t\tp.boxS.className = 'jscolor-picker-shadow';\r\n\t\t\tp.boxS.style.position = 'absolute';\r\n\t\t\tp.boxS.style.left = '0';\r\n\t\t\tp.boxS.style.top = '0';\r\n\t\t\tp.boxS.style.width = '100%';\r\n\t\t\tp.boxS.style.height = '100%';\r\n\t\t\tjsc.setBorderRadius(p.boxS, borderRadius + 'px');\r\n\r\n\t\t\t// picker border\r\n\t\t\tp.boxB.className = 'jscolor-picker-border';\r\n\t\t\tp.boxB.style.position = 'relative';\r\n\t\t\tp.boxB.style.border = THIS.borderWidth + 'px solid';\r\n\t\t\tp.boxB.style.borderColor = THIS.borderColor;\r\n\t\t\tp.boxB.style.background = THIS.backgroundColor;\r\n\t\t\tjsc.setBorderRadius(p.boxB, borderRadius + 'px');\r\n\r\n\t\t\t// IE hack:\r\n\t\t\t// If the element is transparent, IE will trigger the event on the elements under it,\r\n\t\t\t// e.g. on Canvas or on elements with border\r\n\t\t\tp.padM.style.background = 'rgba(255,0,0,.2)';\r\n\t\t\tp.sldM.style.background = 'rgba(0,255,0,.2)';\r\n\t\t\tp.asldM.style.background = 'rgba(0,0,255,.2)';\r\n\r\n\t\t\tp.padM.style.opacity =\r\n\t\t\tp.sldM.style.opacity =\r\n\t\t\tp.asldM.style.opacity =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad\r\n\t\t\tp.pad.style.position = 'relative';\r\n\t\t\tp.pad.style.width = THIS.width + 'px';\r\n\t\t\tp.pad.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// pad - color spectrum (HSV and HVS)\r\n\t\t\tp.padCanvas.draw(THIS.width, THIS.height, jsc.getPadYChannel(THIS));\r\n\r\n\t\t\t// pad border\r\n\t\t\tp.padB.style.position = 'absolute';\r\n\t\t\tp.padB.style.left = THIS.padding + 'px';\r\n\t\t\tp.padB.style.top = THIS.padding + 'px';\r\n\t\t\tp.padB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.padB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// pad mouse area\r\n\t\t\tp.padM.style.position = 'absolute';\r\n\t\t\tp.padM.style.left = 0 + 'px';\r\n\t\t\tp.padM.style.top = 0 + 'px';\r\n\t\t\tp.padM.style.width = (THIS.padding + 2 * THIS.controlBorderWidth + THIS.width + controlPadding) + 'px';\r\n\t\t\tp.padM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.padM.style.cursor = padCursor;\r\n\t\t\tjsc.setData(p.padM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'pad',\r\n\t\t\t})\r\n\r\n\t\t\t// pad cross\r\n\t\t\tp.cross.style.position = 'absolute';\r\n\t\t\tp.cross.style.left =\r\n\t\t\tp.cross.style.top =\r\n\t\t\t\t'0';\r\n\t\t\tp.cross.style.width =\r\n\t\t\tp.cross.style.height =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\r\n\t\t\t// pad cross border Y and X\r\n\t\t\tp.crossBY.style.position =\r\n\t\t\tp.crossBX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossBY.style.background =\r\n\t\t\tp.crossBX.style.background =\r\n\t\t\t\tTHIS.pointerBorderColor;\r\n\t\t\tp.crossBY.style.width =\r\n\t\t\tp.crossBX.style.height =\r\n\t\t\t\t(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.crossBY.style.height =\r\n\t\t\tp.crossBX.style.width =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\t\t\tp.crossBY.style.left =\r\n\t\t\tp.crossBX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2) - THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossBY.style.top =\r\n\t\t\tp.crossBX.style.left =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad cross line Y and X\r\n\t\t\tp.crossLY.style.position =\r\n\t\t\tp.crossLX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossLY.style.background =\r\n\t\t\tp.crossLX.style.background =\r\n\t\t\t\tTHIS.pointerColor;\r\n\t\t\tp.crossLY.style.height =\r\n\t\t\tp.crossLX.style.width =\r\n\t\t\t\t(crossOuterSize - 2 * THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossLY.style.width =\r\n\t\t\tp.crossLX.style.height =\r\n\t\t\t\tTHIS.pointerThickness + 'px';\r\n\t\t\tp.crossLY.style.left =\r\n\t\t\tp.crossLX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2)) + 'px';\r\n\t\t\tp.crossLY.style.top =\r\n\t\t\tp.crossLX.style.left =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px';\r\n\r\n\r\n\t\t\t// slider\r\n\t\t\tp.sld.style.overflow = 'hidden';\r\n\t\t\tp.sld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// slider gradient\r\n\t\t\tp.sldGrad.draw(THIS.sliderSize, THIS.height, '#000', '#000');\r\n\r\n\t\t\t// slider border\r\n\t\t\tp.sldB.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldB.style.position = 'absolute';\r\n\t\t\tp.sldB.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + 2 * controlPadding) + 'px';\r\n\t\t\tp.sldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.sldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.sldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// slider mouse area\r\n\t\t\tp.sldM.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldM.style.position = 'absolute';\r\n\t\t\tp.sldM.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) + 'px';\r\n\t\t\tp.sldM.style.top = 0 + 'px';\r\n\t\t\tp.sldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\t(displayAlphaSlider ? 0 : Math.max(0, THIS.padding - controlPadding)) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.sldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.sldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.sldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'sld',\r\n\t\t\t});\r\n\r\n\t\t\t// slider pointer inner and outer border\r\n\t\t\tp.sldPtrIB.style.border =\r\n\t\t\tp.sldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// slider pointer outer border\r\n\t\t\tp.sldPtrOB.style.position = 'absolute';\r\n\t\t\tp.sldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.sldPtrOB.style.top = '0';\r\n\r\n\t\t\t// slider pointer middle border\r\n\t\t\tp.sldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// slider pointer spacer\r\n\t\t\tp.sldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// alpha slider\r\n\t\t\tp.asld.style.overflow = 'hidden';\r\n\t\t\tp.asld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// alpha slider gradient\r\n\t\t\tp.asldGrad.draw(THIS.sliderSize, THIS.height, '#000');\r\n\r\n\t\t\t// alpha slider border\r\n\t\t\tp.asldB.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldB.style.position = 'absolute';\r\n\t\t\tp.asldB.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 3 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.asldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.asldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// alpha slider mouse area\r\n\t\t\tp.asldM.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldM.style.position = 'absolute';\r\n\t\t\tp.asldM.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.top = 0 + 'px';\r\n\t\t\tp.asldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\tMath.max(0, THIS.padding - controlPadding) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.asldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.asldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'asld',\r\n\t\t\t})\r\n\r\n\t\t\t// alpha slider pointer inner and outer border\r\n\t\t\tp.asldPtrIB.style.border =\r\n\t\t\tp.asldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// alpha slider pointer outer border\r\n\t\t\tp.asldPtrOB.style.position = 'absolute';\r\n\t\t\tp.asldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.asldPtrOB.style.top = '0';\r\n\r\n\t\t\t// alpha slider pointer middle border\r\n\t\t\tp.asldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// alpha slider pointer spacer\r\n\t\t\tp.asldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// palette\r\n\t\t\tp.pal.className = 'jscolor-palette';\r\n\t\t\tp.pal.style.display = pickerDims.palette.rows ? 'block' : 'none';\r\n\t\t\tp.pal.style.position = 'absolute';\r\n\t\t\tp.pal.style.left = THIS.padding + 'px';\r\n\t\t\tp.pal.style.top = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\r\n\t\t\t// palette's color samples\r\n\r\n\t\t\tp.pal.innerHTML = '';\r\n\r\n\t\t\tvar chessboard = jsc.genColorPreviewCanvas('rgba(0,0,0,0)');\r\n\r\n\t\t\tvar si = 0; // color sample's index\r\n\t\t\tfor (var r = 0; r < pickerDims.palette.rows; r++) {\r\n\t\t\t\tfor (var c = 0; c < pickerDims.palette.cols && si < THIS._palette.length; c++, si++) {\r\n\t\t\t\t\tvar sampleColor = THIS._palette[si];\r\n\t\t\t\t\tvar sampleCssColor = jsc.rgbaColor.apply(null, sampleColor.rgba);\r\n\r\n\t\t\t\t\tvar sc = jsc.createEl('div'); // color sample's color\r\n\t\t\t\t\tsc.style.width = (pickerDims.palette.cellW - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.height = (pickerDims.palette.cellH - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.backgroundColor = sampleCssColor;\r\n\r\n\t\t\t\t\tvar sw = jsc.createEl('div'); // color sample's wrap\r\n\t\t\t\t\tsw.className = 'jscolor-palette-sample';\r\n\t\t\t\t\tsw.style.display = 'block';\r\n\t\t\t\t\tsw.style.position = 'absolute';\r\n\t\t\t\t\tsw.style.left = (\r\n\t\t\t\t\t\t\tpickerDims.palette.cols <= 1 ? 0 :\r\n\t\t\t\t\t\t\tMath.round(10 * (c * ((pickerDims.contentW - pickerDims.palette.cellW) / (pickerDims.palette.cols - 1)))) / 10\r\n\t\t\t\t\t\t) + 'px';\r\n\t\t\t\t\tsw.style.top = (r * (pickerDims.palette.cellH + THIS.paletteSpacing)) + 'px';\r\n\t\t\t\t\tsw.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\t\t\tsw.style.borderColor = THIS.controlBorderColor;\r\n\t\t\t\t\tsw.style.cursor = 'pointer';\r\n\t\t\t\t\tif (sampleColor.rgba[3] !== null && sampleColor.rgba[3] < 1.0) { // only create chessboard background if the sample has transparency\r\n\t\t\t\t\t\tsw.style.backgroundImage = 'url(\\'' + chessboard.canvas.toDataURL() + '\\')';\r\n\t\t\t\t\t\tsw.style.backgroundRepeat = 'repeat';\r\n\t\t\t\t\t\tsw.style.backgroundPosition = 'center center';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tjsc.setData(sw, {\r\n\t\t\t\t\t\tinstance: THIS,\r\n\t\t\t\t\t\tcontrol: 'palette-sample',\r\n\t\t\t\t\t\tcolor: sampleColor,\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsw.addEventListener('click', jsc.onPaletteSampleClick, false);\r\n\t\t\t\t\tsw.appendChild(sc);\r\n\t\t\t\t\tp.pal.appendChild(sw);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// the Close button\r\n\t\t\tfunction setBtnBorder () {\r\n\t\t\t\tvar insetColors = THIS.controlBorderColor.split(/\\s+/);\r\n\t\t\t\tvar outsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];\r\n\t\t\t\tp.btn.style.borderColor = outsetColor;\r\n\t\t\t}\r\n\t\t\tvar btnPadding = 15; // px\r\n\t\t\tp.btn.className = 'jscolor-btn-close';\r\n\t\t\tp.btn.style.display = THIS.closeButton ? 'block' : 'none';\r\n\t\t\tp.btn.style.position = 'absolute';\r\n\t\t\tp.btn.style.left = THIS.padding + 'px';\r\n\t\t\tp.btn.style.bottom = THIS.padding + 'px';\r\n\t\t\tp.btn.style.padding = '0 ' + btnPadding + 'px';\r\n\t\t\tp.btn.style.maxWidth = (pickerDims.contentW - 2 * THIS.controlBorderWidth - 2 * btnPadding) + 'px';\r\n\t\t\tp.btn.style.overflow = 'hidden';\r\n\t\t\tp.btn.style.height = THIS.buttonHeight + 'px';\r\n\t\t\tp.btn.style.whiteSpace = 'nowrap';\r\n\t\t\tp.btn.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tsetBtnBorder();\r\n\t\t\tp.btn.style.color = THIS.buttonColor;\r\n\t\t\tp.btn.style.font = '12px sans-serif';\r\n\t\t\tp.btn.style.textAlign = 'center';\r\n\t\t\tp.btn.style.cursor = 'pointer';\r\n\t\t\tp.btn.onmousedown = function () {\r\n\t\t\t\tTHIS.hide();\r\n\t\t\t};\r\n\t\t\tp.btnT.style.lineHeight = THIS.buttonHeight + 'px';\r\n\t\t\tp.btnT.innerHTML = '';\r\n\t\t\tp.btnT.appendChild(window.document.createTextNode(THIS.closeText));\r\n\r\n\t\t\t// reposition the pointers\r\n\t\t\tredrawPad();\r\n\t\t\tredrawSld();\r\n\t\t\tredrawASld();\r\n\r\n\t\t\t// If we are changing the owner without first closing the picker,\r\n\t\t\t// make sure to first deal with the old owner\r\n\t\t\tif (jsc.picker.owner && jsc.picker.owner !== THIS) {\r\n\t\t\t\tjsc.removeClass(jsc.picker.owner.targetElement, jsc.pub.activeClassName);\r\n\t\t\t}\r\n\r\n\t\t\t// Set a new picker owner\r\n\t\t\tjsc.picker.owner = THIS;\r\n\r\n\t\t\t// The redrawPosition() method needs picker.owner to be set, that's why we call it here,\r\n\t\t\t// after setting the owner\r\n\t\t\tif (THIS.container === window.document.body) {\r\n\t\t\t\tjsc.redrawPosition();\r\n\t\t\t} else {\r\n\t\t\t\tjsc._drawPosition(THIS, 0, 0, 'relative', false);\r\n\t\t\t}\r\n\r\n\t\t\tif (p.wrap.parentNode !== THIS.container) {\r\n\t\t\t\tTHIS.container.appendChild(p.wrap);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.addClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawPad () {\r\n\t\t\t// redraw the pad pointer\r\n\t\t\tvar yChannel = jsc.getPadYChannel(THIS);\r\n\t\t\tvar x = Math.round((THIS.channels.h / 360) * (THIS.width - 1));\r\n\t\t\tvar y = Math.round((1 - THIS.channels[yChannel] / 100) * (THIS.height - 1));\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar ofs = -Math.floor(crossOuterSize / 2);\r\n\t\t\tjsc.picker.cross.style.left = (x + ofs) + 'px';\r\n\t\t\tjsc.picker.cross.style.top = (y + ofs) + 'px';\r\n\r\n\t\t\t// redraw the slider\r\n\t\t\tswitch (jsc.getSliderChannel(THIS)) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvar rgb1 = jsc.HSV_RGB(THIS.channels.h, 100, THIS.channels.v);\r\n\t\t\t\tvar rgb2 = jsc.HSV_RGB(THIS.channels.h, 0, THIS.channels.v);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb1[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[2]) + ')';\r\n\t\t\t\tvar color2 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb2[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[2]) + ')';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvar rgb = jsc.HSV_RGB(THIS.channels.h, THIS.channels.s, 100);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[2]) + ')';\r\n\t\t\t\tvar color2 = '#000';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawSld () {\r\n\t\t\tvar sldChannel = jsc.getSliderChannel(THIS);\r\n\t\t\tif (sldChannel) {\r\n\t\t\t\t// redraw the slider pointer\r\n\t\t\t\tvar y = Math.round((1 - THIS.channels[sldChannel] / 100) * (THIS.height - 1));\r\n\t\t\t\tjsc.picker.sldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawASld () {\r\n\t\t\tvar y = Math.round((1 - THIS.channels.a) * (THIS.height - 1));\r\n\t\t\tjsc.picker.asldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t}\r\n\r\n\r\n\t\tfunction isPickerOwner () {\r\n\t\t\treturn jsc.picker && jsc.picker.owner === THIS;\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.valueElement) {\r\n\t\t\t\t\tTHIS.processValueInput(THIS.valueElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.valueElement.value;\r\n\r\n\t\t\tTHIS.processValueInput(THIS.valueElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\tif (THIS.valueElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.alphaElement.value;\r\n\r\n\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\t// triggering valueElement's onChange (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\r\n\t\t\tif (THIS.alphaElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.alphaElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.valueElement) {\r\n\t\t\t\tTHIS.fromString(THIS.valueElement.value, jsc.flags.leaveValue);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput\r\n\t\t\t// (not needed, it was dispatched normally by the browser)\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\tTHIS.fromHSVA(null, null, null, parseFloat(THIS.alphaElement.value), jsc.flags.leaveAlpha);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'input', true, true);\r\n\t\t}\r\n\r\n\r\n\t\t// let's process the DEPRECATED 'options' property (this will be later removed)\r\n\t\tif (jsc.pub.options) {\r\n\t\t\t// let's set custom default options, if specified\r\n\t\t\tfor (var opt in jsc.pub.options) {\r\n\t\t\t\tif (jsc.pub.options.hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.options[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's apply configuration presets\r\n\t\t//\r\n\t\tvar presetsArr = [];\r\n\r\n\t\tif (opts.preset) {\r\n\t\t\tif (typeof opts.preset === 'string') {\r\n\t\t\t\tpresetsArr = opts.preset.split(/\\s+/);\r\n\t\t\t} else if (Array.isArray(opts.preset)) {\r\n\t\t\t\tpresetsArr = opts.preset.slice(); // slice() to clone\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('Unrecognized preset value');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// always use the 'default' preset. If it's not listed, append it to the end.\r\n\t\tif (presetsArr.indexOf('default') === -1) {\r\n\t\t\tpresetsArr.push('default');\r\n\t\t}\r\n\r\n\t\t// let's apply the presets in reverse order, so that should there be any overlapping options,\r\n\t\t// the formerly listed preset will override the latter\r\n\t\tfor (var i = presetsArr.length - 1; i >= 0; i -= 1) {\r\n\t\t\tvar pres = presetsArr[i];\r\n\t\t\tif (!pres) {\r\n\t\t\t\tcontinue; // preset is empty string\r\n\t\t\t}\r\n\t\t\tif (!jsc.pub.presets.hasOwnProperty(pres)) {\r\n\t\t\t\tconsole.warn('Unknown preset: %s', pres);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tfor (var opt in jsc.pub.presets[pres]) {\r\n\t\t\t\tif (jsc.pub.presets[pres].hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.presets[pres][opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's set specific options for this color picker\r\n\t\tvar nonProperties = [\r\n\t\t\t// these options won't be set as instance properties\r\n\t\t\t'preset',\r\n\t\t];\r\n\t\tfor (var opt in opts) {\r\n\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\tif (nonProperties.indexOf(opt) === -1) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, opts[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t//\r\n\t\t// Install the color picker on chosen element(s)\r\n\t\t//\r\n\r\n\r\n\t\t// Determine picker's container element\r\n\t\tif (this.container === undefined) {\r\n\t\t\tthis.container = window.document.body; // default container is BODY element\r\n\r\n\t\t} else { // explicitly set to custom element\r\n\t\t\tthis.container = jsc.node(this.container);\r\n\t\t}\r\n\r\n\t\tif (!this.container) {\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a container element');\r\n\t\t}\r\n\r\n\r\n\t\t// Fetch the target element\r\n\t\tthis.targetElement = jsc.node(targetElement);\r\n\r\n\t\tif (!this.targetElement) {\r\n\t\t\t// temporarily customized error message to help with migrating from versions prior to 2.2\r\n\t\t\tif (typeof targetElement === 'string' && /^[a-zA-Z][\\w:.-]*$/.test(targetElement)) {\r\n\t\t\t\t// targetElement looks like valid ID\r\n\t\t\t\tvar possiblyId = targetElement;\r\n\t\t\t\tthrow new Error('If \\'' + possiblyId + '\\' is supposed to be an ID, please use \\'#' + possiblyId + '\\' or any valid CSS selector.');\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a target element');\r\n\t\t}\r\n\r\n\t\tif (this.targetElement.jscolor && this.targetElement.jscolor instanceof jsc.pub) {\r\n\t\t\tthrow new Error('Color picker already installed on this element');\r\n\t\t}\r\n\r\n\r\n\t\t// link this instance with the target element\r\n\t\tthis.targetElement.jscolor = this;\r\n\t\tjsc.addClass(this.targetElement, jsc.pub.className);\r\n\r\n\t\t// register this instance\r\n\t\tjsc.instances.push(this);\r\n\r\n\r\n\t\t// if target is BUTTON\r\n\t\tif (jsc.isButton(this.targetElement)) {\r\n\r\n\t\t\tif (this.targetElement.type.toLowerCase() !== 'button') {\r\n\t\t\t\t// on buttons, always force type to be 'button', e.g. in situations the target