{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.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","createCommonjsModule","fn","sparkMd5","factory","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","state","substring","toString","match","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","push","substr","SparkMD5","this","reset","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","content","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","callback","_this","md5Buffer","fileReader","FileReader","addEventListener","event","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","start","readAsArrayBuffer","getMetaValue","element","findElement","document","head","getAttribute","findElements","root","selector","toArray$1","querySelectorAll","querySelector","dispatchEvent","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","send","JSON","stringify","blob","status","response","direct_upload","directUploadData","toJSON","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","delegate","error","notify","upload","methodName","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","form","inputs","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","submitForm","button","focus","click","style","display","appendChild","delete","autostart","window","ActiveStorage","setTimeout","g","Function","e","require","Set","clear","values","has","indexOf","add","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","resolve","constructor","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","Date","now","random","A","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","options","subtree","enqueue","records_","C","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","w","f","transientObservedNodes","JsMutationObserver","navigator","userAgent","v","y","data","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","removeEventListener","addTransientObserver","handleEvent","stopImmediatePropagation","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Event","CustomEvent","initCustomEvent","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","split","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","toLowerCase","attributeChangedCallback","concat","ctor","createElementNS","Error","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","readyState","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","replace","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","utf16String","offset","codepoints","fromCodepoints","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","className","classList","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","initialize","connect","initialized","connectedCallback","disconnectedCallback","Reflect","construct","setPrototypeOf","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","matches","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","find","ElementStore","elements","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","map","lang","attachFiles","bold","bullets","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","Controller","didMutate","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","ImagePreloadOperation","Image","naturalWidth","naturalHeight","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","index","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","args","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","directUploadUrl","directUploadDidComplete","directUploadWillStoreFileWithXHR","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-d5a5091749f09066b9e7.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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (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;","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nrequire(\"@rails/activestorage\").start()\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\n// require(\"@rails/ujs\").start()\n","/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n function i(t) {\n if (\"object\" != typeof this) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n r(e.promise, i);\n }));\n }\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n t._deferreds = null;\n }\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n function c(t, e) {\n var n = !1;\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function (t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == typeof s || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n if (0 === e.length) return t([]);\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\n });\n }, i.resolve = function (t) {\n return t && \"object\" == typeof t && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) t[i].then(e, n);\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == typeof window.customElements,\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function () {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n n.prototype = {\n set: function (e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function (t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function (t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function (t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n function c(t, e) {\n return x = new a(t, e);\n }\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n function h() {\n x = w = void 0;\n }\n function p(t) {\n return t === w || t === x;\n }\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function (t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function (t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function () {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function () {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function (t) {\n var n = this.observer.records_,\n i = n.length;\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n n[i] = t;\n },\n addListeners: function () {\n this.addListeners_(this.target);\n },\n addListeners_: function (t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function () {\n this.removeListeners_(this.target);\n },\n removeListeners_: function (t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function (t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function () {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function (t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function () {\n return Date.now() - t;\n }\n };\n }\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n if (!e) {\n var n = Event.prototype.preventDefault;\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n var i = /Trident/.test(navigator.userAgent);\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function (t) {\n n.push(t);\n },\n o = function () {\n n.forEach(function (e) {\n e(t);\n });\n };\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n return null;\n }\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n function o(t, e) {\n r(t, e, []);\n }\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i.import && r(i.import, e, n);\n e(t);\n }\n }\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n function r() {\n x = !1;\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n w = [];\n }\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n function v(t) {\n A(t, m);\n }\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n o = Object.getPrototypeOf(o);\n }\n }\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n function u(t) {\n return y(E(t.tag), t);\n }\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n function l(t, e) {\n x[t] = e;\n }\n function h(t) {\n return function () {\n return u(t);\n };\n }\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n function f(t, e) {\n var n = t[e];\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n var n = t.useNative,\n i = t.initializeModules;\n if (t.isIE, n) {\n var o = function () {};\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\ufeff\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\ufffc\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function (t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n for (e in t) n = t[e], this[e] = n;\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function (t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function (t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function (t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function (t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function (t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function (n, i) {\n var o, r, s, a, u;\n return n.isEqualTo(i) ? [\"\", \"\"] : (r = t(n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = n.codepoints.slice(0, u).concat(n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function (t, e) {\n var n, i, o;\n for (n = 0, i = t.length, o = e.length; i > n && t.charAt(n).isEqualTo(e.charAt(n));) n++;\n for (; i > n + 1 && t.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n return {\n utf16String: t.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function (t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n for (e in t) i = t[e], n[e] = i;\n return n;\n },\n objectsAreEqual: function (t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function (t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n return !0;\n },\n arrayStartsWith: function (t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function () {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function () {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function (t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function () {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function (t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function () {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function () {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function (n, i) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, s = function (t) {\n var n;\n return null != d && 0 === --d && s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, s.destroy = function () {\n return r.removeEventListener(n, s, f);\n }, r.addEventListener(n, s, f), s;\n },\n handleEventOnce: function (t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function (n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function (t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function (t, n) {\n var i, o, r;\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function (t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n return t;\n },\n innerElementIsActive: function (t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function (t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function (t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function (t) {\n var e;\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n return e;\n }\n },\n removeNode: function (t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function (t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function (t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n if (null == e && (e = {}), \"object\" == typeof t ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n for (a in l) g = l[a], o.setAttribute(a, g);\n }\n if (e.style) {\n h = e.style;\n for (a in h) g = h[a], o.style[a] = g;\n }\n if (e.data) {\n p = e.data;\n for (a in p) g = p[a], o.dataset[a] = g;\n }\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) i = d[r], o.classList.add(i);\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) n = f[s], o.appendChild(n);\n return o;\n },\n getBlockTagNames: function () {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].tagName, n && o.push(n);\n return o;\n }();\n },\n nodeIsBlockContainer: function (t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function (t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function (t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function (t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function (t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function (t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function (t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function (t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function (t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function (t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function (e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function (t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function (t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function (e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function () {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function (t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function (t) {\n var e, n, i;\n n = {};\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n return n;\n }, a = function () {\n var t;\n return t = function (t) {\n var e, n, i, o, r;\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = t[i], delete t[i];\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function () {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var n;\n return n = function () {\n return \"object\" == typeof Reflect ? Reflect.construct(HTMLElement, [], n) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(n.prototype, HTMLElement.prototype), Object.setPrototypeOf(n, HTMLElement), Object.defineProperties(n.prototype, e), window.customElements.define(t, n), n;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function () {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function () {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function (t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function (t) {\n return n(t.startContainer) || n(t.endContainer);\n }, n = function (t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function (t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function (e) {\n var n, i;\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n for (t in i) n = i[t], e.push(t, n);\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function (t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function (t, e) {\n var n, i, o;\n i = s(t);\n for (n in e) o = e[n], i[n] = o;\n return i;\n }, s = function (t, e) {\n var n, i, o, r, s;\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n return r;\n }, r = function (t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function (t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n return t;\n }, e = function (t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\ud83d\\udc7c\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\ud83d\\udc7c\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function (e) {\n var i, o, r, s, a;\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n case 1:\n return \"1 \" + t.byte;\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function (t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function (t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function (t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function (t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function (t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function (t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function () {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function () {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function (t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function () {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n return n;\n }(), o = [];\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n var h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = h(t), d = h(u)), {\n additions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, h = function (t) {\n var e, n, i, o;\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, h(i.childNodes));\n }\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n try {\n e.abort();\n } catch (i) {}\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n for (e in t) n = t[e], this.inputSummary[e] = n;\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function (t) {\n var n, i, o, r, s, c, l, h, p;\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function (t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function (t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function (t) {\n return t.preventDefault();\n },\n dragstart: function (t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function (t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function (t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function (t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function (t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function (t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function (t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function () {\n return this.inputSummary.didInput = !0;\n },\n input: function (t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function () {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function (t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function (t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function (t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function (t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n return !1;\n }\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function (t) {\n var e, i, o, r;\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function (t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function (t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function () {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function (t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function (t) {\n var e, n;\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function (t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function () {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function () {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function () {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function () {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function () {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function () {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function () {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function () {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function () {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function () {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function () {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function () {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function () {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function () {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function () {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function () {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function () {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function () {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n return i;\n });\n },\n formatSetBlockTextDirection: function () {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function () {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function () {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function () {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function () {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function () {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function () {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function () {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function () {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function () {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function () {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function () {\n return this.insertString(\"\\n\");\n },\n insertLink: function () {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function () {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function () {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function () {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function () {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function () {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function () {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function (t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n return n;\n }, c = function (t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function (t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function (t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) h.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n var p;\n return l(h, a), p = function (t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function () {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function () {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) u = c[o], r.appendChild(u);\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function (t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function (t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n s = [e];\n }\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n for (r in u) l = u[r], c[r] = l;\n }\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n for (r in c) l = c[r], e.style[r] = l;\n }\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n return o;\n }, o = function (t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) u = c[s], r.appendChild(u);\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n return i;\n }.call(this));\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n return e;\n }, a = function (t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function (t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function (t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function (t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function (t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function (t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function (t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function (t) {\n return t[0];\n }, r = function (t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n return o;\n }());\n }\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n c = [].slice;\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function (t) {\n return t = y(t), t = l(t);\n }, y = function (t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function (t) {\n return m(t) ? t : t.appendText(p);\n }, m = function (t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function (t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function (t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function (t) {\n return t.slice(-1)[0];\n }, g = function (t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n a = [].slice;\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n case Node.COMMENT_NODE:\n r.push(o);\n }\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function (t) {\n var e, n, i, o, r;\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) this.processNode(n.currentNode);\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function (t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n for (n in i) r = i[n], e[n] = r;\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function (t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n for (n in p) if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n if (a(t)) {\n f = w(t, \"attributes\");\n for (l in f) g = f[l], r[l] = g;\n }\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n t = t.parentNode;\n }\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n return e;\n }, w = function (t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function (t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function (t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function (t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function (t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function (t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function (t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function (t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n case o.index:\n return [0, o.offset];\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n for (c in t) d = t[c], d.inheritable && n.push(c);\n return n;\n }();\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n return s;\n }();\n return t;\n }, l = function (t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function (e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function (t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n for (e in n) t = n[e], i.push(t);\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n return [e, u];\n }\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n return i;\n }, d = function (t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function (t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function (t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function (t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n if (document.body.createTextRange) {\n s = t();\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function (t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function () {\n return this.editor.canUndo();\n },\n perform: function () {\n return this.editor.undo();\n }\n },\n redo: {\n test: function () {\n return this.editor.canRedo();\n },\n perform: function () {\n return this.editor.redo();\n }\n },\n link: {\n test: function () {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function () {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function () {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function () {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function () {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function () {\n return !0;\n },\n perform: function () {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function (t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function (t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function (t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function () {\n return h(t);\n }\n }));\n }, h = function (t) {\n return d(t), v(t);\n }, d = function (t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function () {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function (t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function (t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function () {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e.contains(t) || r.push(e.textContent);\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function () {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function () {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function () {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function (t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function (t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function (t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function () {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function () {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function () {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function () {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function () {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function (t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function (t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function () {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function (handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function (event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n registerImmediate = function (handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function (handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function (handle) {\n // Create a