{"version":3,"sources":["underscore-min.js","global.js","overlays.js","search.js","trip.js","trip-action.js","trip-list.js","traveler-list.js","traveler.js","trip-detail.js","profile.js","traveler-cards.js","trip-items.js","trip-item-index.js","trip-item-crud.js","trip-select-dialog.js","select2.js"],"names":["n","r","t","e","exports","module","define","amd","globalThis","self","_","noConflict","this","global","Function","Array","prototype","Object","u","Symbol","o","push","i","slice","a","toString","f","hasOwnProperty","c","ArrayBuffer","l","DataView","s","isArray","p","keys","v","create","h","isView","y","isNaN","d","isFinite","g","propertyIsEnumerable","b","m","Math","pow","j","length","max","arguments","call","apply","w","A","x","S","O","M","E","B","N","I","T","k","document","childNodes","D","Int8Array","R","F","V","Map","P","q","getInt8","buffer","U","W","z","L","$","C","K","J","G","H","Q","X","test","Y","Z","contains","constructor","nn","rn","tn","_wrapped","en","Uint8Array","byteOffset","VERSION","valueOf","toJSON","value","String","un","an","fn","hn","cn","sn","pn","vn","concat","yn","dn","gn","bn","mn","jn","_n","wn","sort","An","xn","Sn","On","Mn","En","Bn","toPath","Nn","In","Tn","kn","Dn","Rn","Fn","Vn","Pn","iteratee","qn","Un","floor","random","Wn","Date","now","getTime","zn","join","RegExp","replace","Ln","&","<",">","\"","'","`","$n","Cn","Kn","templateSettings","evaluate","interpolate","escape","Jn","Gn","\\","\r","\n","
","
","Hn","Qn","Xn","Yn","Zn","nr","placeholder","rr","TypeError","tr","er","ur","Error","or","setTimeout","ir","ar","fr","cr","lr","sr","pr","vr","hr","yr","min","dr","gr","br","mr","jr","_r","wr","Ar","xr","Sr","Or","Mr","Er","Br","Nr","Ir","Tr","match","kr","Dr","Rr","Fr","Vr","Pr","qr","Ur","Wr","zr","Lr","$r","Cr","Kr","Jr","Gr","Hr","Qr","Xr","_chain","chain","Yr","Zr","__proto__","restArguments","isObject","isNull","isUndefined","isBoolean","isElement","nodeType","isString","isNumber","isDate","isRegExp","isError","isSymbol","isArrayBuffer","isDataView","isFunction","isArguments","parseFloat","isTypedArray","isEmpty","isMatch","isEqual","on","pop","isMap","isWeakMap","isSet","isWeakSet","allKeys","values","pairs","invert","functions","methods","extend","extendOwn","assign","defaults","clone","tap","get","has","mapObject","identity","constant","noop","property","propertyOf","matcher","matches","times","unescape","template","source","variable","result","uniqueId","partial","bind","bindAll","memoize","cache","delay","defer","throttle","leading","clearTimeout","trailing","cancel","debounce","wrap","negate","compose","after","before","once","findKey","findIndex","findLastIndex","sortedIndex","indexOf","lastIndexOf","find","detect","findWhere","each","forEach","map","collect","reduce","foldl","inject","reduceRight","foldr","filter","select","reject","every","all","some","any","includes","include","invoke","pluck","where","shuffle","sample","sortBy","index","criteria","groupBy","indexBy","countBy","partition","toArray","size","pick","omit","first","head","take","initial","last","rest","tail","drop","compact","Boolean","flatten","without","uniq","unique","union","intersection","difference","unzip","transpose","zip","object","range","ceil","chunk","mixin","default","mapStyle","featureType","elementType","stylers","hue","color","rotateads","myrnd","round","appndURL","donothing","disablelink","disabled","onclick","dontdo","href","enablelink","numberWithCommas","winloc","window","location","refreshwin","undefined","split","pathname","substring","refreshWithQueryParam","paramName","paramValue","url","URL","searchParams","delete","append","_newopt","optn","createElement","text","selected","_newopthtml","showError","error","get_stackTrace","message","get_message","get_statusCode","get_exceptionType","get_timedOut","console","log","alert","serviceProxy","serviceUrl","_I","method","data","callback","json","JSON","stringify","ajax","type","contentType","dataType","success","err","AjaxFailed","status","statusText","hasGA","_qaq","myTrackPageView","qs","qs2","initTracking","prop1","pageTracker","_trackPageview","prop70","prop2","myTrackEvent","category","action","label","ga","hidewait","showWait","msg","DynaProxy","bLastX","OnAJAXPopDataSucceeded","typ","showdetail","closePAj2","closePAj","closePAjRef","hideModal","closeAj","$find","hidePopup","rAJAXPop","arg","_cnEvt","jumpDest","setDetail","pnlCnt","innerHTML","isMoz","style","height","mShowModalWin","showAJAXPop","bhv","evt","show","hideAJAXPop","hide","mEnablePage","mDisablePage","width","documentElement","clientWidth","scrollLeft","layer","clientHeight","scrollTop","zIndex","id","position","top","left","scrollHeight","backgroundColor","opacity","body","appendChild","getElementById","removeChild","name","src","trn","cntr","bHeight","scrolling","allowTransparency","border","frameBorder","description","dateStr","isTime","timeStr","DateAdd","timeU","byMany","dateObj","newDate","dVal","millisecond","second","minute","hour","day","AND","binaryArray","parseInt","biggerArray","smallerArray","len","num","mod","arr","count","closeme","fancybox","close","isScrolledIntoView","elem","docViewTop","docViewBottom","elemTop","offset","elemBottom","isScrolledIntoView2","boundingRef","querySelectorAll","getBoundingClientRect","isInViewport2","bounding","nHeight","innerHeight","bottom","findMostInView","elements","mostInViewElement","highestVisibility","element","visibility","calculateVisibility","rect","windowHeight","validateEmail","email","getreturl","returl","isiniframe","parent","setCookie","cookieName","cookieValue","nDays","today","expire","setTime","cookie","toGMTString","getCookie","ind1","theCookie","ind","pushLoadMore","title","history","pushState","Title","element_Blur","selector","blur","css","Page_Blur","isInViewport","elementTop","elementBottom","outerHeight","viewportTop","viewportBottom","jQuery","ready","appModal","appModalBS","bootstrap","Modal","appModalData","querySelector","showModal","showSave","showClose","showsecondaryBtn","saveText","closeText","secondaryBtnText","secondaryBtnURL","$modal","addClass","removeAttr","appendTo","substr","attr","empty","html","open","removeClass","done","modal","fail","xhr","setEditClean","bEditDirty","confirm","updateSearchChecks","remove","closeModal","showLoginNotification","myToast","showSystemNotification","showSupportNotification","showLoginMessage","showAccountMessage","showSiteNotice","showSiteNotice2","showSiteNoticeIFrame","myToastEl","Toast","getOrCreateInstance","bInteractive","viewportWidth","innerWidth","cts_event","event","cts","currentTarget","ele","context","txtVal","val","encodeURIComponent","preventDefault","keydown","keyCode","autocomplete","request","response","ctscntxt","Req","Term","term","Context","Request","resp","item","Name","Data","placekey","Key","Type","minLength","ui","_renderItem","ul","iframe_pdf","setCookie2","expiracy","exDate","c_value","toUTCString","getCookie2","ARRcookies","decodeURI","checkIframeLoaded","iframe","checkInterval","setInterval","clearInterval","printTrip","rid","setTripDetailClean","getSelectedTravelers","ids","select2","itm","saveTripDetail","req","editall_trip","ReportID","Mode","UserClientKey","StartDate","EndDate","TripName","PreparedFor","Travelers","TripPrice","TripComments","TripDescription","IncludeCover","prop","IncludeTOC","IncludeBizCard","ShowImagesOnlineView","ShowImagesPDFView","ExternalLinkImage","SuppressDefaultImage","TripImageFile","reload","refrehTripList","saveCustomPlace","ID","Address","Phone","Description","editor","getSemanticHTML","Latitude","Longitude","Image","sDate1","sDate2","dateRegex","focus","sendTrip","editall_send","PlaceKey","PlaceType","PlaceID","ClientIDs","Subject","Message","CopyUser","saveTripItemComments","Comment","cmt","curcmt","tripName","getTripDetailRID","saveTravelerDetail","onNewTravelerTrip","menuevent","rName","eventObject","Event","trigger","do_traveler_delete","tripSelectOpenCreateTrip","tripSelectOnCreateTrip","refreshPageForTrip","doSendTrip","targetURL","origin","navigator","clipboard","writeText","then","catch","rids","triplist_current_sort","loadmore","current","clientid","pg","Value","Sort","SortOrder","hasClass","Page","ClientID","init_trip_trav_cards","sNewSort","sNewOrder","refrehTravelerList","StartsWith","init_traveler_trav_cards","refrehActivityList","traveler_activity_current_sort","reportid","TravelerId","ReportId","editall_traveler","UserClientId","EMail","FirstName","LastName","DisplayName","HomePhone","WorkPhone","WorkPhoneExt","MobilePhone","BestPhoneCd","SkypeName","AltEmail","Address1","Address2","ZipCode","CityName","StatePlaceKey","CountryPlaceKey","CommentsSpecialNeeds","CommentsFamily","CommentsMisc","cid","cname","onNewTravelerDash","doUploadTripImage","files","reader","FileReader","onload","UploadTripImage","target","readAsDataURL","imageData","imageName","mode","fileurl","imghtml","imgnote","someTabTriggerEl","Tab","saveTripOrder","DTO","reportID","placeKeys","getTripDetailName","opens","slideToggle","sTitle","parents","removeTripItem","sortable","update","disableSelection","inputFile","click","originalEvent","dataTransfer","stopPropagation","setProfileImageFields","doUploadLogoImage","UploadLogoImage","doUploadHeadshotImage","UploadHeadshotImage","filename","setEditDirty","bLoadingACard","init_trav_cards","sel","showTravelerCard","next","ClientId","init_page_trav_cards","dropdown","tripitems","bTripContentsDirty","getTripPlaceName","getTripPlaceId","getTripPlaceType","isPlaceInTrip","is","getCruiseDetails","cru","getCruiseSailDate","getCruiseSailId","setTripDetailDirty","obj","key","searchreportitems","initAddToCheckStatePort","quickaddcheck","bRemove","sid","sdt","RemoveReportItem","tripQuickAddRemoved_callback","QuickAddReportItem","tripQuickAddItem_callback","tripPlaceRemoved_callback","riid","rname","riname","tripSelectedPlaceAdded_callback","options","tripPlaceUpdated_callback","tripCruiseDateUpdated_callback","tripQuickSend_callback","tripQuickPrint_callback","tripPlaceAdded_callback","ritype","collectItems","sItems","collectPOIItems","setTripFromSelect","UpdateReportItem","sParm","sId","dt","pois","items","CreateQuickReport","$carousel","children","slick","dots","slidesToScroll","infinite","speed","autoplay","autoplaySpeed","pauseOnDotsHover","arrows","variableWidth","slidesToShow","centerMode","centerPadding","responsive","breakpoint","settings","addEventListener","selectSection","handleContentIndexScroll","elementsToCheck","elementsToSet","classList","add","setIndexScrollHeight","nWidth","padding","nLeft","contentCol","header","setElementPositions","nTop","headerHeight","synchContentState","bselected","contentitem","setParentState","indexitem","numChildren","numChildrenChecked","closest","processContentCheck","bParent","resize","idx","collapse","eleId","$anchor","nOffset","scroll","behavior","riiname","FullList","Placetype","SailID","SailDate","ContentOptions","POIKeys","Option2","onTripSelectOnCreateTrip_callback","hdnSelectMode","hdnSelectPlaceId","hdnSelectPlaceType","hdnSelectPlaceName","hdnSelectSailDate","hdnSelectSailId","factory","root","require","S2","requirejs","defined","waiting","config","defining","hasOwn","aps","jsSuffixRegExp","makeMap","relParts","plugin","relName","parts","splitPrefix","prefix","relResourceName","callDep","normalize","handlers","makeRequire","uri","main","deps","cjsModule","depName","usingExports","args","callbackType","makeRelParts","hasProp","load","ret","undef","forceSync","alt","splice","cfg","_defined","_$","Utils","getMethods","theClass","methodName","proto","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","unshift","argCount","calledConstructor","displayName","superMethod","decoratedMethod","originalMethod","Observable","listeners","params","_type","generateChars","chars","func","_convertData","originalKey","dataLevel","toLowerCase","hasScroll","el","$el","overflowX","overflowY","scrollWidth","escapeMarkup","markup","replaceMap","/","__cache","GetUniqueElementId","select2Id","getAttribute","setAttribute","StoreData","GetData","RemoveData","removeAttribute","copyNonInternalCssClasses","dest","destinationClasses","trim","clazz","sourceClasses","replacements","Results","$element","dataAdapter","render","$results","clear","displayMessage","$message","hideLoading","className","hideMessages","$options","results","$option","option","$dropdown","highlightFirstItem","$selected","ensureHighlightVisible","setClasses","selectedIds","showLoading","loading","$loading","prepend","attrs","role","Element","msMatchesSelector","webkitMatchesSelector","_resultId","$children","child","$child","$childrenContainer","class","container","$container","isOpen","$highlighted","getHighlightedResults","nextOffset","currentIndex","nextIndex","$next","eq","currentOffset","nextTop","nextBottom","mousewheel","deltaY","isAtTop","isAtBottom","$this","destroy","offsetDelta","content","display","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","which","_attachCloseHandler","_detachCloseHandler","activeElement","$select","off","isEnabled","isDisabled","SingleSelection","$rendered","selectionContainer","selection","formatted","MultipleSelection","$selections","selectionIdPrefix","selectionId","removeItem","$remove","Placeholder","decorated","normalizePlaceholder","createPlaceholder","$placeholder","placeholderTitle","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","Search","searchLabel","$search","$searchContainer","_transferTabIndex","msie","resizeSearch","_keyUpPrevented","isDefaultPrevented","$previousChoice","searchRemoveChoice","documentMode","disableInputEvents","handleSearch","searchHadFocus","input","SelectionCSS","selectionCssClass","EventRelay","relayEvents","preventableEvents","Translation","dict","translation","_cache","loadPath","path","translations","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Œ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","œ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ώ","ς","’","BaseAdapter","query","generateResultId","SelectAdapter","selectedElement","tagName","currentData","unselect","addOptions","textContent","innerText","normalizedData","_normalizeItem","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","transport","failure","$request","_request","abort","_queryTimeout","Tags","tags","createTag","insertTag","tag","_removeOldTags","page","wrapper","checkChildren","toUpperCase","Tokenizer","tokenizer","tokenData","separators","termChar","part","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","loadMore","pagination","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","parentOffset","offsetParent","isConnected","outerWidth","minWidth","MinimumResultsForSearch","minimumResultsForSearch","Infinity","countResults","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","ctrlKey","metaKey","DropdownCSS","dropdownCssClass","TagsSearchHighlight","$firstOption","firstElement","errorLoading","inputTooLong","overChars","inputTooShort","loadingMore","maximumSelected","noResults","searching","removeAllItems","search","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","reset","tokenSeparators","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","selectionAdapter","allowClear","language","_resolveLanguage","uniqueLanguages","_processTranslations","debug","stripDiacritics","amdLanguageBase","dropdownAutoWidth","original","scrollAfterSelect","sorter","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","isEmptyObject","isPlainObject","baseLanguage","resolvedLanguages","languageData","ex","warn","set","convertedData","camelCase","Options","fromElement","excludedData","dataset","dir","upperCaseLetter","letter","attributes","attributeName","dataName","dataValue","jquery","Select2","_generateId","tabindex","DataAdapter","SelectionAdapter","_placeContainer","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","WIDTH","styleWidth","elementWidth","getComputedStyle","_syncA","_syncS","_syncSubtree","_observer","MutationObserver","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","altKey","_isChangeMutation","addedNodes","removedNodes","mutation","changed","actualTrigger","preTriggerMap","preTriggerArgs","hasFocus","enable","newVal","disconnect","removeData","thisMethods","instanceOptions","instance","baseName","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","baseParts","starMap","lastIndex","nodeIdCompat","charAt"],"mappings":"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C,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,KACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,IACVC,IAAU,GACZ,CAGF,CAAC,EAED5jC,EAAGn/B,OAAO,oBAAoB,CAC5B,YACC,SAAU2hC,GACX,SAASqhC,EAAax9B,EAAU7L,GAC9BqpC,EAAY3gC,UAAU38B,YAAY1C,KAAK1C,IAAI,CAC7C,CAiCA,OA/BAqhC,EAAMK,OAAOghC,EAAarhC,EAAMuB,UAAU,EAE1C8/B,EAAYtiE,UAAUsxB,QAAU,SAAUvW,GACxC,MAAM,IAAIjQ,MAAM,wDAAwD,CAC1E,EAEAw3D,EAAYtiE,UAAUuiE,MAAQ,SAAU7/B,EAAQ3nB,GAC9C,MAAM,IAAIjQ,MAAM,sDAAsD,CACxE,EAEAw3D,EAAYtiE,UAAUgS,KAAO,SAAUi1B,EAAWC,KAIlDo7B,EAAYtiE,UAAUmoC,QAAU,aAIhCm6B,EAAYtiE,UAAUwiE,iBAAmB,SAAUv7B,EAAWnsB,GACxDwE,EAAK2nB,EAAU3nB,GAAK,WASxB,OAPAA,GAAM2hB,EAAM2B,cAAc,CAAC,EAEZ,MAAX9nB,EAAKwE,GACPA,GAAM,IAAMxE,EAAKwE,GAAG7e,SAAS,EAE7B6e,GAAM,IAAM2hB,EAAM2B,cAAc,CAAC,EAE5BtjB,CACT,EAEOgjD,CACT,CAAC,EAED7jC,EAAGn/B,OAAO,sBAAsB,CAC9B,SACA,WACA,UACC,SAAUgjE,EAAarhC,EAAO78B,GAC/B,SAASq+D,EAAe39B,EAAU7L,GAChCr5B,KAAKklC,SAAWA,EAChBllC,KAAKq5B,QAAUA,EAEfwpC,EAAc9gC,UAAU38B,YAAY1C,KAAK1C,IAAI,CAC/C,CAuRA,OArRAqhC,EAAMK,OAAOmhC,EAAeH,CAAW,EAEvCG,EAAcziE,UAAUsxB,QAAU,SAAUvW,GAC1C,IAAItb,EAAOG,KASXmb,EAPWhb,MAAMC,UAAU6T,IAAIvR,KAC7B1C,KAAKklC,SAAS,GAAG/hB,iBAAiB,UAAU,EAC5C,SAAU2/C,GACR,OAAOjjE,EAAKkrB,KAAKvmB,EAAEs+D,CAAe,CAAC,CACrC,CACF,CAEa,CACf,EAEAD,EAAcziE,UAAUqU,OAAS,SAAUyG,GACzC,IAkCM8O,EAlCFnqB,EAAOG,KAEXkb,EAAKjB,SAAW,CAAA,EAIE,MAAhBiB,EAAK4I,SAA0D,WAAvC5I,EAAK4I,QAAQi/C,QAAQz/B,YAAY,GAEzDpoB,EAAK4I,QAAQ7J,SAAW,CAAA,EAExBja,KAAKklC,SAASxU,QAAQ,OAAO,EAAEA,QAAQ,QAAQ,GAK7C1wB,KAAKklC,SAASrX,KAAK,UAAU,EAC/B7tB,KAAK0xB,QAAQ,SAAUsxC,GACrB,IAAIh5C,EAAM,IAEV9O,EAAO,CAACA,IACHza,KAAKkC,MAAMuY,EAAM8nD,CAAW,EAEjC,IAAK,IAAIlhE,EAAI,EAAGA,EAAIoZ,EAAK3Y,OAAQT,CAAC,GAAI,CACpC,IAAI4d,EAAKxE,EAAKpZ,GAAG4d,GAEO,CAAC,IAArBsK,EAAItW,QAAQgM,CAAE,GAChBsK,EAAIvpB,KAAKif,CAAE,CAEf,CAEA7f,EAAKqlC,SAASlb,IAAIA,CAAG,EACrBnqB,EAAKqlC,SAASxU,QAAQ,OAAO,EAAEA,QAAQ,QAAQ,CACjD,CAAC,GAEG1G,EAAM9O,EAAKwE,GAEf1f,KAAKklC,SAASlb,IAAIA,CAAG,EACrBhqB,KAAKklC,SAASxU,QAAQ,OAAO,EAAEA,QAAQ,QAAQ,EAEnD,EAEAmyC,EAAcziE,UAAU6iE,SAAW,SAAU/nD,GAC3C,IAAIrb,EAAOG,KAENA,KAAKklC,SAASrX,KAAK,UAAU,IAIlC3S,EAAKjB,SAAW,CAAA,EAGE,MAAhBiB,EAAK4I,SACkC,WAAvC5I,EAAK4I,QAAQi/C,QAAQz/B,YAAY,GAEjCpoB,EAAK4I,QAAQ7J,SAAW,CAAA,EAExBja,KAAKklC,SAASxU,QAAQ,OAAO,EAAEA,QAAQ,QAAQ,GAKjD1wB,KAAK0xB,QAAQ,SAAUsxC,GAGrB,IAFA,IAAIh5C,EAAM,GAEDloB,EAAI,EAAGA,EAAIkhE,EAAYzgE,OAAQT,CAAC,GAAI,CAC3C,IAAI4d,EAAKsjD,EAAYlhE,GAAG4d,GAEpBA,IAAOxE,EAAKwE,IAA0B,CAAC,IAArBsK,EAAItW,QAAQgM,CAAE,GAClCsK,EAAIvpB,KAAKif,CAAE,CAEf,CAEA7f,EAAKqlC,SAASlb,IAAIA,CAAG,EAErBnqB,EAAKqlC,SAASxU,QAAQ,OAAO,EAAEA,QAAQ,QAAQ,CACjD,CAAC,EACH,EAEAmyC,EAAcziE,UAAUgS,KAAO,SAAUi1B,EAAWC,GAClD,IAAIznC,EAAOG,MAEXA,KAAKqnC,UAAYA,GAEPr3B,GAAG,SAAU,SAAU8yB,GAC/BjjC,EAAK4U,OAAOquB,EAAO5nB,IAAI,CACzB,CAAC,EAEDmsB,EAAUr3B,GAAG,WAAY,SAAU8yB,GACjCjjC,EAAKojE,SAASngC,EAAO5nB,IAAI,CAC3B,CAAC,CACH,EAEA2nD,EAAcziE,UAAUmoC,QAAU,WAEhCvoC,KAAKklC,SAAStxB,KAAK,GAAG,EAAEG,KAAK,WAE3BstB,EAAMmD,WAAWxkC,IAAI,CACvB,CAAC,CACH,EAEA6iE,EAAcziE,UAAUuiE,MAAQ,SAAU7/B,EAAQ3nB,GAChD,IAAID,EAAO,GACPrb,EAAOG,KAEIA,KAAKklC,SAAS1K,SAAS,EAE7BzmB,KAAK,WACZ,IAWIpC,EAV6B,WAA/B3R,KAAK+iE,QAAQz/B,YAAY,GACM,aAA/BtjC,KAAK+iE,QAAQz/B,YAAY,IAKvBwC,EAAUthC,EAAExE,IAAI,EAEhB+lC,EAASlmC,EAAKkrB,KAAK+a,CAAO,EAId,QAFZn0B,EAAU9R,EAAK8R,QAAQmxB,EAAQiD,CAAM,IAGvC7qB,EAAKza,KAAKkR,CAAO,EAErB,CAAC,EAEDwJ,EAAS,CACP0qB,QAAS3qB,CACX,CAAC,CACH,EAEA2nD,EAAcziE,UAAU8iE,WAAa,SAAUt9B,GAC7C5lC,KAAKklC,SAAStrB,OAAOgsB,CAAQ,CAC/B,EAEAi9B,EAAcziE,UAAU2lC,OAAS,SAAU7qB,GAGrCA,EAAKsf,UACPuL,EAASviC,SAASuW,cAAc,UAAU,GACnC+C,MAAQ5B,EAAKlB,KAIOf,KAAAA,KAF3B8sB,EAASviC,SAASuW,cAAc,QAAQ,GAE7BopD,YACTp9B,EAAOo9B,YAAcjoD,EAAKlB,KAE1B+rB,EAAOq9B,UAAYloD,EAAKlB,KAIZf,KAAAA,IAAZiC,EAAKwE,KACPqmB,EAAOhgC,MAAQmV,EAAKwE,IAGlBxE,EAAK3C,WACPwtB,EAAOxtB,SAAW,CAAA,GAGhB2C,EAAKjB,WACP8rB,EAAO9rB,SAAW,CAAA,GAGhBiB,EAAKqK,QACPwgB,EAAOxgB,MAAQrK,EAAKqK,OA5BtB,IAAIwgB,EA+BAs9B,EAAiBrjE,KAAKsjE,eAAepoD,CAAI,EAM7C,OALAmoD,EAAev/C,QAAUiiB,EAGzB1E,EAAMiD,UAAUyB,EAAQ,OAAQs9B,CAAc,EAEvC7+D,EAAEuhC,CAAM,CACjB,EAEA88B,EAAcziE,UAAU2qB,KAAO,SAAU+a,GACvC,IAAI5qB,EAAO,GAIX,GAAY,OAFZA,EAAOmmB,EAAMkD,QAAQuB,EAAQ,GAAI,MAAM,GAEvC,CAIA,IAAIC,EAASD,EAAQ,GAErB,GAAqC,WAAjCC,EAAOg9B,QAAQz/B,YAAY,EAC7BpoB,EAAO,CACLwE,GAAIomB,EAAQ9b,IAAI,EAChBhQ,KAAM8rB,EAAQ9rB,KAAK,EACnBzB,SAAUutB,EAAQjY,KAAK,UAAU,EACjC5T,SAAU6rB,EAAQjY,KAAK,UAAU,EACjCtI,MAAOugB,EAAQjY,KAAK,OAAO,CAC7B,OACK,GAAqC,aAAjCkY,EAAOg9B,QAAQz/B,YAAY,EAAkB,CAUtD,IAHA,IANApoB,EAAO,CACLlB,KAAM8rB,EAAQjY,KAAK,OAAO,EAC1B2M,SAAU,GACVjV,MAAOugB,EAAQjY,KAAK,OAAO,CAC7B,EAEImZ,EAAYlB,EAAQtL,SAAS,QAAQ,EACrCA,EAAW,GAENx5B,EAAI,EAAGA,EAAIgmC,EAAUzkC,OAAQvB,CAAC,GAAI,CACzC,IAAIkmC,EAAS1iC,EAAEwiC,EAAUhmC,EAAE,EAEvBimC,EAAQjnC,KAAK+qB,KAAKmc,CAAM,EAE5B1M,EAAS/5B,KAAKwmC,CAAK,CACrB,CAEA/rB,EAAKsf,SAAWA,CAClB,EAEAtf,EAAOlb,KAAKsjE,eAAepoD,CAAI,GAC1B4I,QAAUgiB,EAAQ,GAEvBzE,EAAMiD,UAAUwB,EAAQ,GAAI,OAAQ5qB,CAAI,CApCxC,CAsCA,OAAOA,CACT,EAEA2nD,EAAcziE,UAAUkjE,eAAiB,SAAUv4C,GAC7CA,IAAS1qB,OAAO0qB,CAAI,IACtBA,EAAO,CACLrL,GAAIqL,EACJ/Q,KAAM+Q,CACR,GAwBF,OAZe,OATfA,EAAOvmB,EAAEoM,OAAO,GAAI,CAClBoJ,KAAM,EACR,EAAG+Q,CAAI,GAOErL,KACPqL,EAAKrL,GAAKqL,EAAKrL,GAAG7e,SAAS,GAGZ,MAAbkqB,EAAK/Q,OACP+Q,EAAK/Q,KAAO+Q,EAAK/Q,KAAKnZ,SAAS,GAGX,MAAlBkqB,EAAKgc,WAAqBhc,EAAKrL,IAAwB,MAAlB1f,KAAKqnC,YAC5Ctc,EAAKgc,UAAY/mC,KAAK4iE,iBAAiB5iE,KAAKqnC,UAAWtc,CAAI,GAGtDvmB,EAAEoM,OAAO,GAjBD,CACbqJ,SAAU,CAAA,EACV1B,SAAU,CAAA,CACZ,EAc8BwS,CAAI,CACpC,EAEA83C,EAAcziE,UAAUuR,QAAU,SAAUmxB,EAAQ5nB,GAGlD,OAFclb,KAAKq5B,QAAQnoB,IAAI,SAAS,EAEzB4xB,EAAQ5nB,CAAI,CAC7B,EAEO2nD,CACT,CAAC,EAEDhkC,EAAGn/B,OAAO,qBAAqB,CAC7B,WACA,WACA,UACC,SAAUmjE,EAAexhC,EAAO78B,GACjC,SAAS++D,EAAcr+B,EAAU7L,GAC/Br5B,KAAKwjE,eAAiBnqC,EAAQnoB,IAAI,MAAM,GAAK,GAE7CqyD,EAAaxhC,UAAU38B,YAAY1C,KAAK1C,KAAMklC,EAAU7L,CAAO,CACjE,CAwEA,OAtEAgI,EAAMK,OAAO6hC,EAAcV,CAAa,EAExCU,EAAanjE,UAAUgS,KAAO,SAAUi1B,EAAWC,GACjDi8B,EAAaxhC,UAAU3vB,KAAK1P,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE5DtnC,KAAKkjE,WAAWljE,KAAKyjE,iBAAiBzjE,KAAKwjE,cAAc,CAAC,CAC5D,EAEAD,EAAanjE,UAAUqU,OAAS,SAAUyG,GACxC,IAAI4qB,EAImB,IAJT9lC,KAAKklC,SAAStxB,KAAK,QAAQ,EAAEY,OAAO,SAAU9T,EAAGgjE,GAC7D,OAAOA,EAAI39D,OAASmV,EAAKwE,GAAG7e,SAAS,CACvC,CAAC,EAEW0B,SACVujC,EAAU9lC,KAAK+lC,OAAO7qB,CAAI,EAE1Blb,KAAKkjE,WAAWp9B,CAAO,GAGzBy9B,EAAaxhC,UAAUttB,OAAO/R,KAAK1C,KAAMkb,CAAI,CAC/C,EAEAqoD,EAAanjE,UAAUqjE,iBAAmB,SAAUvoD,GAClD,IAAIrb,EAAOG,KAEP2jE,EAAY3jE,KAAKklC,SAAStxB,KAAK,QAAQ,EACvCgwD,EAAcD,EAAU1vD,IAAI,WAC9B,OAAOpU,EAAKkrB,KAAKvmB,EAAExE,IAAI,CAAC,EAAE0f,EAC5B,CAAC,EAAExO,IAAI,EAEH00B,EAAW,GASf,IAAK,IAAI9jC,EAAI,EAAGA,EAAIoZ,EAAK3Y,OAAQT,CAAC,GAAI,CACpC,IAgBIgkC,EAGEkB,EAnBFjc,EAAO/qB,KAAKsjE,eAAepoD,EAAKpZ,EAAE,EAGF,GAAhC8hE,EAAYlwD,QAAQqX,EAAKrL,EAAE,GACzBmkD,EAAkBF,EAAUnvD,OAXpC,SAAmBuW,GACjB,OAAO,WACL,OAAOvmB,EAAExE,IAAI,EAAEgqB,IAAI,GAAKe,EAAKrL,EAC/B,CACF,EAOoDqL,CAAI,CAAC,EAEjD+4C,EAAe9jE,KAAK+qB,KAAK84C,CAAe,EACxCE,EAAUv/D,EAAEoM,OAAO,CAAA,EAAM,GAAIma,EAAM+4C,CAAY,EAE/CE,EAAahkE,KAAK+lC,OAAOg+B,CAAO,EAEpCF,EAAgBI,YAAYD,CAAU,IAKpCl+B,EAAU9lC,KAAK+lC,OAAOhb,CAAI,EAE1BA,EAAKyP,WACHwM,EAAYhnC,KAAKyjE,iBAAiB14C,EAAKyP,QAAQ,EAEnDsL,EAAQlsB,OAAOotB,CAAS,GAG1BpB,EAASnlC,KAAKqlC,CAAO,EACvB,CAEA,OAAOF,CACT,EAEO29B,CACT,CAAC,EAED1kC,EAAGn/B,OAAO,oBAAoB,CAC5B,UACA,WACA,UACC,SAAU6jE,EAAcliC,EAAO78B,GAChC,SAAS0/D,EAAah/B,EAAU7L,GAC9Br5B,KAAKmkE,YAAcnkE,KAAKokE,eAAe/qC,EAAQnoB,IAAI,MAAM,CAAC,EAEnB,MAAnClR,KAAKmkE,YAAYE,iBACnBrkE,KAAKqkE,eAAiBrkE,KAAKmkE,YAAYE,gBAGzCH,EAAYniC,UAAU38B,YAAY1C,KAAK1C,KAAMklC,EAAU7L,CAAO,CAChE,CA+FA,OA7FAgI,EAAMK,OAAOwiC,EAAaX,CAAY,EAEtCW,EAAY9jE,UAAUgkE,eAAiB,SAAU/qC,GAiB/C,OAAO70B,EAAEoM,OAAO,GAhBD,CACbsK,KAAM,SAAU4nB,GACd,OAAOt+B,EAAEoM,OAAO,GAAIkyB,EAAQ,CAC1B7+B,EAAG6+B,EAAOnY,IACZ,CAAC,CACH,EACA25C,UAAW,SAAUxhC,EAAQnnB,EAAS4oD,GAChCC,EAAWhgE,EAAE+W,KAAKunB,CAAM,EAK5B,OAHA0hC,EAASnzC,KAAK1V,CAAO,EACrB6oD,EAASt8C,KAAKq8C,CAAO,EAEdC,CACT,CACF,EAE8BnrC,EAAS,CAAA,CAAI,CAC7C,EAEA6qC,EAAY9jE,UAAUikE,eAAiB,SAAUx+B,GAC/C,OAAOA,CACT,EAEAq+B,EAAY9jE,UAAUuiE,MAAQ,SAAU7/B,EAAQ3nB,GAC9C,IACItb,EAAOG,KAWPq5B,GATiB,MAAjBr5B,KAAKykE,WAE4B,YAA/B,OAAOzkE,KAAKykE,SAASC,OACvB1kE,KAAKykE,SAASC,MAAM,EAGtB1kE,KAAKykE,SAAW,MAGJjgE,EAAEoM,OAAO,CACrB4K,KAAM,KACR,EAAGxb,KAAKmkE,WAAW,GAUnB,SAAS75C,IACP,IAAIk6C,EAAWnrC,EAAQirC,UAAUjrC,EAAS,SAAUne,GAC9C2qB,EAAUhmC,EAAKwkE,eAAenpD,EAAM4nB,CAAM,EAE1CjjC,EAAKw5B,QAAQnoB,IAAI,OAAO,GAAK4H,OAAO6B,SAAWA,QAAQP,QAEpDyrB,GAAYA,EAAQA,SAAY1lC,MAAMkB,QAAQwkC,EAAQA,OAAO,GAChElrB,QAAQP,MACN,yFAEF,GAIJe,EAAS0qB,CAAO,CAClB,EAAG,WAGG,WAAY2+B,IACS,IAApBA,EAAS1oD,QAAoC,MAApB0oD,EAAS1oD,SAIvCjc,EAAK6wB,QAAQ,kBAAmB,CAC9BpW,QAAS,cACX,CAAC,CACH,CAAC,EAEDza,EAAK4kE,SAAWD,CAClB,CArC2B,YAAvB,OAAOnrC,EAAQ7f,MACjB6f,EAAQ7f,IAAM6f,EAAQ7f,IAAI9W,KAAK1C,KAAKklC,SAAUpC,CAAM,GAG1B,YAAxB,OAAOzJ,EAAQne,OACjBme,EAAQne,KAAOme,EAAQne,KAAKxY,KAAK1C,KAAKklC,SAAUpC,CAAM,GAkCpD9iC,KAAKmkE,YAAY3xD,OAAwB,MAAfswB,EAAOnY,MAC/B3qB,KAAK2kE,eACP7rD,OAAOlG,aAAa5S,KAAK2kE,aAAa,EAGxC3kE,KAAK2kE,cAAgB7rD,OAAO1N,WAAWkf,EAAStqB,KAAKmkE,YAAY3xD,KAAK,GAEtE8X,EAAQ,CAEZ,EAEO45C,CACT,CAAC,EAEDrlC,EAAGn/B,OAAO,oBAAoB,CAC5B,UACC,SAAU8E,GACX,SAASogE,EAAMt5B,EAAWpG,EAAU7L,GAClC,IAAIwrC,EAAOxrC,EAAQnoB,IAAI,MAAM,EAEzB4zD,EAAYzrC,EAAQnoB,IAAI,WAAW,EAMnC6zD,GAJc9rD,KAAAA,IAAd6rD,IACF9kE,KAAK8kE,UAAYA,GAGHzrC,EAAQnoB,IAAI,WAAW,GAQvC,GANkB+H,KAAAA,IAAd8rD,IACA/kE,KAAK+kE,UAAYA,GAGrBz5B,EAAU5oC,KAAK1C,KAAMklC,EAAU7L,CAAO,EAElCl5B,MAAMkB,QAAQwjE,CAAI,EACpB,IAAK,IAAIvlE,EAAI,EAAGA,EAAIulE,EAAKtiE,OAAQjD,CAAC,GAAI,CACpC,IAAI0lE,EAAMH,EAAKvlE,GACXyrB,EAAO/qB,KAAKsjE,eAAe0B,CAAG,EAE9Bl/B,EAAU9lC,KAAK+lC,OAAOhb,CAAI,EAE9B/qB,KAAKklC,SAAStrB,OAAOksB,CAAO,CAC9B,CAEJ,CAkGA,OAhGA8+B,EAAKxkE,UAAUuiE,MAAQ,SAAUr3B,EAAWxI,EAAQ3nB,GAClD,IAAItb,EAAOG,KAEXA,KAAKilE,eAAe,EAED,MAAfniC,EAAOnY,MAA+B,MAAfmY,EAAOoiC,KAChC55B,EAAU5oC,KAAK1C,KAAM8iC,EAAQ3nB,CAAQ,EAsDvCmwB,EAAU5oC,KAAK1C,KAAM8iC,EAlDrB,SAASqiC,EAAS/sC,EAAK6O,GAGrB,IAFA,IAAI/rB,EAAOkd,EAAIyN,QAENnlC,EAAI,EAAGA,EAAIwa,EAAK3Y,OAAQ7B,CAAC,GAAI,CACpC,IAAIqlC,EAAS7qB,EAAKxa,GAEd0kE,EACiB,MAAnBr/B,EAAOvL,UACP,CAAC2qC,EAAQ,CACPt/B,QAASE,EAAOvL,QAClB,EAAG,CAAA,CAAI,EAQT,IALkBuL,EAAO/rB,MAAQ,IAAIqrD,YAAY,KAC/BviC,EAAOnY,MAAQ,IAAI06C,YAAY,GAIhCD,EACf,MAAIn+B,CAAAA,IAIJ7O,EAAIld,KAAOA,EAAXkd,KACAjd,EAASid,CAAG,EAIhB,CAEA,GAAI6O,EACF,MAAO,CAAA,EAGT,IAGMnB,EAHFk/B,EAAMnlE,EAAKilE,UAAUhiC,CAAM,EAEpB,MAAPkiC,KACEl/B,EAAUjmC,EAAKkmC,OAAOi/B,CAAG,GACrBr9C,KAAK,mBAAoB,MAAM,EAEvC9nB,EAAKqjE,WAAW,CAACp9B,EAAQ,EAEzBjmC,EAAKklE,UAAU7pD,EAAM8pD,CAAG,GAG1B5sC,EAAIyN,QAAU3qB,EAEdC,EAASid,CAAG,CACd,CAEoC,CACtC,EAEAwsC,EAAKxkE,UAAU0kE,UAAY,SAAUx5B,EAAWxI,GAC9C,OAAmB,MAAfA,EAAOnY,MAME,MAFTA,EAAOmY,EAAOnY,KAAKka,KAAK,GAGnB,KAGF,CACLnlB,GAAIiL,EACJ3Q,KAAM2Q,CACR,CACF,EAEAi6C,EAAKxkE,UAAU2kE,UAAY,SAAUjlE,EAAGob,EAAM8pD,GAC5C9pD,EAAKmnB,QAAQ2iC,CAAG,CAClB,EAEAJ,EAAKxkE,UAAU6kE,eAAiB,SAAUnlE,GACzBE,KAAKklC,SAAStxB,KAAK,0BAA0B,EAEnDG,KAAK,WACR/T,KAAKia,UAITzV,EAAExE,IAAI,EAAEwoB,OAAO,CACjB,CAAC,CACH,EAEOo8C,CACT,CAAC,EAED/lC,EAAGn/B,OAAO,yBAAyB,CACjC,UACC,SAAU8E,GACX,SAAS8gE,EAAWh6B,EAAWpG,EAAU7L,GACvC,IAAIksC,EAAYlsC,EAAQnoB,IAAI,WAAW,EAErB+H,KAAAA,IAAdssD,IACFvlE,KAAKulE,UAAYA,GAGnBj6B,EAAU5oC,KAAK1C,KAAMklC,EAAU7L,CAAO,CACxC,CAuGA,OArGAisC,EAAUllE,UAAUgS,KAAO,SAAUk5B,EAAWjE,EAAWC,GACzDgE,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CtnC,KAAKssC,QAAWjF,EAAU9P,SAAS+U,SAAWjF,EAAUwD,UAAUyB,SAChEhF,EAAW1zB,KAAK,wBAAwB,CAC5C,EAEA0xD,EAAUllE,UAAUuiE,MAAQ,SAAUr3B,EAAWxI,EAAQ3nB,GACvD,IAAItb,EAAOG,KA+BX8iC,EAAOnY,KAAOmY,EAAOnY,MAAQ,GAE7B,IAAI66C,EAAYxlE,KAAKulE,UAAUziC,EAAQ9iC,KAAKq5B,QA/B5C,SAA0Bne,GAExB,IAAI6P,EAAOlrB,EAAKyjE,eAAepoD,CAAI,EAIZrb,EAAKqlC,SAAStxB,KAAK,QAAQ,EAAEY,OAAO,WACzD,OAAOhQ,EAAExE,IAAI,EAAEgqB,IAAI,IAAMe,EAAKrL,EAChC,CAAC,EAGqBnd,UAChBujC,EAAUjmC,EAAKkmC,OAAOhb,CAAI,GACtBpD,KAAK,mBAAoB,CAAA,CAAI,EAErC9nB,EAAKolE,eAAe,EACpBplE,EAAKqjE,WAAW,CAACp9B,EAAQ,GAQ3BjmC,EAAK6wB,QAAQ,SAAU,CACrBxV,KALK6P,CAMP,CAAC,CALH,CAUoE,EAEhEy6C,EAAU76C,OAASmY,EAAOnY,OAExB3qB,KAAKssC,QAAQ/pC,SACfvC,KAAKssC,QAAQtiB,IAAIw7C,EAAU76C,IAAI,EAC/B3qB,KAAKssC,QAAQ5b,QAAQ,OAAO,GAG9BoS,EAAOnY,KAAO66C,EAAU76C,MAG1B2gB,EAAU5oC,KAAK1C,KAAM8iC,EAAQ3nB,CAAQ,CACvC,EAEAmqD,EAAUllE,UAAUmlE,UAAY,SAAUzlE,EAAGgjC,EAAQzJ,EAASle,GAY5D,IAXA,IAAIsqD,EAAapsC,EAAQnoB,IAAI,iBAAiB,GAAK,GAC/CyZ,EAAOmY,EAAOnY,KACdjqB,EAAI,EAEJokE,EAAY9kE,KAAK8kE,WAAa,SAAUhiC,GAC1C,MAAO,CACLpjB,GAAIojB,EAAOnY,KACX3Q,KAAM8oB,EAAOnY,IACf,CACF,EAEOjqB,EAAIiqB,EAAKpoB,QAAQ,CACtB,IAAImjE,EAAW/6C,EAAKjqB,GAEiB,CAAC,IAAlC+kE,EAAW/xD,QAAQgyD,CAAQ,EAC7BhlE,CAAC,IAKCilE,EAAOh7C,EAAKjD,OAAO,EAAGhnB,CAAC,EAOf,OAFRwa,EAAO4pD,EAJMtgE,EAAEoM,OAAO,GAAIkyB,EAAQ,CACpCnY,KAAMg7C,CACR,CAAC,CAE8B,GAG7BjlE,CAAC,IAIHya,EAASD,CAAI,EAGbyP,EAAOA,EAAKjD,OAAOhnB,EAAI,CAAC,GAAK,GAC7BA,EAAI,GACN,CAEA,MAAO,CACLiqB,KAAMA,CACR,CACF,EAEO26C,CACT,CAAC,EAEDzmC,EAAGn/B,OAAO,kCAAkC,GAEzC,WACD,SAASkmE,EAAoBt6B,EAAWu6B,EAAIxsC,GAC1Cr5B,KAAK8lE,mBAAqBzsC,EAAQnoB,IAAI,oBAAoB,EAE1Do6B,EAAU5oC,KAAK1C,KAAM6lE,EAAIxsC,CAAO,CAClC,CAqBA,OAnBAusC,EAAmBxlE,UAAUuiE,MAAQ,SAAUr3B,EAAWxI,EAAQ3nB,GAChE2nB,EAAOnY,KAAOmY,EAAOnY,MAAQ,GAEzBmY,EAAOnY,KAAKpoB,OAASvC,KAAK8lE,mBAC5B9lE,KAAK0wB,QAAQ,kBAAmB,CAC9BpW,QAAS,gBACTkmB,KAAM,CACJulC,QAAS/lE,KAAK8lE,mBACd34B,MAAOrK,EAAOnY,KACdmY,OAAQA,CACV,CACF,CAAC,EAKHwI,EAAU5oC,KAAK1C,KAAM8iC,EAAQ3nB,CAAQ,CACvC,EAEOyqD,CACT,CAAC,EAED/mC,EAAGn/B,OAAO,kCAAkC,GAEzC,WACD,SAASsmE,EAAoB16B,EAAWu6B,EAAIxsC,GAC1Cr5B,KAAKimE,mBAAqB5sC,EAAQnoB,IAAI,oBAAoB,EAE1Do6B,EAAU5oC,KAAK1C,KAAM6lE,EAAIxsC,CAAO,CAClC,CAsBA,OApBA2sC,EAAmB5lE,UAAUuiE,MAAQ,SAAUr3B,EAAWxI,EAAQ3nB,GAChE2nB,EAAOnY,KAAOmY,EAAOnY,MAAQ,GAEC,EAA1B3qB,KAAKimE,oBACLnjC,EAAOnY,KAAKpoB,OAASvC,KAAKimE,mBAC5BjmE,KAAK0wB,QAAQ,kBAAmB,CAC9BpW,QAAS,eACTkmB,KAAM,CACJ0lC,QAASlmE,KAAKimE,mBACd94B,MAAOrK,EAAOnY,KACdmY,OAAQA,CACV,CACF,CAAC,EAKHwI,EAAU5oC,KAAK1C,KAAM8iC,EAAQ3nB,CAAQ,CACvC,EAEO6qD,CACT,CAAC,EAEDnnC,EAAGn/B,OAAO,sCAAsC,GAE7C,WACD,SAASymE,EAAwB76B,EAAWu6B,EAAIxsC,GAC9Cr5B,KAAKomE,uBAAyB/sC,EAAQnoB,IAAI,wBAAwB,EAElEo6B,EAAU5oC,KAAK1C,KAAM6lE,EAAIxsC,CAAO,CAClC,CA6CA,OA3CA8sC,EAAuB/lE,UAAUgS,KAC/B,SAAUk5B,EAAWjE,EAAWC,GAC9B,IAAIznC,EAAOG,KAEXsrC,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CD,EAAUr3B,GAAG,SAAU,WACrBnQ,EAAKwmE,wBAAwB,CAC/B,CAAC,CACL,EAEAF,EAAuB/lE,UAAUuiE,MAC/B,SAAUr3B,EAAWxI,EAAQ3nB,GAC3B,IAAItb,EAAOG,KAEXA,KAAKqmE,wBAAwB,WAC3B/6B,EAAU5oC,KAAK7C,EAAMijC,EAAQ3nB,CAAQ,CACvC,CAAC,CACL,EAEAgrD,EAAuB/lE,UAAUimE,wBAC/B,SAAUvmE,EAAGwmE,GACX,IAAIzmE,EAAOG,KAEXA,KAAK0xB,QAAQ,SAAUsxC,GACjB1gD,EAAuB,MAAf0gD,EAAsBA,EAAYzgE,OAAS,EACrB,EAA9B1C,EAAKumE,wBACP9jD,GAASziB,EAAKumE,uBACdvmE,EAAK6wB,QAAQ,kBAAmB,CAC9BpW,QAAS,kBACTkmB,KAAM,CACJ0lC,QAASrmE,EAAKumE,sBAChB,CACF,CAAC,EAICE,GACFA,EAAgB,CAEpB,CAAC,CACL,EAEOH,CACT,CAAC,EAEDtnC,EAAGn/B,OAAO,mBAAmB,CAC3B,SACA,WACC,SAAU8E,EAAG68B,GACd,SAASklC,EAAUrhC,EAAU7L,GAC3Br5B,KAAKklC,SAAWA,EAChBllC,KAAKq5B,QAAUA,EAEfktC,EAASxkC,UAAU38B,YAAY1C,KAAK1C,IAAI,CAC1C,CA+BA,OA7BAqhC,EAAMK,OAAO6kC,EAAUllC,EAAMuB,UAAU,EAEvC2jC,EAASnmE,UAAUglC,OAAS,WAC1B,IAAIY,EAAYxhC,EACd,6EAGF,EAMA,OAJAwhC,EAAUre,KAAK,MAAO3nB,KAAKq5B,QAAQnoB,IAAI,KAAK,CAAC,EAE7ClR,KAAKgmC,UAAYA,CAGnB,EAEAugC,EAASnmE,UAAUgS,KAAO,aAI1Bm0D,EAASnmE,UAAUuf,SAAW,SAAUqmB,EAAWsB,KAInDi/B,EAASnmE,UAAUmoC,QAAU,WAE3BvoC,KAAKgmC,UAAUxd,OAAO,CACxB,EAEO+9C,CACT,CAAC,EAED1nC,EAAGn/B,OAAO,0BAA0B,CAClC,UACC,SAAU8E,GACX,SAAS4nC,KAiHT,OA/GAA,EAAOhsC,UAAUglC,OAAS,SAAUkG,GAClC,IAAIX,EAAYW,EAAU5oC,KAAK1C,IAAI,EAC/BqsC,EAAcrsC,KAAKq5B,QAAQnoB,IAAI,cAAc,EAAEA,IAAI,QAAQ,EAE3Do7B,EAAU9nC,EACZ,uOAKF,EAUA,OARAxE,KAAKusC,iBAAmBD,EACxBtsC,KAAKssC,QAAUA,EAAQ14B,KAAK,OAAO,EAEnC5T,KAAKssC,QAAQze,KAAK,eAAgB7tB,KAAKq5B,QAAQnoB,IAAI,cAAc,CAAC,EAClElR,KAAKssC,QAAQ3kB,KAAK,aAAc0kB,EAAY,CAAC,EAE7C1B,EAAUlE,QAAQ6F,CAAO,EAElB3B,CACT,EAEAyB,EAAOhsC,UAAUgS,KAAO,SAAUk5B,EAAWjE,EAAWC,GACtD,IAAIznC,EAAOG,KAEPgqC,EAAY3C,EAAU3nB,GAAK,WAE/B4rB,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CtnC,KAAKssC,QAAQt8B,GAAG,UAAW,SAAU4O,GACnC/e,EAAK6wB,QAAQ,WAAY9R,CAAG,EAE5B/e,EAAK8sC,gBAAkB/tB,EAAIguB,mBAAmB,CAChD,CAAC,EAKD5sC,KAAKssC,QAAQt8B,GAAG,QAAS,SAAU4O,GAEjCpa,EAAExE,IAAI,EAAEuqC,IAAI,OAAO,CACrB,CAAC,EAEDvqC,KAAKssC,QAAQt8B,GAAG,cAAe,SAAU4O,GACvC/e,EAAKotC,aAAaruB,CAAG,CACvB,CAAC,EAEDyoB,EAAUr3B,GAAG,OAAQ,WACnBnQ,EAAKysC,QAAQ3kB,KAAK,WAAY,CAAC,EAC/B9nB,EAAKysC,QAAQ3kB,KAAK,gBAAiBqiB,CAAS,EAE5CnqC,EAAKysC,QAAQ5b,QAAQ,OAAO,EAE5B5X,OAAO1N,WAAW,WAChBvL,EAAKysC,QAAQ5b,QAAQ,OAAO,CAC9B,EAAG,CAAC,CACN,CAAC,EAED2W,EAAUr3B,GAAG,QAAS,WACpBnQ,EAAKysC,QAAQ3kB,KAAK,WAAY,CAAC,CAAC,EAChC9nB,EAAKysC,QAAQ9kB,WAAW,eAAe,EACvC3nB,EAAKysC,QAAQ9kB,WAAW,uBAAuB,EAE/C3nB,EAAKysC,QAAQtiB,IAAI,EAAE,EACnBnqB,EAAKysC,QAAQ5b,QAAQ,MAAM,CAC7B,CAAC,EAED2W,EAAUr3B,GAAG,QAAS,WACfq3B,EAAUE,OAAO,GACpB1nC,EAAKysC,QAAQ5b,QAAQ,OAAO,CAEhC,CAAC,EAED2W,EAAUr3B,GAAG,cAAe,SAAU8yB,GACX,MAArBA,EAAO6/B,MAAMh4C,MAAsC,KAAtBmY,EAAO6/B,MAAMh4C,OAC3B9qB,EAAK2mE,WAAW1jC,CAAM,EAGrCjjC,EAAK0sC,iBAAiB,GAAGzQ,UAAUtT,OAAO,sBAAsB,EAEhE3oB,EAAK0sC,iBAAiB,GAAGzQ,UAAUC,IAAI,sBAAsB,EAGnE,CAAC,EAEDsL,EAAUr3B,GAAG,gBAAiB,SAAU8yB,GAClCA,EAAO5nB,KAAK6rB,UACdlnC,EAAKysC,QAAQ3kB,KAAK,wBAAyBmb,EAAO5nB,KAAK6rB,SAAS,EAEhElnC,EAAKysC,QAAQ9kB,WAAW,uBAAuB,CAEnD,CAAC,CACH,EAEA4kB,EAAOhsC,UAAU6sC,aAAe,SAAUruB,GACxC,IACMuuB,EADDntC,KAAK2sC,kBACJQ,EAAQntC,KAAKssC,QAAQtiB,IAAI,EAE7BhqB,KAAK0wB,QAAQ,QAAS,CACpB/F,KAAMwiB,CACR,CAAC,GAGHntC,KAAK2sC,gBAAkB,CAAA,CACzB,EAEAP,EAAOhsC,UAAUomE,WAAa,SAAU1mE,EAAGgjC,GACzC,MAAO,CAAA,CACT,EAEOsJ,CACT,CAAC,EAEDvN,EAAGn/B,OAAO,mCAAmC,GAE1C,WACD,SAAS+mE,EAAiBn7B,EAAWpG,EAAU7L,EAAS8L,GACtDnlC,KAAK4K,YAAc5K,KAAKurC,qBAAqBlS,EAAQnoB,IAAI,aAAa,CAAC,EAEvEo6B,EAAU5oC,KAAK1C,KAAMklC,EAAU7L,EAAS8L,CAAW,CACrD,CAiCA,OA/BAshC,EAAgBrmE,UAAUwZ,OAAS,SAAU0xB,EAAWpwB,GACtDA,EAAK2qB,QAAU7lC,KAAK0mE,kBAAkBxrD,EAAK2qB,OAAO,EAElDyF,EAAU5oC,KAAK1C,KAAMkb,CAAI,CAC3B,EAEAurD,EAAgBrmE,UAAUmrC,qBAAuB,SAAUzrC,EAAG8K,GAQ5D,OANEA,EADyB,UAAvB,OAAOA,EACK,CACZ8U,GAAI,GACJ1F,KAAMpP,CACR,EAGKA,CACT,EAEA67D,EAAgBrmE,UAAUsmE,kBAAoB,SAAU5mE,EAAGob,GAGzD,IAFA,IAAIyrD,EAAezrD,EAAKva,MAAM,CAAC,EAEtBmB,EAAIoZ,EAAK3Y,OAAS,EAAQ,GAALT,EAAQA,CAAC,GAAI,CACzC,IAAIipB,EAAO7P,EAAKpZ,GAEZ9B,KAAK4K,YAAY8U,KAAOqL,EAAKrL,IAC/BinD,EAAa1lC,OAAOn/B,EAAG,CAAC,CAE5B,CAEA,OAAO6kE,CACT,EAEOF,CACT,CAAC,EAED5nC,EAAGn/B,OAAO,kCAAkC,CAC1C,UACC,SAAU8E,GACX,SAASoiE,EAAgBt7B,EAAWpG,EAAU7L,EAAS8L,GACrDnlC,KAAK6mE,WAAa,GAElBv7B,EAAU5oC,KAAK1C,KAAMklC,EAAU7L,EAAS8L,CAAW,EAEnDnlC,KAAK8mE,aAAe9mE,KAAK+mE,kBAAkB,EAC3C/mE,KAAKumC,QAAU,CAAA,CACjB,CAgFA,OA9EAqgC,EAAexmE,UAAUwZ,OAAS,SAAU0xB,EAAWpwB,GACrDlb,KAAK8mE,aAAat+C,OAAO,EACzBxoB,KAAKumC,QAAU,CAAA,EAEf+E,EAAU5oC,KAAK1C,KAAMkb,CAAI,EAErBlb,KAAKgnE,gBAAgB9rD,CAAI,IAC3Blb,KAAKqlC,SAASzrB,OAAO5Z,KAAK8mE,YAAY,EACtC9mE,KAAKinE,iBAAiB,EAE1B,EAEAL,EAAexmE,UAAUgS,KAAO,SAAUk5B,EAAWjE,EAAWC,GAC9D,IAAIznC,EAAOG,KAEXsrC,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CD,EAAUr3B,GAAG,QAAS,SAAU8yB,GAC9BjjC,EAAKgnE,WAAa/jC,EAClBjjC,EAAK0mC,QAAU,CAAA,CACjB,CAAC,EAEDc,EAAUr3B,GAAG,eAAgB,SAAU8yB,GACrCjjC,EAAKgnE,WAAa/jC,EAClBjjC,EAAK0mC,QAAU,CAAA,CACjB,CAAC,EAEDvmC,KAAKqlC,SAASr1B,GAAG,SAAUhQ,KAAKinE,iBAAiB70D,KAAKpS,IAAI,CAAC,CAC7D,EAEA4mE,EAAexmE,UAAU6mE,iBAAmB,WAC1C,IAAIC,EAAoB1iE,EAAEW,SACxB3B,SAAS2b,gBACTnf,KAAK8mE,aAAa,EACpB,EAEI9mE,CAAAA,KAAKumC,SAAY2gC,IAIjBn/B,EAAgB/nC,KAAKqlC,SAAStiB,OAAO,EAAEnD,IACzC5f,KAAKqlC,SAASlf,YAAY,CAAA,CAAK,EACTnmB,KAAK8mE,aAAa/jD,OAAO,EAAEnD,IACjD5f,KAAK8mE,aAAa3gD,YAAY,CAAA,CAAK,GAEjC4hB,EAAgB,KAClB/nC,KAAKmnE,SAAS,CAElB,EAEAP,EAAexmE,UAAU+mE,SAAW,WAClCnnE,KAAKumC,QAAU,CAAA,EAEf,IAAIzD,EAASt+B,EAAEoM,OAAO,GAAI,CAACs0D,KAAM,CAAC,EAAGllE,KAAK6mE,UAAU,EAEpD/jC,EAAOoiC,IAAI,GAEXllE,KAAK0wB,QAAQ,eAAgBoS,CAAM,CACrC,EAEA8jC,EAAexmE,UAAU4mE,gBAAkB,SAAUlnE,EAAGob,GACtD,OAAOA,EAAKksD,YAAclsD,EAAKksD,WAAWC,IAC5C,EAEAT,EAAexmE,UAAU2mE,kBAAoB,WAC3C,IAAIjhC,EAAUthC,EACZ,gHAGF,EAEI8V,EAAUta,KAAKq5B,QAAQnoB,IAAI,cAAc,EAAEA,IAAI,aAAa,EAIhE,OAFA40B,EAAQje,KAAKvN,EAAQta,KAAK6mE,UAAU,CAAC,EAE9B/gC,CACT,EAEO8gC,CACT,CAAC,EAED/nC,EAAGn/B,OAAO,8BAA8B,CACtC,SACA,YACC,SAAU8E,EAAG68B,GACd,SAASimC,EAAYh8B,EAAWpG,EAAU7L,GACxCr5B,KAAKunE,gBAAkB/iE,EAAE60B,EAAQnoB,IAAI,gBAAgB,GAAK1N,SAASyc,IAAI,EAEvEqrB,EAAU5oC,KAAK1C,KAAMklC,EAAU7L,CAAO,CACxC,CA0PA,OAxPAiuC,EAAWlnE,UAAUgS,KAAO,SAAUk5B,EAAWjE,EAAWC,GAC1D,IAAIznC,EAAOG,KAEXsrC,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CD,EAAUr3B,GAAG,OAAQ,WACnBnQ,EAAK2nE,cAAc,EACnB3nE,EAAK4nE,0BAA0BpgC,CAAS,EAGxCxnC,EAAK6nE,6BAA6BrgC,CAAS,CAC7C,CAAC,EAEDA,EAAUr3B,GAAG,QAAS,WACpBnQ,EAAK8nE,cAAc,EACnB9nE,EAAK+nE,0BAA0BvgC,CAAS,CAC1C,CAAC,EAEDrnC,KAAK6nE,mBAAmB73D,GAAG,YAAa,SAAU4O,GAChDA,EAAI4X,gBAAgB,CACtB,CAAC,CACH,EAEA8wC,EAAWlnE,UAAUmoC,QAAU,SAAU+C,GACvCA,EAAU5oC,KAAK1C,IAAI,EAEnBA,KAAK6nE,mBAAmBr/C,OAAO,CACjC,EAEA8+C,EAAWlnE,UAAUuf,SAAW,SAAU2rB,EAAWtF,EAAWsB,GAE9DtB,EAAUre,KAAK,QAAS2f,EAAW3f,KAAK,OAAO,CAAC,EAEhDqe,EAAU,GAAGlK,UAAUtT,OAAO,SAAS,EACvCwd,EAAU,GAAGlK,UAAUC,IAAI,yBAAyB,EAEpDiK,EAAUlgB,IAAI,CACZnG,SAAU,WACVC,IAAK,CAAC,MACR,CAAC,EAED5f,KAAKsnC,WAAaA,CACpB,EAEAggC,EAAWlnE,UAAUglC,OAAS,SAAUkG,GACtC,IAAIhE,EAAa9iC,EAAE,eAAe,EAE9BwhC,EAAYsF,EAAU5oC,KAAK1C,IAAI,EAKnC,OAJAsnC,EAAW1tB,OAAOosB,CAAS,EAE3BhmC,KAAK6nE,mBAAqBvgC,CAG5B,EAEAggC,EAAWlnE,UAAUunE,cAAgB,SAAUr8B,GAC7CtrC,KAAK6nE,mBAAmBC,OAAO,CACjC,EAEAR,EAAWlnE,UAAUsnE,6BACjB,SAAUp8B,EAAWjE,GAGvB,IAIIxnC,EAJAG,KAAK+nE,iCAILloE,EAAOG,KAEXqnC,EAAUr3B,GAAG,cAAe,WAC1BnQ,EAAKmoE,kBAAkB,EACvBnoE,EAAKooE,gBAAgB,CACvB,CAAC,EAED5gC,EAAUr3B,GAAG,iBAAkB,WAC7BnQ,EAAKmoE,kBAAkB,EACvBnoE,EAAKooE,gBAAgB,CACvB,CAAC,EAED5gC,EAAUr3B,GAAG,kBAAmB,WAC9BnQ,EAAKmoE,kBAAkB,EACvBnoE,EAAKooE,gBAAgB,CACvB,CAAC,EAED5gC,EAAUr3B,GAAG,SAAU,WACrBnQ,EAAKmoE,kBAAkB,EACvBnoE,EAAKooE,gBAAgB,CACvB,CAAC,EAED5gC,EAAUr3B,GAAG,WAAY,WACvBnQ,EAAKmoE,kBAAkB,EACvBnoE,EAAKooE,gBAAgB,CACvB,CAAC,EAEDjoE,KAAK+nE,+BAAiC,CAAA,EACxC,EAEAT,EAAWlnE,UAAUqnE,0BACjB,SAAUn8B,EAAWjE,GACvB,IAAIxnC,EAAOG,KAEPkoE,EAAc,kBAAoB7gC,EAAU3nB,GAC5CyoD,EAAc,kBAAoB9gC,EAAU3nB,GAC5C0oD,EAAmB,6BAA+B/gC,EAAU3nB,GAE5D2oD,EAAYroE,KAAKsnC,WAAWvR,QAAQ,EAAEvhB,OAAO6sB,EAAMkC,SAAS,EAChE8kC,EAAUt0D,KAAK,WACbstB,EAAMiD,UAAUtkC,KAAM,0BAA2B,CAC/C8C,EAAG0B,EAAExE,IAAI,EAAEqf,WAAW,EACtBzd,EAAG4C,EAAExE,IAAI,EAAEwf,UAAU,CACvB,CAAC,CACH,CAAC,EAED6oD,EAAUr4D,GAAGk4D,EAAa,SAAUI,GAClC,IAAI3oD,EAAW0hB,EAAMkD,QAAQvkC,KAAM,yBAAyB,EAC5DwE,EAAExE,IAAI,EAAEwf,UAAUG,EAAS/d,CAAC,CAC9B,CAAC,EAED4C,EAAEsU,MAAM,EAAE9I,GAAGk4D,EAAc,IAAMC,EAAc,IAAMC,EACnD,SAAU7oE,GACVM,EAAKmoE,kBAAkB,EACvBnoE,EAAKooE,gBAAgB,CACvB,CAAC,CACH,EAEAX,EAAWlnE,UAAUwnE,0BACjB,SAAUt8B,EAAWjE,GACvB,IAAI6gC,EAAc,kBAAoB7gC,EAAU3nB,GAC5CyoD,EAAc,kBAAoB9gC,EAAU3nB,GAC5C0oD,EAAmB,6BAA+B/gC,EAAU3nB,GAEhD1f,KAAKsnC,WAAWvR,QAAQ,EAAEvhB,OAAO6sB,EAAMkC,SAAS,EACtDgH,IAAI29B,CAAW,EAEzB1jE,EAAEsU,MAAM,EAAEyxB,IAAI29B,EAAc,IAAMC,EAAc,IAAMC,CAAgB,CACxE,EAEAd,EAAWlnE,UAAU4nE,kBAAoB,WACvC,IAAIO,EAAU/jE,EAAEsU,MAAM,EAElB0vD,EAAmBxoE,KAAKgmC,UAAU,GAAGlK,UACtC32B,SAAS,yBAAyB,EACjCsjE,EAAmBzoE,KAAKgmC,UAAU,GAAGlK,UACtC32B,SAAS,yBAAyB,EAEjCujE,EAAe,KAEf3lD,EAAS/iB,KAAKsnC,WAAWvkB,OAAO,EAIhCskB,GAFJtkB,EAAOU,OAASV,EAAOnD,IAAM5f,KAAKsnC,WAAWnhB,YAAY,CAAA,CAAK,EAE9C,CACd3H,OAAQxe,KAAKsnC,WAAWnhB,YAAY,CAAA,CAAK,CAC3C,GAEAkhB,EAAUznB,IAAMmD,EAAOnD,IACvBynB,EAAU5jB,OAASV,EAAOnD,IAAMynB,EAAU7oB,OAE1C,IAAI+Y,EACMv3B,KAAKgmC,UAAU7f,YAAY,CAAA,CAAK,EAGtCwiD,EACGJ,EAAQ/oD,UAAU,EADrBmpD,EAEMJ,EAAQ/oD,UAAU,EAAI+oD,EAAQ/pD,OAAO,EAG3CoqD,EAAkBD,EAAgB5lD,EAAOnD,IAAM2X,EAC/CsxC,EAAkBF,EAAmB5lD,EAAOU,OAAS8T,EAErDzR,EAAM,CACRjG,KAAMkD,EAAOlD,KACbD,IAAKynB,EAAU5jB,MACjB,EAGIqlD,EAAgB9oE,KAAKunE,gBAQrBwB,GAJkC,WAAlCD,EAAchjD,IAAI,UAAU,IAC9BgjD,EAAgBA,EAAcE,aAAa,GAG1B,CACjBppD,IAAK,EACLC,KAAM,CACR,IAGErb,EAAEW,SAAS3B,SAASyc,KAAM6oD,EAAc,EAAE,GAC1CA,EAAc,GAAGG,eAEjBF,EAAeD,EAAc/lD,OAAO,GAGtC+C,EAAIlG,KAAOmpD,EAAanpD,IACxBkG,EAAIjG,MAAQkpD,EAAalpD,KAEpB2oD,GAAqBC,IACxBC,EAAe,SAGZG,GAAmBD,CAAAA,GAAoBJ,EAEjC,CAACI,GAAmBC,GAAmBL,IAChDE,EAAe,SAFfA,EAAe,SAKG,SAAhBA,GACDF,GAAqC,UAAjBE,KACrB5iD,EAAIlG,IAAMynB,EAAUznB,IAAMmpD,EAAanpD,IAAM2X,GAG3B,MAAhBmxC,IACF1oE,KAAKgmC,UAAU,GAAGlK,UAAUtT,OAAO,yBAAyB,EAC5DxoB,KAAKgmC,UAAU,GAAGlK,UAAUtT,OAAO,yBAAyB,EAC5DxoB,KAAKgmC,UAAU,GAAGlK,UAAUC,IAAI,qBAAuB2sC,CAAY,EAEnE1oE,KAAKsnC,WAAW,GAAGxL,UAAUtT,OAAO,0BAA0B,EAC9DxoB,KAAKsnC,WAAW,GAAGxL,UAAUtT,OAAO,0BAA0B,EAC9DxoB,KAAKsnC,WAAW,GAAGxL,UAAUC,IAAI,sBAAwB2sC,CAAY,GAGvE1oE,KAAK6nE,mBAAmB/hD,IAAIA,CAAG,CACjC,EAEAwhD,EAAWlnE,UAAU6nE,gBAAkB,WACrC,IAAIniD,EAAM,CACR5G,MAAOlf,KAAKsnC,WAAW4hC,WAAW,CAAA,CAAK,EAAI,IAC7C,EAEIlpE,KAAKq5B,QAAQnoB,IAAI,mBAAmB,IACtC4U,EAAIqjD,SAAWrjD,EAAI5G,MACnB4G,EAAInG,SAAW,WACfmG,EAAI5G,MAAQ,QAGdlf,KAAKgmC,UAAUlgB,IAAIA,CAAG,CACxB,EAEAwhD,EAAWlnE,UAAUonE,cAAgB,SAAUl8B,GAC7CtrC,KAAK6nE,mBAAmBpgD,SAASznB,KAAKunE,eAAe,EAErDvnE,KAAKgoE,kBAAkB,EACvBhoE,KAAKioE,gBAAgB,CACvB,EAEOX,CACT,CAAC,EAEDzoC,EAAGn/B,OAAO,2CAA2C,GAElD,WAiBD,SAAS0pE,EAAyB99B,EAAWpG,EAAU7L,EAAS8L,GAC9DnlC,KAAKqpE,wBAA0BhwC,EAAQnoB,IAAI,yBAAyB,EAEhElR,KAAKqpE,wBAA0B,IACjCrpE,KAAKqpE,wBAA0BC,EAAAA,GAGjCh+B,EAAU5oC,KAAK1C,KAAMklC,EAAU7L,EAAS8L,CAAW,CACrD,CAUA,OARAikC,EAAwBhpE,UAAUomE,WAAa,SAAUl7B,EAAWxI,GAClE,MAAIymC,EA3BN,SAASA,EAAcruD,GAGrB,IAFA,IAAIoH,EAAQ,EAEHxgB,EAAI,EAAGA,EAAIoZ,EAAK3Y,OAAQT,CAAC,GAAI,CACpC,IAAIipB,EAAO7P,EAAKpZ,GAEZipB,EAAKyP,SACPlY,GAASinD,EAAax+C,EAAKyP,QAAQ,EAEnClY,CAAK,EAET,CAEA,OAAOA,CACT,EAamBwgB,EAAO5nB,KAAK2qB,OAAO,EAAI7lC,KAAKqpE,0BAItC/9B,EAAU5oC,KAAK1C,KAAM8iC,CAAM,CACpC,EAEOsmC,CACT,CAAC,EAEDvqC,EAAGn/B,OAAO,iCAAiC,CACzC,YACC,SAAU2hC,GACX,SAASmoC,KA6CT,OA3CAA,EAAcppE,UAAUgS,KAAO,SAAUk5B,EAAWjE,EAAWC,GAC7D,IAAIznC,EAAOG,KAEXsrC,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CD,EAAUr3B,GAAG,QAAS,SAAU8yB,GAC9BjjC,EAAK4pE,qBAAqB3mC,CAAM,CAClC,CAAC,CACH,EAEA0mC,EAAcppE,UAAUqpE,qBAAuB,SAAU3pE,EAAGgjC,GAC1D,GAAIA,GAAyC,MAA/BA,EAAO4mC,qBAA8B,CAC7ChgD,EAAQoZ,EAAO4mC,qBAInB,GAAoB,WAAhBhgD,EAAMqZ,OAAsC,aAAhBrZ,EAAMqZ,MACpC,MAEJ,CAEA,IAAI4mC,EAAsB3pE,KAAKynC,sBAAsB,EAGjDkiC,EAAoBpnE,OAAS,GAQd,OAJf2Y,EAAOmmB,EAAMkD,QAAQolC,EAAoB,GAAI,MAAM,GAI/C7lD,SAAmB5I,EAAK4I,QAAQ7J,UACrB,MAAhBiB,EAAK4I,SAAmB5I,EAAKjB,UAKhCja,KAAK0wB,QAAQ,SAAU,CACnBxV,KAAMA,CACV,CAAC,CACH,EAEOsuD,CACT,CAAC,EAED3qC,EAAGn/B,OAAO,iCAAiC,GAExC,WACD,SAASkqE,KA8BT,OA5BAA,EAAcxpE,UAAUgS,KAAO,SAAUk5B,EAAWjE,EAAWC,GAC7D,IAAIznC,EAAOG,KAEXsrC,EAAU5oC,KAAK1C,KAAMqnC,EAAWC,CAAU,EAE1CD,EAAUr3B,GAAG,SAAU,SAAU4O,GAC/B/e,EAAKgqE,iBAAiBjrD,CAAG,CAC3B,CAAC,EAEDyoB,EAAUr3B,GAAG,WAAY,SAAU4O,GACjC/e,EAAKgqE,iBAAiBjrD,CAAG,CAC3B,CAAC,CACH,EAEAgrD,EAAcxpE,UAAUypE,iBAAmB,SAAU/pE,EAAG8e,GACtD,IAAI0X,EAAgB1X,EAAI0X,cAGpBA,IAAkBA,EAAcwzC,SAAWxzC,EAAcyzC,UAI7D/pE,KAAK0wB,QAAQ,QAAS,CACpB4F,cAAeA,EACfozC,qBAAsB9qD,CACxB,CAAC,CACH,EAEOgrD,CACT,CAAC,EAED/qC,EAAGn/B,OAAO,+BAA+B,CACvC,YACC,SAAU2hC,GACX,SAAS2oC,KAkBT,OAhBAA,EAAY5pE,UAAUglC,OAAS,SAAUkG,GACvC,IAAItF,EAAYsF,EAAU5oC,KAAK1C,IAAI,EAE/BiqE,EAAmBjqE,KAAKq5B,QAAQnoB,IAAI,kBAAkB,GAAK,GAU/D,MAR0C,CAAC,IAAvC+4D,EAAiBv2D,QAAQ,OAAO,IAClCu2D,EAAmBA,EAAiBjhE,QAAQ,QAAS,EAAE,EAEvDq4B,EAAMqD,0BAA0BsB,EAAU,GAAIhmC,KAAKklC,SAAS,EAAE,GAGhEc,EAAUze,SAAS0iD,CAAgB,EAE5BjkC,CACT,EAEOgkC,CACT,CAAC,EAEDnrC,EAAGn/B,OAAO,uCAAuC,CAC/C,YACC,SAAU2hC,GACX,SAAS6oC,KA0BT,OAxBAA,EAAoB9pE,UAAU6lC,mBAAqB,SAAUqF,GAC3D,IAAI1F,EAAW5lC,KAAKqlC,SACnBzxB,KACC,8EAEF,EAEA,GAAsB,EAAlBgyB,EAASrjC,OAAY,CACvB,IAAI4nE,EAAevkC,EAAS3vB,MAAM,EAE9Bm0D,EADO/oC,EAAMkD,QAAQ4lC,EAAa,GAAI,MAAM,EACxBrmD,QAExB,GAAIsmD,GAAgBA,EAAahmC,cACuB,SAAlDgmC,EAAahmC,aAAa,kBAAkB,EAG9C,OAFA+lC,KAAAA,EAAaz5C,QAAQ,YAAY,CAKvC,CAEA4a,EAAU5oC,KAAK1C,IAAI,CACrB,EAEOkqE,CACT,CAAC,EAEDrrC,EAAGn/B,OAAO,kBAAkB,GAAG,WAE7B,MAAO,CACL2qE,aAAc,WACZ,MAAO,kCACT,EACAC,aAAc,SAAU9pC,GACtB,IAAI+pC,EAAY/pC,EAAK2M,MAAM5qC,OAASi+B,EAAK0lC,QAErC5rD,EAAU,iBAAmBiwD,EAAY,aAM7C,OAJiB,GAAbA,IACFjwD,GAAW,KAGNA,CACT,EACAkwD,cAAe,SAAUhqC,GAKvB,MAFc,iBAFOA,EAAKulC,QAAUvlC,EAAK2M,MAAM5qC,QAEE,qBAGnD,EACAkoE,YAAa,WACX,MAAO,uBACT,EACAC,gBAAiB,SAAUlqC,GACzB,IAAIlmB,EAAU,uBAAyBkmB,EAAK0lC,QAAU,QAMtD,OAJoB,GAAhB1lC,EAAK0lC,UACP5rD,GAAW,KAGNA,CACT,EACAqwD,UAAW,WACT,MAAO,kBACT,EACAC,UAAW,WACT,MAAO,YACT,EACAC,eAAgB,WACd,MAAO,kBACT,EACA1/B,WAAY,WACV,MAAO,aACT,EACA2/B,OAAQ,WACN,MAAO,QACT,CACF,CACF,CAAC,EAEDjsC,EAAGn/B,OAAO,mBAAmB,CAC3B,SAEA,YAEA,qBACA,uBACA,0BACA,yBACA,qBACA,2BACA,yBAEA,UACA,gBACA,eAEA,gBACA,eACA,cACA,cACA,mBACA,4BACA,4BACA,gCAEA,aACA,oBACA,6BACA,4BACA,wBACA,qCACA,2BACA,2BACA,yBACA,iCAEA,aACC,SAAU8E,EAEAumE,EAEArgC,EAAiBK,EAAmBM,EAAaO,EACjDo/B,EAAiB59B,EAAcE,EAE/BjM,EAAOoM,EAAaw9B,EAEpBC,EAAYC,EAAWC,EAAUxG,EAAMU,EACvCM,EAAoBI,EAAoBG,EAExCI,EAAU8E,EAAgB5E,EAAiBG,EAC3CU,EAAY8B,EAAyBI,EAAeI,EACpDI,EAAaE,EAEboB,GACX,SAASC,IACPvrE,KAAKwrE,MAAM,CACb,CA0XA,OAxXAD,EAASnrE,UAAUuC,MAAQ,SAAU02B,GAGR,OAF3BA,EAAU70B,EAAEoM,OAAO,CAAA,EAAM,GAAI5Q,KAAK+Q,SAAUsoB,CAAO,GAEvC8L,cACU,MAAhB9L,EAAQ9d,KACV8d,EAAQ8L,YAAcimC,EACG,MAAhB/xC,EAAQne,KACjBme,EAAQ8L,YAAcgmC,EAEtB9xC,EAAQ8L,YAAc+lC,EAGS,EAA7B7xC,EAAQysC,qBACVzsC,EAAQ8L,YAAc9D,EAAMW,SAC1B3I,EAAQ8L,YACRygC,CACF,GAG+B,EAA7BvsC,EAAQ4sC,qBACV5sC,EAAQ8L,YAAc9D,EAAMW,SAC1B3I,EAAQ8L,YACR6gC,CACF,GAGmC,EAAjC3sC,EAAQ+sC,yBACV/sC,EAAQ8L,YAAc9D,EAAMW,SAC1B3I,EAAQ8L,YACRghC,CACF,GAGE9sC,EAAQwrC,OACVxrC,EAAQ8L,YAAc9D,EAAMW,SAAS3I,EAAQ8L,YAAay/B,CAAI,GAGjC,MAA3BvrC,EAAQoyC,iBAAgD,MAArBpyC,EAAQksC,YAC7ClsC,EAAQ8L,YAAc9D,EAAMW,SAC1B3I,EAAQ8L,YACRmgC,CACF,IAI0B,MAA1BjsC,EAAQqyC,iBACVryC,EAAQqyC,eAAiBX,EAEL,MAAhB1xC,EAAQ9d,OACV8d,EAAQqyC,eAAiBrqC,EAAMW,SAC7B3I,EAAQqyC,eACR9E,CACF,GAGyB,MAAvBvtC,EAAQzuB,cACVyuB,EAAQqyC,eAAiBrqC,EAAMW,SAC7B3I,EAAQqyC,eACRjF,CACF,GAGEptC,EAAQsyC,gBACVtyC,EAAQqyC,eAAiBrqC,EAAMW,SAC7B3I,EAAQqyC,eACRlC,CACF,GAGEnwC,EAAQwrC,QACVxrC,EAAQqyC,eAAiBrqC,EAAMW,SAC7B3I,EAAQqyC,eACRxB,CACF,GAI2B,MAA3B7wC,EAAQuyC,kBACNvyC,EAAQwyC,SACVxyC,EAAQuyC,gBAAkBrF,GAEtBuF,EAAqBzqC,EAAMW,SAASukC,EAAU8E,CAAc,EAEhEhyC,EAAQuyC,gBAAkBE,GAGY,IAApCzyC,EAAQgwC,0BACVhwC,EAAQuyC,gBAAkBvqC,EAAMW,SAC9B3I,EAAQuyC,gBACRxC,CACF,GAGE/vC,EAAQ0yC,gBACV1yC,EAAQuyC,gBAAkBvqC,EAAMW,SAC9B3I,EAAQuyC,gBACRhC,CACF,GAG8B,MAA5BvwC,EAAQ4wC,mBACV5wC,EAAQuyC,gBAAkBvqC,EAAMW,SAC9B3I,EAAQuyC,gBACR5B,CACF,GAGF3wC,EAAQuyC,gBAAkBvqC,EAAMW,SAC9B3I,EAAQuyC,gBACRtE,CACF,GAG8B,MAA5BjuC,EAAQ2yC,mBACN3yC,EAAQwyC,SACVxyC,EAAQ2yC,iBAAmBjhC,EAE3B1R,EAAQ2yC,iBAAmBthC,EAIF,MAAvBrR,EAAQzuB,cACVyuB,EAAQ2yC,iBAAmB3qC,EAAMW,SAC/B3I,EAAQ2yC,iBACR3gC,CACF,GAGEhS,EAAQ4yC,aACV5yC,EAAQ2yC,iBAAmB3qC,EAAMW,SAC/B3I,EAAQ2yC,iBACRpgC,CACF,GAGEvS,EAAQwyC,WACVxyC,EAAQ2yC,iBAAmB3qC,EAAMW,SAC/B3I,EAAQ2yC,iBACRhB,CACF,GAG+B,MAA7B3xC,EAAQgU,oBACVhU,EAAQ2yC,iBAAmB3qC,EAAMW,SAC/B3I,EAAQ2yC,iBACR5+B,CACF,GAGF/T,EAAQ2yC,iBAAmB3qC,EAAMW,SAC/B3I,EAAQ2yC,iBACR1+B,CACF,GAKFjU,EAAQ6yC,SAAWlsE,KAAKmsE,iBAAiB9yC,EAAQ6yC,QAAQ,EAGzD7yC,EAAQ6yC,SAASzrE,KAAK,IAAI,EAI1B,IAvFA,IAIQqrE,EAiFJM,EAAkB,GAEblrE,EAAI,EAAGA,EAAIm4B,EAAQ6yC,SAAS3pE,OAAQrB,CAAC,GAAI,CAChD,IAAIgrE,EAAW7yC,EAAQ6yC,SAAShrE,GAEU,CAAC,IAAvCkrE,EAAgB14D,QAAQw4D,CAAQ,GAClCE,EAAgB3rE,KAAKyrE,CAAQ,CAEjC,CASA,OAPA7yC,EAAQ6yC,SAAWE,EAEnB/yC,EAAQ0U,aAAe/tC,KAAKqsE,qBAC1BhzC,EAAQ6yC,SACR7yC,EAAQizC,KACV,EAEOjzC,CACT,EAEAkyC,EAASnrE,UAAUorE,MAAQ,WACzB,SAASe,EAAiBvyD,GAMxB,OAAOA,EAAKhR,QAAQ,oBAJpB,SAAepI,GACb,OAAOqqE,EAAWrqE,IAAMA,CAC1B,CAE8C,CAChD,CA+CAZ,KAAK+Q,SAAW,CACdy7D,gBAAiB,UACjBniD,aAAc,MACd0hD,cAAe,CAAA,EACfO,MAAO,CAAA,EACPG,kBAAmB,CAAA,EACnB5oC,aAAcxC,EAAMwC,aACpBqoC,SAAU,GACVx6D,QArDF,SAASA,EAASoxB,EAAQ5nB,GAExB,GAAmB,MAAf4nB,EAAOnY,MAAuC,KAAvBmY,EAAOnY,KAAKka,KAAK,EAC1C,OAAO3pB,EAIT,GAAIA,EAAKsf,UAAmC,EAAvBtf,EAAKsf,SAASj4B,OAAY,CAM7C,IAHA,IAAI0K,EAAQzI,EAAEoM,OAAO,CAAA,EAAM,GAAIsK,CAAI,EAG1Bla,EAAIka,EAAKsf,SAASj4B,OAAS,EAAQ,GAALvB,EAAQA,CAAC,GAM/B,MAHD0Q,EAAQoxB,EAFV5nB,EAAKsf,SAASx5B,EAES,GAIjCiM,EAAMutB,SAASyG,OAAOjgC,EAAG,CAAC,EAK9B,OAA4B,EAAxBiM,EAAMutB,SAASj4B,OACV0K,EAIFyE,EAAQoxB,EAAQ71B,CAAK,CAC9B,CAEA,IAAIy/D,EAAWH,EAAgBrxD,EAAKlB,IAAI,EAAEqrD,YAAY,EAClD16C,EAAO4hD,EAAgBzpC,EAAOnY,IAAI,EAAE06C,YAAY,EAGpD,MAA6B,CAAC,EAA1BqH,EAASh5D,QAAQiX,CAAI,EAChBzP,EAIF,IACT,EAWE4qD,mBAAoB,EACpBG,mBAAoB,EACpBG,uBAAwB,EACxBiD,wBAAyB,EACzBsC,cAAe,CAAA,EACfgB,kBAAmB,CAAA,EACnBC,OAAQ,SAAU1xD,GAChB,OAAOA,CACT,EACA2xD,eAAgB,SAAU56D,GACxB,OAAOA,EAAO+H,IAChB,EACA8yD,kBAAmB,SAAUjiC,GAC3B,OAAOA,EAAU7wB,IACnB,EACA+yD,MAAO,UACP7tD,MAAO,SACT,CACF,EAEAqsD,EAASnrE,UAAU4sE,iBAAmB,SAAU3zC,EAAS6L,GACvD,IAAI+nC,EAAiB5zC,EAAQ6yC,SACzBgB,EAAkBltE,KAAK+Q,SAASm7D,SAChCiB,EAAkBjoC,EAASrX,KAAK,MAAM,EACtCu/C,EAAiBloC,EAASlI,QAAQ,QAAQ,EAAEnP,KAAK,MAAM,EAEvDw/C,EAAYltE,MAAMC,UAAUqG,OAAO/D,KACrC1C,KAAKmsE,iBAAiBgB,CAAe,EACrCntE,KAAKmsE,iBAAiBc,CAAc,EACpCjtE,KAAKmsE,iBAAiBe,CAAe,EACrCltE,KAAKmsE,iBAAiBiB,CAAc,CACtC,EAIA,OAFA/zC,EAAQ6yC,SAAWmB,EAEZh0C,CACT,EAEAkyC,EAASnrE,UAAU+rE,iBAAmB,SAAUD,GAC9C,GAAI,CAACA,EACH,MAAO,GAGT,GAAI1nE,EAAE8oE,cAAcpB,CAAQ,EAC1B,MAAO,GAGT,GAAI1nE,EAAE+oE,cAAcrB,CAAQ,EAC1B,MAAO,CAACA,GAaV,IAVA,IAgBQsB,EAXNH,EAHGltE,MAAMkB,QAAQ6qE,CAAQ,EAGbA,EAFA,CAACA,GAKXuB,EAAoB,GAEfvsE,EAAI,EAAGA,EAAImsE,EAAU9qE,OAAQrB,CAAC,GACrCusE,EAAkBhtE,KAAK4sE,EAAUnsE,EAAE,EAEP,UAAxB,OAAOmsE,EAAUnsE,IAA+C,EAA5BmsE,EAAUnsE,GAAGwS,QAAQ,GAAG,IAG1D85D,EADgBH,EAAUnsE,GAAGgY,MAAM,GAAG,EACT,GAEjCu0D,EAAkBhtE,KAAK+sE,CAAY,GAIvC,OAAOC,CACT,EAEAlC,EAASnrE,UAAUisE,qBAAuB,SAAUgB,EAAWf,GAG7D,IAFA,IAAIv+B,EAAe,IAAIN,EAEdvsC,EAAI,EAAGA,EAAImsE,EAAU9qE,OAAQrB,CAAC,GAAI,CACzC,IAAIwsE,EAAe,IAAIjgC,EAEnBy+B,EAAWmB,EAAUnsE,GAEzB,GAAwB,UAApB,OAAOgrE,EACT,IAEEwB,EAAejgC,EAAYI,SAASq+B,CAAQ,CAiB9C,CAhBE,MAAO3sE,GACP,IAEE2sE,EAAWlsE,KAAK+Q,SAASy7D,gBAAkBN,EAC3CwB,EAAejgC,EAAYI,SAASq+B,CAAQ,CAW9C,CAVE,MAAOyB,GAIHrB,GAASxzD,OAAO6B,SAAWA,QAAQizD,MACrCjzD,QAAQizD,KACN,mCAAqC1B,EACrC,uEACF,CAEJ,CACF,MAEAwB,EADSlpE,EAAE+oE,cAAcrB,CAAQ,EAClB,IAAIz+B,EAAYy+B,CAAQ,EAExBA,EAGjBn+B,EAAan9B,OAAO88D,CAAY,CAClC,CAEA,OAAO3/B,CACT,EAEAw9B,EAASnrE,UAAUytE,IAAM,SAAUx1C,EAAKtyB,GACtC,IAEImV,EAAO,GAGP4yD,GAFJ5yD,EAHe1W,EAAEupE,UAAU11C,CAAG,GAGbtyB,EAEGs7B,EAAM8B,aAAajoB,CAAI,GAE3C1W,EAAEoM,OAAO,CAAA,EAAM5Q,KAAK+Q,SAAU+8D,CAAa,CAC7C,EAEe,IAAIvC,CAGrB,CAAC,EAED1sC,EAAGn/B,OAAO,kBAAkB,CAC1B,SACA,aACA,WACC,SAAU8E,EAAG+mE,EAAUlqC,GACxB,SAAS2sC,EAAS30C,EAAS6L,GACzBllC,KAAKq5B,QAAUA,EAEC,MAAZ6L,GACFllC,KAAKiuE,YAAY/oC,CAAQ,EAGX,MAAZA,IACFllC,KAAKq5B,QAAUkyC,EAASyB,iBAAiBhtE,KAAKq5B,QAAS6L,CAAQ,GAGjEllC,KAAKq5B,QAAUkyC,EAAS5oE,MAAM3C,KAAKq5B,OAAO,CAC5C,CAqHA,OAnHA20C,EAAQ5tE,UAAU6tE,YAAc,SAAUpI,GACxC,IAAIqI,EAAe,CAAC,WAqDhBC,GAnDyB,MAAzBnuE,KAAKq5B,QAAQwyC,WACf7rE,KAAKq5B,QAAQwyC,SAAWhG,EAAGh4C,KAAK,UAAU,GAGf,MAAzB7tB,KAAKq5B,QAAQ9gB,WACfvY,KAAKq5B,QAAQ9gB,SAAWstD,EAAGh4C,KAAK,UAAU,GAGX,MAA7B7tB,KAAKq5B,QAAQhP,cAAwBw7C,EAAGh4C,KAAK,cAAc,IAC7D7tB,KAAKq5B,QAAQhP,aAAew7C,EAAGh4C,KAAK,cAAc,GAG5B,MAApB7tB,KAAKq5B,QAAQ+0C,MACXvI,EAAGh4C,KAAK,KAAK,EACf7tB,KAAKq5B,QAAQ+0C,IAAMvI,EAAGh4C,KAAK,KAAK,EACvBg4C,EAAG7oC,QAAQ,OAAO,EAAEnP,KAAK,KAAK,EACvC7tB,KAAKq5B,QAAQ+0C,IAAMvI,EAAG7oC,QAAQ,OAAO,EAAEnP,KAAK,KAAK,EAEjD7tB,KAAKq5B,QAAQ+0C,IAAM,OAIvBvI,EAAGh4C,KAAK,WAAY7tB,KAAKq5B,QAAQ9gB,QAAQ,EACzCstD,EAAGh4C,KAAK,WAAY7tB,KAAKq5B,QAAQwyC,QAAQ,EAErCxqC,EAAMkD,QAAQshC,EAAG,GAAI,aAAa,IAChC7lE,KAAKq5B,QAAQizC,OAASxzD,OAAO6B,SAAWA,QAAQizD,MAClDjzD,QAAQizD,KACN,yKAGF,EAGFvsC,EAAMiD,UAAUuhC,EAAG,GAAI,OAAQxkC,EAAMkD,QAAQshC,EAAG,GAAI,aAAa,CAAC,EAClExkC,EAAMiD,UAAUuhC,EAAG,GAAI,OAAQ,CAAA,CAAI,GAGjCxkC,EAAMkD,QAAQshC,EAAG,GAAI,SAAS,IAC5B7lE,KAAKq5B,QAAQizC,OAASxzD,OAAO6B,SAAWA,QAAQizD,MAClDjzD,QAAQizD,KACN,8JAGF,EAGF/H,EAAGl+C,KAAK,YAAa0Z,EAAMkD,QAAQshC,EAAG,GAAI,SAAS,CAAC,EACpDxkC,EAAMiD,UAAUuhC,EAAG,GAAI,WAAYxkC,EAAMkD,QAAQshC,EAAG,GAAI,SAAS,CAAC,GAGtD,IAEd,SAASwI,EAAgBvuE,EAAGwuE,GAC1B,OAAOA,EAAOjJ,YAAY,CAC5B,CAGA,IAAK,IAAI19C,EAAO,EAAGA,EAAOk+C,EAAG,GAAG0I,WAAWhsE,OAAQolB,CAAI,GAAI,CACzD,IAAI6mD,EAAgB3I,EAAG,GAAG0I,WAAW5mD,GAAMtH,KACvCuf,EAAS,QAET4uC,EAAc9mD,OAAO,EAAGkY,EAAOr9B,MAAM,GAAKq9B,IAExC6uC,EAAWD,EAAcp1D,UAAUwmB,EAAOr9B,MAAM,EAIhDmsE,EAAYrtC,EAAMkD,QAAQshC,EAAG,GAAI4I,CAAQ,EAM7CN,EAHoBM,EAASzlE,QAAQ,YAAaqlE,CAAe,GAGxCK,EAE7B,CAIIlqE,EAAE2B,GAAGwoE,QAAsC,MAA5BnqE,EAAE2B,GAAGwoE,OAAOjnD,OAAO,EAAG,CAAC,GAAam+C,EAAG,GAAGsI,UAC3DA,EAAU3pE,EAAEoM,OAAO,CAAA,EAAM,GAAIi1D,EAAG,GAAGsI,QAASA,CAAO,GAIrD,IAIS91C,EAJLnd,EAAO1W,EAAEoM,OAAO,CAAA,EAAM,GAAIywB,EAAMkD,QAAQshC,EAAG,EAAE,EAAGsI,CAAO,EAI3D,IAAS91C,KAAOnd,EAFTmmB,EAAM8B,aAAajoB,CAAI,EAGI,CAAC,EAA7BgzD,EAAax6D,QAAQ2kB,CAAG,IAIxB7zB,EAAE+oE,cAAcvtE,KAAKq5B,QAAQhB,EAAI,EACnC7zB,EAAEoM,OAAO5Q,KAAKq5B,QAAQhB,GAAMnd,EAAKmd,EAAI,EAErCr4B,KAAKq5B,QAAQhB,GAAOnd,EAAKmd,IAI7B,OAAOr4B,IACT,EAEAguE,EAAQ5tE,UAAU8Q,IAAM,SAAUmnB,GAChC,OAAOr4B,KAAKq5B,QAAQhB,EACtB,EAEA21C,EAAQ5tE,UAAUytE,IAAM,SAAUx1C,EAAKrO,GACrChqB,KAAKq5B,QAAQhB,GAAOrO,CACtB,EAEOgkD,CACT,CAAC,EAEDnvC,EAAGn/B,OAAO,eAAe,CACvB,SACA,YACA,UACA,UACC,SAAU8E,EAAGwpE,EAAS3sC,EAAOuI,GAChB,SAAVglC,EAAoB1pC,EAAU7L,GACa,MAAzCgI,EAAMkD,QAAQW,EAAS,GAAI,SAAS,GACtC7D,EAAMkD,QAAQW,EAAS,GAAI,SAAS,EAAEqD,QAAQ,EAGhDvoC,KAAKklC,SAAWA,EAEhBllC,KAAK0f,GAAK1f,KAAK6uE,YAAY3pC,CAAQ,EAInCllC,KAAKq5B,QAAU,IAAI20C,EAFnB30C,EAAUA,GAAW,GAEe6L,CAAQ,EAE5C0pC,EAAQ7sC,UAAU38B,YAAY1C,KAAK1C,IAAI,EAIvC,IAAI8uE,EAAW5pC,EAASvd,KAAK,UAAU,GAAK,EAMxConD,GALJ1tC,EAAMiD,UAAUY,EAAS,GAAI,eAAgB4pC,CAAQ,EACrD5pC,EAASvd,KAAK,WAAY,IAAI,EAIZ3nB,KAAKq5B,QAAQnoB,IAAI,aAAa,GAG5Co2B,GAFJtnC,KAAKmlC,YAAc,IAAI4pC,EAAY7pC,EAAUllC,KAAKq5B,OAAO,EAExCr5B,KAAKolC,OAAO,GAIzB4pC,GAFJhvE,KAAKivE,gBAAgB3nC,CAAU,EAERtnC,KAAKq5B,QAAQnoB,IAAI,kBAAkB,GAMtDg+D,GALJlvE,KAAK6qC,UAAY,IAAImkC,EAAiB9pC,EAAUllC,KAAKq5B,OAAO,EAC5Dr5B,KAAK8pC,WAAa9pC,KAAK6qC,UAAUzF,OAAO,EAExCplC,KAAK6qC,UAAUlrB,SAAS3f,KAAK8pC,WAAYxC,CAAU,EAE7BtnC,KAAKq5B,QAAQnoB,IAAI,iBAAiB,GAMpDi+D,GALJnvE,KAAKu3B,SAAW,IAAI23C,EAAgBhqC,EAAUllC,KAAKq5B,OAAO,EAC1Dr5B,KAAKgmC,UAAYhmC,KAAKu3B,SAAS6N,OAAO,EAEtCplC,KAAKu3B,SAAS5X,SAAS3f,KAAKgmC,UAAWsB,CAAU,EAE5BtnC,KAAKq5B,QAAQnoB,IAAI,gBAAgB,GAQlDrR,GAPJG,KAAK6lC,QAAU,IAAIspC,EAAejqC,EAAUllC,KAAKq5B,QAASr5B,KAAKmlC,WAAW,EAC1EnlC,KAAKqlC,SAAWrlC,KAAK6lC,QAAQT,OAAO,EAEpCplC,KAAK6lC,QAAQlmB,SAAS3f,KAAKqlC,SAAUrlC,KAAKgmC,SAAS,EAIxChmC,MAGXA,KAAKovE,cAAc,EAGnBpvE,KAAKqvE,mBAAmB,EAGxBrvE,KAAKsvE,oBAAoB,EACzBtvE,KAAKuvE,yBAAyB,EAC9BvvE,KAAKwvE,wBAAwB,EAC7BxvE,KAAKyvE,uBAAuB,EAC5BzvE,KAAK0vE,gBAAgB,EAGrB1vE,KAAKmlC,YAAYzT,QAAQ,SAAUi+C,GACjC9vE,EAAK6wB,QAAQ,mBAAoB,CAC/BxV,KAAMy0D,CACR,CAAC,CACH,CAAC,EAGDzqC,EAAS,GAAGpJ,UAAUC,IAAI,2BAA2B,EACrDmJ,EAASvd,KAAK,cAAe,MAAM,EAGnC3nB,KAAK4vE,gBAAgB,EAErBvuC,EAAMiD,UAAUY,EAAS,GAAI,UAAWllC,IAAI,EAG5CklC,EAAShqB,KAAK,UAAWlb,IAAI,CAC/B,CAmgBA,OAjgBAqhC,EAAMK,OAAOktC,EAASvtC,EAAMuB,UAAU,EAEtCgsC,EAAQxuE,UAAUyuE,YAAc,SAAU3pC,GAcxC,MAFK,YATsB,MAAvBA,EAASvd,KAAK,IAAI,EACfud,EAASvd,KAAK,IAAI,EACW,MAAzBud,EAASvd,KAAK,MAAM,EACxBud,EAASvd,KAAK,MAAM,EAAI,IAAM0Z,EAAM2B,cAAc,CAAC,EAEnD3B,EAAM2B,cAAc,CAAC,GAGpBh6B,QAAQ,kBAAmB,EAAE,CAIvC,EAEA4lE,EAAQxuE,UAAU6uE,gBAAkB,SAAU3nC,GAC5CA,EAAWuoC,YAAY7vE,KAAKklC,QAAQ,EAEpC,IAAIhmB,EAAQlf,KAAK8vE,cAAc9vE,KAAKklC,SAAUllC,KAAKq5B,QAAQnoB,IAAI,OAAO,CAAC,EAE1D,MAATgO,GACFooB,EAAWxhB,IAAI,QAAS5G,CAAK,CAEjC,EAEA0vD,EAAQxuE,UAAU0vE,cAAgB,SAAU5qC,EAAUjqB,GACpD,IAAI80D,EAAQ,gEAEZ,GAAc,WAAV90D,EAGF,OAAkB,OAFd+0D,EAAahwE,KAAK8vE,cAAc5qC,EAAU,OAAO,GAG5C8qC,EAGFhwE,KAAK8vE,cAAc5qC,EAAU,SAAS,EAG/C,GAAc,WAAVjqB,EAGF,OAFIg1D,EAAe/qC,EAASgkC,WAAW,CAAA,CAAK,IAExB,EACX,OAGF+G,EAAe,KAGxB,GAAc,SAAVh1D,EAqBJ,MAAc,iBAAVA,EACkBnC,OAAOo3D,iBAAiBhrC,EAAS,EAAE,EAElChmB,MAGhBjE,EA1BL,IAAIsD,EAAQ2mB,EAASvd,KAAK,OAAO,EAEjC,GAAsB,UAAlB,OAAM,EAMV,IAFA,IAAI+e,EAAQnoB,EAAMrF,MAAM,GAAG,EAElBxY,EAAI,EAAGQ,EAAIwlC,EAAMnkC,OAAQ7B,EAAIQ,EAAGR,GAAQ,EAAG,CAClD,IACIiR,EADO+0B,EAAMhmC,GAAGsI,QAAQ,MAAO,EAAE,EAClBiE,MAAM8iE,CAAK,EAE9B,GAAgB,OAAZp+D,GAAsC,GAAlBA,EAAQpP,OAC9B,OAAOoP,EAAQ,EAEnB,CAEA,OAAO,IAUX,EAEAi9D,EAAQxuE,UAAUgvE,cAAgB,WAChCpvE,KAAKmlC,YAAY/yB,KAAKpS,KAAMA,KAAKsnC,UAAU,EAC3CtnC,KAAK6qC,UAAUz4B,KAAKpS,KAAMA,KAAKsnC,UAAU,EAEzCtnC,KAAKu3B,SAASnlB,KAAKpS,KAAMA,KAAKsnC,UAAU,EACxCtnC,KAAK6lC,QAAQzzB,KAAKpS,KAAMA,KAAKsnC,UAAU,CACzC,EAEAsnC,EAAQxuE,UAAUivE,mBAAqB,WACrC,IAAIxvE,EAAOG,KAEXA,KAAKklC,SAASl1B,GAAG,iBAAkB,WACjCnQ,EAAKslC,YAAYzT,QAAQ,SAAUxW,GACjCrb,EAAK6wB,QAAQ,mBAAoB,CAC/BxV,KAAMA,CACR,CAAC,CACH,CAAC,CACH,CAAC,EAEDlb,KAAKklC,SAASl1B,GAAG,gBAAiB,SAAU4O,GAC1C/e,EAAK6wB,QAAQ,QAAS9R,CAAG,CAC3B,CAAC,EAED5e,KAAKmwE,OAAS9uC,EAAMjvB,KAAKpS,KAAK4vE,gBAAiB5vE,IAAI,EACnDA,KAAKowE,OAAS/uC,EAAMjvB,KAAKpS,KAAKqwE,aAAcrwE,IAAI,EAEhDA,KAAKswE,UAAY,IAAIx3D,OAAOy3D,iBAAiB,SAAUC,GACrD3wE,EAAKswE,OAAO,EACZtwE,EAAKuwE,OAAOI,CAAS,CACvB,CAAC,EACDxwE,KAAKswE,UAAUG,QAAQzwE,KAAKklC,SAAS,GAAI,CACvCqpC,WAAY,CAAA,EACZmC,UAAW,CAAA,EACXC,QAAS,CAAA,CACX,CAAC,CACH,EAEA/B,EAAQxuE,UAAUkvE,oBAAsB,WACtC,IAAIzvE,EAAOG,KAEXA,KAAKmlC,YAAYn1B,GAAG,IAAK,SAAUqQ,EAAMyiB,GACvCjjC,EAAK6wB,QAAQrQ,EAAMyiB,CAAM,CAC3B,CAAC,CACH,EAEA8rC,EAAQxuE,UAAUmvE,yBAA2B,WAC3C,IAAI1vE,EAAOG,KACP4wE,EAAiB,CAAC,SAAU,SAEhC5wE,KAAK6qC,UAAU76B,GAAG,SAAU,WAC1BnQ,EAAKgxE,eAAe,CACtB,CAAC,EAED7wE,KAAK6qC,UAAU76B,GAAG,QAAS,SAAU8yB,GACnCjjC,EAAKuvB,MAAM0T,CAAM,CACnB,CAAC,EAED9iC,KAAK6qC,UAAU76B,GAAG,IAAK,SAAUqQ,EAAMyiB,GACA,CAAC,IAAlC8tC,EAAel9D,QAAQ2M,CAAI,GAI/BxgB,EAAK6wB,QAAQrQ,EAAMyiB,CAAM,CAC3B,CAAC,CACH,EAEA8rC,EAAQxuE,UAAUovE,wBAA0B,WAC1C,IAAI3vE,EAAOG,KAEXA,KAAKu3B,SAASvnB,GAAG,IAAK,SAAUqQ,EAAMyiB,GACpCjjC,EAAK6wB,QAAQrQ,EAAMyiB,CAAM,CAC3B,CAAC,CACH,EAEA8rC,EAAQxuE,UAAUqvE,uBAAyB,WACzC,IAAI5vE,EAAOG,KAEXA,KAAK6lC,QAAQ71B,GAAG,IAAK,SAAUqQ,EAAMyiB,GACnCjjC,EAAK6wB,QAAQrQ,EAAMyiB,CAAM,CAC3B,CAAC,CACH,EAEA8rC,EAAQxuE,UAAUsvE,gBAAkB,WAClC,IAAI7vE,EAAOG,KAEXA,KAAKgQ,GAAG,OAAQ,WACdnQ,EAAKynC,WAAW,GAAGxL,UAAUC,IAAI,yBAAyB,CAC5D,CAAC,EAED/7B,KAAKgQ,GAAG,QAAS,WACfnQ,EAAKynC,WAAW,GAAGxL,UAAUtT,OAAO,yBAAyB,CAC/D,CAAC,EAEDxoB,KAAKgQ,GAAG,SAAU,WAChBnQ,EAAKynC,WAAW,GAAGxL,UAAUtT,OAAO,6BAA6B,CACnE,CAAC,EAEDxoB,KAAKgQ,GAAG,UAAW,WACjBnQ,EAAKynC,WAAW,GAAGxL,UAAUC,IAAI,6BAA6B,CAChE,CAAC,EAED/7B,KAAKgQ,GAAG,OAAQ,WACdnQ,EAAKynC,WAAW,GAAGxL,UAAUtT,OAAO,0BAA0B,CAChE,CAAC,EAEDxoB,KAAKgQ,GAAG,QAAS,SAAU8yB,GACpBjjC,EAAK0nC,OAAO,GACf1nC,EAAK6wB,QAAQ,OAAQ,EAAE,EAGzB1wB,KAAKmlC,YAAYw9B,MAAM7/B,EAAQ,SAAU5nB,GACvCrb,EAAK6wB,QAAQ,cAAe,CAC1BxV,KAAMA,EACNynD,MAAO7/B,CACT,CAAC,CACH,CAAC,CACH,CAAC,EAED9iC,KAAKgQ,GAAG,eAAgB,SAAU8yB,GAChC9iC,KAAKmlC,YAAYw9B,MAAM7/B,EAAQ,SAAU5nB,GACvCrb,EAAK6wB,QAAQ,iBAAkB,CAC7BxV,KAAMA,EACNynD,MAAO7/B,CACT,CAAC,CACH,CAAC,CACH,CAAC,EAED9iC,KAAKgQ,GAAG,WAAY,SAAU4O,GAC5B,IAAIyZ,EAAMzZ,EAAIsrB,MAEVrqC,EAAK0nC,OAAO,EACVlP,IAAQuR,EAAKX,KAAQ5Q,IAAQuR,EAAKJ,IAAM5qB,EAAIkyD,QAC9CjxE,EAAK4iB,MAAM7D,CAAG,EAEdA,EAAIsL,eAAe,GACVmO,IAAQuR,EAAKf,OAASxQ,IAAQuR,EAAKhB,KAC5C/oC,EAAK6wB,QAAQ,iBAAkB,EAAE,EAEjC9R,EAAIsL,eAAe,GACTmO,IAAQuR,EAAKV,OAAStqB,EAAIkrD,SACpCjqE,EAAK6wB,QAAQ,iBAAkB,EAAE,EAEjC9R,EAAIsL,eAAe,GACVmO,IAAQuR,EAAKJ,IACtB3pC,EAAK6wB,QAAQ,mBAAoB,EAAE,EAEnC9R,EAAIsL,eAAe,GACVmO,IAAQuR,EAAKF,OACtB7pC,EAAK6wB,QAAQ,eAAgB,EAAE,EAE/B9R,EAAIsL,eAAe,IAGjBmO,IAAQuR,EAAKf,OAASxQ,IAAQuR,EAAKV,OAClC7Q,IAAQuR,EAAKF,MAAQ9qB,EAAIkyD,UAC5BjxE,EAAKioB,KAAK,EAEVlJ,EAAIsL,eAAe,EAGzB,CAAC,CACH,EAEA0kD,EAAQxuE,UAAUwvE,gBAAkB,WAClC5vE,KAAKq5B,QAAQw0C,IAAI,WAAY7tE,KAAKklC,SAASrX,KAAK,UAAU,CAAC,EAEvD7tB,KAAKyqC,WAAW,GACdzqC,KAAKunC,OAAO,GACdvnC,KAAKyiB,MAAM,EAGbziB,KAAK0wB,QAAQ,UAAW,EAAE,GAE1B1wB,KAAK0wB,QAAQ,SAAU,EAAE,CAE7B,EAEAk+C,EAAQxuE,UAAU2wE,kBAAoB,SAAUP,GAC9C,IAAI3wE,EAAOG,KAEX,GAAIwwE,EAAUQ,YAA4C,EAA9BR,EAAUQ,WAAWzuE,QAC/C,IAAK,IAAInD,EAAI,EAAGA,EAAIoxE,EAAUQ,WAAWzuE,OAAQnD,CAAC,GAGhD,GAFWoxE,EAAUQ,WAAW5xE,GAEvB6a,SACP,MAAO,CAAA,CAEX,KACK,CAAA,GAAIu2D,EAAUS,cAAgD,EAAhCT,EAAUS,aAAa1uE,OAC1D,MAAO,CAAA,EACF,GAAIpC,MAAMkB,QAAQmvE,CAAS,EAChC,OAAOA,EAAU37D,KAAK,SAAUq8D,GAC9B,OAAOrxE,EAAKkxE,kBAAkBG,CAAQ,CACxC,CAAC,CACH,CAEA,MAAO,CAAA,CACT,EAEAtC,EAAQxuE,UAAUiwE,aAAe,SAAUG,GACzC,IAAIW,EAAUnxE,KAAK+wE,kBAAkBP,CAAS,EAC1C3wE,EAAOG,KAGPmxE,GACFnxE,KAAKmlC,YAAYzT,QAAQ,SAAUsxC,GACjCnjE,EAAK6wB,QAAQ,mBAAoB,CAC/BxV,KAAM8nD,CACR,CAAC,CACH,CAAC,CAEL,EAMA4L,EAAQxuE,UAAUswB,QAAU,SAAUrQ,EAAMmgB,GAC1C,IAAI4wC,EAAgBxC,EAAQ7sC,UAAUrR,QAClC2gD,EAAgB,CAClBvpD,KAAQ,UACRrF,MAAS,UACThO,OAAU,YACVwuD,SAAY,cACZ39B,MAAS,UACX,EAMA,GAJarsB,KAAAA,IAATunB,IACFA,EAAO,IAGLngB,KAAQgxD,EAAe,CACzB,IACIC,EAAiB,CACnBplC,UAAW,CAAA,EACX7rB,KAAMA,EACNmgB,KAAMA,CACR,EAIA,GAFA4wC,EAAc1uE,KAAK1C,KAPEqxE,EAAchxD,GAOMixD,CAAc,EAEnDA,EAAeplC,UAGjB,OAFA1L,KAAAA,EAAK0L,UAAY,CAAA,EAIrB,CAEAklC,EAAc1uE,KAAK1C,KAAMqgB,EAAMmgB,CAAI,CACrC,EAEAouC,EAAQxuE,UAAUywE,eAAiB,WAC7B7wE,KAAKyqC,WAAW,IAIhBzqC,KAAKunC,OAAO,EACdvnC,KAAKyiB,MAAM,EAEXziB,KAAK8nB,KAAK,EAEd,EAEA8mD,EAAQxuE,UAAU0nB,KAAO,WACnB9nB,KAAKunC,OAAO,GAIZvnC,KAAKyqC,WAAW,GAIpBzqC,KAAK0wB,QAAQ,QAAS,EAAE,CAC1B,EAEAk+C,EAAQxuE,UAAUqiB,MAAQ,SAAU7D,GAC7B5e,KAAKunC,OAAO,GAIjBvnC,KAAK0wB,QAAQ,QAAS,CAAE4F,cAAgB1X,CAAI,CAAC,CAC/C,EASAgwD,EAAQxuE,UAAUoqC,UAAY,WAC5B,MAAO,CAACxqC,KAAKyqC,WAAW,CAC1B,EAQAmkC,EAAQxuE,UAAUqqC,WAAa,WAC7B,OAAOzqC,KAAKq5B,QAAQnoB,IAAI,UAAU,CACpC,EAEA09D,EAAQxuE,UAAUmnC,OAAS,WACzB,OAAOvnC,KAAKsnC,WAAW,GAAGxL,UAAU32B,SAAS,yBAAyB,CACxE,EAEAypE,EAAQxuE,UAAUmxE,SAAW,WAC3B,OAAOvxE,KAAKsnC,WAAW,GAAGxL,UAAU32B,SAAS,0BAA0B,CACzE,EAEAypE,EAAQxuE,UAAUgvB,MAAQ,SAAUlU,GAE9Blb,KAAKuxE,SAAS,IAIlBvxE,KAAKsnC,WAAW,GAAGxL,UAAUC,IAAI,0BAA0B,EAC3D/7B,KAAK0wB,QAAQ,QAAS,EAAE,EAC1B,EAEAk+C,EAAQxuE,UAAUoxE,OAAS,SAAUhxC,GAC/BxgC,KAAKq5B,QAAQnoB,IAAI,OAAO,GAAK4H,OAAO6B,SAAWA,QAAQizD,MACzDjzD,QAAQizD,KACN,mJAGF,EAOEr1D,EAAW,EAHbioB,EADU,MAARA,GAAgC,IAAhBA,EAAKj+B,OAITi+B,EAHP,CAAC,CAAA,IAGW,GAErBxgC,KAAKklC,SAASrX,KAAK,WAAYtV,CAAQ,CACzC,EAEAq2D,EAAQxuE,UAAU8a,KAAO,WACnBlb,KAAKq5B,QAAQnoB,IAAI,OAAO,GACL,EAAnBzO,UAAUF,QAAcuW,OAAO6B,SAAWA,QAAQizD,MACpDjzD,QAAQizD,KACN,mIAEF,EAGF,IAAI1yD,EAAO,GAMX,OAJAlb,KAAKmlC,YAAYzT,QAAQ,SAAUsxC,GACjC9nD,EAAO8nD,CACT,CAAC,EAEM9nD,CACT,EAEA0zD,EAAQxuE,UAAU4pB,IAAM,SAAUwW,GAQhC,GAPIxgC,KAAKq5B,QAAQnoB,IAAI,OAAO,GAAK4H,OAAO6B,SAAWA,QAAQizD,MACzDjzD,QAAQizD,KACN,qIAEF,EAGU,MAARptC,GAAgC,IAAhBA,EAAKj+B,OACvB,OAAOvC,KAAKklC,SAASlb,IAAI,EAGvBynD,EAASjxC,EAAK,GAEdrgC,MAAMkB,QAAQowE,CAAM,IACtBA,EAASA,EAAOx9D,IAAI,SAAUmkB,GAC5B,OAAOA,EAAIv3B,SAAS,CACtB,CAAC,GAGHb,KAAKklC,SAASlb,IAAIynD,CAAM,EAAE/gD,QAAQ,OAAO,EAAEA,QAAQ,QAAQ,CAC7D,EAEAk+C,EAAQxuE,UAAUmoC,QAAU,WAC1BlH,EAAMmD,WAAWxkC,KAAKsnC,WAAW,EAAE,EACnCtnC,KAAKsnC,WAAW9e,OAAO,EAEvBxoB,KAAKswE,UAAUoB,WAAW,EAC1B1xE,KAAKswE,UAAY,KAEjBtwE,KAAKmwE,OAAS,KACdnwE,KAAKowE,OAAS,KAEdpwE,KAAKklC,SAASqF,IAAI,UAAU,EAC5BvqC,KAAKklC,SAASvd,KAAK,WACnB0Z,EAAMkD,QAAQvkC,KAAKklC,SAAS,GAAI,cAAc,CAAC,EAE/CllC,KAAKklC,SAAS,GAAGpJ,UAAUtT,OAAO,2BAA2B,EAC7DxoB,KAAKklC,SAASvd,KAAK,cAAe,OAAO,EACzC0Z,EAAMmD,WAAWxkC,KAAKklC,SAAS,EAAE,EACjCllC,KAAKklC,SAASysC,WAAW,SAAS,EAElC3xE,KAAKmlC,YAAYoD,QAAQ,EACzBvoC,KAAK6qC,UAAUtC,QAAQ,EACvBvoC,KAAKu3B,SAASgR,QAAQ,EACtBvoC,KAAK6lC,QAAQ0C,QAAQ,EAErBvoC,KAAKmlC,YAAc,KACnBnlC,KAAK6qC,UAAY,KACjB7qC,KAAKu3B,SAAW,KAChBv3B,KAAK6lC,QAAU,IACjB,EAEA+oC,EAAQxuE,UAAUglC,OAAS,WACzB,IAAIkC,EAAa9iC,EACf,yIAIF,EAWA,OATA8iC,EAAW3f,KAAK,MAAO3nB,KAAKq5B,QAAQnoB,IAAI,KAAK,CAAC,EAE9ClR,KAAKsnC,WAAaA,EAElBtnC,KAAKsnC,WAAW,GAAGxL,UAChBC,IAAI,sBAAwB/7B,KAAKq5B,QAAQnoB,IAAI,OAAO,CAAC,EAExDmwB,EAAMiD,UAAUgD,EAAW,GAAI,UAAWtnC,KAAKklC,QAAQ,EAEhDoC,CACT,EAEOsnC,CACT,CAAC,EAED/vC,EAAGn/B,OAAO,oBAAoB,CAC5B,UACC,SAAU8E,GAEX,OAAOA,CACT,CAAC,EAEDq6B,EAAGn/B,OAAO,iBAAiB,CACzB,SACA,oBAEA,iBACA,qBACA,mBACC,SAAU8E,EAAG1E,EAAG8uE,EAASrD,EAAUlqC,GACpC,IAEMuwC,EA8CN,OAhDoB,MAAhBptE,EAAE2B,GAAGymB,UAEHglD,EAAc,CAAC,OAAQ,QAAS,WAEpCptE,EAAE2B,GAAGymB,QAAU,SAAUyM,GAGvB,GAAuB,UAAnB,OAFJA,EAAUA,GAAW,IASnB,OANAr5B,KAAK+T,KAAK,WACR,IAAI89D,EAAkBrtE,EAAEoM,OAAO,CAAA,EAAM,GAAIyoB,CAAO,EAEjC,IAAIu1C,EAAQpqE,EAAExE,IAAI,EAAG6xE,CAAe,CACrD,CAAC,EAEM7xE,KACF,IACD6gC,EACAL,EAFC,GAAuB,UAAnB,OAAOnH,EAkBhB,OAhBImH,EAAOrgC,MAAMC,UAAUO,MAAM+B,KAAKD,UAAW,CAAC,EAElDzC,KAAK+T,KAAK,WACR,IAAI+9D,EAAWzwC,EAAMkD,QAAQvkC,KAAM,SAAS,EAE5B,MAAZ8xE,GAAoBh5D,OAAO6B,SAAWA,QAAQP,OAChDO,QAAQP,MACN,gBAAmBif,EACnB,+DACF,EAGFwH,EAAMixC,EAASz4C,GAAS12B,MAAMmvE,EAAUtxC,CAAI,CAC9C,CAAC,EAGkC,CAAC,EAAhCoxC,EAAYl+D,QAAQ2lB,CAAO,EACtBr5B,KAGF6gC,EAEP,MAAM,IAAI31B,MAAM,kCAAoCmuB,CAAO,CAE/D,GAG2B,MAAzB70B,EAAE2B,GAAGymB,QAAQ7b,WACfvM,EAAE2B,GAAGymB,QAAQ7b,SAAWw6D,GAGnBqD,CACT,CAAC,EAvgMC,IAME/vC,EAUWD,EACJkC,EACHX,EAAMpT,EAAKuS,EAASU,EACpBjB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAzBFR,EA0gMG,CACLn/B,OAAQm/B,EAAGn/B,OACXk/B,QAASC,EAAGD,OACd,EAl/LE,SAAS+B,EAAQvI,EAAKvK,GAClB,OAAOsR,EAAOz8B,KAAK01B,EAAKvK,CAAI,CAChC,CAUA,SAASkS,EAAU1f,EAAM0xD,GACrB,IAAIC,EAAWC,EAAaC,EAAUC,EAClCC,EAAQC,EAAcC,EAAO5xE,EAAG4B,EAAGqjE,EACnC4M,EAAYR,GAAYA,EAAS74D,MAAM,GAAG,EAC1CjF,EAAMgrB,EAAOhrB,IACbu+D,EAAWv+D,GAAOA,EAAI,MAAS,GAGnC,GAAIoM,EAAM,CAwBN,IAtBAoyD,GADApyD,EAAOA,EAAKnH,MAAM,GAAG,GACJ3W,OAAS,EAMtB08B,EAAOyzC,cAAgBrzC,EAAer6B,KAAKqb,EAAKoyD,EAAU,IAC1DpyD,EAAKoyD,GAAapyD,EAAKoyD,GAAWzpE,QAAQq2B,EAAgB,EAAE,GAItC,MAAtBhf,EAAK,GAAGsyD,OAAO,CAAC,GAAaJ,IAO7BlyD,EADsBkyD,EAAU5xE,MAAM,EAAG4xE,EAAUhwE,OAAS,CAAC,EAClCkE,OAAO4Z,CAAI,GAIrC3f,EAAI,EAAGA,EAAI2f,EAAK9d,OAAQ7B,CAAC,GAEb,OADbilE,EAAOtlD,EAAK3f,KAER2f,EAAK4gB,OAAOvgC,EAAG,CAAC,EAChBA,EAAAA,GACgB,OAATilE,GAMG,IAANjlE,GAAkB,IAANA,GAAuB,OAAZ2f,EAAK,IAAgC,OAAhBA,EAAK3f,EAAI,IAE1C,EAAJA,IACP2f,EAAK4gB,OAAOvgC,EAAI,EAAG,CAAC,EACpBA,GAAK,GAMjB2f,EAAOA,EAAKvX,KAAK,GAAG,CACxB,CAGA,IAAKypE,GAAaC,IAAYv+D,EAAK,CAG/B,IAAKvT,GAFLsxE,EAAY3xD,EAAKnH,MAAM,GAAG,GAEP3W,OAAY,EAAJ7B,EAAOA,EAAAA,EAAQ,CAGtC,GAFAuxE,EAAcD,EAAUrxE,MAAM,EAAGD,CAAC,EAAEoI,KAAK,GAAG,EAExCypE,EAGA,IAAKjwE,EAAIiwE,EAAUhwE,OAAY,EAAJD,EAAOA,EAAAA,EAK9B,GAAI4vE,GAJJA,EAAWj+D,EAAIs+D,EAAU5xE,MAAM,EAAG2B,CAAC,EAAEwG,KAAK,GAAG,KAK9BopE,EAASD,GACN,CAEVE,EAAWD,EACXE,EAAS1xE,EACT,KACJ,CAKZ,GAAIyxE,EACA,MAMA,CAACE,GAAgBG,GAAWA,EAAQP,KACpCI,EAAeG,EAAQP,GACvBK,EAAQ5xE,EAEhB,CAEI,CAACyxE,GAAYE,IACbF,EAAWE,EACXD,EAASE,GAGTH,IACAH,EAAU/wC,OAAO,EAAGmxC,EAAQD,CAAQ,EACpC9xD,EAAO2xD,EAAUlpE,KAAK,GAAG,EAEjC,CAEA,OAAOuX,CACX,CAEA,SAAS4f,EAAYR,EAASsB,GAC1B,OAAO,WAIH,IAAIP,EAAOpB,EAAI18B,KAAKD,UAAW,CAAC,EAQhC,MAHuB,UAAnB,OAAO+9B,EAAK,IAAmC,IAAhBA,EAAKj+B,QACpCi+B,EAAK//B,KAAK,IAAI,EAEXssB,EAAIpqB,MAAMm+B,EAAON,EAAK/5B,OAAO,CAACg5B,EAASsB,EAAU,CAAC,CAC7D,CACJ,CAcA,SAASjB,EAAQzf,GACb,IACQmgB,EAMR,GAPIG,EAAQ3B,EAAS3e,CAAI,IACjBmgB,EAAOxB,EAAQ3e,GACnB,OAAO2e,EAAQ3e,GACf6e,EAAS7e,GAAQ,CAAA,EACjB8f,EAAKx9B,MAAMm+B,EAAON,CAAI,GAGrBG,EAAQ5B,EAAS1e,CAAI,GAAMsgB,EAAQzB,EAAU7e,CAAI,EAGtD,OAAO0e,EAAQ1e,GAFX,MAAM,IAAInV,MAAM,MAAQmV,CAAI,CAGpC,CAKA,SAASsf,EAAYtf,GACjB,IAAIuf,EACArqB,EAAQ8K,EAAOA,EAAK3M,QAAQ,GAAG,EAAI,CAAC,EAKxC,MAJY,CAAC,EAAT6B,IACAqqB,EAASvf,EAAKjH,UAAU,EAAG7D,CAAK,EAChC8K,EAAOA,EAAKjH,UAAU7D,EAAQ,EAAG8K,EAAK9d,MAAM,GAEzC,CAACq9B,EAAQvf,EACpB,CAIA,SAASqgB,EAAajB,GAClB,OAAOA,EAAUE,EAAYF,CAAO,EAAI,EAC5C,CAi0LF,IAAI7S,EAAUiS,EAAGD,QAAQ,gBAAgB,EAQzC,OAHAtY,EAAOngB,GAAGymB,QAAQjtB,IAAMk/B,EAGjBjS,CACT,CAAE","file":"../scripts.min.js","sourcesContent":["!function(n,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(\"underscore\",r):(n=\"undefined\"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){\n// Underscore.js 1.13.6\n// https://underscorejs.org\n// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\nvar n=\"1.13.6\",r=\"object\"==typeof self&&self.self===self&&self||\"object\"==typeof global&&global.global===global&&global||Function(\"return this\")()||{},t=Array.prototype,e=Object.prototype,u=\"undefined\"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c=\"undefined\"!=typeof ArrayBuffer,l=\"undefined\"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable(\"toString\"),b=[\"valueOf\",\"isPrototypeOf\",\"toString\",\"propertyIsEnumerable\",\"hasOwnProperty\",\"toLocaleString\"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J(\"byteLength\"),H=K(G),Q=/\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J(\"length\");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},$n=zn(Ln),Cn=zn(_n(Ln)),Kn=tn.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g},Jn=/(.)^/,Gn={\"'\":\"'\",\"\\\\\":\"\\\\\",\"\\r\":\"r\",\"\\n\":\"n\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Hn=/\\\\|'|\\r|\\n|\\u2028|\\u2029/g;function Qn(n){return\"\\\\\"+Gn[n]}var Xn=/^\\s*(\\w|\\$)+\\s*$/;var Yn=0;function Zn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var nr=j((function(n,r){var t=nr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)er(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var cr=nr(fr,2);function lr(n,r,t){r=Pn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Rn(t,u,4),e,o)}}var wr=_r(1),Ar=_r(-1);function xr(n,r,t){var e=[];return r=Pn(r,t),mr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Sr(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=0;o=0}var Er=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Bn(r),e=r.slice(0,-1),r=r[r.length-1]),jr(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=Nn(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Br(n,r){return jr(n,Dn(r))}function Nr(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||\"number\"==typeof r&&\"object\"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ao&&(o=e);else r=Pn(r,t),mr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}var Ir=/[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;function Tr(n){return n?U(n)?i.call(n):S(n)?n.match(Ir):tr(n)?jr(n,Tn):jn(n):[]}function kr(n,r,t){if(null==r||t)return tr(n)||(n=jn(n)),n[Un(n.length-1)];var e=Tr(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Rn(e,r[1])),r=an(n)):(e=qr,r=er(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=jr(er(r,!1,!1),String),e=function(n,t){return!Mr(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=er(r,!0,!0),xr(n,(function(n){return!Mr(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=Pn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=Wn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=Wn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return nr(r,n)},negate:ar,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:fr,once:cr,findKey:lr,findIndex:pr,findLastIndex:vr,sortedIndex:hr,indexOf:dr,lastIndexOf:gr,find:br,detect:br,findWhere:function(n,r){return br(n,kn(r))},each:mr,forEach:mr,map:jr,collect:jr,reduce:wr,foldl:wr,inject:wr,reduceRight:Ar,foldr:Ar,filter:xr,select:xr,reject:function(n,r,t){return xr(n,ar(Pn(r)),t)},every:Sr,all:Sr,some:Or,any:Or,contains:Mr,includes:Mr,include:Mr,invoke:Er,pluck:Br,where:function(n,r){return xr(n,kn(r))},max:Nr,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||\"number\"==typeof r&&\"object\"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t' + t + '' }\r\nfunction showError(error) { var stackTrace = error.get_stackTrace(); var message = error.get_message(); var statusCode = error.get_statusCode(); var exceptionType = error.get_exceptionType(); var timedout = error.get_timedOut(); console.log(\"-\" + message + \"-\"); if (message == \"error 0\") { return; } alert(message); }\r\n\r\nfunction serviceProxy(serviceUrl) {\r\n var _I = this;\r\n this.serviceUrl = serviceUrl;\r\n this.invoke = function(method, data, callback, error) {\r\n var json = JSON.stringify(data);\r\n var url = _I.serviceUrl + method;\r\n $.ajax({\r\n url: url,\r\n data: json,\r\n type: \"POST\",\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n success: function(data) {\r\n if (data.d) { data = data.d }\r\n if (!callback) return; callback(data); return;\r\n },\r\n error: function(err) { if (!error) return; error(err); return; }\r\n });\r\n }\r\n }\r\nfunction AjaxFailed(result) { if (result.status == 0) { return; } alert(result.status + ' ' + result.statusText); }\r\n\r\nDynaProxy = new serviceProxy(\"/Dyna.asmx/\");\r\n\r\nfunction hasGA() { return !(typeof _qaq === 'undefined') }\r\n\r\n// ************** START PAGE TRACKING ******************************************************** \r\nfunction myTrackPageView(u,r,a){\r\n if (a == undefined) { a = \"\" }\r\n var orgu = u; qs = \"\"; qs2 = \"\";\r\n if (u.indexOf('?') != -1) { qs = u.substring(u.indexOf('?') + 1); qs2 = \"?\" + qs }\r\n try { initTracking(); u = s.prop1 + \"/AJAX/\" + a; } catch (e) { };\r\n try { pageTracker._trackPageview(u + qs2); } catch (e) { };\r\n try { s.prop70 = a; s.prop1 = u; s.prop2 = qs; s.t(); } catch (e) { };\r\n if (r) { window.setTimeout(rotateads, 1000) }\r\n\r\n\r\n}\r\nfunction myTrackEvent(category, action, label, value) {\r\n try {\r\n if (ga) { ga('send', 'event', 'Ajax Actions', category, action); }\r\n } catch (e) { }\r\n\r\n}\r\n// ************** END PAGE TRACKING ********************************************************\r\n\r\n\r\n\r\n// ************** GUI ELEMENTS ********************************************************\r\nfunction hidewait() {\r\n // new overlayModuleTrips().hideOverlay()\r\n}\r\n\r\nfunction showWait(msg){\r\n if (!msg){msg='Applying Changes'}\r\n //new overlayModuleTrips().showOverlay(\"/widgets/Wait?s=\" + escape(msg),false)\r\n}\r\n// ************** GUI ELEMENTS ******************************************************** \r\n\r\n\r\n\r\n// ************** START AJAX POPUP ******************************************************** \r\nvar bLastX=-1\r\nfunction OnAJAXPopDataSucceeded(r, typ){if (r!=''){showdetail(r,typ)}}\r\nfunction closePAj2(e){window.setTimeout(closePAj,25)}//if this is done to quickly on click, it causes an error\r\nfunction closePAjRef(e){window.location=window.location; }\r\nfunction closePAj() {\r\n //new overlayModuleTrips().hideOverlay()\r\n hideModal('aj')\r\n }\r\n function closeAj() {\r\n b = $find('popBhvAj'); if (b) { b.hidePopup() }\r\n}\r\nfunction rAJAXPop(u,typ,arg,e){_cnEvt(e);if (typ=='DEST' ){jumpDest(u)}else{ showdetail('nw',typ,u) }}\r\nfunction setDetail(c,h){c=\"
\"+c;pnlCnt.innerHTML=c;if (isMoz()){pnlCnt.style.height= h + 'px';}else{pnlCnt.style.height= h;}}\r\nfunction showdetail(r, t, u) {\r\n _cnEvt();\r\n mShowModalWin('HotelQuickView', 'aj', u, 550, 720, 10, true, false, 'HotelQuickView', true)\r\n\r\n}\t\r\n\r\nfunction showAJAXPop(bhv,evt){$find(bhv).show(); _cnEvt(evt);}\r\nfunction hideAJAXPop(bhv){$find(bhv).hide()}\r\n\r\n\r\nfunction mEnablePage(){}\r\n\r\nfunction mDisablePage() {\r\n var width = document.documentElement.clientWidth + document.documentElement.scrollLeft;\r\n var height = document.documentElement.clientHeight + document.documentElement.scrollTop;\r\n\r\n var layer = document.createElement('div');\r\n layer.style.zIndex = 2;\r\n layer.id = 'layer';\r\n layer.style.position = 'absolute';\r\n layer.style.top = '0px';\r\n layer.style.left = '0px';\r\n layer.style.height = document.documentElement.scrollHeight + 'px';\r\n layer.style.width = width + 'px';\r\n layer.style.backgroundColor = 'gray';\r\n layer.style.opacity = '.6';\r\n layer.style.filter += (\"progid:DXImageTransform.Microsoft.Alpha(opacity=60)\");\r\n document.body.style.position = 'static';\r\n document.body.appendChild(layer); \r\n}\r\n\r\nfunction hideModal(n){ if (document.getElementById('layer')){document.body.removeChild( document.getElementById('layer'))};document.body.style.position = '';if (document.getElementById(n)) { document.body.removeChild(document.getElementById(n)) } }\r\nfunction mShowModalWin(name,id,src,h,w,t,trn,cntr,type,bHeight) {\r\n _cnEvt();\r\n\r\ntry{\r\n var width = document.documentElement.clientWidth + document.documentElement.scrollLeft;\r\n var height = document.documentElement.clientHeight + document.documentElement.scrollTop;\r\n mDisablePage()\r\n var size = { 'height':h, 'width': w };\r\n var i = document.createElement('iframe');\r\n i.name = name;\r\n i.id = id;\r\n if (size.height>0 && bHeight){src=appndURL(src,\"h=\" + size.height)}\r\n i.src = '/ifrblank.htm'// no white \r\n i.scrolling='no';\r\n i.style.height = size.height + 'px';\r\n i.style.width = size.width + 'px';\r\n t=(document.documentElement.scrollTop-20)+t;\r\n i.style.position = 'absolute';\r\n i.style.zIndex = 3000;\r\n if (trn){i.allowTransparency=true}\r\n else{\r\n i.style.backgroundColor = 'white';\r\n i.style.border = '2px solid silver';\r\n }\r\n i.frameBorder = 'no';\t\r\n \r\n if (cntr){i.style.top = '100px'}else{ \r\n i.style.top = t + 'px'}\r\n i.style.left = (width / 2) - (size.width / 2) + 'px';\t\t\r\n document.body.appendChild(i); \r\n i.src = src; \r\n // myTrackEvent('Popup','ShowPopup',name, '')\r\n} catch (e) {\r\nalert(e.description)\r\n}\r\n}\r\n\r\n// ************** END AJAX POPUP ********************************************************\r\nfunction isDate(dateStr) {\r\n var datePat = /^(\\d{1,2})(\\/|-)(\\d{1,2})(\\/|-)(\\d{4})$/;\r\n var matchArray = dateStr.match(datePat); // is the format ok?\r\n return matchArray != null\r\n}\r\nfunction isTime(timeStr) {\r\n var datePat = /^\\d{1,2}:\\d{2}([ap]m)?$/;\r\n var matchArray = timeStr.match(datePat); // is the format ok?\r\n return matchArray != null\r\n}\r\nfunction DateAdd(timeU, byMany, dateObj) {\r\n var millisecond = 1;\r\n var second = millisecond * 1000;\r\n var minute = second * 60;\r\n var hour = minute * 60;\r\n var day = hour * 24;\r\n var year = day * 365;\r\n\r\n var newDate;\r\n var dVal = dateObj.valueOf();\r\n switch (timeU) {\r\n case \"ms\": newDate = new Date(dVal + millisecond * byMany); break;\r\n\t\tcase \"s\": newDate=new Date(dVal+second*byMany); break;\r\n\t\tcase \"mi\": newDate=new Date(dVal+minute*byMany); break;\r\n\t\tcase \"h\": newDate=new Date(dVal+hour*byMany); break;\r\n\t\tcase \"d\": newDate=new Date(dVal+day*byMany); break;\r\n\t\tcase \"y\": newDate=new Date(dVal+year*byMany); break;\r\n\t}\r\n\treturn newDate;\r\n}\r\nfunction AND(a, b) {\r\n var result = 0;\r\n var x = binaryArray(parseInt(a));\r\n var y = binaryArray(parseInt(b));\r\n var biggerArray = (x.length >= y.length) ? x : y;\r\n var smallerArray = (biggerArray == x) ? y : x;\r\n var len = biggerArray.length;\r\n for (var i = 0; i < len; i++) {\r\n biggerArray[i] = (biggerArray[i] & smallerArray[i]) ? 1 : 0;\r\n result += biggerArray[i] * Math.pow(2, i);\r\n }\r\n return result;\r\n}\r\nfunction binaryArray(num) {\r\n var arr = new Array();\r\n var div;\r\n var mod;\r\n var n = num;\r\n var count = 0;\r\n do {\r\n mod = n % 2;\r\n n = parseInt(n / 2);\r\n arr[count++] = mod;\r\n } while (n > 0)\r\n return arr;\r\n}\r\n\r\nfunction closeme() { $.fancybox.close(); }\r\nfunction isScrolledIntoView(elem) { var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; var elemBottom = elemTop + $(elem).height(); return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom) && (elemBottom <= docViewBottom) && (elemTop >= docViewTop)); }\r\n\r\nfunction isScrolledIntoView2(id) { \r\n var boundingRef = document.querySelectorAll(id)[0].getBoundingClientRect(); \r\n if (boundingRef.top<75){ return false;} \r\n return true;\r\n}\r\n\r\n\r\nvar isInViewport2 = function (elem) {\r\n var bounding = elem.getBoundingClientRect();\r\n var nHeight=window.innerHeight || document.documentElement.clientHeight;\r\n return (\r\n (bounding.top >= 70 && bounding.top<=nHeight) ||\r\n (bounding.bottom >= 70 && bounding.bottom<=nHeight) ||\r\n (bounding.top <= 70 && bounding.bottom>nHeight )\r\n );\r\n};\r\n\r\nfunction findMostInView(elements) {\r\n var mostInViewElement = null;\r\n var highestVisibility = 0;\r\n\r\n elements.forEach(function(element) {\r\n var visibility = calculateVisibility(element);\r\n\r\n if (visibility > highestVisibility) {\r\n highestVisibility = visibility;\r\n mostInViewElement = element;\r\n }\r\n });\r\n\r\n return mostInViewElement;\r\n }\r\n\r\n // Function to calculate visibility percentage of an element\r\n function calculateVisibility(element) {\r\n var rect = element.getBoundingClientRect();\r\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\r\n var visibleHeight = Math.min(rect.bottom, windowHeight) - Math.max(rect.top, 0);\r\n\r\n return (visibleHeight / rect.height) * 100;\r\n }\r\n\r\n\r\n\r\nfunction validateEmail(email) { var re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\ \".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA -Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/; return re.test(email); }\r\n\r\nfunction getreturl() { if (typeof returl == \"undefined\") { return \"\"; } else { return returl; } }\r\n\r\nfunction isiniframe() { return ((window.location != window.parent.location) ? true : false); }\r\n\r\n$.fn.isInViewport = function () {\r\n\r\n\r\n var elementTop = $(this).offset().top;\r\n var elementBottom = elementTop + $(this).outerHeight();\r\n var viewportTop = $(window).scrollTop();\r\n var viewportBottom = viewportTop + $(window).height();\r\n return elementBottom > viewportTop && elementTop < viewportBottom;\r\n};\r\n\r\n\r\nfunction setCookie(cookieName, cookieValue, nDays) {\r\n var today = new Date(),\r\n expire = new Date();\r\n\r\n if (nDays === null || nDays === 0) {\r\n nDays = 1;\r\n }\r\n\r\n expire.setTime(today.getTime() + 3600000 * 24 * nDays);\r\n\r\n document.cookie = cookieName + \"=\" + escape(cookieValue) + \";expires=\" + expire.toGMTString();\r\n};\r\n\r\nfunction getCookie(cookieName) {\r\n var theCookie = \" \" + document.cookie,\r\n ind = theCookie.indexOf(\" \" + cookieName + \"=\");\r\n\r\n if (ind === -1) { ind = theCookie.indexOf(\";\" + cookieName + \"=\"); }\r\n if (ind === -1 || cookieName === \"\") { return \"\"; }\r\n\r\n var ind1 = theCookie.indexOf(\";\", ind + 1);\r\n\r\n if (ind1 === -1) { ind1 = theCookie.length; }\r\n\r\n return unescape(theCookie.substring(ind + cookieName.length + 2, ind1));\r\n};\r\n\r\nfunction pushLoadMore(url, p) {\r\n var title = document.title;\r\n if (p != undefined && p != \"\" && p != \"1\") { if (title.indexOf(\"| Page \") > 0) { title = title.substring(0, title.indexOf(\"| Page \")) + \"| Page \" + p; } else { title += \" | Page \" + p; } }\r\n var stateObj = { Title: title };\r\n history.pushState(stateObj, title, url);\r\n document.title = title;\r\n}\r\n\r\n\r\n function element_Blur(selector,blur) {\r\n if (blur) {\r\n $(selector).css({ opacity: 0.3 })\r\n } else {\r\n $(selector).css('opacity', '');\r\n }\r\n}\r\n\r\nfunction Page_Blur(blur) {\r\n element_Blur('body',blur);\r\n}\r\n\r\njQuery(document).ready(function ($) {\r\n})","const appModal = document.getElementById('app-modal') \r\nconst appModalBS = new bootstrap.Modal(appModal);\r\nconst appModalData = document.querySelector('.app-modal-data');\r\n\r\n\r\nfunction showModal({ \r\n url='', \r\n showSave= true,\r\n showClose = false,\r\n showsecondaryBtn = false,\r\n saveText= 'Save',\r\n closeText= 'Close',\r\n title='Title',\r\n size = 'modal-lg',\r\n secondaryBtnText = '',\r\n secondaryBtnURL='',\r\n width='',\r\n callback = null }) \r\n{\r\n\r\n Page_Blur(true);\r\n var $modalTemplate = $('#modal-template');\r\n var $modal = $modalTemplate.find(\"#app-modal\").clone().addClass(\"real-modal\").removeAttr('id').appendTo('body');\r\n var uniqueId = 'modal_' + Math.random().toString(36).substr(2, 9);\r\n $modal.attr('id', uniqueId);\r\n\r\n if (width!= \"\") {\r\n $modal.find(\".modal-content\").css(\"width\", width);\r\n }\r\n\r\n var removeModal = function () {\r\n console.log ('close modal');\r\n //$(\".real-modal\").remove();\r\n $modal.remove();\r\n //$('.modal-backdrop').hide(); \r\n //$('body').removeClass('modal-open');\r\n // $(\".real-modal\").remove(); \r\n \r\n //$modal.attr('id', uniqueId);\r\n };\r\n\r\n $modal.find('.app-modal-data').empty(); //clear anything there\r\n $modal.find(\".modal-footer\").hide();\r\n if (showSave && saveText!=\"\"){\r\n $modal.find(\".modal-footer\").show();\r\n $modal.find('#app-modal-save').text(saveText).on('click', function () {\r\n callback($modal); // Pass modal instance to callback\r\n });\r\n } else { $modal.find(\"#app-modal-save\").hide() }\r\n\r\n if (showClose && closeText !=\"\") {\r\n $modal.find(\".modal-footer\").show();\r\n $modal.find(\"#app-modal-close\").show().html( closeText) \r\n } else { $modal.find(\"#app-modal-close\").hide() }\r\n\r\n if (showsecondaryBtn && secondaryBtnText != \"\" && secondaryBtnURL!=\"\") {\r\n $modal.find(\".modal-footer\").show();\r\n $modal.find('#app-modal-secondaryBtn').text(secondaryBtnText).on('click', function () {\r\n window.open(secondaryBtnURL, '_blank'); // Pass modal instance to callback\r\n });\r\n } else { $modal.find(\"#app-modal-secondaryBtn\").hide() }\r\n\r\n $modal.find(\"#app-modal-label\").html( title)\r\n \r\n $modal.removeClass('modal-lg').removeClass('modal-xl').removeClass('modal-sm').addClass(size); \r\n\r\n $.get(url, { cache: false })\r\n .done(function (data) { \r\n $modal.find('.app-modal-data').html(data); \r\n $modal.modal('show');\r\n })\r\n .fail(function (xhr, status, error) { \r\n console.error(\"Error loading modal content:\", error); \r\n });\r\n\r\n $modal.on('shown.bs.modal', function () { \r\n setEditClean ();\r\n Page_Blur(false);\r\n });\r\n\r\n\r\n $modal.on('hide.bs.modal', function () {\r\n \r\n if (bEditDirty){\r\n if (!window.confirm('You have unsaved changes. Are you sure you want to close this window?')) {\r\n return false;\r\n }\r\n }\r\n updateSearchChecks()\r\n setEditClean()\r\n });\r\n\r\n $modal.on('hidden.bs.modal', function () { \r\n removeModal()\r\n });\r\n\r\n}\r\n\r\nfunction closeModal(modal) {\r\n \r\n //removeModal()\r\n $(modal).modal('hide'); \r\n // $(\".real-modal\").remove();\r\n // $(modal).remove();\r\n}\r\n\r\n\r\n\r\n function showLoginNotification(msg) {\r\n Page_Blur(false); \r\n $(\".toast-body\").html(msg);\r\n myToast.show();\r\n}\r\n\r\nfunction showSystemNotification(msg) {\r\n Page_Blur(false); \r\n $(\".toast-body\").html(msg);\r\n myToast.show();\r\n}\r\n\r\nfunction showSupportNotification(msg) {\r\n showSystemNotification(msg + \" Please contact Customer Care.\")\r\n}\r\n\r\n\r\nvar myToast\r\n$(function () {\r\n\r\n var myToastEl = document.getElementById('liveToast')\r\n myToast = bootstrap.Toast.getOrCreateInstance(myToastEl) // Returns a Bootstrap toast instance\r\n\r\n});\r\n\r\n\r\n \r\n\r\nfunction showLoginMessage(url) {\r\n \r\n // alert(url);\r\n //new overlayModuleTrips().showOverlay(url, false)\r\n}\r\nfunction showAccountMessage(url) { //new overlayModuleTrips().showOverlayLeft(url, false) \r\n}\r\nfunction showSiteNotice(url) {\r\n\t//url = \"/widgets/user/sitenotice.aspx?u=\" + escape(url)\r\n\t//var h = ($(window).height()) * .8; var w = ($(window).width()) * .8;\r\n\t//if (w > 900) { w = 900 }\r\n\t//if (h > 700) { h = 700 }\r\n // $.fancybox(\r\n\t//\t\t{ 'href': url,margin: 0, padding: 0,autoDimensions:false, width:w, height:h, 'transitionIn': 'elastic',\r\n // 'speedIn': 200\r\n\r\n\t//\t\t})\r\n\r\n}\r\n\r\nfunction showSiteNotice2(url) {\r\n // url = \"/widgets/user/sitenotice.aspx?u=\" + escape(url)\r\n\r\n // $.fancybox(\r\n\t\t\t//{\r\n\t\t\t// 'href': url, margin: 0, padding: 0, autoDimensions: true, 'transitionIn': 'elastic',\r\n\t\t\t// 'speedIn': 200\r\n\r\n\t\t\t//})\r\n}\r\n\r\n\r\nfunction showSiteNoticeIFrame(url) {\r\n// if ($(window).width() >480){\r\n// $.fancybox(\r\n//\t\t\t{\r\n//\t\t\t 'type': 'iframe', 'href': url, 'width': 445, 'height':450, 'transitionIn': 'elastic', 'speedIn':200, 'transitionOut': 'none', 'scrolling': 'false', 'margin': [0, 0, 0, 0], 'padding': 0, 'hideOnOverlayClick': false\r\n//\t\t\t})\r\n//}\r\n}\r\n\r\n\r\n","var bInteractive=false;\r\nvar viewportWidth = window.innerWidth;\r\n\r\n\r\n//console.log (\"viewportWidth: \" + viewportWidth);\r\n// ************** START CONTEXT SEARCH ********************************************************\r\n\r\n$(function () {\r\n var cache = {};\r\n\r\n\t$(window).on('resize', function() {\r\n\t\t viewportWidth = $(window).width();\r\n\t\t//console.log(\"Viewport Width: \" + viewportWidth);\t\t\r\n\t});\r\n\r\n $(\"#btnSearchHotel,#btnSearchGuide,#btnSearchCruise,#btnGSearch,#btnSearchGuide2\").on('click',function (e){ \r\n e.preventDefault(); \r\n\t\tcts(this); \r\n\t\treturn false \r\n\t});\r\n\r\n $(\"#txtHotelSearchTerm,#txtGuideSearchTerm,#txtGuideSearchTerm2,#txtGlobalSearchTerm,#txtShipSearchTerm\").each(function (i) {\r\n $(this)\r\n .keydown(function(event) { if (event.keyCode == '13') {cts(this); return false } })\r\n\t .autocomplete({\r\n\t source: function(request, response) {\r\n\t\t\t\t\tvar ctscntxt =$(\"#\" + this.element[0].id).data(\"ac-context\");\r\n\t var Req = new Object();\r\n\t Req.Term = request.term;\r\n\t Req.Context = ctscntxt;\t \r\n\t\t\t\t var DTO = { 'Request': Req };\r\n\t var json = JSON.stringify(DTO);\r\n\t $.ajax({\r\n\t url: \"/AutoComplete.asmx/GetCompleteList\",\r\n\t dataType: \"json\", type: \"POST\", contentType: \"application/json; charset=utf-8\", data: json,\r\n\t error: function() { response(\"\") },\r\n\t success: function(data) {\r\n\t if (data.d) { data = data.d }\r\n\t var resp = $.map(data, function (item) {return { label: item.Name, value: item.Data, url: item.URL, placekey: item.Key, type: item.Type, src: ctscntxt }})\r\n\t response(resp)\r\n\t }\r\n\t })\r\n\t },\r\n\t minLength: 3,\r\n\t select: function(event, ui) {\r\n\t\t\t\t\t var url=ui.item.url; \r\n\t if (url != null) { \r\n\t if ( url.indexOf(\"xyz=1\")>-1){cts(this); return false;}\t\r\n\t\t\t\t\t\t\r\n\t if ($(this).data(\"rid\")!=\"\" && $(this).data(\"rid\")!=undefined ){\r\n\t\t\t\t\t\t\turl=appndURL(url,\"rid=\" + $(this).data(\"rid\"));\r\n\t\t\t\t\t\t}\t\r\n\t\t\t\t\t\twinloc(url);\r\n\t } else {return false;}\r\n\t },\r\n\t delay: 150,\r\n\t open: function() { $(this).removeClass(\"ui-corner-all\").addClass(\"ui-corner-top\"); },\r\n\t close: function() { $(this).removeClass(\"ui-corner-top\").addClass(\"ui-corner-all\"); }\r\n\t }).data(\"ui-autocomplete\")._renderItem = function (ul, item) {\r\n if (item.url == null) {\r\n var s = \"\" +item.label\r\n return $(\"
  • \").append(s).appendTo(ul);\r\n } else {\r\n\t\t\t\treturn $(\"
  • \").append(\"\" +item.label + \"\").appendTo(ul);\r\n\t\t\t\t}\r\n\t\t\t}\r\n });\r\n })\r\n\r\n\t \r\n\r\n\t function cts_event(event) {\r\n\t\t\tvar ele=$(\"#\" + event.currentTarget.id);\r\n\t\r\n\t return cts(ele);\r\n\t }\r\n\t\t function cts(ele) {\r\n\t\t\tvar context = $(ele).data(\"ac-context\");//get context from text field if that was the event\r\n\t\t\tif (context==undefined) {\r\n\t\t\t\t//otherwise it was the \"button\", set element to be the test field and continue\r\n\t\t\t\tele=$(ele).parent().find(\"input\");\r\n\t\t\t\tcontext = $(ele).data(\"ac-context\");\r\n\t\t\t}\r\n\t\t var txtVal = $(ele).val(); \t\t\t\r\n\t if (txtVal != '') {\r\n\t var u = \"\";\r\n\t u = \"/Search?pst=\" + encodeURIComponent(txtVal) + '&typ=' + context\r\n\t\t\t\tif ($(ele).data(\"rid\")!=\"\" && $(ele).data(\"rid\")!=undefined ){\r\n\t\t\t\t\tu=appndURL(u,\"rid=\" + $(ele).data(\"rid\"));\t \r\n\t\t\t\t}\t\r\n\t winloc(u)\r\n\t }\r\n\r\n\t return false;\r\n\t }\r\n\r\n\r\n\r\n\r\n// ************** END CONTEXT SEARCH ******************************************************** \r\n","\r\nvar iframe_pdf\r\n\r\nfunction setCookie2(name, value, expiracy) {\r\n var exDate = new Date(); \r\n exDate.setTime(exDate.getTime() + expiracy * 1000);\r\n var c_value = escape(value) + ((expiracy == null) ? \"\" : \"; expires=\" + exDate.toUTCString()); \r\n document.cookie = name + \"=\" + c_value + '; path=/';\r\n}\r\n\r\nfunction getCookie2(name) {\r\n var i, x, y, ARRcookies = document.cookie.split(\";\");\r\n for (i = 0; i < ARRcookies.length; i++) {\r\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf(\"=\"));\r\n y = ARRcookies[i].substr(ARRcookies[i].indexOf(\"=\") + 1);\r\n x = x.replace(/^\\s+|\\s+$/g, \"\");\r\n if (x == name) {\r\n return y ? decodeURI(unescape(y.replace(/\\+/g, ' '))) : y; //;//unescape(decodeURI(y));\r\n }\r\n }\r\n}\r\n\r\nfunction checkIframeLoaded(iframe) {\r\n const checkInterval = setInterval(() => {\r\n if (getCookie2(\"downloadStarted\") == \"1\") {\r\n setCookie2(\"downloadStarted\", \"0\", 100);\r\n $(\".loading-overlay\").hide(); \r\n clearInterval(checkInterval);\r\n } \r\n }, 500);\r\n}\r\n\r\nfunction printTrip(rid) {\r\n setTripDetailClean()\r\n $(\".loader-gif-waiting\").attr(\"src\",\"/dist/images/loader-trans.gif\");\r\n $(\".loading-overlay\").show(); \r\n iframe_pdf = document.createElement('iframe');\r\n iframe_pdf.src ='/client/print.aspx?rid=' + rid;\r\n document.body.appendChild(iframe_pdf);\r\n checkIframeLoaded(iframe_pdf);\r\n}\r\n\r\n\r\n$(function () {\r\n\r\n $('.close-loading-overlay').on('click',function (e){ \r\n e.preventDefault(); \r\n $(\".loading-overlay\").hide(); \r\n })\r\n \r\n //create new trip\r\n $('.jq-create-new-trip').on('click',function (e){ \r\n e.preventDefault(); \r\n showModal({ url: \"/widgets/Trip/Trip-Detail.aspx?m=1\", saveText: \"Save Trip\", title: \"Create Trip\",\r\n callback: function (modal) {saveTripDetail(modal, function(modal,rid,tripName){ \r\n showSystemNotification(\"Trip '\" + tripName + \"' has been created. You are being redirected to the new trip page.\");\r\n window.location.href=\"/Trip/?rid=\" + rid;\r\n })}\r\n }) ; \r\n })\r\n\r\n $('.btn-trip-print').on('click',function (e){ \r\n e.preventDefault(); \r\n printTrip(getTripDetailRID());\r\n return false;\r\n })\r\n \r\n $(document).on('click', '#createTripTraveler', function (e) {\r\n e.preventDefault();\r\n showModal({ url: \"/widgets/Traveler/Traveler-New.aspx\", saveText: \"Save New Traveler\", title: \"New Traveler\", callback: function (modal) {saveTravelerDetail(modal,onNewTravelerTrip)}}) ;\r\n })\r\n\r\n});\r\n\r\nfunction getSelectedTravelers(ele) { \r\n var ids=\"\";\r\n var itms= $('#' + ele).select2('data'); \r\n itms.forEach((itm) => {ids+=itm.id + \",\"}); \r\n return ids;\r\n}\r\n\r\nfunction saveTripDetail(modal,callback) {\r\n \r\n if (editall_trip()) { \r\n Page_Blur(true);\r\n var e = $(this); var req = new Object;\r\n req.ReportID = $(\"#hdnReportID\").val();\r\n req.Mode = $(\"#hdnMode\").val();\r\n req.UserClientKey = $(\"#cboTripClient\").val() == \"\" ? \"0\" : $(\"#cboTripClient\").val();\r\n req.StartDate = $(\"#txtTripDetailDepartureDate\").val();\r\n req.EndDate = $(\"#txtTripDetailReturnDate\").val();\r\n req.TripName = $(\"#txtTripName\").val();\r\n req.PreparedFor = $(\"#txtTripDetailPreparedFor\").val();\r\n req.Travelers = getSelectedTravelers(\"drpTravelers\")\r\n req.TripPrice = $(\"#txtTripDetailPrice\").val();\r\n req.TripComments = $(\"#txtTripDetailComments\").val();\r\n req.TripDescription = $(\"#txtTripDetailNotes\").val();\r\n req.IncludeCover = $(\"#chkTripDetailShowCoverPage\").prop(\"checked\");\r\n req.IncludeTOC = $(\"#chkTripDetailShowTripSummary\").prop(\"checked\");\r\n req.IncludeBizCard = $(\"#chkTripDetailIncludeBizCard\").prop(\"checked\");\r\n req.ShowImagesOnlineView = $(\"#chkTripDetailShowImagesOnlineView\").prop(\"checked\");\r\n req.ShowImagesPDFView = $(\"#chkTripDetailShowImagesPDFView\").prop(\"checked\"); \r\n req.ExternalLinkImage =$(\"#txtTripDetailImageURL\").val();\r\n req.SuppressDefaultImage =$(\"#chkSuppressDefaultImage\").prop(\"checked\"); \r\n req.TripImageFile = $(\"#hdnImageName\").val() \r\n\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"SaveTrip\", DTO, function (data) { \r\n \r\n setEditClean()\r\n if( typeof callback == \"function\" ) {\r\n callback(modal,data,req.TripName); \r\n }\r\n else{ \r\n if (window.location.href.indexOf('/Trip/Preview.aspx') > -1) { window.location.reload();}\r\n $(\".trip-detail-name\").html(req.TripName)\r\n refrehTripList(false); \r\n closeModal(modal); \r\n showSystemNotification(\"Trip '\" + req.TripName + \"' has been saved\"); \r\n } \r\n }, function (data) {\r\n showSupportNotification('Unable to save trip.'); \r\n })\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n}\r\n\r\nfunction saveCustomPlace(modal,callback) {\r\n\r\n if ($(\"#txtName\").val() == \"\") { alert('Please enter a Name'); return false; }\r\n\r\n Page_Blur(true);\r\n var req = new Object;\r\n req.ReportID = $(\"#hdnReportID\").val(); \r\n req.ID = $(\"#hdnP\").val();\r\n req.Type = $(\"#cboType\").val();\r\n req.Name = $(\"#txtName\").val()\r\n req.Address = $(\"#txtAddress\").val()\r\n req.Phone = $(\"#txtPhone\").val()\r\n req.URL = $(\"#txtWebsite\").val()\r\n req.Description = editor.getSemanticHTML();\r\n req.Latitude = -999; req.Longitude = -999; req.Image = \"\"\r\n var DTO = { 'Req': req };\r\n\r\n DynaProxy.invoke(\"UpdateCustomPlaceOption\", DTO, function (data) { \r\n \r\n if( typeof callback == \"function\" ) {\r\n callback(modal,data,req.Name); \r\n }\r\n else{ \r\n closeModal(modal); \r\n showSystemNotification(\"Custom Place '\" + req.Name + \"' has been added to your trip and we are refreshing the page.\"); \r\n Page_Blur(true);\r\n refreshWithQueryParam(\"tab\",\"CUST\"); \r\n } \r\n }, function (data) {\r\n showSupportNotification('Unable to save Custom Place.'); \r\n })\r\n return true;\r\n \r\n }\r\n\r\nfunction editall_trip() {\r\n if ($(\"#txtTripName\").val() == \"\") {\r\n showSystemNotification('Trip Name is required')\r\n $(\"#txtTripName\").focus() \r\n return false\r\n }\r\n \r\n var sDate1 = $(\"#txtTripDetailDepartureDate\").val()\r\n var sDate2 = $(\"#txtTripDetailReturnDate\").val()\r\n var dateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n if (sDate1!=\"\"){\r\n if (!dateRegex.test(sDate1)) {\r\n showSystemNotification('Travel Date From must be a valid date')\r\n $(\"#txtTripDetailDepartureDate\").focus() \r\n return false\r\n }\r\n }\r\n if (sDate2 != \"\") {\r\n if (!dateRegex.test(sDate2)) {\r\n $(\"#txtTripDetailReturnDate\").focus() \r\n showSystemNotification('Travel Date To must be a valid date')\r\n return false\r\n }\r\n }\r\n \r\n return true;\r\n}\r\n\r\n\r\nfunction sendTrip() {\r\n if (editall_send()) { \r\n Page_Blur(true)\r\n var req = new Object;\r\n req.ReportID = $(\"#hdnReportID\").val().replace(/ /g, '')\r\n req.PlaceKey = $(\"#hdnPlaceKey\").val()\r\n req.PlaceType = $(\"#hdnPlaceType\").val()\r\n req.PlaceID = $(\"#hdnPlaceID\").val()\r\n req.ClientIDs = getSelectedTravelers(\"drpTravelers\")\r\n req.Subject = $(\"#txtSubject\").val()\r\n req.Message = editor.getSemanticHTML();\r\n req.CopyUser = $(\"#chkCopy\").prop('checked')\r\n var DTO = { 'Req': req }\r\n \r\n DynaProxy.invoke(\"SendTrip\", DTO, function (data) { \r\n Page_Blur(false)\r\n var s=data;\r\n if (s.indexOf(\"-\")==0){\r\n s=s.replace(\"-3\",\"\") ;\r\n if (s.length>2){\r\n showSupportNotification(s); \r\n }else{\r\n showSupportNotification('Unable to send report.'); \r\n }\r\n }\r\n else{ //success\r\n setTripDetailClean();\r\n refrehTripList(false); \r\n showSystemNotification(data);\r\n }\r\n }, function (data) {\r\n Page_Blur(false)\r\n showSupportNotification('Unable to send report.'); \r\n })\r\n\r\n return true;\r\n } else{\r\n return false;\r\n }\r\n}\r\n\r\nfunction editall_send() {\r\n if (getSelectedTravelers(\"drpTravelers\")==\"\") {\r\n showSystemNotification('Please select at least one traveler to send the trip to')\r\n $(\"#txtClient\").focus()\r\n return false\r\n }\r\n\r\n if ($(\"#txtSubject\").val() == \"\") {\r\n showSystemNotification('Subject is required')\r\n $(\"#txtSubject\").focus() \r\n return false\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction saveTripItemComments(modal, callback) {\r\n Page_Blur(true);\r\n\r\n var req = new Object; \r\n req.ReportID = $(\"#txtTripItemComment\").data(\"rid\")\r\n req.PlaceID = $(\"#txtTripItemComment\").data(\"riid\")\r\n req.Comment = $(\"#txtTripItemComment\").val()\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"SaveTripItemComment\", DTO, function (data) { \r\n \r\n if( typeof callback == \"function\" ) {\r\n callback(modal,data,req.Comment); \r\n }\r\n else{ \r\n closeModal(modal); \r\n // Find elements with a specific data attribute and value\r\n\r\n var cmt=$('[data-riid=\"' + req.PlaceID + '\"]').find(\".btn-trip-item-comment\"); \r\n if (cmt.length>0){\r\n if (req.Comment==\"\"){\r\n $(cmt).find(\"i\").removeClass (\"has-comment\") ;\r\n }\r\n else{\r\n $(cmt).find(\"i\").addClass (\"has-comment\");\r\n }\r\n curcmt= null ; \r\n }\r\n showSystemNotification(\"Comment has been saved.\"); \r\n } \r\n }, function (data) {\r\n showSupportNotification('Unable to save trip item comments'); \r\n })\r\n return true;\r\n}\r\n\r\n","$(function () {\r\n //trip menu:\r\n\r\n $(document).on(\"click\", \".report-menu .dropdown-menu .dropdown-item[data-event]\", function (e) {\r\n e.preventDefault(); \r\n var menuevent = $(this).data(\"event\");\r\n var rid = $(this).parent().data(\"rid\"); \r\n var rName = $(this).parent().data(\"rname\");\r\n var eventObject = jQuery.Event(menuevent, { rid: rid, rName: rName, href:$(this).attr(\"href\") });\r\n $(this).parent().trigger(eventObject);\r\n });\r\n \r\n $(document).on(\"traveler_delete\", (event) => {\r\n event.preventDefault(); \r\n \r\n if (event.rid != undefined && event.rid != \"\") {\r\n do_traveler_delete(event.rid, event.rName)\r\n }\r\n });\r\n \r\n $(document).on(\"trip_select\", (event) => {\r\n event.preventDefault(); \r\n showModal({ url: \"/widgets/Trip/Trip-Select.aspx?m=2\", saveText: \"or Create New Trip\", title: \"Select a Trip\", callback: function (modal) { tripSelectOpenCreateTrip(modal);} }); \r\n });\r\n \r\n $(document).on(\"trip_new\", (event) => {\r\n event.preventDefault(); \r\n showModal({url: \"/widgets/Trip/Trip-Detail.aspx?m=1\", saveText: \"Save Trip\",title: \"Create Trip\", callback: function (modal) {tripSelectOnCreateTrip(modal) } });\r\n return false;\r\n \r\n });\r\n\r\n $(document).on(\"trip_clear\", (event) => {\r\n event.preventDefault(); \r\n showSystemNotification(\"Clearing working trip...\"); \r\n refreshPageForTrip (\"\",\"New Trip\") \r\n });\r\n \r\n $(document).on(\"trip_edit\", (event) => {\r\n event.preventDefault(); \r\n showModal({ url: \"/widgets/Trip/Trip-Detail.aspx?m=2&rid=\" + event.rid, saveText: \"Save Trip\", title: \"Edit Trip\", \r\n callback: function (modal) {saveTripDetail(modal)}\r\n });\r\n });\r\n\r\n $(document).on(\"trip_print\", (event) => {\r\n event.preventDefault(); \r\n printTrip(event.rid);\r\n });\r\n \r\n $(document).on(\"trip_travelers\", function (event) {\r\n event.preventDefault(); \r\n showModal({ url: \"/widgets/Trip/Trip-Travelers.aspx?rid=\" + event.rid, showSave:false, title: \"Trip Travelers\" });\r\n });\r\n\r\n $(document).on(\"trip_send\", function (event) {\r\n event.preventDefault();\r\n doSendTrip (event.rid,\"Send Trip\",\"Send Trip\")\r\n })\r\n\r\n $(document).on(\"trip_send_history\", function (event) {\r\n event.preventDefault(); \r\n showModal({ url: \"/widgets/Trip/Trip-History.aspx?rid=\" + event.rid, width:\"1000px\", showSave:false, title: \"Trip Send History\" });\r\n\r\n\r\n })\r\n\r\n $(document).on(\"trip_copy_url\", function (event) {\r\n event.preventDefault();\r\n var targetURL = window.location.origin +event.href;\r\n if (navigator.clipboard) {\r\n navigator.clipboard.writeText(targetURL)\r\n .then(() => {\r\n showSystemNotification(\"URL '\" + targetURL +\"' copied successfully!\");\r\n })\r\n .catch(err => {\r\n showSupportNotification(\"Unable to copy the URL '\" + targetURL +\"' to your clipboard (\" + err + \").\"); \r\n });\r\n } else {\r\n showSupportNotification(\"Unable to copy the URL '\" + targetURL +\"' to your clipboard (no clipboard available).\"); \r\n }\r\n });\r\n\r\n $(document).on(\"trip_duplicate\", function (event) {\r\n event.preventDefault();\r\n if (event.rid != undefined && event.rid != \"\") {\r\n if (confirm(\"Are you sure you want to duplicate trip '\" + event.rName + \"'?\")) {\r\n var req = new Object;\r\n req.ReportID = event.rid; \r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"DuplicateTrip\", DTO, function (data) {\r\n showSystemNotification(\"Trip '\" + event.rName + \"' has been duplicated and we are taking you to it.\");\r\n window.location=\"/Trip?rid=\" + data\r\n }, function (data) { \r\n showSupportNotification(\"Unable to duplicate trip '\" + event.rName + \"'.\");\r\n })\r\n }\r\n }\r\n });\r\n\r\n $(document).on(\"trip_delete\", function (event) {\r\n event.preventDefault(); \r\n \r\n if (event.rid != undefined && event.rid != \"\") {\r\n if (confirm(\"Are you sure you want to delete Trip '\" + event.rName + \"'? (this cannot be undone)\")) {\r\n Page_Blur(true);\r\n DynaProxy.invoke(\"DeleteTrips\", { rids: event.rid }, function (data) {\r\n showSystemNotification(\"Trip '\" + event.rName + \"' has been deleted.\") \r\n if ($(\".trip-plan-table\").length > 0) {\r\n Page_Blur(false);\r\n refrehTripList(false); \r\n } else { // from trip detail\r\n window.location = \"/Home\";\r\n }\r\n }, function (data) {\r\n Page_Blur(false);\r\n showSupportNotification(\"Unable to delete Trip '\" + event.rName + \"'.\");\r\n }) \r\n }\r\n }\r\n \r\n })\r\n \r\n})","$(function () {\r\n\r\n $(document).on(\"keyup\", \"#txtTripSearch\", function (e) {\r\n //doTripFind();\r\n refrehTripList(false);\r\n })\r\n\r\n //trip list paging (load more)\r\n $(document).on(\"click\", \".triplist_loadmore\", function (e) {\r\n e.preventDefault(); \r\n refrehTripList(true);\r\n })\r\n\r\n //trip list sorting\r\n $(document).on(\"click\", \".trip-plan-table th\", function (e) {\r\n e.preventDefault(); \r\n\r\n var current=triplist_current_sort();\r\n \r\n var sNewSort=$(this).data(\"sort\");\r\n var sNewOrder=\"D\";\r\n if (sNewSort == current.data(\"sort\")) {\r\n //toggle\r\n sNewOrder = (current.hasClass(\"sorting_desc\") ? \"sorting_asc\" : \"sorting_desc\")\r\n }\r\n else {\r\n sNewOrder = (sNewSort == \"NAME\" || sNewSort == \"CLIENT\" ? \"sorting_asc\" : \"sorting_desc\") \r\n }\r\n \r\n //remove all old ones\r\n $(\".trip-plan-table th\").removeClass(\"sorting_asc\").removeClass(\"sorting_desc\");\r\n\r\n $(this).addClass(sNewOrder);\r\n \r\n refrehTripList(false);\r\n })\r\n\r\n}) \r\n\r\nfunction triplist_current_sort() {\r\n var e= $(\".trip-plan-table th.sorting_asc\");\r\n if (e.length==0){e= $(\".trip-plan-table th.sorting_desc\") }\r\n return e; \r\n}\r\n\r\nfunction refrehTripList(loadmore) {\r\n\r\n if ($(\"#triplist\").length==0){return;}\r\n element_Blur(\"#triplist\",true)\r\n\r\n var val=$(\"#txtTripSearch\").val()\r\n //ignore value search when less then 3 chars\r\n if (val.length < 3) {val= \"\"; } \r\n\r\n var current=triplist_current_sort();\r\n var clientid=$(\".trip-plan-table\").data(\"client-id\");\r\n var pg=1;\r\n if (loadmore) { pg = $(\".triplist_loadmore\").data(\"page\"); }\r\n \r\n var req = {\r\n Value: val,\r\n Sort: current.data(\"sort\"),\r\n SortOrder: (current.hasClass(\"sorting_asc\")?\"A\":\"D\"),\r\n Page: pg,\r\n ClientID: clientid\r\n };\r\n\r\n \r\n var DTO = { 'Req': req };\r\n DynaProxy.invoke(\"GetReports\", DTO, function (data) {\r\n $(\"#triplist\").find(\"tr.load-more\").remove(); \r\n if (loadmore) { $(\"#triplist\").find(\"tbody\").append(data);}\r\n else { $(\"#triplist\").find(\"tbody\").html(data); }\r\n element_Blur(\"#triplist\",false)\r\n init_trip_trav_cards();\r\n\r\n }, function (data) {\r\n showSupportNotification('Unable to get Trip Plan.');\r\n element_Blur(\"#triplist\",false)\r\n });\r\n return false;\r\n}\r\n","$(function () {\r\n\r\n $(document).on(\"click\", \".by-letter\", function () {\r\n event.preventDefault(); \r\n $(\".by-letter\").removeClass(\"active\")\r\n $(this).addClass(\"active\") \r\n refrehTravelerList();\r\n })\r\n\r\n $(document).on(\"keyup\", \".txtTravelerSearch\", function () {\r\n\r\n refrehTravelerList(); \r\n })\r\n\r\n $(document).on(\"click\", \".activitylist_loadmore\", function () {\r\n event.preventDefault(); \r\n refrehActivityList(true)\r\n })\r\n\r\n $(document).on(\"click\", \".activity-plan-table th\", function () {\r\n event.preventDefault();\r\n\r\n var current = traveler_activity_current_sort();\r\n\r\n var sNewSort = $(this).data(\"sort\");\r\n var sNewOrder = \"D\";\r\n if (sNewSort == current.data(\"sort\")) {\r\n //toggle\r\n sNewOrder = (current.hasClass(\"sorting_desc\") ? \"sorting_asc\" : \"sorting_desc\")\r\n }\r\n else {\r\n sNewOrder = (sNewSort == \"NAME\" || sNewSort == \"TYPE\" ? \"sorting_asc\" : \"sorting_desc\")\r\n }\r\n\r\n //remove all old ones\r\n $(\".activity-plan-table th\").removeClass(\"sorting_asc\").removeClass(\"sorting_desc\");\r\n\r\n $(this).addClass(sNewOrder);\r\n\r\n refrehActivityList(false);\r\n })\r\n\r\n $(document).on(\"click\", \".show-activity\", function (event) {\r\n event.preventDefault();\r\n showModal({ url: \"/widgets/Traveler/Track.aspx?m=1&eid=\" + $(this).data(\"recip-id\"), showSave: false, title: \"Track Activity\" });\r\n\r\n })\r\n\r\n $(document).on(\"click\", \".resend-email\", function (event) {\r\n event.preventDefault();\r\n \r\n if (!confirm(\"Are you sure you want to resend the trip to traveler '\" + $(this).data(\"recip-traveler\") + \"'?\")) { return; }\r\n\r\n\r\n Page_Blur(true)\r\n var req = new Object;\r\n req.ReportID = $(this).data(\"recip-id\"); //hijack this field to pass the email id\r\n req.PlaceKey =\"\";\r\n req.PlaceType =\"\";\r\n req.PlaceID =\"\";\r\n req.ClientIDs =\"\";\r\n req.Subject =\"\";\r\n req.Message =\"\";\r\n req.CopyUser = false;\r\n\r\n var DTO = { 'Req': req } \r\n\r\n DynaProxy.invoke(\"ResendEmail\", DTO, function (data) { \r\n Page_Blur(false)\r\n var s=data;\r\n if (s.indexOf(\"-\")==0){\r\n s=s.replace(\"-3\",\"\") ;\r\n if (s.length>2){\r\n showSupportNotification(s); \r\n }else{\r\n showSupportNotification('Unable to re-send trip.'); \r\n }\r\n }\r\n else{ //success\r\n refrehActivityList(false);\r\n showSystemNotification(data);\r\n }\r\n }, function (data) {\r\n Page_Blur(false)\r\n showSupportNotification('Unable to re-send trip.'); \r\n })\r\n\r\n\r\n\r\n \r\n\r\n })\r\n})\r\n\r\n\r\nfunction refrehTravelerList() {\r\n\r\n if ($(\".travelerlist\").length==0){ return ;}\r\n\r\n element_Blur(\".travelerlist\", true);\r\n\r\n var val=$(\".txtTravelerSearch\").val()\r\n\r\n //ignore value search when less then 3 chars\r\n if (val.length < 3) {val= \"\"; } \r\n \r\n if (val==\"\"){ $(\".jq-traveler-letters\").show();}else{ $(\".jq-traveler-letters\").hide();}\r\n \r\n var req = new Object; \r\n req.StartsWith = $(\".jq-traveler-letters\").find(\".active\").data(\"letter\");; \r\n req.Value = val;\r\n\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"GetTravelers\", DTO, function (data) { \r\n $(\".travelerlist\").html(data);\r\n init_traveler_trav_cards();\r\n element_Blur(\".travelerlist\", false);\r\n }, function (data) {\r\n showSupportNotification('Unable to get travelers.');\r\n element_Blur(\".travelerlist\", false);\r\n })\r\n}\r\n\r\n\r\n\r\nfunction refrehActivityList(loadmore) {\r\n\r\n element_Blur(\"#activity-list\", true)\r\n \r\n var current = traveler_activity_current_sort();\r\n var clientid = $(\".activity-plan-table\").data(\"client-id\");\r\n var reportid = $(\".activity-plan-table\").data(\"report-id\");\r\n var pg = 1;\r\n if (loadmore) { pg = $(\".activitylist_loadmore\").data(\"page\"); }\r\n\r\n var req = { \r\n Sort: current.data(\"sort\"),\r\n SortOrder: (current.hasClass(\"sorting_asc\") ? \"A\" : \"D\"),\r\n Page: pg,\r\n \r\n };\r\n \r\n var DTO = { 'Req': req, 'TravelerId': clientid, 'ReportId':reportid };\r\n DynaProxy.invoke(\"GetActivityList\", DTO, function (data) {\r\n $(\"#activity-list\").find(\"tr.load-more\").remove();\r\n if (loadmore) { $(\"#activity-list\").find(\"tbody\").append(data); }\r\n else { $(\"#activity-list\").find(\"tbody\").html(data); }\r\n element_Blur(\"#activity-list\", false)\r\n init_trip_trav_cards();\r\n\r\n }, function (data) {\r\n showSupportNotification('Unable to get Trip Plan.');\r\n element_Blur(\"#activity-list\", false)\r\n });\r\n return false;\r\n}\r\n\r\nfunction traveler_activity_current_sort() {\r\n var e = $(\".activity-plan-table th.sorting_asc\");\r\n if (e.length == 0) { e = $(\".activity-plan-table th.sorting_desc\") }\r\n return e;\r\n}","$(function () {\r\n\r\n \r\n $(document).on(\"click\", \".save-traveler-button\", function (e) {\r\n e.preventDefault();\r\n saveTravelerDetail();\r\n })\r\n\r\n $(document).on(\"click\", \".jq-create-new-traveler\", function (e) {\r\n e.preventDefault();\r\n showModal({ url: \"/widgets/Traveler/Traveler-New.aspx\", saveText: \"Create New Traveler\", title: \"Create Traveler\", callback: function (modal) {saveTravelerDetail(modal,onNewTravelerDash)}}) ; \r\n })\r\n\r\n});\r\n\r\n\r\nfunction editall_traveler() {\r\n if ($(\"#txttravelerFName\").val() == \"\") {\r\n showSystemNotification('First Name is required')\r\n $(\"#txttravelerFName\").focus() \r\n return false\r\n }\r\n \r\n if ($(\"#txttravelerLName\").val() == \"\") {\r\n showSystemNotification('Last Name is required')\r\n $(\"#txttravelerLName\").focus() \r\n return false\r\n }\r\n \r\n if ($(\"#txttravelerEMailAddress\").val() == \"\") {\r\n showSystemNotification('Valid Email Address is required')\r\n $(\"#txttravelerEMailAddress\").focus() \r\n return false\r\n }\r\n\r\n //todo validate email format\r\n \r\n return true;\r\n}\r\n\r\n\r\n\r\nfunction saveTravelerDetail(modal,callback) {\r\n \r\n if (editall_traveler()){\r\n element_Blur ('.save-traveler-button',true)\r\n var req = new Object;\r\n req.UserClientId = $('#travelerclientId').val();\r\n req.EMail = $('#txttravelerEMailAddress').val();\r\n req.FirstName = $('#txttravelerFName').val();\r\n req.LastName = $('#txttravelerLName').val();\r\n req.DisplayName = $('#txttravelerDisplayName').val();\r\n req.HomePhone = $('#txttravelerHomePhone').val();\r\n req.WorkPhone = $('#txttravelerWorkPhone').val();\r\n req.WorkPhoneExt = $('#txttravelerWorkExtension').val();\r\n req.MobilePhone = $('#txttravelerMobilePhone').val();\r\n req.BestPhoneCd = $('#seltravelerPreferredPhone').val();\r\n req.SkypeName = $('#txttravelerSkypeName').val();\r\n req.AltEmail = $('#txttravelerAltEmail').val();\r\n req.Address1 = $('#txttravelerAddressLine1').val();\r\n req.Address2 = $('#txttravelerAddressLine2').val();\r\n req.ZipCode = $('#txttravelerPostalCode').val();\r\n req.CityName = $('#txttravelerCity').val();\r\n req.StatePlaceKey = $('#seltravelerState :selected').val();\r\n req.CountryPlaceKey = $('#seltravelerCountry').val();\r\n req.CommentsSpecialNeeds = $('#tatravelerSpecialNeeds').val();\r\n req.CommentsFamily = $('#tatravelerFamilyInfo').val();\r\n req.CommentsMisc = $('#tatravelerMisc').val();\r\n\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"SaveTraveler\", DTO, function (data) { \r\n element_Blur ('.save-traveler-button',false);\r\n setEditClean();\r\n var name=req.FirstName + ' ' + req.LastName;\r\n if( typeof callback == \"function\" ) {\r\n callback(modal,data,name);\r\n }\r\n else{\r\n if (req.UserClientId ==\"\" || req.UserClientId==undefined) {\r\n showSystemNotification(\"New Traveler '\" + name + \"' has been created\"); \r\n refrehTravelerList(false); \r\n } else {\r\n showSystemNotification(\"Traveler '\" + name + \"' has been updated\");\r\n $(\".headline\").html(name);\r\n }\r\n } \r\n }, function (data) {\r\n element_Blur ('.save-traveler-button',false); \r\n showSupportNotification('Unable to save traveler.');\r\n })\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n}\r\n \r\n\r\nfunction do_traveler_delete(cid, cname) {\r\n\r\n if (confirm(\"Are you sure you want to delete Traveler '\" + cname + \"'? (this cannot be undone)\")) {\r\n Page_Blur(true);\r\n DynaProxy.invoke(\"DeleteTravelers\", { Req: cid }, function (data) {\r\n showSystemNotification(\"Traveler '\" + cname + \"' has been deleted.\") \r\n if ($(\".travelerlist\").length > 0) {\r\n Page_Blur(false);\r\n refrehTravelerList(false); \r\n } else { // from traveler detail\r\n window.location = \"/Home\";\r\n }\r\n }, function (data) {\r\n Page_Blur(false);\r\n showSupportNotification(\"Unable to delete Traveler '\" + cname + \"'.\");\r\n }) \r\n }\r\n\r\n}\r\n\r\n \r\n function onNewTravelerTrip(modal,cid){\r\n closeModal(modal) \r\n showSystemNotification(\"New Traveler '\" + name + \"' has been created. Please select it in the list.\"); \r\n refrehTravelerList(false); \r\n}\r\n\r\n\r\nfunction onNewTravelerDash(modal,cid,name){\r\n closeModal(modal) \r\n showSystemNotification(\"New Traveler '\" + name + \"' has been created\"); \r\n refrehTravelerList(false); \r\n}\r\n\r\n\r\n","$(function () {\r\n\r\n $(document).on(\"click\", \".send-report-next\", function (e) { \r\n e.preventDefault(); \r\n doSendTrip (getTripDetailRID(),\"Send Trip\",\"Send Trip\")\r\n }); \r\n \r\n $(document).on(\"click\", \".js-trip-col-index li\", function (e) { \r\n e.preventDefault(); \r\n $(\".js-trip-col-index li\").removeClass(\"is-open\");\r\n $(this).addClass(\"is-open\");\r\n\r\n var opens=$(this).attr(\"href\");\r\n $(\".trip-content-detail\").removeClass(\"is-open\");\r\n $(opens).addClass(\"is-open\");\r\n }); \r\n \r\n $(document).on(\"click\", \".btn-trip-add\", function (e) { \r\n e.preventDefault(); \r\n $(\".\" + $(this).data(\"search-type\")).slideToggle(\"fast\");\r\n }); \r\n\r\n $(document).on(\"click\", \".btn-trip-add-cust\", function (e) { \r\n e.preventDefault(); \r\n \r\n showModal({ url: \"/widgets/Item-Edit/CustomPlace.aspx?&rid=\" + getTripDetailRID(), saveText: \"Save Custom Place\", title: \"Create Custom Place\", \r\n callback: function (modal) {saveCustomPlace(modal); }\r\n }) \r\n\r\n }); \r\n\r\n $(document).on(\"click\", \".btn-trip-item-edit\", function (e) { \r\n e.preventDefault(); \r\n //only cust places\r\n var p=$(this).parents(\".detail-item\");\r\n var ritype=p.data(\"ritype\");\r\n \r\n if (ritype==\"CUST\"){\r\n var sTitle=\"Update Custom Place '\" + p.find(\"h4\").html() + \"'\";\r\n showModal({ url: \"/widgets/Item-Edit/CustomPlace.aspx?&rid=\" + getTripDetailRID() + '&p=' + p.data(\"riid\"), saveText: \"Save Custom Place\", title: sTitle, \r\n callback: function (modal) {\r\n saveCustomPlace(modal);\r\n } }) \r\n }\r\n }); \r\n\r\n $(document).on(\"click\", \".btn-trip-item-comment\", function (e) { \r\n e.preventDefault(); \r\n \r\n var p=$(this).parents(\".detail-item\");\r\n var sTitle=\"Add Comments for '\" + p.find(\"h4\").html() + \"'\";\r\n showModal({ url: \"/widgets/Trip/Comments.aspx?&rid=\" + getTripDetailRID() + '&p=' + p.data(\"riid\"), saveText: \"Save Comments\", title: sTitle, \r\n callback: function (modal) { saveTripItemComments(modal)} })\r\n\r\n }); \r\n \r\n $(document).on(\"click\", \".btn-trip-item-delete\", function (e) { \r\n e.preventDefault(); \r\n var p=$(this).parents(\".detail-item\"); \r\n var name= p.find(\"h4\").html()\r\n if (confirm(\"Are you sure you want to remove item '\" + name + \"' from this trip?\")) {\r\n removeTripItem(getTripDetailRID(), p.data(\"riid\"), name,p.data(\"ritype\"));\r\n }\r\n \r\n }); \r\n\r\n $(\"#sortableItems\").sortable({\r\n\t update:function () { \r\n\t\t\tsaveTripOrder();\r\n\t } \r\n\t});\r\n\r\n \t$(\"#sortableItems\").disableSelection();\r\n\r\n $(document).on(\"dragover\", \"#drop-area\", function (e) {\r\n e.preventDefault();\r\n })\r\n\r\n $(document).on(\"click\", \"#drop-area\", function (e) {\r\n var inputFile = $(\"#drop-input-file\");\r\n if (!inputFile.data(\"clicked\")) {\r\n inputFile.data(\"clicked\", true);\r\n inputFile.click(); \r\n inputFile.data(\"clicked\", false);\r\n }\r\n });\r\n\r\n $(document).on(\"drop\", \"#drop-area\", function (e) {\r\n e.preventDefault();\r\n var files = e.originalEvent.dataTransfer.files;\r\n doUploadTripImage(files)\r\n })\r\n \r\n $(document).on(\"change\", \"#drop-input-file\", function (e) {\r\n $(\"#drop-input-file\").data(\"clicked\",false);\r\n var files = $(this)[0].files;\r\n doUploadTripImage(files)\r\n });\r\n \r\n $(document).on(\"click\", \".remove-trip-image\", function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (confirm(\"Are you sure you want to remove the image from this trip's cover page?\")) { \r\n var DTO = { 'rid': getTripDetailRID() } \r\n DynaProxy.invoke(\"DeleteCoverImage\", DTO, function (data) {\r\n $(\"#hdnImageName\").val (\"\");\r\n $(\".trip-image-div\").html(data.imghtml);\r\n $(\".trip-image-note\").html(data.imgnote);\r\n showSystemNotification('Image has been removed. Remember to save your trip changes.'); \r\n \r\n }, function (data) {\r\n showSupportNotification(\"Unable to remove the trip's cover page image.\");\r\n }) \r\n } \r\n })\r\n\r\n});\r\n\r\nfunction doUploadTripImage(files){\r\n\r\n if (files.length > 0) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n var imageData = e.target.result;\r\n UploadTripImage(imageData, files[0].name, 'trip');\r\n };\r\n reader.readAsDataURL(files[0]);\r\n }\r\n}\r\nfunction UploadTripImage(imageData, imageName, mode) {\r\n var DTO = { 'imageData': imageData, 'imageName': imageName, 'mode':mode }\r\n DynaProxy.invoke(\"UploadTripImage\", DTO, function (data) {\r\n if (data.msg!=\"\"){\r\n showSystemNotification('Unable to upload the image. ' + data.msg ); \r\n }else{\r\n showSystemNotification('Image has been uploaded. Remember to save your trip changes.'); \r\n $(\"#hdnImageName\").val (data.fileurl);\r\n $(\".trip-image-div\").html(data.imghtml);\r\n $(\".trip-image-note\").html(data.imgnote);\r\n \r\n var someTabTriggerEl = document.querySelector('#trip-layout-image-tab')\r\n var tab = new bootstrap.Tab(someTabTriggerEl) \r\n tab.show()\r\n }\r\n }, function (data) {\r\n showSupportNotification('Unable to upload the image.'); \r\n })\r\n}\r\nfunction saveTripOrder(){\r\n var s=\"|\"; var rid= $(\"#sortableItems\").data(\"rid\");\r\n $(\"#sortableItems li\").map(function() {s = s + $(this).data(\"riid\") + \"|\"}) \r\n var DTO = { 'reportID': rid, 'placeKeys': s } \r\n DynaProxy.invoke(\"UpdateReportSequence\", DTO, function(data) {\r\n }, function(data) {\r\n showSupportNotification('Unable to save trip order.'); \r\n })\r\n return false;\r\n}\r\nfunction getTripDetailRID() {\r\n var s= $(\".workspace\").data(\"rid\")\r\n if (s==undefined){ s=\"\";}\r\n return s;\r\n}\r\nfunction getTripDetailName() {\r\n var s= $(\".workspace\").data(\"rname\")\r\n if (s==undefined){ s=\"\";}\r\n return s;\r\n}\r\n\r\nfunction doSendTrip(rid,saveText,title){\r\n showModal({ url: \"/widgets/Trip/Send.aspx?rid=\" + rid, saveText: saveText, showsecondaryBtn: true, secondaryBtnText: \"Preview\", secondaryBtnURL:\"/Client/View?rid=\" + rid, title: title, \r\n callback: function (modal) { \r\n if(sendTrip()){\r\n setTripDetailClean()\r\n refrehTripList(false);\r\n closeModal(modal); \r\n }\r\n }\r\n }); \r\n} \r\n\r\n "," \r\n //agent profile\r\n\r\n function setProfileImageFields(){\r\n\r\n if( $(\"#hdnHeadshotImageName\").val()==\"\"){\r\n $(\".headshot-upload\").show();\r\n $(\".headshot-image\").hide();\r\n } else{\r\n $(\".headshot-upload\").hide();\r\n $(\".headshot-image\").show();\r\n }\r\n \r\n if ( $(\"#hdnLogoImageName\").val()==\"\"){\r\n $(\".logo-upload\").show();\r\n $(\".logo-image\").hide();\r\n } else{\r\n $(\".logo-upload\").hide();\r\n $(\".logo-image\").show();\r\n }\r\n\r\n \r\n }\r\n\r\n $(function () {\r\n \r\n setProfileImageFields();\r\n\r\n $(document).on(\"dragover\", \"#drop-area-logo,#drop-area-headshot\", function (event) {\r\n event.preventDefault();\r\n })\r\n\r\n $(document).on(\"click\", \"#drop-area-logo\", function (event) {\r\n var inputFile = $(\"#drop-input-file-logo\");\r\n if (!inputFile.data(\"clicked\")) {\r\n inputFile.data(\"clicked\", true);\r\n inputFile.click();\r\n inputFile.data(\"clicked\", false);\r\n }\r\n });\r\n \r\n $(document).on(\"click\", \"#drop-area-headshot\", function (event) {\r\n var inputFile = $(\"#drop-input-file-headshot\");\r\n if (!inputFile.data(\"clicked\")) {\r\n inputFile.data(\"clicked\", true);\r\n inputFile.click();\r\n inputFile.data(\"clicked\", false);\r\n }\r\n });\r\n\r\n $(document).on(\"drop\", \"#drop-area-logo\", function (event) {\r\n event.preventDefault();\r\n var files = event.originalEvent.dataTransfer.files;\r\n doUploadLogoImage(files)\r\n })\r\n \r\n $(document).on(\"drop\", \"#drop-area-headshot\", function (event) {\r\n event.preventDefault();\r\n var files = event.originalEvent.dataTransfer.files;\r\n doUploadHeadshotImage(files)\r\n })\r\n\r\n $(document).on(\"change\", \"#drop-input-file-logo\", function (event) {\r\n $(\"#drop-input-file-logo\").data(\"clicked\", false);\r\n var files = $(this)[0].files;\r\n doUploadLogoImage(files)\r\n });\r\n \r\n $(document).on(\"change\", \"#drop-input-file-headshot\", function (event) {\r\n $(\"#drop-input-file-headshot\").data(\"clicked\", false);\r\n var files = $(this)[0].files;\r\n doUploadHeadshotImage(files)\r\n });\r\n\r\n });\r\n\r\n function doUploadLogoImage(files) {\r\n\r\n if (files.length > 0) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n var imageData = e.target.result;\r\n UploadLogoImage(imageData, files[0].name, 'logo');\r\n };\r\n reader.readAsDataURL(files[0]);\r\n }\r\n }\r\n \r\n function doUploadHeadshotImage(files) {\r\n\r\n if (files.length > 0) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n var imageData = e.target.result;\r\n UploadHeadshotImage(imageData, files[0].name, 'heashot');\r\n };\r\n reader.readAsDataURL(files[0]);\r\n }\r\n }\r\n\r\n $(document).on(\"click\", \".remove-logo-image\", function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (confirm(\"Are you sure you want to remove the company logo image?\")) {\r\n var DTO = { 'mode': 'cover' }\r\n DynaProxy.invoke(\"DeleteProfileImage\", DTO, function (data) {\r\n setEditDirty()\r\n $(\"#hdnLogoImageName\").val(\"\");\r\n $(\".logo-image-div\").html(data.imghtml);\r\n $(\".logo-image-note\").html(data.imgnote);\r\n setProfileImageFields();\r\n showSystemNotification('Company logo has been removed. Remember to save your profile changes.');\r\n\r\n }, function (data) {\r\n showSupportNotification(\"Unable to remove the company logo image.\");\r\n })\r\n }\r\n })\r\n \r\n $(document).on(\"click\", \".remove-headshot-image\", function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (confirm(\"Are you sure you want to remove the agent headshot image?\")) {\r\n var DTO = { 'mode': 'headshot' }\r\n DynaProxy.invoke(\"DeleteProfileImage\", DTO, function (data) {\r\n setEditDirty()\r\n $(\"#hdnHeadshotImageName\").val(\"\");\r\n $(\".headshot-image-div\").html(data.imghtml);\r\n $(\".headshot-image-note\").html(data.imgnote);\r\n setProfileImageFields(); \r\n showSystemNotification('Agent headshot has been removed. Remember to save your profile changes.');\r\n\r\n }, function (data) {\r\n showSupportNotification(\"Unable to remove the company logo image.\");\r\n })\r\n }\r\n })\r\n\r\n function UploadLogoImage(imageData, imageName, mode) {\r\n var DTO = { 'imageData': imageData, 'imageName': imageName, 'mode': mode }\r\n DynaProxy.invoke(\"UploadTripImage\", DTO, function (data) {\r\n if (data.msg != \"\") {\r\n showSystemNotification('Unable to upload the company logo. ' + data.msg);\r\n } else {\r\n showSystemNotification('Company logo been uploaded. Remember to save your profile changes.');\r\n $(\"#hdnLogoImageName\").val(data.filename);\r\n $(\".logo-image-div\").html(data.imghtml);\r\n $(\".logo-image-note\").html(data.imgnote);\r\n setProfileImageFields();\r\n\r\n }\r\n }, function (data) {\r\n showSupportNotification('Unable to upload the company logo.');\r\n })\r\n }\r\n\r\n function UploadHeadshotImage(imageData, imageName, mode) {\r\n var DTO = { 'imageData': imageData, 'imageName': imageName, 'mode': mode }\r\n DynaProxy.invoke(\"UploadTripImage\", DTO, function (data) {\r\n if (data.msg != \"\") {\r\n showSystemNotification('Unable to upload the agent headshot. ' + data.msg);\r\n } else {\r\n showSystemNotification('Agent headshot has been uploaded. Remember to save your profile changes.');\r\n $(\"#hdnHeadshotImageName\").val(data.filename);\r\n $(\".headshot-image-div\").html(data.imghtml);\r\n $(\".headshot-image-note\").html(data.imgnote);\r\n setProfileImageFields();\r\n\r\n }\r\n }, function (data) {\r\n showSupportNotification('Unable to upload the agent headshot.');\r\n })\r\n }\r\n\r\n ","var bLoadingACard=false;\r\n\r\n$(function () {\r\n $(document).on(\"click\", \".btn-close-card\", function () {\r\n event.preventDefault(); \r\n $('.traveler-card-trigger').dropdown('hide')\r\n }) \r\n\r\n \r\n $(document).on(\"click\", \".btn-delete-traveler\", function () {\r\n event.preventDefault(); \r\n do_traveler_delete($(this).data(\"cid\"), $(this).data(\"cname\"));\r\n }) \r\n init_page_trav_cards(); \r\n \r\n})\r\n\r\nfunction init_trav_cards(sel) { \r\n $(sel + ' .traveler-card-trigger').each(function() {\r\n var ele = $( \"
    \" ).css(\"min-height\",\"400px\").css(\"min-width\",\"550px\")\r\n $(this).parent().append( ele);\r\n });\r\n\r\n $('.traveler-card-trigger').on('show.bs.dropdown', function () {\r\n if (!bLoadingACard) { //triggers 2x\r\n bLoadingACard=true;\r\n showTravelerCard($(this).data('tid'));\r\n } \r\n })\r\n }\r\n\r\n function showTravelerCard(cid) {\r\n \r\n $('.traveler-card-trigger[data-tid]').next().html(\"\"); //empty all old ones\r\n var DTO = { 'ClientId': cid } \r\n \r\n DynaProxy.invoke(\"GetTravelerCardDetail\", DTO, function (data) { \r\n $('.travelers-popover .sections').html(data); //update modeal\r\n $('.traveler-card-trigger[data-tid=' + cid + ']').next().html( $('.travelers-popover-menu').html()).addClass('white').find(\".travelers-popover\").addClass('white');\r\n bLoadingACard=false; \r\n }, function (data) {\r\n bLoadingACard=false;\r\n showSystemNotification('Unable to get traveler information.');\r\n })\r\n}\r\n\r\nfunction init_trip_trav_cards() {init_trav_cards(\"#triplist\");} \r\nfunction init_traveler_trav_cards() {init_trav_cards(\".travelerlist\");}\r\nfunction init_page_trav_cards(){\r\n init_trip_trav_cards();\r\n init_traveler_trav_cards();\r\n}\r\n\r\n","var tripitems=\"\"; \r\nvar bTripContentsDirty=false;\r\nvar bEditDirty=false;\r\nfunction getTripPlaceName() {\r\n var s= $(\".workspace\").data(\"pname\")\r\n if (s==undefined){ s=\"\";}\r\n return s\r\n}\r\n\r\nfunction getTripPlaceId() {\r\n var s= $(\".workspace\").data(\"pid\")\r\n if (s==undefined){ s=\"\";}\r\n return s;\r\n}\r\n\r\nfunction getTripPlaceType() {\r\n var s= $(\".workspace\").data(\"pitype\")\r\n if (s==undefined){ s=\"\";}\r\n return s; \r\n} \r\n\r\nfunction isPlaceInTrip() {\r\n return $(\".btn-trip-place-remove\").is(':visible')\r\n }\r\n\r\nfunction getCruiseDetails() {\r\n var cru=$(\".cruise-details\")\r\n if ($(cru).length=0){ cru= $(\".workspace\") }\r\n return cru;\r\n}\r\n\r\nfunction getCruiseSailDate() {\r\n var s= $(getCruiseDetails()).data(\"cruise-date\") \r\n if(s==undefined){s=\"\";}\r\n return s;\r\n}\r\n\r\nfunction getCruiseSailId() { \r\n var s= $(getCruiseDetails()).data(\"cruise-id\") \r\n if(s==undefined){s=\"\";}\r\n return s;\r\n}\r\n \r\nfunction setTripDetailDirty(){\r\n if ($('.btn-trip-place-add').length>0){\r\n if ($('.btn-trip-place-add').is(':visible')) {\r\n $(\".btn-trip-place-add\").addClass(\"pulse-primary\")\r\n bTripContentsDirty=true;\r\n }\r\n }\r\n} \r\n\r\nfunction setTripDetailClean(){\r\n $(\".btn-trip-place-add\").removeClass(\"pulse-primary\")\r\n bTripContentsDirty=false; \r\n}\r\n\r\n\r\nfunction setEditDirty(){\r\n //console.log('make trip dirty')\r\n $(\".btn-detail-save\").addClass(\"pulse-primary\")\r\n bEditDirty=true; \r\n} \r\n\r\nfunction setEditClean(){ \r\n //console.log('make trip clean') \r\n $(\".btn-detail-save\").removeClass(\"pulse-primary\")\r\n bEditDirty=false; \r\n}\r\n\r\n\r\n$(function () {\r\n\r\n $('#form-traveler-detail,#form-profile-detail').on('input change', function () {setEditDirty();}); \r\n\r\n\r\n\r\n initAddToCheckStatePort(); \r\n\r\n $(\".btn-select-trip\").on('click',function (e){\r\n e.preventDefault(); \r\n showModal({ url: \"/widgets/Trip/Trip-Select.aspx?m=2\", saveText: \"or Create New Trip\", title: \"Select a Trip\", callback: function (modal) { tripSelectOpenCreateTrip(modal);} });\r\n });\r\n \r\n $(\"#drpDates\").on('change',function (e){\r\n Page_Blur(true);\r\n var sParm=\"id\";\r\n var sId= $(this).val();\r\n var dt=$(this).find('option:selected').text();\r\n if (sId==dt){ \r\n sParm=\"dt\";\r\n }\r\n $(getCruiseDetails()).data(\"cruise-id\", sId) //set new values\r\n $(getCruiseDetails()).data(\"cruise-date\", dt) \r\n if (getTripDetailRID()!=\"\" && isPlaceInTrip() ){ \r\n //save the new id \r\n UpdateReportItem(getTripDetailRID(), getTripPlaceId(), collectItems(),collectPOIItems(), getTripDetailName(), getTripPlaceName(),getTripPlaceType(),tripCruiseDateUpdated_callback) \r\n } else{\r\n //refresh the page\r\n refreshWithQueryParam(sParm,getCruiseSailId()) ;\r\n }\r\n \r\n \r\n });\r\n\r\n $(\"#selShipDeck\").on('change',function (e){\r\n $(\".deck-plan\").hide();\r\n $(\"#\" + $(this).val()).show();\r\n });\r\n\r\n $(\".btn-trip-place-remove\").on('click',function (e){\r\n e.preventDefault(); \r\n //if we don't have a trip, we shouldn't be doing anything (this button should not show at all)\r\n var rid=getTripDetailRID();\r\n if (rid!=\"\"){ \r\n if (confirm(\"Are you sure you want to remove \" + getTripPlaceName() + \" from the trip '\" + getTripDetailName() + \"'?\")){\r\n RemoveReportItem(rid, getTripPlaceId(), getTripDetailName(), getTripPlaceName(),getTripPlaceType(),tripPlaceRemoved_callback)\r\n } \r\n } \r\n });\r\n\r\n $(\".btn-trip-place-add\").on('click',function (e){\r\n e.preventDefault();\r\n //if we don't have a trip, open then select trip dialog \r\n var rid=getTripDetailRID();\r\n if (rid==\"\"){ \r\n showModal({ url: \"/widgets/Trip/Trip-Select.aspx?m=1\", saveText: \"or Create New Trip\", title: \"Add Item(s) to Trip Plan\", callback: function (modal) { tripSelectOpenCreateTrip(modal);} });\r\n }\r\n else {\r\n //add place to trip with any selected options\r\n Page_Blur(true);\r\n UpdateReportItem(rid, getTripPlaceId(), collectItems(), collectPOIItems(), getTripDetailName(), getTripPlaceName(),getTripPlaceType(),tripPlaceAdded_callback,null)\r\n }\r\n });\r\n \r\n $(\".btn-trip-place-send\").on('click',function (e){\r\n e.preventDefault(); \r\n //save the current selections to as a quick report trip and open send\r\n var pois=collectPOIItems();\r\n var items=collectItems();\r\n if (pois==\"\" && items==\"\"){\r\n alert ('Please select one or more place options to send.')\r\n return;\r\n }\r\n CreateQuickReport(getTripPlaceId(), items, pois, getTripPlaceName(),getTripPlaceType(),tripQuickSend_callback,null) \r\n });\r\n\r\n $(\".btn-trip-place-print\").on('click',function (e){\r\n e.preventDefault(); \r\n //save the current selections to as a quick report trip and open print\r\n var pois=collectPOIItems();\r\n var items=collectItems();\r\n if (pois==\"\" && items==\"\"){\r\n alert ('Please select one or more place options to print.')\r\n return;\r\n }\r\n CreateQuickReport(getTripPlaceId(), items, pois, getTripPlaceName(),getTripPlaceType(),tripQuickPrint_callback,null) \r\n \r\n }); \r\n\r\n // Check the number of child elements in the carousel\r\n var $carousel = $('.item-slider');\r\n if ($carousel.length>0) {\r\n var imageCount = $carousel.children().length;\r\n\r\n // Initialize Slick Carousel only if there are more than one image\r\n if (imageCount > 2) {\r\n\r\n $carousel.slick({\r\n dots: true,\r\n slidesToScroll:2 ,\r\n infinite: false ,\r\n speed: 750, \r\n autoplay: false,\r\n autoplaySpeed: 2000,\r\n pauseOnDotsHover:true,\r\n arrows:true, \r\n variableWidth: true\r\n });\r\n\r\n } else {\r\n $carousel.slick({\r\n dots: false,\r\n slidesToScroll:2 ,\r\n infinite:false ,\r\n speed: 750, \r\n autoplay: false, \r\n pauseOnDotsHover:true,\r\n arrows:false, \r\n variableWidth: true\r\n });\r\n\r\n }\r\n }\r\n\r\n $('.center').slick({\r\n dots: true,\r\n slidesToShow: 6, \r\n slidesToScroll: 6 ,\r\n infinite: true ,\r\n speed: 750, \r\n autoplay: false,\r\n autoplaySpeed: 2000,\r\n pauseOnDotsHover:true,\r\n arrows:true,\r\n\r\n centerMode: true,\r\n centerPadding: '60px',\r\n slidesToShow: 3,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n arrows: false,\r\n centerMode: true,\r\n centerPadding: '40px',\r\n slidesToShow: 3\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n arrows: false,\r\n centerMode: true,\r\n centerPadding: '40px',\r\n slidesToShow: 1\r\n }\r\n }\r\n ]\r\n});\r\n\r\n}) \r\n\r\nfunction updateSearchChecks(){\r\n $(\".chk-search-item-port,.chk-search-item\").map(function (i, obj) {\r\n var key=$(this).val();\r\n $(this).prop('checked',searchreportitems.indexOf('|'+key+'|')>-1);\r\n }); \r\n}\r\n\r\nfunction initAddToCheckStatePort(){\r\n //set checkboxes bases on report state\r\n $(\".chk-search-item-port\").on('click',function (e){\r\n return quickaddcheck($(this));\r\n }); \r\n updateSearchChecks(); \r\n}\r\n\r\nfunction quickaddcheck(e){ \r\n var rid=getTripDetailRID();\r\n var id= $(e).val();\r\n var n= $(e).data(\"placename\"); \r\n var typ= $(e).data(\"subtype\");\r\n var bRemove=!$(e).prop('checked');\r\n \r\n var sid = getCruiseSailId();\r\n var sdt = getCruiseSailDate(); \r\n\r\n if (bRemove){ \r\n if (rid!=\"\"){\r\n if (confirm(\"Are you sure you want to remove \" + n + \" from the trip '\" + getTripDetailName() + \"'?\")){RemoveReportItem(rid, id, getTripDetailName(), n,typ,tripQuickAddRemoved_callback)}\r\n else{return false;}\r\n } \r\n } else\r\n { \r\n //if we don't have a trip, open then select trip dialog \r\n if (rid==\"\"){ \r\n showModal({ url: \"/widgets/Trip/Trip-Select.aspx?m=3&id=\" + id + \"&typ=\" + typ + \"&n=\" + escape(n) + \"&sid=\" + escape(sid) +\"&sdt=\" + escape(sdt), saveText: \"or Create New Trip\", title: \"Add Item to Trip Plan\", callback: function (modal) { tripSelectOpenCreateTrip(modal); } });\r\n }\r\n else { \r\n //add place to trip with default options\r\n Page_Blur(true);\r\n QuickAddReportItem(rid, id, typ, getTripDetailName(), n,tripQuickAddItem_callback, sid, sdt);\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nfunction tripPlaceRemoved_callback(rid, riid, rname, riname,err) {\r\n if (err){ \r\n showSupportNotification(\"Unable to remove \" + riname + \" from the trip '\" + rname+ \"'\"); \r\n }else{ \r\n setTripDetailClean()\r\n showSystemNotification(riname + \" has been removed from the trip '\" + rname+ \"'\"); \r\n $(\".btn-trip-place-add,.btn-trip-place-add-drop\").show();\r\n $(\".btn-trip-place-remove\").hide(); \r\n }\r\n}\r\n\r\nfunction tripSelectedPlaceAdded_callback(rid, riid, options, rname, riname,err) {\r\n if (err){ \r\n showSupportNotification(\"Unable to add \" + riname + \" to the trip '\" + rname+ \"'\"); \r\n }else{ \r\n showSystemNotification(riname + \" has been added to the trip '\" + rname+ \"'. Refreshing your page.\"); \r\n refreshPageForTrip(rid,rname)\r\n }\r\n}\r\n \r\nfunction tripPlaceUpdated_callback(rid, riid, options, rname, riname,err,msg) {\r\n if (err){ \r\n showSupportNotification(\"Unable to update \" + riname + \" in the trip '\" + rname+ \"'\"); \r\n }else{\r\n setTripDetailClean()\r\n var m=(msg==null?riname + \" has been updated in the trip '\" + rname+ \"'\":msg)\r\n showSystemNotification(m); \r\n }\r\n}\r\n\r\nfunction tripCruiseDateUpdated_callback(rid, riid, options, rname, riname,err) {\r\n if (err){ \r\n showSupportNotification(\"Unable to update \" + riname + \" in the trip '\" + rname+ \"'\"); \r\n }else{\r\n setTripDetailClean()\r\n showSystemNotification(riname + \" has been updated in the trip '\" + rname+ \"'\"); \r\n Page_Blur(true)\r\n var id= getCruiseSailId()\r\n var dt= getCruiseSailDate()\r\n if (id==dt){refreshWithQueryParam(\"dt\",id) ;}else{refreshWithQueryParam(\"id\",id) ;}\r\n\r\n \r\n\r\n }\r\n}\r\n\r\nfunction tripQuickSend_callback(rid, riid, options, rname, riname,err,msg) {\r\n if (err){ \r\n showSupportNotification(\"Unable to create quick report for \" + riname + \"'\"); \r\n }else{\r\n doSendTrip(rid,\"Send\",\"Quick Send '\" + riname +\"'\"); \r\n } \r\n }\r\n\r\nfunction tripQuickPrint_callback(rid, riid, options, rname, riname,err,msg) {\r\n if (err){ \r\n showSupportNotification(\"Unable to create quick report for \" + riname + \"'\"); \r\n }else{\r\n printTrip(rid);\r\n } \r\n }\r\n \r\nfunction tripPlaceAdded_callback(rid, riid, options, rname, riname,err,msg) {\r\n if (err){ \r\n showSupportNotification(\"Unable to add \" + riname + \" to the trip '\" + rname+ \"'\"); \r\n }else{\r\n setTripDetailClean();\r\n showSystemNotification(riname + \" has been added to the trip '\" + rname+ \"'\"); \r\n $(\".btn-trip-place-add,.btn-trip-place-add-drop\").hide();\r\n $(\".btn-trip-place-remove\").show(); \r\n }\r\n}\r\n\r\nfunction tripQuickAddRemoved_callback(rid, riid, rname, riname,err) {\r\n if (err){ \r\n showSupportNotification(\"Unable to remove \" + riname + \" from the trip '\" + rname+ \"'\"); \r\n }else{ \r\n showSystemNotification(riname + \" has been removed from the trip '\" + rname+ \"'\"); \r\n searchreportitems=searchreportitems.replace('|'+riid+'|','|'); \r\n updateSearchChecks()\r\n }\r\n} \r\n\r\nfunction tripQuickAddItem_callback(rid, riid, ritype, rname, riname,err) {\r\n if (err){ \r\n showSupportNotification(\"Unable to add \" + riname + \" to the trip '\" + rname+ \"'\"); \r\n \r\n }else{\r\n searchreportitems+=riid+'|';\r\n updateSearchChecks()\r\n showSystemNotification(riname + \" has been quickly added to the trip '\" + rname+ \"'\"); \r\n\r\n }\r\n}\r\n\r\nfunction collectItems() {\r\n var sItems=\"\";\r\n $(\".chk-content-section:checked\" ).each(function( index ) { \r\n if ($(this).data(\"subtype\")!=\"POI\"){\r\n var val=$(this).val();\r\n if (val!=\"\"){sItems += val + \"|\";} \r\n }\r\n });\r\n\r\n return sItems\r\n}\r\n\r\nfunction collectPOIItems() {\r\n var sItems=\"\";\r\n $(\".chk-content-section:checked\" ).each(function( index ) { \r\n if ($(this).data(\"subtype\")==\"POI\"){\r\n var val=$(this).val();\r\n if (val!=\"\"){sItems += val + \"|\";} \r\n } \r\n });\r\n\r\n return sItems\r\n}\r\n\r\nfunction setTripFromSelect(rid, rname,id, typ,n, mode, sid, sdt) {\r\n Page_Blur(true); \r\n \r\n if (mode==2){\r\n showSystemNotification(\"Switching trip to '\" + rname + \"'. Refreshing your page\"); \r\n refreshPageForTrip(rid,rname) ;\r\n } else if (mode==1) {\r\n UpdateReportItem(rid, getTripPlaceId(), collectItems(),collectPOIItems(),rname, getTripPlaceName(),getTripPlaceType(),tripSelectedPlaceAdded_callback,null) ;\r\n }else{ \r\n QuickAddReportItem(rid, id, typ, rname, n, tripSelectedPlaceAdded_callback, sid, sdt);\r\n \r\n }\r\n}\r\n\r\nfunction refreshPageForTrip(rid,rname) {\r\n Page_Blur(true); \r\n var req = new Object; \r\n req.ReportID = rid; \r\n var DTO = { 'Req': req }\r\n\r\n DynaProxy.invoke(\"SetWorkingTrip\",DTO, function (data) {\r\n setTripDetailClean(); //avoid message\r\n window.location.href= window.location.href;\r\n }, function (data) { \r\n showSupportNotification(\"Unable to refresh trip '\" +rname + \"'\");\r\n })\r\n \r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => { \r\n window.addEventListener('beforeunload', (event) => {\r\n if (bTripContentsDirty || bEditDirty) {\r\n event.preventDefault(); \r\n // event.returnValue = \"You have made selections, but have not added this place to a trip, printed, or sent it. Are you sure you want to leave this page?\"; //doesnt work on most browsers\r\n }\r\n });\r\n });","$(function () {\r\n\r\n $(window).resize(setIndexScrollHeight);\r\n\r\n function initTripContent(){ \r\n setParentState(); \r\n synchContentState();\r\n }\r\n\r\n function synchContentState() {\r\n $(\".chk-content-section\" ).each(function( index ) { \r\n var id=$(this).attr('id')\r\n var bselected= $(this).is(':checked')\r\n var contentitem= $(\"#\" + id + \"-cntidx\");\r\n contentitem.prop('checked', bselected) ; //reflect change in content - dont think we need to do this if we call synchContentState at the end\r\n contentitem.removeClass(\"mixed\")\r\n if ($(this).hasClass(\"mixed\")){contentitem.addClass(\"mixed\");}\r\n });\r\n }\r\n\r\n function setParentMix(indexitem) {\r\n //update parents when mixed\r\n \r\n var items= indexitem.closest(\"li\").find(\"ul .chk-content-section\")\r\n var numChildren= items.length; \r\n var numChildrenChecked=items.filter(\":checked\").length;\r\n \r\n indexitem.removeClass(\"mixed\")\r\n if (numChildrenChecked ==0) {\r\n indexitem.prop('checked', false); \r\n } else {\r\n indexitem.prop('checked', true);\r\n if (numChildrenChecked!=numChildren){ indexitem.addClass(\"mixed\");}\r\n }\r\n \r\n }\r\n\r\n //initialize mixed state on any checks that have children\r\n function setParentState(){ \r\n\r\n //set mixed state on any checks that have children\r\n $(\".chk-content-section-all\").each(function( index ) {\r\n setParentMix($(this))\r\n });\r\n }\r\n\r\n function processContentCheck(indexitem) {\r\n \r\n var bselected= indexitem.is(':checked'); \r\n var rid=getTripDetailRID();\r\n \r\n //if item is a parent, check or uncheck all items under it\r\n var bParent=indexitem.hasClass(\"chk-content-section-all\")\r\n if(bParent){indexitem.closest(\"li\").find(\"ul .chk-content-section\" ).prop('checked', bselected)}\r\n\r\n //if we have a trip and this place is in the trip, save it\r\n if (rid!=\"\" && isPlaceInTrip() ){ \r\n \r\n var msg=\"\"\r\n var label=indexitem.next().text()\r\n if (bselected) {msg= label + \" has been added for \" + getTripPlaceName() + \" in the trip '\" + getTripDetailName() + \"'.\"} \r\n else{msg= label + \" has been removed for \" + getTripPlaceName() + \" in the trip '\" + getTripDetailName() + \"'.\"} \r\n if (bParent){msg = \"All \" + msg.replace(\" has \", \" selections have \");}\r\n\r\n //save the updates\r\n //Page_Blur(true);\r\n UpdateReportItem(rid, getTripPlaceId(), collectItems(),collectPOIItems(), getTripDetailName(), getTripPlaceName(),getTripPlaceType(),tripPlaceUpdated_callback,msg)\r\n\r\n } else\r\n {\r\n setTripDetailDirty();\r\n } \r\n\r\n //set the state on any parent check box\r\n setParentState();\r\n \r\n //synch content checkboxes\r\n synchContentState();\r\n }\r\n\r\n //index checkbox clicked\r\n $(\".chk-content-section\").on('change',function (e){\r\n processContentCheck ($(this))\r\n });\r\n\r\n // content checkbox clicked - just reflect state in index and proces as if it's been clicks\r\n $(\".chk-content-section2\").on('change',function (e){\r\n var id=$(this).attr(\"id\"); \r\n var idx=\"#\"+id.replace(\"-cntidx\",\"\");\r\n $(idx).prop(\"checked\",$(this).prop(\"checked\"));\r\n processContentCheck ($(idx))\r\n });\r\n\r\n //index checkbox or label clicked- open accoridion section\r\n $(\".content-details-container .checkboxitem .form-check-input,.content-details-container .checkboxitem .form-check-label\").on('click',function (e){\r\n e.stopPropagation();\r\n \r\n if ($(this).parents(\".accordion-item\").length>0){\r\n $(this).parents(\".accordion-item\").find(\".accordion-collapse\").collapse('show');\r\n }else if ($(this).parents(\".not-selectable\").length>0){\r\n $(this).parents(\".checkboxitem\").click(); \r\n }\r\n\r\n });\r\n\r\n //index section clicked- scroll to item in content & open accordion\r\n $(\".content-details-container .checkboxitem,.proposal-toc li\").on('click',function (e){\r\n\r\n var href=$(this).data(\"href\");\r\n if (href!=undefined && href!=\"\"){\r\n window.location=href;\r\n e.preventDefault(); \r\n return false;\r\n }\r\n \r\n var eleId=\"#\"+$(this).data(\"scrollto\").replace(\"secttoc\",\"sect\");\r\n var $anchor=$(eleId).offset(); \r\n \r\n if ($anchor.top==0){\r\n //non existent or hidden element --cruise deck\r\n if (eleId.indexOf(\"vesseldecks\") > -1) {\r\n //select in dropdown\r\n $(\"#selShipDeck\").val($(this).data(\"scrollto\"))\r\n $(\"#selShipDeck\").trigger('change');\r\n $anchor=$(eleId).offset(); \r\n }\r\n\r\n } \r\n \r\n var nOffset=65;\r\n var bClientReport=$(\".workspace\").hasClass(\"client-workspace\"); \r\n\r\n if (bClientReport){\r\n nOffset=nOffset+65;\r\n }\r\n\r\n window.scroll({\r\n top: $anchor.top-$(\".page-header-new\").height()-nOffset, \r\n left: 0, \r\n behavior: 'smooth'\r\n }); \r\n \r\n e.stopPropagation(); //keep the parent frm firing\r\n \r\n if ($(this).hasClass(\"accordion-item\")){\r\n $(this).find(\".accordion-collapse\").collapse('show');\r\n }\r\n \r\n });\r\n\r\n initTripContent();\r\n\r\n if ($(\".guide-content\").length>0){\r\n window.addEventListener('scroll', handleContentIndexScroll);\r\n setElementPositions(); \r\n }\r\n\r\n})\r\n\r\nfunction selectSection(id){\r\n $(id).click()\r\n}\r\n\r\nfunction handleContentIndexScroll() {\r\n var elementsToCheck = document.querySelectorAll('.content_panel_preview');\r\n if (elementsToCheck.length==0){ elementsToCheck = document.querySelectorAll('.content_panel');}\r\n var elementsToSet = document.querySelectorAll('.checkboxitem');\r\n\r\n // Find the most in viewport element\r\n var mostInViewElement = findMostInView(elementsToCheck);\r\n\r\n // Remove the in-view class from all elements\r\n elementsToSet.forEach(function(element) {\r\n element.classList.remove('active');\r\n });\r\n\r\n // Add the in-view class to the most in viewport element\r\n if (mostInViewElement) {\r\n var sel=\"[data-scrollto='\" + mostInViewElement.id + \"']\";\r\n var x=document.querySelectorAll(sel);\r\n if (x.length>0){ \r\n x[0].classList.add('active');\r\n }\r\n }\r\n \r\n }\r\n\r\nfunction setIndexScrollHeight(){\r\n\r\n if ($(\".fixed-top\").length>0){\r\n \r\n var header= document.querySelectorAll(\".page-header-new\")[0].getBoundingClientRect();\r\n var nHeight=window.innerHeight-header.height-35; \r\n \r\n if ($(\".is-preview\").length>0){\r\n //client preview\r\n var nWidth=450;\r\n var padding=5;\r\n var nLeft=0 ;\r\n var contentCol = document.querySelectorAll('.guide-content')[0].getBoundingClientRect();\r\n \r\n if (contentCol.left0){\r\n //client report\r\n if ($(\".page-header-new\").length>0){\r\n var header= document.querySelectorAll(\".page-header-new\")[0].getBoundingClientRect();\r\n headerHeight =header.height;\r\n $(\".content-details-row \").css('top', (headerHeight-60) + 'px');\r\n $(\".fixed-top\").css('top', (header.height+20) + 'px'); \r\n }\r\n \r\n }else if ($(\".client-report-preview\").length>0){\r\n \r\n if ($(\".content-details-container-header\").length>0){\r\n var header= document.querySelectorAll(\".content-details-container-header\")[0].getBoundingClientRect();\r\n headerHeight =header.height;\r\n $(\".content-details-row\").css('top', (headerHeight+10) + 'px');\r\n $(\".content-details-container .fixed-top\").css('top', (headerHeight+100) + 'px'); \r\n } \r\n } else{\r\n \r\n if ($(\".content-details-container-header\").length>0){\r\n var header= document.querySelectorAll(\".content-details-container-header\")[0].getBoundingClientRect();\r\n headerHeight =header.height;\r\n $(\".content-details-row\").css('top', (headerHeight-22) + 'px');\r\n \r\n var nTop= headerHeight+100; //167\r\n if ($(\".fixed-top\").hasClass(\"large-map-visible\")){\r\n console.log(\"large-map-visible\")\r\n nTop=nTop-37;\r\n } \r\n \r\n $(\".content-details-container .fixed-top\").css('top', nTop + 'px'); \r\n } \r\n \r\n }\r\n \r\n \r\n\r\n \r\n }\r\n\r\n","function removeTripItem(rid, riid,riiname, ritype) {\r\n var req = new Object; \r\n req.ReportID =rid;\r\n req.PlaceKey =riid;\r\n req.FullList=true;\r\n req.Mode=\"D\";\r\n\r\n Page_Blur(true);\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"UpdateReportItem\", DTO, function (data) { \r\n showSystemNotification(\"Item '\" + riiname + \"' has been removed from the trip and we are refreshing the page.\"); \r\n Page_Blur(true);\r\n refreshWithQueryParam(\"tab\",ritype); \r\n }, function (data) { \r\n showSupportNotification('Unable to remove the item from the trip.');\r\n }) \r\n \r\n}\r\n\r\nfunction QuickAddReportItem(rid, riid, ritype, rname, riname,callback, sid, sdt) {\r\n var req = new Object; \r\n req.ReportID =rid;\r\n req.PlaceKey =riid;\r\n req.FullList=false;\r\n req.Mode=\"U\"; \r\n req.Placetype=ritype; \r\n if (req.Placetype == \"CRU\") {\r\n req.SailID =sid;\r\n req.SailDate=sdt; \r\n }\r\n\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"QuickAddReportItem\", DTO, function (data) {\r\n if( typeof callback == \"function\" ) {callback(rid, riid, ritype, rname, riname,false);}\r\n else{ showSystemNotification(riname + \"' has been added to the trip '\" + rname + \"'\");}\r\n\r\n }, function (data) {\r\n if( typeof callback == \"function\" ) {callback(rid, riid, ritype, rname, riname,true);}\r\n else{showSupportNotification(\"Unable to add \" + riname + \"' to the trip '\" + rname + \"'\");} \r\n }) \r\n \r\n}\r\n\r\nfunction RemoveReportItem(rid, riid, rname, riname,ritype,callback) {\r\n var req = new Object; \r\n req.ReportID =rid;\r\n req.PlaceKey =riid;\r\n req.FullList=true; \r\n req.Placetype=ritype;\r\n req.Mode=\"D\"; \r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"UpdateReportItem\", DTO, function (data) {\r\n if( typeof callback == \"function\" ) {callback(rid, riid, rname, riname,false);}\r\n else{ showSystemNotification(riname + \" has been removed from the trip '\" + rname + \"'\");}\r\n }, function (data) { \r\n if( typeof callback == \"function\" ) {callback(rid, riid, rname, riname,true);}\r\n else{showSupportNotification(\"Unable to remove \" + riname + \"' from the trip '\" + rname + \"'\");}\r\n\r\n }) \r\n}\r\n\r\nfunction UpdateReportItem(rid, riid, options, pois, rname, riname,ritype,callback,msg) {\r\n var req = new Object; \r\n req.ReportID =rid;\r\n req.PlaceKey =riid;\r\n req.FullList=true;\r\n req.Placetype=ritype;\r\n req.Mode=\"U\"; \r\n req.ContentOptions=options; \r\n req.POIKeys=pois; \r\n\r\n if (req.Placetype == \"CRU\") { \r\n req.SailDate=getCruiseSailDate();\r\n req.SailID=getCruiseSailId(); \r\n }\r\n\r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"UpdateReportItem\", DTO, function (data) {\r\n if( typeof callback == \"function\" ) {callback(rid, riid, options, rname, riname,false,msg);}\r\n else{ showSystemNotification(riname + \"' has been updated in the trip '\" + rname + \"'\");}\r\n }, function (data) { \r\n if( typeof callback == \"function\" ) {callback(rid, riid, options, rname, riname,true,msg);}\r\n else{showSupportNotification(\"Unable to update \" + riname + \"' in the trip '\" + rname + \"'\");}\r\n\r\n }) \r\n}\r\n\r\nfunction CreateQuickReport(riid, options, pois, riname,ritype,callback,msg) {\r\n var rname=riname;\r\n\r\n var req = new Object; \r\n req.PlaceKey =riid;\r\n req.Placetype=ritype;\r\n req.Mode=\"Q\"; \r\n req.ContentOptions=options; \r\n req.POIKeys=pois; \r\n req.Option2=rname;\r\n if (req.Placetype == \"CRU\") { \r\n req.SailID =getCruiseSailId();\r\n req.SailDate=getCruiseSailDate(); \r\n }\r\n \r\n var DTO = { 'Req': req }\r\n DynaProxy.invoke(\"UpdateReportItem\", DTO, function (data) {\r\n rid=data;\r\n callback(rid, riid, options, rname, riname,false,msg);\r\n }, function (data) { \r\n callback(\"\", riid, options, rname, riname,true,msg);\r\n }) \r\n}\r\n\r\n","$(function () {\r\n \r\n $(document).on(\"keyup\", \"#txtTripSelectSearch\", function () { refrehTripSelectList(); })\r\n \r\n function refrehTripSelectList() {\r\n\r\n element_Blur(\"#tripselectlist\", true)\r\n\r\n var val = $(\"#txtTripSelectSearch\").val()\r\n //ignore value search when less then 3 chars\r\n if (val.length < 3) { val = \"\"; }\r\n \r\n var clientid = $(\".trip-select-table\").data(\"client-id\"); \r\n\r\n var req = {\r\n Value: val\r\n };\r\n\r\n \r\n var DTO = { 'Req': req };\r\n DynaProxy.invoke(\"GetTripSelect\", DTO, function (data) { \r\n $(\"#trip-select-body\").html(data);\r\n element_Blur(\"#tripselectlist\", false); \r\n\r\n }, function (data) {\r\n showSupportNotification('Unable to get Trips.');\r\n element_Blur(\"#tripselectlist\", false)\r\n });\r\n return false;\r\n }\r\n\r\n $(document).on(\"click\", \"#trip-select-body td\", function (e) {\r\n\r\n e.preventDefault(); \r\n var hdnSelectMode= $(\"#hdnSelectMode\").val(); \r\n var hdnSelectPlaceId= $(\"#hdnSelectPlaceId\").val(); \r\n var hdnSelectPlaceType= $(\"#hdnSelectPlaceType\").val(); \r\n var hdnSelectPlaceName= $(\"#hdnSelectPlaceName\").val(); \r\n var hdnSelectSailDate= $(\"#hdnSelectSailDate\").val();\r\n var hdnSelectSailId= $(\"#hdnSelectSailId\").val();\r\n\r\n closeModal(e.target.closest('.modal')); \r\n setTripFromSelect($(this).data(\"rid\"), $(this).text(),hdnSelectPlaceId,hdnSelectPlaceType,hdnSelectPlaceName,hdnSelectMode,hdnSelectSailId,hdnSelectSailDate) ; \r\n \r\n })\r\n \r\n})\r\n \r\nfunction onTripSelectOnCreateTrip_callback(modal,rid,name) {\r\n var rname = name;\r\n var hdnSelectMode= $(\"#hdnSelectMode\").val(); \r\n var hdnSelectPlaceId= $(\"#hdnSelectPlaceId\").val(); \r\n var hdnSelectPlaceType= $(\"#hdnSelectPlaceType\").val(); \r\n var hdnSelectPlaceName= $(\"#hdnSelectPlaceName\").val(); \r\n var hdnSelectSailDate= $(\"#hdnSelectSailDate\").val();\r\n var hdnSelectSailId= $(\"#hdnSelectSailId\").val();\r\n closeModal(modal); \r\n setTripFromSelect(rid, rname,hdnSelectPlaceId,hdnSelectPlaceType,hdnSelectPlaceName,hdnSelectMode,hdnSelectSailId,hdnSelectSailDate) \r\n}\r\n\r\n//open create trip dialog for place add or quick add\r\nfunction tripSelectOpenCreateTrip(modal) {\r\n\r\n showModal({ \r\n url: \"/widgets/Trip/Trip-Detail.aspx?m=1&m2=\" + $(\"#hdnSelectMode\").val() + \"&id=\" + $(\"#hdnSelectPlaceId\").val() + \"&typ=\" + $(\"#hdnSelectPlaceType\").val() + \"&n=\" + escape($(\"#hdnSelectPlaceName\").val())+ \"&sdt=\" + escape($(\"#hdnSelectSailDate\").val())+ \"&sid=\" + escape($(\"#hdnSelectSailId\").val()), \r\n saveText: \"Save Trip\",\r\n title: \"Create Trip\", \r\n callback: function (modal) {tripSelectOnCreateTrip(modal) } });\r\n return false;\r\n}\r\n\r\n//after trip create, save trip, select the trip, and add the item to the trip\r\nfunction tripSelectOnCreateTrip(modal) {\r\n saveTripDetail(modal, onTripSelectOnCreateTrip_callback); \r\n}\r\n","/*!\n * Select2 4.1.0-rc.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n }\n\n // If element has id, use it.\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() +\n '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n\n var replacements = destinationClasses.concat(sourceClasses);\n\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
      '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
    • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option--selectable');\n\n var $selected = $options.filter('.select2-results__option--selected');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option--selectable');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && selectedIds.indexOf(id) > -1)) {\n this.classList.add('select2-results__option--selected');\n $option.attr('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n\n var attrs = {\n 'role': 'option'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n attrs['aria-disabled'] = 'true';\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
        ', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option--selectable',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted')\n .attr('aria-selected', 'false');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered')\n .attr('id', id)\n .attr('role', 'textbox')\n .attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.attr('aria-controls', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n\n $selection.html(\n '
          '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n\n this.$selection.on(\n 'keydown',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
        • ' +\n '' +\n '' +\n '
        • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n var selectionIdPrefix = this.$selection.find('.select2-selection__rendered')\n .attr('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display')\n .append(formatted)\n .attr('id', selectionId);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n\n var $remove = $selection.find('.select2-selection__choice__remove');\n\n $remove.attr('title', removeItem());\n $remove.attr('aria-label', removeItem());\n $remove.attr('aria-describedby', selectionId);\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n $rendered.append($selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n\n], function () {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n\n var placeholderTitle = placeholder.title ||\n placeholder.text ||\n $placeholder.text();\n\n this.$selection.find('.select2-selection__rendered').attr(\n 'title',\n placeholderTitle\n );\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var selectionId = this.$selection.find('.select2-selection__rendered')\n .attr('id');\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n ''\n );\n $remove.attr('title', removeAll());\n $remove.attr('aria-label', removeAll());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n $rendered.append(this.$searchContainer);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n\n decorated.call(this, container, $container);\n\n self.$search.attr('aria-describedby', selectionId);\n\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection\n .find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '100%';\n\n if (this.$search.attr('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/selectionCss',[\n '../utils'\n], function (Utils) {\n function SelectionCSS () { }\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n $selection.addClass(selectionCssClass);\n\n return $selection;\n };\n\n return SelectionCSS;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n\n var data = Array.prototype.map.call(\n this.$element[0].querySelectorAll(':checked'),\n function (selectedElement) {\n return self.item($(selectedElement));\n }\n );\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if (\n data.element != null && data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if (\n data.element != null &&\n data.element.tagName.toLowerCase() === 'option'\n ) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n if (\n this.tagName.toLowerCase() !== 'option' &&\n this.tagName.toLowerCase() !== 'optgroup'\n ) {\n return;\n }\n\n var $option = $(this);\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !Array.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', 'true');\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery'\n], function ($) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
        • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown[0].classList\n .contains('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList\n .contains('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('select2-dropdown--below');\n this.$dropdown[0].classList.remove('select2-dropdown--above');\n this.$dropdown[0].classList.add('select2-dropdown--' + newDirection);\n\n this.$container[0].classList.remove('select2-container--below');\n this.$container[0].classList.remove('select2-container--above');\n this.$container[0].classList.add('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n '../utils'\n], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/dropdown/dropdownCss',[\n '../utils'\n], function (Utils) {\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n $dropdown.addClass(dropdownCssClass);\n\n return $dropdown;\n };\n\n return DropdownCSS;\n});\n\nS2.define('select2/dropdown/tagsSearchHighlight',[\n '../utils'\n], function (Utils) {\n function TagsSearchHighlight () { }\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results\n .find(\n '.select2-results__option--selectable' +\n ':not(.select2-results__option--selected)'\n );\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n },\n removeAllItems: function () {\n return 'Remove all items';\n },\n removeItem: function () {\n return 'Remove item';\n },\n search: function() {\n return 'Search';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/selectionCss',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n './dropdown/dropdownCss',\n './dropdown/tagsSearchHighlight',\n\n './i18n/en'\n], function ($,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, SelectionCSS, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n DropdownCSS, TagsSearchHighlight,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n TagsSearchHighlight\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'jquery',\n './defaults',\n './utils'\n], function ($, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.autocomplete == null && $e.prop('autocomplete')) {\n this.options.autocomplete = $e.prop('autocomplete');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element[0].classList.add('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n self._syncS(mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER || key === KEYS.TAB) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n this._observer = null;\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container[0].classList\n .add('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults',\n './select2/utils'\n], function ($, _, Select2, Defaults, Utils) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n"]}