{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./assets/components/VueFlashbag.vue?2dbc","webpack:///./assets/components/VueFlashbag.vue?d34c","webpack:///assets/components/VueFlashbag.vue","webpack:///./assets/components/VueFlashbag.vue","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/platform/browser/index.js","webpack:///./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack:///./node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/AxiosHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/speedometer.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/adapters/adapters.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/axios/index.js","webpack:///./assets/components/Sorter.vue?c744","webpack:///./assets/components/Sorter.vue?f668","webpack:///assets/components/Sorter.vue","webpack:///./assets/components/Sorter.vue","webpack:///assets/components/Pagination.vue","webpack:///./assets/components/Pagination.vue?e1ed","webpack:///./assets/components/Pagination.vue","webpack:///./assets/components/Pagination.vue?2176","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/vue2-editor/dist/vue2-editor.esm.js","webpack:///./assets/components/SaveChanges.vue?f01b","webpack:///./assets/components/SaveChanges.vue?6060","webpack:///assets/components/SaveChanges.vue","webpack:///./assets/components/SaveChanges.vue","webpack:///./assets/components/OrderTypeEdit.vue?986e","webpack:///assets/components/OrderTypeEdit.vue","webpack:///./assets/components/OrderTypeEdit.vue?8678","webpack:///./assets/components/OrderTypeEdit.vue","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./assets/components/SubmitToVendor.vue?97d0","webpack:///./assets/components/SubmitToVendor.vue?c3d0","webpack:///assets/components/SubmitToVendor.vue","webpack:///./assets/components/SubmitToVendor.vue","webpack:///./assets/components/ConfirmToPurchaser.vue?9074","webpack:///./assets/components/ConfirmToPurchaser.vue?9f5d","webpack:///assets/components/ConfirmToPurchaser.vue","webpack:///./assets/components/ConfirmToPurchaser.vue","webpack:///./assets/components/DeleteBid.vue?3231","webpack:///./assets/components/DeleteBid.vue?f805","webpack:///assets/components/DeleteBid.vue","webpack:///./assets/components/DeleteBid.vue","webpack:///./assets/components/UploadToCrunchTime.vue?3525","webpack:///./assets/components/UploadToCrunchTime.vue?c6ec","webpack:///assets/components/UploadToCrunchTime.vue","webpack:///./assets/components/UploadToCrunchTime.vue","webpack:///./assets/components/ResendToCrunchTime.vue?6a28","webpack:///./assets/components/ResendToCrunchTime.vue?8202","webpack:///assets/components/ResendToCrunchTime.vue","webpack:///./assets/components/ResendToCrunchTime.vue","webpack:///./assets/components/MarkAsDeleted.vue?cb21","webpack:///./assets/components/MarkAsDeleted.vue?93fd","webpack:///assets/components/MarkAsDeleted.vue","webpack:///./assets/components/MarkAsDeleted.vue","webpack:///./assets/components/CancelPoItems.vue?972d","webpack:///./assets/components/CancelPoItems.vue?db2f","webpack:///assets/components/CancelPoItems.vue","webpack:///./assets/components/CancelPoItems.vue","webpack:///./assets/components/UnCancelPoItems.vue?f3e6","webpack:///./assets/components/UnCancelPoItems.vue?76e7","webpack:///assets/components/UnCancelPoItems.vue","webpack:///./assets/components/UnCancelPoItems.vue","webpack:///./assets/components/ConfirmPo.vue?e5d5","webpack:///./assets/components/ConfirmPo.vue?4a2a","webpack:///assets/components/ConfirmPo.vue","webpack:///./assets/components/ConfirmPo.vue","webpack:///./assets/components/ConsolidatePo.vue?f8b9","webpack:///./assets/components/ConsolidatePo.vue?77e6","webpack:///assets/components/ConsolidatePo.vue","webpack:///./assets/components/ConsolidatePo.vue","webpack:///./assets/components/InvoiceCompletePo.vue?c2f9","webpack:///./assets/components/InvoiceCompletePo.vue?9fc1","webpack:///assets/components/InvoiceCompletePo.vue","webpack:///./assets/components/InvoiceCompletePo.vue","webpack:///./assets/components/OpenedPo.vue?c298","webpack:///./assets/components/OpenedPo.vue?c617","webpack:///assets/components/OpenedPo.vue","webpack:///./assets/components/OpenedPo.vue","webpack:///./assets/components/CanceledPo.vue?5d07","webpack:///./assets/components/CanceledPo.vue?5f04","webpack:///assets/components/CanceledPo.vue","webpack:///./assets/components/CanceledPo.vue","webpack:///./assets/components/OpenedPoDownloads.vue?5400","webpack:///./assets/components/OpenedPoDownloads.vue?82af","webpack:///assets/components/OpenedPoDownloads.vue","webpack:///./assets/components/OpenedPoDownloads.vue","webpack:///./assets/components/CanceledPoDownloads.vue?9d6d","webpack:///./assets/components/CanceledPoDownloads.vue?781d","webpack:///assets/components/CanceledPoDownloads.vue","webpack:///./assets/components/CanceledPoDownloads.vue","webpack:///./assets/components/ResubmittedPoDownloads.vue?d81a","webpack:///./assets/components/ResubmittedPoDownloads.vue?65df","webpack:///assets/components/ResubmittedPoDownloads.vue","webpack:///./assets/components/ResubmittedPoDownloads.vue","webpack:///./assets/js/main.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./assets/js/consolidator-overview.js","webpack:///./assets/js/vendor.js","webpack:///./assets/js/vendor-settings-header.js","webpack:///./assets/js/single-bid.js","webpack:///./assets/js/po-overview.js","webpack:///./assets/js/po-details.js","webpack:///./assets/js/po-downloads.js","webpack:///./assets/js/order-type-create.js","webpack:///assets/components/ConsolidatorEdit.vue","webpack:///./assets/components/ConsolidatorEdit.vue?549b","webpack:///./assets/components/ConsolidatorEdit.vue","webpack:///./assets/components/ConsolidatorEdit.vue?8b79","webpack:///./assets/js/consolidator-edit.js","webpack:///./assets/components/BulkDeleteBids.vue?faef","webpack:///assets/components/BulkDeleteBids.vue","webpack:///./assets/components/BulkDeleteBids.vue","webpack:///./assets/components/BulkDeleteBids.vue?fae7","webpack:///./assets/js/bid-overview.js","webpack:///./assets/components/DeleteOrderType.vue?efac","webpack:///assets/components/DeleteOrderType.vue","webpack:///./assets/components/DeleteOrderType.vue","webpack:///./assets/components/DeleteOrderType.vue?f22a","webpack:///./assets/js/order-type-edit.js","webpack:///./assets/components/NewPoEmail.vue?8a63","webpack:///./assets/components/NewPoEmail.vue?b33f","webpack:///assets/components/NewPoEmail.vue","webpack:///./assets/components/NewPoEmail.vue","webpack:///./assets/js/settings-emails.js","webpack:///assets/components/BeiladerlisteSchedulerAdd.vue","webpack:///./assets/components/BeiladerlisteSchedulerAdd.vue?997e","webpack:///./assets/components/BeiladerlisteSchedulerAdd.vue","webpack:///./assets/components/BeiladerlisteSchedulerAdd.vue?38af","webpack:///./assets/js/beiladerliste-scheduler.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","toString","getPrototypeOf","kindOf","cache","thing","str","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","obj","fn","allOwnKeys","length","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","toUpperCase","isBuffer","constructor","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","arguments","extend","a","b","thisArg","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","undefined","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","append","toJSONObject","stack","visit","source","target","reducedValue","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","AxiosError","message","code","config","request","response","captureStackTrace","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","component","_vm","_h","$createElement","_c","_self","attrs","_l","staticClass","_m","_v","_s","factory","configurable","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","find","query","register","Container","default","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","extendStatics","__extends","setPrototypeOf","__proto__","__","ParchmentError","_super","_this","attributes","classes","tags","types","scope","match","ANY","Node","TEXT_NODE","LEVEL","BLOCK","INLINE","HTMLElement","names","getAttribute","tagName","TYPE","DATA_KEY","input","BlotClass","node","bubble","blot","parentNode","Definitions","_i","map","Definition","blotName","attrName","keyName","className","tagNames","tag","diff","equal","op","NULL_CHARACTER","fromCharCode","Delta","ops","insert","text","newOp","retain","index","lastOp","unshift","splice","chop","pop","predicate","partition","passed","failed","reduce","initial","changeLength","elem","delete","start","end","Infinity","iter","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","delta","min","thisOp","otherOp","rest","strings","join","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","line","transform","priority","transformPosition","offset","nextType","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copy","copyIsArray","clone","deep","BlockEmbed","bubbleFormats","_createClass","Constructor","protoProps","staticProps","_get","receiver","Function","desc","_extend2","_interopRequireDefault","_quillDelta2","_parchment2","_break2","_inline2","_text2","_classCallCheck","instance","TypeError","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","_Parchment$Embed","apply","domNode","formats","values","attribute","BLOCK_ATTRIBUTE","format","def","block","insertBefore","insertAt","BLOCK_BLOT","_Parchment$Block","_this2","descendants","leaf","lines","shift","children","tail","ref","head","remove","child","force","statics","defaultChild","allowedChildren","overload","expandConfig","_typeof","_slicedToArray","_arr","_n","_d","_e","err","sliceIterator","_editor2","_emitter4","_module2","_selection","_selection2","_logger2","_theme2","_defineProperty","debug","Quill","container","html","innerHTML","classList","__quill","root","addContainer","setAttribute","scrollingContainer","emitter","scroll","whitelist","editor","selection","theme","keyboard","addModule","clipboard","history","init","on","events","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","contents","convert","setContents","clear","placeholder","readOnly","disable","limit","level","imports","path","overwrite","warn","startsWith","refNode","document","createElement","setRange","_this3","_overload","_overload2","deleteText","enable","enabled","scrollTop","focus","scrollIntoView","_this4","sources","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","height","left","right","width","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","contains","off","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","import","themeConfig","moduleConfig","moduleClass","toolbar","querySelector","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","args","emit","_map","pos","_map2","_map3","max","_map4","version","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","order","otherIndex","_parchment","TextBlot","_Parchment$Text","_eventemitter2","eventName","addEventListener","_len","querySelectorAll","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","log","event","_len2","_key2","_ref","handler","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","method","_console","console","namespace","logger","newLevel","pSlice","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","isUndefinedOrNull","ka","kb","e","sort","objEquiv","x","attributeBit","ATTRIBUTE","item","canAdd","removeAttribute","Code","_block2","_Inline","CodeBlock","_Block","textContent","frag","_descendant","descendant","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","reverse","lastIndexOf","appendChild","prev","optimize","removeChild","unwrap","TAB","_op2","_code2","_cursor2","_block","_clone2","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","image","list","bullet","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","data","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","_toConsumableArray","arr2","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","setTimeout","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","body","_format","nativeRange","collapsed","after","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","side","rect","rangeCount","getRangeAt","normalizeNative","info","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","last","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","oldRange","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","build","makeBlot","forEachAt","criteria","_a","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Set","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","proto","resolve","reject","then","__isArray","__isRegExp","RegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","propertyName","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill2","test","navigator","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","userAgent","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","binding","normalize","which","keyCode","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","every","preventDefault","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLine11","_quill$getLine13","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine17","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","parseInt","sanitize","_inline","Link","url","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","href","protocol","_keyboard2","_dropdown2","optionsCounter","toggleAriaAttribute","element","Picker","select","buildPicker","style","display","label","togglePicker","escape","option","tabIndex","hasAttribute","selectItem","id","buildItem","selected","buildLabel","buildOptions","close","trigger","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed2","_scroll2","_clipboard2","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","camelize","parts","part","StyleAttributor","Theme","themes","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","dest","changeDelta","undoDelta","timestamp","now","delay","maxStack","deleteLength","changeIndex","endsWithNewlineChange","BaseTooltip","_colorPicker2","_iconPicker2","_picker2","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","listener","removeEventListener","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","button","selects","fillSelect","align","handlers","formula","edit","fileInput","files","reader","FileReader","onload","readAsDataURL","click","video","_Tooltip","boundsContainer","save","cancel","preview","linkRange","restoreFocus","LinkedList","nodes","cur","curNode","ret","callback","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","InlineBlot","obj1","obj2","isEqual","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","token","subjectString","floor","execCommand","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","substring","diff_commonSuffix","commonsuffix","diffs","longtext","shorttext","hm","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","j","best_common","prefixLength","text1_a","text1_b","text2_a","text2_b","hm1","ceil","hm2","mid_common","diff_halfMatch_","diffs_a","diffs_b","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","y1","x1","charAt","k2_offset","x2","diff_bisectSplit_","k2","y2","diff_bisect_","diff_compute_","diff_cleanupMerge","pointer","count_delete","count_insert","text_delete","text_insert","changes","norm","current_pos","next_pos","split_pos","d_left","d_right","cursor_normalize_diff","ndiffs","cursor_pointer","d_next","merge_tuples","fix_cursor","compact","starts_with_pair_end","fixed_diffs","fix_emoji","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","has","Events","EE","EventEmitter","_events","_eventsCount","eventNames","exists","available","ee","a1","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","deltaEndsWith","ELEMENT_NODE","fontStyle","computeStyle","italic","fontWeight","bold","applyFormat","parseFloat","textIndent","matchAlias","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matcher","matchVisual","addMatcher","innerText","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","nodeType","childrenDelta","paste","_pair","getComputedStyle","endText","nextElementSibling","nodeHeight","offsetHeight","marginTop","marginBottom","offsetTop","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_quill$selection$getR","prompt","addButton","groups","group","control","addSelect","clean","direction","link","_picker","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link2","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core2","_indent","_blockquote2","_header2","_list","_list2","_bold2","_italic2","_script2","_strike2","_underline2","_image2","_video2","_code","_formula2","_syntax2","_toolbar2","_bubble2","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","_bold","Italic","_Bold","Script","Strike","Underline","_link","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","clearTimeout","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","utils","hashmarkIndex","fulfilled","rejected","synchronous","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","URLSearchParams","Blob","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","formData","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","DEFAULT_CONTENT_TYPE","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","JSON","stringify","setContentType","visitor","helpers","isNode","defaultVisitor","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","parseHeaders","tokens","tokensRE","parseTokens","deleteHeader","w","char","formatHeader","targets","asStrings","computed","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","accessor","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","host","search","hash","hostname","port","pathname","location","requestURL","samplesCount","bytes","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","round","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","XMLHttpRequest","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","signal","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","cookies","setRequestHeader","onDownloadProgress","onUploadProgress","upload","abort","subscribe","aborted","parseProtocol","send","knownAdapters","http","xhr","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","formatMessage","opt","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","instanceConfig","interceptors","configOrUrl","contextHeaders","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Axios","CancelToken","VERSION","Cancel","all","promises","spread","isAxiosError","payload","AxiosHeaders","formToJSON","class","sorterIconClass","staticStyle","$event","items","itemsProp","limitProp","page","pageProp","showingCount","showingCountProp","showingToCount","showingToCountProp","totalItemsCount","totalItemsCountProp","methods","changePage","$emit","previousPages","nextPages","lastPages","pagesLimit","totalItemsCountComputed","showingCountComputed","limitToItems","showingToCountComputed","watch","paginationInfo","newData","newVal","disabled","directives","rawName","includes","expression","previousPageNumber","nextPageNumber","lastPageNumber","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","useBlob","convertValue","toISOString","isFlatArray","el","exposedHelpers","g","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","fromString","checked","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","defaultToolbar","color","background","oldApi","customModules","registerCustomModules","customModule","alias","_defineProperties","_getPrototypeOf","_setPrototypeOf","_assertThisInitialized","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","HorizontalRule","MarkdownShortcuts","ignoreTags","pattern","action","_text","lineStart","annotatedText","matchedText","startIndex","strike","_pattern","hrefLink","hrefText","_oldContents","_source","onSpace","onEnter","_this$quill$getLine2","isValid","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","_this$quill$getLine4","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","script","mixins","Boolean","editorToolbar","editorOptions","required","useCustomImageHandler","useMarkdownShortcuts","mounted","registerPrototypes","initializeEditor","beforeDestroy","setupQuillEditor","checkForCustomImageHandler","handleInitialContent","registerEditorEventListeners","editorConfig","setModules","prepareEditorConfig","$refs","quillContainer","mergeDeep","targetValue","sourceValue","getHTML","getWordCount","handleTextChange","handleSelectionChange","listenForEditorEvent","oldContents","editorContent","handleImageRemoved","operation","setupCustomImageHandler","getModule","customImageHandler","emitImageInfo","file","cursorLocation","getElementById","HEAD","normalizeComponent_1","template","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","isOldIE","VueEditor","_t","inject","media","css","ids","getElementsByTagName","styleSheet","cssText","addStyle","VPlugin","install","Vue","installed","GlobalVue","use","confirm","isDirty","orderType","domProps","$set","emailsTo","email","emailsCC","addAttachments","attachment","originalName","removeAttachment","customToolbar","model","$$v","noGlobal","getProto","flat","class2type","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","doc","toType","jQuery","isArrayLike","jquery","num","pushStack","elems","prevObject","each","eq","even","grep","_elem","odd","expando","isReady","msg","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","callbackExpect","guid","Sizzle","Expr","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","nodeName","els","nid","newSelector","newContext","ownerDocument","getElementsByClassName","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespaceURI","documentElement","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tmp","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","adown","bup","sortDetached","aup","ap","bp","expr","elements","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","idx","matched","unmatched","lang","elemLang","_matchIndexes","radio","checkbox","submit","reset","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","sibling","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","noValue","fail","Callbacks","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","stopOnFalse","lock","fireWith","Deferred","func","tuples","state","always","deferred","newDefer","tuple","returned","notify","onProgress","maxDepth","special","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","readyException","readyList","completed","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","noCloneChecked","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","attached","fragment","htmlPrefilter","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","one","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","originalEvent","load","noBubble","beforeunload","returnValue","isDefaultPrevented","relatedTarget","timeStamp","isSimulated","bubbles","cancelable","changedTouches","detail","eventPhase","pageX","pageY","view","charCode","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","prepend","before","appendTo","prependTo","insertAfter","replaceAll","original","rnumnonpx","getStyles","opener","old","rboxStyle","curCSS","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","computedVal","extra","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","scrollboxSizeBuggy","margin","padding","border","expand","expanded","propHooks","run","percent","eased","duration","step","fx","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","complete","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","time","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","isLocal","processData","async","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","getResponseHeader","overrideMimeType","mimeType","finalText","crossDomain","hasContent","ifModified","beforeSend","success","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","visible","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","xhrFields","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","$","noConflict","timeoutDuration","longerTimeoutBrowsers","debounce","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","getRoot","findCommonOffsetParent","element1","element2","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","includeScroll","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","_extends","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","ends","findIndex","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","divider","splitRegex","mergeWithPrevious","toValue","index2","Defaults","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","primary","escapeWithReference","secondary","keepTogether","opSide","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","Utils","PopperUtils","canConfirm","deleteLink","canUploadToCt","po","poCode","isFilled","isUnblocked","modal","confirmReceipt","abortReceipt","confirmCancelation","abortCancelation","confirmResubmit","require","emptyObject","freeze","isUndef","isDef","isTrue","isPrimitive","_toString","isValidArrayIndex","isPromise","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","camelizeRE","capitalize","hyphenateRE","hyphenate","ctx","boundFn","_from","toObject","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","looseIndexOf","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","weexPlatform","UA","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","ownKeys","Dep","subs","addSub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","childOb","dependArray","del","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","provide","defaultStrat","mergeOptions","normalizeProps","normalizeInject","dirs","def$$1","normalizeDirectives","extends","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","_props","getType","getPropDefaultValue","prevShouldObserve","isSameType","expectedTypes","handleError","$parent","errorCaptured","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","setImmediate","nextTick","cb","seenObjects","_traverse","seen","isA","isFrozen","depId","normalizeEvent","once$$1","capture","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","checkProp","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","isTextNode","_isVList","resolveInject","provideKey","_provided","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","$slots","resolveFilter","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","renderStatic","isInFor","_staticTrees","tree","markStatic","_renderProxy","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_q","_f","_k","_b","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","injections","scopedSlots","cloneAndMarkFunctionalResult","renderContext","mergeProps","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","inlineTemplate","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","_vnode","$attrs","$listeners","propKeys","_propKeys","oldListeners","_parentListeners","updateComponentListeners","$forceUpdate","updateChildComponent","_isMounted","callHook","_inactive","activatedChildren","activateChildComponent","deactivateChildComponent","direct","_directInactive","isInInactiveTree","$children","$destroy","hooksToMerge","createComponent","baseCtor","cid","errorComp","resolved","currentRenderingInstance","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","ensureCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","extractPropsFromVNodeData","vnodes","createFunctionalComponent","nativeOn","abstract","toMerge","_merged","mergeHook$1","installComponentHooks","f1","f2","normalizationType","alwaysNormalize","simpleNormalizeChildren","pre","applyNS","registerDeepBindings","_createElement","comp","getFirstComponentChild","remove$1","$off","_target","onceHandler","setActiveInstance","prevActiveInstance","_hasHookEvent","waiting","flushing","currentFlushTimestamp","getNow","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","_watcher","callUpdatedHooks","uid$2","Watcher","expOrFn","isRenderWatcher","_watchers","user","lazy","dirty","deps","newDeps","depIds","newDepIds","segments","parsePath","cleanupDeps","queueWatcher","evaluate","_isBeingDestroyed","sharedPropertyDefinition","sourceKey","initState","propsOptions","initProps","initMethods","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","$watch","uid$3","super","superOptions","modifiedOptions","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","components","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps$1","initComputed$1","mixin","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","_uid","vnodeComponentOptions","_componentTag","initInternalComponent","initLifecycle","initEvents","parentData","initRender","initInjections","initProvide","initMixin","dataDef","propsDef","$delete","immediate","stateMixin","hookRE","$once","i$1","cbs","eventsMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","lifecycleMixin","$nextTick","_render","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","created","destroyed","configDef","util","defineReactive","observable","plugin","installedPlugins","_installedPlugins","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","mergeClassData","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","multiple","createElementNS","newNode","setTextContent","setStyleScope","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","getRawDirName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","convertEnumeratedValue","setAttributeNS","__ieph","blocker","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","chr","index$1","expressionPos","expressionEndPos","klass","validDivisionCharRE","parseFilters","exp","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","pluckModuleFunction","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","important","middle","nativeEvents","newHandler","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","valueExpression","assignment","genAssignmentCode","eof","isStringStart","parseString","parseBracket","parseModel","inBracket","stringQuote","target$1","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","normalizeEvents","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","notInFocus","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","bindingStyle","cssVarRE","importantRE","setProp","normalizedName","vendorNames","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","whitespaceRE","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","oldElm","patchable","i$2","createPatchFunction","vmodel","directive","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","hasNoMatchingOption","actuallySetSelected","isMultiple","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","applyTranslation","oldPos","dx","dy","moved","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","_reflow","_hasMove","HTMLUnknownElement","updateComponent","mountComponent","defaultTagRE","regexEscapeRE","buildRegex","delimiters","klass$1","staticKeys","transformNode","classBinding","genData","decoder","style$1","styleBinding","he","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","warn$2","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE$1","decodeHTMLCached","createASTElement","makeAttrsMap","rawAttrsMap","isPreTag","currentParent","preserveWhitespace","whitespaceOption","inPre","closeElement","trimEndingWhitespace","processed","processElement","if","elseif","else","addIfCondition","forbidden","findPrevElement","slotScope","slotTarget","lastNode","lastTag","expectHTML","isUnaryTag$$1","canBeLeftOpenTag$$1","endTagLength","stackedTag","reStackedTag","rest$1","chars","parseEndTag","textEnd","commentEnd","shouldKeepComment","advance","conditionalEnd","doctypeMatch","endTagMatch","startTagMatch","parseStartTag","handleStartTag","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","comments","outputSourceRange","start$1","ieNSBug","ieNSPrefix","guardIESVGBug","processPre","processRawAttrs","processFor","processIf","processOnce","end$1","tagRE","tokenValue","rawTokens","parseText","processKey","for","checkInFor","processRef","slotTargetDynamic","getRawBindingAttr","slotBinding","getSlotName","slotBinding$1","ref$1","dynamic$1","slotContainer","processSlotContent","slotName","processComponent","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","processAttrs","inMatch","iteratorMatch","iterator1","iterator2","parseFor","condition","ifConditions","cloneASTElement","modules$1","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","_warn","genSelect","valueBinding","trueValueBinding","falseValueBinding","genCheckboxModel","genRadioModel","needCompositionGuard","genDefaultModel","genStaticKeys","genStaticKeysCached","markStatic$1","static","isDirectChildOfTemplateFor","l$1","markStaticRoots","staticInFor","staticRoot","fnExpRE","fnInvokeRE","simplePathRE","esc","tab","space","up","down","keyNames","genGuard","modifierCode","prevent","ctrl","alt","meta","genHandlers","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","keyModifier","genFilterCode","genKeyFilter","keyVal","baseDirectives","wrapListeners","wrapData","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genChildren","genProps","bind$$1","genSlot","componentName","genData$2","genComponent","originalPreState","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","needRuntime","hasRuntime","gen","genDirectives","containsSlotChild","needsKey","generatedSlots","genScopedSlot","inlineRenderFns","genInlineTemplate","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","el$1","normalizationType$1","needsNormalization","getNormalizationType","genNode","genComment","transformSpecialNewlines","genText","dynamicProps","createFunction","errors","createCompileToFunctionFn","fnGenErrors","baseCompile","finalOptions","tips","tip","compileToFunctions","getShouldDecode","idToTemplate","mount","outerHTML","getOuterHTML","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessage","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","title","browser","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","enumerableOnly","sym","_objectSpread2","transitionEndEmulator","Util","TRANSITION_END","triggerTransitionEnd","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","isElement","typeCheckConfig","configTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","emulateTransitionEnd","NAME","JQUERY_NO_CONFLICT","Alert","_element","_proto","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","JQUERY_NO_CONFLICT$1","Button","triggerChangeEvent","addAriaPressed","initialButton","inputBtn","_button","NAME$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","slide","pause","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","visibilityState","activeIndex","_getItemIndex","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","defaultInterval","CLASS_NAME_ACTIVE$1","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","NAME$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","Default$2","boundary","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","EVENT_CLICK_DATA_API$4","JQUERY_NO_CONFLICT$5","Default$3","backdrop","DefaultType$3","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","modalTransitionDuration","modalBody","_enforceFocus","shownEvent","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","uriAttrs","DefaultWhitelist","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","small","span","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrRegex","allowedAttribute","NAME$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","fallbackPlacement","AttachmentMap","AUTO","TOP","BOTTOM","Default$4","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","_isEnabled","_timeout","_hoverState","_activeTrigger","_setListeners","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","isInTheDom","tipId","setContent","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE$2","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","initConfigAnimation","NAME$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Event$1","Popover","_getContent","CLASS_PREFIX$1","CLASS_NAME_FADE$3","NAME$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","SELECTOR_NAV_LINKS","scrollSpys","$spy","JQUERY_NO_CONFLICT$9","Tab","previous","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","JQUERY_NO_CONFLICT$a","DefaultType$7","autohide","Default$7","Toast","_close","Scrollspy","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","appConsolidatorOverview","consolidators","filterConsolidatorName","filterConsolidatorCode","consolidatorJson","dataset","consolidatorsFiltered","filtered","appVendorTable","vendors","uploadedFiles","isFilesLoaded","isSubmitInProgress","btnSave","filterVendorName","filterVendorCode","spinner","spinnerMount","addVendor","emailArray","removeVendor","vendor","email_cc","removeInvalidEmails","email_reply_to","email_to","post","alert","emailsArray","addAttachment","vendorIndex","vendorId","uploadedAttachments","uploadedAttachment","loadVendors","attachmentId","addDefaultAttachment","uploadedFile","loadUploadedFiles","removeDefaultAttachment","vendorsFiltered","appVendorSyncButton","SyncDataIsLoading","btnSync","syncWithCT","Sync","reload","ConfirmToPurchaser","SubmitToVendor","DeleteBid","UploadToCrunchTime","ResendToCrunchTime","SaveChanges","Sorter","Pagination","MarkAsDeleted","VueFlashbag","appBidDetails","bid","bidErrors","showAdditionalColumns","attachments","generalComment","isShowOnlyErrors","isConfirmInProgress","selectedPos","productNumber","productName","vendorProductNumber","vendorProductName","added","sorters","manualOverride","currentSorter","currentSorterManualOverrideType","manualOverrideEnum","newItem","newItemErrors","downloadTimeout","bidJson","emailTo","emailCc","emailReplyTo","generateNewItem","runValidation","addNewSecondaryProduct","indexFiltered","inventoryUnit","isSecondaryProduct","removeNewSecondaryProduct","errorsForNewItem","fieldName","checkFieldIsBlank","getNewItemFieldError","toggleColumnsVisibility","addEmail","removeEmail","attachmentUploadSuccess","attachmentError","attachmentFinally","errorMessage","bidAttachmentId","bidAttachment","attachmentRemoveSuccess","onChanged","onChangeIsDiscontinued","isDiscontinued","runValidationSuccess","runValidationError","runValidationFinally","getItemFieldError","hasItemError","saveSuccess","saveError","saveFinally","markAsDeleted","isDeleted","submitSuccess","submitError","submitFinally","assignedToEmail","assignSuccess","assignError","assignFinally","uploadToCt","startXLSXDownload","setCookie","checkDownloadCookie","expiracy","exdate","setTime","c_value","toUTCString","getCookie","ARRcookies","decodeURI","updateViaFilledBS","updateViaFilledBs","updateViaFilledBSSuccess","updateViaFilledBSError","updateViaFilledBSFinally","changeConversion","conversion","changeBidPrice","bidPrice","changeReferenceLine","referenceLine","isAdded","isItemFreshAdded","addLineItem","sortByFilter","sorter","manualOverrideType","onFilterInput","onFilterSelect","keyOtherwise","mapManualOverrideForItem","sortByAdded","addValue","deleteValue","changedItem","mapFilterNameOnPropertyName","filterName","getFilteredItemsByFilters","itemPropertyName","sendBidLink","getBidError","selectAllPos","filteredItems","itemsToShow","sorting","field","sortedField","hasToOrCcEmail","canEditEmails","submittedAtTimestamp","canShowCtStatuses","isFiltered","vendorName","vendorCode","primShippingType","vesselName","boardingDateFrom","boardingDateTo","deliveryDateFrom","deliveryDateTo","poStatus","arePosLoading","isProcessing","boardingDate","deliveryDate","weight","orderBy","orderDir","formatNumberToGerman","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","fetchPos","poFilters","downloadOverview","filename","URL","createObjectURL","revokeObjectURL","updateSorters","toFixed","decimalNumber","parsedValue","singlePricesDecimal","newPage","oldPage","CancelPoItems","UnCancelPoItems","ConfirmPo","ConsolidatePo","InvoiceCompletePo","OpenedPO","CanceledPO","STATUS_CANCELED","STATUS_CONFIRMED","STATUS_READY_FOR_CONSOLIDATION","STATUS_READY_FOR_INVOICE","STATUS_CLOSED","countDecimals","valueOf","appPoDetails","poErrors","hasBeenSavedOnce","flashbag","availableDeposits","availableSubstitutions","busyItems","substitutedItems","busyItemsDeposit","filterCPN","filterVPN","filterProductName","totalPricesDecimal","LoadErrorCounterDeposits","LoadErrorCounterSubstitutes","poJson","uName","getAvailableSubstitutions","getAvailableDeposits","setTakenSubstitutionsAndDepositsItems","setCancelItems","checkIfHasBeenSavedOnceAndIsFilledCompletly","isConfirmation","confirmedQuantity","confirmedPrice","isConsolidation","consolidationQuantity","isInvoicing","invoiceQuantity","invoicePrice","addSubstAndDeposit","substitutedProductVendorProductNumber","customerProductNumber","vendor_product_number","isItemTaken","SubstOrDeposit","product_name_number","onChangedHeader","onChangedWithoutValidation","depositCustomerProductNumber","getItemError","updateViaFilledXlsx","updateViaFilledXlsxSuccess","updateViaFilledXlsxError","updateViaFilledXlsxFinally","copyToConfirmed","quantity","unitPrice","copyToConfirmedForAll","copyToConfirmedAll","copyToConsolidated","copyToConsolidatedForAll","copyToConsolidatedAll","copyToInvoiced","copyToInvoicedForAll","copyToInvoicedAll","cancelItems","cancelItem","unCancelItems","unCancelItem","canceled","isPastInvoicing","isPastConfirmation","triggerShowErrors","consolidate","isComplete","completeInvoice","invoiceNumber","invoiceDate","addDeposit","indexLoop","isDeposit","addTime","chooseDeposit","selectedDeposit","product_name","vendor_package_type","bid_price","category","subCategory","microCategory","addSubstitution","isSubstituted","isSubstitution","removeRow","indexToDeleteInPoItems","chooseSubstitution","selectedSubstitution","vendor_product_name","allowsDeposit","getAvailableDepositsError","getAvailableDepositsSuccess","getAvailableDepositsFinally","deposits","deposit","allowsSubstitution","getAvailableSubstitutionsSuccess","getAvailableSubstitutionsError","getAvailableSubstitutionsFinally","substitutions","substitution","singleSubstitution","getCpnVpn","getCpnVpnSubst","isCanceled","isCanceledComplete","isSubstitutionOrDepositFirstItem","isSubstitutionOrDepositLastItem","confirmedTotal","totalCountDigigts","totalString","toPrecision","invoiceTotal","sendPoLink","showCancelButtonOnConfirmReceiptModal","supplyMethod","isShipTypeRE","shipType","isReceiptPopup","showModal","isCancelationPopup","mistralStatus","isPastConsolidation","itemsOrderedTotal","itemsOrderedTotalFiltered","itemsConfirmedTotal","totalTemp","itemsConfirmedTotalFiltered","itemsInvoicedTotal","itemsInvoicedTotalFiltered","canConsolidate","canCompleteInvoice","summary","ResubmittedPO","filesToShow","poAttachments","decimalPlaces","startDownload","resubmitted","isResubmitPopup","resubmittedConfirmed","OrderTypeEdit","vueOrderTypeEdit","orderTypeSettings","$data","isSpinner","consolidator","initEmptyConsolidator","consolidatorId","consolidatorName","loadData","loadDataSuccess","loadDataError","flash","loadDataFinally","consolidatorAttachments","resetFileInput","consolidatorAttachment","ConsolidatorEdit","appConsolidatorEdit","bids","BulkDeleteBids","BID_STATUS_ENUM","bidName","market","effectiveDateFrom","effectiveDateTo","usageFrom","usageTo","bidStatus","selectedBids","areBidsLoading","effectiveDate","fetchBids","bidFilters","bulkSubmit","bulkSubmitSuccess","bulkSubmitError","bulkSubmitFinally","canSubmit","NEW","CONFIRMED","selectAllBids","submittableBids","DeleteOrderType","emailBody","NewPoEmail","poEmail","changeContent","addConsolidator","subject","emails","timeOfDay","choices","weekdays","beiladerlisteScheduler","fetchConsolidators","editSchedule","weekDays","$$selectedVal","choice","$$a","$$el","$$c","$$i","BeiladerlisteSchedulerAdd","vueBeiladerListeAdd"],"mappings":"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","file":"/dist/js/main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"vue-flashbag-container\"}},[_vm._l((_vm.success),function(message){return _c('div',{staticClass:\"alert alert-success alert-dismissible\"},[_vm._m(0,true),_vm._v(\"\\n \"+_vm._s(message)+\"\\n \")])}),_vm._v(\" \"),_vm._l((_vm.error),function(message){return _c('div',{staticClass:\"alert alert-danger alert-dismissible\"},[_vm._m(1,true),_vm._v(\"\\n \"+_vm._s(message)+\"\\n \")])}),_vm._v(\" \"),_vm._l((_vm.info),function(message){return _c('div',{staticClass:\"alert alert-info alert-dismissible\"},[_vm._m(2,true),_vm._v(\"\\n \"+_vm._s(message)+\"\\n \")])})],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueFlashbag.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueFlashbag.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./VueFlashbag.vue?vue&type=template&id=492e3762&\"\nimport script from \"./VueFlashbag.vue?vue&type=script&lang=js&\"\nexport * from \"./VueFlashbag.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.4\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n mergeConfig\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('i',{staticClass:\"fas\",class:_vm.sorterIconClass,staticStyle:{\"font-size\":\"small\"},on:{\"click\":function($event){return _vm.toggle()}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sorter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sorter.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./Sorter.vue?vue&type=template&id=2b86d214&\"\nimport script from \"./Sorter.vue?vue&type=script&lang=js&\"\nexport * from \"./Sorter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pagination.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=2cf96140&scoped=true&\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js&\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2cf96140\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.items)?_c('div',{staticClass:\"row\",staticStyle:{\"margin\":\"10px\"}},[_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"count-of-items-pagination\"},[_vm._v(\"\\n Showing \"),_c('span',[_vm._v(_vm._s(_vm.showingCountComputed))]),_vm._v(\" to \"),_c('span',[_vm._v(_vm._s(_vm.showingToCountComputed))]),_vm._v(\" of \"),_c('span',[_vm._v(_vm._s(_vm.totalItemsCountComputed))])])]),_vm._v(\" \"),_c('div',{staticClass:\"col-6\"},[_c('nav',{staticClass:\"pagination\",attrs:{\"aria-label\":\"Pagination\"}},[_c('ul',{staticClass:\"pagination\"},[_c('li',{staticClass:\"page-item\",class:{disabled: _vm.page === 1}},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(--_vm.page)}}},[_c('i',{staticClass:\"fas fa-angle-double-left\"}),_vm._v(\" Previous\")])]),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.lastPages.includes(_vm.page - _vm.lastPages.length) && _vm.page !== 1 && _vm.pagesLimit !== 2),expression:\"!lastPages.includes(page - lastPages.length) && page !== 1 && pagesLimit !== 2\"}],staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(1)}}},[_vm._v(\"1\")])]),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pagesLimit > 1 && _vm.previousPages.includes(_vm.page - 2) && _vm.page !== 1 && _vm.page !== 2 && _vm.page !== 3 && _vm.page !== 4),expression:\"pagesLimit > 1 && previousPages.includes(page - 2) && page !== 1 && page !== 2 && page !== 3 && page !== 4\"}],staticClass:\"page-item disabled\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"...\")])]),_vm._v(\" \"),_vm._l((_vm.previousPages),function(previousPageNumber){return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.lastPages.includes(previousPageNumber)),expression:\"!lastPages.includes(previousPageNumber)\"}],staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(previousPageNumber)}}},[_vm._v(_vm._s(previousPageNumber))])])}),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.lastPages.includes(_vm.page)),expression:\"!lastPages.includes(page)\"}],staticClass:\"page-item active disabled\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(_vm._s(_vm.page))])]),_vm._v(\" \"),_vm._l((_vm.nextPages),function(nextPageNumber){return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.lastPages.includes(nextPageNumber - 1)),expression:\"!lastPages.includes(nextPageNumber - 1)\"}],staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(nextPageNumber)}}},[_vm._v(_vm._s(nextPageNumber))])])}),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pagesLimit > 1 && !_vm.lastPages.includes(_vm.page + _vm.nextPages.length) && _vm.page !== (_vm.pagesLimit - 1) && _vm.page !== _vm.pagesLimit),expression:\"pagesLimit > 1 && !lastPages.includes(page + nextPages.length) && page !== (pagesLimit - 1) && page !== pagesLimit\"}],staticClass:\"page-item disabled\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"}},[_vm._v(\"...\")])]),_vm._v(\" \"),_vm._l((_vm.lastPages),function(lastPageNumber){return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.lastPages.includes(_vm.page)),expression:\"lastPages.includes(page)\"}],staticClass:\"page-item\",class:[lastPageNumber === _vm.page ? 'active disabled' : '']},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(lastPageNumber)}}},[_vm._v(_vm._s(lastPageNumber))])])}),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.lastPages.includes(_vm.page)),expression:\"!lastPages.includes(page)\"}],staticClass:\"page-item\"},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(_vm.pagesLimit)}}},[_vm._v(_vm._s(_vm.pagesLimit))])]),_vm._v(\" \"),_c('li',{staticClass:\"page-item\",class:{disabled: _vm.page >= _vm.pagesLimit}},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.changePage(++_vm.page)}}},[_vm._v(\"Next \"),_c('i',{staticClass:\"fas fa-angle-double-right\"})])])],2)])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","// eslint-disable-next-line strict\nexport default null;\n","/*!\n * vue2-editor v2.10.2 \n * (c) 2019 David Royer\n * Released under the MIT License.\n */\nimport Quill from 'quill';\nexport { default as Quill } from 'quill';\n\nvar defaultToolbar = [[{\n header: [false, 1, 2, 3, 4, 5, 6]\n}], [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\n[{\n align: \"\"\n}, {\n align: \"center\"\n}, {\n align: \"right\"\n}, {\n align: \"justify\"\n}], [\"blockquote\", \"code-block\"], [{\n list: \"ordered\"\n}, {\n list: \"bullet\"\n}, {\n list: \"check\"\n}], [{\n indent: \"-1\"\n}, {\n indent: \"+1\"\n}], // outdent/indent\n[{\n color: []\n}, {\n background: []\n}], // dropdown with defaults from theme\n[\"link\", \"image\", \"video\"], [\"clean\"] // remove formatting button\n];\n\nvar oldApi = {\n props: {\n customModules: Array\n },\n methods: {\n registerCustomModules: function registerCustomModules(Quill) {\n if (this.customModules !== undefined) {\n this.customModules.forEach(function (customModule) {\n Quill.register(\"modules/\" + customModule.alias, customModule.module);\n });\n }\n }\n }\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/**\n * Performs a deep merge of `source` into `target`.\n * Mutates `target` only but not its objects and arrays.\n *\n */\nfunction mergeDeep(target, source) {\n var isObject = function isObject(obj) {\n return obj && _typeof(obj) === \"object\";\n };\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach(function (key) {\n var targetValue = target[key];\n var sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n return target;\n}\n\nvar BlockEmbed = Quill.import(\"blots/block/embed\");\n\nvar HorizontalRule =\n/*#__PURE__*/\nfunction (_BlockEmbed) {\n _inherits(HorizontalRule, _BlockEmbed);\n\n function HorizontalRule() {\n _classCallCheck(this, HorizontalRule);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalRule).apply(this, arguments));\n }\n\n return HorizontalRule;\n}(BlockEmbed);\n\nHorizontalRule.blotName = \"hr\";\nHorizontalRule.tagName = \"hr\";\nQuill.register(\"formats/horizontal\", HorizontalRule);\n\nvar MarkdownShortcuts =\n/*#__PURE__*/\nfunction () {\n function MarkdownShortcuts(quill, options) {\n var _this = this;\n\n _classCallCheck(this, MarkdownShortcuts);\n\n this.quill = quill;\n this.options = options;\n this.ignoreTags = [\"PRE\"];\n this.matches = [{\n name: \"header\",\n pattern: /^(#){1,6}\\s/g,\n action: function action(text, selection, pattern) {\n var match = pattern.exec(text);\n if (!match) return;\n var size = match[0].length; // Need to defer this action https://github.com/quilljs/quill/issues/1134\n\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 0, \"header\", size - 1);\n\n _this.quill.deleteText(selection.index - size, size);\n }, 0);\n }\n }, {\n name: \"blockquote\",\n pattern: /^(>)\\s/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"blockquote\", true);\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"code-block\",\n pattern: /^`{3}(?:\\s|\\n)/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"code-block\", true);\n\n _this.quill.deleteText(selection.index - 4, 4);\n }, 0);\n }\n }, {\n name: \"bolditalic\",\n pattern: /(?:\\*|_){3}(.+?)(?:\\*|_){3}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true,\n italic: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"bold\",\n pattern: /(?:\\*|_){2}(.+?)(?:\\*|_){2}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"italic\",\n pattern: /(?:\\*|_){1}(.+?)(?:\\*|_){1}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n italic: true\n });\n\n _this.quill.format(\"italic\", false);\n }, 0);\n }\n }, {\n name: \"strikethrough\",\n pattern: /(?:~~)(.+?)(?:~~)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n strike: true\n });\n\n _this.quill.format(\"strike\", false);\n }, 0);\n }\n }, {\n name: \"code\",\n pattern: /(?:`)(.+?)(?:`)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n code: true\n });\n\n _this.quill.format(\"code\", false);\n\n _this.quill.insertText(_this.quill.getSelection(), \" \");\n }, 0);\n }\n }, {\n name: \"hr\",\n pattern: /^([-*]\\s?){3}/g,\n action: function action(text, selection) {\n var startIndex = selection.index - text.length;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, text.length);\n\n _this.quill.insertEmbed(startIndex + 1, \"hr\", true, Quill.sources.USER);\n\n _this.quill.insertText(startIndex + 2, \"\\n\", Quill.sources.SILENT);\n\n _this.quill.setSelection(startIndex + 2, Quill.sources.SILENT);\n }, 0);\n }\n }, {\n name: \"asterisk-ul\",\n pattern: /^(\\*|\\+)\\s$/g,\n action: function action(_text, selection, _pattern) {\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"list\", \"unordered\");\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"image\",\n pattern: /(?:!\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0]; // const hrefText = text.match(/(?:!\\[(.*?)\\])/g)[0]\n\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertEmbed(start, \"image\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }, {\n name: \"link\",\n pattern: /(?:\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0];\n var hrefText = text.match(/(?:\\[(.*?)\\])/g)[0];\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertText(start, hrefText.slice(1, hrefText.length - 1), \"link\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }]; // Handler that looks for insert deltas that match specific characters\n\n this.quill.on(\"text-change\", function (delta, _oldContents, _source) {\n for (var i = 0; i < delta.ops.length; i++) {\n if (delta.ops[i].hasOwnProperty(\"insert\")) {\n if (delta.ops[i].insert === \" \") {\n _this.onSpace();\n } else if (delta.ops[i].insert === \"\\n\") {\n _this.onEnter();\n }\n }\n }\n });\n }\n\n _createClass(MarkdownShortcuts, [{\n key: \"isValid\",\n value: function isValid(text, tagName) {\n return typeof text !== \"undefined\" && text && this.ignoreTags.indexOf(tagName) === -1;\n }\n }, {\n key: \"onSpace\",\n value: function onSpace() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine = this.quill.getLine(selection.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 2),\n line = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n var text = line.domNode.textContent;\n var lineStart = selection.index - offset;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.matches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var match = _step.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n // We need to replace only matched text not the whole line\n console.log(\"matched:\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine3 = this.quill.getLine(selection.index),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 2),\n line = _this$quill$getLine4[0],\n offset = _this$quill$getLine4[1];\n\n var text = line.domNode.textContent + \" \";\n var lineStart = selection.index - offset;\n selection.length = selection.index++;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.matches[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var match = _step2.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n console.log(\"matched\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n }]);\n\n return MarkdownShortcuts;\n}(); // module.exports = MarkdownShortcuts;\n\n//\nvar script = {\n name: \"VueEditor\",\n mixins: [oldApi],\n props: {\n id: {\n type: String,\n default: \"quill-container\"\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n value: {\n type: String,\n default: \"\"\n },\n disabled: {\n type: Boolean\n },\n editorToolbar: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n editorOptions: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n useCustomImageHandler: {\n type: Boolean,\n default: false\n },\n useMarkdownShortcuts: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n quill: null\n };\n },\n watch: {\n value: function value(val) {\n if (val != this.quill.root.innerHTML && !this.quill.hasFocus()) {\n this.quill.root.innerHTML = val;\n }\n },\n disabled: function disabled(status) {\n this.quill.enable(!status);\n }\n },\n mounted: function mounted() {\n this.registerCustomModules(Quill);\n this.registerPrototypes();\n this.initializeEditor();\n },\n beforeDestroy: function beforeDestroy() {\n this.quill = null;\n delete this.quill;\n },\n methods: {\n initializeEditor: function initializeEditor() {\n this.setupQuillEditor();\n this.checkForCustomImageHandler();\n this.handleInitialContent();\n this.registerEditorEventListeners();\n this.$emit(\"ready\", this.quill);\n },\n setupQuillEditor: function setupQuillEditor() {\n var editorConfig = {\n debug: false,\n modules: this.setModules(),\n theme: \"snow\",\n placeholder: this.placeholder ? this.placeholder : \"\",\n readOnly: this.disabled ? this.disabled : false\n };\n this.prepareEditorConfig(editorConfig);\n this.quill = new Quill(this.$refs.quillContainer, editorConfig);\n },\n setModules: function setModules() {\n var modules = {\n toolbar: this.editorToolbar.length ? this.editorToolbar : defaultToolbar\n };\n\n if (this.useMarkdownShortcuts) {\n Quill.register(\"modules/markdownShortcuts\", MarkdownShortcuts, true);\n modules[\"markdownShortcuts\"] = {};\n }\n\n return modules;\n },\n prepareEditorConfig: function prepareEditorConfig(editorConfig) {\n if (Object.keys(this.editorOptions).length > 0 && this.editorOptions.constructor === Object) {\n if (this.editorOptions.modules && typeof this.editorOptions.modules.toolbar !== \"undefined\") {\n // We don't want to merge default toolbar with provided toolbar.\n delete editorConfig.modules.toolbar;\n }\n\n mergeDeep(editorConfig, this.editorOptions);\n }\n },\n registerPrototypes: function registerPrototypes() {\n Quill.prototype.getHTML = function () {\n return this.container.querySelector(\".ql-editor\").innerHTML;\n };\n\n Quill.prototype.getWordCount = function () {\n return this.container.querySelector(\".ql-editor\").innerText.length;\n };\n },\n registerEditorEventListeners: function registerEditorEventListeners() {\n this.quill.on(\"text-change\", this.handleTextChange);\n this.quill.on(\"selection-change\", this.handleSelectionChange);\n this.listenForEditorEvent(\"text-change\");\n this.listenForEditorEvent(\"selection-change\");\n this.listenForEditorEvent(\"editor-change\");\n },\n listenForEditorEvent: function listenForEditorEvent(type) {\n var _this = this;\n\n this.quill.on(type, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this.$emit.apply(_this, [type].concat(args));\n });\n },\n handleInitialContent: function handleInitialContent() {\n if (this.value) this.quill.root.innerHTML = this.value; // Set initial editor content\n },\n handleSelectionChange: function handleSelectionChange(range, oldRange) {\n if (!range && oldRange) this.$emit(\"blur\", this.quill);else if (range && !oldRange) this.$emit(\"focus\", this.quill);\n },\n handleTextChange: function handleTextChange(delta, oldContents) {\n var editorContent = this.quill.getHTML() === \"


\" ? \"\" : this.quill.getHTML();\n this.$emit(\"input\", editorContent);\n if (this.useCustomImageHandler) this.handleImageRemoved(delta, oldContents);\n },\n handleImageRemoved: function handleImageRemoved(delta, oldContents) {\n var _this2 = this;\n\n var currrentContents = this.quill.getContents();\n var deletedContents = currrentContents.diff(oldContents);\n var operations = deletedContents.ops;\n operations.map(function (operation) {\n if (operation.insert && operation.insert.hasOwnProperty(\"image\")) {\n var image = operation.insert.image;\n\n _this2.$emit(\"image-removed\", image);\n }\n });\n },\n checkForCustomImageHandler: function checkForCustomImageHandler() {\n this.useCustomImageHandler === true ? this.setupCustomImageHandler() : \"\";\n },\n setupCustomImageHandler: function setupCustomImageHandler() {\n var toolbar = this.quill.getModule(\"toolbar\");\n toolbar.addHandler(\"image\", this.customImageHandler);\n },\n customImageHandler: function customImageHandler(image, callback) {\n this.$refs.fileInput.click();\n },\n emitImageInfo: function emitImageInfo($event) {\n var resetUploader = function resetUploader() {\n var uploader = document.getElementById(\"file-upload\");\n uploader.value = \"\";\n };\n\n var file = $event.target.files[0];\n var Editor = this.quill;\n var range = Editor.getSelection();\n var cursorLocation = range.index;\n this.$emit(\"image-added\", file, Editor, cursorLocation, resetUploader);\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\n\nvar HEAD;\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n\n if (HEAD === undefined) {\n HEAD = document.head || document.getElementsByTagName('head')[0];\n }\n\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nvar browser = createInjector;\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"quillWrapper\"},[_vm._t(\"toolbar\"),_vm._v(\" \"),_c('div',{ref:\"quillContainer\",attrs:{\"id\":_vm.id}}),_vm._v(\" \"),(_vm.useCustomImageHandler)?_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"file-upload\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":function($event){return _vm.emitImageInfo($event)}}}):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = function (inject) {\n if (!inject) return\n inject(\"data-v-59392418_0\", { source: \"/*!\\n * Quill Editor v1.3.6\\n * https://quilljs.com/\\n * Copyright (c) 2014, Jason Chen\\n * Copyright (c) 2013, salesforce.com\\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li::before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:0;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li::before{content:'\\\\2022'}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li::before,.ql-editor ul[data-checked=true]>li::before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li::before{content:'\\\\2611'}.ql-editor ul[data-checked=false]>li::before{content:'\\\\2610'}.ql-editor li::before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl)::before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl::before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) '. '}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) '. '}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) '. '}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) '. '}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) '. '}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) '. '}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) '. '}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) '. '}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) '. '}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) '. '}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank::before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:'';display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:0 0;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:0}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow{box-sizing:border-box}.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:'';display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label::before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item::before,.ql-snow .ql-picker.ql-header .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"1\\\"]::before{content:'Heading 1'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"2\\\"]::before{content:'Heading 2'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"3\\\"]::before{content:'Heading 3'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"4\\\"]::before{content:'Heading 4'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"5\\\"]::before{content:'Heading 5'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"6\\\"]::before{content:'Heading 6'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item::before,.ql-snow .ql-picker.ql-font .ql-picker-label::before{content:'Sans Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before{content:'Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before{content:'Monospace'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item::before,.ql-snow .ql-picker.ql-size .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before{content:'Small'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before{content:'Large'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before{content:'Huge'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:rgba(0,0,0,.2) 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip::before{content:\\\"Visit URL:\\\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action::after{border-right:1px solid #ccc;content:'Edit';margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove::before{content:'Remove';margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action::after{border-right:0;content:'Save';padding-right:0}.ql-snow .ql-tooltip[data-mode=link]::before{content:\\\"Enter link:\\\"}.ql-snow .ql-tooltip[data-mode=formula]::before{content:\\\"Enter formula:\\\"}.ql-snow .ql-tooltip[data-mode=video]::before{content:\\\"Enter video:\\\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}\", map: undefined, media: undefined })\n,inject(\"data-v-59392418_1\", { source: \".ql-editor{min-height:200px;font-size:16px}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1px!important}.quillWrapper .ql-snow.ql-toolbar{padding-top:8px;padding-bottom:4px}.quillWrapper .ql-snow.ql-toolbar .ql-formats{margin-bottom:10px}.ql-snow .ql-toolbar button svg,.quillWrapper .ql-snow.ql-toolbar button svg{width:22px;height:22px}.quillWrapper .ql-editor ul[data-checked=false]>li::before,.quillWrapper .ql-editor ul[data-checked=true]>li::before{font-size:1.35em;vertical-align:baseline;bottom:-.065em;font-weight:900;color:#222}.quillWrapper .ql-snow .ql-stroke{stroke:rgba(63,63,63,.95);stroke-linecap:square;stroke-linejoin:initial;stroke-width:1.7px}.quillWrapper .ql-picker-label{font-size:15px}.quillWrapper .ql-snow .ql-active .ql-stroke{stroke-width:2.25px}.quillWrapper .ql-toolbar.ql-snow .ql-formats{vertical-align:top}.ql-picker:not(.ql-background){position:relative;top:2px}.ql-picker.ql-color-picker svg{width:22px!important;height:22px!important}.quillWrapper .imageResizeActive img{display:block;cursor:pointer}.quillWrapper .imageResizeActive~div svg{cursor:pointer}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n\n \n var VueEditor = normalizeComponent_1(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n browser,\n undefined\n );\n\nvar version = \"2.10.2\"; // Declare install function executed by Vue.use()\n\nfunction install(Vue) {\n if (install.installed) return;\n install.installed = true;\n Vue.component(\"VueEditor\", VueEditor);\n}\nvar VPlugin = {\n install: install,\n version: version,\n Quill: Quill,\n VueEditor: VueEditor\n}; // Auto-install when vue is found (eg. in browser via \n","import { render, staticRenderFns } from \"./SaveChanges.vue?vue&type=template&id=39406d62&\"\nimport script from \"./SaveChanges.vue?vue&type=script&lang=js&\"\nexport * from \"./SaveChanges.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.orderType)?_c('div',{staticClass:\"order-edit-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"legend bg-white col rounded-lg shadow m-1 p-2\"},[_c('div',{staticClass:\"legend-title\"},[_c('strong',[_vm._v(\"Keywords - paste in text as \"+_vm._s(\"\\{\\{ keyword \\}\\}\"))])]),_vm._v(\" \"),_vm._m(0)])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col white-box2 p-2\"},[_c('div',{staticClass:\"row py-1 align-items-center\"},[_c('div',{staticClass:\"col-2 font-weight-bold\"},[_vm._v(\"Order Type ID:\")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.orderTypeId),expression:\"orderType.orderTypeId\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.orderType.orderTypeId)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType, \"orderTypeId\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"row py-1 align-items-center\"},[_c('div',{staticClass:\"col-2 font-weight-bold\"},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.orderTypeName),expression:\"orderType.orderTypeName\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.orderType.orderTypeName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType, \"orderTypeName\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"row py-1 align-items-center\"},[_c('div',{staticClass:\"col-2 font-weight-bold\"},[_vm._v(\"Email Subject:\")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.emailSubject),expression:\"orderType.emailSubject\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.orderType.emailSubject)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType, \"emailSubject\", $event.target.value)}}})])])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"emails white-box2 col-sm-8 p-2\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6\"},[_c('div',[_c('strong',[_vm._v(\"To:\")]),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-plus-circle fa-1x\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.orderType.emailsTo.push('')}}}),_vm._v(\" \"),_c('ul',_vm._l((_vm.orderType.emailsTo),function(email,index){return _c('li',{key:index,staticClass:\"py-1\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.emailsTo[index]),expression:\"orderType.emailsTo[index]\"}],staticClass:\"email-input\",attrs:{\"type\":\"email\"},domProps:{\"value\":(_vm.orderType.emailsTo[index])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType.emailsTo, index, $event.target.value)}}}),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-minus-circle fa-1x\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.orderType.emailsTo.splice(index, 1)}}})])}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"col-6\"},[_c('div',[_c('strong',[_vm._v(\"CC:\")]),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-plus-circle fa-1x\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.orderType.emailsCC.push('')}}}),_vm._v(\" \"),_c('ul',_vm._l((_vm.orderType.emailsCC),function(email,index){return _c('li',{key:index,staticClass:\"py-1\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.emailsCC[index]),expression:\"orderType.emailsCC[index]\"}],staticClass:\"email-input\",attrs:{\"type\":\"email\"},domProps:{\"value\":(_vm.orderType.emailsCC[index])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType.emailsCC, index, $event.target.value)}}}),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-minus-circle fa-1x\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.orderType.emailsCC.splice(index, 1)}}})])}),0)])])])]),_vm._v(\" \"),_c('div',{staticClass:\"attachments white-box2 col-sm\"},[_c('strong',[_vm._v(\"Attachments:\")]),_vm._v(\" \"),(_vm.orderType.id !== null)?_c('span',[_vm._m(1),_vm._v(\" \"),_c('input',{ref:\"orderTypeAttachment\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":\"orderTypeAttachment\",\"multiple\":\"\"},on:{\"change\":function($event){return _vm.addAttachments()}}}),_vm._v(\" \"),_vm._l((_vm.orderType.orderTypeAttachments),function(attachment){return _c('ul',[_c('li',[_c('i',{staticClass:\"far fa-file fa-1x\"}),_vm._v(\" \"+_vm._s(attachment.originalName)+\"\\n \"),_c('i',{staticClass:\"fas fa-minus-circle fa-1x\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.removeAttachment(attachment.id)}}})])])})],2):_c('p',[_vm._v(\"Adding attachments will be possible after saving new order type.\")])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"body white-box2 col p-2\"},[_vm._m(2),_vm._v(\" \"),_c('div',[_c('vue-editor',{attrs:{\"editor-toolbar\":_vm.customToolbar},model:{value:(_vm.orderType.emailBody),callback:function ($$v) {_vm.$set(_vm.orderType, \"emailBody\", $$v)},expression:\"orderType.emailBody\"}})],1)])])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col white-box2 p-2\"},[_c('div',{staticClass:\"row py-1 align-items-center\"},[_c('div',{staticClass:\"col-2 font-weight-bold\"},[_vm._v(\"Email Subject For Resubmit:\")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.emailSubjectResubmit),expression:\"orderType.emailSubjectResubmit\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.orderType.emailSubjectResubmit)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType, \"emailSubjectResubmit\", $event.target.value)}}})])])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"body white-box2 col p-2\"},[_vm._m(3),_vm._v(\" \"),_c('div',[_c('vue-editor',{attrs:{\"editor-toolbar\":_vm.customToolbar},model:{value:(_vm.orderType.emailBodyResubmit),callback:function ($$v) {_vm.$set(_vm.orderType, \"emailBodyResubmit\", $$v)},expression:\"orderType.emailBodyResubmit\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col white-box2 p-2\"},[_c('div',{staticClass:\"row py-1 align-items-center\"},[_c('div',{staticClass:\"col-2 font-weight-bold\"},[_vm._v(\"Email Subject For Cancelation:\")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderType.emailSubjectCancel),expression:\"orderType.emailSubjectCancel\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.orderType.emailSubjectCancel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.orderType, \"emailSubjectCancel\", $event.target.value)}}})])])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"body white-box2 col p-2\"},[_vm._m(4),_vm._v(\" \"),_c('div',[_c('vue-editor',{attrs:{\"editor-toolbar\":_vm.customToolbar},model:{value:(_vm.orderType.emailBodyCancel),callback:function ($$v) {_vm.$set(_vm.orderType, \"emailBodyCancel\", $$v)},expression:\"orderType.emailBodyCancel\"}})],1)])]),_vm._v(\" \"),(_vm.isSpinner)?_c('div',{staticClass:\"d-flex justify-content-center spinner\"}):_vm._e()]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"keywords\"},[_c('dl',[_c('dt',[_vm._v(\"id\")]),_c('dd',[_vm._v(\"ID\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"deliveryInfo\")]),_c('dd',[_vm._v(\"Delivery Info\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"deliveryAddress\")]),_c('dd',[_vm._v(\"Delivery Address\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"deliveryPort\")]),_c('dd',[_vm._v(\"Delivery Port\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vesselId\")]),_c('dd',[_vm._v(\"Vessel ID\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vesselName\")]),_c('dd',[_vm._v(\"Vessel Name\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"userEmail\")]),_c('dd',[_vm._v(\"User Email\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"poUser\")]),_c('dd',[_vm._v(\"PO User\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"poCode\")]),_c('dd',[_vm._v(\"PO Code (Summary)\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"voyageNumber\")]),_c('dd',[_vm._v(\"Voyage Number\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorCode\")]),_c('dd',[_vm._v(\"Vendor Code\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorName\")]),_c('dd',[_vm._v(\"Vendor Name\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorAddress\")]),_c('dd',[_vm._v(\"Vendor Address\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorPhone\")]),_c('dd',[_vm._v(\"Vendor Phone\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorFax\")]),_c('dd',[_vm._v(\"Vendor Fax\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorEmailsString\")]),_c('dd',[_vm._v(\"Vendor Emails (Concatenated)\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"vendorCurrency\")]),_c('dd',[_vm._v(\"Vendor Currency\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"boardingDate\")]),_c('dd',[_vm._v(\"Boarding Date\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"deliveryDate\")]),_c('dd',[_vm._v(\"Delivery Date\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"commentBody\")]),_c('dd',[_vm._v(\"Order Comment Body\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"deliveryInstructions\")]),_c('dd',[_vm._v(\"Delivery Instructions\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"total\")]),_c('dd',[_vm._v(\"Total\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"weight\")]),_c('dd',[_vm._v(\"Weight\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"statusString\")]),_c('dd',[_vm._v(\"Order Status\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"freightCost\")]),_c('dd',[_vm._v(\"Freight Cost\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"PO_SINGLE_LOGIN\")]),_c('dd',[_vm._v(\"Vendor Link - Single Order\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"PO_LIST_LOGIN\")]),_c('dd',[_vm._v(\"Vendor Link - Orders Overview\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"warehouseLocator1\")]),_c('dd',[_vm._v(\"Warehouse Locator1\")]),_vm._v(\" \"),_c('dt',[_vm._v(\"warehouseLocator2\")]),_c('dd',[_vm._v(\"Warehouse Locator2\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{attrs:{\"for\":\"orderTypeAttachment\"}},[_c('i',{staticClass:\"fas fa-plus-circle fa-1x\",staticStyle:{\"cursor\":\"pointer\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('strong',[_vm._v(\"Email Body\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('strong',[_vm._v(\"Email Body For Resubmit\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('strong',[_vm._v(\"Email Body For Cancelation\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderTypeEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderTypeEdit.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrderTypeEdit.vue?vue&type=template&id=c3116fe6&\"\nimport script from \"./OrderTypeEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./OrderTypeEdit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\n","import { render, staticRenderFns } from \"./SubmitToVendor.vue?vue&type=template&id=0ed2b850&\"\nimport script from \"./SubmitToVendor.vue?vue&type=script&lang=js&\"\nexport * from \"./SubmitToVendor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"confirm\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Confirm\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Cancel\")])])])])]),_vm._v(\" \"),_c('button',{staticClass:\"buttons\",attrs:{\"disabled\":! _vm.canConfirm,\"data-toggle\":\"modal\",\"data-target\":\"#confirm\"}},[_vm._v(\"Confirm bid-sheet\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Confirming bid-sheet\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('span',{staticClass:\"text-center\"},[_vm._v(\"Are you sure you want to confirm the bid-sheet?\"),_c('br'),_vm._v(\"\\n After confirmation no changes will be allowed.\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmToPurchaser.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmToPurchaser.vue?vue&type=script&lang=js&\"","\n\n","import { render, staticRenderFns } from \"./ConfirmToPurchaser.vue?vue&type=template&id=28bd53f6&\"\nimport script from \"./ConfirmToPurchaser.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfirmToPurchaser.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"delete\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('form',{attrs:{\"action\":_vm.deleteLink,\"method\":\"post\"}},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Delete bid\")])]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Cancel\")])])])])]),_vm._v(\" \"),_c('button',{staticClass:\"buttons btn-danger\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#delete\"}},[_vm._v(\"Delete bid-sheet\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Delete bid-sheet?\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('span',{staticClass:\"text-center\"},[_vm._v(\"Are you sure you want to DELETE the bid-sheet?\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteBid.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteBid.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./DeleteBid.vue?vue&type=template&id=6a7db4ad&\"\nimport script from \"./DeleteBid.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteBid.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"sendCT\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Confirm\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Cancel\")])])])])]),_vm._v(\" \"),_c('button',{staticClass:\"buttons\",attrs:{\"disabled\":! _vm.canUploadToCt,\"data-toggle\":\"modal\",\"data-target\":\"#sendCT\"}},[_vm._v(\"Send to CT\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Are you sure?\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('span',{staticClass:\"text-center\"},[_vm._v(\"Are you sure you want to upload bid-sheet to Crunch Time?\"),_c('br'),_vm._v(\"\\n After confirmation no changes will be allowed.\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadToCrunchTime.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadToCrunchTime.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./UploadToCrunchTime.vue?vue&type=template&id=5541a23c&\"\nimport script from \"./UploadToCrunchTime.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadToCrunchTime.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"resendCT\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_vm._t(\"default\"),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Cancel\")])],2)])])]),_vm._v(\" \"),_c('button',{staticClass:\"buttons\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#resendCT\"}},[_vm._v(\"Resend to CT\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Are you sure?\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('span',{staticClass:\"text-center\"},[_vm._v(\"Are you sure you want to resend the bid-sheet to Crunch Time?\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResendToCrunchTime.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResendToCrunchTime.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./ResendToCrunchTime.vue?vue&type=template&id=364f9a4d&\"\nimport script from \"./ResendToCrunchTime.vue?vue&type=script&lang=js&\"\nexport * from \"./ResendToCrunchTime.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"buttons\",attrs:{\"disabled\":! _vm.isDirty},on:{\"click\":_vm.confirm}},[_vm._v(\"Mark items as deleted/undeleted\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkAsDeleted.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MarkAsDeleted.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./MarkAsDeleted.vue?vue&type=template&id=9710ac78&scoped=true&\"\nimport script from \"./MarkAsDeleted.vue?vue&type=script&lang=js&\"\nexport * from \"./MarkAsDeleted.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9710ac78\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"cancel-po-items\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Cancel items\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Abort\")])])])])]),_vm._v(\" \"),(_vm.isVisible)?_c('button',{staticClass:\"buttons\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#cancel-po-items\"}},[_vm._v(\"Cancel Items\")]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Canceling items\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('span',{staticClass:\"text-center\"},[_vm._v(\"Are you sure you want to cancel the selected items? Their quantity will be set to 0.\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CancelPoItems.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CancelPoItems.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./CancelPoItems.vue?vue&type=template&id=3e6a56b9&\"\nimport script from \"./CancelPoItems.vue?vue&type=script&lang=js&\"\nexport * from \"./CancelPoItems.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"uncancel-po-items\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Undo Cancel items\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Abort\")])])])])]),_vm._v(\" \"),(_vm.isVisible)?_c('button',{staticClass:\"buttons\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#uncancel-po-items\"}},[_vm._v(\"Undo Cancel Items\")]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Undo cancel items\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('span',{staticClass:\"text-center\"},[_vm._v(\"Are you sure you want to undo cancel the selected items? You need to enter the confirmed quantity.\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnCancelPoItems.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnCancelPoItems.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./UnCancelPoItems.vue?vue&type=template&id=8d53776a&\"\nimport script from \"./UnCancelPoItems.vue?vue&type=script&lang=js&\"\nexport * from \"./UnCancelPoItems.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"confirm-po\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Confirm PO \"+_vm._s(_vm.po.poCode))])]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"disabled\":! _vm.isFilled,\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Yes, confirm\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Abort\")])])])])]),_vm._v(\" \"),(_vm.isFilled)?_c('button',{staticClass:\"buttons\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#confirm-po\",\"disabled\":! _vm.isUnblocked}},[_vm._v(\"Confirm PO\")]):_c('button',{staticClass:\"buttons\",attrs:{\"disabled\":! _vm.isUnblocked},on:{\"click\":_vm.abort}},[_vm._v(\"Confirm PO\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Please make sure that all confirmed quantities and prices are correct.\\n Do you want to confirm this PO?\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmPo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmPo.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./ConfirmPo.vue?vue&type=template&id=c577fbc4&\"\nimport script from \"./ConfirmPo.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfirmPo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"consolidate-po\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"disabled\":! _vm.isFilled,\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Yes, Consolidate\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Abort\")])])])])]),_vm._v(\" \"),(_vm.isFilled)?_c('button',{staticClass:\"buttons\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#consolidate-po\",\"disabled\":! _vm.isUnblocked}},[_vm._v(\"Consolidate PO\")]):_c('button',{staticClass:\"buttons\",attrs:{\"disabled\":! _vm.isUnblocked},on:{\"click\":_vm.abort}},[_vm._v(\"Consolidate PO\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Consolidate PO\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Are you sure you want to consolidate this PO? Further editing will not be possible.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsolidatePo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsolidatePo.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./ConsolidatePo.vue?vue&type=template&id=7017e2a8&\"\nimport script from \"./ConsolidatePo.vue?vue&type=script&lang=js&\"\nexport * from \"./ConsolidatePo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"invoice-complete-po\"}},[_c('div',{staticClass:\"modal-dialog\"},[_c('div',{staticClass:\"modal-content\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),(_vm.isFilled)?_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Yes, invoice complete\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Abort\")])]):_vm._e()])])]),_vm._v(\" \"),(_vm.isFilled)?_c('button',{staticClass:\"buttons\",attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#invoice-complete-po\",\"disabled\":! _vm.isUnblocked}},[_vm._v(\"Invoice Complete\")]):_c('button',{staticClass:\"buttons\",attrs:{\"disabled\":! _vm.isUnblocked},on:{\"click\":_vm.abort}},[_vm._v(\"Invoice Complete\")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\"},[_vm._v(\"Invoicing PO\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Is the invoice for this PO complete? Further editing will not be possible.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceCompletePo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceCompletePo.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./InvoiceCompletePo.vue?vue&type=template&id=34fadd9c&\"\nimport script from \"./InvoiceCompletePo.vue?vue&type=script&lang=js&\"\nexport * from \"./InvoiceCompletePo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"openedPO\",\"data-backdrop\":\"static\",\"data-keyboard\":\"false\",\"tabindex\":\"-1\",\"aria-labelledby\":\"openedPOLabel\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\",attrs:{\"id\":\"openedPOLabel\"}},[_vm._v(\"Confirm receipt of PO \"+_vm._s(_vm.po.poCode))])]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.abortReceipt}},[_vm._v(\"No\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirmReceipt}},[_vm._v(\"Yes, I confirm the\\n receipt\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Please confirm the receipt of the PO.\\n By clicking on \\\"Yes\\\" sea chefs will get the receipt automatically.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpenedPo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpenedPo.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./OpenedPo.vue?vue&type=template&id=55ae3666&\"\nimport script from \"./OpenedPo.vue?vue&type=script&lang=js&\"\nexport * from \"./OpenedPo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"canceledPO\",\"data-backdrop\":\"static\",\"data-keyboard\":\"false\",\"tabindex\":\"-1\",\"aria-labelledby\":\"canceledPOLabel\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\",attrs:{\"id\":\"canceledPOLabel\"}},[_vm._v(\"Confirm cancelation of PO \"+_vm._s(_vm.po.poCode))])]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-cancel\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.abortCancelation}},[_vm._v(\"No\")]),_vm._v(\" \"),_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirmCancelation}},[_vm._v(\"Yes, I confirm the\\n cancelation\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Please confirm the cancelation of the PO.\\n By clicking on \\\"Yes\\\" sea chefs will get informed automatically.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CanceledPo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CanceledPo.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./CanceledPo.vue?vue&type=template&id=786ecbec&\"\nimport script from \"./CanceledPo.vue?vue&type=script&lang=js&\"\nexport * from \"./CanceledPo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"openedPO\",\"data-backdrop\":\"static\",\"data-keyboard\":\"false\",\"tabindex\":\"-1\",\"aria-labelledby\":\"openedPOLabel\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\",attrs:{\"id\":\"openedPOLabel\"}},[_vm._v(\"Confirm receipt of PO \"+_vm._s(_vm.po.poCode))])]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirmReceipt}},[_vm._v(\"Yes, I confirm the\\n receipt\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Please confirm the receipt of the purchase order to sea chefs.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpenedPoDownloads.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OpenedPoDownloads.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./OpenedPoDownloads.vue?vue&type=template&id=2d5f7f2a&\"\nimport script from \"./OpenedPoDownloads.vue?vue&type=script&lang=js&\"\nexport * from \"./OpenedPoDownloads.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"canceledPO\",\"data-backdrop\":\"static\",\"data-keyboard\":\"false\",\"tabindex\":\"-1\",\"aria-labelledby\":\"canceledPOLabel\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\",attrs:{\"id\":\"canceledPOLabel\"}},[_vm._v(\"Confirm cancelation of PO \"+_vm._s(_vm.po.poCode))])]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirmCancelation}},[_vm._v(\"Yes, I confirm the\\n cancelation\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Please confirm the cancelation of the PO.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CanceledPoDownloads.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CanceledPoDownloads.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./CanceledPoDownloads.vue?vue&type=template&id=1799291c&\"\nimport script from \"./CanceledPoDownloads.vue?vue&type=script&lang=js&\"\nexport * from \"./CanceledPoDownloads.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"resubmittedPO\",\"data-backdrop\":\"static\",\"data-keyboard\":\"false\",\"tabindex\":\"-1\",\"aria-labelledby\":\"resubmittedPOLabel\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"popup-title\"},[_c('span',{staticClass:\"modal-title\",attrs:{\"id\":\"resubmittedPOLabel\"}},[_vm._v(\"Confirm resubmit of PO \"+_vm._s(_vm.po.poCode))])]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"popup-buttons\"},[_c('button',{staticClass:\"popup-confirm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":_vm.confirmResubmit}},[_vm._v(\"Yes, I confirm the\\n resubmit\")])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-body popup-body\"},[_c('p',[_vm._v(\"\\n Please confirm the resubmit of the PO.\\n \")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResubmittedPoDownloads.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--4-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResubmittedPoDownloads.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./ResubmittedPoDownloads.vue?vue&type=template&id=4c70ee92&\"\nimport script from \"./ResubmittedPoDownloads.vue?vue&type=script&lang=js&\"\nexport * from \"./ResubmittedPoDownloads.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","window.$ = window.jQuery = require('jquery')\nwindow.Vue = require('vue/dist/vue.esm').default;\nrequire('popper.js')\nrequire('bootstrap')\nrequire('./consolidator-edit')\nrequire('./consolidator-overview')\nrequire('./vendor')\nrequire('./vendor-settings-header')\nrequire('./single-bid')\nrequire('./bid-overview')\nrequire('./po-overview')\nrequire('./po-details')\nrequire('./po-downloads')\nrequire('./order-type-create')\nrequire('./order-type-edit')\nrequire('./settings-emails')\nrequire('./beiladerliste-scheduler')\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.